[LEDE-DEV] [OpenWrt-Devel] [PATCH 0/4] Gemini forward-port to kernel v4.14
Roman Yeryomin
roman at advem.lv
Mon Apr 16 15:34:16 PDT 2018
On 2018-04-15 20:22, Roman Yeryomin wrote:
> On 2018-04-14 20:36, Hans Ulli Kroll wrote:
>> Hi Roman
>>
>> On Tue, 10 Apr 2018, Linus Walleij wrote:
>>
>>> On Mon, Apr 9, 2018 at 12:38 PM, Roman Yeryomin <roman at advem.lv>
>>> wrote:
>>>
>>> > I have tested them quickly yesterday on nas4220b board. Although I've
>>> > managed to boot it (had to fix rootfs image) ethernet and usb didn't work.
>>> > And I didn't check anything else.
>>> > I didn't yet look at the code but before I dive there I have a question: did
>>> > you have a chance to test it yourself on any of the boards? And if yes,
>>> > which one?
>>>
>>
>> I think the fotg controller gets stalled after a port reset.
>> Please check attached (untested) patch for openwrt.
>> I can test this next week by myself
>>
>> +diff --git a/drivers/usb/host/fotg210-hcd.c
>> b/drivers/usb/host/fotg210-hcd.c
>> +index 2acc51b0be5a..bc9efb49adc7 100644
>> +--- a/drivers/usb/host/fotg210-hcd.c
>> ++++ b/drivers/usb/host/fotg210-hcd.c
>> +@@ -1653,6 +1653,10 @@ static int fotg210_hub_control(struct usb_hcd
>> *hcd, u16 typeReq, u16 wValue,
>> + /* see what we found out */
>> + temp = check_reset_complete(fotg210, wIndex, status_reg,
>> + fotg210_readl(fotg210, status_reg));
>> ++
>> ++ /* restart schedule */
>> ++ fotg210->command |= CMD_RUN;
>> ++ fotg210_writel(fotg210, fotg210->command,
>> &fotg210->regs->command);
>> + }
>> +
>> + if (!(temp & (PORT_RESUME|PORT_RESET))) {
>> +--
>> +2.16.2
>> +
>
> Didn't work for me :(
>
I've found why it didn't work:
[ 5.845199] Warning! fotg210_hcd should always be loaded before
uhci_hcd and ohci_hcd, not after
After fixing kernel config and applying your patch it works.
So your patch works and is needed indeed.
But there are other problems.
Second USB (USB1) port cannot be initialized and only USB0 is working:
[ 5.843831] fotg210_hcd: FOTG210 Host Controller (EHCI) Driver
[ 5.844298] pinctrl-gemini 40000000.syscon:pinctrl: ACTIVATE function
"usb" with group "usbgrp"
[ 5.845067] fotg210-hcd 68000000.usb: initialized Gemini PHY
[ 5.845095] fotg210-hcd 68000000.usb: Faraday USB2.0 Host Controller
[ 5.845176] fotg210-hcd 68000000.usb: new USB bus registered,
assigned bus number 1
[ 5.845696] fotg210-hcd 68000000.usb: irq 29, io mem 0x68000000
[ 5.877212] fotg210-hcd 68000000.usb: USB 2.0 started, EHCI 1.00
[ 5.880314] hub 1-0:1.0: USB hub found
[ 5.880546] hub 1-0:1.0: 1 port detected
[ 5.904768] pinctrl-gemini 40000000.syscon:pinctrl: pin T6 USB GNDA
U20 already requested by 68000000.usb; cannot claim for 69000000.usb
[ 5.904807] pinctrl-gemini 40000000.syscon:pinctrl: pin-305
(69000000.usb) status -22
[ 5.904845] pinctrl-gemini 40000000.syscon:pinctrl: could not request
pin 305 (T6 USB GNDA U20) from group usbgrp on device pinctrl-gemini
[ 5.904872] fotg210-hcd 69000000.usb: Error applying setting, reverse
things back
[ 5.904928] fotg210-hcd: probe of 69000000.usb failed with error -22
After removing pinctrl from USB1 it is initialized but then only USB1 is
working, USB0 is seen but there are no interrupts.
Didn't yet look at the code, maybe you will know where to fix right
away.
Regards,
Roman
More information about the Lede-dev
mailing list