Re: [PATCH 20/39] usb: musb: ux500: move channel number knowledge into the driver

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 For all ux500 based platforms the maximum number of end-points are used.
 Move this knowledge into the driver so we can relinquish the burden from
 platform data. This also removes quite a bit of complexity from the driver
 and will aid us when we come to enable the driver for Device Tree.

 Cc: Felipe Balbi ba...@ti.com
 Cc: linux-usb@vger.kernel.org
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied to my dma40 branch with Felipe's ACK.

Thanks!
Linus Walleij
--
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 20/39] usb: musb: ux500: move channel number knowledge into the driver

2013-05-30 Thread Linus Walleij
On Wed, May 29, 2013 at 7:57 PM, Felipe Balbi ba...@ti.com wrote:
 On Wed, May 15, 2013 at 10:51:43AM +0100, Lee Jones wrote:
 For all ux500 based platforms the maximum number of end-points are used.
 Move this knowledge into the driver so we can relinquish the burden from
 platform data. This also removes quite a bit of complexity from the driver
 and will aid us when we come to enable the driver for Device Tree.

 Cc: Felipe Balbi ba...@ti.com
 Cc: linux-usb@vger.kernel.org
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

 for drivers/usb/musb

 Acked-by: Felipe Balbi ba...@ti.com

Is that only for this patch 20/39 or also 21, 22  23?

Poke us if we should re-send them...

Yours,
Linus Walleij
--
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 20/39] usb: musb: ux500: move channel number knowledge into the driver

2013-05-30 Thread Lee Jones
On Thu, 30 May 2013, Linus Walleij wrote:

 On Wed, May 29, 2013 at 7:57 PM, Felipe Balbi ba...@ti.com wrote:
  On Wed, May 15, 2013 at 10:51:43AM +0100, Lee Jones wrote:
  For all ux500 based platforms the maximum number of end-points are used.
  Move this knowledge into the driver so we can relinquish the burden from
  platform data. This also removes quite a bit of complexity from the driver
  and will aid us when we come to enable the driver for Device Tree.
 
  Cc: Felipe Balbi ba...@ti.com
  Cc: linux-usb@vger.kernel.org
  Acked-by: Linus Walleij linus.wall...@linaro.org
  Acked-by: Fabio Baltieri fabio.balti...@linaro.org
  Signed-off-by: Lee Jones lee.jo...@linaro.org
 
  for drivers/usb/musb
 
  Acked-by: Felipe Balbi ba...@ti.com
 
 Is that only for this patch 20/39 or also 21, 22  23?
 
 Poke us if we should re-send them...

I read this as all patches in the series for drivers/usb/musb.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
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: Linux USB file storage gadget with new UDC

2013-05-30 Thread victor yeo
Hi,

 Ok. What other gadget driver can i test with UDC driver? Is it the
 mass storage driver (mass_storage.c)?

 That is essentially the same as g_file_storage.  But there are lots of
 others.  You should start with g_zero and run the testusb suite.  See

 http://www.linux-usb.org/gadget/

 and

 http://www.linux-usb.org/usbtest/

 for more information.  Those web pages are pretty old and somewhat out
 of date, but they still have useful stuff.

I tested the g_zero with USB 2.0 Command Verifier. After the Command
Verifier is run, the UDC gadget driver queue function is continuously
being called, and the linux command prompt is frozen. Please see the
attached UDC driver log. It looks like endpoint 1 in direction is
called by USB 2.0 Command Verifier continuously. Is this weird?

thanks,
victor
# insmod kagen2_udc.ko 
kagen2_init
kagen2_plat_probe 1
kagen2_plat_probe 5
kagen2_plat_probe 6, 0xc2886000 0x1000
read pclk  scu 7 irqmask ffbd 7fff
val is 0x0
val is 0x8
check USB_OTGST 0x51000801 
check USB_OTGIRQ 0x51000810 
check USB_IRQINIT 0x70007 
check USB_OTGFSM 0xa1d191f 
check USB_OTGCTRL 0x51300801 
kagen2_plat_probe 8
register irq 32
kagen2_init 0
# insmod g_zero.ko 
bind
epname ep1
epname ep1
epname ep1
epname ep1
 gadget: Gadget Zero, version: Cinco de Mayo 2008
 gadget: zero ready
usb_gadget_udc_start
0xbf0386b8 0xbf0364c8
kagen2_start
0xbf0386b8 0xbf0364c8
0xc12d2cf0 0xbf030eb0
usb_gadget_connect
# ept0 in queue len 0x12, buffer 0xc12d3000
USB_RECIP_DEVICE
exit A
ept0 in queue len 0x12, buffer 0xc12d3000
ept0 in queue len 0x9, buffer 0xc12d3000
ept0 in queue len 0x4, buffer 0xc12d3000
ept0 in queue len 0x42, buffer 0xc12d3000
ept0 in queue len 0x20, buffer 0xc12d3000
ept0 in queue len 0x4, buffer 0xc12d3000
ept0 in queue len 0x18, buffer 0xc12d3000
ept0 in queue len 0x4, buffer 0xc12d3000
ept0 in queue len 0x18, buffer 0xc12d3000
ept0 in queue len 0x20, buffer 0xc12d3000
ept0 in queue len 0xa, buffer 0xc12d3000
ept0 in queue len 0x9, buffer 0xc12d3000
ept0 in queue len 0x20, buffer 0xc12d3000
ept0 in queue len 0x4, buffer 0xc12d3000
ept0 in queue len 0x3a, buffer 0xc12d3000
ept0 in queue len 0x18, buffer 0xc12d3000
ept0 in queue len 0x42, buffer 0xc12d3000
ept0 in queue len 0x2a, buffer 0xc12d3000
ept0 in queue len 0x2a, buffer 0xc12d3000
ept0 in queue len 0x12, buffer 0xc12d3000
USB_RECIP_DEVICE
exit A
ept0 in queue len 0x12, buffer 0xc12d3000
ept0 in queue len 0x9, buffer 0xc12d3000
zero gadget: high-speed config #3: source/sink
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7
ept1 in queue len 0x1000, buffer 0xc180d000
len_num 4096, iter_num 0
len_num 3584, iter_num 1
len_num 3072, iter_num 2
len_num 2560, iter_num 3
len_num 2048, iter_num 4
len_num 1536, iter_num 5
len_num 1024, iter_num 6
len_num 512, iter_num 7

Re: time source unstable on usb/serial/pl2303 (globalsat br-353)

2013-05-30 Thread Philippe De Muyter
Hello,

On Fri, May 24, 2013 at 09:46:32AM -0400, Alan Stern wrote:
 On Fri, 24 May 2013, Philippe De Muyter wrote:
 
  On Thu, May 23, 2013 at 08:31:18AM -0700, Greg Kroah-Hartman wrote:
   On Thu, May 23, 2013 at 03:07:09PM +0200, Philippe De Muyter wrote:
Hi all,

I have a lot of linux computers equipped with a GlobalSat Br-353 GPS 
receiver,

Sorry for the typo, it is actually a BU-353

which is connected via USB (an integrated PL2303).  The GPS receiver 
emits
one multi-line message every second, giving position and time.  I listen
to this messages in a user program running in the highest priority,
and I have noticed that under load, the messages are not delivered to my
process every second, but often delayed, which is not great for a time 
source.

I looked at the sources of pl2303 and added a diagnostic message if the
beginning of a message came more than one second later than the 
beginning
of the previous one, and I noticed that the delay was already present
in the kernel: often even more than one second delay after the expected
beginning time.
   
   Then that implies that the device itself is holding on to the message,
   right?
  
  I hoped it was the configuration on the host-side.  I have read internet
  pages that implied that for USB mice it was possible to increase the polling
  rate.  I hoped that it would be the same for serial lines.
 
 Have you tried usbmon?  The detailed information about the timing of 
 the URBs might give you some clues.
 
   USB is not something that you can rely on for very high-frequency, low
   latency, timing things.  Although to be fair, second delays are quite
   rare, which implies that your hardware is to blame here.
  
  Yes, I think that there must be something wrong but more on a software
  side, because I do not get such big delays on an unloaded computer.
 
 It's possible that the delays are at the user level and not in the 
 kernel.

I analyzed the problem as deeply as I could, and the problem was threefold :
(remember it is on a cpu-intensive environment)
- the user had inadvertently dropped the setuid/setgid of the application
program, thus it did not run in the highest priority, but at a normal
priority
- usb serial lines do not have the low_latency mode set, and setserial
cannot set it either :
linux-1syr:~ # setserial /dev/ttyUSB0 low_latency
Cannot set serial info: Inappropriate ioctl for device
linux-1syr:~ #
- the gps receiver hardware/firmware (Gloabalsat BU-353, with a SiRF III
chip) sometimes takes 100-200ms more to begin sending its messages (I can
see that because the bulk_read allways give only one byte of data).

Additionaly, because I only got one character at a time, the debugging
I had put in pl2303.c tried to detect the beginning of a new message by
measuring the delay between the last byte received and the current one
and comparing that to a threshold.  My threshold was too high, and sometimes
(rarely now), there is no gap between the end of the message of second s
and the beginning of message of second s+1.  That gave wrongly the impression
of a '1 additional second' delay.

Setting low_latency in the pl2303 driver helped a lot !!!  Now I only see
the intrinsic delay of the gps receiver itself, and some millisecs from usb.

Thanks for your input..

Philippe
--
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 21/39] usb: musb: ux500: move the MUSB HDRC configuration into the driver

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 The MUSB HDRC configuration never changes between each of the ux500
 supported platforms, so there's little point passing it though platform
 data. If we set it in the driver instead, we can make good use of it
 when booting with either ATAGs or Device Tree.

 Cc: Felipe Balbi ba...@ti.com
 Cc: linux-usb@vger.kernel.org
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Tentatively applied with Felipe's ACK.

Yours,
Linus Walleij
--
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 22/39] usb: musb: ux500: take the dma_mask from coherent_dma_mask

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 The dma_mask will always be the same as the coherent_dma_mask, so let's
 cut down on the platform_data burden and set it as such in the driver.
 This also saves us from supporting it separately when we come to enable
 this driver for Device Tree.

 Cc: Felipe Balbi ba...@ti.com
 Cc: linux-usb@vger.kernel.org
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Tentatively applied with Felipe's ACK.

Yours,
Linus Walleij
--
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 24/39] usb: musb: ux500: attempt to find channels by name before using pdata

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 If we can ever get to a state where we can solely search for DMA channels
 by name, this will almost completely alleviate the requirement to pass
 copious amounts of information though platform data. Here we take the
 first step towards this. The next step will be to enable Device Tree
 complete with name-event_line mapping.

 Cc: Felipe Balbi ba...@ti.com
 Cc: linux-usb@vger.kernel.org
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Tentatively applied with Felipe's ACK.

Yours,
Linus Walleij
--
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 25/39] usb: musb: ux500: add device tree probing support

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 This patch will allow ux500-musb to be probed and configured solely from
 configuration found in Device Tree.

 Cc: Felipe Balbi ba...@ti.com
 Cc: Rob Herring rob.herr...@calxeda.com
 Cc: linux-usb@vger.kernel.org
 Cc: devicetree-disc...@lists.ozlabs.org
 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Tentatively applied with Felipe's ACK.

Yours,
Linus Walleij
--
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 26/39] ARM: ux500: Add an auxdata entry for MUSB for clock-name look-up

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 The recently DT:ed MUSB driver will require clock-name by device-name
 look-up capability, until common clk has is properly supported by the
 ux500 platform.

 Acked-by: Linus Walleij linus.wall...@linaro.org
 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Applied to my ux500-devicetree branch.

Yours,
Linus Walleij
--
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 27/39] ARM: ux500: Remove ux500-musb platform registation when booting with DT

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 Now the ux500-musb driver has been enabled for Device Tree, there is no
 requirement to register it from platform code.

 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied to my ux500-dma40 branch on top of the musb
stuff.

Yours,
Linus Walleij
--
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 28/39] ARM: ux500: Remove empty function u8500_of_init_devices()

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 As promised, now all devices which resided in u8500_of_init_devices()
 have been enabled for Device Tree, we can completely remove it.

 Acked-by: Fabio Baltieri fabio.balti...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Applied on my ux500-dma40 branch.

And this is looking real good now!

Thanks!
Linus Walleij
--
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 29/39] dmaengine: ste_dma40: Use the BIT macro to replace ugly '(1 x)'s

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 The aim is to make the code that little more readable.

 Acked-by: Vinod Koul vnod.k...@intel.com
 Acked-by: Arnd Bergmann a...@arndb.de
 Reviewed-by: Linus Walleij linus.wall...@linaro.org
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied to my ux500-dma40 branch.

Yours,
Linus Walleij
--
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 30/39] ARM: ux500: Replace ST-E's home-brew DMA direction definition with the generic one

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 STEDMA40_*_TO_* direction definitions are identical in all but name to
 the pre-defined generic DMA_*_TO_* ones. Let's make things easy by not
 duplicating such things.

 Signed-off-by: Lee Jones lee.jo...@linaro.org

Vinod, I'm lacking your ACK on this patch, but have tentatively
queued it anyway. Maybe you missed it?

Yours,
Linus Walleij
--
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 31/39] dmaengine: ste_dma40: Replace ST-E's home-brew DMA direction defs with generic ones

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 STEDMA40_*_TO_* direction definitions are identical in all but name to
 the pre-defined generic DMA_*_TO_* ones. Let's make things easy by not
 duplicating such things.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied to my dma40 branch with Vinod's ACK.

Yours,
Linus Walleij
--
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 32/39] ARM: ux500: Remove recently unused stedma40_xfer_dir enums

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 We're now using the transfer direction definitions provided by the DMA
 sub-system, so the home-brew ones have become obsolete.

 Signed-off-by: Lee Jones lee.jo...@linaro.org

Tentatively applied, also missing Vinod's ACK on this, but it seems
it was implicitly ACKed in the discussion on patch 31.

Yours,
Linus Walleij
--
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 33/39] dmaengine: ste_dma40_ll: Use the BIT macro to replace ugly '(1 x)'s

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 The aim is to make the code that little more readable.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied with Vinod's ACK.

