All of lore.kernel.org
 help / color / mirror / Atom feed
* [BUG] usb/at91: usb hub does not work
@ 2015-06-11  9:42 Jiří Prchal
  2015-06-11 13:53 ` Alan Stern
  0 siblings, 1 reply; 7+ messages in thread
From: Jiří Prchal @ 2015-06-11  9:42 UTC (permalink / raw)
  To: linux-arm-kernel

Hi all,
I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
In .13 it works fine but in .14 it repeats this message:
[   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
and devices connected to usb through hub doesn't appear at all.

Here is dmesg | grep usb of .14:
[    3.220000] usbcore: registered new interface driver usbfs
[    3.220000] usbcore: registered new interface driver hub
[    3.220000] usbcore: registered new device driver usb
[    4.630000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    4.640000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.650000] usb usb1: Product: EHCI Host Controller
[    4.650000] usb usb1: Manufacturer: Linux 3.18.14_cpm9g25 ehci_hcd
[    4.660000] usb usb1: SerialNumber: 700000.ehci
[    4.770000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    4.780000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.780000] usb usb2: Product: OHCI Host Controller
[    4.790000] usb usb2: Manufacturer: Linux 3.18.14_cpm9g25 ohci_hcd
[    4.800000] usb usb2: SerialNumber: at91
[    4.840000] usbcore: registered new interface driver cdc_acm
[    4.850000] usbcore: registered new interface driver usb-storage
[    4.860000] atmel_usba_udc 500000.gadget: MMIO registers at 0xf803c000 mapped at c8888000
[    4.870000] atmel_usba_udc 500000.gadget: FIFO at 0x00500000 mapped at c8900000
[    4.890000] usb0: HOST MAC f2:a5:c3:38:f9:a3
[    4.900000] usb0: MAC e2:fb:4b:4a:b7:97
[    5.640000] usb 2-3: new full-speed USB device number 4 using at91_ohci
[    7.760000] usb 2-3: new full-speed USB device number 12 using at91_ohci
[   10.780000] usb 2-3: new full-speed USB device number 24 using at91_ohci
[   12.360000] usb 2-3: new full-speed USB device number 30 using at91_ohci
[   13.940000] usb 2-3: new full-speed USB device number 36 using at91_ohci
[   15.040000] usb 2-3: new full-speed USB device number 40 using at91_ohci
[   17.580000] usb 2-3: new full-speed USB device number 50 using at91_ohci
...

and here of .13:
[    3.200000] usbcore: registered new interface driver usbfs
[    3.210000] usbcore: registered new interface driver hub
[    3.210000] usbcore: registered new device driver usb
[    4.630000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    4.640000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.650000] usb usb1: Product: EHCI Host Controller
[    4.650000] usb usb1: Manufacturer: Linux 3.18.13_cpm9g25 ehci_hcd
[    4.660000] usb usb1: SerialNumber: 700000.ehci
[    4.770000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    4.780000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.780000] usb usb2: Product: OHCI Host Controller
[    4.790000] usb usb2: Manufacturer: Linux 3.18.13_cpm9g25 ohci_hcd
[    4.800000] usb usb2: SerialNumber: at91
[    4.840000] usbcore: registered new interface driver cdc_acm
[    4.850000] usbcore: registered new interface driver usb-storage
[    4.860000] atmel_usba_udc 500000.gadget: MMIO registers at 0xf803c000 mapped at c8888000
[    4.870000] atmel_usba_udc 500000.gadget: FIFO at 0x00500000 mapped at c8900000
[    4.890000] usb0: HOST MAC de:5f:a8:09:26:b6
[    4.900000] usb0: MAC 8a:a9:f8:36:9f:12
[    5.200000] usb 2-3: new full-speed USB device number 2 using at91_ohci
[    5.410000] usb 2-3: not running at top speed; connect to a high speed hub
[    5.420000] usb 2-3: New USB device found, idVendor=04b4, idProduct=6570
[    5.450000] usb 2-3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    5.450000] usb 2-3: Product: USB2.0 Hub

but in .14 other external noname hub on ehci works:
[   23.420000] usb 1-2: New USB device found, idVendor=04b4, idProduct=6560
[   23.420000] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   23.430000] hub 1-2:1.0: USB hub found
[   23.460000] hub 1-2:1.0: 4 ports detected

Any idea?

Thanks
Jiri

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

* [BUG] usb/at91: usb hub does not work
  2015-06-11  9:42 [BUG] usb/at91: usb hub does not work Jiří Prchal
@ 2015-06-11 13:53 ` Alan Stern
  2015-06-12  9:30   ` Jiří Prchal
  0 siblings, 1 reply; 7+ messages in thread
From: Alan Stern @ 2015-06-11 13:53 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 11 Jun 2015, Ji?? Prchal wrote:

> Hi all,
> I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
> In .13 it works fine but in .14 it repeats this message:
> [   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
> and devices connected to usb through hub doesn't appear at all.

> Any idea?

Try using git bisect to find the commit which caused this problem to 
start.

Alan Stern

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

* [BUG] usb/at91: usb hub does not work
  2015-06-11 13:53 ` Alan Stern
