Hi All, Here is another set of atomisp patches from yours truely. This basically consists of 2 parts: 1. Further sensor driver modernization to work towards using standard v4l2 sensor drivers instead of atomisp specific copies 1a. For some sensors some GPIOs have different polarity depending on which board they are on and the order in which GPIOs are listed in in the ACPI resources also is not consistent between boards. Fixing this without relying on per board DMI quirks requires parsing the results of a special Intel ACPI _DSM. Add a new v4l2_get_acpi_sensor_info() helper for this 1b. Convert the gc0310 driver to use ACPI runtime pm instead of relying on the direct PMIC poking from atomisp_gmin_platform 2. Further work on removing various exotic features, specifically prep work + remove support for streaming from 2 sensors at once, as discussed here: https://lore.kernel.org/linux-media/5309d845-063b-6dd9-529d-0f82654290f2@xxxxxxxxxx/ Regards, Hans Hans de Goede (28): media: atomisp: Add v4l2_get_acpi_sensor_info() helper media: atomisp: ov2680: Use v4l2_get_acpi_sensor_info() for the GPIO lookups media: atomisp: ov2680: Error handling fixes media: atomisp: gc0310: Remove some unused structure definitions media: atomisp: gc0310: Remove GC0310_TOK_* media: atomisp: gc0310: Simplify gc0310_write_reg_array() media: atomisp: gc0310: Remove enum gc0310_tok_type media: atomisp: gc0310: Replace custom reg access functions with smbus helpers media: atomisp: gc0310: Remove non working flip-controls media: atomisp: gc0310: Remove read-only exposure control media: atomisp: gc0310: Drop custom ATOMISP_IOC_S_EXPOSURE support media: atomisp: gc0310: Add exposure and gain controls media: atomisp: gc0310: Add error_unlock label to s_stream() media: atomisp: gc0310: Modernize and simply set_fmt(), get_fmt(), etc. media: atomisp: gc0310: Delay power-on till streaming is started media: atomisp: gc0310: Add runtime-pm support media: atomisp: gc0310: Use devm_kzalloc() for data struct media: atomisp: gc0310: Switch over to ACPI powermanagement media: atomisp: Remove duplicate atomisp_[start|stop]_streaming prototypes media: atomisp: Remove continuous mode related code from atomisp_set_fmt() media: atomisp: Remove custom V4L2_CID_FMT_AUTO control media: atomisp: Remove snr_mbus_fmt local var from atomisp_try_fmt() media: atomisp: Remove unused ATOM_ISP_MAX_WIDTH_TMP and ATOM_ISP_MAX_HEIGHT_TMP media: atomisp: Remove atomisp_try_fmt() call from atomisp_set_fmt() media: atomisp: Drop support for streaming from 2 sensors at once media: atomisp: Remove struct atomisp_sub_device index field media: atomisp: gmin_platform: Make DMI quirks take precedence over the _DSM table media: atomisp: gmin_platform: Add Lenovo Ideapad Miix 310 gmin_vars .../media/atomisp/i2c/atomisp-gc0310.c | 999 ++++-------------- .../media/atomisp/i2c/atomisp-ov2680.c | 33 +- drivers/staging/media/atomisp/i2c/gc0310.h | 416 +++----- drivers/staging/media/atomisp/i2c/ov2680.h | 1 - .../media/atomisp/include/linux/atomisp.h | 2 - .../atomisp/include/linux/atomisp_platform.h | 2 + .../staging/media/atomisp/pci/atomisp_cmd.c | 356 ++----- .../media/atomisp/pci/atomisp_compat.h | 4 +- .../media/atomisp/pci/atomisp_compat_css20.c | 89 +- .../staging/media/atomisp/pci/atomisp_fops.c | 9 +- .../media/atomisp/pci/atomisp_gmin_platform.c | 289 ++++- .../media/atomisp/pci/atomisp_internal.h | 20 +- .../staging/media/atomisp/pci/atomisp_ioctl.c | 64 +- .../staging/media/atomisp/pci/atomisp_ioctl.h | 3 - .../media/atomisp/pci/atomisp_subdev.c | 111 +- .../media/atomisp/pci/atomisp_subdev.h | 6 - .../staging/media/atomisp/pci/atomisp_v4l2.c | 36 +- 17 files changed, 844 insertions(+), 1596 deletions(-) -- 2.39.1