|
@@ -1036,7 +1036,12 @@ static int dummy_udc_probe(struct platform_device *pdev)
|
|
|
memzero_explicit(&dum->gadget, sizeof(struct usb_gadget));
|
|
|
dum->gadget.name = gadget_name;
|
|
|
dum->gadget.ops = &dummy_ops;
|
|
|
- dum->gadget.max_speed = USB_SPEED_SUPER;
|
|
|
+ if (mod_data.is_super_speed)
|
|
|
+ dum->gadget.max_speed = USB_SPEED_SUPER;
|
|
|
+ else if (mod_data.is_high_speed)
|
|
|
+ dum->gadget.max_speed = USB_SPEED_HIGH;
|
|
|
+ else
|
|
|
+ dum->gadget.max_speed = USB_SPEED_FULL;
|
|
|
|
|
|
dum->gadget.dev.parent = &pdev->dev;
|
|
|
init_dummy_udc_hw(dum);
|
|
@@ -2560,8 +2565,6 @@ static struct hc_driver dummy_hcd = {
|
|
|
.product_desc = "Dummy host controller",
|
|
|
.hcd_priv_size = sizeof(struct dummy_hcd),
|
|
|
|
|
|
- .flags = HCD_USB3 | HCD_SHARED,
|
|
|
-
|
|
|
.reset = dummy_setup,
|
|
|
.start = dummy_start,
|
|
|
.stop = dummy_stop,
|
|
@@ -2590,8 +2593,12 @@ static int dummy_hcd_probe(struct platform_device *pdev)
|
|
|
dev_info(&pdev->dev, "%s, driver " DRIVER_VERSION "\n", driver_desc);
|
|
|
dum = *((void **)dev_get_platdata(&pdev->dev));
|
|
|
|
|
|
- if (!mod_data.is_super_speed)
|
|
|
+ if (mod_data.is_super_speed)
|
|
|
+ dummy_hcd.flags = HCD_USB3 | HCD_SHARED;
|
|
|
+ else if (mod_data.is_high_speed)
|
|
|
dummy_hcd.flags = HCD_USB2;
|
|
|
+ else
|
|
|
+ dummy_hcd.flags = HCD_USB11;
|
|
|
hs_hcd = usb_create_hcd(&dummy_hcd, &pdev->dev, dev_name(&pdev->dev));
|
|
|
if (!hs_hcd)
|
|
|
return -ENOMEM;
|