@ 2015-06-12  9:30   ` Jiří Prchal
  2015-06-13 11:09     ` Boris Brezillon
  0 siblings, 1 reply; 7+ messages in thread
From: Jiří Prchal @ 2015-06-12  9:30 UTC (permalink / raw)
  To: linux-arm-kernel



On 11.6.2015 15:53, Alan Stern wrote:
> On Thu, 11 Jun 2015, Ji?? Prchal wrote:
>
>> Hi all,
>> I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
>> In .13 it works fine but in .14 it repeats this message:
>> [   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
>> and devices connected to usb through hub doesn't appear at all.
>
>> Any idea?
>
> Try using git bisect to find the commit which caused this problem to
> start.

This is result:
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[ae74ea64ccdb8b99ee2618b58020263d5b1d9b22] clk: at91: usb: propagate rate modification to the parent clk

Compilation has some warnings:
   CC      drivers/clk/at91/clk-usb.o
drivers/clk/at91/clk-usb.c:157:2: warning: initialization from incompatible pointer type [enabled by default]
drivers/clk/at91/clk-usb.c:157:2: warning: (near initialization for ?at91sam9x5_usb_ops.determine_rate?) [enabled by 
default]
drivers/clk/at91/clk-usb.c:195:2: warning: initialization from incompatible pointer type [enabled by default]
drivers/clk/at91/clk-usb.c:195:2: warning: (near initialization for ?at91sam9n12_usb_ops.determine_rate?) [enabled by 
default]

And kernel hangs up with this:
[    4.480000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.480000] ehci-atmel: EHCI Atmel driver
[    4.490000] Unable to handle kernel paging request at virtual address 1c9c3800
[    4.500000] pgd = c0004000
[    4.500000] [1c9c3800] *pgd=00000000
[    4.500000] Internal error: Oops: 805 [#1] PREEMPT ARM
[    4.500000] Modules linked in:
[    4.500000] CPU: 0 PID: 1 Comm: swapper Tainted: G        W      3.18.13_cpm9g25+ #10
[    4.500000] task: c7821b00 ti: c7828000 task.ti: c7828000
[    4.500000] PC is at at91sam9x5_clk_usb_determine_rate+0xb8/0x120
[    4.500000] LR is at at91sam9x5_clk_usb_determine_rate+0xb4/0x120
[    4.500000] pc : [<c0392f3c>]    lr : [<c0392f38>]    psr: a0000013
[    4.500000] sp : c7829d28  ip : c7829d28  fp : c7829d64
[    4.500000] r10: c7802ae0  r9 : c7806400  r8 : 02dc6c00
[    4.500000] r7 : 00000000  r6 : 00000001  r5 : ffffffff  r4 : 02dc6c00
[    4.500000] r3 : 17d78400  r2 : 1c9c3800  r1 : 14fb1800  r0 : c7802860
[    4.500000] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    4.500000] Control: 0005317f  Table: 20004000  DAC: 00000017
[    4.500000] Process swapper (pid: 1, stack limit = 0xc78281b8)
[    4.500000] Stack: (0xc7829d28 to 0xc782a000)
[    4.500000] 9d20:                   00000000 17d78400 14fb1800 17d78400 c7a26400 c7806580
[    4.500000] 9d40: c7806480 c0731fb8 c7a26400 00000026 00000000 c06a7dd0 c7829d8c c7829d68
[    4.500000] 9d60: c038d574 c0392e94 c7806480 1c9c3800 c7806580 02dc6c00 c0731fb8 c7a26400
[    4.500000] 9d80: c7829da4 c7829d90 c038ded8 c038d50c c79a5400 c79a5410 c7829dcc c7829da8
[    4.500000] 9da0: c033e620 c038de8c c033e458 c79a5410 ffffffed c06ec394 00000000 c0696f58
[    4.500000] 9dc0: c7829dec c7829dd0 c02bd9e4 c033e468 c02bd98c c79a5410 00000000 c06ec394
[    4.500000] 9de0: c7829e0c c7829df0 c02bbe80 c02bd99c c79a5410 c79a5444 c06ec394 c02bbfcc
[    4.500000] 9e00: c7829e2c c7829e10 c02bc044 c02bbdd0 c02bbfcc 00000000 c7829e30 c06ec394
[    4.500000] 9e20: c7829e54 c7829e30 c02ba428 c02bbfdc c78687ec c799b490 c06ec394 c79e4d00
[    4.500000] 9e40: 00000000 c06e4038 c7829e64 c7829e58 c02bb984 c02ba3d4 c7829e8c c7829e68
[    4.500000] 9e60: c02bb5f8 c02bb96c c05d0c60 c7829e78 c06ec394 c06cd5d8 c06cd5d8 c06ff700
[    4.500000] 9e80: c7829ea4 c7829e90 c02bca48 c02bb528 00000000 c06cd5d8 c7829eb4 c7829ea8
[    4.500000] 9ea0: c02bd840 c02bc9ac c7829ecc c7829eb8 c0696f94 c02bd7f8 00000000 c7a31dc0
[    4.500000] 9ec0: c7829f54 c7829ed0 c0008acc c0696f68 00000000 c0042664 00000000 c0034c1c
[    4.500000] 9ee0: c7ffc978 c7ffc900 c7829f0c c7829ef8 c0034c1c c0034ba4 c7ffc975 00000000
[    4.500000] 9f00: c7829f54 c7829f10 c0034e48 c06745f4 c7829f2c c060ba60 00000006 00000006
[    4.500000] 9f20: 0000007b 1aadfd66 c7829f54 00000006 c06a7dc4 c06c0df4 c06ff700 0000007b
[    4.500000] 9f40: 00000000 c06a7dd0 c7829f94 c7829f58 c0674de4 c00089c8 00000006 00000006
[    4.500000] 9f60: c06745e4 c003bb38 c7829f94 c7829f78 00000000 c04989a0 00000000 00000000
[    4.500000] 9f80: 00000000 00000000 c7829fac c7829f98 c04989b8 c0674d00 c7828000 00000000
[    4.500000] 9fa0: 00000000 c7829fb0 c0009790 c04989b0 00000000 00000000 00000000 00000000
[    4.500000] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    4.500000] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 a8210092 a39c4870
[    4.500000] [<c0392f3c>] (at91sam9x5_clk_usb_determine_rate) from [<c038d574>] (clk_calc_new_rates+0x78/0x174)
[    4.500000] [<c038d574>] (clk_calc_new_rates) from [<c038ded8>] (clk_set_rate+0x5c/0xa4)
[    4.500000] [<c038ded8>] (clk_set_rate) from [<c033e620>] (ehci_atmel_drv_probe+0x1c8/0x308)
[    4.500000] [<c033e620>] (ehci_atmel_drv_probe) from [<c02bd9e4>] (platform_drv_probe+0x58/0xa0)
[    4.500000] [<c02bd9e4>] (platform_drv_probe) from [<c02bbe80>] (driver_probe_device+0xc0/0x20c)
[    4.500000] [<c02bbe80>] (driver_probe_device) from [<c02bc044>] (__driver_attach+0x78/0x9c)
[    4.500000] [<c02bc044>] (__driver_attach) from [<c02ba428>] (bus_for_each_dev+0x64/0xa0)
[    4.500000] [<c02ba428>] (bus_for_each_dev) from [<c02bb984>] (driver_attach+0x28/0x30)
[    4.500000] [<c02bb984>] (driver_attach) from [<c02bb5f8>] (bus_add_driver+0xe0/0x1e4)
[    4.500000] [<c02bb5f8>] (bus_add_driver) from [<c02bca48>] (driver_register+0xac/0xf0)
[    4.500000] [<c02bca48>] (driver_register) from [<c02bd840>] (__platform_driver_register+0x58/0x6c)
[    4.500000] [<c02bd840>] (__platform_driver_register) from [<c0696f94>] (ehci_atmel_init+0x3c/0x58)
[    4.500000] [<c0696f94>] (ehci_atmel_init) from [<c0008acc>] (do_one_initcall+0x114/0x204)
[    4.500000] [<c0008acc>] (do_one_initcall) from [<c0674de4>] (kernel_init_freeable+0xf4/0x1bc)
[    4.500000] [<c0674de4>] (kernel_init_freeable) from [<c04989b8>] (kernel_init+0x18/0xf4)
[    4.500000] [<c04989b8>] (kernel_init) from [<c0009790>] (ret_from_fork+0x14/0x20)
[    4.500000] Code: e50b1034 e50b3038 ebffe315 e59b2008 (e5820000)
[    4.920000] ---[ end trace f24b6c88ae00fa9b ]---
[    4.920000] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    4.920000]
[    4.920000] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Jiri

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

