Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 68ba61b8 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman
Browse files

[PATCH] USB: at91 usb driver supend/resume fixes



AT91: the two USB drivers (OHCI, UDC) got out of sync with various
usbcore and driver model PM updates; fix.

Also minor fixes to ohci:  whitespace/style, MODULE_ALIAS so coldplug works
using /sys/.../modalias, and turn off _both_ clocks during suspend.

Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 35fcca44
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1709,7 +1709,7 @@ static int __devexit at91udc_remove(struct platform_device *dev)
}
}


#ifdef CONFIG_PM
#ifdef CONFIG_PM
static int at91udc_suspend(struct platform_device *dev, u32 state, u32 level)
static int at91udc_suspend(struct platform_device *dev, pm_message_t mesg)
{
{
	struct at91_udc *udc = platform_get_drvdata(dev);
	struct at91_udc *udc = platform_get_drvdata(dev);


@@ -1731,7 +1731,7 @@ static int at91udc_suspend(struct platform_device *dev, u32 state, u32 level)
	return 0;
	return 0;
}
}


static int at91udc_resume(struct platform_device *dev, u32 level)
static int at91udc_resume(struct platform_device *dev)
{
{
	struct at91_udc *udc = platform_get_drvdata(dev);
	struct at91_udc *udc = platform_get_drvdata(dev);


+17 −18
Original line number Original line Diff line number Diff line
@@ -20,7 +20,7 @@
#include <asm/arch/board.h>
#include <asm/arch/board.h>


#ifndef CONFIG_ARCH_AT91RM9200
#ifndef CONFIG_ARCH_AT91RM9200
#error "This file is AT91RM9200 bus glue.  CONFIG_ARCH_AT91RM9200 must be defined."
#error "CONFIG_ARCH_AT91RM9200 must be defined."
#endif
#endif


/* interface and function clocks */
/* interface and function clocks */
@@ -84,8 +84,6 @@ static int usb_hcd_at91_remove (struct usb_hcd *, struct platform_device *);
 * Allocates basic resources for this USB host controller, and
 * Allocates basic resources for this USB host controller, and
 * then invokes the start() method for the HCD associated with it
 * then invokes the start() method for the HCD associated with it
 * through the hotplug entry's driver_data.
 * through the hotplug entry's driver_data.
 *
 * Store this function in the HCD's struct pci_driver as probe().
 */
 */
int usb_hcd_at91_probe (const struct hc_driver *driver, struct platform_device *pdev)
int usb_hcd_at91_probe (const struct hc_driver *driver, struct platform_device *pdev)
{
{
@@ -148,7 +146,6 @@ int usb_hcd_at91_probe (const struct hc_driver *driver, struct platform_device *
}
}




/* may be called without controller electrically present */
/* may be called with controller, bus, and devices active */
/* may be called with controller, bus, and devices active */


/**
/**
@@ -235,8 +232,8 @@ static const struct hc_driver ohci_at91_hc_driver = {
	.hub_control =		ohci_hub_control,
	.hub_control =		ohci_hub_control,


#ifdef CONFIG_PM
#ifdef CONFIG_PM
	.hub_suspend =		ohci_hub_suspend,
	.bus_suspend =		ohci_bus_suspend,
	.hub_resume =		ohci_hub_resume,
	.bus_resume =		ohci_bus_resume,
#endif
#endif
	.start_port_reset =	ohci_start_port_reset,
	.start_port_reset =	ohci_start_port_reset,
};
};
@@ -254,21 +251,21 @@ static int ohci_hcd_at91_drv_remove(struct platform_device *dev)
}
}


#ifdef CONFIG_PM
#ifdef CONFIG_PM
static int ohci_hcd_at91_drv_suspend(struct platform_device *dev, u32 state, u32 level)
{
	printk("%s(%s:%d): not implemented yet\n",
		__func__, __FILE__, __LINE__);


/* REVISIT suspend/resume look "too" simple here */

static int
ohci_hcd_at91_drv_suspend(struct platform_device *dev, pm_message_t mesg)
{
	clk_disable(fclk);
	clk_disable(fclk);
	clk_disable(iclk);


	return 0;
	return 0;
}
}


static int ohci_hcd_at91_drv_resume(struct platform_device *dev, u32 state)
static int ohci_hcd_at91_drv_resume(struct platform_device *dev)
{
{
	printk("%s(%s:%d): not implemented yet\n",
	clk_enable(iclk);
		__func__, __FILE__, __LINE__);

	clk_enable(fclk);
	clk_enable(fclk);


	return 0;
	return 0;
@@ -278,6 +275,8 @@ static int ohci_hcd_at91_drv_resume(struct platform_device *dev, u32 state)
#define ohci_hcd_at91_drv_resume  NULL
#define ohci_hcd_at91_drv_resume  NULL
#endif
#endif


MODULE_ALIAS("at91rm9200-ohci");

static struct platform_driver ohci_hcd_at91_driver = {
static struct platform_driver ohci_hcd_at91_driver = {
	.probe		= ohci_hcd_at91_drv_probe,
	.probe		= ohci_hcd_at91_drv_probe,
	.remove		= ohci_hcd_at91_drv_remove,
	.remove		= ohci_hcd_at91_drv_remove,