Yours,
Linus Walleij
--
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 34/39] dmaengine: ste_dma40: Convert data_width from register bit format to value

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 When a DMA client requests and configures a DMA channel, it requests
 data_width in Bytes. The DMA40 driver then swiftly converts it over to
 the necessary register bit value. Unfortunately, for any subsequent
 calculations we have to shift '1' by the bit pattern (1  data_width)
 times to make any sense of it.

 This patch flips the semantics on its head and only converts the value
 to its respective register bit pattern when writing to registers. This
 way we can use the true data_width (in Bytes) value.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied with what I interpret as Vinod's ACK
(okay... statement on last reply.)

Yours,
Linus Walleij
--
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 35/39] dmaengine: ste_dma40_ll: Replace meaningless register set with comment

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 Unsure of the author's intentions, rather than just removing the nop,
 we're replacing it with a comment containing the possible intention
 of the statement OR:ing with 0.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Tentatively applied. Missing Vinod's ACK.

Yours,
Linus Walleij
--
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 36/39] dmaengine: ste_dma40: Allow memcpy channels to be configured from DT

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:

 At this moment in time the memcpy channels which can be used by the D40
 are fixed, as each supported platform in Mainline uses the same ones.
 However, platforms do exist which don't follow this convention, so
 these will need to be tailored. Fortunately, these platforms will be DT
 only, so this change has very little impact on platform data.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Acked-by: Arnd Bergmann a...@arndb.de
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied with Vinod's ACK.

Yours,
Linus Walleij
--
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 37/39] ARM: ux500: Stop passing DMA platform data though AUXDATA

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:52 AM, Lee Jones lee.jo...@linaro.org wrote:

 The DMA platform data is now empty due to some recent refactoring,
 so there is no longer a requirement to pass it though.

 Acked-by: Arnd Bergmann a...@arndb.de
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Applied to dma40 branch, hm now I may get a conflict with all
the AUXDATA changes in the devicetree branch. Oh well, I'll
figure it out...

Yours,
Linus Walleij
--
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 38/39] dmaengine: ste_dma40: Fetch the number of physical channels from DT

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:52 AM, Lee Jones lee.jo...@linaro.org wrote:

 Some platforms insist on obscure physical channel availability. This
 information is currently passed though platform data in internal BSP
 kernels. Once those platforms land, they'll need to configure them
 appropriately, so we may as well add the infrastructure.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied with Vinod's ACK.

Yours,
Linus Walleij
--
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 39/39] dmaengine: ste_dma40: Fetch disabled channels from DT

2013-05-30 Thread Linus Walleij
On Wed, May 15, 2013 at 11:52 AM, Lee Jones lee.jo...@linaro.org wrote:

 Some platforms have channels which are not available for normal use.
 This information is currently passed though platform data in internal
 BSP kernels. Once those platforms land, they'll need to configure them
 appropriately, so we may as well add the infrastructure.

 Cc: Vinod Koul vinod.k...@intel.com
 Cc: Dan Williams d...@fb.com
 Cc: Per Forlin per.for...@stericsson.com
 Cc: Rabin Vincent ra...@rab.in
 Acked-by: Arnd Bergmann a...@arndb.de
 Signed-off-by: Lee Jones lee.jo...@linaro.org

Patch applied with Vinod's ACK.

Yours,
Linus Walleij
--
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 0/2] USB: OHCI: Splitting ohci-platform into independent driver

2013-05-30 Thread Manjunath Goudar
This series patch begins the process of splitting ohci-platform up 
into independent driver modules and add a name for the platform-private field.

Patch 1/2 separate ohci-platform into independent driver modules.  
 
Patch 2/2 adds an ohci-priv field for private use by OHCI platform drivers.


Manjunath Goudar (2):
  USB: OHCI: make ohci-platform a separate driver
  USB: OHCI: add a name for the platform-private field

 drivers/usb/host/Kconfig |2 +-
 drivers/usb/host/Makefile|1 +
 drivers/usb/host/ohci-hcd.c  |6 +--
 drivers/usb/host/ohci-platform.c |   88 ++
 drivers/usb/host/ohci.h  |3 ++
 5 files changed, 47 insertions(+), 53 deletions(-)

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


[RFC PATCH 1/2] USB: OHCI: make ohci-platform a separate driver

2013-05-30 Thread Manjunath Goudar
This patch splits the ohci-platform code from ohci-hcd out
into its own separate driver module.This work is part of enabling
multi-platform kernels on ARM.

Signed-off-by: Manjunath Goudar manjunath.gou...@linaro.org
Cc: Arnd Bergmann a...@arndb.de
Cc: Greg KH g...@kroah.com
Cc: Alan Stern st...@rowland.harvard.edu
Cc: linux-usb@vger.kernel.org
---
 drivers/usb/host/Kconfig |2 +-
 drivers/usb/host/Makefile|1 +
 drivers/usb/host/ohci-hcd.c  |6 +--
 drivers/usb/host/ohci-platform.c |   88 ++
 4 files changed, 44 insertions(+), 53 deletions(-)

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index a0a2f3a..5391a38 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -501,7 +501,7 @@ config USB_CNS3XXX_OHCI
  It is needed for low-speed USB 1.0 device support.
 
 config USB_OHCI_HCD_PLATFORM
-   bool Generic OHCI driver for a platform device
+   tristate Generic OHCI driver for a platform device
default n
---help---
  Adds an OHCI host driver for a generic platform device, which
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 2214ded..8a89c3d 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -45,6 +45,7 @@ obj-$(CONFIG_USB_ISP1362_HCD) += isp1362-hcd.o
 
 obj-$(CONFIG_USB_OHCI_HCD) += ohci-hcd.o
 obj-$(CONFIG_USB_OHCI_HCD_PCI) += ohci-pci.o
+obj-$(CONFIG_USB_OHCI_HCD_PLATFORM)+= ohci-platform.o
 
 obj-$(CONFIG_USB_UHCI_HCD) += uhci-hcd.o
 obj-$(CONFIG_USB_FHCI_HCD) += fhci.o
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 237be7c..39c7624 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -1258,12 +1258,8 @@ MODULE_LICENSE (GPL);
 #define PLATFORM_DRIVERohci_hcd_tilegx_driver
 #endif
 
-#ifdef CONFIG_USB_OHCI_HCD_PLATFORM
-#include ohci-platform.c
-#define PLATFORM_DRIVERohci_platform_driver
-#endif
-
 #if!IS_ENABLED(CONFIG_USB_OHCI_HCD_PCI)  \
+   !IS_ENABLED(CONFIG_USB_OHCI_HCD_PLATFORM)  \
!defined(PLATFORM_DRIVER) \
!defined(OMAP1_PLATFORM_DRIVER)   \
!defined(OMAP3_PLATFORM_DRIVER)   \
diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c
index 76a3531..8295375 100644
--- a/drivers/usb/host/ohci-platform.c
+++ b/drivers/usb/host/ohci-platform.c
@@ -13,16 +13,28 @@
  *
  * Licensed under the GNU/GPL. See COPYING for details.
  */
+
+#include linux/hrtimer.h
+#include linux/io.h
+#include linux/kernel.h
+#include linux/module.h
 #include linux/err.h
 #include linux/platform_device.h
 #include linux/usb/ohci_pdriver.h
