mbox series

[v1,00/15] i2c-multi-instantiate: Adapt for INT3515 and alike

Message ID 20181120155924.10773-1-andriy.shevchenko@linux.intel.com
Headers show
Series i2c-multi-instantiate: Adapt for INT3515 and alike | expand

Message

Andy Shevchenko Nov. 20, 2018, 3:59 p.m. UTC
Currently i2c-multi-instantiate driver does not support the case
of INT3515 USB PD device, where:

- Interrupt() is used instead of GpioInt()
- All slaves may be the same from IP point of view
- There can be variadic amount of slaves

This series is addressing all above.

Notes:
- series has been smoke tested (Heikki would do BAT or more) on Coffee Lake system
- patch for BOSC0200 might be considered as RFC since the modalias potential issue

The idea is to push this either through PDx86 tree (needs Rafael's ACKs) or ACPI.
In any case it needs tags from Heikki, Hans, Mika, Wolfram and Jonathan.

Testing and comments are warmly welcome.

Andy Shevchenko (15):
  platform/x86: intel_cht_int33fe: Remove duplicate NULL check
  platform/x86: intel_cht_int33fe: Accept errors of
    i2c_acpi_new_device()
  platform/x86: i2c-multi-instantiate: Accept errors of
    i2c_acpi_new_device()
  platform/x86: i2c-mutli-instantiate: Defer probe when no adapter found
  i2c: acpi: Return error pointers from i2c_acpi_new_device()
  i2c: acpi: Assign fwnode for devices created via i2c_acpi_new_device()
  i2c: acpi: Use ACPI_FAILURE instead of !ACPI_SUCCESS
  i2c: acpi: Introduce i2c_acpi_get_i2c_resource() helper
  platform/x86: i2c-multi-instantiate: Count I2cSerialBus() resources
  platform/x86: i2c-multi-instantiate: Distinguish IRQ resource type
  platform/x86: i2c-multi-instantiate: Introduce IOAPIC IRQ support
  platform/x86: i2c-multi-instantiate: Allow to have same slaves
  ACPI / scan: Create platform device for INT3515 ACPI nodes
  ACPI / scan: Create platform device for BOSC0200 ACPI nodes
  iio: inv_mpu6050: Use i2c_acpi_get_i2c_resource() helper

 drivers/acpi/scan.c                          |  2 +
 drivers/i2c/i2c-core-acpi.c                  | 43 +++++----
 drivers/iio/accel/bmc150-accel-i2c.c         |  1 -
 drivers/iio/imu/inv_mpu6050/inv_mpu_acpi.c   | 16 ++--
 drivers/platform/x86/i2c-multi-instantiate.c | 99 ++++++++++++++++----
 drivers/platform/x86/intel_cht_int33fe.c     | 34 +++++--
 drivers/usb/typec/tps6598x.c                 |  8 +-
 include/linux/acpi.h                         | 11 +++
 8 files changed, 158 insertions(+), 56 deletions(-)

Comments

Hans de Goede Nov. 21, 2018, 11:27 a.m. UTC | #1
Hi,

On 20-11-18 16:59, Andy Shevchenko wrote:
> Currently i2c-multi-instantiate driver does not support the case
> of INT3515 USB PD device, where:
> 
> - Interrupt() is used instead of GpioInt()
> - All slaves may be the same from IP point of view
> - There can be variadic amount of slaves
> 
> This series is addressing all above.
> 
> Notes:
> - series has been smoke tested (Heikki would do BAT or more) on Coffee Lake system
> - patch for BOSC0200 might be considered as RFC since the modalias potential issue

Yeah the BOSC0200 patch cannot go upstream as is, that will break the
orientation quirks in hwdb on:

[hans@shalem systemd]$ grep BOSC0200 hwdb/60-sensor.hwdb | wc -l
17
[hans@shalem systemd]$

At least 17 different models laptops / 2-in-1s

> The idea is to push this either through PDx86 tree (needs Rafael's ACKs) or ACPI.
> In any case it needs tags from Heikki, Hans, Mika, Wolfram and Jonathan.

Patches 1-5, 7-13 and 15 are:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

I will send separate replies to:

[PATCH v1 06/15] i2c: acpi: Assign fwnode for devices created via i2c_acpi_new_device()
[PATCH v1 14/15] ACPI / scan: Create platform device for BOSC0200 ACPI nodes

Which are both a NACK from me (in their current state) because they both will
cause regressions.

Regards,

Hans






> 
> Testing and comments are warmly welcome.
> 
> Andy Shevchenko (15):
>    platform/x86: intel_cht_int33fe: Remove duplicate NULL check
>    platform/x86: intel_cht_int33fe: Accept errors of
>      i2c_acpi_new_device()
>    platform/x86: i2c-multi-instantiate: Accept errors of
>      i2c_acpi_new_device()
>    platform/x86: i2c-mutli-instantiate: Defer probe when no adapter found
>    i2c: acpi: Return error pointers from i2c_acpi_new_device()
>    i2c: acpi: Assign fwnode for devices created via i2c_acpi_new_device()
>    i2c: acpi: Use ACPI_FAILURE instead of !ACPI_SUCCESS
>    i2c: acpi: Introduce i2c_acpi_get_i2c_resource() helper
>    platform/x86: i2c-multi-instantiate: Count I2cSerialBus() resources
>    platform/x86: i2c-multi-instantiate: Distinguish IRQ resource type
>    platform/x86: i2c-multi-instantiate: Introduce IOAPIC IRQ support
>    platform/x86: i2c-multi-instantiate: Allow to have same slaves
>    ACPI / scan: Create platform device for INT3515 ACPI nodes
>    ACPI / scan: Create platform device for BOSC0200 ACPI nodes
>    iio: inv_mpu6050: Use i2c_acpi_get_i2c_resource() helper
> 
>   drivers/acpi/scan.c                          |  2 +
>   drivers/i2c/i2c-core-acpi.c                  | 43 +++++----
>   drivers/iio/accel/bmc150-accel-i2c.c         |  1 -
>   drivers/iio/imu/inv_mpu6050/inv_mpu_acpi.c   | 16 ++--
>   drivers/platform/x86/i2c-multi-instantiate.c | 99 ++++++++++++++++----
>   drivers/platform/x86/intel_cht_int33fe.c     | 34 +++++--
>   drivers/usb/typec/tps6598x.c                 |  8 +-
>   include/linux/acpi.h                         | 11 +++
>   8 files changed, 158 insertions(+), 56 deletions(-)
>
Hans de Goede Nov. 21, 2018, noon UTC | #2
Hi,

On 21-11-18 12:27, Hans de Goede wrote:
> Hi,
> 
> On 20-11-18 16:59, Andy Shevchenko wrote:
>> Currently i2c-multi-instantiate driver does not support the case
>> of INT3515 USB PD device, where:
>>
>> - Interrupt() is used instead of GpioInt()
>> - All slaves may be the same from IP point of view
>> - There can be variadic amount of slaves
>>
>> This series is addressing all above.
>>
>> Notes:
>> - series has been smoke tested (Heikki would do BAT or more) on Coffee Lake system
>> - patch for BOSC0200 might be considered as RFC since the modalias potential issue
> 
> Yeah the BOSC0200 patch cannot go upstream as is, that will break the
> orientation quirks in hwdb on:
> 
> [hans@shalem systemd]$ grep BOSC0200 hwdb/60-sensor.hwdb | wc -l
> 17
> [hans@shalem systemd]$
> 
> At least 17 different models laptops / 2-in-1s
> 
>> The idea is to push this either through PDx86 tree (needs Rafael's ACKs) or ACPI.
>> In any case it needs tags from Heikki, Hans, Mika, Wolfram and Jonathan.
> 
> Patches 1-5, 7-13 and 15 are: >
> Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Correction, I also have some small remarks to patch 9:

[PATCH v1 09/15] platform/x86: i2c-multi-instantiate: Count I2cSerialBus() resources

Which will need to be addressed before you can add my Reviewed-by.

Regards,

Hans




> I will send separate replies to:
> 
> [PATCH v1 06/15] i2c: acpi: Assign fwnode for devices created via i2c_acpi_new_device()
> [PATCH v1 14/15] ACPI / scan: Create platform device for BOSC0200 ACPI nodes
> 
> Which are both a NACK from me (in their current state) because they both will
> cause regressions.
> 
> Regards,
> 
> Hans
> 
> 
> 
> 
> 
> 
>>
>> Testing and comments are warmly welcome.
>>
>> Andy Shevchenko (15):
>>    platform/x86: intel_cht_int33fe: Remove duplicate NULL check
>>    platform/x86: intel_cht_int33fe: Accept errors of
>>      i2c_acpi_new_device()
>>    platform/x86: i2c-multi-instantiate: Accept errors of
>>      i2c_acpi_new_device()
>>    platform/x86: i2c-mutli-instantiate: Defer probe when no adapter found
>>    i2c: acpi: Return error pointers from i2c_acpi_new_device()
>>    i2c: acpi: Assign fwnode for devices created via i2c_acpi_new_device()
>>    i2c: acpi: Use ACPI_FAILURE instead of !ACPI_SUCCESS
>>    i2c: acpi: Introduce i2c_acpi_get_i2c_resource() helper
>>    platform/x86: i2c-multi-instantiate: Count I2cSerialBus() resources
>>    platform/x86: i2c-multi-instantiate: Distinguish IRQ resource type
>>    platform/x86: i2c-multi-instantiate: Introduce IOAPIC IRQ support
>>    platform/x86: i2c-multi-instantiate: Allow to have same slaves
>>    ACPI / scan: Create platform device for INT3515 ACPI nodes
>>    ACPI / scan: Create platform device for BOSC0200 ACPI nodes
>>    iio: inv_mpu6050: Use i2c_acpi_get_i2c_resource() helper
>>
>>   drivers/acpi/scan.c                          |  2 +
>>   drivers/i2c/i2c-core-acpi.c                  | 43 +++++----
>>   drivers/iio/accel/bmc150-accel-i2c.c         |  1 -
>>   drivers/iio/imu/inv_mpu6050/inv_mpu_acpi.c   | 16 ++--
>>   drivers/platform/x86/i2c-multi-instantiate.c | 99 ++++++++++++++++----
>>   drivers/platform/x86/intel_cht_int33fe.c     | 34 +++++--
>>   drivers/usb/typec/tps6598x.c                 |  8 +-
>>   include/linux/acpi.h                         | 11 +++
>>   8 files changed, 158 insertions(+), 56 deletions(-)
>>
Andy Shevchenko Nov. 26, 2018, 2:55 p.m. UTC | #3
On Wed, Nov 21, 2018 at 01:00:07PM +0100, Hans de Goede wrote:
> On 21-11-18 12:27, Hans de Goede wrote:

> > Patches 1-5, 7-13 and 15 are: >
> > Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Thanks!

> 
> Correction, I also have some small remarks to patch 9:
> 
> [PATCH v1 09/15] platform/x86: i2c-multi-instantiate: Count I2cSerialBus() resources
> 
> Which will need to be addressed before you can add my Reviewed-by.

Will be addressed for v2.

Thanks for review!