Re: [PATCH v12 0/4] Add Intel LJCA device driver

Hans de Goede
2023-09-02T19:01:51Z

Hi,

On 9/2/23 19:15, Wu, Wentong wrote:
> Hi Hans,
>
> Thanks
>
>> From: Hans de Goede <hdegoede@redhat.com>
>>
>> Hi,
>>
>> On 9/1/23 07:36, Wentong Wu wrote:
>>> Add driver for Intel La Jolla Cove Adapter (LJCA) device. This is a
>>> USB-GPIO, USB-I2C and USB-SPI device. We add 4 drivers to support this
>>> device: a USB driver, a GPIO chip driver, a I2C controller driver and
>>> a SPI controller driver.
>>
>> Thanks. I've been testing this on a Lenovo X1 ThinkPad Yoga gen 8 with an
>> ov2740 sensor connected to the LJCA device.
>
> Thanks, and I don’t have this laptop, could you please share your DSDT
> so that I can understand it more?

I have send you an acpidump by private email.

> And I will update this patch set after understand your DSDT and have the
> patches tested on my setup.

Ok. Note that the out of tree ivsc driver already does uid matching
in the i2c-driver to fixup the wrong ACPI companion being assigned
by the MFD driver, see:

https://github.com/intel/ivsc-driver/blob/main/drivers/i2c/busses/i2c-ljca.c#L346

For upstream it seemed cleaner to me to directly pick
the correct ACPI companion at aux-device instantiation,
something which was not possible with the MFD approach
but is possible with the auxilary bus approach.

And the other change which I'm proposing has already
been merged into the out of tree version of the LJCA
i2c driver:

https://github.com/intel/ivsc-driver/commit/70d95269169cf9e452580b0c15471829df4a6d59

Regards,

Hans

>> I needed 2 small(ish) fixes to make everything work there.
>> I have attached the 2 fixes here.
>>
>> With these 2 fixes this series is:
>>
>> Tested-by: Hans de Goede <hdegoede@redhat.com>
>
> Thanks a lot
>
> BR,
> Wentong
>>
>> Regards,
>>
>> Hans
>>
>>
>>
>>
>>
>>> ---
>>> v12:
>>> - switch dev_err to dev_dbg for i2c-ljca driver
>>> - avoid err printing because of calling usb_kill_urb when attempts to
>>> resubmit the rx urb
>>>
>>> v11:
>>> - switch dev_err to dev_dbg for i2c-ljca driver
>>> - remove message length check because of defined quirk structure
>>> - remove I2C_FUNC_SMBUS_EMUL support
>>>
>>> v10:
>>> - remove ljca_i2c_format_slave_addr
>>> - remove memset before write write w_packet
>>> - make ljca_i2c_stop void and print err message in case failure
>>> - use dev_err_probe in ljca_i2c_probe function
>>>
>>> v9:
>>> - overhaul usb-ljca driver to make it more structured and easy
>>> understand
>>> - fix memory leak issue for usb-ljca driver
>>> - add spinlock to protect tx_buf and ex_buf
>>> - change exported APIs for usb-ljca driver
>>> - unify prefix for structures and functions for i2c-ljca driver
>>> - unify prefix for structures and functions for spi-ljca driver
>>> - unify prefix for structures and functions for gpio-ljca driver
>>> - update gpio-ljca, i2c-ljca and spi-ljca drivers according to
>>> usb-ljca's changes
>>>
>>> Wentong Wu (4):
>>> usb: Add support for Intel LJCA device
>>> i2c: Add support for Intel LJCA USB I2C driver
>>> spi: Add support for Intel LJCA USB SPI driver
>>> gpio: update Intel LJCA USB GPIO driver
>>>
>>> drivers/gpio/Kconfig | 4 +-
>>> drivers/gpio/gpio-ljca.c | 246 +++++++------
>>> drivers/i2c/busses/Kconfig | 11 +
>>> drivers/i2c/busses/Makefile | 1 +
>>> drivers/i2c/busses/i2c-ljca.c | 326 +++++++++++++++++
>>> drivers/spi/Kconfig | 11 +
>>> drivers/spi/Makefile | 1 +
>>> drivers/spi/spi-ljca.c | 297 +++++++++++++++
>>> drivers/usb/misc/Kconfig | 14 +
>>> drivers/usb/misc/Makefile | 1 +
>>> drivers/usb/misc/usb-ljca.c | 817
>> ++++++++++++++++++++++++++++++++++++++++++
>>> include/linux/usb/ljca.h | 113 ++++++
>>> 12 files changed, 1737 insertions(+), 105 deletions(-) create mode
>>> 100644 drivers/i2c/busses/i2c-ljca.c create mode 100644
>>> drivers/spi/spi-ljca.c create mode 100644 drivers/usb/misc/usb-ljca.c
>>> create mode 100644 include/linux/usb/ljca.h
>>>