On Wed, Oct 3, 2012 at 5:03 PM, Florian Fainelli <florian@xxxxxxxxxxx> wrote: > Use the ehci platform driver power_{on,suspend,off} callbacks to perform the > USB block gate enabling/disabling as what the ehci-au1xxx.c driver does. > > Signed-off-by: Florian Fainelli <florian@xxxxxxxxxxx> > --- > arch/mips/alchemy/common/platform.c | 23 ++++++++++++++++++++++- > 1 file changed, 22 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c > index c0f3ce6..57335a2 100644 > --- a/arch/mips/alchemy/common/platform.c > +++ b/arch/mips/alchemy/common/platform.c > @@ -17,6 +17,7 @@ > #include <linux/platform_device.h> > #include <linux/serial_8250.h> > #include <linux/slab.h> > +#include <linux/usb/ehci_pdriver.h> > > #include <asm/mach-au1x00/au1000.h> > #include <asm/mach-au1x00/au1xxx_dbdma.h> > @@ -122,6 +123,25 @@ static void __init alchemy_setup_uarts(int ctype) > static u64 alchemy_ohci_dmamask = DMA_BIT_MASK(32); > static u64 __maybe_unused alchemy_ehci_dmamask = DMA_BIT_MASK(32); > > +/* Power on callback for the ehci platform driver */ > +static int alchemy_ehci_power_on(struct platform_device *pdev) > +{ > + return alchemy_usb_control(ALCHEMY_USB_EHCI0, 1); > +} > + > +/* Power off/suspend callback for the ehci platform driver */ > +static void alchemy_ehci_power_off(struct platform_device *pdev) > +{ > + alchemy_usb_control(ALCHEMY_USB_EHCI0, 0); > +} > + > +static struct usb_ehci_pdata alchemy_ehci_pdata = { > + .need_io_watchdog = 0, This member doesn't exist. Manuel