[{"id":31018,"web_url":"https://patchwork.libcamera.org/comment/31018/","msgid":"<20240831005201.GU3811@pendragon.ideasonboard.com>","date":"2024-08-31T00:52:01","subject":"Re: [PATCH v2 00/20] Remove unused includes","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Milan,\n\nThank you for the series. It looks like you went through a rabbit hole\n:-)\n\nOn Fri, Aug 30, 2024 at 05:26:57PM +0200, Milan Zamazal wrote:\n> There is quite a lot of include’s that are actually unused.  They don’t\n> cause much trouble but they should still be removed in order to:\n> \n> - keep order,\n> - avoid LSP warnings when working with the code,\n\nWhich LSP server do you use ? clangd ? I assume it's based on\nclang-format for coding formatting, so that should be fine as that's we\nuse in checkstyle.py too.\n\n> - to remove unneeded extra lines.\n> \n> I have identified the unused includes by inspecting warnings issued by\n> LSP.  LSP understands the difference between direct and indirect\n> imports.  I have inspected its reports in some cases and it seems to be\n> correct most of the time so I trust it and haven’t inspected everything,\n> which would be waste of resources.\n\nI wasted some resources, sorry :-)\n\n> I have noticed only two problems:\n> \n> - LSP reports in my environment unused <chrono> includes despite of\n>   presence of\n> \n>     using std::literals::chrono_literals;\n> \n>   or\n> \n>     using std::chrono_literals;\n> \n>   (these two should be probably unified but this is out of scope of this\n>   series).  This happens also in a trivial code and is most likely a\n>   bug.\n> \n> - LSP may report unnecessary inclusion of\n>   \"libcamera/internal/framebuffer.h\" although it is actually needed to\n>   be able to access something from FrameBuffer::Private.\n> \n> It’s interesting that in both the cases LSP reports the corresponding\n> problems when the supposedly unused include is removed.\n> \n> I’m also not sure whether header include removal can affect Doxygen\n> output in some way.  I supposed it doesn’t but if it does then the\n> patches must be inspected for such cases.\n\nI'm not aware of any issue there.\n\n> I haven’t removed includes of \"FOO.h\" in FOO.cpp files even if the\n> include is unused (which happens when FOO.cpp contains only\n> documentation).\n\nGood choice. Include the .h helps making sure it's self-contained.\n\n> My LSP based autoformatter reformatted some of the modified files.  Many\n> of the suggested changes look right so I kept most of them (and helped\n> the autoformatter to do a better thing in some cases), in separate\n> commits, rather than discarding them.  It’s annoying when editing a\n> source file and the autoformatter changes the code elsewhere; if the\n> autoformatter is wrong anywhere then the autoformatting rules should be\n> fixed if possible.\n\nSome of the changes look right and good, some are more in neutral\nterritory to me, but quite a few I don't like. Last time I looked at\nclang-format there I couldn't get it to match our coding style\nperfectly, but new options may have been added. If so, I agree it would\nbe best to bring it as close as possible to how we want code to be\nformatted. There will always be exceptions though.\n\n> I have inspected many source files but not all of them.  Although the\n> cleanup is most likely a bit incomplete, it should still make things\n> significantly better.\n> \n> I’m sorry for another long patch series but I tried to split the patches\n> in order to make them reasonably sized (and easy to review!) and by\n> possible areas of responsibility.\n\nYou did well, thank you for that.\n\n> Changes in v2:\n> - Add a missing include in tests.\n> \n> Milan Zamazal (20):\n>   tests: Add a missing iostream include\n>   libcamera: ipu3: Remove unused includes\n>   libcamera: ipu3: Replace wrong include\n>   libcamera: ipu3: Formatting improvements\n>   libcamera: rkisp1: Remove unused includes\n>   libcamera: rkisp1: Formatting improvements\n>   libcamera: libipa: Remove unused includes\n>   libcamera: uvcvideo: Remove unused includes\n>   libcamera: uvcvideo: Formatting improvement\n>   libcamera: v4l2: Remove unused includes\n>   libcamera: v4l2: Formatting improvements\n>   libcamera: v4l2_subdevice: Formatting improvements\n>   libcamera: v4l2: Fix indirect include\n>   libcamera: ipa: Remove unused includes\n>   libcamera: libcamera: Remove unused includes\n>   libcamera: libcamera: Add missing includes\n>   libcamera: libcamera: Formatting improvements\n>   libcamera: includes: Add missing includes\n>   libcamera: includes: Remove unused includes\n>   libcamera: includes: Formatting improvements\n> \n>  include/libcamera/base/event_dispatcher.h     |    2 -\n>  include/libcamera/base/log.h                  |   23 +-\n>  include/libcamera/base/memfd.h                |    2 -\n>  include/libcamera/base/signal.h               |    1 -\n>  include/libcamera/base/span.h                 |   41 +-\n>  include/libcamera/base/timer.h                |    1 -\n>  include/libcamera/base/utils.h                |    3 +-\n>  include/libcamera/framebuffer.h               |    1 -\n>  include/libcamera/internal/camera_manager.h   |    5 +-\n>  include/libcamera/internal/camera_sensor.h    |    1 -\n>  .../internal/device_enumerator_sysfs.h        |    1 -\n>  .../libcamera/internal/dma_buf_allocator.h    |    2 -\n>  include/libcamera/internal/formats.h          |    1 -\n>  .../libcamera/internal/ipa_data_serializer.h  |   11 +-\n>  include/libcamera/internal/ipa_proxy.h        |    2 -\n>  .../libcamera/internal/ipc_pipe_unixsocket.h  |    1 -\n>  include/libcamera/internal/media_device.h     |    1 -\n>  include/libcamera/internal/pipeline_handler.h |    3 -\n>  include/libcamera/internal/request.h          |    1 +\n>  .../libcamera/internal/shared_mem_object.h    |    1 -\n>  include/libcamera/ipa/ipa_interface.h         |    5 -\n>  include/libcamera/logging.h                   |    2 +\n>  include/libcamera/pixel_format.h              |    1 -\n>  include/libcamera/request.h                   |    1 -\n>  include/libcamera/stream.h                    |    1 -\n>  include/libcamera/transform.h                 |    2 -\n>  src/ipa/ipu3/algorithms/af.cpp                |    3 -\n>  src/ipa/ipu3/algorithms/agc.cpp               |   32 +-\n>  src/ipa/ipu3/algorithms/blc.cpp               |    6 +-\n>  src/ipa/ipu3/ipu3.cpp                         |   16 +-\n>  src/ipa/libipa/histogram.h                    |    1 -\n>  src/ipa/libipa/matrix.h                       |    1 -\n>  src/ipa/libipa/matrix_interpolator.cpp        |    7 -\n>  src/ipa/libipa/matrix_interpolator.h          |    2 -\n>  src/ipa/libipa/pwl.cpp                        |    2 -\n>  src/ipa/libipa/pwl.h                          |    3 -\n>  src/ipa/libipa/vector.h                       |    2 -\n>  src/ipa/rkisp1/algorithms/agc.h               |    1 -\n>  src/ipa/rkisp1/algorithms/awb.cpp             |   20 +-\n>  src/ipa/rkisp1/algorithms/ccm.cpp             |    4 -\n>  src/ipa/rkisp1/algorithms/dpf.cpp             |    6 +-\n>  src/ipa/rkisp1/rkisp1.cpp                     |   22 +-\n>  src/ipa/rkisp1/utils.h                        |    1 -\n>  src/libcamera/base/event_dispatcher_poll.cpp  |    4 +-\n>  src/libcamera/camera.cpp                      |    6 +-\n>  src/libcamera/controls.cpp                    |   32 +-\n>  .../converter/converter_v4l2_m2m.cpp          |    1 -\n>  src/libcamera/formats.cpp                     |    3 +-\n>  src/libcamera/ipa_data_serializer.cpp         |   97 +-\n>  src/libcamera/ipa_module.cpp                  |   16 +-\n>  src/libcamera/ipa_proxy.cpp                   |    1 -\n>  src/libcamera/orientation.cpp                 |   17 +-\n>  src/libcamera/pipeline/ipu3/frames.cpp        |    3 +-\n>  src/libcamera/pipeline/ipu3/ipu3.cpp          |   41 +-\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |    2 -\n>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |    6 +-\n>  src/libcamera/pipeline_handler.cpp            |    6 +-\n>  src/libcamera/process.cpp                     |    8 +-\n>  src/libcamera/sensor/camera_sensor.cpp        |    8 +-\n>  src/libcamera/shared_mem_object.cpp           |    5 +-\n>  src/libcamera/stream.cpp                      |    8 +-\n>  src/libcamera/v4l2_device.cpp                 |   19 +-\n>  src/libcamera/v4l2_subdevice.cpp              | 1311 +++++++++--------\n>  src/libcamera/v4l2_videodevice.cpp            |   37 +-\n>  src/v4l2/v4l2_camera.h                        |    1 -\n>  src/v4l2/v4l2_camera_proxy.cpp                |   46 +-\n>  src/v4l2/v4l2_compat.cpp                      |   20 +-\n>  src/v4l2/v4l2_compat_manager.cpp              |    5 +-\n>  .../generated_serializer_test.cpp             |    1 +\n>  69 files changed, 967 insertions(+), 982 deletions(-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 39079C324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 31 Aug 2024 00:52:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 223AA63466;\n\tSat, 31 Aug 2024 02:52:35 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AB9BC618FF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 31 Aug 2024 02:52:33 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0D2FA74C;\n\tSat, 31 Aug 2024 02:51:23 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"CdUy7W89\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1725065484;\n\tbh=Twg0roCEqcLC/7FexCptlw3jWlPEzTyOQiIxuZUBRJY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=CdUy7W89yyhbt1MSLDtz603daO8meNcsGg+ldn1zd+XKsIeEuBpx5jRW5mGKxfkAm\n\tlrpn3EuTckQThRmTtK2xxhJkSSTPYg7/eGCBFNYpRc7qs7vjbZ5s/D4oyiYAkV17GX\n\tBIXhwbNSSCckIZAjHlAHlnCTgVP4Jr7lf0QVKGr4=","Date":"Sat, 31 Aug 2024 03:52:01 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v2 00/20] Remove unused includes","Message-ID":"<20240831005201.GU3811@pendragon.ideasonboard.com>","References":"<20240830152721.1420313-1-mzamazal@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20240830152721.1420313-1-mzamazal@redhat.com>","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":31056,"web_url":"https://patchwork.libcamera.org/comment/31056/","msgid":"<87jzfut582.fsf@redhat.com>","date":"2024-09-02T16:01:17","subject":"Re: [PATCH v2 00/20] Remove unused includes","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Laurent,\n\nLaurent Pinchart <laurent.pinchart@ideasonboard.com> writes:\n\n> Hi Milan,\n>\n> Thank you for the series. It looks like you went through a rabbit hole\n> :-)\n>\n> On Fri, Aug 30, 2024 at 05:26:57PM +0200, Milan Zamazal wrote:\n>> There is quite a lot of include’s that are actually unused.  They don’t\n>> cause much trouble but they should still be removed in order to:\n>> \n>> - keep order,\n>> - avoid LSP warnings when working with the code,\n>\n> Which LSP server do you use ? clangd ? \n\nYes.\n\n> I assume it's based on clang-format for coding formatting, so that\n> should be fine as that's we use in checkstyle.py too.\n>\n>> - to remove unneeded extra lines.\n>> \n>> I have identified the unused includes by inspecting warnings issued by\n>> LSP.  LSP understands the difference between direct and indirect\n>> imports.  I have inspected its reports in some cases and it seems to be\n>> correct most of the time so I trust it and haven’t inspected everything,\n>> which would be waste of resources.\n>\n> I wasted some resources, sorry :-)\n\nThank you.\n\n>> I have noticed only two problems:\n>> \n>> - LSP reports in my environment unused <chrono> includes despite of\n>>   presence of\n>> \n>>     using std::literals::chrono_literals;\n>> \n>>   or\n>> \n>>     using std::chrono_literals;\n>> \n>>   (these two should be probably unified but this is out of scope of this\n>>   series).  This happens also in a trivial code and is most likely a\n>>   bug.\n>> \n>> - LSP may report unnecessary inclusion of\n>>   \"libcamera/internal/framebuffer.h\" although it is actually needed to\n>>   be able to access something from FrameBuffer::Private.\n>> \n>> It’s interesting that in both the cases LSP reports the corresponding\n>> problems when the supposedly unused include is removed.\n>> \n>> I’m also not sure whether header include removal can affect Doxygen\n>> output in some way.  I supposed it doesn’t but if it does then the\n>> patches must be inspected for such cases.\n>\n> I'm not aware of any issue there.\n>\n>> I haven’t removed includes of \"FOO.h\" in FOO.cpp files even if the\n>> include is unused (which happens when FOO.cpp contains only\n>> documentation).\n>\n> Good choice. Include the .h helps making sure it's self-contained.\n>\n>> My LSP based autoformatter reformatted some of the modified files.  Many\n>> of the suggested changes look right so I kept most of them (and helped\n>> the autoformatter to do a better thing in some cases), in separate\n>> commits, rather than discarding them.  It’s annoying when editing a\n>> source file and the autoformatter changes the code elsewhere; if the\n>> autoformatter is wrong anywhere then the autoformatting rules should be\n>> fixed if possible.\n>\n> Some of the changes look right and good, some are more in neutral\n> territory to me, but quite a few I don't like. Last time I looked at\n> clang-format there I couldn't get it to match our coding style\n> perfectly, but new options may have been added. If so, I agree it would\n> be best to bring it as close as possible to how we want code to be\n> formatted. There will always be exceptions though.\n\nOK.  For now, I simply reverted the unwanted changes and kept those that\nyou didn't object strongly enough.  We can work on improvements later,\nas needed.\n\n>> I have inspected many source files but not all of them.  Although the\n>> cleanup is most likely a bit incomplete, it should still make things\n>> significantly better.\n>> \n>> I’m sorry for another long patch series but I tried to split the patches\n>> in order to make them reasonably sized (and easy to review!) and by\n>> possible areas of responsibility.\n>\n> You did well, thank you for that.\n>\n>> Changes in v2:\n>> - Add a missing include in tests.\n>> \n>> Milan Zamazal (20):\n>>   tests: Add a missing iostream include\n>>   libcamera: ipu3: Remove unused includes\n>>   libcamera: ipu3: Replace wrong include\n>>   libcamera: ipu3: Formatting improvements\n>>   libcamera: rkisp1: Remove unused includes\n>>   libcamera: rkisp1: Formatting improvements\n>>   libcamera: libipa: Remove unused includes\n>>   libcamera: uvcvideo: Remove unused includes\n>>   libcamera: uvcvideo: Formatting improvement\n>>   libcamera: v4l2: Remove unused includes\n>>   libcamera: v4l2: Formatting improvements\n>>   libcamera: v4l2_subdevice: Formatting improvements\n>>   libcamera: v4l2: Fix indirect include\n>>   libcamera: ipa: Remove unused includes\n>>   libcamera: libcamera: Remove unused includes\n>>   libcamera: libcamera: Add missing includes\n>>   libcamera: libcamera: Formatting improvements\n>>   libcamera: includes: Add missing includes\n>>   libcamera: includes: Remove unused includes\n>>   libcamera: includes: Formatting improvements\n>> \n>>  include/libcamera/base/event_dispatcher.h     |    2 -\n>>  include/libcamera/base/log.h                  |   23 +-\n>>  include/libcamera/base/memfd.h                |    2 -\n>>  include/libcamera/base/signal.h               |    1 -\n>>  include/libcamera/base/span.h                 |   41 +-\n>>  include/libcamera/base/timer.h                |    1 -\n>>  include/libcamera/base/utils.h                |    3 +-\n>>  include/libcamera/framebuffer.h               |    1 -\n>>  include/libcamera/internal/camera_manager.h   |    5 +-\n>>  include/libcamera/internal/camera_sensor.h    |    1 -\n>>  .../internal/device_enumerator_sysfs.h        |    1 -\n>>  .../libcamera/internal/dma_buf_allocator.h    |    2 -\n>>  include/libcamera/internal/formats.h          |    1 -\n>>  .../libcamera/internal/ipa_data_serializer.h  |   11 +-\n>>  include/libcamera/internal/ipa_proxy.h        |    2 -\n>>  .../libcamera/internal/ipc_pipe_unixsocket.h  |    1 -\n>>  include/libcamera/internal/media_device.h     |    1 -\n>>  include/libcamera/internal/pipeline_handler.h |    3 -\n>>  include/libcamera/internal/request.h          |    1 +\n>>  .../libcamera/internal/shared_mem_object.h    |    1 -\n>>  include/libcamera/ipa/ipa_interface.h         |    5 -\n>>  include/libcamera/logging.h                   |    2 +\n>>  include/libcamera/pixel_format.h              |    1 -\n>>  include/libcamera/request.h                   |    1 -\n>>  include/libcamera/stream.h                    |    1 -\n>>  include/libcamera/transform.h                 |    2 -\n>>  src/ipa/ipu3/algorithms/af.cpp                |    3 -\n>>  src/ipa/ipu3/algorithms/agc.cpp               |   32 +-\n>>  src/ipa/ipu3/algorithms/blc.cpp               |    6 +-\n>>  src/ipa/ipu3/ipu3.cpp                         |   16 +-\n>>  src/ipa/libipa/histogram.h                    |    1 -\n>>  src/ipa/libipa/matrix.h                       |    1 -\n>>  src/ipa/libipa/matrix_interpolator.cpp        |    7 -\n>>  src/ipa/libipa/matrix_interpolator.h          |    2 -\n>>  src/ipa/libipa/pwl.cpp                        |    2 -\n>>  src/ipa/libipa/pwl.h                          |    3 -\n>>  src/ipa/libipa/vector.h                       |    2 -\n>>  src/ipa/rkisp1/algorithms/agc.h               |    1 -\n>>  src/ipa/rkisp1/algorithms/awb.cpp             |   20 +-\n>>  src/ipa/rkisp1/algorithms/ccm.cpp             |    4 -\n>>  src/ipa/rkisp1/algorithms/dpf.cpp             |    6 +-\n>>  src/ipa/rkisp1/rkisp1.cpp                     |   22 +-\n>>  src/ipa/rkisp1/utils.h                        |    1 -\n>>  src/libcamera/base/event_dispatcher_poll.cpp  |    4 +-\n>>  src/libcamera/camera.cpp                      |    6 +-\n>>  src/libcamera/controls.cpp                    |   32 +-\n>>  .../converter/converter_v4l2_m2m.cpp          |    1 -\n>>  src/libcamera/formats.cpp                     |    3 +-\n>>  src/libcamera/ipa_data_serializer.cpp         |   97 +-\n>>  src/libcamera/ipa_module.cpp                  |   16 +-\n>>  src/libcamera/ipa_proxy.cpp                   |    1 -\n>>  src/libcamera/orientation.cpp                 |   17 +-\n>>  src/libcamera/pipeline/ipu3/frames.cpp        |    3 +-\n>>  src/libcamera/pipeline/ipu3/ipu3.cpp          |   41 +-\n>>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |    2 -\n>>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |    6 +-\n>>  src/libcamera/pipeline_handler.cpp            |    6 +-\n>>  src/libcamera/process.cpp                     |    8 +-\n>>  src/libcamera/sensor/camera_sensor.cpp        |    8 +-\n>>  src/libcamera/shared_mem_object.cpp           |    5 +-\n>>  src/libcamera/stream.cpp                      |    8 +-\n>>  src/libcamera/v4l2_device.cpp                 |   19 +-\n>>  src/libcamera/v4l2_subdevice.cpp              | 1311 +++++++++--------\n>>  src/libcamera/v4l2_videodevice.cpp            |   37 +-\n>>  src/v4l2/v4l2_camera.h                        |    1 -\n>>  src/v4l2/v4l2_camera_proxy.cpp                |   46 +-\n>>  src/v4l2/v4l2_compat.cpp                      |   20 +-\n>>  src/v4l2/v4l2_compat_manager.cpp              |    5 +-\n>>  .../generated_serializer_test.cpp             |    1 +\n>>  69 files changed, 967 insertions(+), 982 deletions(-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id D0AB4C324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  2 Sep 2024 16:01:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C6CC1634CB;\n\tMon,  2 Sep 2024 18:01:28 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 38C59618FD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  2 Sep 2024 18:01:27 +0200 (CEST)","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n\t[209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-222-7NB3Cc8_Mo2uG12XGXreyA-1; Mon, 02 Sep 2024 12:01:22 -0400","by mail-wm1-f71.google.com with SMTP id\n\t5b1f17b1804b1-428040f49f9so41104735e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 02 Sep 2024 09:01:21 -0700 (PDT)","from nuthatch (ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-42bb6deb273sm143310985e9.8.2024.09.02.09.01.18\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 02 Sep 2024 09:01:18 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"TchSZN5x\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1725292885;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=kjwVzlcqbirrUUvvyCp8hdaW6x7NM056cCq7OrRUJ6k=;\n\tb=TchSZN5xbzJxB5x0skxqieZfkLfmgNhZT35TgyBdoDucdqMPIdW7r3DRR41x4tLoumiZ1o\n\tS/b2Xf+3o4kXwW1XZ829ZtahJmz/dynUeDrTWYiV3L084H6PIPD3l9acVF9x9IvlVaF4xd\n\ty6j6+8uIx3YS+FGjCWivslTtGVFHbIM=","X-MC-Unique":"7NB3Cc8_Mo2uG12XGXreyA-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1725292880; x=1725897680;\n\th=content-transfer-encoding:mime-version:user-agent:message-id:date\n\t:references:in-reply-to:subject:cc:to:from:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=kjwVzlcqbirrUUvvyCp8hdaW6x7NM056cCq7OrRUJ6k=;\n\tb=CLwQTGLPMezPzZS+rYC1JPvFbqZrRbADwKnzLEfqgqaUCSor35OKrBcLjzsVq2xDm1\n\t/y5Q8I2Ss42qv94isM5FTTKZPPeXXOqD7sOTq5mHgFV2PS1DQ/fR8b2ZE+TCf2KIIpWc\n\tB+qFk05pDkkJn1PilrfO4a0AzbRwFQeqsKhRmv3t7Fwa621ZRub4Q8lJJBFK3l/O5hiL\n\tixmkQmBt5dTsQzWHNv4u76uvnA6EvcQ+5ZvzyQrZ8P9eiJItHhfL5X3ZAYwNV9rHbtKh\n\thf8OXRZN14XhMccesINVmpGcxBC84hgfGAuLed7Df35YKd7scMLr0eFo68z+3PAUYOJg\n\tOX9A==","X-Gm-Message-State":"AOJu0YyhJcjIzIQ+IRSTO9EjX+rYluf+5UAoWL9eGneNwKuQS1UBTyPd\n\tvMN/zQsodNGILFS7lMuDPEH0MZ5/5SOj4ZPhZX9E/YIEOCGsLOt4Qv2itj1BBtfIpRTmRfncSip\n\tIwnLqsuTOBdrtdWWqq9vYuw0JPkANC+j6bwb4mI77Q9BDt6Bm7fK/wbOnZnz7sxdexu+6OY3JJH\n\tmvh+/0qtNcqDukDw8ndBUwN+SCXwWc6aERR+SwLQYUYvQri7PpnNo4U1M=","X-Received":["by 2002:a05:600c:470f:b0:425:7bbf:fd07 with SMTP id\n\t5b1f17b1804b1-42bb02c0727mr110958325e9.5.1725292879841; \n\tMon, 02 Sep 2024 09:01:19 -0700 (PDT)","by 2002:a05:600c:470f:b0:425:7bbf:fd07 with SMTP id\n\t5b1f17b1804b1-42bb02c0727mr110957925e9.5.1725292879214; \n\tMon, 02 Sep 2024 09:01:19 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IF8nE164FArldJ3/ZCX0v90tx7cqGOoWhcJ4g5GeiKhR1i+phCi1juS53RTDmJj4Jey6TShgQ==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v2 00/20] Remove unused includes","In-Reply-To":"<20240831005201.GU3811@pendragon.ideasonboard.com> (Laurent\n\tPinchart's message of \"Sat, 31 Aug 2024 03:52:01 +0300\")","References":"<20240830152721.1420313-1-mzamazal@redhat.com>\n\t<20240831005201.GU3811@pendragon.ideasonboard.com>","Date":"Mon, 02 Sep 2024 18:01:17 +0200","Message-ID":"<87jzfut582.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]