linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above
@ 2020-11-26 18:09 Greg Kroah-Hartman
  2020-11-26 18:09 ` [PATCH 2/4] USB: gadget: f_acm: add support for SuperSpeed Plus Greg Kroah-Hartman
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-26 18:09 UTC (permalink / raw)
  To: balbi
  Cc: linux-usb, linux-kernel, Will McVicker, EJ Hsu, Peter Chen,
	stable, Greg Kroah-Hartman

From: Will McVicker <willmcvicker@google.com>

Align the SuperSpeed Plus bitrate for f_rndis to match f_ncm's ncm_bitrate
defined by commit 1650113888fe ("usb: gadget: f_ncm: add SuperSpeed descriptors
for CDC NCM").

Cc: Felipe Balbi <balbi@kernel.org>
Cc: EJ Hsu <ejh@nvidia.com>
Cc: Peter Chen <peter.chen@nxp.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/function/f_rndis.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/function/f_rndis.c b/drivers/usb/gadget/function/f_rndis.c
index 9534c8ab62a8..0739b05a0ef7 100644
--- a/drivers/usb/gadget/function/f_rndis.c
+++ b/drivers/usb/gadget/function/f_rndis.c
@@ -87,8 +87,10 @@ static inline struct f_rndis *func_to_rndis(struct usb_function *f)
 /* peak (theoretical) bulk transfer rate in bits-per-second */
 static unsigned int bitrate(struct usb_gadget *g)
 {
+	if (gadget_is_superspeed(g) && g->speed >= USB_SPEED_SUPER_PLUS)
+		return 4250000000U;
 	if (gadget_is_superspeed(g) && g->speed == USB_SPEED_SUPER)
-		return 13 * 1024 * 8 * 1000 * 8;
+		return 3750000000U;
 	else if (gadget_is_dualspeed(g) && g->speed == USB_SPEED_HIGH)
 		return 13 * 512 * 8 * 1000 * 8;
 	else
-- 
2.29.2


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

* [PATCH 2/4] USB: gadget: f_acm: add support for SuperSpeed Plus
  2020-11-26 18:09 [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
@ 2020-11-26 18:09 ` Greg Kroah-Hartman
  2020-11-26 18:09 ` [PATCH 3/4] USB: gadget: f_fs: add SuperSpeed Plus support Greg Kroah-Hartman
  2020-11-26 18:09 ` [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors Greg Kroah-Hartman
  2 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-26 18:09 UTC (permalink / raw)
  To: balbi
  Cc: linux-usb, linux-kernel, taehyun.cho, stable, Will McVicker,
	Greg Kroah-Hartman

From: "taehyun.cho" <taehyun.cho@samsung.com>

Setup the SuperSpeed Plus descriptors for f_acm.  This allows the gadget
to work properly without crashing at SuperSpeed rates.

Cc: Felipe Balbi <balbi@kernel.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: taehyun.cho <taehyun.cho@samsung.com>
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/function/f_acm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/function/f_acm.c b/drivers/usb/gadget/function/f_acm.c
index 46647bfac2ef..349945e064bb 100644
--- a/drivers/usb/gadget/function/f_acm.c
+++ b/drivers/usb/gadget/function/f_acm.c
@@ -686,7 +686,7 @@ acm_bind(struct usb_configuration *c, struct usb_function *f)
 	acm_ss_out_desc.bEndpointAddress = acm_fs_out_desc.bEndpointAddress;
 
 	status = usb_assign_descriptors(f, acm_fs_function, acm_hs_function,
-			acm_ss_function, NULL);
+			acm_ss_function, acm_ss_function);
 	if (status)
 		goto fail;
 
-- 
2.29.2


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

* [PATCH 3/4] USB: gadget: f_fs: add SuperSpeed Plus support
  2020-11-26 18:09 [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
  2020-11-26 18:09 ` [PATCH 2/4] USB: gadget: f_acm: add support for SuperSpeed Plus Greg Kroah-Hartman
@ 2020-11-26 18:09 ` Greg Kroah-Hartman
       [not found]   ` <20201127025517.GA22238@b29397-desktop>
  2020-11-26 18:09 ` [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors Greg Kroah-Hartman
  2 siblings, 1 reply; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-26 18:09 UTC (permalink / raw)
  To: balbi
  Cc: linux-usb, linux-kernel, taehyun.cho, Peter Chen, stable,
	Will McVicker, Greg Kroah-Hartman

From: "taehyun.cho" <taehyun.cho@samsung.com>

Setup the descriptors for SuperSpeed Plus for f_fs. This allows the
gadget to work properly without crashing at SuperSpeed rates.

Cc: Felipe Balbi <balbi@kernel.org>
Cc: Peter Chen <peter.chen@nxp.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: taehyun.cho <taehyun.cho@samsung.com>
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/function/f_fs.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
index 046f770a76da..a34a7c96a1ab 100644
--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -1327,6 +1327,7 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code,
 		struct usb_endpoint_descriptor *desc;
 
 		switch (epfile->ffs->gadget->speed) {
+		case USB_SPEED_SUPER_PLUS:
 		case USB_SPEED_SUPER:
 			desc_idx = 2;
 			break;
@@ -3222,6 +3223,10 @@ static int _ffs_func_bind(struct usb_configuration *c,
 	func->function.os_desc_n =
 		c->cdev->use_os_string ? ffs->interfaces_count : 0;
 
+	if (likely(super)) {
+		func->function.ssp_descriptors =
+			usb_copy_descriptors(func->function.ss_descriptors);
+	}
 	/* And we're done */
 	ffs_event_add(ffs, FUNCTIONFS_BIND);
 	return 0;
-- 
2.29.2


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

* [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors
  2020-11-26 18:09 [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
  2020-11-26 18:09 ` [PATCH 2/4] USB: gadget: f_acm: add support for SuperSpeed Plus Greg Kroah-Hartman
  2020-11-26 18:09 ` [PATCH 3/4] USB: gadget: f_fs: add SuperSpeed Plus support Greg Kroah-Hartman
@ 2020-11-26 18:09 ` Greg Kroah-Hartman
  2020-11-27 12:06   ` Peter Chen
  2 siblings, 1 reply; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-26 18:09 UTC (permalink / raw)
  To: balbi; +Cc: linux-usb, linux-kernel, Will McVicker, stable, Greg Kroah-Hartman

From: Will McVicker <willmcvicker@google.com>

Needed for SuperSpeed Plus support for f_midi.  This allows the
gadget to work properly without crashing at SuperSpeed rates.

Cc: Felipe Balbi <balbi@kernel.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/function/f_midi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index 85cb15734aa8..ceb67651de4f 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -1048,6 +1048,11 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
 		f->ss_descriptors = usb_copy_descriptors(midi_function);
 		if (!f->ss_descriptors)
 			goto fail_f_midi;
+		if (gadget_is_superspeed_plus(c->cdev->gadget)) {
+			f->ssp_descriptors = usb_copy_descriptors(midi_function);
+			if (!f->ssp_descriptors)
+				goto fail_f_midi;
+		}
 	}
 
 	kfree(midi_function);
-- 
2.29.2


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

* Re: [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors
  2020-11-26 18:09 ` [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors Greg Kroah-Hartman
@ 2020-11-27 12:06   ` Peter Chen
  2020-11-27 13:48     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 8+ messages in thread
From: Peter Chen @ 2020-11-27 12:06 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: balbi, linux-usb, linux-kernel, Will McVicker, stable

On 20-11-26 19:09:37, Greg Kroah-Hartman wrote:
> From: Will McVicker <willmcvicker@google.com>
> 
> Needed for SuperSpeed Plus support for f_midi.  This allows the
> gadget to work properly without crashing at SuperSpeed rates.
> 
> Cc: Felipe Balbi <balbi@kernel.org>
> Cc: stable <stable@vger.kernel.org>
> Signed-off-by: Will McVicker <willmcvicker@google.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
>  drivers/usb/gadget/function/f_midi.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
> index 85cb15734aa8..ceb67651de4f 100644
> --- a/drivers/usb/gadget/function/f_midi.c
> +++ b/drivers/usb/gadget/function/f_midi.c
> @@ -1048,6 +1048,11 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
>  		f->ss_descriptors = usb_copy_descriptors(midi_function);
>  		if (!f->ss_descriptors)
>  			goto fail_f_midi;

Add one blank line, otherwise:

Reviewed-by: Peter Chen <peter.chen@nxp.com>

Peter
> +		if (gadget_is_superspeed_plus(c->cdev->gadget)) {
> +			f->ssp_descriptors = usb_copy_descriptors(midi_function);
> +			if (!f->ssp_descriptors)
> +				goto fail_f_midi;
> +		}
>  	}
>  
>  	kfree(midi_function);
> -- 
> 2.29.2
> 

-- 

Thanks,
Peter Chen

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

* Re: [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors
  2020-11-27 12:06   ` Peter Chen
@ 2020-11-27 13:48     ` Greg Kroah-Hartman
  0 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-27 13:48 UTC (permalink / raw)
  To: Peter Chen; +Cc: balbi, linux-usb, linux-kernel, Will McVicker, stable

On Fri, Nov 27, 2020 at 12:06:50PM +0000, Peter Chen wrote:
> On 20-11-26 19:09:37, Greg Kroah-Hartman wrote:
> > From: Will McVicker <willmcvicker@google.com>
> > 
> > Needed for SuperSpeed Plus support for f_midi.  This allows the
> > gadget to work properly without crashing at SuperSpeed rates.
> > 
> > Cc: Felipe Balbi <balbi@kernel.org>
> > Cc: stable <stable@vger.kernel.org>
> > Signed-off-by: Will McVicker <willmcvicker@google.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> >  drivers/usb/gadget/function/f_midi.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
> > index 85cb15734aa8..ceb67651de4f 100644
> > --- a/drivers/usb/gadget/function/f_midi.c
> > +++ b/drivers/usb/gadget/function/f_midi.c
> > @@ -1048,6 +1048,11 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
> >  		f->ss_descriptors = usb_copy_descriptors(midi_function);
> >  		if (!f->ss_descriptors)
> >  			goto fail_f_midi;
> 
> Add one blank line, otherwise:

Will add it, good idea.

> Reviewed-by: Peter Chen <peter.chen@nxp.com>

Thanks for reviewing all of these, much appreciated.

greg k-h

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

* Re: [PATCH 3/4] USB: gadget: f_fs: add SuperSpeed Plus support
       [not found]   ` <20201127025517.GA22238@b29397-desktop>
@ 2020-11-27 13:50     ` Greg Kroah-Hartman
  0 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-27 13:50 UTC (permalink / raw)
  To: Peter Chen
  Cc: balbi, linux-usb, linux-kernel, taehyun.cho, stable, Will McVicker

On Fri, Nov 27, 2020 at 02:55:47AM +0000, Peter Chen wrote:
> On 20-11-26 19:09:36, Greg Kroah-Hartman wrote:
> > From: "taehyun.cho" <taehyun.cho@samsung.com>
> > 
> > Setup the descriptors for SuperSpeed Plus for f_fs. This allows the
> > gadget to work properly without crashing at SuperSpeed rates.
> > 
> > Cc: Felipe Balbi <balbi@kernel.org>
> > Cc: Peter Chen <peter.chen@nxp.com>
> > Cc: stable <stable@vger.kernel.org>
> > Signed-off-by: taehyun.cho <taehyun.cho@samsung.com>
> > Signed-off-by: Will McVicker <willmcvicker@google.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > ---
> >  drivers/usb/gadget/function/f_fs.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c
> > index 046f770a76da..a34a7c96a1ab 100644
> > --- a/drivers/usb/gadget/function/f_fs.c
> > +++ b/drivers/usb/gadget/function/f_fs.c
> > @@ -1327,6 +1327,7 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code,
> >  		struct usb_endpoint_descriptor *desc;
> >  
> >  		switch (epfile->ffs->gadget->speed) {
> > +		case USB_SPEED_SUPER_PLUS:
> >  		case USB_SPEED_SUPER:
> >  			desc_idx = 2;
> >  			break;
> > @@ -3222,6 +3223,10 @@ static int _ffs_func_bind(struct usb_configuration *c,
> >  	func->function.os_desc_n =
> >  		c->cdev->use_os_string ? ffs->interfaces_count : 0;
> >  
> > +	if (likely(super)) {
> 
> Why likely is used? Currently, there are still lots of HS devices on market
> or on the development.

It looks to be a cut/paste of the other tests above, all of which say
"likely" which we all know is not true at all.  I'll leave this now, and
add a patch that removes them all as this is NOT a function where it
should be used at all.

thanks for the review.

greg k-h

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

* [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors
  2020-11-26 18:02 [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
@ 2020-11-26 18:02 ` Greg Kroah-Hartman
  0 siblings, 0 replies; 8+ messages in thread
From: Greg Kroah-Hartman @ 2020-11-26 18:02 UTC (permalink / raw)
  To: balbi; +Cc: linux-usb, linux-kernel, Will McVicker, stable, Greg Kroah-Hartman

From: Will McVicker <willmcvicker@google.com>

Needed for SuperSpeed Plus support for f_midi.  This allows the
gadget to work properly without crashing at SuperSpeed rates.

Cc: Felipe Balbi <balbi@kernel.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/usb/gadget/function/f_midi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/usb/gadget/function/f_midi.c b/drivers/usb/gadget/function/f_midi.c
index 85cb15734aa8..ceb67651de4f 100644
--- a/drivers/usb/gadget/function/f_midi.c
+++ b/drivers/usb/gadget/function/f_midi.c
@@ -1048,6 +1048,11 @@ static int f_midi_bind(struct usb_configuration *c, struct usb_function *f)
 		f->ss_descriptors = usb_copy_descriptors(midi_function);
 		if (!f->ss_descriptors)
 			goto fail_f_midi;
+		if (gadget_is_superspeed_plus(c->cdev->gadget)) {
+			f->ssp_descriptors = usb_copy_descriptors(midi_function);
+			if (!f->ssp_descriptors)
+				goto fail_f_midi;
+		}
 	}
 
 	kfree(midi_function);
-- 
2.29.2


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

end of thread, other threads:[~2020-11-27 13:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-26 18:09 [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
2020-11-26 18:09 ` [PATCH 2/4] USB: gadget: f_acm: add support for SuperSpeed Plus Greg Kroah-Hartman
2020-11-26 18:09 ` [PATCH 3/4] USB: gadget: f_fs: add SuperSpeed Plus support Greg Kroah-Hartman
     [not found]   ` <20201127025517.GA22238@b29397-desktop>
2020-11-27 13:50     ` Greg Kroah-Hartman
2020-11-26 18:09 ` [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors Greg Kroah-Hartman
2020-11-27 12:06   ` Peter Chen
2020-11-27 13:48     ` Greg Kroah-Hartman
  -- strict thread matches above, loose matches on Subject: below --
2020-11-26 18:02 [PATCH 1/4] USB: gadget: f_rndis: fix bitrate for SuperSpeed and above Greg Kroah-Hartman
2020-11-26 18:02 ` [PATCH 4/4] USB: gadget: f_midi: setup SuperSpeed Plus descriptors Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).