* [BUG] usb/at91: usb hub does not work
  2015-06-12  9:30   ` Jiří Prchal
@ 2015-06-13 11:09     ` Boris Brezillon
  2015-06-13 11:13       ` Boris Brezillon
  0 siblings, 1 reply; 7+ messages in thread
From: Boris Brezillon @ 2015-06-13 11:09 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Jiri,

On Fri, 12 Jun 2015 11:30:20 +0200
Ji?? Prchal <jiri.prchal@aksignal.cz> wrote:

> 
> 
> On 11.6.2015 15:53, Alan Stern wrote:
> > On Thu, 11 Jun 2015, Ji?? Prchal wrote:
> >
> >> Hi all,
> >> I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
> >> In .13 it works fine but in .14 it repeats this message:
> >> [   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
> >> and devices connected to usb through hub doesn't appear at all.
> >
> >> Any idea?
> >
> > Try using git bisect to find the commit which caused this problem to
> > start.
> 
> This is result:
> Bisecting: 0 revisions left to test after this (roughly 0 steps)
> [ae74ea64ccdb8b99ee2618b58020263d5b1d9b22] clk: at91: usb: propagate rate modification to the parent clk


Actually when bisecting you found a bug that has been fixed before
3.18.14 was released (see this commit [1]).
This being said, the prototype mismatch fix does not seem to fix all
the mismatches (seems the ->determine_rate() has been changed in 3.19
too, and the prototype mismatch patch was a backport of a 3.19 fix).

Anyway, you'll find below a patch supposed to fix the remaining bug.
Can you try to apply it and let me know if it fixes your problem.

Best Regards,

Boris

[1]https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/drivers/clk/at91/clk-usb.c?id=76723e7ed589998384a080e29204df4659c67cf2

-- >8 --

>From 7392429d074f43ef61d41e33db63f0f5d804bdd4 Mon Sep 17 00:00:00 2001
Subject: [PATCH] clk: at91: fix determine_rate prototype (again)

Commit ae74ea64ccdb8b99ee2618b58020263d5b1d9b22 was a backport of a bug
fix applied in 4.0, but in the meantime the ->determine_rate() prototype
has changed, thus introduction a prototype mismatch bug in pre-4.0
kernels. This prototype mismatch was supposed to be fixed by commit
76723e7ed589998384a080e29204df4659c67cf2, which fix the bug on 3.19
kernels, but the ->determine_rate() has also changed between 3.18 and
3.19. Hopefully this patch will definitely fix the prototype mismatch
for 3.18.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 drivers/clk/at91/clk-usb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c
index 0283a57..d0d335d 100644
--- a/drivers/clk/at91/clk-usb.c
+++ b/drivers/clk/at91/clk-usb.c
@@ -59,7 +59,7 @@ static unsigned long
at91sam9x5_clk_usb_recalc_rate(struct clk_hw *hw, static long
at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw, unsigned long rate,
 					      unsigned long
*best_parent_rate,
-					      struct clk_hw
**best_parent_hw)
+					      struct clk
**best_parent_clk) {
 	struct clk *parent = NULL;
 	long best_rate = -EINVAL;
@@ -91,7 +91,7 @@ static long at91sam9x5_clk_usb_determine_rate(struct
clk_hw *hw, best_rate = tmp_rate;
 				best_diff = tmp_diff;
 				*best_parent_rate = tmp_parent_rate;
-				*best_parent_hw = __clk_get_hw(parent);
+				*best_parent_clk = parent;
 			}
 
 			if (!best_diff || tmp_rate < rate)
-- 
1.9.1

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

* [BUG] usb/at91: usb hub does not work
  2015-06-13 11:09     ` Boris Brezillon
