Message ID | 20241112075514.680712-1-stanislaw.gruszka@linux.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 5c5d8eb8af06df615e8b1dc88e5847196c846045 |
Headers | show |
Series | [v4,1/3] usb: misc: ljca: move usb_autopm_put_interface() after wait for response | expand |
Greg, This patch 1/3 + patch 2/3 together fix an issue causing the camera to not work on quite a few ThinkPad models. Can you maybe pick up patch 1/3 + patch 2/3 already, while Stanislaw works on fixing 3/3 ? Regards, Hans On 12-Nov-24 8:55 AM, Stanislaw Gruszka wrote: > Do not mark interface as ready to suspend when we are still waiting > for response messages from the device. > > Fixes: acd6199f195d ("usb: Add support for Intel LJCA device") > Cc: stable@vger.kernel.org > Reviewed-by: Hans de Goede <hdegoede@redhat.com> > Tested-by: Hans de Goede <hdegoede@redhat.com> # ThinkPad X1 Yoga Gen 8, ov2740 > Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> > --- > v3 -> v4: no change in this patch > v2 -> v3: add A-b tag from Sakari > v1 -> v2: fix handing error of usb_autopm_get_interface(), > add R-b, T-b tags from Hans > > drivers/usb/misc/usb-ljca.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c > index 01ceafc4ab78..8056c65e4548 100644 > --- a/drivers/usb/misc/usb-ljca.c > +++ b/drivers/usb/misc/usb-ljca.c > @@ -332,14 +332,11 @@ static int ljca_send(struct ljca_adapter *adap, u8 type, u8 cmd, > > ret = usb_bulk_msg(adap->usb_dev, adap->tx_pipe, header, > msg_len, &transferred, LJCA_WRITE_TIMEOUT_MS); > - > - usb_autopm_put_interface(adap->intf); > - > if (ret < 0) > - goto out; > + goto out_put; > if (transferred != msg_len) { > ret = -EIO; > - goto out; > + goto out_put; > } > > if (ack) { > @@ -347,11 +344,14 @@ static int ljca_send(struct ljca_adapter *adap, u8 type, u8 cmd, > timeout); > if (!ret) { > ret = -ETIMEDOUT; > - goto out; > + goto out_put; > } > } > ret = adap->actual_length; > > +out_put: > + usb_autopm_put_interface(adap->intf); > + > out: > spin_lock_irqsave(&adap->lock, flags); > adap->ex_buf = NULL;
On Tue, Nov 12, 2024 at 11:13:55AM +0100, Hans de Goede wrote: > Greg, > > This patch 1/3 + patch 2/3 together fix an issue causing the camera to not > work on quite a few ThinkPad models. > > Can you maybe pick up patch 1/3 + patch 2/3 already, while > Stanislaw works on fixing 3/3 ? Yes, I'll do that later today, good idea. Mixing new feaures and bug fixes shouldn't be in the same patch series, again, Intel developers should know better if this were to actually pass their internal review process (which seems to keep being ignored here...) thanks, greg k-h
diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c index 01ceafc4ab78..8056c65e4548 100644 --- a/drivers/usb/misc/usb-ljca.c +++ b/drivers/usb/misc/usb-ljca.c @@ -332,14 +332,11 @@ static int ljca_send(struct ljca_adapter *adap, u8 type, u8 cmd, ret = usb_bulk_msg(adap->usb_dev, adap->tx_pipe, header, msg_len, &transferred, LJCA_WRITE_TIMEOUT_MS); - - usb_autopm_put_interface(adap->intf); - if (ret < 0) - goto out; + goto out_put; if (transferred != msg_len) { ret = -EIO; - goto out; + goto out_put; } if (ack) { @@ -347,11 +344,14 @@ static int ljca_send(struct ljca_adapter *adap, u8 type, u8 cmd, timeout); if (!ret) { ret = -ETIMEDOUT; - goto out; + goto out_put; } } ret = adap->actual_length; +out_put: + usb_autopm_put_interface(adap->intf); + out: spin_lock_irqsave(&adap->lock, flags); adap->ex_buf = NULL;