Message ID | 20200326214730.2449707-3-nfraprado@protonmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: vimc: Add support for {RGB,BGR,GBR}888 bus formats on debayer source pad | expand |
On 3/26/20 3:47 PM, Nícolas F. R. A. Prado wrote: > Add missing RGB888_*, BGR888_* and GBR888_* media bus codes in the > vimc_pix_map_list. Since there is no GBR24 pixelformat, use the RGB24 > pixelformat for MEDIA_BUS_FMT_GBR888_1X24. > > Co-developed-by: Vitor Massaru Iha <vitor@massaru.org> > Signed-off-by: Vitor Massaru Iha <vitor@massaru.org> > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@protonmail.com> > --- > > Changes in v2: > - Fix array formatting > - Change commit message to reflect v2 changes > - Change code array size > - Add other BGR888 and RGB888 formats to BGR24 and RGB24 pixelformats > > drivers/media/platform/vimc/vimc-common.c | 16 ++++++++++++++-- > drivers/media/platform/vimc/vimc-common.h | 2 +- > 2 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/platform/vimc/vimc-common.c b/drivers/media/platform/vimc/vimc-common.c > index 119846f3eaa5..11489334cff7 100644 > --- a/drivers/media/platform/vimc/vimc-common.c > +++ b/drivers/media/platform/vimc/vimc-common.c > @@ -19,13 +19,25 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { > > /* RGB formats */ > { > - .code = { MEDIA_BUS_FMT_BGR888_1X24 }, > + .code = { > + MEDIA_BUS_FMT_BGR888_1X24, > + MEDIA_BUS_FMT_BGR888_3X8 > + }, > .pixelformat = V4L2_PIX_FMT_BGR24, > .bpp = 3, > .bayer = false, > }, > { > - .code = { MEDIA_BUS_FMT_RGB888_1X24 }, > + .code = { > + MEDIA_BUS_FMT_RGB888_1X24, > + MEDIA_BUS_FMT_RGB888_2X12_BE, > + MEDIA_BUS_FMT_RGB888_2X12_LE, > + MEDIA_BUS_FMT_RGB888_3X8, > + MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, > + MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, > + MEDIA_BUS_FMT_RGB888_1X32_PADHI, > + MEDIA_BUS_FMT_GBR888_1X24 > + }, > .pixelformat = V4L2_PIX_FMT_RGB24, > .bpp = 3, > .bayer = false, > diff --git a/drivers/media/platform/vimc/vimc-common.h b/drivers/media/platform/vimc/vimc-common.h > index 585441694c86..d5e0e8d32542 100644 > --- a/drivers/media/platform/vimc/vimc-common.h > +++ b/drivers/media/platform/vimc/vimc-common.h > @@ -69,7 +69,7 @@ do { \ > * V4L2_PIX_FMT_* fourcc pixelformat and its bytes per pixel (bpp) > */ > struct vimc_pix_map { > - unsigned int code[1]; > + unsigned int code[8]; Please add a define for this instead of hard coded value. > unsigned int bpp; > u32 pixelformat; > bool bayer; >
On 3/26/20 6:56 PM, Shuah Khan wrote: > On 3/26/20 3:47 PM, Nícolas F. R. A. Prado wrote: >> Add missing RGB888_*, BGR888_* and GBR888_* media bus codes in the >> vimc_pix_map_list. Since there is no GBR24 pixelformat, use the RGB24 >> pixelformat for MEDIA_BUS_FMT_GBR888_1X24. >> >> Co-developed-by: Vitor Massaru Iha <vitor@massaru.org> >> Signed-off-by: Vitor Massaru Iha <vitor@massaru.org> >> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@protonmail.com> >> --- >> >> Changes in v2: >> - Fix array formatting >> - Change commit message to reflect v2 changes >> - Change code array size >> - Add other BGR888 and RGB888 formats to BGR24 and RGB24 pixelformats >> >> drivers/media/platform/vimc/vimc-common.c | 16 ++++++++++++++-- >> drivers/media/platform/vimc/vimc-common.h | 2 +- >> 2 files changed, 15 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/media/platform/vimc/vimc-common.c b/drivers/media/platform/vimc/vimc-common.c >> index 119846f3eaa5..11489334cff7 100644 >> --- a/drivers/media/platform/vimc/vimc-common.c >> +++ b/drivers/media/platform/vimc/vimc-common.c >> @@ -19,13 +19,25 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { >> /* RGB formats */ >> { >> - .code = { MEDIA_BUS_FMT_BGR888_1X24 }, >> + .code = { >> + MEDIA_BUS_FMT_BGR888_1X24, >> + MEDIA_BUS_FMT_BGR888_3X8 >> + }, >> .pixelformat = V4L2_PIX_FMT_BGR24, >> .bpp = 3, >> .bayer = false, >> }, >> { >> - .code = { MEDIA_BUS_FMT_RGB888_1X24 }, >> + .code = { >> + MEDIA_BUS_FMT_RGB888_1X24, >> + MEDIA_BUS_FMT_RGB888_2X12_BE, >> + MEDIA_BUS_FMT_RGB888_2X12_LE, >> + MEDIA_BUS_FMT_RGB888_3X8, >> + MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, >> + MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, >> + MEDIA_BUS_FMT_RGB888_1X32_PADHI, >> + MEDIA_BUS_FMT_GBR888_1X24 >> + }, >> .pixelformat = V4L2_PIX_FMT_RGB24, >> .bpp = 3, >> .bayer = false, >> diff --git a/drivers/media/platform/vimc/vimc-common.h b/drivers/media/platform/vimc/vimc-common.h >> index 585441694c86..d5e0e8d32542 100644 >> --- a/drivers/media/platform/vimc/vimc-common.h >> +++ b/drivers/media/platform/vimc/vimc-common.h >> @@ -69,7 +69,7 @@ do { \ >> * V4L2_PIX_FMT_* fourcc pixelformat and its bytes per pixel (bpp) >> */ >> struct vimc_pix_map { >> - unsigned int code[1]; > >> + unsigned int code[8]; > Please add a define for this instead of hard coded value. With this change suggested by Shuah: Acked-by: Helen Koike <helen.koike@collabora.com> Regards, Helen > > >> unsigned int bpp; >> u32 pixelformat; >> bool bayer; >> >
diff --git a/drivers/media/platform/vimc/vimc-common.c b/drivers/media/platform/vimc/vimc-common.c index 119846f3eaa5..11489334cff7 100644 --- a/drivers/media/platform/vimc/vimc-common.c +++ b/drivers/media/platform/vimc/vimc-common.c @@ -19,13 +19,25 @@ static const struct vimc_pix_map vimc_pix_map_list[] = { /* RGB formats */ { - .code = { MEDIA_BUS_FMT_BGR888_1X24 }, + .code = { + MEDIA_BUS_FMT_BGR888_1X24, + MEDIA_BUS_FMT_BGR888_3X8 + }, .pixelformat = V4L2_PIX_FMT_BGR24, .bpp = 3, .bayer = false, }, { - .code = { MEDIA_BUS_FMT_RGB888_1X24 }, + .code = { + MEDIA_BUS_FMT_RGB888_1X24, + MEDIA_BUS_FMT_RGB888_2X12_BE, + MEDIA_BUS_FMT_RGB888_2X12_LE, + MEDIA_BUS_FMT_RGB888_3X8, + MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA, + MEDIA_BUS_FMT_RGB888_1X32_PADHI, + MEDIA_BUS_FMT_GBR888_1X24 + }, .pixelformat = V4L2_PIX_FMT_RGB24, .bpp = 3, .bayer = false, diff --git a/drivers/media/platform/vimc/vimc-common.h b/drivers/media/platform/vimc/vimc-common.h index 585441694c86..d5e0e8d32542 100644 --- a/drivers/media/platform/vimc/vimc-common.h +++ b/drivers/media/platform/vimc/vimc-common.h @@ -69,7 +69,7 @@ do { \ * V4L2_PIX_FMT_* fourcc pixelformat and its bytes per pixel (bpp) */ struct vimc_pix_map { - unsigned int code[1]; + unsigned int code[8]; unsigned int bpp; u32 pixelformat; bool bayer;