[00/28] media: atomisp: Further sensor rework + exotic features removal

Message ID 20230401145926.596216-1-hdegoede@redhat.com (mailing list archive)
Headers
Series media: atomisp: Further sensor rework + exotic features removal |

Message

Hans de Goede April 1, 2023, 2:58 p.m. UTC
  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@redhat.com/

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(-)
  

Comments

Andy Shevchenko April 2, 2023, 7:13 p.m. UTC | #1
On Sat, Apr 1, 2023 at 4:59 PM Hans de Goede <hdegoede@redhat.com> wrote:
>
> 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@redhat.com/

Traditionally, for the non-commented ones:
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

For the rest depending on the severity of the comment. Feel free to
add my tag where it makes sense in your opinion (no discussion
required).


> 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
>
  
Hans de Goede April 9, 2023, 1:09 p.m. UTC | #2
Hi Andy,

On 4/2/23 21:13, Andy Shevchenko wrote:
> On Sat, Apr 1, 2023 at 4:59 PM Hans de Goede <hdegoede@redhat.com> wrote:
>>
>> 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@redhat.com/
> 
> Traditionally, for the non-commented ones:
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> 
> For the rest depending on the severity of the comment. Feel free to
> add my tag where it makes sense in your opinion (no discussion
> required).

Thank you for all the reviews. I've pushed a new version
addressing all your comments and adding your Reviewd-by to:

https://git.kernel.org/pub/scm/linux/kernel/git/hansg/linux.git/log/?h=media-atomisp

I'll send out a pull-req to Mauro for this, wrapping up
the atomisp changes for this cycle.

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
>>
> 
>
  
Andy Shevchenko April 10, 2023, 9:39 a.m. UTC | #3
On Sun, Apr 9, 2023 at 4:09 PM Hans de Goede <hdegoede@redhat.com> wrote:
> On 4/2/23 21:13, Andy Shevchenko wrote:

...

> Thank you for all the reviews. I've pushed a new version
> addressing all your comments and adding your Reviewd-by to:

Reviewed-by?

> https://git.kernel.org/pub/scm/linux/kernel/git/hansg/linux.git/log/?h=media-atomisp

This is what answers my question in the reply to patch 28 I think.
I'll refer to this branch for AtomISP latest code.


> I'll send out a pull-req to Mauro for this, wrapping up
> the atomisp changes for this cycle.

ACK.