+#include linux/usb.h
+#include linux/usb/hcd.h
+
+#include ohci.h
+
+#define DRIVER_DESC OHCI generic platform driver
+
+static const char hcd_name[] = ohci-platform;
 
 static int ohci_platform_reset(struct usb_hcd *hcd)
 {
struct platform_device *pdev = to_platform_device(hcd-self.controller);
struct usb_ohci_pdata *pdata = pdev-dev.platform_data;
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
-   int err;
 
if (pdata-big_endian_desc)
ohci-flags |= OHCI_QUIRK_BE_DESC;
@@ -30,58 +42,17 @@ static int ohci_platform_reset(struct usb_hcd *hcd)
ohci-flags |= OHCI_QUIRK_BE_MMIO;
if (pdata-no_big_frame_no)
ohci-flags |= OHCI_QUIRK_FRAME_NO;
-
-   ohci_hcd_init(ohci);
-
if (pdata-num_ports)
ohci-num_ports = pdata-num_ports;
 
-   err = ohci_init(ohci);
-
-   return err;
-}
-
-static int ohci_platform_start(struct usb_hcd *hcd)
-{
-   struct ohci_hcd *ohci = hcd_to_ohci(hcd);
-   int err;
-
-   err = ohci_run(ohci);
-   if (err  0) {
-   ohci_err(ohci, can't start\n);
-   ohci_stop(hcd);
-   }
-
-   return err;
+   return ohci_setup(ohci);
 }
 
-static const struct hc_driver ohci_platform_hc_driver = {
-   .description= hcd_name,
-   .product_desc   = Generic Platform OHCI Controller,
-   .hcd_priv_size  = sizeof(struct ohci_hcd),
+static struct hc_driver __read_mostly ohci_platform_hc_driver;
 
-   .irq= ohci_irq,
-   .flags  = HCD_MEMORY | HCD_USB11,
-
-   .reset  = ohci_platform_reset,
-   .start  = ohci_platform_start,
-   .stop   = ohci_stop,
-   .shutdown   = ohci_shutdown,
-
-   .urb_enqueue= ohci_urb_enqueue,
-   .urb_dequeue= ohci_urb_dequeue,
-   .endpoint_disable   = ohci_endpoint_disable,
-
-   .get_frame_number   = ohci_get_frame,
-
-   .hub_status_data= ohci_hub_status_data,
-   .hub_control= ohci_hub_control,
-#ifdef CONFIG_PM
-   .bus_suspend= ohci_bus_suspend,
-   .bus_resume = 

[RFC PATCH 2/2] USB: OHCI: add a name for the platform-private field

2013-05-30 Thread Manjunath Goudar
This patch adds an ohci-priv field for private use by OHCI
platform drivers.

Until now none of the platform drivers has used this private space,
but that's about to change in the next patch of this series.

Signed-off-by: Manjunath Goudar manjunath.gou...@linaro.org
Cc: Arnd Bergmann a...@arndb.de
Cc: Greg KH g...@kroah.com
Cc: Alan Stern st...@rowland.harvard.edu
Cc: linux-usb@vger.kernel.org
---
 drivers/usb/host/ohci.h |3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/host/ohci.h b/drivers/usb/host/ohci.h
index 3b58482..e2e5faa 100644
--- a/drivers/usb/host/ohci.h
+++ b/drivers/usb/host/ohci.h
@@ -421,6 +421,9 @@ struct ohci_hcd {
struct dentry   *debug_periodic;
struct dentry   *debug_registers;
 #endif
+   /* platform-specific data -- must come last */
+   unsigned long   priv[0] __aligned(sizeof(s64));
+
 };
 
 #ifdef CONFIG_PCI
-- 
1.7.9.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


[PATCH 1/7] usb, chipidea: remove redundant D0 power state set

2013-05-30 Thread Yijing Wang
Pci_enable_device() will set device power state to D0,
so it's no need to do it again in ci13xxx_pci_probe().

Signed-off-by: Yijing Wang wangyij...@huawei.com
---
 drivers/usb/chipidea/ci13xxx_pci.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/chipidea/ci13xxx_pci.c 
b/drivers/usb/chipidea/ci13xxx_pci.c
index 4e1fc61..a2a6ac8 100644
--- a/drivers/usb/chipidea/ci13xxx_pci.c
+++ b/drivers/usb/chipidea/ci13xxx_pci.c
@@ -71,7 +71,6 @@ static int ci13xxx_pci_probe(struct pci_dev *pdev,
goto disable_device;
}
 
-   pci_set_power_state(pdev, PCI_D0);
pci_set_master(pdev);
pci_try_set_mwi(pdev);
 
-- 
1.7.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


[PATCH 2/7] usb, dwc3: remove redundant D0 power state set

2013-05-30 Thread Yijing Wang
Pci_enable_device() will set device power state to D0,
so it's no need to do it again in dwc3_pci_probe().

Signed-off-by: Yijing Wang wangyij...@huawei.com
---
 drivers/usb/dwc3/dwc3-pci.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c
index 227d4a7..c068608 100644
--- a/drivers/usb/dwc3/dwc3-pci.c
+++ b/drivers/usb/dwc3/dwc3-pci.c
@@ -133,7 +133,6 @@ static int dwc3_pci_probe(struct pci_dev *pci,
return -ENODEV;
}
 
-   pci_set_power_state(pci, PCI_D0);
pci_set_master(pci);
 
ret = dwc3_pci_register_phys(glue);
-- 
1.7.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


[PATCH 5/7] dwc2: remove redundant D0 power state set

2013-05-30 Thread Yijing Wang
Pci_enable_device() will set device power state to D0,
so it's no need to do it again in dwc2_driver_probe().

Signed-off-by: Yijing Wang wangyij...@huawei.com
---
 drivers/staging/dwc2/pci.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/dwc2/pci.c b/drivers/staging/dwc2/pci.c
index 69c65eb..6a196c2 100644
--- a/drivers/staging/dwc2/pci.c
+++ b/drivers/staging/dwc2/pci.c
@@ -131,8 +131,6 @@ static int dwc2_driver_probe(struct pci_dev *dev,
if (!hsotg)
return -ENOMEM;
 
-   pci_set_power_state(dev, PCI_D0);
-
hsotg-dev = dev-dev;
hsotg-regs = devm_request_and_ioremap(dev-dev, dev-resource[0]);
if (!hsotg-regs)
-- 
1.7.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: [PATCh V10 04/12] usb: ehci: ehci-mv: use PHY driver for ehci

2013-05-30 Thread Roger Quadros
On 05/29/2013 08:37 PM, Felipe Balbi wrote:
 Hi,
 
 On Wed, May 29, 2013 at 11:58:01AM +0800, Chao Xie wrote:
 On Wed, May 29, 2013 at 12:24 AM, Felipe Balbi ba...@ti.com wrote:
 Hi,

 On Mon, May 13, 2013 at 10:13:44AM -0400, Alan Stern wrote:
 On Mon, 13 May 2013, Chao Xie wrote:

 Originaly, ehci driver will call the callbacks in platform data
 for PHY initialization and shut down.
 With PHY driver, it will call the APIs provided by PHY driver
 for PHY initialization and shutdown. It removes the callbacks
 in platform data, and at same time it removes one block in the
 way of enabling device tree for ehci driver.

 I wonder if this is the sort of thing that should be handled in
 ehci-hcd.c rather than in all the different platform glue drivers.

 Felipe, what do you think?  Are the required actions now sufficiently
 generic that a single source file can take care of them?

 Sorry for the delay, was on business trip and now on vacations. Anyway,
 I agree with you. Our PHY layer should be generic enough that it should
 be usable by ehci-hcd itself. If we have any missing method, let's add
 it generically.

 So what are your idea about making the PHY layer more generic? How
 ehci-hcd will make use of PHY layer?
 
 
 on probe grab the phy and initialize it. On suspend/resume,
 suspend/resume the PHY and so on. Whatever you were going to do on your
 ehci glue, do it on generic ehci-hcd.
 

These operations sound generic enough to be done at HCD layer, no? So no need to
replicate the same stuff in ohci, ehci, xhci, etc.

cheers,
-roger
--
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 1/4] usb: config-desc.bLength may not exceed amount of data returned by the device

2013-05-30 Thread Hans de Goede
While reading the config parsing code I noticed this check is missing, without
this check config-desc.wTotalLength can end up with a value larger then the
dev-rawdescriptors length for the config, and when userspace then tries to
get the rawdescriptors bad things may happen.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 drivers/usb/core/config.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 7199adc..a6b2cab 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -424,7 +424,8 @@ static int usb_parse_configuration(struct usb_device *dev, 
int cfgidx,
 
memcpy(config-desc, buffer, USB_DT_CONFIG_SIZE);
if (config-desc.bDescriptorType != USB_DT_CONFIG ||
-   config-desc.bLength  USB_DT_CONFIG_SIZE) {
+   config-desc.bLength  USB_DT_CONFIG_SIZE ||
+   config-desc.bLength  size) {
dev_err(ddev, invalid descriptor for config index %d: 
type = 0x%X, length = %d\n, cfgidx,
config-desc.bDescriptorType, config-desc.bLength);
-- 
1.8.2.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


[PATCH 2/4] proc_usb_info.txt: Correct documentation about endianness of config descriptors

2013-05-30 Thread Hans de Goede
The config descriptors as read from /proc/bus/usb/BBB/DDD are in *bus* endian
format. Correct proc_usb_info.txt to correctly reflect that.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 Documentation/usb/proc_usb_info.txt | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/Documentation/usb/proc_usb_info.txt 
b/Documentation/usb/proc_usb_info.txt
index c9c3f0f..70bdcef 100644
--- a/Documentation/usb/proc_usb_info.txt
+++ b/Documentation/usb/proc_usb_info.txt
@@ -54,9 +54,12 @@ it and 002/048 sometime later.
 
 These files can be read as binary data.  The binary data consists
 of first the device descriptor, then the descriptors for each
-configuration of the device.  Multi-byte fields in the device and
-configuration descriptors, but not other descriptors, are converted
-to host endianness by the kernel.  This information is also shown
+configuration of the device.  Multi-byte fields in the device descriptor
+are converted to host endianness by the kernel.  The configuration
+descriptors are in bus endian format! The configuration descriptor
+are wTotalLength bytes apart. If a device returns less configuration
+descriptor data then indicated by wTotalLength there will be a hole in
+the file for the missing bytes.  This information is also shown
 in text form by the /proc/bus/usb/devices file, described later.
 
 These files may also be used to write user-level drivers for the USB
-- 
1.8.2.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


[PATCH 3/4] Documentation sysfs-bus-usb: Correct use of devnum

2013-05-30 Thread Hans de Goede
Correct use of devnum in supports_autosuspend documentation, the sysfs path
contains busnum-port.port.port not busnum-devnum (which is the usb bus device
address).

Signed-off-by: Hans de Goede hdego...@redhat.com
---
 Documentation/ABI/testing/sysfs-bus-usb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/ABI/testing/sysfs-bus-usb 
b/Documentation/ABI/testing/sysfs-bus-usb
index c8baaf5..bbccdbf 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
@@ -60,7 +60,7 @@ Users:
PowerTOP po...@bughost.org
http://www.lesswatts.org/projects/powertop/
 
-What:  /sys/bus/usb/device/busnum-devnum...:config 
num-interface num/supports_autosuspend
+What:  /sys/bus/usb/devices/busnum-port[.port]...:config 
num-interface num/supports_autosuspend
 Date:  January 2008
 KernelVersion: 2.6.27
 Contact:   Sarah Sharp sarah.a.sh...@intel.com
-- 
1.8.2.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


[PATCH 4/4] Documentation sysfs-bus-usb: Document all files used by libusb

2013-05-30 Thread Hans de Goede
Signed-off-by: Hans de Goede hdego...@redhat.com
---
 Documentation/ABI/testing/sysfs-bus-usb | 29 +
 1 file changed, 29 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-bus-usb 
b/Documentation/ABI/testing/sysfs-bus-usb
index bbccdbf..0778140 100644
--- a/Documentation/ABI/testing/sysfs-bus-usb
+++ b/Documentation/ABI/testing/sysfs-bus-usb
@@ -236,3 +236,32 @@ Description:
This attribute is to expose these information to user space.
The file will read hotplug, wired and not used if the
information is available, and unknown otherwise.
+
+What:  /sys/bus/usb/devices/.../devnum
+KernelVersion: since atleast 2.6.18
+Description:
+   Device address on the USB bus.
+
+What:  /sys/bus/usb/devices/.../bConfigurationValue
+KernelVersion: since atleast 2.6.18
+Description:
+   bConfigurationValue of the *active* configuration for the
+   device.
+
+What:  /sys/bus/usb/devices/.../busnum
+KernelVersion: 2.6.22
+Description:
+   Bus-number of the USB-bus the device is connected to.
+
+What:  /sys/bus/usb/devices/.../descriptors
+KernelVersion: 2.6.26
+Description:
+   Binary file containing cached descriptors of the device. The
+   binary data consists of first the device descriptor, and then
+   the descriptors for each configuration of the device.
+   Note that the wTotalLength of the config descriptors can not
+   be trusted, as the device may have a smaller config descriptor
+   then it advertises. The bLength field of each (sub) descriptor
+   can be trusted, and can be used to seek forward one (sub)
+   descriptor at a time until the next config descriptor is found.
+   All descriptors read from this file are in bus-endian format
-- 
1.8.2.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


Connection to a 3G USB Module using USB-Serial

2013-05-30 Thread Fabio Fumi
I'm struggling with this issue since a while and as the author of the
USB-Serial module I thought experts here might provide some help... As
it's a USB-serail issue, I've posted on both USB and Serial lists.
thanks in advance!

The problem is about connecting with a 3G USB modem, a ZTE MF-210
mini-pci board; plugged as a daughter board inside an Android tablet.
I have posted already on a couple forums, but got no useful feedback
yet.

As soon as I power up the module I get the expected /dev/ttyUSB0-3 and
that's fine, so far:

6usb 1-1.1: new high speed USB device using emxx-ehci-driver and address 3
6option 1-1.1:1.0: GSM modem (1-port) converter detected
6usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0
6option 1-1.1:1.1: GSM modem (1-port) converter detected
6usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1
6option 1-1.1:1.2: GSM modem (1-port) converter detected
6usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2
6option 1-1.1:1.3: GSM modem (1-port) converter detected
6usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB3

Issue is when I try to communicate with any of these ports. I can
connect using picocom to all but can't receive any feedback from AT
commands sent over to them. I made some partial progress only after
using the -i option (i.e. no port init), but below you can find
what I get if I simply type A + T + Z + enter, for example.

As you can see, characters and commands are repeated several times.
That's what I can't understand.

Without the -i option, I don't even get any feedback from the modem
and the same happens using other connection programs, e.g. busybox
microcom. I'm using picocom as it's very small and I succesfully used
it already in a similar case, though on a different Android platform
and kernel.

This Kernel is built including standard usb-serial options below:

CONFIG_USB_SERIAL=y
CONFIG_USB_SERIAL_WWAN=y
CONFIG_USB_SERIAL_OPTION=y

Is the kernel missing anything, or requiring some special ZTE-specific
customizations in your opinion?

What are the best connection options I could try?

 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


[PATCH] USB: gadget: f_uac2: Fix broken prm to uac2 mapping

2013-05-30 Thread Jassi Brar
From: Jassi Brar jaswinder.si...@linaro.org

prm_to_uac2() is broken because it tests against pointer it itself
mapped onto, which will never be different.
Fix the mapping by adding pointer to parent chip in each rtd param
and removing the prm_to_uac2().

Reported-by: Julien Rouviere jrouvi...@qualistream.com
Signed-off-by: Jassi Brar jaswinder.si...@linaro.org
---
 drivers/usb/gadget/f_uac2.c |   20 ++--
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/drivers/usb/gadget/f_uac2.c b/drivers/usb/gadget/f_uac2.c
index c7468b6..2c858a8 100644
--- a/drivers/usb/gadget/f_uac2.c
+++ b/drivers/usb/gadget/f_uac2.c
@@ -90,6 +90,7 @@ struct uac2_req {
 };
 
 struct uac2_rtd_params {
+   struct snd_uac2_chip *uac2; /* parent chip */
bool ep_enabled; /* if the ep is enabled */
/* Size of the ring buffer */
size_t dma_bytes;
@@ -169,18 +170,6 @@ struct snd_uac2_chip *pdev_to_uac2(struct platform_device 
*p)
 }
 
 static inline
-struct snd_uac2_chip *prm_to_uac2(struct uac2_rtd_params *r)
-{
-   struct snd_uac2_chip *uac2 = container_of(r,
-   struct snd_uac2_chip, c_prm);
-
-   if (uac2-c_prm != r)
-   uac2 = container_of(r, struct snd_uac2_chip, p_prm);
-
-   return uac2;
-}
-
-static inline
 uint num_channels(uint chanmask)
 {
uint num = 0;
@@ -204,7 +193,7 @@ agdev_iso_complete(struct usb_ep *ep, struct usb_request 
*req)
struct uac2_req *ur = req-context;
struct snd_pcm_substream *substream;
struct uac2_rtd_params *prm = ur-pp;
-   struct snd_uac2_chip *uac2 = prm_to_uac2(prm);
+   struct snd_uac2_chip *uac2 = prm-uac2;
 
/* i/f shutting down */
if (!prm-ep_enabled)
@@ -896,7 +885,7 @@ struct cntrl_range_lay3 {
 static inline void
 free_ep(struct uac2_rtd_params *prm, struct usb_ep *ep)
 {
-   struct snd_uac2_chip *uac2 = prm_to_uac2(prm);
+   struct snd_uac2_chip *uac2 = prm-uac2;
int i;
 
prm-ep_enabled = false;
@@ -972,6 +961,9 @@ afunc_bind(struct usb_configuration *cfg, struct 
usb_function *fn)
}
agdev-in_ep-driver_data = agdev;
 
+   uac2-p_prm.uac2 = uac2;
+   uac2-c_prm.uac2 = uac2;
+
hs_epout_desc.bEndpointAddress = fs_epout_desc.bEndpointAddress;
hs_epout_desc.wMaxPacketSize = fs_epout_desc.wMaxPacketSize;
hs_epin_desc.bEndpointAddress = fs_epin_desc.bEndpointAddress;
-- 
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: Chipidea usb otg support for IMX/MXS (device functionality)

2013-05-30 Thread maxime.rip...@free-electrons.com
Hi Michael,

On Wed, May 29, 2013 at 02:41:08PM +0200, Michael Grzeschik wrote:
 Peters patches need some more care, as they are not cleanly sperated.
 One patch e.g. adds an delayed worker to handle the otg events. Another
 one above that patch is removing the worker afterwards.

I see, thanks!

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
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


Serial ports for Septentrio USB GNSS receiver

2013-05-30 Thread Ben Adler

Hello list!

I'm using a http://www.septentrio.com/products/receivers/asterx2i-oem 
INS/GNSS receiver. When connected via USB to a windows-host, there's two 
(or even three, don't remember exactly) virtual serial ports to talk to it.


When connected to a 3.8.0-19-generic #30-Ubuntu SMP i686 GNU/Linux 
system, I only see /dev/ttyACM0. I'd really like to get access to the 
second virtual com port, so I tried setting


options usbserial vendor=0x152a product=0x8230

in /etc/modprobe.d/septentrio.conf. Doing this, I get /dev/ttyUSB0 - 
dmesg says:


usbcore: registered new interface driver usbserial 



usbcore: registered new interface driver usbserial_generic 



usbserial: USB Serial support registered for generic 



usbserial_generic 3-2:1.0: Generic device with no bulk out, not allowed. 



usbserial_generic: probe of 3-2:1.0 failed with error -5 



usbserial_generic 3-2:1.1: The generic usb-serial driver is only for 
testing and one-off prototypes. 

usbserial_generic 3-2:1.1: Tell linux-usb@vger.kernel.org to add your 
device to a proper driver. 

usbserial_generic 3-2:1.1: generic converter detected 



usb 3-2: generic converter now attached to ttyUSB0

ttyUSB0 does work for communicating with the device, but there's no 
second port (this trick did work with some NovAtel receivers).


Is there a way to make the other virtual COM port appear?

# lsusb -d 152a:8230 -v

Bus 003 Device 002: ID 152a:8230
Device Descriptor:
  bLength18
  bDescriptorType 1
  bcdUSB   1.10
  bDeviceClass2 Communications
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 8
  idVendor   0x152a
  idProduct  0x8230
  bcdDevice1.10
  iManufacturer   1 Septentrio
  iProduct2 Septentrio USB Device
  iSerial 0
  bNumConfigurations  2
  Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength   91
bNumInterfaces  4
bConfigurationValue 2
iConfiguration  0
bmAttributes 0xc0
  Self Powered
MaxPower2mA
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber0
  bAlternateSetting   0
  bNumEndpoints   0
  bInterfaceClass 2 Communications
  bInterfaceSubClass  2 Abstract (modem)
  bInterfaceProtocol255 Vendor Specific (MSFT RNDIS?)
  iInterface  0
  CDC Header:
bcdCDC   1.01
  CDC ACM:
bmCapabilities   0x0e
  connection notifications
  sends break
  line coding and serial state
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber1
  bAlternateSetting   0
  bNumEndpoints   2
  bInterfaceClass10 CDC Data
  bInterfaceSubClass  0 Unused
  bInterfaceProtocol255 Vendor specific
  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 Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber2
  bAlternateSetting   0
  bNumEndpoints   0
  bInterfaceClass 2 Communications
  bInterfaceSubClass  2 Abstract (modem)
  bInterfaceProtocol255 Vendor Specific (MSFT RNDIS?)
  iInterface  0
  CDC Header:
bcdCDC   1.01
  CDC ACM:
bmCapabilities   0x0e
  connection notifications
  sends break
  line coding and serial state
Interface Descriptor:
  bLength 9
  bDescriptorType 4
  bInterfaceNumber3
  bAlternateSetting   0
  bNumEndpoints   2
  bInterfaceClass10 CDC Data
  bInterfaceSubClass  0 Unused
  bInterfaceProtocol255 Vendor specific
  iInterface  0
  Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04  EP 4 OUT
bmAttributes2
  Transfer TypeBulk
  Synch Type 

Re: [PATCh V10 04/12] usb: ehci: ehci-mv: use PHY driver for ehci

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Roger Quadros wrote:

  So what are your idea about making the PHY layer more generic? How
  ehci-hcd will make use of PHY layer?
  
  
  on probe grab the phy and initialize it. On suspend/resume,
  suspend/resume the PHY and so on. Whatever you were going to do on your
  ehci glue, do it on generic ehci-hcd.
  
 
 These operations sound generic enough to be done at HCD layer, no? So no need 
 to
 replicate the same stuff in ohci, ehci, xhci, etc.

The HCD layer handles suspend and resume only for PCI host controllers.  
Not for other types.

I don't know if the acquire/start and stop/release parts can be moved 
into the USB core.  Maybe they can.

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: Linux USB file storage gadget with new UDC

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, victor yeo wrote:

 I tested the g_zero with USB 2.0 Command Verifier. After the Command
 Verifier is run, the UDC gadget driver queue function is continuously
 being called, and the linux command prompt is frozen. Please see the
 attached UDC driver log. It looks like endpoint 1 in direction is
 called by USB 2.0 Command Verifier continuously. Is this weird?

I don't know.

You can't tell what's going on just by looking at the gadget.  You have 
to know what the host is doing as well.

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: [PATCH 1/4] usb: config-desc.bLength may not exceed amount of data returned by the device

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Hans de Goede wrote:

 While reading the config parsing code I noticed this check is missing, without
 this check config-desc.wTotalLength can end up with a value larger then the
 dev-rawdescriptors length for the config, and when userspace then tries to
 get the rawdescriptors bad things may happen.
 
 Signed-off-by: Hans de Goede hdego...@redhat.com
 ---
  drivers/usb/core/config.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
 index 7199adc..a6b2cab 100644
 --- a/drivers/usb/core/config.c
 +++ b/drivers/usb/core/config.c
 @@ -424,7 +424,8 @@ static int usb_parse_configuration(struct usb_device 
 *dev, int cfgidx,
  
   memcpy(config-desc, buffer, USB_DT_CONFIG_SIZE);
   if (config-desc.bDescriptorType != USB_DT_CONFIG ||
 - config-desc.bLength  USB_DT_CONFIG_SIZE) {
 + config-desc.bLength  USB_DT_CONFIG_SIZE ||
 + config-desc.bLength  size) {
   dev_err(ddev, invalid descriptor for config index %d: 
   type = 0x%X, length = %d\n, cfgidx,
   config-desc.bDescriptorType, config-desc.bLength);

Another thing that should be changed along with this is in line 710:

} else if (result  4) {

really should be

} else if (result != USB_DT_CONFIG_SIZE) {

Otherwise we may read a garbage value for desc-wTotalLength.

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: [PATCH 4/4] Documentation sysfs-bus-usb: Document all files used by libusb

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Hans de Goede wrote:

 +What:/sys/bus/usb/devices/.../bConfigurationValue
 +KernelVersion:   since atleast 2.6.18

s/atleast/at least/ and ditto for the preceding entry.

 +Description:
 + bConfigurationValue of the *active* configuration for the
 + device.

Here we need to mention that writing to bConfigurationValue will change 
or reset the active configuration.  Note that some devices, in 
violation of the USB spec, have a configuration with value equal to 0.  
Writing 0 to bConfigurationValue for these devices will install that 
configuration; to unconfigure the device, write -1 to 
bConfigurationValue.  (This also works with compliant devices.)

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: [PATCH 1/4] usb: config-desc.bLength may not exceed amount of data returned by the device

2013-05-30 Thread Hans de Goede

Hi,

On 05/30/2013 04:51 PM, Alan Stern wrote:

On Thu, 30 May 2013, Hans de Goede wrote:


While reading the config parsing code I noticed this check is missing, without
this check config-desc.wTotalLength can end up with a value larger then the
dev-rawdescriptors length for the config, and when userspace then tries to
get the rawdescriptors bad things may happen.

Signed-off-by: Hans de Goede hdego...@redhat.com
---
  drivers/usb/core/config.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 7199adc..a6b2cab 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -424,7 +424,8 @@ static int usb_parse_configuration(struct usb_device *dev, 
int cfgidx,

memcpy(config-desc, buffer, USB_DT_CONFIG_SIZE);
if (config-desc.bDescriptorType != USB_DT_CONFIG ||
-   config-desc.bLength  USB_DT_CONFIG_SIZE) {
+   config-desc.bLength  USB_DT_CONFIG_SIZE ||
+   config-desc.bLength  size) {
dev_err(ddev, invalid descriptor for config index %d: 
type = 0x%X, length = %d\n, cfgidx,
config-desc.bDescriptorType, config-desc.bLength);


Another thing that should be changed along with this is in line 710:

} else if (result  4) {

really should be

} else if (result != USB_DT_CONFIG_SIZE) {

Otherwise we may read a garbage value for desc-wTotalLength.


Erm, no wTotalLength is byte 3 and 4, so the original check covers it.

I actually had a patch such as you suggested, but then thought it would
be better to leave things as is, so as to avoid regressions, in case
some crazy device has result = 4  result  USB_DT_CONFIG_SIZE on
the first (header only) usb_get_descriptor call.

For the second (full) usb_get_descriptor call, my patch already ensures
that result = USB_DT_CONFIG_SIZE.

Regards,

Hans
--
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: Chipidea usb otg support for IMX/MXS (device functionality)

2013-05-30 Thread Hector Palacios

Dear Maxime,

On 05/29/2013 09:50 AM, maxime.rip...@free-electrons.com wrote:

Hi,

On Wed, May 29, 2013 at 07:11:30AM +, Chen Peter-B29397 wrote:



Hello,

Am I right in assuming that the MXS USB on-the-go port does not currently
support the
device (gadget) functionality?
Anybody out there working on that?



As far as I know, Maxime Ripard may already let the chipidea durl-role function
work ok at mx28. It may need my chipidea otg patch

https://github.com/hzpeterchen/linux-usb.git


Indeed, I've been using the patchset Add tested id switch and vbus
connect detect support for Chipidea from Peter for quite some time on
top of 3.9 and it works like a charm for the gadget mode on an MX28
platform.

BTW, Peter, I've seen that these patches are still not merged in 3.10,
is there a reason for that? do you plan on sending a version rebased on
top of 3.10 some time in the future? I tried to do the rebasing myself,
but the chipidea driver seems to have changed quite heavily, which makes
the process quite difficult when you don't know what you're doing :)


I guess you didn't get rid of the 'possible circular locking dependency' you talked 
about at [1], right? I experimented the same and also a BUG [2] after cable reconnection.
Despite those, I ran a simple test of serial, ethernet, and mass_storage gadgets and 
they worked fine.


I didn't use the new properties (phy_type, dr_mode...) in the DT of my mx28 platform, 
did you?


[1] https://lkml.org/lkml/2013/3/6/200

[2]
[ 1949.074726] BUG: spinlock lockup suspected on CPU#0, swapper/0
[ 1949.080623]  lock: 0xcf41f014, .magic: dead4ead, .owner: swapper/0, 
.owner_cpu: 0
[ 1949.088184] [c001510c] (unwind_backtrace+0x0/0xf4) from [c0273754] 
(do_raw_spin_lock+0x104/0x14c)
[ 1949.097463] [c0273754] (do_raw_spin_lock+0x104/0x14c) from [c045893c] 
(_raw_spin_lock_irqsave+0x50/0x5c)
[ 1949.107340] [c045893c] (_raw_spin_lock_irqsave+0x50/0x5c) from [c03467f8] 
(ep_disable+0x30/0xfc)
[ 1949.116541] [c03467f8] (ep_disable+0x30/0xfc) from [bf00a19c] 
(gserial_disconnect+0x9c/0x174 [g_serial])
[ 1949.126447] [bf00a19c] (gserial_disconnect+0x9c/0x174 [g_serial]) from 
[bf00a288] (acm_disable+0xc/0x2c [g_serial])
[ 1949.137325] [bf00a288] (acm_disable+0xc/0x2c [g_serial]) from [bf000930] 
(reset_config+0x34/0x5c [libcomposite])
[ 1949.147931] [bf000930] (reset_config+0x34/0x5c [libcomposite]) from [bf000fd0] 
(composite_disconnect+0x34/0x5c [libcomposite])
[ 1949.159737] [bf000fd0] (composite_disconnect+0x34/0x5c [libcomposite]) from 
[c0347b14] (udc_irq+0x1d8/0xbe4)

[ 1949.169951] [c0347b14] (udc_irq+0x1d8/0xbe4) from [c0345830] 
(ci_irq+0x9c/0x104)
[ 1949.177751] [c0345830] (ci_irq+0x9c/0x104) from [c006cb50] 
(handle_irq_event_percpu+0x5c/0x26c)
[ 1949.186847] [c006cb50] (handle_irq_event_percpu+0x5c/0x26c) from [c006cd9c] 
(handle_irq_event+0x3c/0x5c)
[ 1949.196716] [c006cd9c] (handle_irq_event+0x3c/0x5c) from [c006f3c8] 
(handle_level_irq+0x8c/0x118)
[ 1949.205976] [c006f3c8] (handle_level_irq+0x8c/0x118) from [c006cae4] 
(generic_handle_irq+0x28/0x30)
[ 1949.215421] [c006cae4] (generic_handle_irq+0x28/0x30) from [c001009c] 
(handle_IRQ+0x30/0x84)
[ 1949.224246] [c001009c] (handle_IRQ+0x30/0x84) from [c00086ec] 
(icoll_handle_irq+0x30/0x44)
[ 1949.232897] [c00086ec] (icoll_handle_irq+0x30/0x44) from [c000ee24] 
(__irq_svc+0x44/0x54)

[ 1949.241438] Exception stack(0xc0627f68 to 0xc0627fb0)
[ 1949.246520] 7f60:   c0010278 0005317f 0005217f 6013 c0626000 
c0667c88
[ 1949.254729] 7f80: c0631980 7fff 40004000 41069265 4061c574  60d3 
c0627fb0

[ 1949.262926] 7fa0: c0010278 c0010284 6013 
[ 1949.268023] [c000ee24] (__irq_svc+0x44/0x54) from [c0010284] 
(default_idle+0x40/0x48)
[ 1949.276244] [c0010284] (default_idle+0x40/0x48) from [c00105b8] 
(cpu_idle+0x68/0xd0)
[ 1949.284380] [c00105b8] (cpu_idle+0x68/0xd0) from [c0600810] 
(start_kernel+0x258/0x298)

[ 1953.034550]  gadget: high-speed config #2: CDC ACM config

Regards,
--
Héctor Palacios
--
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 2/4] proc_usb_info.txt: Correct documentation about endianness of config descriptors

2013-05-30 Thread Daniele Forsi
2013/5/30 Hans de Goede:

 +are wTotalLength bytes apart. If a device returns less configuration
 +descriptor data then indicated by wTotalLength there will be a hole in

s/then/than/

-- 
Daniele Forsi
--
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/4] usb: config-desc.bLength may not exceed amount of data returned by the device

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Hans de Goede wrote:

 Hi,
 
 On 05/30/2013 04:51 PM, Alan Stern wrote:
  On Thu, 30 May 2013, Hans de Goede wrote:
 
  While reading the config parsing code I noticed this check is missing, 
  without
  this check config-desc.wTotalLength can end up with a value larger then 
  the
  dev-rawdescriptors length for the config, and when userspace then tries to
  get the rawdescriptors bad things may happen.
 
  Signed-off-by: Hans de Goede hdego...@redhat.com
  ---
drivers/usb/core/config.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
 
  diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
  index 7199adc..a6b2cab 100644
  --- a/drivers/usb/core/config.c
  +++ b/drivers/usb/core/config.c
  @@ -424,7 +424,8 @@ static int usb_parse_configuration(struct usb_device 
  *dev, int cfgidx,
 
 memcpy(config-desc, buffer, USB_DT_CONFIG_SIZE);
 if (config-desc.bDescriptorType != USB_DT_CONFIG ||
  -  config-desc.bLength  USB_DT_CONFIG_SIZE) {
  +  config-desc.bLength  USB_DT_CONFIG_SIZE ||
  +  config-desc.bLength  size) {
 dev_err(ddev, invalid descriptor for config index %d: 
 type = 0x%X, length = %d\n, cfgidx,
 config-desc.bDescriptorType, config-desc.bLength);
 
  Another thing that should be changed along with this is in line 710:
 
  } else if (result  4) {
 
  really should be
 
  } else if (result != USB_DT_CONFIG_SIZE) {
 
  Otherwise we may read a garbage value for desc-wTotalLength.
 
 Erm, no wTotalLength is byte 3 and 4, so the original check covers it.

Oh, you're right.  I must have had that in mind when going through this
code years ago, and then forgot about it.  :-)

 I actually had a patch such as you suggested, but then thought it would
 be better to leave things as is, so as to avoid regressions, in case
 some crazy device has result = 4  result  USB_DT_CONFIG_SIZE on
 the first (header only) usb_get_descriptor call.
 
 For the second (full) usb_get_descriptor call, my patch already ensures
 that result = USB_DT_CONFIG_SIZE.

Yes, okay.  This is fine then.

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: [PATCH 4/4] Documentation sysfs-bus-usb: Document all files used by libusb

2013-05-30 Thread Daniele Forsi
2013/5/30 Hans de Goede:

 +   be trusted, as the device may have a smaller config descriptor
 +   then it advertises. The bLength field of each (sub) descriptor

as in the other text: s/then/than/

-- 
Daniele Forsi
--
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: [RFC PATCH 1/2] USB: OHCI: make ohci-platform a separate driver

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Manjunath Goudar wrote:

 This patch splits the ohci-platform code from ohci-hcd out
 into its own separate driver module.This work is part of enabling
 multi-platform kernels on ARM.

Okay, except...

 +static const struct ohci_driver_overrides platform_overrides = {
 + .product_desc = Generic Platform EHCI controller,
 + .reset =ohci_platform_reset,
  };

Don't forget the __initconst annotation.  After that is fixed, you can 
add my 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: [RFC PATCH 2/2] USB: OHCI: add a name for the platform-private field

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Manjunath Goudar wrote:

 This patch adds an ohci-priv field for private use by OHCI
 platform drivers.
 
 Until now none of the platform drivers has used this private space,
 but that's about to change in the next patch of this series.

As far as I'm concerned, this doesn't need to be in a patch of its own.  
It can be merged into the 1/3 patch of the previous series.  After all,
that patch adds the extra_priv_size field in ohci_driver_overrides,
which doesn't make much sense unless there's a way to refer to the
private part of the ohci_hcd structure.

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: [RFC PATCH 1/2] USB: OHCI: make ohci-platform a separate driver

2013-05-30 Thread Sergei Shtylyov

Hello.

On 05/30/2013 09:23 PM, Alan Stern wrote:




This patch splits the ohci-platform code from ohci-hcd out
into its own separate driver module.This work is part of enabling
multi-platform kernels on ARM.

Okay, except...


+static const struct ohci_driver_overrides platform_overrides = {
+   .product_desc = Generic Platform EHCI controller,


Maybe OHCI? :-)


Alan Stern


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: [PATCH 1/2] USB: xhci: rename ambiguous named XHCI_NEC_HOST to XHCI_NEC_SHOW_FW

2013-05-30 Thread Alexander Holler
On Thu, May 30, 2013 at 06:16:34AM +0200, Alexander Holler wrote:
 Am 30.05.2013 00:25, schrieb Sarah Sharp:
  
  On Wed, May 29, 2013 at 11:14:32PM +0200, Alexander Holler wrote:
  Current Renesas Electronics XHCI hosts (which were formerly NEC)
  do support the same vendor command to show the firmware. Rename the
  ambigious named define XHCI_NEC_HOST to XHCI_NEC_SHOW_FW because it's
  only used to display the firmware version. Besides that, change the
  output ... NEC firmware version x.y to ... firmware version x.y
  to not confuse owners of Renesas USB hosts.
 
  (so only cosmetic, no functional changes)
  
  I'm actually inclined to say you should just rip out the firmware
  version code entirely.  I haven't needed to use it for years, and if
  Renesas changed their vendor command set, I would rather not submit
  random commands to the host.
  
  So, can you redo this patch to just rip out XHCI_NEC_HOST and everything
  that uses it?
 
 Hmm, I find the firmware version rather informational and would even
 display it unconditionally (instead of with xhci_debug). It prevents the
 need to boot Windows to checkout if the latest version is installed,
 especially if someone is hunting a bug.

Below is the patch I'm using locally on top of the two previous patches.
Feel free to use/submit/merge it too.

Regards,

Alexander Holler


From 9bf9e555600626b87371a8825c2557bdf5621e76 Mon Sep 17 00:00:00 2001
From: Alexander Holler hol...@ahsoftware.de
Date: Thu, 30 May 2013 18:04:14 +0200
Subject: [PATCH] USB: xhci: always show the firmware version for NEC/Renesas
 hosts

Signed-off-by: Alexander Holler hol...@ahsoftware.de
---
 drivers/usb/host/xhci-ring.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 761d566..8873b3e 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1493,7 +1493,7 @@ bandwidth_change:
xhci-error_bitmask |= 1  6;
break;
}
-   xhci_dbg(xhci, firmware version %2x.%02x\n,
+   dev_info(xhci_to_hcd(xhci)-self.controller, firmware version 
%2x.%02x\n,
 NEC_FW_MAJOR(le32_to_cpu(event-status)),
 NEC_FW_MINOR(le32_to_cpu(event-status)));
break;
-- 
1.8.1.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


[PATCH] usb: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Ruchika Kharwar
This patch adds the possibility of the mode being specified in a device
tree. This allows the scenario when there maybe multiple USB subsystems
operating in different modes.

Signed-off-by: Ruchika Kharwar ruch...@ti.com
---
 Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
 drivers/usb/dwc3/core.c|   22 ++
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7a95c65..5c4db93 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -10,7 +10,8 @@ Required properties:
 
 Optional properties:
  - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
-
+ - dr_mode: determines the mode of core. This could be gadget, host,
+   drd.
 This is usually a subnode to DWC3 glue to which it is connected.
 
 dwc3@4a03 {
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index c35d49d..cf211be 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -378,7 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
void*mem;
 
u8  mode;
-
+   char*dr_mode;
mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
if (!mem) {
dev_err(dev, not enough memory\n);
@@ -520,9 +520,23 @@ static int dwc3_probe(struct platform_device *pdev)
mode = DWC3_MODE_HOST;
else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
mode = DWC3_MODE_DEVICE;
-   else
-   mode = DWC3_MODE_DRD;
-
+   else {
+   if (of_property_read_string(node, dr_mode, dr_mode)) {
+   dev_warn(dev, Missing dr_mode so assuming 
DWC3_MODE_DRD\n);
+   mode = DWC3_MODE_DRD;
+   } else {
+   if (strcmp(dr_mode, host) == 0)
+   mode = DWC3_MODE_HOST;
+   else if (strcmp(dr_mode, gadget) == 0)
+   mode = DWC3_MODE_DEVICE;
+   else if (strcmp(dr_mode, drd) == 0)
+   mode = DWC3_MODE_DRD;
+   else {
+   dev_err(dev, invalid dr_mode property 
value\n);
+   goto err0;
+   }
+   }
+   }
switch (mode) {
case DWC3_MODE_DEVICE:
dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);
-- 
1.7.5.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: USB3 SSD/HD device file disappears after eject

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Grant wrote:

  There are two things you can do to help diagnose this.  One is to build
  a kernel with CONFIG_USB_DEBUG enabled and then post the portion of the
  dmesg log showing what happens when you eject, unplug, and replug the
  device.
 
 I've enabled CONFIG_USB_DEBUG.  Here is the output after mounting in
 Thunar and then the sequence you specified:
 
 [ 2536.683944] EXT4-fs (sdb1): mounted filesystem with ordered data
 mode. Opts: (null)
 [ 2539.556586] sd 16:0:0:0: [sdb] Synchronizing SCSI cache
 [ 2543.885054] xhci_hcd :02:00.0: Port Status Change Event for port 3
 [ 2543.885070] xhci_hcd :02:00.0: handle_port_status: starting port 
 polling.
 [ 2543.885156] hub 4-0:1.0: state 7 ports 2 chg  evt 0002
 [ 2543.885255] xhci_hcd :02:00.0: get port status, actual port 0
 status  = 0x202c0
 [ 2543.885261] xhci_hcd :02:00.0: Get port status returned 0x102c0
 [ 2543.885300] xhci_hcd :02:00.0: clear port connect change,
 actual port 0 status  = 0x2c0
 [ 2543.885307] hub 4-0:1.0: warm reset port 1
 [ 2544.050074] xhci_hcd :02:00.0: xhci_hub_status_data: stopping
 port polling.
 [ 2548.139118] xhci_hcd :02:00.0: Port Status Change Event for port 3
 [ 2548.139132] xhci_hcd :02:00.0: handle_port_status: starting port 
 polling.
 
 I've attached dmesg.txt which contains the output after mounting in
 Thunar, ejecting in Thunar, and waiting a minute or two.

I can't make much out of that, except that the warm reset seems 
suspicious.  Maybe it will mean more to Sarah.

 I should also mention that unmounting in Thunar or using umount seems
 to work fine and causes no problems.  Ejecting seems to trigger the
 problem.

What about the second part of my suggestion, capturing a usbmon trace?  
That will probably be more informative.

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: [PATCH 5/7] dwc2: remove redundant D0 power state set

2013-05-30 Thread Paul Zimmerman
 From: Yijing Wang [mailto:wangyij...@huawei.com]
 Sent: Thursday, May 30, 2013 3:24 AM
 
 Pci_enable_device() will set device power state to D0,
 so it's no need to do it again in dwc2_driver_probe().
 
 Signed-off-by: Yijing Wang wangyij...@huawei.com
 ---
  drivers/staging/dwc2/pci.c |2 --
  1 files changed, 0 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/staging/dwc2/pci.c b/drivers/staging/dwc2/pci.c
 index 69c65eb..6a196c2 100644
 --- a/drivers/staging/dwc2/pci.c
 +++ b/drivers/staging/dwc2/pci.c
 @@ -131,8 +131,6 @@ static int dwc2_driver_probe(struct pci_dev *dev,
   if (!hsotg)
   return -ENOMEM;
 
 - pci_set_power_state(dev, PCI_D0);
 -
   hsotg-dev = dev-dev;
   hsotg-regs = devm_request_and_ioremap(dev-dev, dev-resource[0]);
   if (!hsotg-regs)
 --
 1.7.1

Acked-by: Paul Zimmerman pa...@synopsys.com

--
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] USB: xhci: rename ambiguous named XHCI_NEC_HOST to XHCI_NEC_SHOW_FW

2013-05-30 Thread Sarah Sharp
On Thu, May 30, 2013 at 06:16:34AM +0200, Alexander Holler wrote:
 Am 30.05.2013 00:25, schrieb Sarah Sharp:
  
  On Wed, May 29, 2013 at 11:14:32PM +0200, Alexander Holler wrote:
  Current Renesas Electronics XHCI hosts (which were formerly NEC)
  do support the same vendor command to show the firmware. Rename the
  ambigious named define XHCI_NEC_HOST to XHCI_NEC_SHOW_FW because it's
  only used to display the firmware version. Besides that, change the
  output ... NEC firmware version x.y to ... firmware version x.y
  to not confuse owners of Renesas USB hosts.
 
  (so only cosmetic, no functional changes)
  
  I'm actually inclined to say you should just rip out the firmware
  version code entirely.  I haven't needed to use it for years, and if
  Renesas changed their vendor command set, I would rather not submit
  random commands to the host.
  
  So, can you redo this patch to just rip out XHCI_NEC_HOST and everything
  that uses it?
 
 Hmm, I find the firmware version rather informational and would even
 display it unconditionally (instead of with xhci_debug). It prevents the
 need to boot Windows to checkout if the latest version is installed,
 especially if someone is hunting a bug.

Right, but we need to stop sending commands to Renesas hosts that don't
support this command.  We don't know what that command does in the hosts
that don't support the firmware version command.  For all we know, we
could be setting the host into a debugging mode, or asking it to only
report USB 2.0 device connects, or other things that I can't imagine.

The point is that unless Renesas tells us how to know if a host
supports the firmware fetch vendor command, we should stop issuing that
command to the host.  I think my contacts at Renesas have moved onto
other jobs, but maybe you know someone there?

 I just dont't like the name, because e.g. in my case, it made me to have
 a deeper look at what that quirk does, because I had the hope it might
 solve a problem. Therefor I think it's useful to rename it.

I understand.  If the command worked fine on all Renesas hosts, I would
be fine with renaming it and printing it with dev_info instead of
xhci_dbg.  However, since some Renesas hosts don't support the command,
I'm concerned we may be forced to rip out the code.  If you don't do it,
I will have to.

Sarah Sharp
--
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: [RFC 0/6] xHCI and USB security bug fixes

2013-05-30 Thread Greg Kroah-Hartman
On Wed, May 29, 2013 at 10:45:04AM -0700, Sarah Sharp wrote:
 On Wed, May 29, 2013 at 10:27:50AM +0900, Greg Kroah-Hartman wrote:
  On Fri, May 24, 2013 at 05:42:52PM -0700, Sarah Sharp wrote:
   This patchset address some (but not all) of the security issues found
   with the Klockwork static analysis tool.  I have not reviewed these in
   detail to see if these could be used by attackers, so someone with more
   security experience may want to look these over.
  
  A lot of these changes are just to add checks to functions that you are
  calling yourself.  How can those pointers be not valid when you
  control what you pass to them?
 
 It's purely paranoia.  It's entirely possible we'll add new code later
 that would accidentally trigger these checks.  That's especially true
 of, say, the device speeds, since USB 3.1 (10Gbps) is in the works.

Then let's worry about it at that point in time :)

  Those seems over-eager, and not really needed.  Or am I missing
  somewhere that could change the pointer without the driver knowing it?
 
 In all honesty, these patches are the result of a bureaucratic push for
 code quality.  We switched static analysis tools from Coverity to
 Klockwork, and the QA folks pushed us to fix the issues that Klockwork
 discovered.
 
 If you don't think they're appropriate, let me know, and I'll push back.

It is great to get rid of the BUG_ON() calls.  But to be over-eager in
checking parameters that we have full control of is not needed at all.

So if you rework the patches to just clean up the BUG_ON() calls, I'll
be glad to accept them, but they aren't security issues at all.

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 35/39] dmaengine: ste_dma40_ll: Replace meaningless register set with comment

2013-05-30 Thread Vinod Koul
On Thu, May 30, 2013 at 11:04:23AM +0200, Linus Walleij wrote:
 On Wed, May 15, 2013 at 11:51 AM, Lee Jones lee.jo...@linaro.org wrote:
 
  Unsure of the author's intentions, rather than just removing the nop,
  we're replacing it with a comment containing the possible intention
  of the statement OR:ing with 0.
 
  Cc: Vinod Koul vinod.k...@intel.com
  Cc: Dan Williams d...@fb.com
  Cc: Per Forlin per.for...@stericsson.com
  Cc: Rabin Vincent ra...@rab.in
  Signed-off-by: Lee Jones lee.jo...@linaro.org
 
 Tentatively applied. Missing Vinod's ACK.
Acked-by: Vinod Koul vinod.k...@intel.com

--
~Vinod
--
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: Misbehaving device

2013-05-30 Thread Alan Stern
On Wed, 29 May 2013, Joe Julian wrote:

 On 05/22/2013 12:27 PM, Alan Stern wrote:
  On Wed, 22 May 2013, Joe Julian wrote:
 
  On 05/21/2013 03:20 PM, Joe Julian wrote:
  I have about 100 of these creditcard/check scanners that are dropping
  events. I was able to find some overflows that I assume are probably
  related to the problem, usb 4-1: ctrl urb status -75 received.
 
  Short of asking the vendor to fix their product or compiling a custom
  kernel, are there any other options? Can the MaxPacketSize or the
  buffer size be overridden somehow (/sys/bus/usb/devices... maybe)?
  I have started a dialog with UIC (Uniform Industrial Corp) about a fix,
  but I'm not very hopeful. Is there anything I can do to work around the
  overflow?
  Without knowing more (like where the overflows occur and what data was
  expected), it is impossible to answer this question.  A usbmon trace
  would help.
 I spent the day at one of our stores capturing data from a small handful 
 of customer loyalty cards I picked up for this purpose. I was able to 
 capture 2 bad scans.
 
 If I'm reading this correctly, there's nothing wrong that could be 
 corrected from the linux side, could you confirm?

I agree.  In fact, the usbmon trace doesn't show any errors at all.

 I think that overflow was a red herring as none occurred during the bad 
 scans.

Could be.  All the transfers to endpoint 0 in the trace are to turn 
some output indicator on or off.  Maybe an LED or something of the 
sort.

 The best example is the last scan of the Qdoba card that ends in I 
 (7th from the bottom).

What is that an example of?

 The usbmon capture is at 
 http://joejulian.name/media/uploads/usbcapture.usbmon.gz
 
 The expected scan data was successive scans of the following cards:
 %B6277200522629830^^391200077861?[
 %B6277200522629848^^391200017860?S
 %B6277200522629855^^391200027724?S
 %B6277200522629863^^391200055339?[
 %B6277200522629871^^391200079146?\
 %B6010565032591577^QDOBA/VALUELINK^2501000460072408   ?@
 %B6010565032591494^QDOBA/VALUELINK^2501000460073301   ?C
 %B6010565032591700^QDOBA/VALUELINK^2501000460076767   ?L
 %B6010565032591551^QDOBA/VALUELINK^2501000460073264   ?I
 %B6010565032591536^QDOBA/VALUELINK^2501000460075630   ?K
 %B6010565032591528^QDOBA/VALUELINK^2501000460072347   ?F
 %B6010565032591569^QDOBA/VALUELINK^2501000460075724   ?E
 %B6010565032591544^QDOBA/VALUELINK^2501000460075630   ?N
 %B6010565032591502^QDOBA/VALUELINK^2501000460074630   ?M
 %B6010565032591510^QDOBA/VALUELINK^2501000460074982   ?H

I don't have any way to match up these strings against the data in the
trace.  For example, it looks like the scan of the first card got
something like 69 keystrokes.  They don't seem to bear any relation to
the expected scan data above; for example, the fifth and sixth
keystrokes aren't the same.

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: usb-audio regression 3.8.5-3.9.2

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Tobias Diedrich wrote:

 Alan Stern wrote:
  On Sat, 25 May 2013, Tobias Diedrich wrote:
  
   I've recently upgraded my kernel from 3.8.5 to 3.9.2 and ran into an
   issue with usb-audio:
   With two different usb-headsets, pulseaudio is now regularily losing the
   microphone audio stream (which just gets 'stuck', i.e. the level
   indicator bar in pavucontrol doesn't move anymore, but is not at 0).
   
   Every time this happens I get kernel messages like these:
   May 25 11:05:01 nukunuku kernel: [43611.510661] delay: estimated 221, 
   actual 0
   May 25 11:06:02 nukunuku kernel: [43672.086015] delay: estimated 222, 
   actual 1
   May 25 11:06:02 nukunuku kernel: [43672.102018] delay: estimated 133, 
   actual 0
   May 25 11:07:03 nukunuku kernel: [43733.814401] delay: estimated 133, 
   actual 0
   May 25 11:08:02 nukunuku kernel: [43792.636147] delay: estimated 89, 
   actual 0
   May 25 11:10:03 nukunuku kernel: [43913.539550] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539610] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539622] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539630] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539637] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539643] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539658] cannot submit urb (err = 
   -18)
   May 25 11:10:03 nukunuku kernel: [43913.539664] cannot submit urb (err = 
   -18)
   
   Now, replugging the headset fixes the issue temporarily until it
   happens again, but that's a bit annoying if you're in a video
   call...
   
   00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI 
   Controller (rev 03)
   00:10.1 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI 
   Controller (rev 03)
   00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI 
   Controller (rev 11)
   00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI 
   Controller (rev 11)
   00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI 
   Controller (rev 11)
   00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI 
   Controller (rev 11)
   
   usb-audio devices in question:
   Bus 003 Device 004: ID 041e:0401 Creative Technology, Ltd 
   Bus 004 Device 002: ID 041e:30df Creative Technology, Ltd 
   Bus 004 Device 003: ID 047f:c009 Plantronics, Inc. 
  
  Please post the contents of /sys/kernel/debug/usb/devices.
 
 Still happens on 3.9.4 (although it only happened once there so far,
 and not (yet?) on the XHCI port, which I previously hadn't compiled
 in the drivers for (new board)).

It's odd that the devices listing shows only one Creative headset: bus 
8 (which uses xHCI) device 2.  The other headset, Plantronics, is bus 4 
(OHCI) device 2.  So this problem occurs only when a headset is 
attached to an OHCI controller, right?

Can you collect a usbmon trace that shows the error?

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: [PATCH 20/39] usb: musb: ux500: move channel number knowledge into the driver

2013-05-30 Thread Felipe Balbi
HI

On Thu, May 30, 2013 at 09:12:11AM +0100, Lee Jones wrote:
 On Thu, 30 May 2013, Linus Walleij wrote:
 
  On Wed, May 29, 2013 at 7:57 PM, Felipe Balbi ba...@ti.com wrote:
   On Wed, May 15, 2013 at 10:51:43AM +0100, Lee Jones wrote:
   For all ux500 based platforms the maximum number of end-points are used.
   Move this knowledge into the driver so we can relinquish the burden from
   platform data. This also removes quite a bit of complexity from the 
   driver
   and will aid us when we come to enable the driver for Device Tree.
  
   Cc: Felipe Balbi ba...@ti.com
   Cc: linux-usb@vger.kernel.org
   Acked-by: Linus Walleij linus.wall...@linaro.org
   Acked-by: Fabio Baltieri fabio.balti...@linaro.org
   Signed-off-by: Lee Jones lee.jo...@linaro.org
  
   for drivers/usb/musb
  
   Acked-by: Felipe Balbi ba...@ti.com
  
  Is that only for this patch 20/39 or also 21, 22  23?
  
  Poke us if we should re-send them...
 
 I read this as all patches in the series for drivers/usb/musb.

right :-) Should've sent on patch 0/39, my bad.

cheers

-- 
balbi


signature.asc
Description: Digital signature


Re: usb-audio regression 3.8.5-3.9.2

2013-05-30 Thread Alan Stern
On Thu, 30 May 2013, Alan Stern wrote:

 On Thu, 30 May 2013, Tobias Diedrich wrote:
 
  Alan Stern wrote:
   On Sat, 25 May 2013, Tobias Diedrich wrote:
   
I've recently upgraded my kernel from 3.8.5 to 3.9.2 and ran into an
issue with usb-audio:
With two different usb-headsets, pulseaudio is now regularily losing the
microphone audio stream (which just gets 'stuck', i.e. the level
indicator bar in pavucontrol doesn't move anymore, but is not at 0).

By the way, this may be fixed by commit 
e1944017839d7dfbf7329fac4bdec8b4050edf5e (USB: fix latency in uhci-hcd 
and ohci-hcd), which is in the current 3.10-rc kernel and is scheduled 
to go into 3.9.stable but isn't there yet.  Try it and see.

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: [PATCH] usb: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Dan Murphy
On 05/30/2013 12:56 PM, Ruchika Kharwar wrote:
 This patch adds the possibility of the mode being specified in a device
 tree. This allows the scenario when there maybe multiple USB subsystems
 operating in different modes.
Nitpick.  Maybes and possibilities can we get more concrete statements?

 Signed-off-by: Ruchika Kharwar ruch...@ti.com
 ---
  Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
  drivers/usb/dwc3/core.c|   22 ++
  2 files changed, 20 insertions(+), 5 deletions(-)

 diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
 b/Documentation/devicetree/bindings/usb/dwc3.txt
 index 7a95c65..5c4db93 100644
 --- a/Documentation/devicetree/bindings/usb/dwc3.txt
 +++ b/Documentation/devicetree/bindings/usb/dwc3.txt
 @@ -10,7 +10,8 @@ Required properties:
  
  Optional properties:
   - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
 -
 + - dr_mode: determines the mode of core. This could be gadget, host,
 +   drd.
change to a more concrete statement.

dr_mode: determines the mode of the DWC core.  Modes supported are gadget, 
host, drd

 

  This is usually a subnode to DWC3 glue to which it is connected.
  
  dwc3@4a03 {
 diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
 index c35d49d..cf211be 100644
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
 @@ -378,7 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
   void*mem;
  
   u8  mode;
 -
 + char*dr_mode;
   mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
   if (!mem) {
   dev_err(dev, not enough memory\n);
 @@ -520,9 +520,23 @@ static int dwc3_probe(struct platform_device *pdev)
   mode = DWC3_MODE_HOST;
   else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
   mode = DWC3_MODE_DEVICE;
 - else
 - mode = DWC3_MODE_DRD;
 -
 + else {
 + if (of_property_read_string(node, dr_mode, dr_mode)) {
This will not execute if the either CONFIG options are set and then the DT 
property is not even honored
Did you test this with multiple CONFIG options?
There seems to be a conflict between CONFIGs and runtime operation.
 + dev_warn(dev, Missing dr_mode so assuming 
 DWC3_MODE_DRD\n);
If dr_mode is an optional parameter why would the dev_warn say it is missing?
Do we even want to warn here?
 + mode = DWC3_MODE_DRD;
 + } else {
 + if (strcmp(dr_mode, host) == 0)
 + mode = DWC3_MODE_HOST;
What if CONFIG_USB_DWC3_HOST is not enabled?
 + else if (strcmp(dr_mode, gadget) == 0)
 + mode = DWC3_MODE_DEVICE;
What if CONFIG_USB_DWC3_GADGET is not enabled?
 + else if (strcmp(dr_mode, drd) == 0)
 + mode = DWC3_MODE_DRD;
 + else {
 + dev_err(dev, invalid dr_mode property 
 value\n);
 + goto err0;
This should be err1 since core init is called prior to this
 + }
 + }
 + }
   switch (mode) {
   case DWC3_MODE_DEVICE:
   dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);


-- 
--
Dan Murphy

--
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] jacinto6 : usb3_phy: Updated dpll M,N values.

2013-05-30 Thread Ruchika Kharwar
Addition of the M and N recommended values for the USB3 PHY DPLL.
Sysclk for DRA7xx is 20MHz.
This yields:
Clk = 20MHz * M/(N+1) = 20MHz * 1000 /(7+1) = 2.5 Ghz

Signed-off-by: Ruchika Kharwar ruch...@ti.com
---
 drivers/usb/phy/phy-omap-usb3.c |7 ++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/phy/phy-omap-usb3.c b/drivers/usb/phy/phy-omap-usb3.c
index a6e60b1..efe6e14 100644
--- a/drivers/usb/phy/phy-omap-usb3.c
+++ b/drivers/usb/phy/phy-omap-usb3.c
@@ -27,7 +27,7 @@
 #include linux/delay.h
 #include linux/usb/omap_control_usb.h
 
-#defineNUM_SYS_CLKS5
+#defineNUM_SYS_CLKS6
 #definePLL_STATUS  0x0004
 #definePLL_GO  0x0008
 #definePLL_CONFIGURATION1  0x000C
@@ -62,6 +62,7 @@ enum sys_clk_rate {
CLK_RATE_12MHZ,
CLK_RATE_16MHZ,
CLK_RATE_19MHZ,
+   CLK_RATE_20MHZ,
CLK_RATE_26MHZ,
CLK_RATE_38MHZ
 };
@@ -72,6 +73,8 @@ static struct usb_dpll_params 
omap_usb3_dpll_params[NUM_SYS_CLKS] = {
{1172, 8, 4, 20, 65537},/* 19.2 MHz */
{1250, 12, 4, 20, 0},   /* 26 MHz */
{3125, 47, 4, 20, 92843},   /* 38.4 MHz */
+   {1000, 7, 4, 10, 0},/* 20 MHz */
+
 };
 
 static int omap_usb3_suspend(struct usb_phy *x, int suspend)
@@ -122,6 +125,8 @@ static inline enum sys_clk_rate 
__get_sys_clk_index(unsigned long rate)
return CLK_RATE_16MHZ;
case 1920:
return CLK_RATE_19MHZ;
+   case 2000:
+   return CLK_RATE_20MHZ;
case 2600:
return CLK_RATE_26MHZ;
case 3840:
-- 
1.7.5.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


[PATCH] usb: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Ruchika Kharwar
This patch adds an optional parameter dr_mode to the dwc3 core device node.
In the case the compile flag for the DWC3 controller is set to
USB_DWC3_DUAL_ROLE a device tree could restrain to either functionality of
host or gadget. In the case the device tree does not use this optional flag or
specifies it superfluously to drd the functionality will be that
of a dual role device.

Signed-off-by: Ruchika Kharwar ruch...@ti.com
---
 Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
 drivers/usb/dwc3/core.c|   21 +
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7a95c65..2f5d584 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -10,7 +10,8 @@ Required properties:
 
 Optional properties:
  - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
-
+ - dr_mode: determines the mode of core. Supported modes are gadget, host
+   and drd.
 This is usually a subnode to DWC3 glue to which it is connected.
 
 dwc3@4a03 {
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index c35d49d..e11660a 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -378,7 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
void*mem;
 
u8  mode;
-
+   char*dr_mode;
mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
if (!mem) {
dev_err(dev, not enough memory\n);
@@ -520,9 +520,22 @@ static int dwc3_probe(struct platform_device *pdev)
mode = DWC3_MODE_HOST;
else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
mode = DWC3_MODE_DEVICE;
-   else
-   mode = DWC3_MODE_DRD;
-
+   else {
+   if (of_property_read_string(node, dr_mode, dr_mode))
+   mode = DWC3_MODE_DRD;
+   else {
+   if (strcmp(dr_mode, host) == 0)
+   mode = DWC3_MODE_HOST;
+   else if (strcmp(dr_mode, gadget) == 0)
+   mode = DWC3_MODE_DEVICE;
+   else if (strcmp(dr_mode, drd) == 0)
+   mode = DWC3_MODE_DRD;
+   else {
+   dev_err(dev, invalid dr_mode property 
value\n);
+   goto err2;
+   }
+   }
+   }
switch (mode) {
case DWC3_MODE_DEVICE:
dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);
-- 
1.7.5.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: MUSB multiplatform work?

2013-05-30 Thread Tony Lindgren
* Felipe Balbi ba...@ti.com [130528 09:42]:
 Hi,
 
 On Mon, May 27, 2013 at 05:02:09PM +0200, Arnd Bergmann wrote:
  Hi Felipe,
  
  We've gone through remaining work items for getting the ARM kernel
  to full multiplatform support again, and MUSB came up. I'm sure you
  have your own thoughts on this, but I'd like to know if there is
  already a plan in place.
  
  From what I can see, the driver in PIO mode should almost work
  on multiple platforms, but there are a couple of compile-time
  dependencies in it that need to be turned into run-time conditionals.
  In particular the TUSB version seem sufficiently different that
  it needs some extra work to be a true run-time option.
 
 yeah, TUSB layer is quite messy, all the others should be doable though.

TUSB we can make depend on ARMv7, the only implementation we have
is for omap2420, which is ARMv6. This should solve the issue for
ARMv7 multiplatform builds for now.
 
  The DMA support as far as I can tell has never been intended to
  be usable in a multiplatform setup, but that also seems doable.
 
 we're looking into dmaengine for that but will take a lot of work to
 have something usable.

TUSB would work with dmaengine, but AFAIK we're still missing the
dmaengine configuration options to support increasing device end
FIFO address.
 
  Looking just at the #ifdef statements in the driver, I found
  that the following things need to be addressed:
  
  * abstract musb_write_fifo and musb_read_fifo into callbacks
  * move fifo_mode setting into glue driver for runtime selection
 
 for the fifo mode, I'd rather detect the size of the internal fifo and
 configure it dynamically based on that plus number of endpoints
 configured in the IP.
 
  * turn TUSB compile-time switches into run-time conditionals
  * turn musb_ep_select into run-time switch
  * make is_dma_capable/is_cppi_enabled/tusb_dma_omap run-time conditionals
 
 those can be remove, actually. Back at Nokia we did a huge cleanup on
 the DMA programming part, it can be very simple with no ifdefs at all,
 just needs someone to put the work and test on all platforms.
 
  * abtract dma_controller_create/destroy interface
  
  Aside from this, a recent discussion with Maxime has brought up
  that the Allwinner A1x platform (mach-sunxi) contains an MUSB variant
  that is currently used with an independently implemented device driver,
  see 
  https://github.com/linux-sunxi/linux-sunxi/tree/sunxi-3.0/drivers/usb/sun5i_usb
  I wonder if you have any insight on how that can be integrated into
  musb, or whether it is likely to be a compatible version to start with.
 
 just write a glue layer, should be as easy as that :-)

Yes the MUSB code should be able to support it considering the number
of implementations we already have there.

Regards,

Tony

--
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: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Sergei Shtylyov

Hello.

On 05/31/2013 12:14 AM, Ruchika Kharwar wrote:


This patch adds an optional parameter dr_mode to the dwc3 core device node.
In the case the compile flag for the DWC3 controller is set to
USB_DWC3_DUAL_ROLE a device tree could restrain to either functionality of
host or gadget. In the case the device tree does not use this optional flag or
specifies it superfluously to drd the functionality will be that
of a dual role device.

Signed-off-by: Ruchika Kharwar ruch...@ti.com
---
  Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
  drivers/usb/dwc3/core.c|   21 +
  2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7a95c65..2f5d584 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -10,7 +10,8 @@ Required properties:
  
  Optional properties:

   - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
-
+ - dr_mode: determines the mode of core. Supported modes are gadget, host
+   and drd.
  This is usually a subnode to DWC3 glue to which it is connected.
  
  dwc3@4a03 {

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index c35d49d..e11660a 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -378,7 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
void*mem;
  
  	u8			mode;

-
+   char*dr_mode;


   Please leave empty line here, after the declarations.


mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
if (!mem) {
dev_err(dev, not enough memory\n);



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: MUSB multiplatform work?

2013-05-30 Thread Linus Walleij
On Thu, May 30, 2013 at 10:18 PM, Tony Lindgren t...@atomide.com wrote:

 TUSB would work with dmaengine, but AFAIK we're still missing the
 dmaengine configuration options to support increasing device end
 FIFO address.

Can you elaborate on this? What is the usecase here?

Yours,
Linus Walleij
--
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: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Ruchika Kharwar
This patch adds an optional parameter dr_mode to the dwc3 core device node.
In the case the compile flag for the DWC3 controller is set to
USB_DWC3_DUAL_ROLE a device tree could restrain to either functionality of
host or gadget. In the case the device tree does not use this optional flag or
specifies it superfluously to drd the functionality will be that
of a dual role device.

Signed-off-by: Ruchika Kharwar ruch...@ti.com
---
 Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
 drivers/usb/dwc3/core.c|   20 +---
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7a95c65..2f5d584 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -10,7 +10,8 @@ Required properties:
 
 Optional properties:
  - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
-
+ - dr_mode: determines the mode of core. Supported modes are gadget, host
+   and drd.
 This is usually a subnode to DWC3 glue to which it is connected.
 
 dwc3@4a03 {
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index c35d49d..05c0c8b 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -378,6 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
void*mem;
 
u8  mode;
+   char*dr_mode;
 
mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
if (!mem) {
@@ -520,9 +521,22 @@ static int dwc3_probe(struct platform_device *pdev)
mode = DWC3_MODE_HOST;
else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
mode = DWC3_MODE_DEVICE;
-   else
-   mode = DWC3_MODE_DRD;
-
+   else {
+   if (of_property_read_string(node, dr_mode, dr_mode))
+   mode = DWC3_MODE_DRD;
+   else {
+   if (strcmp(dr_mode, host) == 0)
+   mode = DWC3_MODE_HOST;
+   else if (strcmp(dr_mode, gadget) == 0)
+   mode = DWC3_MODE_DEVICE;
+   else if (strcmp(dr_mode, drd) == 0)
+   mode = DWC3_MODE_DRD;
+   else {
+   dev_err(dev, invalid dr_mode property 
value\n);
+   goto err2;
+   }
+   }
+   }
switch (mode) {
case DWC3_MODE_DEVICE:
dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);
-- 
1.7.5.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: MUSB multiplatform work?

2013-05-30 Thread Tony Lindgren
* Linus Walleij linus.wall...@linaro.org [130530 13:27]:
 On Thu, May 30, 2013 at 10:18 PM, Tony Lindgren t...@atomide.com wrote:
 
  TUSB would work with dmaengine, but AFAIK we're still missing the
  dmaengine configuration options to support increasing device end
  FIFO address.
 
 Can you elaborate on this? What is the usecase here?

There are many devices where the device FIFO is memory mapped to the
GPMC bus on omaps, like TUSB, OneNAND, smc911x etc. I believe the
only reason why these have not been converted to the dmaengine is
the fact that dmaengine cannot configure the DMA hardware to do
autoincrement and loop over the device FIFO.

You can see an example of this in tusb_omap_dma_program() if you
look at the various dma_params entries and omap_set_dma_* functions.

Regards,

Tony
--
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: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Dan Murphy
Fix spelling in my own comments

On 05/30/2013 03:31 PM, Dan Murphy wrote:
 On 05/30/2013 03:14 PM, Ruchika Kharwar wrote:
 This patch adds an optional parameter dr_mode to the dwc3 core device node.
 In the case the compile flag for the DWC3 controller is set to
 USB_DWC3_DUAL_ROLE a device tree could restrain to either functionality of
 host or gadget. In the case the device tree does not use this optional flag 
 or
 specifies it superfluously to drd the functionality will be that
 of a dual role device.

 Signed-off-by: Ruchika Kharwar ruch...@ti.com
 ---
 Can you add patch history if this is truly a new patch to a previous 
 submission
  Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
  drivers/usb/dwc3/core.c|   21 +
  2 files changed, 19 insertions(+), 5 deletions(-)

 diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
 b/Documentation/devicetree/bindings/usb/dwc3.txt
 index 7a95c65..2f5d584 100644
 --- a/Documentation/devicetree/bindings/usb/dwc3.txt
 +++ b/Documentation/devicetree/bindings/usb/dwc3.txt
 @@ -10,7 +10,8 @@ Required properties:
  
  Optional properties:
   - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
 -
 + - dr_mode: determines the mode of core. Supported modes are gadget, 
 host
 +   and drd.
 My previous comments still stand for this section.  Nothing was addressed or 
 commented back

 https://patchwork.kernel.org/patch/2638511/
  This is usually a subnode to DWC3 glue to which it is connected.
  
  dwc3@4a03 {
 diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
 index c35d49d..e11660a 100644
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
 @@ -378,7 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
  void*mem;
  
  u8  mode;
 -
 +char*dr_mode;
  mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
  if (!mem) {
  dev_err(dev, not enough memory\n);
 @@ -520,9 +520,22 @@ static int dwc3_probe(struct platform_device *pdev)
  mode = DWC3_MODE_HOST;
  else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
  mode = DWC3_MODE_DEVICE;
 -else
 -mode = DWC3_MODE_DRD;
 -
 +else {
 +if (of_property_read_string(node, dr_mode, dr_mode))
 +mode = DWC3_MODE_DRD;
 +else {
 +if (strcmp(dr_mode, host) == 0)
 +mode = DWC3_MODE_HOST;
 +else if (strcmp(dr_mode, gadget) == 0)
 +mode = DWC3_MODE_DEVICE;
 +else if (strcmp(dr_mode, drd) == 0)
 +mode = DWC3_MODE_DRD;
 My previous comments still stand for this section.  Nothing was addressed or 
 commented back

 https://patchwork.kernel.org/patch/2638511/
 +else {
 +dev_err(dev, invalid dr_mode property 
 value\n);
 +goto err2;
 This is still wrong.  You have not initialized and of the device's
s/and/any
 +}
 +}
 +}
  switch (mode) {
  case DWC3_MODE_DEVICE:
  dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);
 Is this a new patch?
 Subject should say v2.



-- 
--
Dan Murphy

--
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: MUSB multiplatform work?

2013-05-30 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [130530 13:25]:
 
 TUSB we can make depend on ARMv7, the only implementation we have
 is for omap2420, which is ARMv6. This should solve the issue for
 ARMv7 multiplatform builds for now.

Sorry mean depend on !ARMv7. But thinking about it more, that does
not make much sense as it would break things for omap2plus_defconfig
at least which is multiplatform v6 and v7. For now TUSB can be made
to depend on MACH_NOKIA_N8X0. I doubt that anybody is using the add
on cards for H4 boards any longer..

Regards,

Tony
--
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: MUSB multiplatform work?

2013-05-30 Thread Linus Walleij
On Thu, May 30, 2013 at 10:31 PM, Tony Lindgren t...@atomide.com wrote:

 There are many devices where the device FIFO is memory mapped to the
 GPMC bus on omaps, like TUSB, OneNAND, smc911x etc. I believe the
 only reason why these have not been converted to the dmaengine is
 the fact that dmaengine cannot configure the DMA hardware to do
 autoincrement and loop over the device FIFO.

OK that seems like something pretty generic that we could just add
to the struct dma_slave_config actually, something like:

u32 src_fifoloop;
u32 dst_fifoloop;

Given in # of words on the src/dst address simply, left as zero
for hitting a constant address over and over again.

We'd need both to make space for device-device transfers.

If this is all that is needed to convert them do DMAengine
I'd surely ACK it (FWIW).

Yours,
Linus Walleij
--
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: usb-audio regression 3.8.5-3.9.2

2013-05-30 Thread Tobias Diedrich
Alan Stern wrote:
 On Thu, 30 May 2013, Tobias Diedrich wrote:
 
  Alan Stern wrote:
   On Sat, 25 May 2013, Tobias Diedrich wrote:
   
I've recently upgraded my kernel from 3.8.5 to 3.9.2 and ran into an
issue with usb-audio:
With two different usb-headsets, pulseaudio is now regularily losing the
microphone audio stream (which just gets 'stuck', i.e. the level
indicator bar in pavucontrol doesn't move anymore, but is not at 0).

Every time this happens I get kernel messages like these:
May 25 11:05:01 nukunuku kernel: [43611.510661] delay: estimated 221, 
actual 0
May 25 11:06:02 nukunuku kernel: [43672.086015] delay: estimated 222, 
actual 1
May 25 11:06:02 nukunuku kernel: [43672.102018] delay: estimated 133, 
actual 0
May 25 11:07:03 nukunuku kernel: [43733.814401] delay: estimated 133, 
actual 0
May 25 11:08:02 nukunuku kernel: [43792.636147] delay: estimated 89, 
actual 0
May 25 11:10:03 nukunuku kernel: [43913.539550] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539610] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539622] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539630] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539637] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539643] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539658] cannot submit urb (err 
= -18)
May 25 11:10:03 nukunuku kernel: [43913.539664] cannot submit urb (err 
= -18)

Now, replugging the headset fixes the issue temporarily until it
happens again, but that's a bit annoying if you're in a video
call...

00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI 
Controller (rev 03)
00:10.1 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI 
Controller (rev 03)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI 
Controller (rev 11)
00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI 
Controller (rev 11)
00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB OHCI 
Controller (rev 11)
00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI 
Controller (rev 11)

usb-audio devices in question:
Bus 003 Device 004: ID 041e:0401 Creative Technology, Ltd 
Bus 004 Device 002: ID 041e:30df Creative Technology, Ltd 
Bus 004 Device 003: ID 047f:c009 Plantronics, Inc. 
   
   Please post the contents of /sys/kernel/debug/usb/devices.
  
  Still happens on 3.9.4 (although it only happened once there so far,
  and not (yet?) on the XHCI port, which I previously hadn't compiled
  in the drivers for (new board)).
 
 It's odd that the devices listing shows only one Creative headset: bus 

The second creative device is just a soundcard, didn't have it
plugged in in this dump.

 8 (which uses xHCI) device 2.  The other headset, Plantronics, is bus 4 
 (OHCI) device 2.  So this problem occurs only when a headset is 
 attached to an OHCI controller, right?

Probably.  I specifically went and compiled in the XHCI driver and
attached the headset there to see if it is controller-specific.
It hasn't happened while plugged into that port so far, but I almost
never use it during the week, only on weekends.

 Can you collect a usbmon trace that shows the error?

I can try it this weekend.

Thanks,

-- 
Tobias  PGP: http://8ef7ddba.uguu.de
--
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: usb-audio regression 3.8.5-3.9.2

2013-05-30 Thread Tobias Diedrich
Alan Stern wrote:
 On Thu, 30 May 2013, Alan Stern wrote:
 
  On Thu, 30 May 2013, Tobias Diedrich wrote:
  
   Alan Stern wrote:
On Sat, 25 May 2013, Tobias Diedrich wrote:

 I've recently upgraded my kernel from 3.8.5 to 3.9.2 and ran into an
 issue with usb-audio:
 With two different usb-headsets, pulseaudio is now regularily losing 
 the
 microphone audio stream (which just gets 'stuck', i.e. the level
 indicator bar in pavucontrol doesn't move anymore, but is not at 0).
 
 By the way, this may be fixed by commit   
 e1944017839d7dfbf7329fac4bdec8b4050edf5e (USB: fix latency in uhci-hcd 
 and ohci-hcd), which is in the current 3.10-rc kernel and is scheduled 
 to go into 3.9.stable but isn't there yet.  Try it and see.

Sure, will try, thanks.

-- 
Tobias  PGP: http://8ef7ddba.uguu.de
--
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: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Ruchika Kharwar


On 05/30/2013 03:35 PM, Dan Murphy wrote:

Fix spelling in my own comments

On 05/30/2013 03:31 PM, Dan Murphy wrote:

On 05/30/2013 03:14 PM, Ruchika Kharwar wrote:

This patch adds an optional parameter dr_mode to the dwc3 core device node.
In the case the compile flag for the DWC3 controller is set to
USB_DWC3_DUAL_ROLE a device tree could restrain to either functionality of
host or gadget. In the case the device tree does not use this optional flag or
specifies it superfluously to drd the functionality will be that
of a dual role device.

Signed-off-by: Ruchika Kharwar ruch...@ti.com
---

Can you add patch history if this is truly a new patch to a previous submission

Will do in the next pach submitted.

  Documentation/devicetree/bindings/usb/dwc3.txt |3 ++-
  drivers/usb/dwc3/core.c|   21 +
  2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt 
b/Documentation/devicetree/bindings/usb/dwc3.txt
index 7a95c65..2f5d584 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -10,7 +10,8 @@ Required properties:
  
  Optional properties:

   - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
-
+ - dr_mode: determines the mode of core. Supported modes are gadget, host
+   and drd.

My previous comments still stand for this section.  Nothing was addressed or 
commented back

https://patchwork.kernel.org/patch/2638511/

  This is usually a subnode to DWC3 glue to which it is connected.
  
  dwc3@4a03 {

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index c35d49d..e11660a 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -378,7 +378,7 @@ static int dwc3_probe(struct platform_device *pdev)
void*mem;
  
  	u8			mode;

-
+   char*dr_mode;
mem = devm_kzalloc(dev, sizeof(*dwc) + DWC3_ALIGN_MASK, GFP_KERNEL);
if (!mem) {
dev_err(dev, not enough memory\n);
@@ -520,9 +520,22 @@ static int dwc3_probe(struct platform_device *pdev)
mode = DWC3_MODE_HOST;
else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
mode = DWC3_MODE_DEVICE;
-   else
-   mode = DWC3_MODE_DRD;
-
+   else {
+   if (of_property_read_string(node, dr_mode, dr_mode))
+   mode = DWC3_MODE_DRD;
+   else {
+   if (strcmp(dr_mode, host) == 0)
+   mode = DWC3_MODE_HOST;
+   else if (strcmp(dr_mode, gadget) == 0)
+   mode = DWC3_MODE_DEVICE;
+   else if (strcmp(dr_mode, drd) == 0)
+   mode = DWC3_MODE_DRD;

My previous comments still stand for this section.  Nothing was addressed or 
commented back

https://patchwork.kernel.org/patch/2638511/
DRD mode is the super set mode for Host and Gadget. The compile 
time flag is primary. If DRD is set, the host and gadget code is 
compiled in.
The dr_mode property can be used *if* specified in the device 
tree. A specific example may be a board could have constraints where the 
port could only be a host
or gadget. In that case, the dr_mode property is specified 
overrides the compile flag.

+   else {
+   dev_err(dev, invalid dr_mode property 
value\n);
+   goto err2;

This is still wrong.  You have not initialized and of the device's

s/and/any
   This is correct as per 3.10-rc3. If you're looking at an older 
tree you'd be right.

+   }
+   }
+   }
switch (mode) {
case DWC3_MODE_DEVICE:
dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);

Is this a new patch?
Subject should say v2.

Yes, my bad.. learning.. next patch will have it.






--
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 3/3] usb: dwc3: use extcon fwrk to receive connect/disconnect notification

2013-05-30 Thread Chanwoo Choi

On 05/24/2013 11:31 PM, Kishon Vijay Abraham I wrote:
 Modified dwc3-omap to receive connect and disconnect notification using
 extcon framework. Also did the necessary cleanups required after
 adapting to extcon framework.

 Signed-off-by: Kishon Vijay Abraham I kis...@ti.com
 ---
  drivers/usb/dwc3/dwc3-omap.c  | 80 
 +--
  include/linux/usb/dwc3-omap.h | 30 
  2 files changed, 62 insertions(+), 48 deletions(-)
  delete mode 100644 include/linux/usb/dwc3-omap.h

Hi Kishon,

Thi patch is suspended until fix following build error.
(If kernel builds extcon fwr as module, dwc3-omap.c happen error message)

---
tree:   git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon extcon-next
head:   30f5d6ea2561c2a54e40b1e8e8f9bb30e064e01b
commit: 30f5d6ea2561c2a54e40b1e8e8f9bb30e064e01b [3/3] usb: dwc3: use extcon 
fwrk to receive connect/disconnect notification
config: i386-randconfig-x14-0530 (attached as .config)

All error/warnings:

   drivers/built-in.o: In function `dwc3_omap_remove':
   dwc3-omap.c:(.text+0x8c0fa): undefined reference to 
`extcon_unregister_interest'
   dwc3-omap.c:(.text+0x8c102): undefined reference to 
`extcon_unregister_interest'
   drivers/built-in.o: In function `dwc3_omap_probe':
   dwc3-omap.c:(.text+0x8c5e6): undefined reference to `extcon_get_extcon_dev'
   dwc3-omap.c:(.text+0x8c6a4): undefined reference to 
`extcon_register_interest'
   dwc3-omap.c:(.text+0x8c6c9): undefined reference to 
`extcon_register_interest'
   dwc3-omap.c:(.text+0x8c831): undefined reference to `extcon_get_cable_state'
   dwc3-omap.c:(.text+0x8c851): undefined reference to `extcon_get_cable_state'
---

Also, I missed a issue of this patch. If h/w target use other USB device
instead of palmas-usb, dwc-omap.c driver won't be operating.
So, I propose two method about this issue.
First, we can get extcon device name through platform data or dt.
Two, When use extcon_register_interest() to register notifier block,
NULL pointer pass to extcon_register_interest() instead of specific extcon
device name(palmas-usb). If extcon_register_interest() check NULL
pointer of extcon device name parameter, extcon fwr will find previous
registered extcon device and then register notifier block of consumer
device driver(dwc3-omap.c) to previous registered extcon device.

 + edev = extcon_get_extcon_dev(palmas-usb);
 + if (!edev) {
 + dev_dbg(dev, couldn't get extcon device\n);
 + return -EPROBE_DEFER;
 + }
 +
   spin_lock_init(omap-lock);
  
   omap-dev   = dev;
   omap-irq   = irq;
   omap-base  = base;
 + omap-vbus_nb.notifier_call = dwc3_omap_vbus_notifier;
 + extcon_register_interest(omap-extcon_vbus_dev, palmas-usb, USB,
 + omap-vbus_nb);
 + omap-id_nb.notifier_call = dwc3_omap_id_notifier;
 + extcon_register_interest(omap-extcon_id_dev, palmas-usb, USB-HOST,
 + omap-id_nb);
   dev-dma_mask   = dwc3_omap_dma_mask;
  
 +

Thanks,
Chanwoo Choi

--
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] USB: xhci: rename ambiguous named XHCI_NEC_HOST to XHCI_NEC_SHOW_FW

2013-05-30 Thread Alexander Holler
Am 30.05.2013 20:20, schrieb Sarah Sharp:
 On Thu, May 30, 2013 at 06:16:34AM +0200, Alexander Holler wrote:

 The point is that unless Renesas tells us how to know if a host
 supports the firmware fetch vendor command, we should stop issuing that
 command to the host.  I think my contacts at Renesas have moved onto
 other jobs, but maybe you know someone there?

No, sorry.

 I just dont't like the name, because e.g. in my case, it made me to have
 a deeper look at what that quirk does, because I had the hope it might
 solve a problem. Therefor I think it's useful to rename it.
 
 I understand.  If the command worked fine on all Renesas hosts, I would
 be fine with renaming it and printing it with dev_info instead of
 xhci_dbg.  However, since some Renesas hosts don't support the command,
 I'm concerned we may be forced to rip out the code.  If you don't do it,
 I will have to.

I don't want to do it as it works fine on my Renesas upd720202.

Instead of removing this feature completely, you could just use the
first patch and forget the second one. So only NEC hosts will still have
it and I assume there will not any new appear, as they are now Renesas.

Another possibility would be to use the device ID too (for Renesas
devices), mine has 0x0015.

The reason why I really like this feature is that there were already 2-3
firmware updates and since USB 3.0 still isn't that widely used, I
assume more will appear if more people actually start using such devices.

Regards,

Alexander Holler
--
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 -next] usb: fusbh200-hcd: fix error handling in fusbh200_hcd_fusbh200_probe()

2013-05-30 Thread 陳元馨

-Original Message-
From: Wei Yongjun [mailto:weiyj...@gmail.com] 
Sent: Tuesday, May 21, 2013 10:41 AM
To: gre...@linuxfoundation.org; Wendy Yuan-Hsin Chen(陳元馨)
Cc: yongjun_...@trendmicro.com.cn; linux-usb@vger.kernel.org
Subject: [PATCH -next] usb: fusbh200-hcd: fix error handling in 
fusbh200_hcd_fusbh200_probe()

From: Wei Yongjun yongjun_...@trendmicro.com.cn

Fix to release all resources when fusbh200_setup() fail instead of only return 
error.

Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn

Acked-by: Yuan-Hsin Chen yhc...@faraday-tech.com

---
 drivers/usb/host/fusbh200-hcd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/fusbh200-hcd.c b/drivers/usb/host/fusbh200-hcd.c 
index 79ce799..7f3293b 100644
--- a/drivers/usb/host/fusbh200-hcd.c
+++ b/drivers/usb/host/fusbh200-hcd.c
@@ -5864,7 +5864,7 @@ static int fusbh200_hcd_fusbh200_probe(struct 
platform_device *pdev)
 
retval = fusbh200_setup(hcd);
if (retval)
-   return retval;
+   goto fail_add_hcd;
 
fusbh200_init(fusbh200);
 


* Confidentiality Notice 
This electronic message and any attachments may contain
confidential and legally privileged information or
information which is otherwise protected from disclosure.
If you are not the intended recipient,please do not disclose
the contents, either in whole or in part, to anyone,and
immediately delete the message and any attachments from
your computer system and destroy all hard copies.
Thank you for your cooperation.
***



Re: MUSB multiplatform work?

2013-05-30 Thread Felipe Balbi
On Thu, May 30, 2013 at 01:54:49PM -0700, Tony Lindgren wrote:
 * Tony Lindgren t...@atomide.com [130530 13:25]:
  
  TUSB we can make depend on ARMv7, the only implementation we have
  is for omap2420, which is ARMv6. This should solve the issue for
  ARMv7 multiplatform builds for now.
 
 Sorry mean depend on !ARMv7. But thinking about it more, that does
 not make much sense as it would break things for omap2plus_defconfig
 at least which is multiplatform v6 and v7. For now TUSB can be made
 to depend on MACH_NOKIA_N8X0. I doubt that anybody is using the add
 on cards for H4 boards any longer..

could also be made to depend on BROKEN. I don't think anyone *really*
cares about that glue layer other than the very few in the world who
still like the nostalgic feeling of booting current linux releases on
n8x0 devices.

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH] usb: dwc3: Addition of dr_mode dt property.

2013-05-30 Thread Felipe Balbi
Hi,

On Thu, May 30, 2013 at 02:53:10PM -0500, Dan Murphy wrote:
  @@ -520,9 +520,23 @@ static int dwc3_probe(struct platform_device *pdev)
  mode = DWC3_MODE_HOST;
  else if (IS_ENABLED(CONFIG_USB_DWC3_GADGET))
  mode = DWC3_MODE_DEVICE;
  -   else
  -   mode = DWC3_MODE_DRD;
  -
  +   else {
  +   if (of_property_read_string(node, dr_mode, dr_mode)) {
 This will not execute if the either CONFIG options are set and then
 the DT property is not even honored
 Did you test this with multiple CONFIG options?
 There seems to be a conflict between CONFIGs and runtime operation.

this is alright. We still want to honor the users who chose to compile
the driver for gadget-only. In that case, there is no choice to be made.

Now, if you build the driver in its entirety (meaning, DRD), you can
still choose in runtime if you want the driver to behave as host-only or
gadget-only.

Picture a situation where you have a single SoC with multiple instances
of this IP and you want to make sure that e.g. ports 1-3 are host-only,
port 4 is peripheral-only and port 5 is DRD.

  +   dev_warn(dev, Missing dr_mode so assuming 
  DWC3_MODE_DRD\n);
 If dr_mode is an optional parameter why would the dev_warn say it is missing?
 Do we even want to warn here?

Yes. Definitely yes. That would mean a less than optimal DTS file.
Still, for the sake of sensible defaults, we can still choose to work on
DRD mode, assuming full capabilities in case user didn't write proper
DTS, still user should be notified about it.

  +   mode = DWC3_MODE_DRD;
  +   } else {
  +   if (strcmp(dr_mode, host) == 0)
  +   mode = DWC3_MODE_HOST;
 What if CONFIG_USB_DWC3_HOST is not enabled?

No issues, this will only execute if DRD is enabled, which means both
Host and Device are built in the final binary.

  +   else if (strcmp(dr_mode, gadget) == 0)
  +   mode = DWC3_MODE_DEVICE;
 What if CONFIG_USB_DWC3_GADGET is not enabled?

see above.

-- 
balbi


signature.asc
Description: Digital signature