summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-05-08 18:49:39 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-05-08 18:49:38 -0700
commita4b2d7442de2cb009685ea8f4e6331f3281b9f6a (patch)
tree1686b6333a521f36f89b41bc6a61a0eca2c53809
parent0052d7171569f735d7442dfbcc26a2cf3fcaf168 (diff)
parentd5f5ce057085f8feb3b35c0b9d587a4089f68f6e (diff)
Merge "usb: misc: lvstest: allow specifying port for compliance mode"
-rw-r--r--drivers/usb/misc/lvstest.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/usb/misc/lvstest.c b/drivers/usb/misc/lvstest.c
index f8092a630343..da6e0bd3390a 100644
--- a/drivers/usb/misc/lvstest.c
+++ b/drivers/usb/misc/lvstest.c
@@ -186,10 +186,13 @@ static ssize_t warm_reset_store(struct device *dev,
struct usb_interface *intf = to_usb_interface(dev);
struct usb_device *hdev = interface_to_usbdev(intf);
struct lvs_rh *lvs = usb_get_intfdata(intf);
+ int port;
int ret;
- ret = lvs_rh_set_port_feature(hdev, lvs->portnum,
- USB_PORT_FEAT_BH_PORT_RESET);
+ if (kstrtoint(buf, 0, &port) || port < 1 || port > 255)
+ port = lvs->portnum;
+
+ ret = lvs_rh_set_port_feature(hdev, port, USB_PORT_FEAT_BH_PORT_RESET);
if (ret < 0) {
dev_err(dev, "can't issue warm reset %d\n", ret);
return ret;
@@ -303,10 +306,14 @@ static ssize_t enable_compliance_store(struct device *dev,
struct usb_interface *intf = to_usb_interface(dev);
struct usb_device *hdev = interface_to_usbdev(intf);
struct lvs_rh *lvs = usb_get_intfdata(intf);
+ int port;
int ret;
+ if (kstrtoint(buf, 0, &port) || port < 1 || port > 255)
+ port = lvs->portnum;
+
ret = lvs_rh_set_port_feature(hdev,
- lvs->portnum | USB_SS_PORT_LS_COMP_MOD << 3,
+ port | (USB_SS_PORT_LS_COMP_MOD << 3),
USB_PORT_FEAT_LINK_STATE);
if (ret < 0) {
dev_err(dev, "can't enable compliance mode %d\n", ret);