Message
Paul Elder
June 14, 2022, 7:10 p.m. UTC
Hello, This series depends on v4 of "media: rkisp1: Misc bug fixes and cleanups" [1]. The ISP integrated in the i.MX8MP is nearly the same as the rkisp1, and so we can reuse the rkisp1 driver for it. This series does some cleanup and refactoring of the rkisp1 driver, (patches 1/55 to 46/55), and then adds support for the i.MX8MP (patches 47/55 to 55/55). Paul [1] https://lore.kernel.org/linux-media/Ymbxs2p9Tuf331qM@pendragon.ideasonboard.com/T/ Laurent Pinchart (38): media: rkisp1: Enable compilation on ARCH_MXC media: rkisp1: Disable runtime PM in probe error path media: rkisp1: Read the ID register at probe time instead of streamon media: rkisp1: Rename rkisp1_match_data to rkisp1_info media: rkisp1: Access ISP version from info pointer media: rkisp1: cap: Print debug message on failed link validation media: rkisp1: Move sensor .s_stream() call to ISP media: rkisp1: Reject sensors without pixel rate control at bound time media: rkisp1: Create link from sensor to ISP at notifier bound time media: rkisp1: Create internal links at probe time media: rkisp1: Rename rkisp1_subdev_notifier() to rkisp1_subdev_notifier_register() media: v4l2-async: Add notifier operation to destroy asd instances media: rkisp1: Fix sensor source pad retrieval at bound time media: rkisp1: isp: Start CSI-2 receiver before ISP media: rkisp1: csi: Handle CSI-2 RX configuration fully in rkisp1-csi.c media: rkisp1: csi: Rename CSI functions with a common rkisp1_csi prefix media: rkisp1: csi: Move start delay to rkisp1_csi_start() media: rkisp1: csi: Pass sensor pointer to rkisp1_csi_config() media: rkisp1: csi: Constify argument to rkisp1_csi_start() media: rkisp1: isp: Don't initialize ret to 0 in rkisp1_isp_s_stream() media: rkisp1: isp: Pass mbus type and flags to rkisp1_config_cif() media: rkisp1: isp: Rename rkisp1_device.active_sensor to source media: rkisp1: isp: Add container_of wrapper to cast subdev to rkisp1_isp media: rkisp1: isp: Add rkisp1_device backpointer to rkisp1_isp media: rkisp1: isp: Pass rkisp1_isp pointer to internal ISP functions media: rkisp1: isp: Move input configuration to rkisp1_config_isp() media: rkisp1: isp: Merge ISP_ACQ_PROP configuration in single variable media: rkisp1: isp: Initialize some variables at declaration time media: rkisp1: isp: Fix whitespace issues media: rkisp1: isp: Constify various local variables media: rkisp1: isp: Rename rkisp1_get_remote_source() media: mc-entity: Add a new helper function to get a remote pad media: mc-entity: Add a new helper function to get a remote pad for a pad media: rkisp1: isp: Disallow multiple active sources media: rkisp1: csi: Plumb the CSI RX subdev media: rkisp1: Add infrastructure to support ISP features media: rkisp1: Make the internal CSI-2 receiver optional media: rkisp1: Configure gasket on i.MX8MP Paul Elder (17): media: rkisp1: debug: Add dump file in debugfs for MI buffer registers media: rkisp1: debug: Add debugfs files to monitor MI and ISP interrupts media: rkisp1: Save info pointer in rkisp1_device media: rkisp1: Make rkisp1_isp_mbus_info common media: rkisp1: Split CSI handling to separate file media: rkisp1: csi: Implement a V4L2 subdev for the CSI receiver media: rkisp1: Use fwnode_graph_for_each_endpoint dt-bindings: media: rkisp1: Add port for parallel interface media: rkisp1: Support the ISP parallel input dt-bindings: media: rkisp1: Add i.MX8MP ISP to compatible media: rkisp1: Add match data for i.MX8MP ISP media: rkisp1: Add and set registers for crop for i.MX8MP media: rkisp1: Add and set registers for output size config on i.MX8MP media: rkisp1: Add i.MX8MP-specific registers for MI and resizer media: rkisp1: Shift DMA buffer addresses on i.MX8MP media: rkisp1: Add register definitions for the test pattern generator media: rkisp1: Fix RSZ_CTRL bits for i.MX8MP .../bindings/media/rockchip-isp1.yaml | 30 +- Documentation/driver-api/media/mc-core.rst | 4 +- .../driver-api/media/v4l2-subdev.rst | 6 + drivers/media/mc/mc-entity.c | 69 ++ .../media/platform/rockchip/rkisp1/Kconfig | 2 +- .../media/platform/rockchip/rkisp1/Makefile | 1 + .../platform/rockchip/rkisp1/rkisp1-capture.c | 49 +- .../platform/rockchip/rkisp1/rkisp1-common.c | 148 ++++ .../platform/rockchip/rkisp1/rkisp1-common.h | 130 +++- .../platform/rockchip/rkisp1/rkisp1-csi.c | 525 ++++++++++++++ .../platform/rockchip/rkisp1/rkisp1-csi.h | 28 + .../platform/rockchip/rkisp1/rkisp1-debug.c | 55 +- .../platform/rockchip/rkisp1/rkisp1-dev.c | 440 +++++++----- .../platform/rockchip/rkisp1/rkisp1-isp.c | 679 +++++++----------- .../platform/rockchip/rkisp1/rkisp1-params.c | 2 +- .../platform/rockchip/rkisp1/rkisp1-regs.h | 87 +++ .../platform/rockchip/rkisp1/rkisp1-resizer.c | 43 +- .../platform/rockchip/rkisp1/rkisp1-stats.c | 4 +- drivers/media/v4l2-core/v4l2-async.c | 10 + include/media/media-entity.h | 63 ++ include/media/v4l2-async.h | 2 + include/uapi/linux/rkisp1-config.h | 3 + 22 files changed, 1735 insertions(+), 645 deletions(-) create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.h
Comments
Hi Paul, Thank you for the patches. On Wed, Jun 15, 2022 at 04:10:32AM +0900, Paul Elder wrote: > Hello, > > This series depends on v4 of "media: rkisp1: Misc bug fixes and cleanups" [1]. > > The ISP integrated in the i.MX8MP is nearly the same as the rkisp1, and > so we can reuse the rkisp1 driver for it. > > This series does some cleanup and refactoring of the rkisp1 driver, > (patches 1/55 to 46/55), and then adds support for the i.MX8MP (patches > 47/55 to 55/55). I have a few questions about the i.MX8MP support (the main one being about the version numbering scheme), which I'll ask in replies to the corresponding patches. Patches 01/55 to 46/55 could be merged already, once reviewed of course. As the series is large, let's see if we can motivate any reviewer :-) > [1] https://lore.kernel.org/linux-media/Ymbxs2p9Tuf331qM@pendragon.ideasonboard.com/T/ > > Laurent Pinchart (38): > media: rkisp1: Enable compilation on ARCH_MXC > media: rkisp1: Disable runtime PM in probe error path > media: rkisp1: Read the ID register at probe time instead of streamon > media: rkisp1: Rename rkisp1_match_data to rkisp1_info > media: rkisp1: Access ISP version from info pointer > media: rkisp1: cap: Print debug message on failed link validation > media: rkisp1: Move sensor .s_stream() call to ISP > media: rkisp1: Reject sensors without pixel rate control at bound time > media: rkisp1: Create link from sensor to ISP at notifier bound time > media: rkisp1: Create internal links at probe time > media: rkisp1: Rename rkisp1_subdev_notifier() to > rkisp1_subdev_notifier_register() > media: v4l2-async: Add notifier operation to destroy asd instances > media: rkisp1: Fix sensor source pad retrieval at bound time > media: rkisp1: isp: Start CSI-2 receiver before ISP > media: rkisp1: csi: Handle CSI-2 RX configuration fully in > rkisp1-csi.c > media: rkisp1: csi: Rename CSI functions with a common rkisp1_csi > prefix > media: rkisp1: csi: Move start delay to rkisp1_csi_start() > media: rkisp1: csi: Pass sensor pointer to rkisp1_csi_config() > media: rkisp1: csi: Constify argument to rkisp1_csi_start() > media: rkisp1: isp: Don't initialize ret to 0 in rkisp1_isp_s_stream() > media: rkisp1: isp: Pass mbus type and flags to rkisp1_config_cif() > media: rkisp1: isp: Rename rkisp1_device.active_sensor to source > media: rkisp1: isp: Add container_of wrapper to cast subdev to > rkisp1_isp > media: rkisp1: isp: Add rkisp1_device backpointer to rkisp1_isp > media: rkisp1: isp: Pass rkisp1_isp pointer to internal ISP functions > media: rkisp1: isp: Move input configuration to rkisp1_config_isp() > media: rkisp1: isp: Merge ISP_ACQ_PROP configuration in single > variable > media: rkisp1: isp: Initialize some variables at declaration time > media: rkisp1: isp: Fix whitespace issues > media: rkisp1: isp: Constify various local variables > media: rkisp1: isp: Rename rkisp1_get_remote_source() > media: mc-entity: Add a new helper function to get a remote pad > media: mc-entity: Add a new helper function to get a remote pad for a > pad > media: rkisp1: isp: Disallow multiple active sources > media: rkisp1: csi: Plumb the CSI RX subdev > media: rkisp1: Add infrastructure to support ISP features > media: rkisp1: Make the internal CSI-2 receiver optional > media: rkisp1: Configure gasket on i.MX8MP > > Paul Elder (17): > media: rkisp1: debug: Add dump file in debugfs for MI buffer registers > media: rkisp1: debug: Add debugfs files to monitor MI and ISP > interrupts > media: rkisp1: Save info pointer in rkisp1_device > media: rkisp1: Make rkisp1_isp_mbus_info common > media: rkisp1: Split CSI handling to separate file > media: rkisp1: csi: Implement a V4L2 subdev for the CSI receiver > media: rkisp1: Use fwnode_graph_for_each_endpoint > dt-bindings: media: rkisp1: Add port for parallel interface > media: rkisp1: Support the ISP parallel input > dt-bindings: media: rkisp1: Add i.MX8MP ISP to compatible > media: rkisp1: Add match data for i.MX8MP ISP > media: rkisp1: Add and set registers for crop for i.MX8MP > media: rkisp1: Add and set registers for output size config on i.MX8MP > media: rkisp1: Add i.MX8MP-specific registers for MI and resizer > media: rkisp1: Shift DMA buffer addresses on i.MX8MP > media: rkisp1: Add register definitions for the test pattern generator > media: rkisp1: Fix RSZ_CTRL bits for i.MX8MP > > .../bindings/media/rockchip-isp1.yaml | 30 +- > Documentation/driver-api/media/mc-core.rst | 4 +- > .../driver-api/media/v4l2-subdev.rst | 6 + > drivers/media/mc/mc-entity.c | 69 ++ > .../media/platform/rockchip/rkisp1/Kconfig | 2 +- > .../media/platform/rockchip/rkisp1/Makefile | 1 + > .../platform/rockchip/rkisp1/rkisp1-capture.c | 49 +- > .../platform/rockchip/rkisp1/rkisp1-common.c | 148 ++++ > .../platform/rockchip/rkisp1/rkisp1-common.h | 130 +++- > .../platform/rockchip/rkisp1/rkisp1-csi.c | 525 ++++++++++++++ > .../platform/rockchip/rkisp1/rkisp1-csi.h | 28 + > .../platform/rockchip/rkisp1/rkisp1-debug.c | 55 +- > .../platform/rockchip/rkisp1/rkisp1-dev.c | 440 +++++++----- > .../platform/rockchip/rkisp1/rkisp1-isp.c | 679 +++++++----------- > .../platform/rockchip/rkisp1/rkisp1-params.c | 2 +- > .../platform/rockchip/rkisp1/rkisp1-regs.h | 87 +++ > .../platform/rockchip/rkisp1/rkisp1-resizer.c | 43 +- > .../platform/rockchip/rkisp1/rkisp1-stats.c | 4 +- > drivers/media/v4l2-core/v4l2-async.c | 10 + > include/media/media-entity.h | 63 ++ > include/media/v4l2-async.h | 2 + > include/uapi/linux/rkisp1-config.h | 3 + > 22 files changed, 1735 insertions(+), 645 deletions(-) > create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.c > create mode 100644 drivers/media/platform/rockchip/rkisp1/rkisp1-csi.h