aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2022-03-21 01:16:48 +0000
committerDaniel Golle <daniel@makrotopia.org>2022-03-21 13:11:56 +0000
commit786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186 (patch)
tree926fecb2b1f6ce1e42ba7ef4c7aab8e68dfd214c /target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
parent9470160c350d15f765c33d6c1db15d6c4709a64c (diff)
downloadupstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.gz
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.tar.bz2
upstream-786bf7fdaca4c75e7eba6e9aa3a8b5775fd21186.zip
kernel: delete Linux 5.4 config and patches
As the upcoming release will be based on Linux 5.10 only, remove all kernel configuration as well as patches for Linux 5.4. There were no targets still actively using Linux 5.4. Signed-off-by: Daniel Golle <daniel@makrotopia.org> (cherry picked from commit 3a14580411adfb75f9a44eded9f41245b9e44606)
Diffstat (limited to 'target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch364
1 files changed, 0 insertions, 364 deletions
diff --git a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch b/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
deleted file mode 100644
index 8361a8771c..0000000000
--- a/target/linux/layerscape/patches-5.4/820-usb-0014-MLK-17380-3-usb-move-EH-SINGLE_STEP_SET_FEATURE-impl.patch
+++ /dev/null
@@ -1,364 +0,0 @@
-From d4806e4f103895387dc679fe53e1f4a5d41391bf Mon Sep 17 00:00:00 2001
-From: Peter Chen <peter.chen@nxp.com>
-Date: Thu, 18 Jan 2018 11:03:24 +0800
-Subject: [PATCH] MLK-17380-3 usb: move EH SINGLE_STEP_SET_FEATURE implement to
- core
-
-Since other USB 2.0 host may need it, like USB2 for XHCI. We move
-this design to HCD core.
-
-Acked-by: Jun Li <jun.li@nxp.com>
-Signed-off-by: Peter Chen <peter.chen@nxp.com>
-(cherry picked from commit 035a27e1a3088261f40f77534aaccfe5825c2f96)
----
- drivers/usb/core/hcd.c | 134 ++++++++++++++++++++++++++++++++++++++++++
- drivers/usb/host/ehci-hcd.c | 4 ++
- drivers/usb/host/ehci-hub.c | 139 --------------------------------------------
- drivers/usb/host/ehci-q.c | 2 +-
- include/linux/usb/hcd.h | 13 ++++-
- 5 files changed, 151 insertions(+), 141 deletions(-)
-
---- a/drivers/usb/core/hcd.c
-+++ b/drivers/usb/core/hcd.c
-@@ -2111,6 +2111,140 @@ int usb_hcd_get_frame_number (struct usb
- }
-
- /*-------------------------------------------------------------------------*/
-+#ifdef CONFIG_USB_HCD_TEST_MODE
-+
-+static void usb_ehset_completion(struct urb *urb)
-+{
-+ struct completion *done = urb->context;
-+
-+ complete(done);
-+}
-+/*
-+ * Allocate and initialize a control URB. This request will be used by the
-+ * EHSET SINGLE_STEP_SET_FEATURE test in which the DATA and STATUS stages
-+ * of the GetDescriptor request are sent 15 seconds after the SETUP stage.
-+ * Return NULL if failed.
-+ */
-+static struct urb *request_single_step_set_feature_urb(
-+ struct usb_device *udev,
-+ void *dr,
-+ void *buf,
-+ struct completion *done
-+) {
-+ struct urb *urb;
-+ struct usb_hcd *hcd = bus_to_hcd(udev->bus);
-+ struct usb_host_endpoint *ep;
-+
-+ urb = usb_alloc_urb(0, GFP_KERNEL);
-+ if (!urb)
-+ return NULL;
-+
-+ urb->pipe = usb_rcvctrlpipe(udev, 0);
-+ ep = (usb_pipein(urb->pipe) ? udev->ep_in : udev->ep_out)
-+ [usb_pipeendpoint(urb->pipe)];
-+ if (!ep) {
-+ usb_free_urb(urb);
-+ return NULL;
-+ }
-+
-+ urb->ep = ep;
-+ urb->dev = udev;
-+ urb->setup_packet = (void *)dr;
-+ urb->transfer_buffer = buf;
-+ urb->transfer_buffer_length = USB_DT_DEVICE_SIZE;
-+ urb->complete = usb_ehset_completion;
-+ urb->status = -EINPROGRESS;
-+ urb->actual_length = 0;
-+ urb->transfer_flags = URB_DIR_IN;
-+ usb_get_urb(urb);
-+ atomic_inc(&urb->use_count);
-+ atomic_inc(&urb->dev->urbnum);
-+ urb->setup_dma = dma_map_single(
-+ hcd->self.sysdev,
-+ urb->setup_packet,
-+ sizeof(struct usb_ctrlrequest),
-+ DMA_TO_DEVICE);
-+ urb->transfer_dma = dma_map_single(
-+ hcd->self.sysdev,
-+ urb->transfer_buffer,
-+ urb->transfer_buffer_length,
-+ DMA_FROM_DEVICE);
-+ urb->context = done;
-+ return urb;
-+}
-+
-+int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
-+{
-+ int retval = -ENOMEM;
-+ struct usb_ctrlrequest *dr;
-+ struct urb *urb;
-+ struct usb_device *udev;
-+ struct usb_device_descriptor *buf;
-+ DECLARE_COMPLETION_ONSTACK(done);
-+
-+ /* Obtain udev of the rhub's child port */
-+ udev = usb_hub_find_child(hcd->self.root_hub, port);
-+ if (!udev) {
-+ dev_err(hcd->self.controller, "No device attached to the RootHub\n");
-+ return -ENODEV;
-+ }
-+ buf = kmalloc(USB_DT_DEVICE_SIZE, GFP_KERNEL);
-+ if (!buf)
-+ return -ENOMEM;
-+
-+ dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);
-+ if (!dr) {
-+ kfree(buf);
-+ return -ENOMEM;
-+ }
-+
-+ /* Fill Setup packet for GetDescriptor */
-+ dr->bRequestType = USB_DIR_IN;
-+ dr->bRequest = USB_REQ_GET_DESCRIPTOR;
-+ dr->wValue = cpu_to_le16(USB_DT_DEVICE << 8);
-+ dr->wIndex = 0;
-+ dr->wLength = cpu_to_le16(USB_DT_DEVICE_SIZE);
-+ urb = request_single_step_set_feature_urb(udev, dr, buf, &done);
-+ if (!urb)
-+ goto cleanup;
-+
-+ /* Submit just the SETUP stage */
-+ retval = hcd->driver->submit_single_step_set_feature(hcd, urb, 1);
-+ if (retval)
-+ goto out1;
-+ if (!wait_for_completion_timeout(&done, msecs_to_jiffies(2000))) {
-+ usb_kill_urb(urb);
-+ retval = -ETIMEDOUT;
-+ dev_err(hcd->self.controller,
-+ "%s SETUP stage timed out on ep0\n", __func__);
-+ goto out1;
-+ }
-+ msleep(15 * 1000);
-+
-+ /* Complete remaining DATA and STATUS stages using the same URB */
-+ urb->status = -EINPROGRESS;
-+ usb_get_urb(urb);
-+ atomic_inc(&urb->use_count);
-+ atomic_inc(&urb->dev->urbnum);
-+ retval = hcd->driver->submit_single_step_set_feature(hcd, urb, 0);
-+ if (!retval && !wait_for_completion_timeout(&done,
-+ msecs_to_jiffies(2000))) {
-+ usb_kill_urb(urb);
-+ retval = -ETIMEDOUT;
-+ dev_err(hcd->self.controller,
-+ "%s IN stage timed out on ep0\n", __func__);
-+ }
-+out1:
-+ usb_free_urb(urb);
-+cleanup:
-+ kfree(dr);
-+ kfree(buf);
-+ return retval;
-+}
-+EXPORT_SYMBOL_GPL(ehset_single_step_set_feature);
-+#endif /* CONFIG_USB_HCD_TEST_MODE */
-+
-+/*-------------------------------------------------------------------------*/
-
- #ifdef CONFIG_PM
-
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -1254,6 +1254,10 @@ static const struct hc_driver ehci_hc_dr
- * device support
- */
- .free_dev = ehci_remove_device,
-+#ifdef CONFIG_USB_HCD_TEST_MODE
-+ /* EH SINGLE_STEP_SET_FEATURE test support */
-+ .submit_single_step_set_feature = ehci_submit_single_step_set_feature,
-+#endif
- };
-
- void ehci_init_driver(struct hc_driver *drv,
---- a/drivers/usb/host/ehci-hub.c
-+++ b/drivers/usb/host/ehci-hub.c
-@@ -727,145 +727,6 @@ ehci_hub_descriptor (
- }
-
- /*-------------------------------------------------------------------------*/
--#ifdef CONFIG_USB_HCD_TEST_MODE
--
--#define EHSET_TEST_SINGLE_STEP_SET_FEATURE 0x06
--
--static void usb_ehset_completion(struct urb *urb)
--{
-- struct completion *done = urb->context;
--
-- complete(done);
--}
--static int submit_single_step_set_feature(
-- struct usb_hcd *hcd,
-- struct urb *urb,
-- int is_setup
--);
--
--/*
-- * Allocate and initialize a control URB. This request will be used by the
-- * EHSET SINGLE_STEP_SET_FEATURE test in which the DATA and STATUS stages
-- * of the GetDescriptor request are sent 15 seconds after the SETUP stage.
-- * Return NULL if failed.
-- */
--static struct urb *request_single_step_set_feature_urb(
-- struct usb_device *udev,
-- void *dr,
-- void *buf,
-- struct completion *done
--) {
-- struct urb *urb;
-- struct usb_hcd *hcd = bus_to_hcd(udev->bus);
-- struct usb_host_endpoint *ep;
--
-- urb = usb_alloc_urb(0, GFP_KERNEL);
-- if (!urb)
-- return NULL;
--
-- urb->pipe = usb_rcvctrlpipe(udev, 0);
-- ep = (usb_pipein(urb->pipe) ? udev->ep_in : udev->ep_out)
-- [usb_pipeendpoint(urb->pipe)];
-- if (!ep) {
-- usb_free_urb(urb);
-- return NULL;
-- }
--
-- urb->ep = ep;
-- urb->dev = udev;
-- urb->setup_packet = (void *)dr;
-- urb->transfer_buffer = buf;
-- urb->transfer_buffer_length = USB_DT_DEVICE_SIZE;
-- urb->complete = usb_ehset_completion;
-- urb->status = -EINPROGRESS;
-- urb->actual_length = 0;
-- urb->transfer_flags = URB_DIR_IN;
-- usb_get_urb(urb);
-- atomic_inc(&urb->use_count);
-- atomic_inc(&urb->dev->urbnum);
-- urb->setup_dma = dma_map_single(
-- hcd->self.sysdev,
-- urb->setup_packet,
-- sizeof(struct usb_ctrlrequest),
-- DMA_TO_DEVICE);
-- urb->transfer_dma = dma_map_single(
-- hcd->self.sysdev,
-- urb->transfer_buffer,
-- urb->transfer_buffer_length,
-- DMA_FROM_DEVICE);
-- urb->context = done;
-- return urb;
--}
--
--static int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
--{
-- int retval = -ENOMEM;
-- struct usb_ctrlrequest *dr;
-- struct urb *urb;
-- struct usb_device *udev;
-- struct ehci_hcd *ehci = hcd_to_ehci(hcd);
-- struct usb_device_descriptor *buf;
-- DECLARE_COMPLETION_ONSTACK(done);
--
-- /* Obtain udev of the rhub's child port */
-- udev = usb_hub_find_child(hcd->self.root_hub, port);
-- if (!udev) {
-- ehci_err(ehci, "No device attached to the RootHub\n");
-- return -ENODEV;
-- }
-- buf = kmalloc(USB_DT_DEVICE_SIZE, GFP_KERNEL);
-- if (!buf)
-- return -ENOMEM;
--
-- dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_KERNEL);
-- if (!dr) {
-- kfree(buf);
-- return -ENOMEM;
-- }
--
-- /* Fill Setup packet for GetDescriptor */
-- dr->bRequestType = USB_DIR_IN;
-- dr->bRequest = USB_REQ_GET_DESCRIPTOR;
-- dr->wValue = cpu_to_le16(USB_DT_DEVICE << 8);
-- dr->wIndex = 0;
-- dr->wLength = cpu_to_le16(USB_DT_DEVICE_SIZE);
-- urb = request_single_step_set_feature_urb(udev, dr, buf, &done);
-- if (!urb)
-- goto cleanup;
--
-- /* Submit just the SETUP stage */
-- retval = submit_single_step_set_feature(hcd, urb, 1);
-- if (retval)
-- goto out1;
-- if (!wait_for_completion_timeout(&done, msecs_to_jiffies(2000))) {
-- usb_kill_urb(urb);
-- retval = -ETIMEDOUT;
-- ehci_err(ehci, "%s SETUP stage timed out on ep0\n", __func__);
-- goto out1;
-- }
-- msleep(15 * 1000);
--
-- /* Complete remaining DATA and STATUS stages using the same URB */
-- urb->status = -EINPROGRESS;
-- usb_get_urb(urb);
-- atomic_inc(&urb->use_count);
-- atomic_inc(&urb->dev->urbnum);
-- retval = submit_single_step_set_feature(hcd, urb, 0);
-- if (!retval && !wait_for_completion_timeout(&done,
-- msecs_to_jiffies(2000))) {
-- usb_kill_urb(urb);
-- retval = -ETIMEDOUT;
-- ehci_err(ehci, "%s IN stage timed out on ep0\n", __func__);
-- }
--out1:
-- usb_free_urb(urb);
--cleanup:
-- kfree(dr);
-- kfree(buf);
-- return retval;
--}
--#endif /* CONFIG_USB_HCD_TEST_MODE */
--/*-------------------------------------------------------------------------*/
-
- int ehci_hub_control(
- struct usb_hcd *hcd,
---- a/drivers/usb/host/ehci-q.c
-+++ b/drivers/usb/host/ehci-q.c
-@@ -1165,7 +1165,7 @@ submit_async (
- * performed; TRUE - SETUP and FALSE - IN+STATUS
- * Returns 0 if success
- */
--static int submit_single_step_set_feature(
-+static int ehci_submit_single_step_set_feature(
- struct usb_hcd *hcd,
- struct urb *urb,
- int is_setup
---- a/include/linux/usb/hcd.h
-+++ b/include/linux/usb/hcd.h
-@@ -409,7 +409,10 @@ struct hc_driver {
- int (*find_raw_port_number)(struct usb_hcd *, int);
- /* Call for power on/off the port if necessary */
- int (*port_power)(struct usb_hcd *hcd, int portnum, bool enable);
--
-+ /* Call for SINGLE_STEP_SET_FEATURE Test for USB2 EH certification */
-+#define EHSET_TEST_SINGLE_STEP_SET_FEATURE 0x06
-+ int (*submit_single_step_set_feature)(struct usb_hcd *,
-+ struct urb *, int);
- };
-
- static inline int hcd_giveback_urb_in_bh(struct usb_hcd *hcd)
-@@ -474,6 +477,14 @@ int usb_hcd_setup_local_mem(struct usb_h
-
- struct platform_device;
- extern void usb_hcd_platform_shutdown(struct platform_device *dev);
-+#ifdef CONFIG_USB_HCD_TEST_MODE
-+extern int ehset_single_step_set_feature(struct usb_hcd *hcd, int port);
-+#else
-+static inline int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
-+{
-+ return 0;
-+}
-+#endif /* CONFIG_USB_HCD_TEST_MODE */
-
- #ifdef CONFIG_USB_PCI
- struct pci_dev;