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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

Thanks 

> From: Hans de Goede <hdegoede@xxxxxxxxxx>
> 
> Hi,
> 
> On 9/2/23 19:15, Wu, Wentong wrote:
> > Hi Hans,
> >
> > Thanks
> >
> >> From: Hans de Goede <hdegoede@xxxxxxxxxx>
> >>
> >> 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

Thanks, there is a little bit change based on your patch, because since RPL
the UID becomes "Name (_UID, "VIC0")" style. Could you please revisit
below code?

static int ljca_match_device_ids(struct acpi_device *adev, void *data)
{
        struct ljca_match_ids_walk_data *wd = data;
        const char *uid = acpi_device_uid(adev);

        if (acpi_match_device_ids(adev, wd->ids))
                return 0;

        if (!wd->uid)
                goto match;

        if (!uid)
                uid = "0";
        else
                uid = memchr(uid, wd->uid[0], strlen(uid));

        if (!uid || strcmp(uid, wd->uid))
                return 0;

match:
        wd->adev = adev;

        return 1;
}

Thanks
Wentong
> 
> For upstream it seemed cleaner to me to directly pick the correct ACPI

Thanks

> 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@xxxxxxxxxx>
> >
> > 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
> >>>





[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux