Re: [PATCH v3 1/2] USB: PHY: Make PHY driver selection possible bycontroller drivers
From: Roger Quadros
Date: Tue Jul 09 2013 - 08:01:45 EST
On 07/09/2013 02:29 PM, Felipe Balbi wrote:
> On Fri, Jun 14, 2013 at 12:51:41PM +0300, Roger Quadros wrote:
>> Convert PHY Drivers from menuconfig to menu so that the PHY drivers
>> can be explicitely selected by the controller drivers.
>>
>> USB_PHY is no longer a user visible option. It is upto to the PHY
>> drivers to select it if needed. This patch does so for the existing
>> PHY drivers that use the USB_PHY library.
>>
>> Doing so moves the USB_PHY and PHY driver selection problem from the
>> end user to the PHY and controller driver developer.
>>
>> e.g.
>>
>> Earlier, a controller driver (e.g. EHCI_OMAP) that needs to select
>> a PHY driver (e.g. NOP_PHY) couldn't do so because the PHY driver
>> depended on USB_PHY. Making the controller driver depend on USB_PHY
>> has a negative effect i.e. it becomes invisible to the user till
>> USB_PHY is enabled. Most end users will not familiar with this.
>>
>> With this patch, the end user just needs to select the controller driver
>> needed for his/her platform without worrying about which PHY driver to
>> select.
>>
>> Also update USB_EHCI_MSM, USB_LPC32XX and USB_OMAP to not depend
>> on USB_PHY any more. They can safely select the necessary PHY drivers.
>>
>> CC: Pavankumar Kondeti <pkondeti@xxxxxxxxxxxxxx>
>> CC: Roland Stigge <stigge@xxxxxxxxx>
>> Signed-off-by: Roger Quadros <rogerq@xxxxxx>
>> [USB_LPC32XX part] Acked-by: Roland Stigge <stigge@xxxxxxxxx>
>>
>> Signed-off-by: Roger Quadros <rogerq@xxxxxx>
>
> There is one problem (?) with this: phy-core.ko will never be a module.
> If that's not a problem for anyone, I guess this is safe to apply. I'll
> wait a little longer until merge window closes to give people some extra
> time to shout.
>
Is phy-core already meant to be loaded as a module already?
At least with the old phy.c I was getting the following build errors if it was built as
a module
arch/arm/mach-omap2/built-in.o: In function `usbhs_init_phys':
/work/linux-2.6/arch/arm/mach-omap2/usb-host.c:652: undefined reference to `usb_bind_phy'
arch/arm/mach-omap2/built-in.o: In function `omap_2430sdp_init':
/work/linux-2.6/arch/arm/mach-omap2/board-2430sdp.c:236: undefined reference to `usb_bind_phy'
arch/arm/mach-omap2/built-in.o: In function `omap3_beagle_init':
/work/linux-2.6/arch/arm/mach-omap2/board-omap3beagle.c:554: undefined reference to `usb_bind_phy'
arch/arm/mach-omap2/built-in.o: In function `devkit8000_init':
/work/linux-2.6/arch/arm/mach-omap2/board-devkit8000.c:596: undefined reference to `usb_bind_phy'
arch/arm/mach-omap2/built-in.o: In function `omap_ldp_init':
/work/linux-2.6/arch/arm/mach-omap2/board-ldp.c:379: undefined reference to `usb_bind_phy'
If we are sure it can be built as a module then we could just change "config USB_PHY" to tristate
instead of bool.
cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/