[PATCH 18/22] usb: remove ehci-sh

Christoph Hellwig
2023-01-13T06:30:46Z

Now that arch/sh is removed this driver is dead code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/usb/host/Kconfig | 7 --
drivers/usb/host/ehci-hcd.c | 7 --
drivers/usb/host/ehci-sh.c | 182 ------------------------------------
3 files changed, 196 deletions(-)
delete mode 100644 drivers/usb/host/ehci-sh.c

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index ca5f657c092cf4..ddd8b798626caf 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -279,13 +279,6 @@ config USB_EHCI_HCD_PPC_OF
Enables support for the USB controller present on the PowerPC
OpenFirmware platform bus.

-config USB_EHCI_SH
- bool "EHCI support for SuperH USB controller"
- depends on SUPERH || COMPILE_TEST
- help
- Enables support for the on-chip EHCI controller on the SuperH.
- If you use the PCI EHCI controller, this option is not necessary.
-
config USB_EHCI_EXYNOS
tristate "EHCI support for Samsung S5P/Exynos SoC Series"
depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index a1930db0da1c3c..e6dfef3492aabe 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -1309,10 +1309,6 @@ MODULE_DESCRIPTION(DRIVER_DESC);
MODULE_AUTHOR (DRIVER_AUTHOR);
MODULE_LICENSE ("GPL");

-#ifdef CONFIG_USB_EHCI_SH
-#include "ehci-sh.c"
-#endif
-
#ifdef CONFIG_PPC_PS3
#include "ehci-ps3.c"
#endif
@@ -1330,9 +1326,6 @@ MODULE_LICENSE ("GPL");
#endif

static struct platform_driver * const platform_drivers[] = {
-#ifdef CONFIG_USB_EHCI_SH
- &ehci_hcd_sh_driver,
-#endif
#ifdef CONFIG_USB_EHCI_HCD_PPC_OF
&ehci_hcd_ppc_of_driver,
#endif
diff --git a/drivers/usb/host/ehci-sh.c b/drivers/usb/host/ehci-sh.c
deleted file mode 100644
index c25c51d26f2603..00000000000000
--- a/drivers/usb/host/ehci-sh.c
+++ /dev/null
@@ -1,182 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * SuperH EHCI host controller driver
- *
- * Copyright (C) 2010 Paul Mundt
- *
- * Based on ohci-sh.c and ehci-atmel.c.
- */
-#include <linux/platform_device.h>
-#include <linux/clk.h>
-
-struct ehci_sh_priv {
- struct clk *iclk, *fclk;
- struct usb_hcd *hcd;
-};
-
-static int ehci_sh_reset(struct usb_hcd *hcd)
-{
- struct ehci_hcd *ehci = hcd_to_ehci(hcd);
-
- ehci->caps = hcd->regs;
-
- return ehci_setup(hcd);
-}
-
-static const struct hc_driver ehci_sh_hc_driver = {
- .description = hcd_name,
- .product_desc = "SuperH EHCI",
- .hcd_priv_size = sizeof(struct ehci_hcd),
-
- /*
- * generic hardware linkage
- */
- .irq = ehci_irq,
- .flags = HCD_USB2 | HCD_DMA | HCD_MEMORY | HCD_BH,
-
- /*
- * basic lifecycle operations
- */
- .reset = ehci_sh_reset,
- .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,
-
-#ifdef CONFIG_PM
- .bus_suspend = ehci_bus_suspend,
- .bus_resume = ehci_bus_resume,
-#endif
-
- .relinquish_port = ehci_relinquish_port,
- .port_handed_over = ehci_port_handed_over,
- .clear_tt_buffer_complete = ehci_clear_tt_buffer_complete,
-};
-
-static int ehci_hcd_sh_probe(struct platform_device *pdev)
-{
- struct resource *res;
- struct ehci_sh_priv *priv;
- struct usb_hcd *hcd;
- int irq, ret;
-
- if (usb_disabled())
- return -ENODEV;
-
- irq = platform_get_irq(pdev, 0);
- if (irq <= 0) {
- ret = -ENODEV;
- goto fail_create_hcd;
- }
-
- /* initialize hcd */
- hcd = usb_create_hcd(&ehci_sh_hc_driver, &pdev->dev,
- dev_name(&pdev->dev));
- if (!hcd) {
- ret = -ENOMEM;
- goto fail_create_hcd;
- }
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- hcd->regs = devm_ioremap_resource(&pdev->dev, res);
- if (IS_ERR(hcd->regs)) {
- ret = PTR_ERR(hcd->regs);
- goto fail_request_resource;
- }
- hcd->rsrc_start = res->start;
- hcd->rsrc_len = resource_size(res);
-
- priv = devm_kzalloc(&pdev->dev, sizeof(struct ehci_sh_priv),
- GFP_KERNEL);
- if (!priv) {
- ret = -ENOMEM;
- goto fail_request_resource;
- }
-
- /* These are optional, we don't care if they fail */
- priv->fclk = devm_clk_get(&pdev->dev, "usb_fck");
- if (IS_ERR(priv->fclk))
- priv->fclk = NULL;
-
- priv->iclk = devm_clk_get(&pdev->dev, "usb_ick");
- if (IS_ERR(priv->iclk))
- priv->iclk = NULL;
-
- clk_enable(priv->fclk);
- clk_enable(priv->iclk);
-
- ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
- if (ret != 0) {
- dev_err(&pdev->dev, "Failed to add hcd");
- goto fail_add_hcd;
- }
- device_wakeup_enable(hcd->self.controller);
-
- priv->hcd = hcd;
- platform_set_drvdata(pdev, priv);
-
- return ret;
-
-fail_add_hcd:
- clk_disable(priv->iclk);
- clk_disable(priv->fclk);
-
-fail_request_resource:
- usb_put_hcd(hcd);
-fail_create_hcd:
- dev_err(&pdev->dev, "init %s fail, %d\n", dev_name(&pdev->dev), ret);
-
- return ret;
-}
-
-static int ehci_hcd_sh_remove(struct platform_device *pdev)
-{
- struct ehci_sh_priv *priv = platform_get_drvdata(pdev);
- struct usb_hcd *hcd = priv->hcd;
-
- usb_remove_hcd(hcd);
- usb_put_hcd(hcd);
-
- clk_disable(priv->fclk);
- clk_disable(priv->iclk);
-
- return 0;
-}
-
-static void ehci_hcd_sh_shutdown(struct platform_device *pdev)
-{
- struct ehci_sh_priv *priv = platform_get_drvdata(pdev);
- struct usb_hcd *hcd = priv->hcd;
-
- if (hcd->driver->shutdown)
- hcd->driver->shutdown(hcd);
-}
-
-static struct platform_driver ehci_hcd_sh_driver = {
- .probe = ehci_hcd_sh_probe,
- .remove = ehci_hcd_sh_remove,
- .shutdown = ehci_hcd_sh_shutdown,
- .driver = {
- .name = "sh_ehci",
- },
-};
-
-MODULE_ALIAS("platform:sh_ehci");
--
2.39.0