Message ID | 20231121203205.223047-1-hdegoede@redhat.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 372ee6a3368ec6ff46ee4e6ff4ffe2fe1e059dbb |
Headers | show |
Series | [v3] usb: misc: ljca: Fix enumeration error on Dell Latitude 9420 | expand |
On Tue, Nov 21, 2023 at 09:32:05PM +0100, Hans de Goede wrote: > 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") > Cc: stable@vger.kernel.org Nit, stable is not needed as the above commit only ended up in 6.7-rc1, nothing older. I'll drop it when I queue this up, thanks! greg k-h
Hi Hans, On Tue, Nov 21, 2023 at 09:32:05PM +0100, Hans de Goede wrote: > 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") > Cc: stable@vger.kernel.org did this already make it to stable? I think it is not needed. > 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 Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks, Andi > --- > Changes in v3: > - Fix commit-id in fixes tag > > Changes in v2: > - Small commit msg + comment fixes > - Add Fixes tag + Cc: stable > --- > drivers/usb/misc/usb-ljca.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c > index c9decd0396d4..a280d3a54b18 100644 > --- a/drivers/usb/misc/usb-ljca.c > +++ b/drivers/usb/misc/usb-ljca.c > @@ -656,10 +656,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; > -- > 2.41.0
diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c index c9decd0396d4..a280d3a54b18 100644 --- a/drivers/usb/misc/usb-ljca.c +++ b/drivers/usb/misc/usb-ljca.c @@ -656,10 +656,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;