mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-22 09:22:37 +00:00
usb: gadget: langwell_udc: add usb test mode support
This patch adds test mode support for Langwell gadget driver. Signed-off-by: Henry Yuan <hang.yuan@intel.com> Signed-off-by: Andy Luo <yifei.luo@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
b23f2f9413
commit
7fc56f0d99
@ -2225,6 +2225,7 @@ static void handle_setup_packet(struct langwell_udc *dev,
|
|||||||
u16 wValue = le16_to_cpu(setup->wValue);
|
u16 wValue = le16_to_cpu(setup->wValue);
|
||||||
u16 wIndex = le16_to_cpu(setup->wIndex);
|
u16 wIndex = le16_to_cpu(setup->wIndex);
|
||||||
u16 wLength = le16_to_cpu(setup->wLength);
|
u16 wLength = le16_to_cpu(setup->wLength);
|
||||||
|
u32 portsc1;
|
||||||
|
|
||||||
dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
|
dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
|
||||||
|
|
||||||
@ -2313,6 +2314,28 @@ static void handle_setup_packet(struct langwell_udc *dev,
|
|||||||
dev->dev_status &= ~(1 << wValue);
|
dev->dev_status &= ~(1 << wValue);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case USB_DEVICE_TEST_MODE:
|
||||||
|
dev_dbg(&dev->pdev->dev, "SETUP: TEST MODE\n");
|
||||||
|
if ((wIndex & 0xff) ||
|
||||||
|
(dev->gadget.speed != USB_SPEED_HIGH))
|
||||||
|
ep0_stall(dev);
|
||||||
|
|
||||||
|
switch (wIndex >> 8) {
|
||||||
|
case TEST_J:
|
||||||
|
case TEST_K:
|
||||||
|
case TEST_SE0_NAK:
|
||||||
|
case TEST_PACKET:
|
||||||
|
case TEST_FORCE_EN:
|
||||||
|
if (prime_status_phase(dev, EP_DIR_IN))
|
||||||
|
ep0_stall(dev);
|
||||||
|
portsc1 = readl(&dev->op_regs->portsc1);
|
||||||
|
portsc1 |= (wIndex & 0xf00) << 8;
|
||||||
|
writel(portsc1, &dev->op_regs->portsc1);
|
||||||
|
goto end;
|
||||||
|
default:
|
||||||
|
rc = -EOPNOTSUPP;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rc = -EOPNOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
break;
|
break;
|
||||||
|
@ -123,6 +123,16 @@
|
|||||||
#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */
|
#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */
|
||||||
#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */
|
#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Test Mode Selectors
|
||||||
|
* See USB 2.0 spec Table 9-7
|
||||||
|
*/
|
||||||
|
#define TEST_J 1
|
||||||
|
#define TEST_K 2
|
||||||
|
#define TEST_SE0_NAK 3
|
||||||
|
#define TEST_PACKET 4
|
||||||
|
#define TEST_FORCE_EN 5
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* New Feature Selectors as added by USB 3.0
|
* New Feature Selectors as added by USB 3.0
|
||||||
* See USB 3.0 spec Table 9-6
|
* See USB 3.0 spec Table 9-6
|
||||||
|
Loading…
Reference in New Issue
Block a user