diff options
Diffstat (limited to 'drivers/usb/host/ohci-tmio.c')
| -rw-r--r-- | drivers/usb/host/ohci-tmio.c | 37 | 
1 files changed, 17 insertions, 20 deletions
diff --git a/drivers/usb/host/ohci-tmio.c b/drivers/usb/host/ohci-tmio.c index 8dabe8e31d8..bb409588d39 100644 --- a/drivers/usb/host/ohci-tmio.c +++ b/drivers/usb/host/ohci-tmio.c @@ -27,7 +27,6 @@  /*#include <linux/fs.h>  #include <linux/mount.h>  #include <linux/pagemap.h> -#include <linux/init.h>  #include <linux/namei.h>  #include <linux/sched.h>*/  #include <linux/platform_device.h> @@ -128,7 +127,8 @@ static void tmio_start_hc(struct platform_device *dev)  	tmio_iowrite8(2, tmio->ccr + CCR_INTC);  	dev_info(&dev->dev, "revision %d @ 0x%08llx, irq %d\n", -			tmio_ioread8(tmio->ccr + CCR_REVID), hcd->rsrc_start, hcd->irq); +			tmio_ioread8(tmio->ccr + CCR_REVID), +			(u64) hcd->rsrc_start, hcd->irq);  }  static int ohci_tmio_start(struct usb_hcd *hcd) @@ -140,7 +140,8 @@ static int ohci_tmio_start(struct usb_hcd *hcd)  		return ret;  	if ((ret = ohci_run(ohci)) < 0) { -		err("can't start %s", hcd->self.bus_name); +		dev_err(hcd->self.controller, "can't start %s\n", +			hcd->self.bus_name);  		ohci_stop(hcd);  		return ret;  	} @@ -183,9 +184,9 @@ static const struct hc_driver ohci_tmio_hc_driver = {  /*-------------------------------------------------------------------------*/  static struct platform_driver ohci_hcd_tmio_driver; -static int __devinit ohci_hcd_tmio_drv_probe(struct platform_device *dev) +static int ohci_hcd_tmio_drv_probe(struct platform_device *dev)  { -	struct mfd_cell *cell = dev->dev.platform_data; +	const struct mfd_cell *cell = mfd_get_cell(dev);  	struct resource *regs = platform_get_resource(dev, IORESOURCE_MEM, 0);  	struct resource *config = platform_get_resource(dev, IORESOURCE_MEM, 1);  	struct resource *sram = platform_get_resource(dev, IORESOURCE_MEM, 2); @@ -208,13 +209,13 @@ static int __devinit ohci_hcd_tmio_drv_probe(struct platform_device *dev)  	}  	hcd->rsrc_start = regs->start; -	hcd->rsrc_len = regs->end - regs->start + 1; +	hcd->rsrc_len = resource_size(regs);  	tmio = hcd_to_tmio(hcd);  	spin_lock_init(&tmio->lock); -	tmio->ccr = ioremap(config->start, config->end - config->start + 1); +	tmio->ccr = ioremap(config->start, resource_size(config));  	if (!tmio->ccr) {  		ret = -ENOMEM;  		goto err_ioremap_ccr; @@ -228,7 +229,7 @@ static int __devinit ohci_hcd_tmio_drv_probe(struct platform_device *dev)  	if (!dma_declare_coherent_memory(&dev->dev, sram->start,  				sram->start, -				sram->end - sram->start + 1, +				resource_size(sram),  				DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE)) {  		ret = -EBUSY;  		goto err_dma_declare; @@ -244,10 +245,11 @@ static int __devinit ohci_hcd_tmio_drv_probe(struct platform_device *dev)  	ohci = hcd_to_ohci(hcd);  	ohci_hcd_init(ohci); -	ret = usb_add_hcd(hcd, irq, IRQF_DISABLED); +	ret = usb_add_hcd(hcd, irq, 0);  	if (ret)  		goto err_add_hcd; +	device_wakeup_enable(hcd->self.controller);  	if (ret == 0)  		return ret; @@ -270,11 +272,11 @@ err_usb_create_hcd:  	return ret;  } -static int __devexit ohci_hcd_tmio_drv_remove(struct platform_device *dev) +static int ohci_hcd_tmio_drv_remove(struct platform_device *dev)  {  	struct usb_hcd *hcd = platform_get_drvdata(dev);  	struct tmio_hcd *tmio = hcd_to_tmio(hcd); -	struct mfd_cell *cell = dev->dev.platform_data; +	const struct mfd_cell *cell = mfd_get_cell(dev);  	usb_remove_hcd(hcd);  	tmio_stop_hc(dev); @@ -285,15 +287,13 @@ static int __devexit ohci_hcd_tmio_drv_remove(struct platform_device *dev)  	iounmap(tmio->ccr);  	usb_put_hcd(hcd); -	platform_set_drvdata(dev, NULL); -  	return 0;  }  #ifdef CONFIG_PM  static int ohci_hcd_tmio_drv_suspend(struct platform_device *dev, pm_message_t state)  { -	struct mfd_cell *cell = dev->dev.platform_data; +	const struct mfd_cell *cell = mfd_get_cell(dev);  	struct usb_hcd *hcd = platform_get_drvdata(dev);  	struct ohci_hcd *ohci = hcd_to_ohci(hcd);  	struct tmio_hcd *tmio = hcd_to_tmio(hcd); @@ -318,15 +318,12 @@ static int ohci_hcd_tmio_drv_suspend(struct platform_device *dev, pm_message_t s  		if (ret)  			return ret;  	} - -	hcd->state = HC_STATE_SUSPENDED; -  	return 0;  }  static int ohci_hcd_tmio_drv_resume(struct platform_device *dev)  { -	struct mfd_cell *cell = dev->dev.platform_data; +	const struct mfd_cell *cell = mfd_get_cell(dev);  	struct usb_hcd *hcd = platform_get_drvdata(dev);  	struct ohci_hcd *ohci = hcd_to_ohci(hcd);  	struct tmio_hcd *tmio = hcd_to_tmio(hcd); @@ -354,7 +351,7 @@ static int ohci_hcd_tmio_drv_resume(struct platform_device *dev)  	spin_unlock_irqrestore(&tmio->lock, flags); -	ohci_finish_controller_resume(hcd); +	ohci_resume(hcd, false);  	return 0;  } @@ -365,7 +362,7 @@ static int ohci_hcd_tmio_drv_resume(struct platform_device *dev)  static struct platform_driver ohci_hcd_tmio_driver = {  	.probe		= ohci_hcd_tmio_drv_probe, -	.remove		= __devexit_p(ohci_hcd_tmio_drv_remove), +	.remove		= ohci_hcd_tmio_drv_remove,  	.shutdown	= usb_hcd_platform_shutdown,  	.suspend	= ohci_hcd_tmio_drv_suspend,  	.resume		= ohci_hcd_tmio_drv_resume,  | 
