From 7371eedb299b7d5524476377985e910dc023bb90 Mon Sep 17 00:00:00 2001 From: Alexandre Courbot Date: Wed, 2 Nov 2011 16:57:31 +0900 Subject: 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 Change-Id: I99b118664f0481f6c5470411b43f36609e0feb52 Reviewed-on: http://git-master/r/61763 Reviewed-by: Lokesh Pathak Tested-by: Lokesh Pathak Rebase-Id: R0f6060514c017946cc9ae2ba2f04a1c134d14d9b --- arch/arm/mach-tegra/board-whistler.c | 52 ++---------------------------------- 1 file changed, 2 insertions(+), 50 deletions(-) (limited to 'arch/arm/mach-tegra/board-whistler.c') 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) -- cgit v1.2.3