@ 2015-06-13 11:13       ` Boris Brezillon
  2015-06-16  8:51         ` Jiří Prchal
  0 siblings, 1 reply; 7+ messages in thread
From: Boris Brezillon @ 2015-06-13 11:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, 13 Jun 2015 13:09:56 +0200
Boris Brezillon <boris.brezillon@free-electrons.com> wrote:

> Hi Jiri,
> 
> On Fri, 12 Jun 2015 11:30:20 +0200
> Ji?? Prchal <jiri.prchal@aksignal.cz> wrote:
> 
> > 
> > 
> > On 11.6.2015 15:53, Alan Stern wrote:
> > > On Thu, 11 Jun 2015, Ji?? Prchal wrote:
> > >
> > >> Hi all,
> > >> I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
> > >> In .13 it works fine but in .14 it repeats this message:
> > >> [   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
> > >> and devices connected to usb through hub doesn't appear at all.
> > >
> > >> Any idea?
> > >
> > > Try using git bisect to find the commit which caused this problem to
> > > start.
> > 
> > This is result:
> > Bisecting: 0 revisions left to test after this (roughly 0 steps)
> > [ae74ea64ccdb8b99ee2618b58020263d5b1d9b22] clk: at91: usb: propagate rate modification to the parent clk
> 
> 
> Actually when bisecting you found a bug that has been fixed before
> 3.18.14 was released (see this commit [1]).
> This being said, the prototype mismatch fix does not seem to fix all
> the mismatches (seems the ->determine_rate() has been changed in 3.19
> too, and the prototype mismatch patch was a backport of a 3.19 fix).
> 
> Anyway, you'll find below a patch supposed to fix the remaining bug.

I forgot to disable the line wrapper in my email client, here is the
same patch without the wrapped lines:

-- >8 --

>From 7392429d074f43ef61d41e33db63f0f5d804bdd4 Mon Sep 17 00:00:00 2001
Subject: [PATCH] clk: at91: fix determine_rate prototype (again)

Commit ae74ea64ccdb8b99ee2618b58020263d5b1d9b22 was a backport of a bug
fix applied in 4.0, but in the meantime the ->determine_rate() prototype
has changed, thus introduction a prototype mismatch bug in pre-4.0
kernels. This prototype mismatch was supposed to be fixed by commit
76723e7ed589998384a080e29204df4659c67cf2, which fix the bug on 3.19 kernels,
but the ->determine_rate() has also changed between 3.18 and 3.19.
Hopefully this patch will definitely fix the prototype mismatch for 3.18.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
---
 drivers/clk/at91/clk-usb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c
index 0283a57..d0d335d 100644
--- a/drivers/clk/at91/clk-usb.c
+++ b/drivers/clk/at91/clk-usb.c
@@ -59,7 +59,7 @@ static unsigned long at91sam9x5_clk_usb_recalc_rate(struct clk_hw *hw,
 static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
 					      unsigned long rate,
 					      unsigned long *best_parent_rate,
-					      struct clk_hw **best_parent_hw)
+					      struct clk **best_parent_clk)
 {
 	struct clk *parent = NULL;
 	long best_rate = -EINVAL;
@@ -91,7 +91,7 @@ static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
 				best_rate = tmp_rate;
 				best_diff = tmp_diff;
 				*best_parent_rate = tmp_parent_rate;
-				*best_parent_hw = __clk_get_hw(parent);
+				*best_parent_clk = parent;
 			}
 
 			if (!best_diff || tmp_rate < rate)
