usb:dummy_hcd: Force FS device connection according to module parameter
Subsystems (2)
PATCH v2 1/1 usb:dummy_hcd: Force FS device connection according to module parameter
This patch adds a new module parameter to dummy_hcd: is_high_speed When set to false the connected device will be forced to operate in FS mode. The default of this parameter is true.
--- drivers/usb/gadget/dummy_hcd.c | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-)
drivers/usb/gadget/dummy_hcd.c +15 -5
@@ -72,13 +72,17 @@ MODULE_LICENSE ("GPL");struct dummy_hcd_module_parameters {bool is_super_speed; +bool is_high_speed; };static struct dummy_hcd_module_parameters mod_data = { - .is_super_speed = false + .is_super_speed = false, + .is_high_speed = true, };module_param_named (is_super_speed, mod_data.is_super_speed, bool,S_IRUGO );MODULE_PARM_DESC (is_super_speed,"true to simulate SuperSpeed connection" ); +module_param_named (is_high_speed, mod_data.is_high_speed, bool,S_IRUGO ); +MODULE_PARM_DESC (is_high_speed,"true to simulate HighSpeed connection" );/*-------------------------------------------------------------------------*/ /* gadget side driver data structres */
@@ -904,12 +908,15 @@ usb_gadget_probe_driver(struct usb_gadget_driver *driver, dum->gadget.ep0 = &dum->ep [0 ].ep;if (mod_data.is_super_speed) dum->gadget.speed = driver->speed; -else +else if (mod_data.is_high_speed) dum->gadget.speed =min ((u8 )USB_SPEED_HIGH , (u8 )driver->speed); +else + dum->gadget.speed =USB_SPEED_FULL ;if (dum->gadget.speed < driver->speed) -dev_dbg (udc_dev (dum),"This device can perform faster if" -" you connect it to a " -"SupeSpeed port...\n" ); +dev_dbg (udc_dev (dum),"This device can perform faster" +" if you connect it to a %s port...\n" , + (driver->speed ==USB_SPEED_SUPER ? +"SuperSpeed" :"HighSpeed" ));if (dum->gadget.speed ==USB_SPEED_SUPER ) {for (i =0 ; i <DUMMY_ENDPOINTS ; i++)
@@ -2417,6 +2424,9 @@ static int __init init (void)if (usb_disabled ())return -ENODEV ; +if (!mod_data.is_high_speed && mod_data.is_super_speed) +return -EINVAL ; + the_hcd_pdev =platform_device_alloc (driver_name,-1 );if (!the_hcd_pdev)return retval;
Signature · 5 lines
1.7.3.3 -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Quoted 3 lines · Tatyana Brokhman
This patch adds a new module parameter to
dummy_hcd:is_high_speedWhen set to false the connected device will be forced to operate in FS mode. The default of this parameter is true.
...
drivers/usb/gadget/dummy_hcd.c usb_gadget_probe_driver(struct usb_gadget_driver *driver, · line 912
Quoted 7 lines
drivers/usb/gadget/dummy_hcd.c +1
-1@@ -904,12 +908,15 @@ usb_gadget_probe_driver(struct usb_gadget_driver *driver, dum->gadget.ep0 = &dum->ep [0 ].ep;if (mod_data.is_super_speed) dum->gadget.speed = driver->speed; -else +else if (mod_data.is_high_speed) dum->gadget.speed =min ((u8 )USB_SPEED_HIGH , (u8 )driver->speed);
Use min_t().
Quoted 14 lines
drivers/usb/gadget/dummy_hcd.c +6
-3+else + dum->gadget.speed =USB_SPEED_FULL ;if (dum->gadget.speed < driver->speed) -dev_dbg (udc_dev (dum),"This device can perform faster if" -" you connect it to a " -"SupeSpeed port...\n" ); +dev_dbg (udc_dev (dum),"This device can perform faster" +" if you connect it to a %s port...\n" , + (driver->speed ==USB_SPEED_SUPER ? +"SuperSpeed" :"HighSpeed" ));if (dum->gadget.speed ==USB_SPEED_SUPER ) {for (i =0 ; i <DUMMY_ENDPOINTS ; i++)
drivers/usb/gadget/dummy_hcd.c static int __init init (void) · line 2428
Quoted 5 lines
drivers/usb/gadget/dummy_hcd.c +2
-0@@ -2417,6 +2424,9 @@ static int __init init (void)if (usb_disabled ())return -ENODEV ; +if (!mod_data.is_high_speed && mod_data.is_super_speed) +return -EINVAL ;
Print an error message in the log so that the user will know why the failure occurred.
Alan Stern
Quoted 11 lines
Review usb_gadget_probe_driver(struct
Quoted 1 line
(quoted diff) +0
-0@@ -904,12 +908,15 @@ usb_gadget_probe_driver(struct
usb_gadget_driver*driver,drivers/usb/gadget/dummy_hcd.c usb_gadget_probe_driver(struct usb_gadget_driver *driver,
Quoted 7 lines
drivers/usb/gadget/dummy_hcd.c +1
-1dum->gadget.ep0 = &dum->ep [0 ].ep;if (mod_data.is_super_speed) dum->gadget.speed = driver->speed; -else +else if (mod_data.is_high_speed) dum->gadget.speed =min ((u8 )USB_SPEED_HIGH , (u8 )driver- speed);Use
min_t().
Ok, will update.
Quoted 18 lines
Quoted 18 lines
drivers/usb/gadget/dummy_hcd.c +6
-3+else + dum->gadget.speed =USB_SPEED_FULL ;if (dum->gadget.speed < driver->speed) -dev_dbg (udc_dev (dum),"This device can perform faster if" -" you connect it to a " -"SupeSpeed port...\n" ); +dev_dbg (udc_dev (dum),"This device can perform faster" +" if you connect it to a %s port...\n" , + (driver->speed ==USB_SPEED_SUPER ? +"SuperSpeed" :"HighSpeed" ));if (dum->gadget.speed ==USB_SPEED_SUPER ) {drivers/usb/gadget/dummy_hcd.c +0
-0for (i =0 ; i <DUMMY_ENDPOINTS ; i++)@@ -2417,6 +2424,9 @@ static int __init init (void)if (usb_disabled ())return -ENODEV ;
Quoted 6 lines
drivers/usb/gadget/dummy_hcd.c static int __init init (void) · line 2428
Quoted 2 lines
drivers/usb/gadget/dummy_hcd.c +2
-0+if (!mod_data.is_high_speed && mod_data.is_super_speed) +return -EINVAL ;Print an error message in the log so that the user will know why the failure occurred.
But when the module fails to load the message sais that it's invalid parameter (or something like that). That's why I thought it will be enough. You mean to add something that explains WHY these values are wrong?
Thanks,
Tanya Brokhman
---
Sent by an consultant of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
Quoted 9 lines · Tanya Brokhman
Quoted 6 lines
drivers/usb/gadget/dummy_hcd.c static int __init init (void) · line 2428
Quoted 2 lines
drivers/usb/gadget/dummy_hcd.c +2
-0+if (!mod_data.is_high_speed && mod_data.is_super_speed) +return -EINVAL ;Print an error message in the log so that the user will know why the failure occurred.
But when the module fails to load the message sais that it's invalid parameter (or something like that). That's why I thought it will be enough.
Oh yes, that's true.
Quoted 1 line
You mean to add something that explains WHY these values are wrong?
That's what I had in mind. But "invalid parameter" is probably good enough, since these are the _only_ parameters. :-) So this part is okay as it stands.
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html