diff options
Diffstat (limited to 'drivers/usb/chipidea')
| -rw-r--r-- | drivers/usb/chipidea/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/usb/chipidea/ci13xxx_imx.c | 8 | ||||
| -rw-r--r-- | drivers/usb/chipidea/ci13xxx_msm.c | 6 | ||||
| -rw-r--r-- | drivers/usb/chipidea/ci13xxx_pci.c | 6 | ||||
| -rw-r--r-- | drivers/usb/chipidea/core.c | 9 | ||||
| -rw-r--r-- | drivers/usb/chipidea/debug.c | 3 | ||||
| -rw-r--r-- | drivers/usb/chipidea/host.c | 67 | ||||
| -rw-r--r-- | drivers/usb/chipidea/usbmisc_imx6q.c | 6 | 
8 files changed, 24 insertions, 82 deletions
| diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig index 1ea932a13685..608a2aeb400c 100644 --- a/drivers/usb/chipidea/Kconfig +++ b/drivers/usb/chipidea/Kconfig @@ -20,6 +20,7 @@ config USB_CHIPIDEA_UDC  config USB_CHIPIDEA_HOST  	bool "ChipIdea host controller"  	depends on USB=y || USB=USB_CHIPIDEA +	depends on USB_EHCI_HCD  	select USB_EHCI_ROOT_HUB_TT  	help  	  Say Y here to enable host controller functionality of the diff --git a/drivers/usb/chipidea/ci13xxx_imx.c b/drivers/usb/chipidea/ci13xxx_imx.c index 0f5ca4bea17f..8c291220be7f 100644 --- a/drivers/usb/chipidea/ci13xxx_imx.c +++ b/drivers/usb/chipidea/ci13xxx_imx.c @@ -85,7 +85,7 @@ EXPORT_SYMBOL_GPL(usbmisc_get_init_data);  /* End of common functions shared by usbmisc drivers*/ -static struct ci13xxx_platform_data ci13xxx_imx_platdata __devinitdata  = { +static struct ci13xxx_platform_data ci13xxx_imx_platdata  = {  	.name			= "ci13xxx_imx",  	.flags			= CI13XXX_REQUIRE_TRANSCEIVER |  				  CI13XXX_PULLUP_ON_VBUS | @@ -93,7 +93,7 @@ static struct ci13xxx_platform_data ci13xxx_imx_platdata __devinitdata  = {  	.capoffset		= DEF_CAPOFFSET,  }; -static int __devinit ci13xxx_imx_probe(struct platform_device *pdev) +static int ci13xxx_imx_probe(struct platform_device *pdev)  {  	struct ci13xxx_imx_data *data;  	struct platform_device *plat_ci, *phy_pdev; @@ -220,7 +220,7 @@ put_np:  	return ret;  } -static int __devexit ci13xxx_imx_remove(struct platform_device *pdev) +static int ci13xxx_imx_remove(struct platform_device *pdev)  {  	struct ci13xxx_imx_data *data = platform_get_drvdata(pdev); @@ -252,7 +252,7 @@ MODULE_DEVICE_TABLE(of, ci13xxx_imx_dt_ids);  static struct platform_driver ci13xxx_imx_driver = {  	.probe = ci13xxx_imx_probe, -	.remove = __devexit_p(ci13xxx_imx_remove), +	.remove = ci13xxx_imx_remove,  	.driver = {  		.name = "imx_usb",  		.owner = THIS_MODULE, diff --git a/drivers/usb/chipidea/ci13xxx_msm.c b/drivers/usb/chipidea/ci13xxx_msm.c index b01feb3be92e..7d16681fd3d2 100644 --- a/drivers/usb/chipidea/ci13xxx_msm.c +++ b/drivers/usb/chipidea/ci13xxx_msm.c @@ -55,7 +55,7 @@ static struct ci13xxx_platform_data ci13xxx_msm_platdata = {  	.notify_event		= ci13xxx_msm_notify_event,  }; -static int __devinit ci13xxx_msm_probe(struct platform_device *pdev) +static int ci13xxx_msm_probe(struct platform_device *pdev)  {  	struct platform_device *plat_ci; @@ -77,7 +77,7 @@ static int __devinit ci13xxx_msm_probe(struct platform_device *pdev)  	return 0;  } -static int __devexit ci13xxx_msm_remove(struct platform_device *pdev) +static int ci13xxx_msm_remove(struct platform_device *pdev)  {  	struct platform_device *plat_ci = platform_get_drvdata(pdev); @@ -89,7 +89,7 @@ static int __devexit ci13xxx_msm_remove(struct platform_device *pdev)  static struct platform_driver ci13xxx_msm_driver = {  	.probe = ci13xxx_msm_probe, -	.remove = __devexit_p(ci13xxx_msm_remove), +	.remove = ci13xxx_msm_remove,  	.driver = { .name = "msm_hsusb", },  }; diff --git a/drivers/usb/chipidea/ci13xxx_pci.c b/drivers/usb/chipidea/ci13xxx_pci.c index 918e14971f2b..9b227e39299a 100644 --- a/drivers/usb/chipidea/ci13xxx_pci.c +++ b/drivers/usb/chipidea/ci13xxx_pci.c @@ -48,7 +48,7 @@ struct ci13xxx_platform_data penwell_pci_platdata = {   * Allocates basic PCI resources for this USB device controller, and then   * invokes the udc_probe() method to start the UDC associated with it   */ -static int __devinit ci13xxx_pci_probe(struct pci_dev *pdev, +static int ci13xxx_pci_probe(struct pci_dev *pdev,  				       const struct pci_device_id *id)  {  	struct ci13xxx_platform_data *platdata = (void *)id->driver_data; @@ -107,7 +107,7 @@ static int __devinit ci13xxx_pci_probe(struct pci_dev *pdev,   * first invoking the udc_remove() and then releases   * all PCI resources allocated for this USB device controller   */ -static void __devexit ci13xxx_pci_remove(struct pci_dev *pdev) +static void ci13xxx_pci_remove(struct pci_dev *pdev)  {  	struct platform_device *plat_ci = pci_get_drvdata(pdev); @@ -147,7 +147,7 @@ static struct pci_driver ci13xxx_pci_driver = {  	.name         =	UDC_DRIVER_NAME,  	.id_table     =	ci13xxx_pci_id_table,  	.probe        =	ci13xxx_pci_probe, -	.remove       =	__devexit_p(ci13xxx_pci_remove), +	.remove       =	ci13xxx_pci_remove,  };  module_pci_driver(ci13xxx_pci_driver); diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c index f69d029b4607..aebf695a9344 100644 --- a/drivers/usb/chipidea/core.c +++ b/drivers/usb/chipidea/core.c @@ -385,12 +385,13 @@ EXPORT_SYMBOL_GPL(ci13xxx_add_device);  void ci13xxx_remove_device(struct platform_device *pdev)  { +	int id = pdev->id;  	platform_device_unregister(pdev); -	ida_simple_remove(&ci_ida, pdev->id); +	ida_simple_remove(&ci_ida, id);  }  EXPORT_SYMBOL_GPL(ci13xxx_remove_device); -static int __devinit ci_hdrc_probe(struct platform_device *pdev) +static int ci_hdrc_probe(struct platform_device *pdev)  {  	struct device	*dev = &pdev->dev;  	struct ci13xxx	*ci; @@ -508,7 +509,7 @@ rm_wq:  	return ret;  } -static int __devexit ci_hdrc_remove(struct platform_device *pdev) +static int ci_hdrc_remove(struct platform_device *pdev)  {  	struct ci13xxx *ci = platform_get_drvdata(pdev); @@ -523,7 +524,7 @@ static int __devexit ci_hdrc_remove(struct platform_device *pdev)  static struct platform_driver ci_hdrc_driver = {  	.probe	= ci_hdrc_probe, -	.remove	= __devexit_p(ci_hdrc_remove), +	.remove	= ci_hdrc_remove,  	.driver	= {  		.name	= "ci_hdrc",  	}, diff --git a/drivers/usb/chipidea/debug.c b/drivers/usb/chipidea/debug.c index c6f50a257565..3bc244d2636a 100644 --- a/drivers/usb/chipidea/debug.c +++ b/drivers/usb/chipidea/debug.c @@ -160,9 +160,6 @@ static ssize_t show_device(struct device *dev, struct device_attribute *attr,  		       gadget->speed);  	n += scnprintf(buf + n, PAGE_SIZE - n, "max_speed         = %d\n",  		       gadget->max_speed); -	/* TODO: Scheduled for removal in 3.8. */ -	n += scnprintf(buf + n, PAGE_SIZE - n, "is_dualspeed      = %d\n", -		       gadget_is_dualspeed(gadget));  	n += scnprintf(buf + n, PAGE_SIZE - n, "is_otg            = %d\n",  		       gadget->is_otg);  	n += scnprintf(buf + n, PAGE_SIZE - n, "is_a_peripheral   = %d\n", diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c index ebff9f4f56ec..caecad9213f5 100644 --- a/drivers/usb/chipidea/host.c +++ b/drivers/usb/chipidea/host.c @@ -20,77 +20,18 @@   */  #include <linux/kernel.h> +#include <linux/io.h>  #include <linux/usb.h>  #include <linux/usb/hcd.h>  #include <linux/usb/chipidea.h> -#define CHIPIDEA_EHCI -#include "../host/ehci-hcd.c" +#include "../host/ehci.h"  #include "ci.h"  #include "bits.h"  #include "host.h" -static int ci_ehci_setup(struct usb_hcd *hcd) -{ -	struct ehci_hcd *ehci = hcd_to_ehci(hcd); -	int ret; - -	hcd->has_tt = 1; - -	ret = ehci_setup(hcd); -	if (ret) -		return ret; - -	ehci_port_power(ehci, 0); - -	return ret; -} - -static const struct hc_driver ci_ehci_hc_driver = { -	.description	= "ehci_hcd", -	.product_desc	= "ChipIdea HDRC EHCI", -	.hcd_priv_size	= sizeof(struct ehci_hcd), - -	/* -	 * generic hardware linkage -	 */ -	.irq	= ehci_irq, -	.flags	= HCD_MEMORY | HCD_USB2, - -	/* -	 * basic lifecycle operations -	 */ -	.reset		= ci_ehci_setup, -	.start		= ehci_run, -	.stop		= ehci_stop, -	.shutdown	= ehci_shutdown, - -	/* -	 * managing i/o requests and associated device resources -	 */ -	.urb_enqueue		= ehci_urb_enqueue, -	.urb_dequeue		= ehci_urb_dequeue, -	.endpoint_disable	= ehci_endpoint_disable, -	.endpoint_reset		= ehci_endpoint_reset, - -	/* -	 * scheduling support -	 */ -	.get_frame_number = ehci_get_frame, - -	/* -	 * root hub support -	 */ -	.hub_status_data	= ehci_hub_status_data, -	.hub_control		= ehci_hub_control, -	.bus_suspend		= ehci_bus_suspend, -	.bus_resume		= ehci_bus_resume, -	.relinquish_port	= ehci_relinquish_port, -	.port_handed_over	= ehci_port_handed_over, - -	.clear_tt_buffer_complete = ehci_clear_tt_buffer_complete, -}; +static struct hc_driver __read_mostly ci_ehci_hc_driver;  static irqreturn_t host_irq(struct ci13xxx *ci)  { @@ -157,5 +98,7 @@ int ci_hdrc_host_init(struct ci13xxx *ci)  	rdrv->name	= "host";  	ci->roles[CI_ROLE_HOST] = rdrv; +	ehci_init_driver(&ci_ehci_hc_driver, NULL); +  	return 0;  } diff --git a/drivers/usb/chipidea/usbmisc_imx6q.c b/drivers/usb/chipidea/usbmisc_imx6q.c index 416e3fc58fd0..845efe29e6b9 100644 --- a/drivers/usb/chipidea/usbmisc_imx6q.c +++ b/drivers/usb/chipidea/usbmisc_imx6q.c @@ -82,7 +82,7 @@ static const struct of_device_id usbmisc_imx6q_dt_ids[] = {  	{ /* sentinel */ }  }; -static int __devinit usbmisc_imx6q_probe(struct platform_device *pdev) +static int usbmisc_imx6q_probe(struct platform_device *pdev)  {  	struct resource	*res;  	struct imx6q_usbmisc *data; @@ -127,7 +127,7 @@ static int __devinit usbmisc_imx6q_probe(struct platform_device *pdev)  	return 0;  } -static int __devexit usbmisc_imx6q_remove(struct platform_device *pdev) +static int usbmisc_imx6q_remove(struct platform_device *pdev)  {  	usbmisc_unset_ops(&imx6q_usbmisc_ops);  	clk_disable_unprepare(usbmisc->clk); @@ -136,7 +136,7 @@ static int __devexit usbmisc_imx6q_remove(struct platform_device *pdev)  static struct platform_driver usbmisc_imx6q_driver = {  	.probe = usbmisc_imx6q_probe, -	.remove = __devexit_p(usbmisc_imx6q_remove), +	.remove = usbmisc_imx6q_remove,  	.driver = {  		.name = "usbmisc_imx6q",  		.owner = THIS_MODULE, |