[RFC] ehci registration rework

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

 



a brief overview:
- Move the separate bus types into its own file.
  [RFC 02/17] usb/ehci: compile ehci-pci as a seperate compile unit
  [RFC 03/17] usb/ehci: compile ehci-ps3 as a separate compile unit
  [RFC 04/17] usb/ehci: compile ppc-of as a separate unit
  [RFC 05/17] usb/ehci: compile xilinx-of as separate compile unit

- Here if been looking at common patterns. Adding and removing of the
  hcd driver/device was one of them. Here I tried to group them.
  [RFC 09/17] usb/ehci: add generic hcd add function
  [RFC 10/17] usb/ehci: make sh code use the new plat add code
  [RFC 11/17] usb/ehci: make au1xxx use generic add code
  [RFC 12/17] usb/ehci: make spear use generic platform add

- Then we had Felipe's question to remove the idefs and allow to compile
  more platform devices at once. This is something I tried here.
  [RFC 13/17] usb/ehci: Allow to build multiple platform glue drivers

- Every ehci-* driver defines his own hc_driver struct. All members are
  copied, except the reset callback which is a onetime thing. I would
  remove it and pass it as a argument which allow to use a common struct
  for all drivers.
  [RFC 14/17] usb/hcd: add one-time init callback to usb_add_hcd()
  [RFC 15/17] usb/ehci-plat: use new usb_add_hcd_init()
  [RFC 16/17] usb/ehci: use ehci_hcd_plat_probe_init() in sh
  [RFC 17/17] usb/ehci: use ehci_hcd_plat_probe_init() in au1xxx

Some observations:
- merging ehci-xilinx-of.c and the ppc code could be messy. Mostly
  because they make heavy use of DT to set quirks/workarounds. This
  could be excluded into the onetime init function which sets the flags
  in the ehci struct.
- The remaining parts of setup / probe is mostly the same. Some of the
  ARMs enable/disable clocks, others do phy init. omap does lot of
  things :)
- The reset callback does mostly the same thing. Some drivers setup the
  register offset in probe, others do in the reset callback.

One question that remains is how do we deal with the platform drivers?
A generic platform device is what I'm trying here. However we still have
the custom phy/clock setup. Any ideas?

Sebastian
--
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