usb-serial-qcserial-add-new-usb-id-for-dell-wireless-dw5826e.patch
usb-serial-option-add-fibocom-fm101-gl-variant.patch
usb-serial-cp210x-add-id-for-imst-im871a-usb.patch
-xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch
input-atkbd-skip-atkbd_cmd_setleds-when-skipping-atkbd_cmd_getid.patch
+++ /dev/null
-From 7c4650ded49e5b88929ecbbb631efb8b0838e811 Mon Sep 17 00:00:00 2001
-From: Michal Pecio <michal.pecio@gmail.com>
-Date: Thu, 25 Jan 2024 17:27:37 +0200
-Subject: xhci: handle isoc Babble and Buffer Overrun events properly
-
-From: Michal Pecio <michal.pecio@gmail.com>
-
-commit 7c4650ded49e5b88929ecbbb631efb8b0838e811 upstream.
-
-xHCI 4.9 explicitly forbids assuming that the xHC has released its
-ownership of a multi-TRB TD when it reports an error on one of the
-early TRBs. Yet the driver makes such assumption and releases the TD,
-allowing the remaining TRBs to be freed or overwritten by new TDs.
-
-The xHC should also report completion of the final TRB due to its IOC
-flag being set by us, regardless of prior errors. This event cannot
-be recognized if the TD has already been freed earlier, resulting in
-"Transfer event TRB DMA ptr not part of current TD" error message.
-
-Fix this by reusing the logic for processing isoc Transaction Errors.
-This also handles hosts which fail to report the final completion.
-
-Fix transfer length reporting on Babble errors. They may be caused by
-device malfunction, no guarantee that the buffer has been filled.
-
-Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
-Link: https://lore.kernel.org/r/20240125152737.2983959-5-mathias.nyman@linux.intel.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/host/xhci-ring.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -2168,9 +2168,13 @@ static int process_isoc_td(struct xhci_h
- case COMP_BANDWIDTH_OVERRUN_ERROR:
- frame->status = -ECOMM;
- break;
-- case COMP_ISOCH_BUFFER_OVERRUN:
- case COMP_BABBLE_DETECTED_ERROR:
-+ sum_trbs_for_length = true;
-+ fallthrough;
-+ case COMP_ISOCH_BUFFER_OVERRUN:
- frame->status = -EOVERFLOW;
-+ if (ep_trb != td->last_trb)
-+ td->error_mid_td = true;
- break;
- case COMP_INCOMPATIBLE_DEVICE_ERROR:
- case COMP_STALL_ERROR:
usb-serial-option-add-fibocom-fm101-gl-variant.patch
usb-serial-cp210x-add-id-for-imst-im871a-usb.patch
usb-host-xhci-plat-add-support-for-xhci_sg_trb_cache_size_quirk.patch
-xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch
hrtimer-report-offline-hrtimer-enqueue.patch
input-i8042-fix-strange-behavior-of-touchpad-on-clevo-ns70pu.patch
input-atkbd-skip-atkbd_cmd_setleds-when-skipping-atkbd_cmd_getid.patch
+++ /dev/null
-From 7c4650ded49e5b88929ecbbb631efb8b0838e811 Mon Sep 17 00:00:00 2001
-From: Michal Pecio <michal.pecio@gmail.com>
-Date: Thu, 25 Jan 2024 17:27:37 +0200
-Subject: xhci: handle isoc Babble and Buffer Overrun events properly
-
-From: Michal Pecio <michal.pecio@gmail.com>
-
-commit 7c4650ded49e5b88929ecbbb631efb8b0838e811 upstream.
-
-xHCI 4.9 explicitly forbids assuming that the xHC has released its
-ownership of a multi-TRB TD when it reports an error on one of the
-early TRBs. Yet the driver makes such assumption and releases the TD,
-allowing the remaining TRBs to be freed or overwritten by new TDs.
-
-The xHC should also report completion of the final TRB due to its IOC
-flag being set by us, regardless of prior errors. This event cannot
-be recognized if the TD has already been freed earlier, resulting in
-"Transfer event TRB DMA ptr not part of current TD" error message.
-
-Fix this by reusing the logic for processing isoc Transaction Errors.
-This also handles hosts which fail to report the final completion.
-
-Fix transfer length reporting on Babble errors. They may be caused by
-device malfunction, no guarantee that the buffer has been filled.
-
-Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
-Link: https://lore.kernel.org/r/20240125152737.2983959-5-mathias.nyman@linux.intel.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/host/xhci-ring.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -2261,9 +2261,13 @@ static int process_isoc_td(struct xhci_h
- case COMP_BANDWIDTH_OVERRUN_ERROR:
- frame->status = -ECOMM;
- break;
-- case COMP_ISOCH_BUFFER_OVERRUN:
- case COMP_BABBLE_DETECTED_ERROR:
-+ sum_trbs_for_length = true;
-+ fallthrough;
-+ case COMP_ISOCH_BUFFER_OVERRUN:
- frame->status = -EOVERFLOW;
-+ if (ep_trb != td->last_trb)
-+ td->error_mid_td = true;
- break;
- case COMP_INCOMPATIBLE_DEVICE_ERROR:
- case COMP_STALL_ERROR:
usb-serial-qcserial-add-new-usb-id-for-dell-wireless-dw5826e.patch
usb-serial-option-add-fibocom-fm101-gl-variant.patch
usb-serial-cp210x-add-id-for-imst-im871a-usb.patch
-xhci-handle-isoc-babble-and-buffer-overrun-events-properly.patch
hrtimer-report-offline-hrtimer-enqueue.patch
input-atkbd-skip-atkbd_cmd_setleds-when-skipping-atkbd_cmd_getid.patch
+++ /dev/null
-From 7c4650ded49e5b88929ecbbb631efb8b0838e811 Mon Sep 17 00:00:00 2001
-From: Michal Pecio <michal.pecio@gmail.com>
-Date: Thu, 25 Jan 2024 17:27:37 +0200
-Subject: xhci: handle isoc Babble and Buffer Overrun events properly
-
-From: Michal Pecio <michal.pecio@gmail.com>
-
-commit 7c4650ded49e5b88929ecbbb631efb8b0838e811 upstream.
-
-xHCI 4.9 explicitly forbids assuming that the xHC has released its
-ownership of a multi-TRB TD when it reports an error on one of the
-early TRBs. Yet the driver makes such assumption and releases the TD,
-allowing the remaining TRBs to be freed or overwritten by new TDs.
-
-The xHC should also report completion of the final TRB due to its IOC
-flag being set by us, regardless of prior errors. This event cannot
-be recognized if the TD has already been freed earlier, resulting in
-"Transfer event TRB DMA ptr not part of current TD" error message.
-
-Fix this by reusing the logic for processing isoc Transaction Errors.
-This also handles hosts which fail to report the final completion.
-
-Fix transfer length reporting on Babble errors. They may be caused by
-device malfunction, no guarantee that the buffer has been filled.
-
-Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
-Link: https://lore.kernel.org/r/20240125152737.2983959-5-mathias.nyman@linux.intel.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/usb/host/xhci-ring.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -2227,9 +2227,13 @@ static int process_isoc_td(struct xhci_h
- case COMP_BANDWIDTH_OVERRUN_ERROR:
- frame->status = -ECOMM;
- break;
-- case COMP_ISOCH_BUFFER_OVERRUN:
- case COMP_BABBLE_DETECTED_ERROR:
-+ sum_trbs_for_length = true;
-+ fallthrough;
-+ case COMP_ISOCH_BUFFER_OVERRUN:
- frame->status = -EOVERFLOW;
-+ if (ep_trb != td->last_trb)
-+ td->error_mid_td = true;
- break;
- case COMP_INCOMPATIBLE_DEVICE_ERROR:
- case COMP_STALL_ERROR: