Re: [PATCH] MAINTAINERS: drop two usb-serial subdriver entries

2014-06-02 Thread Johan Hovold
On Sun, Jun 01, 2014 at 10:45:59AM -0700, Greg Kroah-Hartman wrote:
> On Sun, Jun 01, 2014 at 11:32:17AM +0200, Johan Hovold wrote:
> > Remove the remaining two obsolete usb-serial subdriver entries from
> > MAINTAINERS, which were missed in the recent purge by commit
> > f896b7968b62 ("USB: Maintainers change for usb serial drivers").
> > 
> > Signed-off-by: Johan Hovold 
> > ---
> >  MAINTAINERS | 12 
> >  1 file changed, 12 deletions(-)
> > 
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 51ebb779c5f3..68599b26f514 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -9298,12 +9298,6 @@ S:   Maintained
> >  F: drivers/usb/host/isp116x*
> >  F: include/linux/usb/isp116x.h
> >  
> > -USB KAWASAKI LSI DRIVER
> > -M: Oliver Neukum 
> > -L: linux-usb@vger.kernel.org
> > -S: Maintained
> > -F: drivers/usb/serial/kl5kusb105.*
> > -
> >  USB MASS STORAGE DRIVER
> >  M: Matthew Dharm 
> >  L: linux-usb@vger.kernel.org
> > @@ -9331,12 +9325,6 @@ S:   Maintained
> >  F: Documentation/usb/ohci.txt
> >  F: drivers/usb/host/ohci*
> >  
> > -USB OPTION-CARD DRIVER
> > -M: Matthias Urlichs 
> > -L: linux-usb@vger.kernel.org
> > -S: Maintained
> > -F: drivers/usb/serial/option.c
> 
> Why are we taking away the maintainership of these individual drivers
> from these developers?  I had no problem giving you the drivers I was
> supposed to be in charge of, but I need a signed-off-by from Matthias
> and Oliver for these if they want to do the same.

I honestly thought you had just missed these entries when you removed
individual maintainership for the other usb-serial drivers with the
motivation that the developers were not around and that maintainership
for individual drivers did not make much sense anymore (as consolidation
proceeds, I read). (These two entries were also not grouped with the
others.)

Oliver and perhaps also Mathias are still around, but the option driver
is now down to about 200 LOC (including boilerplate) when not counting
the id table, while the kl5kusb105 is currently at about 400 LOC
(including boilerplate) since I converted it to use the generic
implementation a few years ago.

Oliver and Mathias, what do you think of this? Would you be willing to
sign off on this patch?

Thanks,
Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] MAINTAINERS: drop two usb-serial subdriver entries

2014-06-02 Thread Matthias Urlichs
Hi,

Johan Hovold:
> > > -USB OPTION-CARD DRIVER
> > > -M:   Matthias Urlichs 
> > > -L:   linux-usb@vger.kernel.org
> > > -S:   Maintained
> > > -F:   drivers/usb/serial/option.c
> > 
> > Why are we taking away the maintainership of these individual drivers
> > from these developers?  I had no problem giving you the drivers I was
> > supposed to be in charge of, but I need a signed-off-by from Matthias
> > and Oliver for these if they want to do the same.
> 
> I honestly thought you had just missed these entries when you removed
> individual maintainership for the other usb-serial drivers with the
> motivation that the developers were not around and that maintainership
> for individual drivers did not make much sense anymore (as consolidation
> proceeds, I read). (These two entries were also not grouped with the
> others.)
> 
> Oliver and perhaps also Mathias are still around, but the option driver
> is now down to about 200 LOC (including boilerplate) when not counting
> the id table, while the kl5kusb105 is currently at about 400 LOC
> (including boilerplate) since I converted it to use the generic
> implementation a few years ago.
> 
> Oliver and Mathias, what do you think of this? Would you be willing to
> sign off on this patch?
> 
Fine by me. While I am indeed "still around", Option doesn't need a
maintainer any more -- the thing just works, and I do not see any need
for driver-specific changes other than additions to the ID table.

You hardly need a maintainer for that.

-- 
-- Matthias Urlichs


signature.asc
Description: Digital signature


Re: [PATCH] usb: dwc3: add support for USB 2.0-only core configuration

2014-06-02 Thread George Cherian

On 5/31/2014 5:35 AM, Paul Zimmerman wrote:

From: Felipe Balbi [mailto:ba...@ti.com]
Sent: Friday, May 30, 2014 4:42 PM

On Fri, May 23, 2014 at 11:39:24AM -0700, Paul Zimmerman wrote:

Newer DWC3 controllers can be built for USB 2.0-only mode, where
most of the USB 3.0 circuitry is left out. To support this mode,
the driver must limit the speed programmed into the DCFG register
to Hi-Speed or lower.

Reads and writes to the PIPECTL register are left as-is, since
they should be no-ops in USB 2.0-only mode. Calls to phy_init()
etc. for the USB3 phy are also left as-is, since the no-op USB3
phy should be used for USB 2.0-only mode controllers.

Signed-off-by: Paul Zimmerman 
---
Hi Felipe,

Does this look OK to you? I think it is fine to leave the PIPECTL
accesses and the phy_init() calls as-is, but if you would prefer
that I also conditionalize those I can do that. We have at least
one customer who will need this feature fairly soon, so we would
like to get this in without too much delay, although I guess we
missed the 3.16 merge window.

I like this a lot :-) Very nice of Synopsys to support this
configuration. Could you just let me know which versions of the core
support this configuration ? We have AM437x which has this sort of
"quirk" although, I think it's done using a TI-specific "modification",
perhaps ?

AM437x is version 2.40a

It has been officially supported since 2.60a. But it's possible that
customers have hacked up something like this on their own with previous
versions, so the exact version number might not mean much. The patch
should work for all versions of the core, because the
DWC_USB3_SSPHY_INTERFACE bits have always been there, going back to
preproduction versions of the core.

It has been pointed out to me that DT can already be used to limit the
max speed, using the 'maximum-speed' property (duh). But I think we
still want the patch for non-DT platforms like dwc3-pci.

In TI  implementation  (AM437x)

DWC3_GHWPARAMS3_SSPHY_IFC(dwc->hwparams.hwparams3) is read as 1.



--
-George

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] usbhid : enable NO_INIT_REPORTS quirk for Semico USB Keykoard

2014-06-02 Thread Jiri Kosina
On Sun, 1 Jun 2014, Daniel Kamil Kozar wrote:

> The device which identifies itself as a "USB Keykoard" (no typo) with 
> VID:PID 1a2c:0023 does not seem to be handling the reports initialization 
> very well. This results in a "usb_submit_urb(ctrl) failed: -1" message 
> from the kernel when connected, and a delay before its initialization. 
> This patch adds the quirk for this device, which causes the delay to 
> disappear.
> Signed-off-by: Daniel Kamil Kozar 

Please always add an empty line between the changelog and a signoff.

> ---
> diff -uprN -X linux-3.15-rc7/Documentation/dontdiff 
> linux-3.15-rc7/drivers/hid/hid-ids.h linux-3.15-rc7-mine/drivers/hid/hid-ids.h
> --- linux-3.15-rc7/drivers/hid/hid-ids.h  2014-05-26 01:06:00.0 
> +0200
> +++ linux-3.15-rc7-mine/drivers/hid/hid-ids.h 2014-06-01 12:30:45.910903449 
> +0200
> @@ -769,6 +769,10 @@
>  #define USB_DEVICE_ID_SAMSUNG_IR_REMOTE  0x0001
>  #define USB_DEVICE_ID_SAMSUNG_WIRELESS_KBD_MOUSE 0x0600
>  
> +/* China Resource Semico Co., Ltd */

We're not putting such comments there.

> +#define USB_VENDOR_ID_SEMICO 0x1a2c
> +#define USB_DEVICE_ID_SEMICO_USB_KEYKOARD0x0023
> +
>  #define USB_VENDOR_ID_SENNHEISER 0x1395
>  #define USB_DEVICE_ID_SENNHEISER_BTD500USB   0x002c
>  
> diff -uprN -X linux-3.15-rc7/Documentation/dontdiff 
> linux-3.15-rc7/drivers/hid/usbhid/hid-quirks.c 
> linux-3.15-rc7-mine/drivers/hid/usbhid/hid-quirks.c
> --- linux-3.15-rc7/drivers/hid/usbhid/hid-quirks.c2014-05-26 
> 01:06:00.0 +0200
> +++ linux-3.15-rc7-mine/drivers/hid/usbhid/hid-quirks.c   2014-06-01 
> 12:32:01.161744987 +0200
> @@ -120,6 +120,7 @@ static const struct hid_blacklist {
>   { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_HD, 
> HID_QUIRK_NO_INIT_REPORTS },
>   { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_QUAD_HD, 
> HID_QUIRK_NO_INIT_REPORTS },
>   { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103, 
> HID_QUIRK_NO_INIT_REPORTS },
> + { USB_VENDOR_ID_SEMICO, USB_DEVICE_ID_SEMICO_USB_KEYKOARD, 
> HID_QUIRK_NO_INIT_REPORTS },

The list ought to be kept sorted.

These were trivial to fix, so I have fixed it and applied, but please keep 
that in mind for your future patch submissions.

Thanks,

-- 
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] usb: renesas: gadget: fixup: complete STATUS stage after receiving

2014-06-02 Thread Sergei Shtylyov

Hello.

On 02-06-2014 7:31, Kuninori Morimoto wrote:


From: Kuninori Morimoto 



Current usbhs gadget driver didn't complete STATUS stage after receiving.
It wasn't problem for us before, because some USB class doesn't use
DATA OUT stage in control transfer.
But, it is required on some device.



Signed-off-by: Yoshihiro Shimoda 
Signed-off-by: Kuninori Morimoto 
---
  drivers/usb/renesas_usbhs/fifo.c |8 
  1 file changed, 8 insertions(+)



diff --git a/drivers/usb/renesas_usbhs/fifo.c b/drivers/usb/renesas_usbhs/fifo.c
index d49f9c3..4fd3653 100644
--- a/drivers/usb/renesas_usbhs/fifo.c
+++ b/drivers/usb/renesas_usbhs/fifo.c
@@ -681,6 +681,14 @@ usbhs_fifo_read_end:
usbhs_pipe_number(pipe),
pkt->length, pkt->actual, *is_done, pkt->zero);

+   /*
+* Transmission end
+*/
+   if (*is_done) {
+   if (usbhs_pipe_is_dcp(pipe))


   Why not collapse these into single *if*? That would decrease the 
indentation level...



+   usbhs_dcp_control_transfer_done(pipe);
+   }
+
  usbhs_fifo_read_busy:
usbhsf_fifo_unselect(pipe, fifo);


WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: xhci usb 3.0 logitech c920 not working

2014-06-02 Thread Oliver Neukum
On Mon, 2014-05-26 at 13:17 +0200, Martin Rudhart wrote:
> Thank your for your reply,
> 
> A summary of my Bugreport at Launchpad:
> My usb-Webcam Logitech c920 doesn't work when connected to my usb 3.0 
> Host Controller (Etron EJ168a). When connected to a usb 2.0 Host 
> Controller it works perfectly. When I connect my usb 3.0 stick to the 
> same port, it's recognized and also works - just not the Webcam. 
> Disabling usb 3.0 Legacy Mode (xhci) in my Bios doesn't change anything, 
> It's still used instead of ehci.
> 
> Ubuntu 14.04 x64
> 3.13.0-24-generic
> Mainboard: Asrock Z68 Pro3 Gen3
> Bios: P2.30 (latest)
> 
> Here's what dmesg shows if I un/replug the webcam with the 
> mainline/upstream kernel (3.15.0-031500rc6-generic amd64):
> 
> dmesg | grep xhci
> [  165.165101] usb 3-1: new high-speed USB device number 3 using xhci_hcd
> [  166.411905] xhci_hcd :06:00.0: ERROR: unexpected command 
> completion code 0x11. (multiple instances)

Parameter error.
Please switch on xhci dynamic debugging.

But whatever you do, never ever mutilate a bug report like this.
Never ever grep around and drop parts of the report. And don't
put things on an external server one cannot access with all tools.

Regards
Oliver


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] ARM: dts: Enable USB 3503 hub on exynos5250-snow

2014-06-02 Thread Vivek Gautam
Hi Julius,


On Thu, May 29, 2014 at 4:07 AM, Julius Werner  wrote:
> We originally tried using this driver on ChromiumOS and never got it
> to work reliably. IIRC the issue was that if the hub had already been
> initialized by firmware, the USB stack might enumerate it before the
> usb3503 driver is probed and then the later reset will silently
> disrupt that connection. (I think I tried to force the 3503 to probe
> earlier as well, and there was some other issue with that although I
> don't recall the details.)

Ok, there was already a patch posted by you for this[1], which had
quite a much discussion
on it.
Would you like to give some pointers based on that ?
One that Olof had suggested was to use gpio-reset driver which is yet
to make to mainline.
But i think with that too we need to take care of the timing for
resetting the hub before PHY
gets reset.

>
> This will not be an issue for the Snow and Peach_Pi(t) boards (since
> neither of them shipped with firmware that supports this hub), but it
> will be an issue for Spring and Skate. On ChromiumOS we decided to
> carry a local (and admittedly ugly) patch to pull that reset line from
> the USB PHY driver instead, since that's the only way I could get it
> to work in all cases (see http://crosreview.com/58963).
>
> This doesn't mean I'm against this patch per se, just wanted to point
> out the trade-offs.

Thanks for raising the concern, this needs to be addressed.

[1] https://lkml.org/lkml/2013/7/9/486


-- 
Best Regards
Vivek Gautam
Samsung R&D Institute, Bangalore
India
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] xhci: make error messages grepable

2014-06-02 Thread oneukum
From: Oliver Neukum 

grep must work, not matter the line length.

Signed-off-by: Oliver Neukum 
---
 drivers/usb/host/xhci.c | 36 ++--
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 3008369..c15d665 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1805,15 +1805,15 @@ static int xhci_configure_endpoint_result(struct 
xhci_hcd *xhci,
 
switch (*cmd_status) {
case COMP_ENOMEM:
-   dev_warn(&udev->dev, "Not enough host controller resources "
-   "for new device state.\n");
+   dev_warn(&udev->dev,
+"Not enough host controller resources for new device 
state.\n");
ret = -ENOMEM;
/* FIXME: can we allocate more resources for the HC? */
break;
case COMP_BW_ERR:
case COMP_2ND_BW_ERR:
-   dev_warn(&udev->dev, "Not enough bandwidth "
-   "for new device state.\n");
+   dev_warn(&udev->dev,
+"Not enough bandwidth for new device state.\n");
ret = -ENOSPC;
/* FIXME: can we go back to the old state? */
break;
@@ -1825,8 +1825,8 @@ static int xhci_configure_endpoint_result(struct xhci_hcd 
*xhci,
ret = -EINVAL;
break;
case COMP_DEV_ERR:
-   dev_warn(&udev->dev, "ERROR: Incompatible device for endpoint "
-   "configure command.\n");
+   dev_warn(&udev->dev,
+"ERROR: Incompatible device for endpoint configure 
command.\n");
ret = -ENODEV;
break;
case COMP_SUCCESS:
@@ -1835,8 +1835,8 @@ static int xhci_configure_endpoint_result(struct xhci_hcd 
*xhci,
ret = 0;
break;
default:
-   xhci_err(xhci, "ERROR: unexpected command completion "
-   "code 0x%x.\n", *cmd_status);
+   xhci_err(xhci, "ERROR: unexpected command completion code 
0x%x.\n",
+   *cmd_status);
ret = -EINVAL;
break;
}
@@ -1851,24 +1851,24 @@ static int xhci_evaluate_context_result(struct xhci_hcd 
*xhci,
 
switch (*cmd_status) {
case COMP_EINVAL:
-   dev_warn(&udev->dev, "WARN: xHCI driver setup invalid evaluate "
-   "context command.\n");
+   dev_warn(&udev->dev,
+"WARN: xHCI driver setup invalid evaluate context 
command.\n");
ret = -EINVAL;
break;
case COMP_EBADSLT:
-   dev_warn(&udev->dev, "WARN: slot not enabled for"
-   "evaluate context command.\n");
+   dev_warn(&udev->dev,
+   "WARN: slot not enabled for evaluate context 
command.\n");
ret = -EINVAL;
break;
case COMP_CTX_STATE:
-   dev_warn(&udev->dev, "WARN: invalid context state for "
-   "evaluate context command.\n");
+   dev_warn(&udev->dev,
+   "WARN: invalid context state for evaluate context 
command.\n");
xhci_dbg_ctx(xhci, virt_dev->out_ctx, 1);
ret = -EINVAL;
break;
case COMP_DEV_ERR:
-   dev_warn(&udev->dev, "ERROR: Incompatible device for evaluate "
-   "context command.\n");
+   dev_warn(&udev->dev,
+   "ERROR: Incompatible device for evaluate context 
command.\n");
ret = -ENODEV;
break;
case COMP_MEL_ERR:
@@ -1882,8 +1882,8 @@ static int xhci_evaluate_context_result(struct xhci_hcd 
*xhci,
ret = 0;
break;
default:
-   xhci_err(xhci, "ERROR: unexpected command completion "
-   "code 0x%x.\n", *cmd_status);
+   xhci_err(xhci, "ERROR: unexpected command completion code 
0x%x.\n",
+   *cmd_status);
ret = -EINVAL;
break;
}
-- 
1.8.4.5

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/1] usb: add xhci warm reset if get device descripor return error

2014-06-02 Thread vichy
hi Greg:

2014-05-31 0:02 GMT+08:00 Greg KH :
> On Fri, May 30, 2014 at 11:28:36PM +0800, che-chun Kuo wrote:
>> We found when we plug in/out usb3.0 device for stress testing, once
>> usb_get_device_descriptor fail in hub_port_init, we will call 
>> hub_port_disable.
>> Then usb3.0 device may not recover successfully with only hot reset like 
>> below function
>> retval = hub_port_reset(hub, port1, udev, delay, false);
>>
>> For covering this error handling, we add warm reset if getting device 
>> descriptor fail on usb3.0 devices.
>
> Odd linewrapping :(
since I try to make the explanation more readable, I purposely add
more blank like.
sorry for making you confused. ^^
>
> Anyway, what makes USB 3 devices so "special" here that they need a
> reset vs. all other devices?
in the beginning, I try to add quirk determination in usb driver.
But get descriptor is the 1st command we get.
if getting descriptor fail, I have no idea how to add quirk
determination in usb driver.

>
> Are you sure your device isn't just broken somehow?
Yes, your concern is reasonable.
for accelerating the issue happen, I purposely create diff at the end of mail.
And I try 5 devices on my hand, 2 of them will not successfully return
back with only hot reset.

In usb3.0 spec, warm reset will force usb3.0 jump to Rx.detect.
But hot reset will direct down stream port from to ss.Disabled only
only if time out happen.
That is why I add warm reset when get device descriptor fail.

appreciate your help,

diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
old mode 100644
new mode 100755
index f829a1a..ffc5241
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -18,6 +18,9 @@

 #include "usb.h"

+static int try_flag = 0;
+module_param(try_flag, int, S_IRUGO|S_IWUSR);
+
 static void cancel_async_set_config(struct usb_device *udev);

 struct api_context {
@@ -912,6 +915,12 @@ int usb_get_device_descriptor(struct usb_device
*dev, unsigned int size)
if (!desc)
return -ENOMEM;

+
+   if ((try_flag <= 3) &&(dev->speed == USB_SPEED_SUPER) &&
(dev->state == USB_STATE_ADDRESS) && (dev->devpath[0] != '0')){
+   printk(KERN_ERR"purposely let get device descriptor fail\n");
+   try_flag ++;
+   return -2;
+   }
ret = usb_get_descriptor(dev, USB_DT_DEVICE, 0, desc, size);
if (ret >= 0)
memcpy(&dev->descriptor, desc, size);
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: xHCI regression for VIA USB 3.0 controller in handle_cmd_completion

2014-06-02 Thread Mathias Nyman
>> The SLOT ID for reset device command completion TRB's isn't very well 
>> documented.
>> If VIA chose to set it to zero we should use what works best, e.g. dig out 
>> the
>> SLOT ID from the queued command TRB. This has been working previously.
> 
> For Reset Device in Section 4.6.1, it says:
> "Insert a Command Completion Event on the Event Ring of Interrupter 0
> and initialize the following fields:
> ...
>  Clear all other fields of the event TRB to ‘0’."
> 
> Can "all other fields" be interpreted to include Slot ID?
> 

Thats right, so it does. The VIA controller behaving like it should.

>> I'd like to use Saran's patch partly, I'd like to keep Xenia's WARN and 
>> compare
>> SLOT ID's in the cases specs clearly specify event SLOT ID. In the Reset 
>> Device
>> case use the command TRB SLOT ID.
>>
>> I can do this myself, but if you, Saran, feel you want to send a patch for it
>> please let me know
> 
> Thanks for asking, but since the patch is trivial, it'll be
> easier/faster if you write/backport it.
> 

Sure, will do it.

Thanks
-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/1] usb: add xhci warm reset if get device descripor return error

2014-06-02 Thread Alan Stern
On Mon, 2 Jun 2014, vichy wrote:

> hi Greg:
> 
> 2014-05-31 0:02 GMT+08:00 Greg KH :
> > On Fri, May 30, 2014 at 11:28:36PM +0800, che-chun Kuo wrote:
> >> We found when we plug in/out usb3.0 device for stress testing, once
> >> usb_get_device_descriptor fail in hub_port_init, we will call 
> >> hub_port_disable.
> >> Then usb3.0 device may not recover successfully with only hot reset like 
> >> below function
> >> retval = hub_port_reset(hub, port1, udev, delay, false);
> >>
> >> For covering this error handling, we add warm reset if getting device 
> >> descriptor fail on usb3.0 devices.
> >
> > Odd linewrapping :(
> since I try to make the explanation more readable, I purposely add
> more blank like.
> sorry for making you confused. ^^
> >
> > Anyway, what makes USB 3 devices so "special" here that they need a
> > reset vs. all other devices?
> in the beginning, I try to add quirk determination in usb driver.
> But get descriptor is the 1st command we get.
> if getting descriptor fail, I have no idea how to add quirk
> determination in usb driver.
> 
> >
> > Are you sure your device isn't just broken somehow?
> Yes, your concern is reasonable.
> for accelerating the issue happen, I purposely create diff at the end of mail.
> And I try 5 devices on my hand, 2 of them will not successfully return
> back with only hot reset.
> 
> In usb3.0 spec, warm reset will force usb3.0 jump to Rx.detect.
> But hot reset will direct down stream port from to ss.Disabled only
> only if time out happen.
> That is why I add warm reset when get device descriptor fail.

Dan Williams should take a look at this patch.  He has been doing lots 
of similar stuff lately involving warm resets.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Johan Hovold
On Mon, Jun 02, 2014 at 10:25:39AM -0400, Mike Remski wrote:
> Please CC me as not subscribed to list.
> Third party device, with FTDI chip on it.  Get this when plugging device 
> in.  Discovered in kernel 2.6.32

Wow, that kernel is ancient. Please upgrade to a more recent kernel such
as v3.14.5, or you need to get support from whatever vendor is forcing
you to use such an old kernel.

Good luck,
Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: BUG: EHCI Bios handoff fails and system gets stuck

2014-06-02 Thread Alan Stern
On Fri, 30 May 2014, Leandro Liptak wrote:

> Adjunct is the output of dmidecode (:
> I didn't try setting "try_handoff" to 0, but I think behavior is
> predictable since in that case the kernel will never reach the
> pci_write in question. I found a kernel compiling option named "Enable
> PCI quirk workarounds". It seems what i've been looking for (i mean,
> disabling of it), at least while i have this buggy bios...

See if the patch below fixes your problem.

Alan Stern



Index: usb-3.15/drivers/usb/host/pci-quirks.c
===
--- usb-3.15.orig/drivers/usb/host/pci-quirks.c
+++ usb-3.15/drivers/usb/host/pci-quirks.c
@@ -656,6 +656,14 @@ static const struct dmi_system_id ehci_d
DMI_MATCH(DMI_BIOS_VERSION, "Lucid-"),
},
},
+   {
+   /* HASEE E200 */
+   .matches = {
+   DMI_MATCH(DMI_BOARD_VENDOR, "HASEE"),
+   DMI_MATCH(DMI_BOARD_NAME, "E210"),
+   DMI_MATCH(DMI_BIOS_VERSION, "6.00"),
+   },
+   },
{ }
 };
 
@@ -665,9 +673,14 @@ static void ehci_bios_handoff(struct pci
 {
int try_handoff = 1, tried_handoff = 0;
 
-   /* The Pegatron Lucid tablet sporadically waits for 98 seconds trying
-* the handoff on its unused controller.  Skip it. */
-   if (pdev->vendor == 0x8086 && pdev->device == 0x283a) {
+   /*
+* The Pegatron Lucid tablet sporadically waits for 98 seconds trying
+* the handoff on its unused controller.  Skip it.
+*
+* The HASEE E200 hangs when the semaphore is set (bugzilla #77021).
+*/
+   if (pdev->vendor == 0x8086 && (pdev->device == 0x283a ||
+   pdev->device == 0x27cc)) {
if (dmi_check_system(ehci_dmi_nohandoff_table))
try_handoff = 0;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/3] usb: gadget: dummy_hcd: refactor dummy_start to be DRY

2014-06-02 Thread Alan Stern
On Sat, 31 May 2014, Pantelis Koukousoulas wrote:

> When dummy_hcd is created as a SuperSpeed controller (configurable via
> a module parameter) dummy_start() is called twice, once to make the

Not to "make" the hcds, but to start them running.  The hcd structures
are created in dummy_hcd_probe().

> SuperSpeed HCD and once to make the Highspeed HCD. When it is created
> as a HighSpeed controller, then dummy_start() is only called once.
> 
> The way dummy_start() was written, the URB list and the timer are
> initialized twice (in the superspeed case). Besides looking weird
> it is also possible that this can be buggy, because the way it works
> is that we initialize the timer and the list when starting the
> SuperSpeed HCD, we return all the way back to the USB core (so
> possibly the timer and list start to get used due to requests
> by the hub) and then we initialize them again while starting
> the HighSpeed HCD. It is not impossible for this to result at
> least in lost/leaked URBs.

No, this is completely wrong.  When the driver uses SuperSpeed support,
there are two hcds: the high speed one and the SuperSpeed one.  They
are different structures and they both need to be initialized.

It sounds like you have confused struct dummy (there's only one of 
these) with struct dummy_hcd (there are two of these).

> So, rework dummy_start() to only initialize dummy_hcd struct
> fields once and delete dummy_start_ss() helper function
> as it is no longer useful.
> 
> Signed-off-by: Pantelis Koukousoulas 
> ---
>  drivers/usb/gadget/dummy_hcd.c | 50 
> ++
>  1 file changed, 17 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
> index 8c06430..dbbee3e 100644
> --- a/drivers/usb/gadget/dummy_hcd.c
> +++ b/drivers/usb/gadget/dummy_hcd.c
> @@ -2314,45 +2314,23 @@ static ssize_t urbs_show(struct device *dev, struct 
> device_attribute *attr,
>  }
>  static DEVICE_ATTR_RO(urbs);
>  
> -static int dummy_start_ss(struct dummy_hcd *dum_hcd)
> -{
> - init_timer(&dum_hcd->timer);
> - dum_hcd->timer.function = dummy_timer;
> - dum_hcd->timer.data = (unsigned long)dum_hcd;
> - dum_hcd->rh_state = DUMMY_RH_RUNNING;
> - dum_hcd->stream_en_ep = 0;
> - INIT_LIST_HEAD(&dum_hcd->urbp_list);
> - dummy_hcd_to_hcd(dum_hcd)->power_budget = POWER_BUDGET;
> - dummy_hcd_to_hcd(dum_hcd)->state = HC_STATE_RUNNING;
> - dummy_hcd_to_hcd(dum_hcd)->uses_new_polling = 1;
> -#ifdef CONFIG_USB_OTG
> - dummy_hcd_to_hcd(dum_hcd)->self.otg_port = 1;
> -#endif
> - return 0;
> -
> - /* FIXME 'urbs' should be a per-device thing, maybe in usbcore */
> - return device_create_file(dummy_dev(dum_hcd), &dev_attr_urbs);
> -}
> -
>  static int dummy_start(struct usb_hcd *hcd)
>  {
>   struct dummy_hcd*dum_hcd = hcd_to_dummy_hcd(hcd);
>  
>   /*
> -  * MASTER side init ... we emulate a root hub that'll only ever
> -  * talk to one device (the slave side).  Also appears in sysfs,
> -  * just like more familiar pci-based HCDs.

Don't remove this comment.  It's still correct.

> +  * These are per-device, not per HCD, so they should only be

I don't know what "These" refers to, but the data structures used in 
this subroutine _are_ per-hcd.

> +  * initialized once although in the superspeed case this
> +  * function will be called twice. Thus we use a conditional.
>*/
> - if (!usb_hcd_is_primary_hcd(hcd))
> - return dummy_start_ss(dum_hcd);
> -
> - spin_lock_init(&dum_hcd->dum->lock);
> - init_timer(&dum_hcd->timer);
> - dum_hcd->timer.function = dummy_timer;
> - dum_hcd->timer.data = (unsigned long)dum_hcd;
> - dum_hcd->rh_state = DUMMY_RH_RUNNING;
> -
> - INIT_LIST_HEAD(&dum_hcd->urbp_list);
> + if (dum_hcd->rh_state != DUMMY_RH_RUNNING) {
> + spin_lock_init(&dum_hcd->dum->lock);
> + init_timer(&dum_hcd->timer);
> + dum_hcd->timer.function = dummy_timer;
> + dum_hcd->timer.data = (unsigned long)dum_hcd;
> + INIT_LIST_HEAD(&dum_hcd->urbp_list);
> + dum_hcd->rh_state = DUMMY_RH_RUNNING;
> + }

This stuff needs to be executed unconditionally.

>   hcd->power_budget = POWER_BUDGET;
>   hcd->state = HC_STATE_RUNNING;
> @@ -2362,6 +2340,12 @@ static int dummy_start(struct usb_hcd *hcd)
>   hcd->self.otg_port = 1;
>  #endif
>  
> + /* In dummy_hcd the SuperSpeed HCD is the secondary one */

This is true for all HCDs that have SuperSpeed support, not just 
dummy_hcd.

> + if (!usb_hcd_is_primary_hcd(hcd)) {
> + dum_hcd->stream_en_ep = 0;
> + return 0;
> + }
> +
>   /* FIXME 'urbs' should be a per-device thing, maybe in usbcore */
>   return device_create_file(dummy_dev(dum_hcd), &dev_attr_urbs);
>  }

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body 

Re: [PATCH 3/3] usb: gadget: Port dummy_hcd to hrtimers

2014-06-02 Thread Alan Stern
On Sat, 31 May 2014, Pantelis Koukousoulas wrote:

> dummy_hcd uses jiffies and seems to assume that HZ=1000 and no
> tickless behavior. This makes its emulation not very faithful,
> especially for typical distro desktop kernels (HZ=250, tickless
> which means that e.g., when dummy_hcd asks for a delay of 1ms
> in reality it can get 4ms or more).
> 
> For some devices, this might manifest as unexpectedly low performance
> (e.g., 2-4MB/s for a tcm_gadget_usb backed by a ramdisk) compared to
> real hardware, others might even break if they are more sensitive to
> timing.
> 
> This patch ports dummy_hcd to use hrtimers instead, which fixes these
> problems and hopefully allows both for more gadgets to work with
> dummy_hcd and for a better emulation user experience overall,
> especially in typical kernel configurations.
> 
> For storage this brings performance to acceptable levels
> (around 25MB/s for BOT, 100MB/s for UAS) improving the
> user experience when testing, for other devices it might
> mean that now they will work properly with dummy_hcd when
> before they didn't.
> 
> Implementation uses the tasklet_hrtimer framework. This means
> dummy_timer callback is executed in softirq context (as it was
> with wheel timers) which keeps required changes to a minimum.

Acked-by: Alan Stern 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski
Thanks Johan, that's why I looked at the cross references for ftdi_sio.c 
over on
http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c, 
latest version it's showing is 3.14.  It appears that the ftdi_sio code 
is largely the same as in 2.6.32, particularly in the 
ftdi_set_max_packet_size() function.


I'm trying to verify if the "number of endpoints is 0" is a valid 
situation.


Just a typical day of "fun with kernels and devices".


On 06/02/2014 10:33 AM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 10:25:39AM -0400, Mike Remski wrote:

Please CC me as not subscribed to list.
Third party device, with FTDI chip on it.  Get this when plugging device
in.  Discovered in kernel 2.6.32

Wow, that kernel is ancient. Please upgrade to a more recent kernel such
as v3.14.5, or you need to get support from whatever vendor is forcing
you to use such an old kernel.

Good luck,
Johan



--
Office: (978)401-4032 (x123 internally)
Cell: (603) 759-6953

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Johan Hovold
[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:
> Thanks Johan, that's why I looked at the cross references for ftdi_sio.c 
> over on
> http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c, 
> latest version it's showing is 3.14.  It appears that the ftdi_sio code 
> is largely the same as in 2.6.32, particularly in the 
> ftdi_set_max_packet_size() function.

Lots of things have changed since v2.6.32 and not just in the driver
itself but in all the infrastructure it relies on.

> I'm trying to verify if the "number of endpoints is 0" is a valid 
> situation.

No, that is not normal, but it should not crash the driver if it's a
hardware issue. What is the lsusb -v output of your device (make sure
the ftdi_sio driver isn't loaded when connecting the device).

And what happens if you plug it into a machine running a recent kernel?

Thanks,
Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] usb: musb: tusb6010: Introduce the use of the managed version of kzalloc

2014-06-02 Thread Himangi Saraogi
This patch moves data allocated using kzalloc to managed data allocated
using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
functions. Also, the unnecesary labels are removed and linux/device.h is
added to make sure the devm_*() routine declarations are unambiguously
available.

The following Coccinelle semantic patch was used for making the change:

@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
  .probe = probefn,
  .remove = removefn,
};

@prb@
identifier platform.probefn, pdev;
expression e, e1, e2;
@@
probefn(struct platform_device *pdev, ...) {
  <+...
- e = kzalloc(e1, e2)
+ e = devm_kzalloc(&pdev->dev, e1, e2)
  ...
?-kfree(e);
  ...+>
}

@rem depends on prb@
identifier platform.removefn;
expression e;
@@
removefn(...) {
  <...
- kfree(e);
  ...>
}

Signed-off-by: Himangi Saraogi 
Acked-by: Julia Lawall 
---
 drivers/usb/musb/tusb6010.c | 16 +---
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/drivers/usb/musb/tusb6010.c b/drivers/usb/musb/tusb6010.c
index 159ef4b..7dfc6cb 100644
--- a/drivers/usb/musb/tusb6010.c
+++ b/drivers/usb/musb/tusb6010.c
@@ -22,6 +22,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -1160,12 +1161,12 @@ static int tusb_probe(struct platform_device *pdev)
struct platform_device  *musb;
struct tusb6010_glue*glue;
struct platform_device_info pinfo;
-   int ret = -ENOMEM;
+   int ret;
 
-   glue = kzalloc(sizeof(*glue), GFP_KERNEL);
+   glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
if (!glue) {
dev_err(&pdev->dev, "failed to allocate glue context\n");
-   goto err0;
+   return -ENOMEM;
}
 
glue->dev   = &pdev->dev;
@@ -1204,16 +1205,10 @@ static int tusb_probe(struct platform_device *pdev)
if (IS_ERR(musb)) {
ret = PTR_ERR(musb);
dev_err(&pdev->dev, "failed to register musb device: %d\n", 
ret);
-   goto err3;
+   return ret;
}
 
return 0;
-
-err3:
-   kfree(glue);
-
-err0:
-   return ret;
 }
 
 static int tusb_remove(struct platform_device *pdev)
@@ -1222,7 +1217,6 @@ static int tusb_remove(struct platform_device *pdev)
 
platform_device_unregister(glue->musb);
usb_phy_generic_unregister(glue->phy);
-   kfree(glue);
 
return 0;
 }
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski

On 06/02/2014 11:40 AM, Johan Hovold wrote:

[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

Thanks Johan, that's why I looked at the cross references for ftdi_sio.c
over on
http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c,
latest version it's showing is 3.14.  It appears that the ftdi_sio code
is largely the same as in 2.6.32, particularly in the
ftdi_set_max_packet_size() function.

Lots of things have changed since v2.6.32 and not just in the driver
itself but in all the infrastructure it relies on.


I'm trying to verify if the "number of endpoints is 0" is a valid
situation.

No, that is not normal, but it should not crash the driver if it's a
hardware issue. What is the lsusb -v output of your device (make sure
the ftdi_sio driver isn't loaded when connecting the device).

And what happens if you plug it into a machine running a recent kernel?

Thanks,
Johan

Thanks Johan;  sorry for top posting.
An even more ancient kernel (2.6.18) has v1.4.3 of the ftdi_sio.c and I 
do not see this problem.  In v1.4.3,
ftdi_sio_attach() is doing the work that is now in 
ftdi_sio_port_probe(), but 1.4.3 does not have the 
ftdi_set_max_packet_size() code.  The device works fine under 2.6.18.  I 
have to see if I can scrounge up

a machine running a later kernel (other than my desktop).
Should have included this earlier but its unmodified CentOs 6.0 and 6.4, 
kernel is:


Linux nicA91A84 2.6.32-71.29.1.el6.i686 #1 SMP Tue May 10 17:35:05 CDT 
2011 i686 i686 i386 GNU/Linux



lsusb -v cut for the device in question.

Bus 005 Device 003: ID 1fdf:1001
Device Descriptor:
  bLength18
  bDescriptorType 1
  bcdUSB   2.00
  bDeviceClass  239 Miscellaneous Device
  bDeviceSubClass 2 ?
  bDeviceProtocol 1 Interface Association
  bMaxPacketSize064
  idVendor   0x1fdf
  idProduct  0x1001
  bcdDevice0.03
  iManufacturer   1 Sepura
  iProduct2 Colour Console
  iSerial 0
  bNumConfigurations  1
  Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength  134
bNumInterfaces  4
bConfigurationValue 1
iConfiguration  0
bmAttributes 0xc0
  Self Powered
MaxPower  100mA
Interface Association:
  bLength 8
  bDescriptorType11
  bFirstInterface 0
  bInterfaceCount 2
  bFunctionClass  2 Communications
  bFunctionSubClass   2 Abstract (modem)
  bFunctionProtocol   0 None
  iFunction   0
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber0
  bAlternateSetting   0
  bNumEndpoints   1
  bInterfaceClass 2 Communications
  bInterfaceSubClass  2 Abstract (modem)
  bInterfaceProtocol  0 None
  iInterface  0
  CDC Header:
bcdCDC   1.10
  CDC Call Management:
bmCapabilities   0x01
  call management
bDataInterface  1
  CDC ACM:
bmCapabilities   0x02
  line coding and serial state
  CDC Union:
bMasterInterface0
bSlaveInterface 1
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83  EP 3 IN
bmAttributes3
  Transfer TypeInterrupt
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0040  1x 64 bytes
bInterval  10
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber1
  bAlternateSetting   0
  bNumEndpoints   2
  bInterfaceClass10 CDC Data
  bInterfaceSubClass  0 Unused
  bInterfaceProtocol  0
  iInterface  0
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01  EP 1 OUT
bmAttributes2
  Transfer TypeBulk
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0040  1x 64 bytes
bInterval   0
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82  EP 2 IN
bmAttributes2
  Transfer TypeBulk
  Synch Type   None
  Usage Type   Data
wMaxPacketSize 0x0040  1x 64 bytes
bInterval   0
Interface Association:
  bLength 8
  bDescriptorType11
  bFirstInterface 2
  bInt

Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski

On 06/02/2014 11:40 AM, Johan Hovold wrote:

[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

Thanks Johan, that's why I looked at the cross references for ftdi_sio.c
over on
http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c,
latest version it's showing is 3.14.  It appears that the ftdi_sio code
is largely the same as in 2.6.32, particularly in the
ftdi_set_max_packet_size() function.

Lots of things have changed since v2.6.32 and not just in the driver
itself but in all the infrastructure it relies on.


I'm trying to verify if the "number of endpoints is 0" is a valid
situation.

No, that is not normal, but it should not crash the driver if it's a
hardware issue. What is the lsusb -v output of your device (make sure
the ftdi_sio driver isn't loaded when connecting the device).

And what happens if you plug it into a machine running a recent kernel?

Thanks,
Johan
Plugging device into a system running Redhat, kernel 3.3.4 crashes the 
system.


--
Office: (978)401-4032 (x123 internally)
Cell: (603) 759-6953

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Greg KH
On Mon, Jun 02, 2014 at 12:09:36PM -0400, Mike Remski wrote:
> On 06/02/2014 11:40 AM, Johan Hovold wrote:
> >[ Please avoid top-posting. ]
> >
> >On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:
> >>Thanks Johan, that's why I looked at the cross references for ftdi_sio.c
> >>over on
> >>http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c,
> >>latest version it's showing is 3.14.  It appears that the ftdi_sio code
> >>is largely the same as in 2.6.32, particularly in the
> >>ftdi_set_max_packet_size() function.
> >Lots of things have changed since v2.6.32 and not just in the driver
> >itself but in all the infrastructure it relies on.
> >
> >>I'm trying to verify if the "number of endpoints is 0" is a valid
> >>situation.
> >No, that is not normal, but it should not crash the driver if it's a
> >hardware issue. What is the lsusb -v output of your device (make sure
> >the ftdi_sio driver isn't loaded when connecting the device).
> >
> >And what happens if you plug it into a machine running a recent kernel?
> >
> >Thanks,
> >Johan
> Plugging device into a system running Redhat, kernel 3.3.4 crashes the
> system.

3.3.4 is still _many_ years old.  Please try something from 2014 at the
latest...
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Johan Hovold
On Mon, Jun 02, 2014 at 12:02:40PM -0400, Mike Remski wrote:
> On 06/02/2014 11:40 AM, Johan Hovold wrote:
> > [ Please avoid top-posting. ]
> >
> > On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:
> >> Thanks Johan, that's why I looked at the cross references for ftdi_sio.c
> >> over on
> >> http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c,
> >> latest version it's showing is 3.14.  It appears that the ftdi_sio code
> >> is largely the same as in 2.6.32, particularly in the
> >> ftdi_set_max_packet_size() function.
> > Lots of things have changed since v2.6.32 and not just in the driver
> > itself but in all the infrastructure it relies on.
> >
> >> I'm trying to verify if the "number of endpoints is 0" is a valid
> >> situation.
> > No, that is not normal, but it should not crash the driver if it's a
> > hardware issue. What is the lsusb -v output of your device (make sure
> > the ftdi_sio driver isn't loaded when connecting the device).
> >
> > And what happens if you plug it into a machine running a recent kernel?
> >
> > Thanks,
> > Johan
> Thanks Johan;  sorry for top posting.
> An even more ancient kernel (2.6.18) has v1.4.3 of the ftdi_sio.c and I 
> do not see this problem.  In v1.4.3,
> ftdi_sio_attach() is doing the work that is now in 
> ftdi_sio_port_probe(), but 1.4.3 does not have the 
> ftdi_set_max_packet_size() code.  The device works fine under 2.6.18.  I 
> have to see if I can scrounge up
> a machine running a later kernel (other than my desktop).

Your desktop should be just fine for testing.

> Should have included this earlier but its unmodified CentOs 6.0 and 6.4, 
> kernel is:
> 
> Linux nicA91A84 2.6.32-71.29.1.el6.i686 #1 SMP Tue May 10 17:35:05 CDT 
> 2011 i686 i686 i386 GNU/Linux
> 
> 
> lsusb -v cut for the device in question.
>
> Bus 005 Device 003: ID 1fdf:1001
> Device Descriptor:
>bLength18
>bDescriptorType 1
>bcdUSB   2.00
>bDeviceClass  239 Miscellaneous Device
>bDeviceSubClass 2 ?
>bDeviceProtocol 1 Interface Association
>bMaxPacketSize064
>idVendor   0x1fdf
>idProduct  0x1001
>bcdDevice0.03
>iManufacturer   1 Sepura
>iProduct2 Colour Console
>iSerial 0
>bNumConfigurations  1
>Configuration Descriptor:
>  bLength 9
>  bDescriptorType 2
>  wTotalLength  134
>  bNumInterfaces  4
>  bConfigurationValue 1
>  iConfiguration  0
>  bmAttributes 0xc0
>Self Powered
>  MaxPower  100mA
>  Interface Association:
>bLength 8
>bDescriptorType11
>bFirstInterface 0
>bInterfaceCount 2
>bFunctionClass  2 Communications
>bFunctionSubClass   2 Abstract (modem)

Is this indeed the right device? Then you seem to be using the wrong
driver as this is no FTDI device, but a CDC-ACM modem-class device which
should be driven by the cdc-acm driver.

>bFunctionProtocol   0 None
>iFunction   0
>  Interface Descriptor:
>bLength 9
>bDescriptorType 4
>bInterfaceNumber0
>bAlternateSetting   0
>bNumEndpoints   1
>bInterfaceClass 2 Communications
>bInterfaceSubClass  2 Abstract (modem)
>bInterfaceProtocol  0 None
>iInterface  0
>CDC Header:
>  bcdCDC   1.10
>CDC Call Management:
>  bmCapabilities   0x01
>call management
>  bDataInterface  1
>CDC ACM:
>  bmCapabilities   0x02
>line coding and serial state
>CDC Union:
>  bMasterInterface0
>  bSlaveInterface 1
>Endpoint Descriptor:
>  bLength 7
>  bDescriptorType 5
>  bEndpointAddress 0x83  EP 3 IN
>  bmAttributes3
>Transfer TypeInterrupt
>Synch Type   None
>Usage Type   Data
>  wMaxPacketSize 0x0040  1x 64 bytes
>  bInterval  10
>  Interface Descriptor:
>bLength 9
>bDescriptorType 4
>bInterfaceNumber1
>bAlternateSetting   0
>bNumEndpoints   2
>bInterfaceClass10 CDC Data
>bInterfaceSubClass  0 Unused
>bInterfaceProtocol  0
>iInterface  0
>Endpoint Descriptor:
>  bLength 7
>  bDescriptorType 5
>  bEndpointAddress 0x01  EP 1 OUT
>  bmAttributes2
>Transfer TypeBulk
> 

Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski

On 06/02/2014 12:20 PM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 12:02:40PM -0400, Mike Remski wrote:

On 06/02/2014 11:40 AM, Johan Hovold wrote:

[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

Thanks Johan, that's why I looked at the cross references for ftdi_sio.c
over on
http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c,
latest version it's showing is 3.14.  It appears that the ftdi_sio code
is largely the same as in 2.6.32, particularly in the
ftdi_set_max_packet_size() function.

Lots of things have changed since v2.6.32 and not just in the driver
itself but in all the infrastructure it relies on.


I'm trying to verify if the "number of endpoints is 0" is a valid
situation.

No, that is not normal, but it should not crash the driver if it's a
hardware issue. What is the lsusb -v output of your device (make sure
the ftdi_sio driver isn't loaded when connecting the device).

And what happens if you plug it into a machine running a recent kernel?

Thanks,
Johan

Thanks Johan;  sorry for top posting.
An even more ancient kernel (2.6.18) has v1.4.3 of the ftdi_sio.c and I
do not see this problem.  In v1.4.3,
ftdi_sio_attach() is doing the work that is now in
ftdi_sio_port_probe(), but 1.4.3 does not have the
ftdi_set_max_packet_size() code.  The device works fine under 2.6.18.  I
have to see if I can scrounge up
a machine running a later kernel (other than my desktop).

Your desktop should be just fine for testing.


Should have included this earlier but its unmodified CentOs 6.0 and 6.4,
kernel is:

Linux nicA91A84 2.6.32-71.29.1.el6.i686 #1 SMP Tue May 10 17:35:05 CDT
2011 i686 i686 i386 GNU/Linux


lsusb -v cut for the device in question.

Bus 005 Device 003: ID 1fdf:1001
Device Descriptor:
bLength18
bDescriptorType 1
bcdUSB   2.00
bDeviceClass  239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize064
idVendor   0x1fdf
idProduct  0x1001
bcdDevice0.03
iManufacturer   1 Sepura
iProduct2 Colour Console
iSerial 0
bNumConfigurations  1
Configuration Descriptor:
  bLength 9
  bDescriptorType 2
  wTotalLength  134
  bNumInterfaces  4
  bConfigurationValue 1
  iConfiguration  0
  bmAttributes 0xc0
Self Powered
  MaxPower  100mA
  Interface Association:
bLength 8
bDescriptorType11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass  2 Communications
bFunctionSubClass   2 Abstract (modem)

Is this indeed the right device? Then you seem to be using the wrong
driver as this is no FTDI device, but a CDC-ACM modem-class device which
should be driven by the cdc-acm driver.


bFunctionProtocol   0 None
iFunction   0
  Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber0
bAlternateSetting   0
bNumEndpoints   1
bInterfaceClass 2 Communications
bInterfaceSubClass  2 Abstract (modem)
bInterfaceProtocol  0 None
iInterface  0
CDC Header:
  bcdCDC   1.10
CDC Call Management:
  bmCapabilities   0x01
call management
  bDataInterface  1
CDC ACM:
  bmCapabilities   0x02
line coding and serial state
CDC Union:
  bMasterInterface0
  bSlaveInterface 1
Endpoint Descriptor:
  bLength 7
  bDescriptorType 5
  bEndpointAddress 0x83  EP 3 IN
  bmAttributes3
Transfer TypeInterrupt
Synch Type   None
Usage Type   Data
  wMaxPacketSize 0x0040  1x 64 bytes
  bInterval  10
  Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber1
bAlternateSetting   0
bNumEndpoints   2
bInterfaceClass10 CDC Data
bInterfaceSubClass  0 Unused
bInterfaceProtocol  0
iInterface  0
Endpoint Descriptor:
  bLength 7
  bDescriptorType 5
  bEndpointAddress 0x01  EP 1 OUT
  bmAttributes2
Transfer TypeBulk
Synch Type   None
Usage Type   Data
  wMaxPacketSize 0x0040  1x 64 bytes
  bInterval   0

Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski

On 06/02/2014 12:23 PM, Greg KH wrote:

On Mon, Jun 02, 2014 at 12:09:36PM -0400, Mike Remski wrote:

On 06/02/2014 11:40 AM, Johan Hovold wrote:

[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

Thanks Johan, that's why I looked at the cross references for ftdi_sio.c
over on
http://lxr.free-electrons.com/source/drivers/usb/serial/ftdi_sio.c,
latest version it's showing is 3.14.  It appears that the ftdi_sio code
is largely the same as in 2.6.32, particularly in the
ftdi_set_max_packet_size() function.

Lots of things have changed since v2.6.32 and not just in the driver
itself but in all the infrastructure it relies on.


I'm trying to verify if the "number of endpoints is 0" is a valid
situation.

No, that is not normal, but it should not crash the driver if it's a
hardware issue. What is the lsusb -v output of your device (make sure
the ftdi_sio driver isn't loaded when connecting the device).

And what happens if you plug it into a machine running a recent kernel?

Thanks,
Johan

Plugging device into a system running Redhat, kernel 3.3.4 crashes the
system.

3.3.4 is still _many_ years old.  Please try something from 2014 at the
latest...


Understood Greg;  it was the best I had immediately available.  I am 
working on setting up/finding a later kernel at the moment.


thanks

--
Office: (978)401-4032 (x123 internally)
Cell: (603) 759-6953

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] iusb: musb: davinci: use devm_ functions.

2014-06-02 Thread Himangi Saraogi
This patch moves data allocated using kzalloc to managed data allocated
using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
functions. Also, a label is done away with and clk_get is replaced by it
corresponding devm version and the clk_puts are done away with. The
labels are renamed to make them ordered.

The following Coccinelle semantic patch was used for making the change:

@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
  .probe = probefn,
  .remove = removefn,
};

@prb@
identifier platform.probefn, pdev;
expression e, e1, e2;
@@
probefn(struct platform_device *pdev, ...) {
  <+...
- e = kzalloc(e1, e2)
+ e = devm_kzalloc(&pdev->dev, e1, e2)
  ...
?-kfree(e);
  ...+>
}

@rem depends on prb@
identifier platform.removefn;
expression e;
@@
removefn(...) {
  <...
- kfree(e);
  ...>
}

Signed-off-by: Himangi Saraogi 
Acked-by: Julia Lawall 
---
Not compile tested due to incompatible architechture.
 drivers/usb/musb/davinci.c | 20 ++--
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
index de8492b..110b784 100644
--- a/drivers/usb/musb/davinci.c
+++ b/drivers/usb/musb/davinci.c
@@ -519,23 +519,23 @@ static int davinci_probe(struct platform_device *pdev)
 
int ret = -ENOMEM;
 
-   glue = kzalloc(sizeof(*glue), GFP_KERNEL);
+   glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
if (!glue) {
dev_err(&pdev->dev, "failed to allocate glue context\n");
goto err0;
}
 
-   clk = clk_get(&pdev->dev, "usb");
+   clk = devm_clk_get(&pdev->dev, "usb");
if (IS_ERR(clk)) {
dev_err(&pdev->dev, "failed to get clock\n");
ret = PTR_ERR(clk);
-   goto err3;
+   goto err0;
}
 
ret = clk_enable(clk);
if (ret) {
dev_err(&pdev->dev, "failed to enable clock\n");
-   goto err4;
+   goto err0;
}
 
glue->dev   = &pdev->dev;
@@ -579,20 +579,14 @@ static int davinci_probe(struct platform_device *pdev)
if (IS_ERR(musb)) {
ret = PTR_ERR(musb);
dev_err(&pdev->dev, "failed to register musb device: %d\n", 
ret);
-   goto err5;
+   goto err1;
}
 
return 0;
 
-err5:
+err1:
clk_disable(clk);
 
-err4:
-   clk_put(clk);
-
-err3:
-   kfree(glue);
-
 err0:
return ret;
 }
@@ -604,8 +598,6 @@ static int davinci_remove(struct platform_device *pdev)
platform_device_unregister(glue->musb);
usb_phy_generic_unregister();
clk_disable(glue->clk);
-   clk_put(glue->clk);
-   kfree(glue);
 
return 0;
 }
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Johan Hovold
On Mon, Jun 02, 2014 at 12:24:44PM -0400, Mike Remski wrote:
> On 06/02/2014 12:20 PM, Johan Hovold wrote:
> > On Mon, Jun 02, 2014 at 12:02:40PM -0400, Mike Remski wrote:
> >> On 06/02/2014 11:40 AM, Johan Hovold wrote:
> >>> [ Please avoid top-posting. ]
> >>>
> >>> On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

> >> lsusb -v cut for the device in question.
> >>
> >> Bus 005 Device 003: ID 1fdf:1001
> >> Device Descriptor:
> >> bLength18
> >> bDescriptorType 1
> >> bcdUSB   2.00
> >> bDeviceClass  239 Miscellaneous Device
> >> bDeviceSubClass 2 ?
> >> bDeviceProtocol 1 Interface Association
> >> bMaxPacketSize064
> >> idVendor   0x1fdf
> >> idProduct  0x1001
> >> bcdDevice0.03
> >> iManufacturer   1 Sepura
> >> iProduct2 Colour Console
> >> iSerial 0
> >> bNumConfigurations  1
> >> Configuration Descriptor:
> >>   bLength 9
> >>   bDescriptorType 2
> >>   wTotalLength  134
> >>   bNumInterfaces  4
> >>   bConfigurationValue 1
> >>   iConfiguration  0
> >>   bmAttributes 0xc0
> >> Self Powered
> >>   MaxPower  100mA
> >>   Interface Association:
> >> bLength 8
> >> bDescriptorType11
> >> bFirstInterface 0
> >> bInterfaceCount 2
> >> bFunctionClass  2 Communications
> >> bFunctionSubClass   2 Abstract (modem)
> > Is this indeed the right device? Then you seem to be using the wrong
> > driver as this is no FTDI device, but a CDC-ACM modem-class device which
> > should be driven by the cdc-acm driver.
> >
> >> bFunctionProtocol   0 None
> >> iFunction   0
> >>   Interface Descriptor:
> >> bLength 9
> >> bDescriptorType 4
> >> bInterfaceNumber0
> >> bAlternateSetting   0
> >> bNumEndpoints   1
> >> bInterfaceClass 2 Communications
> >> bInterfaceSubClass  2 Abstract (modem)
> >> bInterfaceProtocol  0 None
> >> iInterface  0
> >> CDC Header:
> >>   bcdCDC   1.10
> >> CDC Call Management:
> >>   bmCapabilities   0x01
> >> call management
> >>   bDataInterface  1
> >> CDC ACM:
> >>   bmCapabilities   0x02
> >> line coding and serial state
> >> CDC Union:
> >>   bMasterInterface0
> >>   bSlaveInterface 1
> >> Endpoint Descriptor:
> >>   bLength 7
> >>   bDescriptorType 5
> >>   bEndpointAddress 0x83  EP 3 IN
> >>   bmAttributes3
> >> Transfer TypeInterrupt
> >> Synch Type   None
> >> Usage Type   Data
> >>   wMaxPacketSize 0x0040  1x 64 bytes
> >>   bInterval  10
> >>   Interface Descriptor:
> >> bLength 9
> >> bDescriptorType 4
> >> bInterfaceNumber1
> >> bAlternateSetting   0
> >> bNumEndpoints   2
> >> bInterfaceClass10 CDC Data
> >> bInterfaceSubClass  0 Unused
> >> bInterfaceProtocol  0
> >> iInterface  0
> >> Endpoint Descriptor:
> >>   bLength 7
> >>   bDescriptorType 5
> >>   bEndpointAddress 0x01  EP 1 OUT
> >>   bmAttributes2
> >> Transfer TypeBulk
> >> Synch Type   None
> >> Usage Type   Data
> >>   wMaxPacketSize 0x0040  1x 64 bytes
> >>   bInterval   0
> >> Endpoint Descriptor:
> >>   bLength 7
> >>   bDescriptorType 5
> >>   bEndpointAddress 0x82  EP 2 IN
> >>   bmAttributes2
> >> Transfer TypeBulk
> >> Synch Type   None
> >> Usage Type   Data
> >>   wMaxPacketSize 0x0040  1x 64 bytes
> >>   bInterval   0
> >>   Interface Association:
> >> bLength 8
> >> bDescriptorType11
> >> bFirstInterface 2
> >> bInterfaceCount 2
> >> bFunctionClass  2 Communications
> >> bFunctionSubClass   2 Abstract (modem)
> >> bFunctionProtocol   0 None
> >> iFunction   0
> >>   Interface Descriptor:
> >> bLength 9
> >> bDes

Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski

On 06/02/2014 12:49 PM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 12:24:44PM -0400, Mike Remski wrote:

On 06/02/2014 12:20 PM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 12:02:40PM -0400, Mike Remski wrote:

On 06/02/2014 11:40 AM, Johan Hovold wrote:

[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

lsusb -v cut for the device in question.

Bus 005 Device 003: ID 1fdf:1001
Device Descriptor:
 bLength18
 bDescriptorType 1
 bcdUSB   2.00
 bDeviceClass  239 Miscellaneous Device
 bDeviceSubClass 2 ?
 bDeviceProtocol 1 Interface Association
 bMaxPacketSize064
 idVendor   0x1fdf
 idProduct  0x1001
 bcdDevice0.03
 iManufacturer   1 Sepura
 iProduct2 Colour Console
 iSerial 0
 bNumConfigurations  1
 Configuration Descriptor:
   bLength 9
   bDescriptorType 2
   wTotalLength  134
   bNumInterfaces  4
   bConfigurationValue 1
   iConfiguration  0
   bmAttributes 0xc0
 Self Powered
   MaxPower  100mA
   Interface Association:
 bLength 8
 bDescriptorType11
 bFirstInterface 0
 bInterfaceCount 2
 bFunctionClass  2 Communications
 bFunctionSubClass   2 Abstract (modem)

Is this indeed the right device? Then you seem to be using the wrong
driver as this is no FTDI device, but a CDC-ACM modem-class device which
should be driven by the cdc-acm driver.


 bFunctionProtocol   0 None
 iFunction   0
   Interface Descriptor:
 bLength 9
 bDescriptorType 4
 bInterfaceNumber0
 bAlternateSetting   0
 bNumEndpoints   1
 bInterfaceClass 2 Communications
 bInterfaceSubClass  2 Abstract (modem)
 bInterfaceProtocol  0 None
 iInterface  0
 CDC Header:
   bcdCDC   1.10
 CDC Call Management:
   bmCapabilities   0x01
 call management
   bDataInterface  1
 CDC ACM:
   bmCapabilities   0x02
 line coding and serial state
 CDC Union:
   bMasterInterface0
   bSlaveInterface 1
 Endpoint Descriptor:
   bLength 7
   bDescriptorType 5
   bEndpointAddress 0x83  EP 3 IN
   bmAttributes3
 Transfer TypeInterrupt
 Synch Type   None
 Usage Type   Data
   wMaxPacketSize 0x0040  1x 64 bytes
   bInterval  10
   Interface Descriptor:
 bLength 9
 bDescriptorType 4
 bInterfaceNumber1
 bAlternateSetting   0
 bNumEndpoints   2
 bInterfaceClass10 CDC Data
 bInterfaceSubClass  0 Unused
 bInterfaceProtocol  0
 iInterface  0
 Endpoint Descriptor:
   bLength 7
   bDescriptorType 5
   bEndpointAddress 0x01  EP 1 OUT
   bmAttributes2
 Transfer TypeBulk
 Synch Type   None
 Usage Type   Data
   wMaxPacketSize 0x0040  1x 64 bytes
   bInterval   0
 Endpoint Descriptor:
   bLength 7
   bDescriptorType 5
   bEndpointAddress 0x82  EP 2 IN
   bmAttributes2
 Transfer TypeBulk
 Synch Type   None
 Usage Type   Data
   wMaxPacketSize 0x0040  1x 64 bytes
   bInterval   0
   Interface Association:
 bLength 8
 bDescriptorType11
 bFirstInterface 2
 bInterfaceCount 2
 bFunctionClass  2 Communications
 bFunctionSubClass   2 Abstract (modem)
 bFunctionProtocol   0 None
 iFunction   0
   Interface Descriptor:
 bLength 9
 bDescriptorType 4
 bInterfaceNumber2
 bAlternateSetting   0
 bNumEndpoints   0

The third interface lacks endpoints and crashes the ftdi_sio driver.
This shouldn't happen (even if you're forcing the wrong driver to bind),
so I'll fix it up if still broken in v3.15-rc.

Thanks,
Johan

Johan,
Thanks again.  Yes, the device does indeed have an FTDI embedded in it;
they've programmed in thei

Re: [PATCH 1/2] ARM: dts: Enable USB 3503 hub on exynos5250-snow

2014-06-02 Thread Julius Werner
> Ok, there was already a patch posted by you for this[1], which had
> quite a much discussion
> on it.
> Would you like to give some pointers based on that ?
> One that Olof had suggested was to use gpio-reset driver which is yet
> to make to mainline.
> But i think with that too we need to take care of the timing for
> resetting the hub before PHY
> gets reset.

Oh, right, I remember now. Seems like there wasn't much consensus on
how to solve the problem there, and I think I didn't really have time
to work on it any more either.

I think coupling in another driver to reset the device isn't a bad
idea... this could even be usb3503 if you modified it a little, and it
could also address Tomasz' concerns from that thread that the solution
should be extensible to other HSIC devices that need a different reset
sequence. But you need some mechanism to hook the two drivers together
and make sure phy-samsung-usb2 synchronously calls the reset function
at exactly the right point to ensure the timing works right.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] usb: usb5303: make use of uninitialized err variable

2014-06-02 Thread Emil Goode
The variable err is not initialized here, this patch uses it
to store an eventual error value from devm_clk_get().

Signed-off-by: Emil Goode 
---
 drivers/usb/misc/usb3503.c |   10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/misc/usb3503.c b/drivers/usb/misc/usb3503.c
index f43c619..c86c3fa 100644
--- a/drivers/usb/misc/usb3503.c
+++ b/drivers/usb/misc/usb3503.c
@@ -191,9 +191,13 @@ static int usb3503_probe(struct usb3503 *hub)
hub->port_off_mask = 0;
 
clk = devm_clk_get(dev, "refclk");
-   if (IS_ERR(clk) && PTR_ERR(clk) != -ENOENT) {
-   dev_err(dev, "unable to request refclk (%d)\n", err);
-   return PTR_ERR(clk);
+   if (IS_ERR(clk)) {
+   err = PTR_ERR(clk);
+   if (err != -ENOENT) {
+   dev_err(dev, "unable to request refclk (%d)\n",
+   err);
+   return err;
+   }
}
 
if (!IS_ERR(clk)) {
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Johan Hovold
On Mon, Jun 02, 2014 at 01:11:37PM -0400, Mike Remski wrote:
> On 06/02/2014 12:49 PM, Johan Hovold wrote:
> > On Mon, Jun 02, 2014 at 12:24:44PM -0400, Mike Remski wrote:
> >> On 06/02/2014 12:20 PM, Johan Hovold wrote:
> >>> On Mon, Jun 02, 2014 at 12:02:40PM -0400, Mike Remski wrote:
>  On 06/02/2014 11:40 AM, Johan Hovold wrote:
> > [ Please avoid top-posting. ]
> >
> > On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

> >>> The third interface lacks endpoints and crashes the ftdi_sio driver.
> >>> This shouldn't happen (even if you're forcing the wrong driver to bind),
> >>> so I'll fix it up if still broken in v3.15-rc.
> >>>
> >> Johan,
> >> Thanks again.  Yes, the device does indeed have an FTDI embedded in it;
> >> they've programmed in their own ids.  They supply a Windows driver for
> >> it, but that doesn't do me any good.  :)
> > Not just their own ID's it seems.
> >
> > Have you tried just using the cdc-acm driver? The ports should up as
> > /dev/ttyACMx instead of ttyUSBx.
> >
> Not yet, next on the list.

You really should try this before anything else. :)

> I'm suspecting that bNumEndpoints == 0 is causing endpoint[1].desc to 
> stay at NULL (line 1567 in 3.1.4.5 source), so by the time it gets used 
> later on, I'm hitting the NULL dereference.

Yeah, the code is obviously broken (also in v3.15-rc). It should
probably work to just return from ftdi_set_max_packet_size if
num_endpoints is 0 if you want to try that (or you can use your ?:
construct), but I should be able to fix this up properly on Wednesday.

Thanks,
Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ftdi_sio BUG: NULL pointer dereference

2014-06-02 Thread Mike Remski

On 06/02/2014 01:46 PM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 01:11:37PM -0400, Mike Remski wrote:

On 06/02/2014 12:49 PM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 12:24:44PM -0400, Mike Remski wrote:

On 06/02/2014 12:20 PM, Johan Hovold wrote:

On Mon, Jun 02, 2014 at 12:02:40PM -0400, Mike Remski wrote:

On 06/02/2014 11:40 AM, Johan Hovold wrote:

[ Please avoid top-posting. ]

On Mon, Jun 02, 2014 at 11:16:11AM -0400, Mike Remski wrote:

The third interface lacks endpoints and crashes the ftdi_sio driver.
This shouldn't happen (even if you're forcing the wrong driver to bind),
so I'll fix it up if still broken in v3.15-rc.


Johan,
Thanks again.  Yes, the device does indeed have an FTDI embedded in it;
they've programmed in their own ids.  They supply a Windows driver for
it, but that doesn't do me any good.  :)

Not just their own ID's it seems.

Have you tried just using the cdc-acm driver? The ports should up as
/dev/ttyACMx instead of ttyUSBx.


Not yet, next on the list.

You really should try this before anything else. :)


I'm suspecting that bNumEndpoints == 0 is causing endpoint[1].desc to
stay at NULL (line 1567 in 3.1.4.5 source), so by the time it gets used
later on, I'm hitting the NULL dereference.

Yeah, the code is obviously broken (also in v3.15-rc). It should
probably work to just return from ftdi_set_max_packet_size if
num_endpoints is 0 if you want to try that (or you can use your ?:
construct), but I should be able to fix this up properly on Wednesday.

Thanks,
Johan


Yep, trying to get the modalias correct so the cdc_acm driver recognizes 
and loads for the device in question.


Appreciate your help.

m

--
Office: (978)401-4032 (x123 internally)
Cell: (603) 759-6953

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: xhci usb 3.0 logitech c920 not working

2014-06-02 Thread Martin Rudhart

On Mon, 2014-06-02 at 13:47, Oliver Neukum wrote:

Parameter error.
Please switch on xhci dynamic debugging.

But whatever you do, never ever mutilate a bug report like this.
Never ever grep around and drop parts of the report. And don't
put things on an external server one cannot access with all tools.


I think I reconfigured thunderbird correctly now - so the format/quotes 
should be right from now on.


Sorry about the mutilation and the badly formatted answer. I'm used to 
bulletin boards with codeboxes. Should I really have posted 1835 lines 
of lsusb -v in my email response? I thought that would be to too long.
(1000 lines-->1835 lines; 100.000 Char-Limit-->88.098) That's why I 
posted it on pastebin/an external server ... should I have used 
something else?


Switching on xhci dynamic debugging would mean compiling a new kernel, 
right? It can't somehow be switched on afterwards with a ubuntu 
upstream/mainline kernel?


Regards
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] net: qmi_wwan: interface #11 in Sierra Wireless MC73xx is not QMI

2014-06-02 Thread David Miller
From: Aleksander Morgado 
Date: Thu, 29 May 2014 13:51:36 +0200

> This interface is unusable, as the cdc-wdm character device doesn't reply to
> any QMI command. Also, the out-of-tree Sierra Wireless GobiNet driver fully
> skips it.
> 
> Signed-off-by: Aleksander Morgado 

Applied.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] net: qmi_wwan: add additional Sierra Wireless QMI devices

2014-06-02 Thread David Miller
From: Aleksander Morgado 
Date: Thu, 29 May 2014 13:44:45 +0200

> A set of new VID/PIDs retrieved from the out-of-tree GobiNet/GobiSerial
> Sierra Wireless drivers.
> 
> Signed-off-by: Aleksander Morgado 

Applied.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 0/4] port power control rework stragglers

2014-06-02 Thread Dan Williams
Changes since v1 [1]:

1/ Deleted "usb: fix hub_handle_remote_wakeup() only exists for
   CONFIG_PM=y" in favor of the full refactoring of hub.c into
   hub.c/hub_pm.c

2/ Added "usb: introduce usb_set_reset_resume" as its own patch as
   suggested by Alan. [2]

3/ Added "usb: move hub power management routines to hub_pm.c" with
   fixups suggested by Alan.

4/ Added Alan's acked-by to "usb: force warm reset to break link
   re-connect livelock" and "usb: documentation for usb port power off
   mechanisms" which were patch 18 and 19 from the v10 posting [3].


[1]: http://marc.info/?l=linux-usb&m=140139351920273&w=2
[2]: http://marc.info/?l=linux-usb&m=140146126207527&w=2
[3]: http://marc.info/?l=linux-usb&m=140063512208229&w=2

---

Dan Williams (3):
  usb: force warm reset to break link re-connect livelock
  usb: introduce usb_set_reset_resume
  usb: move hub power management routines to hub_pm.c

Lan Tianyu (1):
  usb: documentation for usb port power off mechanisms

 Documentation/usb/power-management.txt |  245 ++
 drivers/usb/core/Makefile  |1 
 drivers/usb/core/hub.c | 1303 ++--
 drivers/usb/core/hub.h |   50 +
 drivers/usb/core/hub_pm.c  | 1130 
 drivers/usb/core/port.c|   21 -
 drivers/usb/core/usb.h |   41 +
 include/linux/usb.h|   20 
 8 files changed, 1557 insertions(+), 1254 deletions(-)
 create mode 100644 drivers/usb/core/hub_pm.c
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 1/4] usb: force warm reset to break link re-connect livelock

2014-06-02 Thread Dan Williams
Resuming a powered down port sometimes results in the port state being
stuck in the training sequence.

 hub 3-0:1.0: debounce: port 1: total 2000ms stable 0ms status 0x2e0
 port1: can't get reconnection after setting port  power on, status -110
 hub 3-0:1.0: port 1 status .02e0 after resume, -19
 usb 3-1: can't resume, status -19
 hub 3-0:1.0: logical disconnect on port 1

In the case above we wait for the port re-connect timeout of 2 seconds
and observe that the port status is USB_SS_PORT_LS_POLLING (although it
is likely toggling between this state and USB_SS_PORT_LS_RX_DETECT).
This is indicative of a case where the device is failing to progress the
link training state machine.

It is resolved by issuing a warm reset to get the hub and device link
state machines back in sync.

 hub 3-0:1.0: debounce: port 1: total 2000ms stable 0ms status 0x2e0
 usb usb3: port1 usb_port_runtime_resume requires warm reset
 hub 3-0:1.0: port 1 not warm reset yet, waiting 50ms
 usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd

After a reconnect timeout when we expect the device to be present, force
a warm reset of the device.  Note that we can not simply look at the
link status to determine if a warm reset is required as any of the
training states USB_SS_PORT_LS_POLLING, USB_SS_PORT_LS_RX_DETECT, or
USB_SS_PORT_LS_COMP_MOD are valid states that do not indicate the need
for warm reset by themselves.

Cc: Kukjin Kim 
Cc: Vincent Palatin 
Cc: Lan Tianyu 
Cc: Ksenia Ragiadakou 
Cc: Vivek Gautam 
Cc: Douglas Anderson 
Cc: Felipe Balbi 
Cc: Sunil Joshi 
Cc: Hans de Goede 
Acked-by: Julius Werner 
Acked-by: Alan Stern 
Signed-off-by: Dan Williams 
---
 drivers/usb/core/hub.c  |   36 +---
 drivers/usb/core/hub.h  |2 ++
 drivers/usb/core/port.c |   21 -
 3 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 6346fb2acbd7..c8916969d76c 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -2570,13 +2570,20 @@ static int hub_port_reset(struct usb_hub *hub, int 
port1,
 /* Is a USB 3.0 port in the Inactive or Compliance Mode state?
  * Port worm reset is required to recover
  */
-static bool hub_port_warm_reset_required(struct usb_hub *hub, u16 portstatus)
+static bool hub_port_warm_reset_required(struct usb_hub *hub, int port1,
+   u16 portstatus)
 {
-   return hub_is_superspeed(hub->hdev) &&
-   (((portstatus & USB_PORT_STAT_LINK_STATE) ==
- USB_SS_PORT_LS_SS_INACTIVE) ||
-((portstatus & USB_PORT_STAT_LINK_STATE) ==
- USB_SS_PORT_LS_COMP_MOD)) ;
+   u16 link_state;
+
+   if (!hub_is_superspeed(hub->hdev))
+   return false;
+
+   if (test_bit(port1, hub->warm_reset_bits))
+   return true;
+
+   link_state = portstatus & USB_PORT_STAT_LINK_STATE;
+   return link_state == USB_SS_PORT_LS_SS_INACTIVE
+   || link_state == USB_SS_PORT_LS_COMP_MOD;
 }
 
 static int hub_port_wait_reset(struct usb_hub *hub, int port1,
@@ -2613,7 +2620,7 @@ static int hub_port_wait_reset(struct usb_hub *hub, int 
port1,
if ((portstatus & USB_PORT_STAT_RESET))
return -EBUSY;
 
-   if (hub_port_warm_reset_required(hub, portstatus))
+   if (hub_port_warm_reset_required(hub, port1, portstatus))
return -ENOTCONN;
 
/* Device went away? */
@@ -2713,9 +2720,10 @@ static int hub_port_reset(struct usb_hub *hub, int port1,
if (status < 0)
goto done;
 
-   if (hub_port_warm_reset_required(hub, portstatus))
+   if (hub_port_warm_reset_required(hub, port1, portstatus))
warm = true;
}
+   clear_bit(port1, hub->warm_reset_bits);
 
/* Reset the port */
for (i = 0; i < PORT_RESET_TRIES; i++) {
@@ -2752,7 +2760,8 @@ static int hub_port_reset(struct usb_hub *hub, int port1,
&portstatus, &portchange) < 0)
goto done;
 
-   if (!hub_port_warm_reset_required(hub, portstatus))
+   if (!hub_port_warm_reset_required(hub, port1,
+   portstatus))
goto done;
 
/*
@@ -2839,8 +2848,13 @@ static int check_port_resume_type(struct usb_device 
*udev,
 {
struct usb_port *port_dev = hub->ports[port1 - 1];
 
+   /* Is a warm reset needed to recover the connection? */
+   if (status == 0 && udev->reset_resume
+   && hub_port_warm_reset_required(hub, port1, portstatus)) {
+   /* pass */;
+   }
/* Is the device still present? */
-   if (status || port_is_suspended(hub, portstatus) ||
+   else if (status || port_is_suspended(hub, portstatus) ||
!port_is_power_on(hub, ports

[PATCH v2 3/4] usb: introduce usb_set_reset_resume

2014-06-02 Thread Dan Williams
In preparation for moving hub power management logic to its own file and
removing instances of #ifdef CONFIG_PM in hub.c, introduce a
usb_set_reset_resume() helper.

Signed-off-by: Dan Williams 
---
 drivers/usb/core/hub.c |5 ++---
 include/linux/usb.h|   11 +++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index c8916969d76c..63b1963620a3 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1172,9 +1172,8 @@ static void hub_activate(struct usb_hub *hub, enum 
hub_activation_type type)
set_bit(port1, hub->change_bits);
 
} else if (udev->persist_enabled) {
-#ifdef CONFIG_PM
-   udev->reset_resume = 1;
-#endif
+   usb_set_reset_resume(udev);
+
/* Don't set the change_bits when the device
 * was powered off.
 */
diff --git a/include/linux/usb.h b/include/linux/usb.h
index d2465bc0e73c..909b56380c2f 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -592,6 +592,17 @@ struct usb_device {
 };
 #defineto_usb_device(d) container_of(d, struct usb_device, dev)
 
+#ifdef CONFIG_PM
+static inline void usb_set_reset_resume(struct usb_device *udev)
+{
+   udev->reset_resume = 1;
+}
+#else
+static inline void usb_set_reset_resume(struct usb_device *udev)
+{
+}
+#endif
+
 static inline struct usb_device *interface_to_usbdev(struct usb_interface 
*intf)
 {
return to_usb_device(intf->dev.parent);

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 2/4] usb: documentation for usb port power off mechanisms

2014-06-02 Thread Dan Williams
From: Lan Tianyu 

describe the mechanisms for controlling port power policy and
discovering the port power state.

[oliver]: fixes, clarification of wakeup vs port-power-control
[sarah]: wordsmithing
[djbw]: updates for peer port changes
[alan]: review and fixes
Cc: Oliver Neukum 
Acked-by: Alan Stern 
Signed-off-by: Lan Tianyu 
Signed-off-by: Dan Williams 
---
 Documentation/usb/power-management.txt |  245 
 1 files changed, 243 insertions(+), 2 deletions(-)

diff --git a/Documentation/usb/power-management.txt 
b/Documentation/usb/power-management.txt
index 1392b61d6ebe..7b90fe034c4b 100644
--- a/Documentation/usb/power-management.txt
+++ b/Documentation/usb/power-management.txt
@@ -2,8 +2,27 @@
 
 Alan Stern 
 
-   October 28, 2010
-
+  Last-updated: February 2014
+
+
+   Contents:
+   -
+   * What is Power Management?
+   * What is Remote Wakeup?
+   * When is a USB device idle?
+   * Forms of dynamic PM
+   * The user interface for dynamic PM
+   * Changing the default idle-delay time
+   * Warnings
+   * The driver interface for Power Management
+   * The driver interface for autosuspend and autoresume
+   * Other parts of the driver interface
+   * Mutual exclusion
+   * Interaction between dynamic PM and system PM
+   * xHCI hardware link PM
+   * USB Port Power Control
+   * User Interface for Port Power Control
+   * Suggested Userspace Port Power Policy
 
 
What is Power Management?
@@ -516,3 +535,225 @@ relevant attribute files is usb2_hardware_lpm.
driver will enable hardware LPM for the device. You
can write y/Y/1 or n/N/0 to the file to enable/disable
USB2 hardware LPM manually. This is for test purpose mainly.
+
+
+   USB Port Power Control
+   --
+
+In addition to suspending endpoint devices and enabling hardware
+controlled link power management, the USB subsystem also has the
+capability to disable power to ports under some conditions.  Power is
+controlled through Set/ClearPortFeature(PORT_POWER) requests to a hub.
+In the case of a root or platform-internal hub the host controller
+driver translates PORT_POWER requests into platform firmware (ACPI)
+method calls to set the port power state. For more background see the
+Linux Plumbers Conference 2012 slides [1] and video [2]:
+
+Upon receiving a ClearPortFeature(PORT_POWER) request a USB port is
+logically off, and may trigger the actual loss of VBUS to the port [3].
+VBUS may be maintained in the case where a hub gangs multiple ports into
+a shared power well causing power to remain until all ports in the gang
+are turned off.  VBUS may also be maintained by hub ports configured for
+a charging application.  In any event a logically off port will lose
+connection with its device, not respond to hotplug events, and not
+respond to remote wakeup events*.
+
+WARNING: turning off a port may result in the inability to hot add a device.
+Please see "User Interface for Port Power Control" for details.
+
+As far as the effect on the device itself it is similar to what a device
+goes through during system suspend, i.e. the power session is lost.  Any
+USB device or driver that misbehaves with system suspend will be
+similarly affected by a port power cycle event.  For this reason the
+implementation shares the same device recovery path (and honors the same
+quirks) as the system resume path for the hub.
+
+[1]: http://dl.dropbox.com/u/96820575/sarah-sharp-lpt-port-power-off2-mini.pdf
+[2]: 
http://linuxplumbers.ubicast.tv/videos/usb-port-power-off-kerneluserspace-api/
+[3]: USB 3.1 Section 10.12
+* wakeup note: if a device is configured to send wakeup events the port
+  power control implementation will block poweroff attempts on that
+  port.
+
+
+   User Interface for Port Power Control
+   -
+
+The port power control mechanism uses the PM runtime system.  Poweroff is
+requested by clearing the power/pm_qos_no_power_off flag of the port device
+(defaults to 1).  If the port is disconnected it will immediately receive a
+ClearPortFeature(PORT_POWER) request.  Otherwise, it will honor the pm runtime
+rules and require the attached child device and all descendants to be 
suspended.
+This mechanism is dependent on the hub advertising port power switching in its
+hub descriptor (wHubCharacteristics logical power switching mode field).
+
+Note, some interface devices/drivers do not support autosuspend.  Userspace may
+need to unbind the interface drivers before the usb_device will suspend.  An
+unbound interface device is suspended by default.  When unbinding, be careful
+to unbind interface drivers, not the driver of the parent usb device.  Also,
+leave hub interface drivers bound.  If the driver for the usb device (not
+interface) is unbound the kernel

Re: [PATCH v2 0/4] port power control rework stragglers

2014-06-02 Thread Greg KH
On Mon, Jun 02, 2014 at 02:49:57PM -0700, Dan Williams wrote:
> Changes since v1 [1]:
> 
> 1/ Deleted "usb: fix hub_handle_remote_wakeup() only exists for
>CONFIG_PM=y" in favor of the full refactoring of hub.c into
>hub.c/hub_pm.c

Now that the merge window is open, I'd really not like to take anything
so big as these patches for the 3.16-rc1 tree.  So, how about I just
take Stephen's original patch for now, and then you rebase these on
3.16-rc1 when it comes out for 3.17-rc1?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 0/4] port power control rework stragglers

2014-06-02 Thread Dan Williams
On Mon, Jun 2, 2014 at 3:02 PM, Greg KH  wrote:
> On Mon, Jun 02, 2014 at 02:49:57PM -0700, Dan Williams wrote:
>> Changes since v1 [1]:
>>
>> 1/ Deleted "usb: fix hub_handle_remote_wakeup() only exists for
>>CONFIG_PM=y" in favor of the full refactoring of hub.c into
>>hub.c/hub_pm.c
>
> Now that the merge window is open, I'd really not like to take anything
> so big as these patches for the 3.16-rc1 tree.  So, how about I just
> take Stephen's original patch for now, and then you rebase these on
> 3.16-rc1 when it comes out for 3.17-rc1?
>

That's reasonable.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] USB fixes for 3.15-rc8

2014-06-02 Thread Greg KH
The following changes since commit d6d211db37e75de2ddc3a4f979038c40df7cc79c:

  Linux 3.15-rc5 (2014-05-09 13:10:52 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ 
tags/usb-3.15-rc8

for you to fetch changes up to 5dc2808c4729bf080487e61b80ee04e0fdb12a37:

  xhci: delete endpoints from bandwidth list before freeing whole device 
(2014-05-28 14:53:53 -0700)


USB fixes for 3.15-rc8

Here are some fixes for 3.15-rc8 that resolve a number of tiny USB
issues that have been reported, and there are some new device ids as
well.

All have been tested in linux-next.

Signed-off-by: Greg Kroah-Hartman 


Alan Stern (1):
  USB: Avoid runtime suspend loops for HCDs that can't handle suspend/resume

Alexej Starschenko (1):
  USB: serial: option: add support for Novatel E371 PCIe card

Bjørn Mork (1):
  usb: cdc-wdm: export cdc-wdm uapi header

George McCollister (1):
  USB: ftdi_sio: add NovaTech OrionLXm product ID

Greg Kroah-Hartman (1):
  USB: cdc-wdm: properly include types.h

Johan Hovold (1):
  USB: io_ti: fix firmware download on big-endian machines (part 2)

Mathias Nyman (2):
  usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports
  xhci: delete endpoints from bandwidth list before freeing whole device

 drivers/usb/core/driver.c |  9 ++---
 drivers/usb/core/hub.c| 15 +--
 drivers/usb/host/pci-quirks.c |  7 +++
 drivers/usb/host/xhci-mem.c   | 20 ++--
 drivers/usb/serial/ftdi_sio.c |  2 ++
 drivers/usb/serial/ftdi_sio_ids.h |  5 +
 drivers/usb/serial/io_ti.c|  2 +-
 drivers/usb/serial/io_usbvend.h   |  2 +-
 drivers/usb/serial/option.c   |  2 ++
 include/uapi/linux/usb/Kbuild |  1 +
 include/uapi/linux/usb/cdc-wdm.h  |  2 ++
 11 files changed, 50 insertions(+), 17 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 net-next 0/8] cdc_ncm: fixes and conversion to sysfs API

2014-06-02 Thread David Miller
From: Bjørn Mork 
Date: Fri, 30 May 2014 09:31:02 +0200

> After considering the comments received after the ethtool coalesce
> support was commited, I have ended up concluding that we should
> remove it again, while we can, before it hits a release. The idea
> was not well enough thought through, and all comments received
> pointed to advantages of using a sysfs based API instead.
> 
> This series removes the ethtool coalesce support and replaces it
> with sysfs attributes in a driver specific group under the netdev.
> 
> The first 3 patches are unrelated fixes:
> 
> patch 1: reducing truesize as discussed
> patch 2: fixing a potentional buffer overrun when changing tx_max
> patch 3: prevent framing errors when changing rx_max
> 
> Changes v2:
>  - minor editorial changes to patch 8, as suggested by Peter Stuge

Generally speaking I wouldn't be OK with using sysfs for this stuff,
but you make a very convincing argument for doing so in this specific
case.

Series applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] usb: renesas: gadget: fixup: complete STATUS stage after receiving

2014-06-02 Thread Kuninori Morimoto

Hi Sergei

> > +   /*
> > +* Transmission end
> > +*/
> > +   if (*is_done) {
> > +   if (usbhs_pipe_is_dcp(pipe))
> 
> Why not collapse these into single *if*? That would decrease the 
> indentation level...

This is same style with TX case

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] USB driver patches for 3.16-rc1

2014-06-02 Thread Greg KH
The following changes since commit d6d211db37e75de2ddc3a4f979038c40df7cc79c:

  Linux 3.15-rc5 (2014-05-09 13:10:52 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ 
tags/usb-3.16-rc1

for you to fetch changes up to 4a95b1fce97756d0333f8232eb7ed6974e93b054:

  usb: hub_handle_remote_wakeup() only exists for CONFIG_PM=y (2014-06-02 
15:16:33 -0700)


USB driver patches for 3.16-rc1

Here is the big USB driver pull request for 3.16-rc1.

Nothing huge here, but lots of little things in the USB core, and in
lots of drivers.  Hopefully the USB power management will be work better
now that it has been reworked to do per-port power control dynamically.
There's also a raft of gadget driver updates and fixes, CONFIG_USB_DEBUG
is finally gone now that everything has been converted over to the
dynamic debug inteface, the last hold-out drivers were cleaned up and
the config option removed.  There were also other minor things all
through the drivers/usb/ tree, the shortlog shows this pretty well.

All have been in linux-next, including the very last patch, which came
from linux-next to fix a build issue on some platforms.

Signed-off-by: Greg Kroah-Hartman 


Alan Stern (1):
  USB: mutual exclusion for resetting a hub and power-managing a port

Aleksander Morgado (2):
  usb: qcserial: add Netgear AirCard 341U
  usb: qcserial: add additional Sierra Wireless QMI devices

Alexander Gordeev (1):
  xhci: Use pci_enable_msix_exact() instead of pci_enable_msix()

Alexander Shiyan (1):
  usb: chipidea: core: Add missing module owner field

Alexandre Belloni (1):
  usb: gadget: atmel_usba: always test udc->driver

Alexey Khoroshilov (1):
  usb: gadget: gr_udc: unconditionally use GFP_ATOMIC in gr_queue_ext()

Andreas Larsson (7):
  usb: gadget: gr_udc: improve platform_device variable name
  usb: gadget: gr_udc: Expand devicetree documentation
  usb: gadget: gr_udc: Use platform_get_irq instead of irq_of_parse_and_map
  usb: gadget: gr_udc: Use of_property_read_u32_index to access arrays
  usb: gadget: gr_udc: Add ep.maxpacket_limit to debugfs information
  usb: gadget: gr_udc: Return error code when trying to set ep.maxpacket > 
ep.maxpacket_limit
  usb: gadget: gr_udc: Use GFP_ATOMIC when allocating under held spinlock

Andrzej Pietrasiewicz (9):
  usb: gadget: FunctionFS: share VLA macros with all usb gadget files
  usb: gadget: OS String support
  usb: gadget: OS Feature Descriptors support
  usb: gadget: f_rndis: OS descriptors support
  usb: gadget: configfs: OS String support
  usb: gadget: configfs: OS Extended Compatibility descriptors support
  usb: gadget: f_rndis: OS Descriptors configfs support
  usb: gadget: configfs: OS Extended Properties descriptors support
  usb: gadget: f_uac2: don't queue new requests when shutting down

Andy Shevchenko (2):
  usb: dwc3: no need to initialize ret variable
  usb: dwc3: convert to pcim_enable_device()

Antoine Ténart (1):
  phy: exynos-mipi-video: fix check on array index

Apelete Seketeli (1):
  documentation: docbook: document process of writing an musb glue layer

Arnd Bergmann (9):
  PHY: Exynos: fix SATA phy license typo
  phy: kona2: use 'select GENERIC_PHY' in Kconfig
  usb: gadget: s3c2410_udc: don't use pr_debug return value
  usb: musb: tusb-dma can't be built-in if tusb is not
  usb: musb: omap2plus bus glue needs USB host support
  usb: phy: msm: reset controller is mandatory now
  usb: xhci: avoid warning for !PM_SLEEP
  usb: ohci-da8xx can only be built-in
  usb: ohci: sort out dependencies for lpc32xx and omap

Benoit Taine (1):
  USB: storage: ene_ub6250: Use kmemdup instead of kmalloc + memcpy

Bjørn Mork (4):
  usb: qcserial: fix multiline comment coding style
  usb: qcserial: refactor device layout selection
  usb: qcserial: define and use Sierra Wireless layout
  usb: qcserial: remove interface number matching

Boris BREZILLON (1):
  usb: ehci-platform: add optional reset controller retrieval

Dan Carpenter (2):
  usb: phy: msm: change devm_ioremap() to devm_ioremap_resource()
  usb: phy: msm: fix bug in probe()

Dan Williams (17):
  usb: catch attempts to submit urbs with a vmalloc'd transfer buffer
  usb: disable port power control if not supported in wHubCharacteristics
  usb: rename usb_port device objects
  usb: cleanup setting udev->removable from port_dev->connect_type
  usb: assign default peer ports for root hubs
  usb: assign usb3 external hub port peers
  usb: find internal hub tier mismatch via acpi
  usb: sysfs link peer ports
  usb: make usb_port flags atomic, rename did_runtime_put to child_usage
  usb: block suspension of superspeed port whi