| Message ID | 20220510115147.19360-1-laurent.pinchart@ideasonboard.com |
|---|---|
| Headers | show |
| Series |
|
| Related | show |
And of course I sent this to the wrong list... All my apologies for the upcoming resend to the linux-media mailing list :-S On Tue, May 10, 2022 at 02:50:57PM +0300, Laurent Pinchart via libcamera-devel wrote: > Hello, > > This patch series prepares the imx7-media-csi for destaging by > decoupling it from the helpers shared with the i.MX6 IPUv3. > > The strategy Paul and I have followed is to import copies of helper code > and, refactor it within the imx7-media-csi driver, and repeat until no > more shared helpers are used. There is still room for refactoring and > simplification of the imx7-media-csi driver, but I believe it is now in > a state clean enough to be moved out of staging. > > The series also includes a few fixes or improvements in supported > formats that are now made possible thanks to this refactoring. See > patches 45/50 and 46/50 for details. > > The code size has grown as a result. This is partly offset by code in > the shared helpers that can be removed or simplified, but I haven't > starting working on that. The helpers are now used for the i.MX6 IPUv3 > only, so I will leave this exercise to anyone who would be interested in > destaging that driver as well. > > Some of the items in the TODO file related to the imx7-media-csi driver > have been addressed. The two remaining items are frame interval monitor > support and restricting the list of supported formats to the SoC > version. The former isn't a destaging blocker in my opinion, as the > feature can be added later if desired (and frame interval monitoring > should then be moved to the V4L2 core). I believe the latter could also > be addressed after destaging the driver, but in any case, this is a > discussion for a future destaging series (which may come as soon as this > one is accepted). > > Alexander, this also could greatly simplify your "[PATCH v3 0/8] > imx7/imx8mm media / csi patches" series. > > Laurent Pinchart (48): > staging: media: imx: imx7-media-csi: Initialize locks early on > staging: media: imx: imx7-media-csi: Split imx_media_dev from probe() > staging: media: imx: imx7-media-csi: Import notifier helpers > staging: media: imx: imx7-media-csi: Drop duplicate link creation > staging: media: imx: imx7-media-csi: Drop the imx_media notifier > staging: media: imx: imx7-media-csi: Don't populate vdev lists > staging: media: imx: imx7-media-csi: Drop unused frame_interval > staging: media: imx: imx7-media-csi: Move format init to probe time > staging: media: imx: imx7-media-csi: Import video device helpers > staging: media: imx: imx7-media-csi: Drop legacy video device support > staging: media: imx: imx7-media-csi: Drop unused controls support > staging: media: imx: imx7-media-csi: Reorganize imx7_csi structure > staging: media: imx: imx7-media-csi: Fold capture_priv into imx7_csi > staging: media: imx: imx7-media-csi: Ensure consistent function prefix > staging: media: imx: imx7-media-csi: Don't set subdev group id > staging: media: imx: imx7-media-csi: Import imx_media_dev_init() > helper > staging: media: imx: imx7-media-csi: Embed imx_media_dev in imx7_csi > staging: media: imx: imx7-media-csi: Drop imx_media_add_video_device > call > staging: media: imx: imx7-media-csi: Don't initialize unused fields > staging: media: imx: imx7-media-csi: Inline imx_media_pipeline_pad() > staging: media: imx: imx7-media-csi: Import > imx_media_pipeline_set_stream() > staging: media: imx: imx7-media-csi: Avoid unnecessary casts > staging: media: imx: imx7-media-csi: Inline pipeline start/stop > staging: media: imx: imx7-media-csi: Fold imx_media_dev into imx7_csi > staging: media: imx: imx7-media-csi: Decouple from imx_media_buffer > staging: media: imx: imx7-media-csi: Fold imx_media_video_dev into > imx7_csi > staging: media: imx: imx7-media-csi: Store imx7_csi in drv data > staging: media: imx: imx7-media-csi: Decouple from imx_media_dma_buf > staging: media: imx: imx7-media-csi: Decouple from shared macros > staging: media: imx: imx7-media-csi: Drop error message on alloc > failure > staging: media: imx: imx7-media-csi: Import format helpers > staging: media: imx: imx7-media-csi: Replace ipu_color_space with bool > yuv field > staging: media: imx: imx7-media-csi: Drop IC support from > imx7_csi_try_colorimetry() > staging: media: imx: imx7-media-csi: Drop IPU-only formats > staging: media: imx: imx7-media-csi: Drop unsupported YUV and RGB > formats > staging: media: imx: imx7-media-csi: Make default formats consistent > staging: media: imx: imx7-media-csi: Define macro for default mbus > code > staging: media: imx: imx7-media-csi: Simplify default mbus code in > try_fmt > staging: media: imx: imx7-media-csi: Drop YUV/RGB/BAYER format > selectors > staging: media: imx: imx7-media-csi: Drop unneeded imx7_csi_pixfmt > fields > staging: media: imx: imx7-media-csi: Inline imx7_csi_init_mbus_fmt() > staging: media: imx: imx7-media-csi: Simplify default format in > try_fmt > staging: media: imx: imx7-media-csi: Fix list of supported formats > staging: media: imx: imx7-media-csi: Add V4L2_PIX_FMT_Y14 support > staging: media: imx: imx7-media-csi: Drop unneeded pixel format > validation > staging: media: imx: imx7-media-csi: Inline > imx7_csi_enum_pixel_formats() > staging: media: imx: imx7-media-csi: Drop V4L2 events support > staging: media: imx: imx7-media-csi: Drop usage of shared helpers > > Paul Elder (2): > staging: media: imx: imx7-media-csi: Move misc init out of probe() > staging: media: imx: imx7-media-csi: Remove imx_media_of_add_csi > > drivers/staging/media/imx/imx7-media-csi.c | 1370 +++++++++++++++++--- > 1 file changed, 1172 insertions(+), 198 deletions(-) > > > base-commit: c5eb0a61238dd6faf37f58c9ce61c9980aaffd7a > -- > Regards, > > Laurent Pinchart >
Hello, This patch series prepares the imx7-media-csi for destaging by decoupling it from the helpers shared with the i.MX6 IPUv3. The strategy Paul and I have followed is to import copies of helper code and, refactor it within the imx7-media-csi driver, and repeat until no more shared helpers are used. There is still room for refactoring and simplification of the imx7-media-csi driver, but I believe it is now in a state clean enough to be moved out of staging. The series also includes a few fixes or improvements in supported formats that are now made possible thanks to this refactoring. See patches 45/50 and 46/50 for details. The code size has grown as a result. This is partly offset by code in the shared helpers that can be removed or simplified, but I haven't starting working on that. The helpers are now used for the i.MX6 IPUv3 only, so I will leave this exercise to anyone who would be interested in destaging that driver as well. Some of the items in the TODO file related to the imx7-media-csi driver have been addressed. The two remaining items are frame interval monitor support and restricting the list of supported formats to the SoC version. The former isn't a destaging blocker in my opinion, as the feature can be added later if desired (and frame interval monitoring should then be moved to the V4L2 core). I believe the latter could also be addressed after destaging the driver, but in any case, this is a discussion for a future destaging series (which may come as soon as this one is accepted). Alexander, this also could greatly simplify your "[PATCH v3 0/8] imx7/imx8mm media / csi patches" series. Laurent Pinchart (48): staging: media: imx: imx7-media-csi: Initialize locks early on staging: media: imx: imx7-media-csi: Split imx_media_dev from probe() staging: media: imx: imx7-media-csi: Import notifier helpers staging: media: imx: imx7-media-csi: Drop duplicate link creation staging: media: imx: imx7-media-csi: Drop the imx_media notifier staging: media: imx: imx7-media-csi: Don't populate vdev lists staging: media: imx: imx7-media-csi: Drop unused frame_interval staging: media: imx: imx7-media-csi: Move format init to probe time staging: media: imx: imx7-media-csi: Import video device helpers staging: media: imx: imx7-media-csi: Drop legacy video device support staging: media: imx: imx7-media-csi: Drop unused controls support staging: media: imx: imx7-media-csi: Reorganize imx7_csi structure staging: media: imx: imx7-media-csi: Fold capture_priv into imx7_csi staging: media: imx: imx7-media-csi: Ensure consistent function prefix staging: media: imx: imx7-media-csi: Don't set subdev group id staging: media: imx: imx7-media-csi: Import imx_media_dev_init() helper staging: media: imx: imx7-media-csi: Embed imx_media_dev in imx7_csi staging: media: imx: imx7-media-csi: Drop imx_media_add_video_device call staging: media: imx: imx7-media-csi: Don't initialize unused fields staging: media: imx: imx7-media-csi: Inline imx_media_pipeline_pad() staging: media: imx: imx7-media-csi: Import imx_media_pipeline_set_stream() staging: media: imx: imx7-media-csi: Avoid unnecessary casts staging: media: imx: imx7-media-csi: Inline pipeline start/stop staging: media: imx: imx7-media-csi: Fold imx_media_dev into imx7_csi staging: media: imx: imx7-media-csi: Decouple from imx_media_buffer staging: media: imx: imx7-media-csi: Fold imx_media_video_dev into imx7_csi staging: media: imx: imx7-media-csi: Store imx7_csi in drv data staging: media: imx: imx7-media-csi: Decouple from imx_media_dma_buf staging: media: imx: imx7-media-csi: Decouple from shared macros staging: media: imx: imx7-media-csi: Drop error message on alloc failure staging: media: imx: imx7-media-csi: Import format helpers staging: media: imx: imx7-media-csi: Replace ipu_color_space with bool yuv field staging: media: imx: imx7-media-csi: Drop IC support from imx7_csi_try_colorimetry() staging: media: imx: imx7-media-csi: Drop IPU-only formats staging: media: imx: imx7-media-csi: Drop unsupported YUV and RGB formats staging: media: imx: imx7-media-csi: Make default formats consistent staging: media: imx: imx7-media-csi: Define macro for default mbus code staging: media: imx: imx7-media-csi: Simplify default mbus code in try_fmt staging: media: imx: imx7-media-csi: Drop YUV/RGB/BAYER format selectors staging: media: imx: imx7-media-csi: Drop unneeded imx7_csi_pixfmt fields staging: media: imx: imx7-media-csi: Inline imx7_csi_init_mbus_fmt() staging: media: imx: imx7-media-csi: Simplify default format in try_fmt staging: media: imx: imx7-media-csi: Fix list of supported formats staging: media: imx: imx7-media-csi: Add V4L2_PIX_FMT_Y14 support staging: media: imx: imx7-media-csi: Drop unneeded pixel format validation staging: media: imx: imx7-media-csi: Inline imx7_csi_enum_pixel_formats() staging: media: imx: imx7-media-csi: Drop V4L2 events support staging: media: imx: imx7-media-csi: Drop usage of shared helpers Paul Elder (2): staging: media: imx: imx7-media-csi: Move misc init out of probe() staging: media: imx: imx7-media-csi: Remove imx_media_of_add_csi drivers/staging/media/imx/imx7-media-csi.c | 1370 +++++++++++++++++--- 1 file changed, 1172 insertions(+), 198 deletions(-) base-commit: c5eb0a61238dd6faf37f58c9ce61c9980aaffd7a