All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
@ 2011-06-09 15:56 ` Tatyana Brokhman
  0 siblings, 0 replies; 8+ messages in thread
From: Tatyana Brokhman @ 2011-06-09 15:56 UTC (permalink / raw)
  To: greg; +Cc: linux-usb, linux-arm-msm, balbi, ablay, Tatyana Brokhman, open list

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.

Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>

---
 drivers/usb/gadget/dummy_hcd.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index f0cdd13..cb1e0fa 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -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;
-- 
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.

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
@ 2011-06-09 15:56 ` Tatyana Brokhman
  0 siblings, 0 replies; 8+ messages in thread
From: Tatyana Brokhman @ 2011-06-09 15:56 UTC (permalink / raw)
  To: greg; +Cc: linux-usb, linux-arm-msm, balbi, ablay, Tatyana Brokhman, open list

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.

Signed-off-by: Tatyana Brokhman <tlinder@codeaurora.org>

---
 drivers/usb/gadget/dummy_hcd.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index f0cdd13..cb1e0fa 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -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;
-- 
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.

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
  2011-06-09 15:56 ` Tatyana Brokhman
@ 2011-06-09 18:51   ` Alan Stern
  -1 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2011-06-09 18:51 UTC (permalink / raw)
  To: Tatyana Brokhman; +Cc: greg, linux-usb, linux-arm-msm, balbi, ablay, open list

On Thu, 9 Jun 2011, Tatyana Brokhman wrote:

> 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.

...

> @@ -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().

> +	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;

Print an error message in the log so that the user will know why the 
failure occurred.

Alan Stern

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
@ 2011-06-09 18:51   ` Alan Stern
  0 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2011-06-09 18:51 UTC (permalink / raw)
  To: Tatyana Brokhman; +Cc: greg, linux-usb, linux-arm-msm, balbi, ablay, open list

On Thu, 9 Jun 2011, Tatyana Brokhman wrote:

> 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.

...

> @@ -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().

> +	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;

Print an error message in the log so that the user will know why the 
failure occurred.

Alan Stern


^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
  2011-06-09 18:51   ` Alan Stern
@ 2011-06-09 20:56     ` Tanya Brokhman
  -1 siblings, 0 replies; 8+ messages in thread
From: Tanya Brokhman @ 2011-06-09 20:56 UTC (permalink / raw)
  To: 'Alan Stern'
  Cc: greg, linux-usb, linux-arm-msm, balbi, ablay, 'open list'

> > @@ -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().

Ok, will update.

> 
> > +	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;
> 
> 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.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
@ 2011-06-09 20:56     ` Tanya Brokhman
  0 siblings, 0 replies; 8+ messages in thread
From: Tanya Brokhman @ 2011-06-09 20:56 UTC (permalink / raw)
  To: 'Alan Stern'
  Cc: greg, linux-usb, linux-arm-msm, balbi, ablay, 'open list'

> > @@ -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().

Ok, will update.

> 
> > +	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;
> 
> 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.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
  2011-06-09 20:56     ` Tanya Brokhman
@ 2011-06-09 21:23       ` Alan Stern
  -1 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2011-06-09 21:23 UTC (permalink / raw)
  To: Tanya Brokhman
  Cc: greg-U8xfFu+wG4EAvxtiuMwx3w, linux-usb-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
	ablay-sgV2jX0FEOL9JmXXK+q4OQ, 'open list'

On Thu, 9 Jun 2011, Tanya Brokhman wrote:

> > > +	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.

> 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 majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter
@ 2011-06-09 21:23       ` Alan Stern
  0 siblings, 0 replies; 8+ messages in thread
From: Alan Stern @ 2011-06-09 21:23 UTC (permalink / raw)
  To: Tanya Brokhman
  Cc: greg, linux-usb, linux-arm-msm, balbi, ablay, 'open list'

On Thu, 9 Jun 2011, Tanya Brokhman wrote:

> > > +	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.

> 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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-06-09 21:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-09 15:56 [PATCH v2] usb:dummy_hcd: Force FS device connection according to module parameter Tatyana Brokhman
2011-06-09 15:56 ` Tatyana Brokhman
2011-06-09 18:51 ` Alan Stern
2011-06-09 18:51   ` Alan Stern
2011-06-09 20:56   ` Tanya Brokhman
2011-06-09 20:56     ` Tanya Brokhman
2011-06-09 21:23     ` Alan Stern
2011-06-09 21:23       ` Alan Stern

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.