RE: Regression caused by: usb: add a flag to skip PHY initialization to struct usb_hcd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
> >>> causes a regression for me on my SolidRun Hummingboard (NXP i.MX6 DL
> >>> SoC with chipidea controller).
> >>>
> >>> Example:
> >>> -- Cold boot of system.
> >>> -- Plug in USB memory stick --> Attached OK.
> >>> -- Mount disk --> OK, "ls" works
> >>> -- Unmount disk --> OK
> >>> -- Unplug USB stick --> Nothing happens. "udevadm monitor" see no events.
> >>> -- Plug in/unplug stick again --> Still nothing.
> >>> -- Plug in stick and try mounting --> Somehow causes both detach and
> >>> attach
> >>>       of the stick (mounting fails but mounting again now works).
> >>>
> >>> -- All tested USB devices are working in a similar way. I.e first
> >>> attach
> >>>       after boot works and then trouble starts.
> >>> -- Tested using default device tree from kernel tree
> >>>       (arch/arm/boot/dts/imx6dl-hummingboard.dts).
> >>>
> >>> Please ask if you think I can help in any way to track down the issue.
> >>>
> >> Hi Mats,
> >>
> >> I have tested the latest usb-next tree, the hot plug works at my imx6sx-sdb board.
> >> Would you please check the value of hcd->skip_phy_initialization at the end of
> function host_start?
> > hcd->skip_phy_initialization=1
> >
> > BR // Mats
> >
> And this is what the "decompiled" device tree entry for the USB controller and phy
> look like:
> 
>              usb@2184200 {
>                  compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
>                  reg = <0x2184200 0x200>;
>                  interrupts = <0x0 0x28 0x4>;
>                  clocks = <0x4 0xa2>;
>                  fsl,usbphy = <0x2c>;
>                  fsl,usbmisc = <0x29 0x1>;
>                  dr_mode = "host";
>                  ahb-burst-config = <0x0>;
>                  tx-burst-size-dword = <0x10>;
>                  rx-burst-size-dword = <0x10>;
>                  status = "okay";
>                  disable-over-current;
>                  vbus-supply = <0x2d>;
>              };
> 
>              usbphy@20ca000 {
>                  compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
>                  reg = <0x20ca000 0x1000>;
>                  interrupts = <0x0 0x2d 0x4>;
>                  clocks = <0x4 0xb7>;
>                  fsl,anatop = <0x2>;
>                  phandle = <0x2c>;
>              };
> 
> So, using deprecated? "fsl,usbphy" instead of "phys", in case that matters.
> 

It is ok.

Check two things:
- ci->usb_phy is non-NULL, and ci->phy is NULL
- phy_roothub is NULL at the functions of drivers/usb/core/phy.c


Peter

��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux