Re: [PATCH v3] USB: mos7840: looping issue: avoid the return value overriden by looping
On 2013年04月03日 17:25, Chen Gang wrote: > inside the 'for' looping: > the return value 'rv' may override if not have a check in time. > > the next checking (outside the 'for' looping): > can not find failure which generated during the 'for' looping > > the fix is for: > let outside know about the failure, and not stop servicing the > other ports just because there is an error in another port. > > > Signed-off-by: Chen Gang > Signed-off-by: Oliver Neukum > --- Hello Greg KH: according to what you said for another patches of mine. I need test it, firstly. and then resend it without "Signed-off-by: Oliver Neukum ". is it correct ? thanks. -- Chen Gang Asianux Corporation -- 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: gadget: multi: fix error return code in rndis_do_config()
On 04/06/2013 01:39 PM, Felipe Balbi wrote: > On Sat, Apr 06, 2013 at 12:39:34PM +0800, Wei Yongjun wrote: >> From: Wei Yongjun >> >> Fix to return a negative error code from the error handling >> case instead of 0, as returned elsewhere in this function. >> >> Signed-off-by: Wei Yongjun > patch looks alright, but you need to blame which commit added this > problem. Likewise for other two patches. I found two of them is cause by recent changes: commit 59835a(usb: gadget: multi: use function framework for ACM) commit 29a664(usb: gadget: cdc2: use function framework for ACM) and the other is an old issue. So I will only resend two of them with above info added to patch description. Regards, Yongjun Wei -- 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 -next v2] usb: gadget: multi: fix error return code in rndis_do_config()
From: Wei Yongjun Fix to return a negative error code from the error handling case instead of 0, as returned elsewhere in this function. Introduced by commit 59835a(usb: gadget: multi: use function framework for ACM.) Signed-off-by: Wei Yongjun --- v1 -> v2: add commit which added this problem. --- drivers/usb/gadget/multi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c index a74ebef..4a45e80 100644 --- a/drivers/usb/gadget/multi.c +++ b/drivers/usb/gadget/multi.c @@ -157,8 +157,10 @@ static __init int rndis_do_config(struct usb_configuration *c) return ret; f_acm_rndis = usb_get_function(fi_acm); - if (IS_ERR(f_acm_rndis)) + if (IS_ERR(f_acm_rndis)) { + ret = PTR_ERR(f_acm_rndis); goto err_func_acm; + } ret = usb_add_function(c, f_acm_rndis); if (ret) -- 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 -next v2] usb: gadget: cdc2: fix error return code in cdc_do_config()
From: Wei Yongjun Fix to return a negative error code from the error handling case instead of 0, as returned elsewhere in this function. Introduced by commit 29a664(usb: gadget: cdc2: use function framework for ACM) Signed-off-by: Wei Yongjun --- v1 -> v2: add commit which added this problem. --- drivers/usb/gadget/cdc2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/cdc2.c b/drivers/usb/gadget/cdc2.c index c6ee6f1..2c52551 100644 --- a/drivers/usb/gadget/cdc2.c +++ b/drivers/usb/gadget/cdc2.c @@ -129,8 +129,10 @@ static int __init cdc_do_config(struct usb_configuration *c) return PTR_ERR(fi_serial); f_acm = usb_get_function(fi_serial); - if (IS_ERR(f_acm)) + if (IS_ERR(f_acm)) { + status = PTR_ERR(f_acm); goto err_func_acm; + } status = usb_add_function(c, f_acm); if (status) -- 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/5 v3] USB: regroup all depends on USB within an if USB block
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Arnd Bergmann wrote: > On Thursday 04 April 2013, Felipe Balbi wrote: >> On Thu, Apr 04, 2013 at 01:42:18PM -0400, Alan Stern wrote: > diff --git a/drivers/usb/misc/sisusbvga/Kconfig > b/drivers/usb/misc/sisusbvga/Kconfig > index 30ea7ca..0d03a52 100644 > --- a/drivers/usb/misc/sisusbvga/Kconfig > +++ b/drivers/usb/misc/sisusbvga/Kconfig > @@ -1,7 +1,7 @@ > > config USB_SISUSBVGA > tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)" > - depends on USB && (USB_MUSB_HDRC || USB_EHCI_HCD) > + depends on (USB_MUSB_HDRC || USB_EHCI_HCD) is it just me or would everybody agree that depending on MUSB or EHCI here is wrong ? >>> That line certainly looks like it could be removed entirely. Perhaps >>> the original author can enlighten us. >>> >>> In any case, it's not relevant to the purpose of this patch set. >> right :-) >> > > Originally it had just "depends on USB_EHCI_HCD" and the text mentions that > it requires USB 2.0, so it probably comes from a time where EHCI was the > only high speed capable USB HCD. > > Arnd > That's exactly right. Thomas - -- Thomas Winischhofer thomas AT winischhofer DOT net -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.7 (Darwin) iD8DBQFRX/A3zydIRAktyUcRAo+YAJ9bmOrODMsIiBessMNnrmYJLYvmhwCgyABL z9A6pb1sab2VwnI8i5v3bCI= =HNat -END PGP SIGNATURE- -- 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 v3] USB: mos7840: looping issue: avoid the return value overriden by looping
On 2013年04月06日 15:34, Chen Gang wrote: > On 2013年04月03日 17:25, Chen Gang wrote: >> inside the 'for' looping: >> the return value 'rv' may override if not have a check in time. >> >> the next checking (outside the 'for' looping): >> can not find failure which generated during the 'for' looping >> >> the fix is for: >> let outside know about the failure, and not stop servicing the >> other ports just because there is an error in another port. >> >> >> Signed-off-by: Chen Gang >> Signed-off-by: Oliver Neukum >> --- > > Hello Greg KH: > > according to what you said for another patches of mine. > > I need test it, firstly. > and then resend it without "Signed-off-by: Oliver Neukum ". > > is it correct ? > > > thanks. > excuse me, I have no related hard ware, and seems not easy to virtualizing. so I think of an idea to test it, please help check whether it is OK. our demands: our test goal is to check what we modified whether can work correctly. it only has effect within the function mos7840_interrupt_callback. it only has effect with the work flow procedure. so what we should do is test mos7840_interrupt_callback work flow procedure with our modification. plan to do: will make a driver which will call function mos7840_interrupt_callback. rewrite all sub functions which mos7840_interrupt_callback will call. such as mos7840_get_port_private, mos7840_get_reg, and usb_submit_urb. provide related data to cover all related work flow procedures. a. let all things succeed (normal work flow). b. let a failure occures at the first of the looping. c. let a failure occures in the middle of the looping. d. let a failure occures at the last of the looping. e. let 2 failures occure during the looping. f. let 3 failures occure during the looping (one at the first). g. let 3 failures occure during the looping (one at the end). welcome any suggestions or completions. thanks. By the way: in this patch, I think "Signed-off-by: Oliver Neukum " is ok. the reason is he gives necessary design information to direct implementaion. -- Chen Gang Asianux Corporation -- 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 v2] usb: gadget: multi: fix error return code in rndis_do_config()
On Sat, Apr 06 2013, Wei Yongjun wrote: > From: Wei Yongjun > > Fix to return a negative error code from the error handling case instead > of 0, as returned elsewhere in this function. > Introduced by commit 59835a(usb: gadget: multi: use function framework for > ACM.) > > Signed-off-by: Wei Yongjun Acked-by: Michal Nazarewicz > --- > v1 -> v2: add commit which added this problem. > --- > drivers/usb/gadget/multi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c > index a74ebef..4a45e80 100644 > --- a/drivers/usb/gadget/multi.c > +++ b/drivers/usb/gadget/multi.c > @@ -157,8 +157,10 @@ static __init int rndis_do_config(struct > usb_configuration *c) > return ret; > > f_acm_rndis = usb_get_function(fi_acm); > - if (IS_ERR(f_acm_rndis)) > + if (IS_ERR(f_acm_rndis)) { > + ret = PTR_ERR(f_acm_rndis); > goto err_func_acm; > + } > > ret = usb_add_function(c, f_acm_rndis); > if (ret) > > -- > 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 -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał “mina86” Nazarewicz(o o) ooo +--ooO--(_)--Ooo-- pgpuD8ZzetSJr.pgp Description: PGP signature
Re: [RFC PATCH 14/41] staging: dwc2: simplify debug output in dwc_hc_init
Hello. On 06-04-2013 1:26, Matthijs Kooijman wrote: Before, the value of the hcchar register was shifted and masked and then the debug output extracted the individual values out of the complete hcchar register again. This commit makes the debug prints directly use the original values instead. Signed-off-by: Matthijs Kooijman --- drivers/staging/dwc2/core.c | 29 - 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/drivers/staging/dwc2/core.c b/drivers/staging/dwc2/core.c index e64eb95..4068dd5 100644 --- a/drivers/staging/dwc2/core.c +++ b/drivers/staging/dwc2/core.c @@ -881,24 +881,13 @@ void dwc2_hc_init(struct dwc2_hsotg *hsotg, struct dwc2_host_chan *chan) [...] - dev_vdbg(hsotg->dev, " Multi Cnt: %d\n", -hcchar >> HCCHAR_MULTICNT_SHIFT & -HCCHAR_MULTICNT_MASK >> HCCHAR_MULTICNT_SHIFT); + dev_vdbg(hsotg->dev, " Dev Addr: %d\n", chan->dev_addr); + dev_vdbg(hsotg->dev, " Ep Num: %d\n", chan->ep_num); + dev_vdbg(hsotg->dev, " Is In: %d\n", chan->ep_is_in); + dev_vdbg(hsotg->dev, " Is Low Speed: %d\n", chan->speed == USB_SPEED_LOW); + dev_vdbg(hsotg->dev, " Ep Type: %d\n", chan->ep_type); + dev_vdbg(hsotg->dev, " Max Pkt: %d\n", chan->max_packet); + dev_vdbg(hsotg->dev, " Multi Cnt: %d\n", 0); So it's always 0? Why use "%d" then at all? Or why even print it? 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: [RFC PATCH 27/41] staging: dwc2: add dwc2_disable_common_interrupts function
Hello. On 06-04-2013 1:27, Matthijs Kooijman wrote: This function disables all "common interrupts", i.e., those that are handled by the common interrupt handler. Signed-off-by: Matthijs Kooijman [...] diff --git a/drivers/staging/dwc2/core.c b/drivers/staging/dwc2/core.c index 1cadb93..a3b8556 100644 --- a/drivers/staging/dwc2/core.c +++ b/drivers/staging/dwc2/core.c @@ -81,6 +81,20 @@ static void dwc2_enable_common_interrupts(struct dwc2_hsotg *hsotg) writel(intmsk, hsotg->regs + GINTMSK); } +/** + * dwc2_disable_common_interrupts() - Disables the common interrupts + * + * @hsotg: Programming view of DWC_otg controller + */ +void dwc2_disable_common_interrupts(struct dwc2_hsotg *hsotg) +{ + u32 intmsk = readl(hsotg->regs + GINTMSK); + + /* Disable common interrupts without disturbing host mode interrupts */ + intmsk &= ~(GINTMSK_COMMON); Why () here? GINTMSK_COMMON already includes (). [...] diff --git a/drivers/staging/dwc2/core.h b/drivers/staging/dwc2/core.h index 2817b60..0fa479e 100644 --- a/drivers/staging/dwc2/core.h +++ b/drivers/staging/dwc2/core.h [...] @@ -751,4 +752,9 @@ extern void dwc2_dump_global_registers(struct dwc2_hsotg *hsotg); */ extern u16 dwc2_get_otg_version(struct dwc2_hsotg *hsotg); +#define GINTMSK_COMMON (GINTSTS_WKUPINT | GINTSTS_SESSREQINT | \ +GINTSTS_CONIDSTSCHNG | GINTSTS_OTGINT | \ +GINTSTS_MODEMIS | GINTSTS_DISCONNINT | \ +GINTSTS_USBSUSP | GINTSTS_RESTOREDONE) + #endif /* __DWC2_CORE_H__ */ 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: [RFC PATCH 28/41] staging: dwc2: introduce GINTMSK_HOST macro
Hello. On 06-04-2013 1:27, Matthijs Kooijman wrote: This simply defines a list of interrupts handled by the the host interrupt handler. Signed-off-by: Matthijs Kooijman [...] diff --git a/drivers/staging/dwc2/core.c b/drivers/staging/dwc2/core.c index a3b8556..ab6844c 100644 --- a/drivers/staging/dwc2/core.c +++ b/drivers/staging/dwc2/core.c @@ -480,9 +480,7 @@ void dwc2_disable_host_interrupts(struct dwc2_hsotg *hsotg) u32 intmsk = readl(hsotg->regs + GINTMSK); /* Disable host mode interrupts without disturbing common interrupts */ - intmsk &= ~(GINTSTS_SOF | GINTSTS_PRTINT | GINTSTS_HCHINT | - GINTSTS_PTXFEMP | GINTSTS_NPTXFEMP | GINTSTS_RXFLVL | - GINTSTS_I2CINT); + intmsk &= ~(GINTMSK_HOST); Unneeded () again -- GINTMSK_HOST already includes them. [...] diff --git a/drivers/staging/dwc2/core.h b/drivers/staging/dwc2/core.h index 0fa479e..aed18e1 100644 --- a/drivers/staging/dwc2/core.h +++ b/drivers/staging/dwc2/core.h @@ -757,4 +757,8 @@ extern u16 dwc2_get_otg_version(struct dwc2_hsotg *hsotg); GINTSTS_MODEMIS | GINTSTS_DISCONNINT | \ GINTSTS_USBSUSP | GINTSTS_RESTOREDONE) +#define GINTMSK_HOST (GINTSTS_SOF | GINTSTS_RXFLVL | GINTSTS_NPTXFEMP | \ +GINTSTS_I2CINT | GINTSTS_PRTINT | GINTSTS_HCHINT | \ +GINTSTS_PTXFEMP) + #endif /* __DWC2_CORE_H__ */ 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: [RFC PATCH 36/41] staging: dwc2: Make dwc2_set_uninitialized more specific
On 06.04.2013 1:27, Matthijs Kooijman wrote: Before, it was a function that would set all members of a given struct containing only int members to -1. Now, it is renamed to dwc_set_all_params and it works only on the dwc2_core_params struct. This makes sure that all of the slightly dubious casting and assumptions happen inside the function instead of by the caller. Signed-off-by: Matthijs Kooijman [...] diff --git a/drivers/staging/dwc2/core.h b/drivers/staging/dwc2/core.h index e9acbf1..a60de0f 100644 --- a/drivers/staging/dwc2/core.h +++ b/drivers/staging/dwc2/core.h @@ -193,6 +193,8 @@ enum dwc2_lx_state { * default described above. */ struct dwc2_core_params { + /* Don't add any non-int members here, this will break +* dwc2_set_all_params! */ The preferred style of multi-line comments is like your comment below. diff --git a/drivers/staging/dwc2/hcd.c b/drivers/staging/dwc2/hcd.c index 409e5e5..747e787 100644 --- a/drivers/staging/dwc2/hcd.c +++ b/drivers/staging/dwc2/hcd.c @@ -2673,8 +2673,15 @@ static void dwc2_hcd_release(struct dwc2_hsotg *hsotg) dwc2_hcd_free(hsotg); } -static void dwc2_set_uninitialized(int *p, int size) +/* + * Sets all parameters to the given value. + * + * Assumes that the dwc2_core_params struct contains only integers. + */ +void dwc2_set_all_params(struct dwc2_core_params *params, int value) [...] 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
IMX23 usb instability on 3.9-rc5
Hello, I am testing a usb key connected on a IMX23-Olinuxino board. The kernel panics at heavy usb trafic. This was build with the mxs defconfig This happens everytime with "dd if=/dev/sda of=/dev/null bs=4k". The messages of the failure varies a lot from run to run. I tested also on kernel version 3.7.10 and the results are the same. Please let me know if you need any more details. Here its the panic messages: # dd if=/dev/sda of=/dev/null bs=4k [ 83.49] Unable to handle kernel paging request at virtual address be7a170c [ 83.49] pgd = c2b54000 [ 83.49] [be7a170c] *pgd= [ 83.49] Internal error: Oops: 8005 [#1] ARM [ 83.49] Modules linked in: [ 83.49] CPU: 0Not tainted (3.9.0-rc5-9-ge04a3b9 #4) [ 83.49] PC is at 0xbe7a170c [ 83.49] LR is at new_slab+0x274/0x2c4 [ 83.49] pc : []lr : []psr: 6093 [ 83.49] sp : c2bc9c68 ip : c3345000 fp : 0020 [ 83.49] r10: r9 : 6013 r8 : c111f880 [ 83.49] r7 : c3345000 r6 : c3344fc0 r5 : c3344000 r4 : c3401b80 [ 83.49] r3 : r2 : 0040 r1 : c3344fc0 r0 : c3401b80 [ 83.49] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user [ 83.49] Control: 0005317f Table: 42b54000 DAC: 0015 [ 83.49] Process dd (pid: 112, stack limit = 0xc2bc81b8) [ 83.49] Stack: (0xc2bc9c68 to 0xc2bca000) [ 83.49] 9c60: c113f300 c3401b80 c34005c0 8050 c0401cec [ 83.49] 9c80: 0001 c29b4588 c00e8064 c29b4588 c2bced80 0001 00400040 [ 83.49] 9ca0: c0221334 c29b4588 c2bced80 c0221268 c3401b80 8050 [ 83.49] 9cc0: c00e8064 c10dd220 000ec6ff 0020 c00ba998 c3401b80 8050 [ 83.49] 9ce0: 0001 1000 0001 c10dd220 c00e8064 [ 83.49] 9d00: c00e8a34 0001 c10dd220 0020 c10dd220 0001 [ 83.49] 9d20: c00e8ad8 c10dd220 c10dd220 0020 c00e8c28 c3005104 c00eb51c [ 83.49] 9d40: c3343fc0 c3005114 c00889d0 c3005114 1d40 c3004ff0 000ec6ff [ 83.49] 9d60: c3005108 c00ee1ec c3005114 c3005104 c3005114 c3005104 c3005114 c0406cc0 [ 83.49] 9d80: c10dd220 c0088a4c 6013 c3005104 0004 0020 c10dd220 0001 [ 83.49] 9da0: 000ec6ff 0020 c0091754 0001 c00915f4 c00569fc [ 83.49] 9dc0: 0001 c2a6d1c0 91827364 c2a6dee0 c2a6dee0 c2bc9dd8 c2bc9dd8 [ 83.49] 9de0: c10dc994 c10dd254 1d1c c10dc1a0 1d1c c3005104 c2a6d1c0 [ 83.49] 9e00: 1d1b 01d1c000 c0091a28 0020 c3005104 c2a6d1c0 c0089d1c [ 83.49] 9e20: 1d1c 0001 c2952000 c2935400 01d1c000 1000 [ 83.49] 9e40: c2bc9f40 000cc081 c2a6d248 01d1b000 [ 83.49] 9e60: 01d1c000 c2bc9ef8 c3004ff0 1d1d 0001 0002 [ 83.49] 9e80: 1000 01421008 c2a6d1c0 1000 c2bc9f80 [ 83.49] 9ea0: c2b05d80 01d1c000 01421008 c00bf214 01d1c000 [ 83.49] 9ec0: 0001 c2a6d1c0 [ 83.49] 9ee0: c2b05d80 01d1c000 [ 83.49] 9f00: 1000 1000 [ 83.49] 9f20: [ 83.49] 9f40: 01421008 1000 c2a6d1c0 1000 c2a6d1c0 01421008 c2bc9f80 c00bf934 [ 83.49] 9f60: c2a6d1c0 01421008 c2a6d1c0 01421008 1000 01d1c000 c00bfbb4 [ 83.49] 9f80: 01d1c000 1000 000ac968 01421008 0003 c000e268 [ 83.49] 9fa0: c2bc8000 c000e0c0 000ac968 01421008 1000 [ 83.49] 9fc0: 000ac968 01421008 0003 1000 01421008 1000 01421008 [ 83.49] 9fe0: 1000 bed23ac8 e0dc b6f7e97c 6010 [ 83.49] [] (new_slab+0x274/0x2c4) from [] (__slab_alloc.constprop.44+0x394/0x504) [ 83.49] [] (__slab_alloc.constprop.44+0x394/0x504) from [] (kmem_cache_alloc+0x54/0x154) [ 83.49] [] (kmem_cache_alloc+0x54/0x154) from [] (alloc_buffer_head+0x14/0x4c) [ 83.49] [] (alloc_buffer_head+0x14/0x4c) from [] (alloc_page_buffers+0x1c/0xac) [ 83.49] [] (alloc_page_buffers+0x1c/0xac) from [] (create_empty_buffers+0x14/0x130) [ 83.49] [] (create_empty_buffers+0x14/0x130) from [] (create_page_buffers+0x34/0x4c) [ 83.49] [] (create_page_buffers+0x34/0x4c) from [] (block_read_full_page+0x28/0x348) [ 83.49] [] (block_read_full_page+0x28/0x348) from [] (__do_page_cache_readahead+0x1c0/0x218) [ 83.49] [] (__do_page_cache_readahead+0x1c0/0x218) from [] (ra_submit+0x20/0x24) [ 83.49] [] (ra_submit+0x20/0x24) from [] (generic_file
Re: IMX23 usb instability on 3.9-rc5
Alexandre, On Sat, Apr 6, 2013 at 4:39 PM, Alexandre Pereira da Silva wrote: > Hello, > > I am testing a usb key connected on a IMX23-Olinuxino board. The > kernel panics at heavy usb trafic. This was build with the mxs > defconfig > > This happens everytime with "dd if=/dev/sda of=/dev/null bs=4k". The > messages of the failure varies a lot from run to run. Maybe bad DDR initialization? Are using U-boot or bootlets to setup the DDR? What is your DDR frequency: 133 or 96MHz? I saw some posts in the olimex forum that people had to run it at 96MHz to get stable operation. -- 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