[{"id":1700,"web_url":"https://patchwork.libcamera.org/comment/1700/","msgid":"<20190524193722.GG1702@pendragon.ideasonboard.com>","date":"2019-05-24T19:37:22","subject":"Re: [libcamera-devel] [PATCH 5/6] include: linux: intel-ipu3: Force\n\talignement to 32 bytes","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Fri, May 24, 2019 at 06:21:38PM +0200, Jacopo Mondi wrote:\n> Fix compilation error:\n> include/linux/intel-ipu3.h:2475:35: error: ‘ipu3_uapi_acc_param::awb_fr’\n> offset 36756 in ‘ipu3_uapi_acc_param’ isn’t aligned to 32\n> [-Werror=packed-not-aligned]\n> \n> by forcing alignment to 32 bytes for struct ipu3_uapi_awb_fr_config_s.\n> \n> As the header is exported from Linux v5.1 this is a workaround and\n> should probably be fixed in the kernel headers themselves.\n\nDoes it change the layout of the structure in memory ? If so we can't do\nthis, as the structure is passed to the hardware (or rather firmware) so\nits layout is fixed.\n\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  include/linux/intel-ipu3.h | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/include/linux/intel-ipu3.h b/include/linux/intel-ipu3.h\n> index f758c9ba230b..fe6e8ed15eb1 100644\n> --- a/include/linux/intel-ipu3.h\n> +++ b/include/linux/intel-ipu3.h\n> @@ -2472,7 +2472,7 @@ struct ipu3_uapi_acc_param {\n>  \tstruct ipu3_uapi_yuvp1_yds_config yds2 __attribute__((aligned(32)));\n>  \tstruct ipu3_uapi_yuvp2_tcc_static_config tcc __attribute__((aligned(32)));\n>  \tstruct ipu3_uapi_anr_config anr;\n> -\tstruct ipu3_uapi_awb_fr_config_s awb_fr;\n> +\tstruct ipu3_uapi_awb_fr_config_s awb_fr __attribute__((aligned(32)));\n>  \tstruct ipu3_uapi_ae_config ae;\n>  \tstruct ipu3_uapi_af_config_s af;\n>  \tstruct ipu3_uapi_awb_config awb;","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E03EF60E4C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 24 May 2019 21:37:40 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 741B9510;\n\tFri, 24 May 2019 21:37:40 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1558726660;\n\tbh=m1cQ4UTYQ+QzkN22cKHK4qpf8mkpRKIV+cvyjJekmpc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=UCSRbJ75RcYWH1FzATrvb3DkP71q2LcfdvHJPzZn4uHZ+fFV+EFpR4q5C0K/tCbVD\n\tDfto95Lrvox+Vr5xU2Id6FoVamIHu+owMMiwX6kDxcuN3m4432WErpGEBzfYJl8Zmp\n\trFS0diHAXKbKH3bLohBfA4JYyeiyo8BjtSM4anmg=","Date":"Fri, 24 May 2019 22:37:22 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190524193722.GG1702@pendragon.ideasonboard.com>","References":"<20190524162139.4446-1-jacopo@jmondi.org>\n\t<20190524162139.4446-6-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190524162139.4446-6-jacopo@jmondi.org>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 5/6] include: linux: intel-ipu3: Force\n\talignement to 32 bytes","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Fri, 24 May 2019 19:37:41 -0000"}},{"id":1704,"web_url":"https://patchwork.libcamera.org/comment/1704/","msgid":"<20190527084226.hghfv3pbf6ttei6k@uno.localdomain>","date":"2019-05-27T08:42:26","subject":"Re: [libcamera-devel] [PATCH 5/6] include: linux: intel-ipu3: Force\n\talignement to 32 bytes","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Fri, May 24, 2019 at 10:37:22PM +0300, Laurent Pinchart wrote:\n> Hi Jacopo,\n>\n> On Fri, May 24, 2019 at 06:21:38PM +0200, Jacopo Mondi wrote:\n> > Fix compilation error:\n> > include/linux/intel-ipu3.h:2475:35: error: ‘ipu3_uapi_acc_param::awb_fr’\n> > offset 36756 in ‘ipu3_uapi_acc_param’ isn’t aligned to 32\n> > [-Werror=packed-not-aligned]\n> >\n> > by forcing alignment to 32 bytes for struct ipu3_uapi_awb_fr_config_s.\n> >\n> > As the header is exported from Linux v5.1 this is a workaround and\n> > should probably be fixed in the kernel headers themselves.\n>\n> Does it change the layout of the structure in memory ? If so we can't do\n> this, as the structure is passed to the hardware (or rather firmware) so\n> its layout is fixed.\n\nGood question.\n\nThe 'struct ipu3_uapi_awb_fr_config_s' is itself defined as\n\n        struct ipu3_uapi_awb_fr_config_s {\n                struct ipu3_uapi_grid_config grid_cfg;\n                __u8 bayer_coeff[6];\n                __u16 reserved1;\n                __u32 bayer_sign;\n                __u8 bayer_nf;\n                __u8 reserved2[3];\n        } __attribute__((aligned(32))) __attribute__((packed));\n\nSo it seems it is already 32 bytes aligned.\n\nThe error I tried to fix here is reported by gcc8.3.0 while gcc5.4.0\n(which I use to build on my Soraka target) does not complain about it.\n\nI also tried with clang8 and it actually complains about a different issue,\nbut not this one:\n\n-------------------------------------------------------------------------------\no 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o' -c ../src/libcamera/pipeline/ipu3/ipu3.cpp\n../src/libcamera/pipeline/ipu3/ipu3.cpp:994:46: error: taking address of packed member 'awb_raw_buffer' of class or structure 'ipu3_uapi_stats_3a' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]\n        struct ipu3_uapi_awb_raw_buffer *raw_awb = &stats_3a->awb_raw_buffer;\n                                                    ^~~~~~~~~~~~~~~~~~~~~~~~\n-------------------------------------------------------------------------------\n\nThis one solved as well by adding an __attribute__((aligned(32))) to the\n'awb_raw_buffer' field definition  in 'struct ipu3_uapi_stats_3a'\n\nTo add fun, clang3.8 complains about yet-a-different-error but not\nthis one, see below [1]).\n\nThis inconsistencies between different compiler and different versions\nof the same compiler makes me think this is a newly introduced\nwarning/error flag and compilers are still stabilizing on (or their\nbehavior is actually diverging).\n\nTo sum up: I think it is safe to add that __aligned__ directive, as\nprinting out the size of the structure gives back a number which is a\n32 bytes multiple. The error is only reported by gcc8 not gcc5.4 and\nnot by any clang version, not clang8 nor clang3.8 (which in turn,\ncomplain about other two different issues...)\n\nI would lean on keeping this patch in our tree, just to silence gcc8\nwhile verifing if the other version still complains about it or not,\npossibly with the help of buildroot builds, which might tests far more\ncompiler versions than what we could do by ourselves alone.\n\nWhat do others (specifically who worked on integration with multiple\ntoolchains as Kieran did) think on this?\n\nThanks\n   j\n\n[1] Compiling with clang3.8.0 (which I use on my Soraka taget) leads to\nyet-another-error, which I report for completness here. This might\nactually deserve a fix and I'll consider sending a patch.\n\n-------------------------------------------------------------------------------\n[2/29] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o'.\nninja: build stopped: subcommand failed.\nroot@libcamera:/home/cam/libcamera.git/build-clang# ninja\n[29/29] Linking target test/timer.\nroot@libcamera:/home/cam/libcamera.git/build-clang# ninja\n[5/30] Generating symbol file 'src/libcamera/4ab8042@@camera@sha/libcamera.so.symbols'.\nroot@libcamera:/home/cam/libcamera.git/build-clang# ninja\n[3/30] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o'.\nFAILED: clang++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -I../src/libcamera/include -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC  -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o' -c ../src/libcamera/pipeline/vimc.cpp\n../src/libcamera/pipeline/vimc.cpp:90:3: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]\n                V4L2_PIX_FMT_BGR24,\n                ^~~~~~~~~~~~~~~~~~~\n../include/linux/videodev2.h:520:30: note: expanded from macro 'V4L2_PIX_FMT_BGR24'\n#define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */\n                             ^\n../include/linux/videodev2.h:80:2: note: expanded from macro 'v4l2_fourcc'\n        ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))\n        ^\n1 error generated.\n[3/30] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o'.\nFAILED: clang++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -I../src/libcamera/include -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC  -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o' -c ../src/libcamera/pipeline/rkisp1/rkisp1.cpp\n../src/libcamera/pipeline/rkisp1/rkisp1.cpp:125:3: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]\n                V4L2_PIX_FMT_YUYV,\n                ^~~~~~~~~~~~~~~~~~\n../include/linux/videodev2.h:549:30: note: expanded from macro 'V4L2_PIX_FMT_YUYV'\n#define V4L2_PIX_FMT_YUYV    v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */\n                             ^\n../include/linux/videodev2.h:80:2: note: expanded from macro 'v4l2_fourcc'\n        ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))\n        ^\n1 error generated.\n[3/30] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o'.\nninja: build stopped: subcommand failed.\n-------------------------------------------------------------------------------\n\n>\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  include/linux/intel-ipu3.h | 2 +-\n> >  1 file changed, 1 insertion(+), 1 deletion(-)\n> >\n> > diff --git a/include/linux/intel-ipu3.h b/include/linux/intel-ipu3.h\n> > index f758c9ba230b..fe6e8ed15eb1 100644\n> > --- a/include/linux/intel-ipu3.h\n> > +++ b/include/linux/intel-ipu3.h\n> > @@ -2472,7 +2472,7 @@ struct ipu3_uapi_acc_param {\n> >  \tstruct ipu3_uapi_yuvp1_yds_config yds2 __attribute__((aligned(32)));\n> >  \tstruct ipu3_uapi_yuvp2_tcc_static_config tcc __attribute__((aligned(32)));\n> >  \tstruct ipu3_uapi_anr_config anr;\n> > -\tstruct ipu3_uapi_awb_fr_config_s awb_fr;\n> > +\tstruct ipu3_uapi_awb_fr_config_s awb_fr __attribute__((aligned(32)));\n> >  \tstruct ipu3_uapi_ae_config ae;\n> >  \tstruct ipu3_uapi_af_config_s af;\n> >  \tstruct ipu3_uapi_awb_config awb;\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay10.mail.gandi.net (relay10.mail.gandi.net\n\t[217.70.178.230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ED96E600EA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 May 2019 10:41:18 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay10.mail.gandi.net (Postfix) with ESMTPSA id 79F2E240008;\n\tMon, 27 May 2019 08:41:18 +0000 (UTC)"],"Date":"Mon, 27 May 2019 10:42:26 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190527084226.hghfv3pbf6ttei6k@uno.localdomain>","References":"<20190524162139.4446-1-jacopo@jmondi.org>\n\t<20190524162139.4446-6-jacopo@jmondi.org>\n\t<20190524193722.GG1702@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"cd3sxonl5c4w7eid\"","Content-Disposition":"inline","In-Reply-To":"<20190524193722.GG1702@pendragon.ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH 5/6] include: linux: intel-ipu3: Force\n\talignement to 32 bytes","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 27 May 2019 08:41:19 -0000"}},{"id":1710,"web_url":"https://patchwork.libcamera.org/comment/1710/","msgid":"<20190527132239.GA8974@bigcity.dyn.berto.se>","date":"2019-05-27T13:22:39","subject":"Re: [libcamera-devel] [PATCH 5/6] include: linux: intel-ipu3: Force\n\talignement to 32 bytes","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi,\n\nThe proposed upstream fix is [1], I propose we take this patch as is but \nmention the upstream patch in the commit message. Then when the fix hits \nupstream refresh the header in libcamera.\n\n1.  https://www.mail-archive.com/linux-media@vger.kernel.org/msg145250.html\n\nWith this mentioned in the commit message,\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\nOn 2019-05-27 10:42:26 +0200, Jacopo Mondi wrote:\n> Hi Laurent,\n> \n> On Fri, May 24, 2019 at 10:37:22PM +0300, Laurent Pinchart wrote:\n> > Hi Jacopo,\n> >\n> > On Fri, May 24, 2019 at 06:21:38PM +0200, Jacopo Mondi wrote:\n> > > Fix compilation error:\n> > > include/linux/intel-ipu3.h:2475:35: error: ‘ipu3_uapi_acc_param::awb_fr’\n> > > offset 36756 in ‘ipu3_uapi_acc_param’ isn’t aligned to 32\n> > > [-Werror=packed-not-aligned]\n> > >\n> > > by forcing alignment to 32 bytes for struct ipu3_uapi_awb_fr_config_s.\n> > >\n> > > As the header is exported from Linux v5.1 this is a workaround and\n> > > should probably be fixed in the kernel headers themselves.\n> >\n> > Does it change the layout of the structure in memory ? If so we can't do\n> > this, as the structure is passed to the hardware (or rather firmware) so\n> > its layout is fixed.\n> \n> Good question.\n> \n> The 'struct ipu3_uapi_awb_fr_config_s' is itself defined as\n> \n>         struct ipu3_uapi_awb_fr_config_s {\n>                 struct ipu3_uapi_grid_config grid_cfg;\n>                 __u8 bayer_coeff[6];\n>                 __u16 reserved1;\n>                 __u32 bayer_sign;\n>                 __u8 bayer_nf;\n>                 __u8 reserved2[3];\n>         } __attribute__((aligned(32))) __attribute__((packed));\n> \n> So it seems it is already 32 bytes aligned.\n> \n> The error I tried to fix here is reported by gcc8.3.0 while gcc5.4.0\n> (which I use to build on my Soraka target) does not complain about it.\n> \n> I also tried with clang8 and it actually complains about a different issue,\n> but not this one:\n> \n> -------------------------------------------------------------------------------\n> o 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o' -c ../src/libcamera/pipeline/ipu3/ipu3.cpp\n> ../src/libcamera/pipeline/ipu3/ipu3.cpp:994:46: error: taking address of packed member 'awb_raw_buffer' of class or structure 'ipu3_uapi_stats_3a' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]\n>         struct ipu3_uapi_awb_raw_buffer *raw_awb = &stats_3a->awb_raw_buffer;\n>                                                     ^~~~~~~~~~~~~~~~~~~~~~~~\n> -------------------------------------------------------------------------------\n> \n> This one solved as well by adding an __attribute__((aligned(32))) to the\n> 'awb_raw_buffer' field definition  in 'struct ipu3_uapi_stats_3a'\n> \n> To add fun, clang3.8 complains about yet-a-different-error but not\n> this one, see below [1]).\n> \n> This inconsistencies between different compiler and different versions\n> of the same compiler makes me think this is a newly introduced\n> warning/error flag and compilers are still stabilizing on (or their\n> behavior is actually diverging).\n> \n> To sum up: I think it is safe to add that __aligned__ directive, as\n> printing out the size of the structure gives back a number which is a\n> 32 bytes multiple. The error is only reported by gcc8 not gcc5.4 and\n> not by any clang version, not clang8 nor clang3.8 (which in turn,\n> complain about other two different issues...)\n> \n> I would lean on keeping this patch in our tree, just to silence gcc8\n> while verifing if the other version still complains about it or not,\n> possibly with the help of buildroot builds, which might tests far more\n> compiler versions than what we could do by ourselves alone.\n> \n> What do others (specifically who worked on integration with multiple\n> toolchains as Kieran did) think on this?\n> \n> Thanks\n>    j\n> \n> [1] Compiling with clang3.8.0 (which I use on my Soraka taget) leads to\n> yet-another-error, which I report for completness here. This might\n> actually deserve a fix and I'll consider sending a patch.\n> \n> -------------------------------------------------------------------------------\n> [2/29] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o'.\n> ninja: build stopped: subcommand failed.\n> root@libcamera:/home/cam/libcamera.git/build-clang# ninja\n> [29/29] Linking target test/timer.\n> root@libcamera:/home/cam/libcamera.git/build-clang# ninja\n> [5/30] Generating symbol file 'src/libcamera/4ab8042@@camera@sha/libcamera.so.symbols'.\n> root@libcamera:/home/cam/libcamera.git/build-clang# ninja\n> [3/30] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o'.\n> FAILED: clang++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -I../src/libcamera/include -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC  -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_vimc.cpp.o' -c ../src/libcamera/pipeline/vimc.cpp\n> ../src/libcamera/pipeline/vimc.cpp:90:3: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]\n>                 V4L2_PIX_FMT_BGR24,\n>                 ^~~~~~~~~~~~~~~~~~~\n> ../include/linux/videodev2.h:520:30: note: expanded from macro 'V4L2_PIX_FMT_BGR24'\n> #define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */\n>                              ^\n> ../include/linux/videodev2.h:80:2: note: expanded from macro 'v4l2_fourcc'\n>         ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))\n>         ^\n> 1 error generated.\n> [3/30] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o'.\n> FAILED: clang++ -Isrc/libcamera/4ab8042@@camera@sha -Isrc/libcamera -I../src/libcamera -Iinclude -I../include -I../src/libcamera/include -Xclang -fcolor-diagnostics -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++11 -g -Wno-unused-parameter -include config.h -fPIC  -MD -MQ 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o' -MF 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o.d' -o 'src/libcamera/4ab8042@@camera@sha/pipeline_rkisp1_rkisp1.cpp.o' -c ../src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> ../src/libcamera/pipeline/rkisp1/rkisp1.cpp:125:3: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]\n>                 V4L2_PIX_FMT_YUYV,\n>                 ^~~~~~~~~~~~~~~~~~\n> ../include/linux/videodev2.h:549:30: note: expanded from macro 'V4L2_PIX_FMT_YUYV'\n> #define V4L2_PIX_FMT_YUYV    v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16  YUV 4:2:2     */\n>                              ^\n> ../include/linux/videodev2.h:80:2: note: expanded from macro 'v4l2_fourcc'\n>         ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))\n>         ^\n> 1 error generated.\n> [3/30] Compiling C++ object 'src/libcamera/4ab8042@@camera@sha/pipeline_ipu3_ipu3.cpp.o'.\n> ninja: build stopped: subcommand failed.\n> -------------------------------------------------------------------------------\n> \n> >\n> > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > ---\n> > >  include/linux/intel-ipu3.h | 2 +-\n> > >  1 file changed, 1 insertion(+), 1 deletion(-)\n> > >\n> > > diff --git a/include/linux/intel-ipu3.h b/include/linux/intel-ipu3.h\n> > > index f758c9ba230b..fe6e8ed15eb1 100644\n> > > --- a/include/linux/intel-ipu3.h\n> > > +++ b/include/linux/intel-ipu3.h\n> > > @@ -2472,7 +2472,7 @@ struct ipu3_uapi_acc_param {\n> > >  \tstruct ipu3_uapi_yuvp1_yds_config yds2 __attribute__((aligned(32)));\n> > >  \tstruct ipu3_uapi_yuvp2_tcc_static_config tcc __attribute__((aligned(32)));\n> > >  \tstruct ipu3_uapi_anr_config anr;\n> > > -\tstruct ipu3_uapi_awb_fr_config_s awb_fr;\n> > > +\tstruct ipu3_uapi_awb_fr_config_s awb_fr __attribute__((aligned(32)));\n> > >  \tstruct ipu3_uapi_ae_config ae;\n> > >  \tstruct ipu3_uapi_af_config_s af;\n> > >  \tstruct ipu3_uapi_awb_config awb;\n> >\n> > --\n> > Regards,\n> >\n> > Laurent Pinchart\n\n\n\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x141.google.com (mail-lf1-x141.google.com\n\t[IPv6:2a00:1450:4864:20::141])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7AE3D60E47\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 May 2019 15:22:41 +0200 (CEST)","by mail-lf1-x141.google.com with SMTP id y13so12043023lfh.9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 May 2019 06:22:41 -0700 (PDT)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\th14sm2309834ljj.11.2019.05.27.06.22.39\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tMon, 27 May 2019 06:22:39 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=B8dWveEXIL6d0glXkve+ZCQSSZVUCBxWT4R1kCEuA2o=;\n\tb=T1sUUQiaWgl9xxAcXR/81ND/kvg/J40EsVEmTvzqqJcQJvCb+SV0KVIdJQsYKBV6rO\n\t0anPv3TDzyhWIJa5VA3w8yWAt0juAoSPX4IYgEEtUH02yDhXsm+gUwxgqt7Pt7h0B0GU\n\tt1KjPaU1gpvXs3liQWHlC9RTklBu6jEA81lPA16TXOTYTbcQJWa+JuOX3B/rIsFrmTsh\n\t3DuMRjHhQwXYzZx3zHcIL2vhSuRa0BBGLxBw1t1NPv+vnqwgvzIJWeVYb5vTFZxSKRH7\n\tY2SRXKvfLJHH9KGWxMuEhNDD5RUYjY31toVwDluHSUDlBQdwv9HPoMbE3FA5zwRr/4Ph\n\tY6nQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=B8dWveEXIL6d0glXkve+ZCQSSZVUCBxWT4R1kCEuA2o=;\n\tb=gjZ3B1y5v1xVhOKbjHPgkKg2PVUKXrqtxHmP4vYULAO+8SyvYUFVSB6OfJKpZH9VU9\n\t1zrpdoo+4oMm/G/ByCFaBEb/WkBvWaTXauZm6wRujhcP21dAtp/7+YjJzP1TyizLZPV4\n\ty6Mx9FT24alr+6Fns32lWUEgucyhR3Klub/cY/1MjSDStv6VyMXFdchh4Yyh3k7vwn8c\n\tQovySRFTlphmm3414R/qaer07fWN7YNjzGX3VKprRX1oXKqJ1oxFqZ9Ke4X6rHm9qBk/\n\tvS//42264bjDtOgNWurP3irXJkRvNyAYNFztyi+juF2MZTdAa4cW0F10/r29wWJbEOyz\n\tne4w==","X-Gm-Message-State":"APjAAAV7cr9KB7Ix3/FFyny3vc/aqXqAxmCAOQn+BvnwM1p6x9lXalQn\n\tQzVkvahhPRp10/GjzuD2nRzMjg==","X-Google-Smtp-Source":"APXvYqwHQxZeUf49RyM7Ej2LB5tIJkJF0HjsmhFNs8OE6Gaj8nq2gW/6R9Xm7rSLi1kevAWwW3kBUw==","X-Received":"by 2002:ac2:5595:: with SMTP id v21mr5804511lfg.54.1558963360317;\n\tMon, 27 May 2019 06:22:40 -0700 (PDT)","Date":"Mon, 27 May 2019 15:22:39 +0200","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Message-ID":"<20190527132239.GA8974@bigcity.dyn.berto.se>","References":"<20190524162139.4446-1-jacopo@jmondi.org>\n\t<20190524162139.4446-6-jacopo@jmondi.org>\n\t<20190524193722.GG1702@pendragon.ideasonboard.com>\n\t<20190527084226.hghfv3pbf6ttei6k@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190527084226.hghfv3pbf6ttei6k@uno.localdomain>","User-Agent":"Mutt/1.11.4 (2019-03-13)","Subject":"Re: [libcamera-devel] [PATCH 5/6] include: linux: intel-ipu3: Force\n\talignement to 32 bytes","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 27 May 2019 13:22:41 -0000"}}]