-- 
1.9.1

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

* [BUG] usb/at91: usb hub does not work
  2015-06-13 11:13       ` Boris Brezillon
@ 2015-06-16  8:51         ` Jiří Prchal
  2015-06-16  9:07           ` Boris Brezillon
  0 siblings, 1 reply; 7+ messages in thread
From: Jiří Prchal @ 2015-06-16  8:51 UTC (permalink / raw)
  To: linux-arm-kernel



On 13.6.2015 13:13, Boris Brezillon wrote:
> On Sat, 13 Jun 2015 13:09:56 +0200
> Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
>
>> Hi Jiri,
>>
>> On Fri, 12 Jun 2015 11:30:20 +0200
>> Ji?? Prchal <jiri.prchal@aksignal.cz> wrote:
>>
>>>
>>>
>>> On 11.6.2015 15:53, Alan Stern wrote:
>>>> On Thu, 11 Jun 2015, Ji?? Prchal wrote:
>>>>
>>>>> Hi all,
>>>>> I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
>>>>> In .13 it works fine but in .14 it repeats this message:
>>>>> [   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
>>>>> and devices connected to usb through hub doesn't appear at all.
>>>>
>>>>> Any idea?
>>>>
>>>> Try using git bisect to find the commit which caused this problem to
>>>> start.
>>>
>>> This is result:
>>> Bisecting: 0 revisions left to test after this (roughly 0 steps)
>>> [ae74ea64ccdb8b99ee2618b58020263d5b1d9b22] clk: at91: usb: propagate rate modification to the parent clk
>>
>>
>> Actually when bisecting you found a bug that has been fixed before
>> 3.18.14 was released (see this commit [1]).
>> This being said, the prototype mismatch fix does not seem to fix all
>> the mismatches (seems the ->determine_rate() has been changed in 3.19
>> too, and the prototype mismatch patch was a backport of a 3.19 fix).
>>
>> Anyway, you'll find below a patch supposed to fix the remaining bug.
>
> I forgot to disable the line wrapper in my email client, here is the
> same patch without the wrapped lines:

Aplied to 3.18.14 and it helped!
Thanks

Jiri

>
> -- >8 --
>
>  From 7392429d074f43ef61d41e33db63f0f5d804bdd4 Mon Sep 17 00:00:00 2001
> Subject: [PATCH] clk: at91: fix determine_rate prototype (again)
>
> Commit ae74ea64ccdb8b99ee2618b58020263d5b1d9b22 was a backport of a bug
> fix applied in 4.0, but in the meantime the ->determine_rate() prototype
> has changed, thus introduction a prototype mismatch bug in pre-4.0
> kernels. This prototype mismatch was supposed to be fixed by commit
> 76723e7ed589998384a080e29204df4659c67cf2, which fix the bug on 3.19 kernels,
> but the ->determine_rate() has also changed between 3.18 and 3.19.
> Hopefully this patch will definitely fix the prototype mismatch for 3.18.
>
> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
> ---
>   drivers/clk/at91/clk-usb.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/clk/at91/clk-usb.c b/drivers/clk/at91/clk-usb.c
> index 0283a57..d0d335d 100644
> --- a/drivers/clk/at91/clk-usb.c
> +++ b/drivers/clk/at91/clk-usb.c
> @@ -59,7 +59,7 @@ static unsigned long at91sam9x5_clk_usb_recalc_rate(struct clk_hw *hw,
>   static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
>   					      unsigned long rate,
>   					      unsigned long *best_parent_rate,
> -					      struct clk_hw **best_parent_hw)
> +					      struct clk **best_parent_clk)
>   {
>   	struct clk *parent = NULL;
>   	long best_rate = -EINVAL;
> @@ -91,7 +91,7 @@ static long at91sam9x5_clk_usb_determine_rate(struct clk_hw *hw,
>   				best_rate = tmp_rate;
>   				best_diff = tmp_diff;
>   				*best_parent_rate = tmp_parent_rate;
> -				*best_parent_hw = __clk_get_hw(parent);
> +				*best_parent_clk = parent;
>   			}
>
>   			if (!best_diff || tmp_rate < rate)
>

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

* [BUG] usb/at91: usb hub does not work
  2015-06-16  8:51         ` Jiří Prchal
