summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
authorAlexandre Courbot <acourbot@nvidia.com>2011-11-02 16:57:31 +0900
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:49:50 -0800
commit7371eedb299b7d5524476377985e910dc023bb90 (patch)
tree7eab6e06b919b69874df9b933df2cb4469706b2b /arch/arm/mach-tegra
parentfd59e8417531bc79da00319b967dcd63cbf88b38 (diff)
tegra: usb: otg: factorize host registration code
OTG host register/unregister functions were duplicated identically across all board files, making the code difficult to maintain (and actually some boards did not get all some code fixes leading to the same bug being met again and again). This patch moves this common code into tegra-otg.c. Bug 884315 Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Change-Id: I99b118664f0481f6c5470411b43f36609e0feb52 Reviewed-on: http://git-master/r/61763 Reviewed-by: Lokesh Pathak <lpathak@nvidia.com> Tested-by: Lokesh Pathak <lpathak@nvidia.com> Rebase-Id: R0f6060514c017946cc9ae2ba2f04a1c134d14d9b
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/board-aruba.c45
-rw-r--r--arch/arm/mach-tegra/board-cardhu.c55
-rw-r--r--arch/arm/mach-tegra/board-enterprise.c51
-rw-r--r--arch/arm/mach-tegra/board-ventana.c51
-rw-r--r--arch/arm/mach-tegra/board-whistler.c52
5 files changed, 10 insertions, 244 deletions
diff --git a/arch/arm/mach-tegra/board-aruba.c b/arch/arm/mach-tegra/board-aruba.c
index 172e6b1b1092..90d022b1535b 100644
--- a/arch/arm/mach-tegra/board-aruba.c
+++ b/arch/arm/mach-tegra/board-aruba.c
@@ -495,51 +495,6 @@ static void aruba_usb_init(void)
platform_device_register(&tegra_ehci2_device);
}
-struct platform_device *tegra_usb_otg_host_register(void)
-{
- struct platform_device *pdev;
- void *platform_data;
- int val;
-
- pdev = platform_device_alloc(tegra_ehci1_device.name, tegra_ehci1_device.id);
- if (!pdev)
- return NULL;
-
- val = platform_device_add_resources(pdev, tegra_ehci1_device.resource,
- tegra_ehci1_device.num_resources);
- if (val)
- goto error;
-
- pdev->dev.dma_mask = tegra_ehci1_device.dev.dma_mask;
- pdev->dev.coherent_dma_mask = tegra_ehci1_device.dev.coherent_dma_mask;
-
- platform_data = kmalloc(sizeof(struct tegra_ehci_platform_data), GFP_KERNEL);
- if (!platform_data)
- goto error;
-
- memcpy(platform_data, &tegra_ehci_pdata[0],
- sizeof(struct tegra_ehci_platform_data));
- pdev->dev.platform_data = platform_data;
-
- val = platform_device_add(pdev);
- if (val)
- goto error_add;
-
- return pdev;
-
-error_add:
- kfree(platform_data);
-error:
- pr_err("%s: failed to add the host contoller device\n", __func__);
- platform_device_put(pdev);
- return NULL;
-}
-
-void tegra_usb_otg_host_unregister(struct platform_device *pdev)
-{
- platform_device_unregister(pdev);
-}
-
#ifdef CONFIG_SATA_AHCI_TEGRA
static void aruba_sata_init(void)
{
diff --git a/arch/arm/mach-tegra/board-cardhu.c b/arch/arm/mach-tegra/board-cardhu.c
index cec58352ded1..1b8db209fd89 100644
--- a/arch/arm/mach-tegra/board-cardhu.c
+++ b/arch/arm/mach-tegra/board-cardhu.c
@@ -699,52 +699,10 @@ static struct tegra_ehci_platform_data tegra_ehci_pdata[] = {
},
};
-static struct platform_device *tegra_usb_otg_host_register(void)
-{
- struct platform_device *pdev;
- void *platform_data;
- int val;
-
- pdev = platform_device_alloc(tegra_ehci1_device.name,
- tegra_ehci1_device.id);
- if (!pdev)
- return NULL;
-
- val = platform_device_add_resources(pdev, tegra_ehci1_device.resource,
- tegra_ehci1_device.num_resources);
- if (val)
- goto error;
-
- pdev->dev.dma_mask = tegra_ehci1_device.dev.dma_mask;
- pdev->dev.coherent_dma_mask = tegra_ehci1_device.dev.coherent_dma_mask;
-
- platform_data = kmalloc(sizeof(struct tegra_ehci_platform_data),
- GFP_KERNEL);
- if (!platform_data)
- goto error;
-
- memcpy(platform_data, &tegra_ehci_pdata[0],
- sizeof(struct tegra_ehci_platform_data));
- pdev->dev.platform_data = platform_data;
-
- val = platform_device_add(pdev);
- if (val)
- goto error_add;
-
- return pdev;
-
-error_add:
- kfree(platform_data);
-error:
- pr_err("%s: failed to add the host contoller device\n", __func__);
- platform_device_put(pdev);
- return NULL;
-}
-
-static void tegra_usb_otg_host_unregister(struct platform_device *pdev)
-{
- platform_device_unregister(pdev);
-}
+static struct tegra_otg_platform_data tegra_otg_pdata = {
+ .ehci_device = &tegra_ehci1_device,
+ .ehci_pdata = &tegra_ehci_pdata[0],
+};
#ifdef CONFIG_USB_SUPPORT
static struct usb_phy_plat_data tegra_usb_phy_pdata[] = {
@@ -764,11 +722,6 @@ static struct usb_phy_plat_data tegra_usb_phy_pdata[] = {
},
};
-static struct tegra_otg_platform_data tegra_otg_pdata = {
- .host_register = &tegra_usb_otg_host_register,
- .host_unregister = &tegra_usb_otg_host_unregister,
-};
-
static void cardhu_usb_init(void)
{
struct board_info bi;
diff --git a/arch/arm/mach-tegra/board-enterprise.c b/arch/arm/mach-tegra/board-enterprise.c
index c09b1b324e16..82d9ee0962ce 100644
--- a/arch/arm/mach-tegra/board-enterprise.c
+++ b/arch/arm/mach-tegra/board-enterprise.c
@@ -636,56 +636,9 @@ static struct tegra_ehci_platform_data tegra_ehci_pdata[] = {
},
};
-static struct platform_device *tegra_usb_otg_host_register(void)
-{
- struct platform_device *pdev;
- void *platform_data;
- int val;
-
- pdev = platform_device_alloc(tegra_ehci1_device.name,
- tegra_ehci1_device.id);
- if (!pdev)
- return NULL;
-
- val = platform_device_add_resources(pdev, tegra_ehci1_device.resource,
- tegra_ehci1_device.num_resources);
- if (val)
- goto error;
-
- pdev->dev.dma_mask = tegra_ehci1_device.dev.dma_mask;
- pdev->dev.coherent_dma_mask = tegra_ehci1_device.dev.coherent_dma_mask;
-
- platform_data = kmalloc(sizeof(struct tegra_ehci_platform_data),
- GFP_KERNEL);
- if (!platform_data)
- goto error;
-
- memcpy(platform_data, &tegra_ehci_pdata[0],
- sizeof(struct tegra_ehci_platform_data));
- pdev->dev.platform_data = platform_data;
-
- val = platform_device_add(pdev);
- if (val)
- goto error_add;
-
- return pdev;
-
-error_add:
- kfree(platform_data);
-error:
- pr_err("%s: failed to add the host contoller device\n", __func__);
- platform_device_put(pdev);
- return NULL;
-}
-
-static void tegra_usb_otg_host_unregister(struct platform_device *pdev)
-{
- platform_device_unregister(pdev);
-}
-
static struct tegra_otg_platform_data tegra_otg_pdata = {
- .host_register = &tegra_usb_otg_host_register,
- .host_unregister = &tegra_usb_otg_host_unregister,
+ .ehci_device = &tegra_ehci1_device,
+ .ehci_pdata = &tegra_ehci_pdata[0],
};
static void enterprise_usb_init(void)
diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c
index a7265bd6c0da..845494baf9e5 100644
--- a/arch/arm/mach-tegra/board-ventana.c
+++ b/arch/arm/mach-tegra/board-ventana.c
@@ -491,56 +491,9 @@ static struct tegra_ehci_platform_data tegra_ehci_pdata[] = {
},
};
-static struct platform_device *tegra_usb_otg_host_register(void)
-{
- struct platform_device *pdev;
- void *platform_data;
- int val;
-
- pdev = platform_device_alloc(tegra_ehci1_device.name, tegra_ehci1_device.id);
- if (!pdev)
- return NULL;
-
- val = platform_device_add_resources(pdev, tegra_ehci1_device.resource,
- tegra_ehci1_device.num_resources);
- if (val)
- goto error;
-
- pdev->dev.dma_mask = tegra_ehci1_device.dev.dma_mask;
- pdev->dev.coherent_dma_mask = tegra_ehci1_device.dev.coherent_dma_mask;
-
- platform_data = kmalloc(sizeof(struct tegra_ehci_platform_data), GFP_KERNEL);
- if (!platform_data)
- goto error;
-
- memcpy(platform_data, &tegra_ehci_pdata[0],
- sizeof(struct tegra_ehci_platform_data));
- pdev->dev.platform_data = platform_data;
-
- val = platform_device_add(pdev);
- if (val)
- goto error_add;
-
- return pdev;
-
-error_add:
- kfree(platform_data);
-error:
- pr_err("%s: failed to add the host contoller device\n", __func__);
- platform_device_put(pdev);
- return NULL;
-}
-
-static void tegra_usb_otg_host_unregister(struct platform_device *pdev)
-{
- kfree(pdev->dev.platform_data);
- pdev->dev.platform_data = NULL;
- platform_device_unregister(pdev);
-}
-
static struct tegra_otg_platform_data tegra_otg_pdata = {
- .host_register = &tegra_usb_otg_host_register,
- .host_unregister = &tegra_usb_otg_host_unregister,
+ .ehci_device = &tegra_ehci1_device,
+ .ehci_pdata = &tegra_ehci_pdata[0],
};
static int __init ventana_gps_init(void)
diff --git a/arch/arm/mach-tegra/board-whistler.c b/arch/arm/mach-tegra/board-whistler.c
index 51e94a8a8607..f0714b72f03c 100644
--- a/arch/arm/mach-tegra/board-whistler.c
+++ b/arch/arm/mach-tegra/board-whistler.c
@@ -391,57 +391,9 @@ static struct tegra_ehci_platform_data tegra_ehci_pdata[] = {
},
};
-static struct platform_device *tegra_usb_otg_host_register(void)
-{
- struct platform_device *pdev;
- void *platform_data;
- int val;
-
- pdev = platform_device_alloc(tegra_ehci1_device.name,
- tegra_ehci1_device.id);
- if (!pdev)
- return NULL;
-
- val = platform_device_add_resources(pdev, tegra_ehci1_device.resource,
- tegra_ehci1_device.num_resources);
- if (val)
- goto error;
-
- pdev->dev.dma_mask = tegra_ehci1_device.dev.dma_mask;
- pdev->dev.coherent_dma_mask = tegra_ehci1_device.dev.coherent_dma_mask;
-
- platform_data = kmalloc(sizeof(struct tegra_ehci_platform_data),
- GFP_KERNEL);
- if (!platform_data)
- goto error;
-
- memcpy(platform_data, &tegra_ehci_pdata[0],
- sizeof(struct tegra_ehci_platform_data));
- pdev->dev.platform_data = platform_data;
-
- val = platform_device_add(pdev);
- if (val)
- goto error_add;
-
- return pdev;
-
-error_add:
- kfree(platform_data);
-error:
- pr_err("%s: failed to add the host contoller device\n", __func__);
- platform_device_put(pdev);
- return NULL;
-}
-
-static void tegra_usb_otg_host_unregister(struct platform_device *pdev)
-{
- kfree(pdev->dev.platform_data);
- platform_device_unregister(pdev);
-}
-
static struct tegra_otg_platform_data tegra_otg_pdata = {
- .host_register = &tegra_usb_otg_host_register,
- .host_unregister = &tegra_usb_otg_host_unregister,
+ .ehci_device = &tegra_ehci1_device,
+ .ehci_pdata = &tegra_ehci_pdata[0],
};
static int __init whistler_gps_init(void)