Re: [PATCH v2] media: staging: ipu3-imgu: add the AWB memory layout

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

 



On Mon, Oct 11, 2021 at 12:30 PM Cao, Bingbu <bingbu.cao@xxxxxxxxx> wrote:
>
> All,
>
> ________________________
> BRs,
> Bingbu Cao
>
> > -----Original Message-----
> > From: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> > Sent: Wednesday, October 6, 2021 4:54 AM
> > To: Jean-Michel Hautbois <jeanmichel.hautbois@xxxxxxxxxxxxxxxx>
> > Cc: linux-media@xxxxxxxxxxxxxxx; sakari.ailus@xxxxxxxxxxxxxxx; Cao,
> > Bingbu <bingbu.cao@xxxxxxxxx>; tfiga@xxxxxxxxxx; Qiu, Tian Shu
> > <tian.shu.qiu@xxxxxxxxx>
> > Subject: Re: [PATCH v2] media: staging: ipu3-imgu: add the AWB memory
> > layout
> >
> > Hi Jean-Michel,
> >
> > Thank you for the patch.
> >
> > On Tue, Oct 05, 2021 at 10:20:19PM +0200, Jean-Michel Hautbois wrote:
> > > While parsing the RAW AWB metadata, the AWB layout was missing to
> > > fully understand which byte corresponds to which feature. Make the
> > > field names and usage explicit, as it is used by the userspace
> > applications.
> > >
> > > Signed-off-by: Jean-Michel Hautbois
> > > <jeanmichel.hautbois@xxxxxxxxxxxxxxxx>
> > > ---
> > >  .../media/ipu3/include/uapi/intel-ipu3.h      | 32 ++++++++++++++++---
> > >  1 file changed, 27 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> > > b/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> > > index 585f55981c86..ad116a912e44 100644
> > > --- a/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> > > +++ b/drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
> > > @@ -61,17 +61,39 @@ struct ipu3_uapi_grid_config {
> > >     __u16 y_end;
> > >  } __packed;
> > >
> > > +/**
> > > + * struct ipu3_uapi_awb_set_item - Memory layout for each cell in AWB
> > > + *
> > > + * @Gr_avg:        Green average for red lines in the cell.
> > > + * @R_avg: Red average in the cell.
> > > + * @B_avg: Blue average in the cell.
> > > + * @Gb_avg:        Green average for blue lines in the cell.
> > > + * @sat_ratio:  Percentage of pixels over a given threshold set in
> >
> > s/over a given threshold set in/over the thresholds specified in/
> >
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> >
> > I would still like a review from someone knowledgeable with the hardware
> > and firmware, as we're partly guessing here.
>
> Reviewed-by: Bingbu Cao <bingbu.cao@xxxxxxxxx>
>
> I have no concern on this patch, I think it has minor impact on user-space
> implementation from this change. Tomasz, do you have any comment on this?
>

No, looks fine to me as well. Thanks!
(We'll have to update our userspace when we pick this, but it should
be trivial.)

Reviewed-by: Tomasz Figa <tfiga@xxxxxxxxxxxx>

Best regards,
Tomasz

>
> >
> > > + *                 ipu3_uapi_awb_config_s, coded from 0 to 255.
> > > + * @padding0:   Unused byte for padding.
> > > + * @padding1:   Unused byte for padding.
> > > + * @padding2:   Unused byte for padding.
> > > + */
> > > +struct ipu3_uapi_awb_set_item {
> > > +   __u8 Gr_avg;
> > > +   __u8 R_avg;
> > > +   __u8 B_avg;
> > > +   __u8 Gb_avg;
> > > +   __u8 sat_ratio;
> > > +   __u8 padding0;
> > > +   __u8 padding1;
> > > +   __u8 padding2;
> > > +} __attribute__((packed));
> > > +
> > >  /*
> > >   * The grid based data is divided into "slices" called set, each slice
> > of setX
> > >   * refers to ipu3_uapi_grid_config width * height_per_slice.
> > >   */
> > >  #define IPU3_UAPI_AWB_MAX_SETS                             60
> > >  /* Based on grid size 80 * 60 and cell size 16 x 16 */
> > > -#define IPU3_UAPI_AWB_SET_SIZE                             1280
> > > -#define IPU3_UAPI_AWB_MD_ITEM_SIZE                 8
> > > +#define IPU3_UAPI_AWB_SET_SIZE                             160
> > >  #define IPU3_UAPI_AWB_SPARE_FOR_BUBBLES \
> > > -   (IPU3_UAPI_MAX_BUBBLE_SIZE * IPU3_UAPI_MAX_STRIPES * \
> > > -    IPU3_UAPI_AWB_MD_ITEM_SIZE)
> > > +   (IPU3_UAPI_MAX_BUBBLE_SIZE * IPU3_UAPI_MAX_STRIPES)
> > >  #define IPU3_UAPI_AWB_MAX_BUFFER_SIZE \
> > >     (IPU3_UAPI_AWB_MAX_SETS * \
> > >      (IPU3_UAPI_AWB_SET_SIZE + IPU3_UAPI_AWB_SPARE_FOR_BUBBLES)) @@
> > > -83,7 +105,7 @@ struct ipu3_uapi_grid_config {
> > >   *         the average values for each color channel.
> > >   */
> > >  struct ipu3_uapi_awb_raw_buffer {
> > > -   __u8 meta_data[IPU3_UAPI_AWB_MAX_BUFFER_SIZE]
> > > +   struct ipu3_uapi_awb_set_item
> > > +meta_data[IPU3_UAPI_AWB_MAX_BUFFER_SIZE]
> > >             __attribute__((aligned(32)));
> > >  } __packed;
> > >
> >
> > --
> > 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