@ 2015-06-16  9:07           ` Boris Brezillon
  0 siblings, 0 replies; 7+ messages in thread
From: Boris Brezillon @ 2015-06-16  9:07 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Jiri,

On Tue, 16 Jun 2015 10:51:55 +0200
Ji?? Prchal <jiri.prchal@aksignal.cz> wrote:

> 
> 
> On 13.6.2015 13:13, Boris Brezillon wrote:
> > On Sat, 13 Jun 2015 13:09:56 +0200
> > Boris Brezillon <boris.brezillon@free-electrons.com> wrote:
> >
> >> Hi Jiri,
> >>
> >> On Fri, 12 Jun 2015 11:30:20 +0200
> >> Ji?? Prchal <jiri.prchal@aksignal.cz> wrote:
> >>
> >>>
> >>>
> >>> On 11.6.2015 15:53, Alan Stern wrote:
> >>>> On Thu, 11 Jun 2015, Ji?? Prchal wrote:
> >>>>
> >>>>> Hi all,
> >>>>> I discovered some bug when I change kernel from 3.18.13 to 3.18.14. I have board with usb hub CY7C65632 on it.
> >>>>> In .13 it works fine but in .14 it repeats this message:
> >>>>> [   19.170000] usb 2-3: new full-speed USB device number 56 using at91_ohci
> >>>>> and devices connected to usb through hub doesn't appear at all.
> >>>>
> >>>>> Any idea?
> >>>>
> >>>> Try using git bisect to find the commit which caused this problem to
> >>>> start.
> >>>
> >>> This is result:
> >>> Bisecting: 0 revisions left to test after this (roughly 0 steps)
> >>> [ae74ea64ccdb8b99ee2618b58020263d5b1d9b22] clk: at91: usb: propagate rate modification to the parent clk
> >>
> >>
> >> Actually when bisecting you found a bug that has been fixed before
> >> 3.18.14 was released (see this commit [1]).
> >> This being said, the prototype mismatch fix does not seem to fix all
> >> the mismatches (seems the ->determine_rate() has been changed in 3.19
> >> too, and the prototype mismatch patch was a backport of a 3.19 fix).
> >>
> >> Anyway, you'll find below a patch supposed to fix the remaining bug.
> >
> > I forgot to disable the line wrapper in my email client, here is the
> > same patch without the wrapped lines:
> 
> Aplied to 3.18.14 and it helped!


Thanks for testing, I'll send this patch to Sacha and the stable ML.

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

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

end of thread, other threads:[~2015-06-16  9:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-11  9:42 [BUG] usb/at91: usb hub does not work Jiří Prchal
2015-06-11 13:53 ` Alan Stern
2015-06-12  9:30   ` Jiří Prchal
2015-06-13 11:09     ` Boris Brezillon
2015-06-13 11:13       ` Boris Brezillon
2015-06-16  8:51         ` Jiří Prchal
2015-06-16  9:07           ` Boris Brezillon

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