]> git.itanic.dy.fi Git - linux-stable/commitdiff
usb: misc: ljca: Fix enumeration error on Dell Latitude 9420
authorHans de Goede <hdegoede@redhat.com>
Tue, 21 Nov 2023 20:32:05 +0000 (21:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Nov 2023 12:11:45 +0000 (12:11 +0000)
Not all LJCA chips implement SPI and on chips without SPI reading
the SPI descriptors will timeout.

On laptop models like the Dell Latitude 9420, this is expected behavior
and not an error.

Modify the driver to continue without instantiating a SPI auxbus child,
instead of failing to probe() the whole LJCA chip.

Fixes: acd6199f195d ("usb: Add support for Intel LJCA device")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Wentong Wu <wentong.wu@intel.com>
Link: https://lore.kernel.org/r/20231104175104.38786-1-hdegoede@redhat.com
Link: https://lore.kernel.org/r/20231121203205.223047-1-hdegoede@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/misc/usb-ljca.c

index 7f0deebebc130c9b416a9ddf3c97dfc1129787b0..35770e608c6497bbb1e5eeb73da1f8e6ef89cb72 100644 (file)
@@ -646,10 +646,11 @@ static int ljca_enumerate_spi(struct ljca_adapter *adap)
        unsigned int i;
        int ret;
 
+       /* Not all LJCA chips implement SPI, a timeout reading the descriptors is normal */
        ret = ljca_send(adap, LJCA_CLIENT_MNG, LJCA_MNG_ENUM_SPI, NULL, 0, buf,
                        sizeof(buf), true, LJCA_ENUM_CLIENT_TIMEOUT_MS);
        if (ret < 0)
-               return ret;
+               return (ret == -ETIMEDOUT) ? 0 : ret;
 
        /* check firmware response */
        desc = (struct ljca_spi_descriptor *)buf;