[PATCH] media: rkisp1: Allow higher input resolution

Ondřej Jirman megi at xff.cz
Tue Feb 20 15:59:28 PST 2024


Hello Laurent,

On Mon, Feb 19, 2024 at 01:54:30PM +0200, Laurent Pinchart wrote:
> On Mon, Feb 19, 2024 at 07:11:20PM +0900, Paul Elder wrote:
> > On Mon, Feb 19, 2024 at 02:33:21PM +0530, Umang Jain wrote:
> > > On 19/02/24 7:39 am, Adam Ford wrote:
> > > > On Sun, Feb 18, 2024 at 3:02 PM Ondřej Jirman <megi at xff.cz> wrote:
> > > > > On Sun, Feb 18, 2024 at 10:59:08PM +0200, Laurent Pinchart wrote:
> > > > > > On Sat, Feb 17, 2024 at 07:51:58PM +0100, Ondřej Jirman wrote:
> > > > > > > From: Ondrej Jirman <megi at xff.cz>
> > > > > > > 
> > > > > > > In BSP driver, it is allowed, and it works in practice. Tested on
> > > > > > > Pinephone Pro/RK3399 with IMX258 at full res.
> > > > > >
> > > > > > Paul, Umang, do I recall correctly that you have a similar change ?
> > > > > > Could you review and test this (especially on the i.MX8MP) ?
> > > > >
> > > > > It's also a limit from the datasheet, so the change should not be that
> > > > > controversial:
> > > > > 
> > > > >    https://megous.com/dl/tmp/d2b333043ecebaf3.png
> > > > > 
> > > > > (so that it doesn't sound like I just copied the BSP values)
> > > > > 
> > > >  From what I see in the i.MX8M Plus reference manual, it has a max
> > > > resolution of 4096x3072, so it might be necessary to move this off
> > > 
> > > This is what I (and I assume Paul too) have been working with on i.MX8M
> > > Plus. So it's the known and tested value of max ISP input from out side.
> > >
> > > > from a #define into a structure that varies by product family.
> > 
> > Yes, this is what needs to be done. Here's what I have in my notes:
> > 
> > - The RK3399 TRM says 4416x3312 max input and output on main path, with
> >   1920x1080 max output on self path.
> > - The PX30 datasheet [1] says 3264x2448 max input and output on main
> >   path, with 1920x1080 max output on self path.
> > - The RK3288 documentation [2] (under "Camera Interface and Image
> >   Processor") says 4416x3312 max input and output on main path, with
> >   1920x1080 max output on self path.
> > - The i.MX8MP reference manual (the open one) [3] (in table 13-1) says
> >   4096x3072 max resolution in single ISP mode
> > 
> > The i.MX8M Plus seems to indeed be limited to 4096x3072, but the TPG is
> > capable of generating 4416x3312, and the ISP works fine in bypass (and
> > therefore raw) mode, so technically it has different maximum sizes
> > depending on the format which makes this more exciting.
> > 
> > In any case, the PX30 (assuming the datasheet is correct) only supports
> > up to 3264x2448, so the existing #define is incorrect anyway.
> > 
> > I don't have a PX30 nor an RK3288 so I can't test those, and I haven't
> > set up my OV64A40 yet which (I've heard) can be used to test even bigger
> > resolutions.
> 
> Thanks for the summary Paul.
> 
> Ondřej, would you be interested in implementing this ?

Something like this?

https://lore.kernel.org/lkml/20240220235720.3010608-1-megi@xff.cz/T/#u

Only the first two SoCs are supported by rkisp1 driver upstream, yet. So I
only have to deal with input and mainpath maximum ATM. So the patch is rather
simple.

kind regards,
	o.

> > [1] https://opensource.rock-chips.com/images/8/87/Rockchip_PX30_Datasheet_V1.4-20191227.pdf
> > [2] https://opensource.rock-chips.com/images/4/49/Rockchip_RK3288_Datasheet_V2.7-20191227.pdf
> > [3] (requires login) https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-applications-processors/i-mx-8m-plus-arm-cortex-a53-machine-learning-vision-multimedia-and-industrial-iot:IMX8MPLUS
> > 
> > > > > > > Signed-off-by: Ondrej Jirman <megi at xff.cz>
> > > > > > > ---
> > > > > > >   drivers/media/platform/rockchip/rkisp1/rkisp1-common.h | 4 ++--
> > > > > > >   1 file changed, 2 insertions(+), 2 deletions(-)
> > > > > > > 
> > > > > > > diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
> > > > > > > index 4b6b28c05b89..74098ddbeeb3 100644
> > > > > > > --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
> > > > > > > +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-common.h
> > > > > > > @@ -33,8 +33,8 @@ struct dentry;
> > > > > > >   #define RKISP1_ISP_SD_SINK                 BIT(1)
> > > > > > > 
> > > > > > >   /* min and max values for the widths and heights of the entities */
> > > > > > > -#define RKISP1_ISP_MAX_WIDTH                       4032
> > > > > > > -#define RKISP1_ISP_MAX_HEIGHT                      3024
> > > > > > > +#define RKISP1_ISP_MAX_WIDTH                       4416
> > > > > > > +#define RKISP1_ISP_MAX_HEIGHT                      3312
> > > > > > >   #define RKISP1_ISP_MIN_WIDTH                       32
> > > > > > >   #define RKISP1_ISP_MIN_HEIGHT                      32
> > > > > > > 
> 
> -- 
> Regards,
> 
> Laurent Pinchart



More information about the Linux-rockchip mailing list