Re: [PATCH] usb: phy: Move R-Car Gen2 driver registration to postcore_inictall

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

 



On Thu, 31 Oct 2013, Valentine wrote:

> > Do you mean to change usb_hcd_pci_probe() to return -EPROBE_DEFER if the phy is not ready?
> > Or should I defer the whole PCI subsystem initialization (pci_common_int)?
> 
> Greg,
> the reason I ask is that it doesn't seem that simple to me.
> 
> Here's some details:
> The h/w is an ARM SoC that has 3 internal PCI controllers with a single EHCI/OHCI on each one.
> This gives us 3 USB channels as this is called in the h/w manual.
> Channel 0 is shared with USBHS (USB function) device.
> Channel 2 is shared with USBSS (USB3.0 host).
> Both channels are configured by a single USB phy.
> USB PHY is a platform device, while EHCI/OCHI are located on the PCI busses.
> 
> If PCI USB host is probed before USB phy, the EHCI/OHCI device is
> detected, but nothing works.
> 
> We could change the USB HDC PCI driver and make usb_hcd_pci_probe() return -EPROBE_DEFER,
> but I'm not sure how the condition for that should be phrased.

You need to tell usb_hcd_pci_probe() to wait for the PHY.  That seems
to be the proper solution to your problem.

The difficulty is that you have a discoverable device (the PCI EHCI
controller) which needs to wait for a platform device (the PHY).  The
kernel doesn't have a good way to describe such a constraint between
two different kinds of device like that, as far as I know.

This is similar to the problems facing Runtime Interpreted Power 
Sequences, although not quite the same.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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

  Powered by Linux