aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorGravatar Hans de Goede <hdegoede@redhat.com> 2023-11-21 21:32:05 +0100
committerGravatar Greg Kroah-Hartman <gregkh@linuxfoundation.org> 2023-11-22 12:11:45 +0000
commit372ee6a3368ec6ff46ee4e6ff4ffe2fe1e059dbb (patch)
tree374762a46ce8197c41a77cb0d55c3c38439d024c /drivers/usb
parentUSB: xhci-plat: fix legacy PHY double init (diff)
downloadlinux-372ee6a3368ec6ff46ee4e6ff4ffe2fe1e059dbb.tar.gz
linux-372ee6a3368ec6ff46ee4e6ff4ffe2fe1e059dbb.tar.bz2
linux-372ee6a3368ec6ff46ee4e6ff4ffe2fe1e059dbb.zip
usb: misc: ljca: Fix enumeration error on Dell Latitude 9420
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>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/misc/usb-ljca.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c
index 7f0deebebc13..35770e608c64 100644
--- a/drivers/usb/misc/usb-ljca.c
+++ b/drivers/usb/misc/usb-ljca.c
@@ -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;