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]

 



On 2018-06-04 03:14, Peter Chen wrote:

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

That is correct

- phy_roothub is NULL at the functions of drivers/usb/core/phy.c

I put a trace at the beginning of each of the functions of that file but none
of them is ever called.

// Mats

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