Re: [PATCH] media: ipu3-cio2: Update high watermark to support higher data rate camera sensors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Oct 16, 2021 at 11:54 AM Laurent Pinchart
<laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
>
> Hi Bingbu,
>
> On Thu, Oct 14, 2021 at 02:49:19PM +0800, Bingbu Cao wrote:
> > On 10/6/21 1:03 PM, Tomasz Figa wrote:
> > > On Thu, Sep 23, 2021 at 1:11 PM Bingbu Cao wrote:
> > >>
> > >> CIO2 worked well with most camera sensors so far, but CIO2 will meet SRAM
> > >> overflow when working with higher data rate camera sensors such as 13M@30fps.
> > >> We must set lower high watermark value to trigger the DRAM write to support
> > >> such camera sensors.
> > >>
> > >> Signed-off-by: Bingbu Cao <bingbu.cao@xxxxxxxxx>
> > >> ---
> > >>  drivers/media/pci/intel/ipu3/ipu3-cio2.h | 2 +-
> > >>  1 file changed, 1 insertion(+), 1 deletion(-)
> > >>
> > >
> > > Thanks for the patch. Would this have any implications for other
> > > (lower) operating modes, such as increased power consumption, or it's
> > > harmless? If so, what's the reason we didn't use the value from the
> > > very beginning?
> >
> > Yes, we meet that the frame data corruption for some high data rate camera sensors like
> > imx258 (13M@30fps) with current watermark settings. The higher watermark potentially has
> > power concern as it  request DMA transfer more than before.
> >
> > To keep the old settings for low data rate camera sensor, I am thinking the rationality
> > to determine the HWM value based on the link_frequency? Apparently, it is not reliable
> > to determine by the format.
>
> It depends on the SRAM buffer size, on the image width, the horizontal
> blanking, and the link frequency. If you can store a full line of data,
> you'll have time during horizontal blanking to finish the DMA transfer,
> so you can trigger it later. I don't know how the hardware works exactly
> so I can't provide an exact formula (and I suppose you'll need to
> reserve some margin to account for other traffic to the DRAM).
>

Yes, it would be good to have a formula. It doesn't have to be exact
if it would make it overly complex, just care should be taken so that
it doesn't undershoot, as it would cause overflows.

> > >> diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.h b/drivers/media/pci/intel/ipu3/ipu3-cio2.h
> > >> index 3806d7f04d69..fde80d48533b 100644
> > >> --- a/drivers/media/pci/intel/ipu3/ipu3-cio2.h
> > >> +++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.h
> > >> @@ -181,7 +181,7 @@ struct pci_dev;
> > >>  #define CIO2_PBM_WMCTRL1_MID1_2CK      (16 << CIO2_PBM_WMCTRL1_MID1_2CK_SHIFT)
> > >>  #define CIO2_PBM_WMCTRL1_MID2_2CK      (21 << CIO2_PBM_WMCTRL1_MID2_2CK_SHIFT)
> > >>  #define CIO2_REG_PBM_WMCTRL2                           0x1468
> > >> -#define CIO2_PBM_WMCTRL2_HWM_2CK                       40U
> > >> +#define CIO2_PBM_WMCTRL2_HWM_2CK                       30U
> > >>  #define CIO2_PBM_WMCTRL2_HWM_2CK_SHIFT                 0U
> > >>  #define CIO2_PBM_WMCTRL2_LWM_2CK                       22U
> > >>  #define CIO2_PBM_WMCTRL2_LWM_2CK_SHIFT                 8U
>
> --
> Regards,
>
> Laurent Pinchart



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux