get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/293295/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 293295,
    "url": "http://patchwork.ozlabs.org/api/patches/293295/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1385086116-10972-5-git-send-email-alistair@popple.id.au/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/",
        "list_archive_url": "https://lore.kernel.org/linuxppc-dev/",
        "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/",
        "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"
    },
    "msgid": "<1385086116-10972-5-git-send-email-alistair@popple.id.au>",
    "list_archive_url": "https://lore.kernel.org/linuxppc-dev/1385086116-10972-5-git-send-email-alistair@popple.id.au/",
    "date": "2013-11-22T02:08:33",
    "name": "[5/8] ECHI Platform: Merge ppc-of EHCI driver into the ehci-platform driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": false,
    "hash": "8b66c1c17fe995daa054d7e289b288c07b8196a9",
    "submitter": {
        "id": 24781,
        "url": "http://patchwork.ozlabs.org/api/people/24781/?format=api",
        "name": "Alistair Popple",
        "email": "alistair@popple.id.au"
    },
    "delegate": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/users/14/?format=api",
        "username": "benh",
        "first_name": "Benjamin",
        "last_name": "Herrenschmidt",
        "email": "benh@kernel.crashing.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1385086116-10972-5-git-send-email-alistair@popple.id.au/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/293295/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/293295/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": [
            "patchwork-incoming@ozlabs.org",
            "linuxppc-dev@ozlabs.org"
        ],
        "Received": [
            "from ozlabs.org (localhost [IPv6:::1])\n\tby ozlabs.org (Postfix) with ESMTP id 7999F2C0348\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 22 Nov 2013 13:11:40 +1100 (EST)",
            "by ozlabs.org (Postfix)\n\tid E92682C0417; Fri, 22 Nov 2013 13:08:49 +1100 (EST)",
            "from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net\n\t[IPv6:2001:44b8:8060:ff02:300:1:6:4])\n\tby ozlabs.org (Postfix) with ESMTP id C328D2C049A\n\tfor <linuxppc-dev@ozlabs.org>; Fri, 22 Nov 2013 13:08:49 +1100 (EST)",
            "from ibmaus65.lnk.telstra.net (HELO localhost) ([165.228.126.9])\n\tby ipmail04.adl6.internode.on.net with ESMTP;\n\t22 Nov 2013 12:38:49 +1030"
        ],
        "X-IronPort-Anti-Spam-Filtered": "true",
        "X-IronPort-Anti-Spam-Result": "AhoEANK7jlKl5H4JgWdsb2JhbABZwEmBOg4BARYmKIImAQUnUhAISVcQCYgBwQ0XjwEHhDIDmBKTeoFSKA",
        "From": "Alistair Popple <alistair@popple.id.au>",
        "To": "benh@kernel.crashing.org",
        "Subject": "[PATCH 5/8] ECHI Platform: Merge ppc-of EHCI driver into the\n\tehci-platform driver",
        "Date": "Fri, 22 Nov 2013 13:08:33 +1100",
        "Message-Id": "<1385086116-10972-5-git-send-email-alistair@popple.id.au>",
        "X-Mailer": "git-send-email 1.7.10.4",
        "In-Reply-To": "<1385086057-10884-1-git-send-email-alistair@popple.id.au>",
        "References": "<1385086057-10884-1-git-send-email-alistair@popple.id.au>",
        "Cc": "linuxppc-dev@ozlabs.org, Alistair Popple <alistair@popple.id.au>",
        "X-BeenThere": "linuxppc-dev@lists.ozlabs.org",
        "X-Mailman-Version": "2.1.16rc2",
        "Precedence": "list",
        "List-Id": "Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>",
        "List-Unsubscribe": "<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>",
        "List-Subscribe": "<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org",
        "Sender": "\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>"
    },
    "content": "Currently the ppc-of driver uses the compatibility string\n\"usb-ehci\". This means platforms that use device-tree and implement an\nEHCI compatible interface have to either use the ppc-of driver or add\na compatible line to the ehci-platform driver. It would be more\nappropriate for the platform driver to be compatible with \"usb-ehci\"\nas non-powerpc platforms are also beginning to utilise device-tree.\n\nThis patch merges the device tree property parsing from ehci-ppc-of\ninto the platform driver and adds a \"usb-ehci\" compatibility\nstring. The existing ehci-ppc-of driver is removed and the 440EPX\nspecific quirks are added to the ehci-platform driver.\n\nSigned-off-by: Alistair Popple <alistair@popple.id.au>\n---\n drivers/usb/host/Kconfig         |    7 +-\n drivers/usb/host/ehci-hcd.c      |    5 -\n drivers/usb/host/ehci-platform.c |   86 +++++++++++++-\n drivers/usb/host/ehci-ppc-of.c   |  236 --------------------------------------\n 4 files changed, 88 insertions(+), 246 deletions(-)\n delete mode 100644 drivers/usb/host/ehci-ppc-of.c",
    "diff": "diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig\nindex b3f20d7..288fec1 100644\n--- a/drivers/usb/host/Kconfig\n+++ b/drivers/usb/host/Kconfig\n@@ -189,12 +189,13 @@ config USB_EHCI_TEGRA\n          found in NVIDIA Tegra SoCs. The controllers are EHCI compliant.\n \n config USB_EHCI_HCD_PPC_OF\n-\tbool \"EHCI support for PPC USB controller on OF platform bus\"\n+\tbool \"EHCI support for PPC USB controller on OF platform bus (DEPRECATED)\"\n \tdepends on PPC_OF\n \tdefault y\n+\tselect USB_EHCI_HCD_PLATFORM\n \t---help---\n-\t  Enables support for the USB controller present on the PowerPC\n-\t  OpenFirmware platform bus.\n+\t  This option is deprecated now and the driver was removed, use\n+\t  USB_EHCI_HCD_PLATFORM instead.\n \n config USB_EHCI_SH\n \tbool \"EHCI support for SuperH USB controller\"\ndiff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c\nindex 86ab9fd..d0f384a 100644\n--- a/drivers/usb/host/ehci-hcd.c\n+++ b/drivers/usb/host/ehci-hcd.c\n@@ -1228,11 +1228,6 @@ MODULE_LICENSE (\"GPL\");\n #define\tPS3_SYSTEM_BUS_DRIVER\tps3_ehci_driver\n #endif\n \n-#ifdef CONFIG_USB_EHCI_HCD_PPC_OF\n-#include \"ehci-ppc-of.c\"\n-#define OF_PLATFORM_DRIVER\tehci_hcd_ppc_of_driver\n-#endif\n-\n #ifdef CONFIG_XPS_USB_HCD_XILINX\n #include \"ehci-xilinx-of.c\"\n #define XILINX_OF_PLATFORM_DRIVER\tehci_hcd_xilinx_of_driver\ndiff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c\nindex f6b790c..d9747fb 100644\n--- a/drivers/usb/host/ehci-platform.c\n+++ b/drivers/usb/host/ehci-platform.c\n@@ -36,11 +36,33 @@\n \n static const char hcd_name[] = \"ehci-platform\";\n \n+/*\n+ * 440EPx Errata USBH_3\n+ * Fix: Enable Break Memory Transfer (BMT) in INSNREG3\n+ */\n+#define PPC440EPX_EHCI0_INSREG_BMT\t(0x1 << 0)\n+static int\n+ppc44x_enable_bmt(struct device_node *dn)\n+{\n+\t__iomem u32 *insreg_virt;\n+\n+\tinsreg_virt = of_iomap(dn, 1);\n+\tif (!insreg_virt)\n+\t\treturn  -EINVAL;\n+\n+\tout_be32(insreg_virt + 3, PPC440EPX_EHCI0_INSREG_BMT);\n+\n+\tiounmap(insreg_virt);\n+\treturn 0;\n+}\n+\n static int ehci_platform_reset(struct usb_hcd *hcd)\n {\n \tstruct platform_device *pdev = to_platform_device(hcd->self.controller);\n \tstruct usb_ehci_pdata *pdata = dev_get_platdata(&pdev->dev);\n \tstruct ehci_hcd *ehci = hcd_to_ehci(hcd);\n+\tstruct device_node *dn, *np;\n+\tstruct resource res;\n \tint retval;\n \n \thcd->has_tt = pdata->has_tt;\n@@ -48,6 +70,43 @@ static int ehci_platform_reset(struct usb_hcd *hcd)\n \tehci->big_endian_desc = pdata->big_endian_desc;\n \tehci->big_endian_mmio = pdata->big_endian_mmio;\n \n+\t/* Device tree properties if available will override platform data. */\n+\tdn = hcd_to_bus(hcd)->controller->of_node;\n+\tif (dn) {\n+\t\tif (of_get_property(dn, \"big-endian\", NULL)) {\n+\t\t\tehci->big_endian_mmio = 1;\n+\t\t\tehci->big_endian_desc = 1;\n+\t\t}\n+\t\tif (of_get_property(dn, \"big-endian-regs\", NULL))\n+\t\t\tehci->big_endian_mmio = 1;\n+\t\tif (of_get_property(dn, \"big-endian-desc\", NULL))\n+\t\t\tehci->big_endian_desc = 1;\n+\t}\n+\n+\tnp = of_find_compatible_node(NULL, NULL, \"ibm,usb-ohci-440epx\");\n+\tif (np != NULL) {\n+\t\t/* claim we really affected by usb23 erratum */\n+\t\tif (!of_address_to_resource(np, 0, &res))\n+\t\t\tehci->ohci_hcctrl_reg =\n+\t\t\t\tdevm_ioremap(&pdev->dev,\n+\t\t\t\t\t     res.start + OHCI_HCCTRL_OFFSET,\n+\t\t\t\t\t     OHCI_HCCTRL_LEN);\n+\t\telse\n+\t\t\tehci_dbg(ehci, \"%s: no ohci offset in fdt\\n\", __FILE__);\n+\t\tif (!ehci->ohci_hcctrl_reg) {\n+\t\t\tehci_dbg(ehci, \"%s: ioremap for ohci hcctrl failed\\n\",\n+\t\t\t\t__FILE__);\n+\t\t} else {\n+\t\t\tehci->has_amcc_usb23 = 1;\n+\t\t}\n+\t}\n+\n+\tif (of_device_is_compatible(dn, \"ibm,usb-ehci-440epx\")) {\n+\t\tretval = ppc44x_enable_bmt(dn);\n+\t\tehci_dbg(ehci, \"Break Memory Transfer (BMT) is %senabled!\\n\",\n+\t\t\tretval ? \"NOT \" : \"\");\n+\t}\n+\n \tif (pdata->pre_setup) {\n \t\tretval = pdata->pre_setup(hcd);\n \t\tif (retval < 0)\n@@ -149,6 +208,9 @@ static int ehci_platform_remove(struct platform_device *dev)\n {\n \tstruct usb_hcd *hcd = platform_get_drvdata(dev);\n \tstruct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);\n+\tstruct ehci_hcd *ehci = hcd_to_ehci(hcd);\n+\tstruct device_node *np;\n+\tstruct resource res;\n \n \tusb_remove_hcd(hcd);\n \tusb_put_hcd(hcd);\n@@ -159,6 +221,25 @@ static int ehci_platform_remove(struct platform_device *dev)\n \tif (pdata == &ehci_platform_defaults)\n \t\tdev->dev.platform_data = NULL;\n \n+\t/* use request_mem_region to test if the ohci driver is loaded.  if so\n+\t * ensure the ohci core is operational.\n+\t */\n+\tif (ehci->has_amcc_usb23) {\n+\t\tnp = of_find_compatible_node(NULL, NULL, \"ibm,usb-ohci-440epx\");\n+\t\tif (np != NULL) {\n+\t\t\tif (!of_address_to_resource(np, 0, &res))\n+\t\t\t\tif (!request_mem_region(res.start,\n+\t\t\t\t\t\t\t    0x4, hcd_name))\n+\t\t\t\t\tset_ohci_hcfs(ehci, 1);\n+\t\t\t\telse\n+\t\t\t\t\trelease_mem_region(res.start, 0x4);\n+\t\t\telse\n+\t\t\t\tehci_dbg(ehci, \"%s: no ohci offset in fdt\\n\",\n+\t\t\t\t\t__FILE__);\n+\t\t\tof_node_put(np);\n+\t\t}\n+\t}\n+\n \treturn 0;\n }\n \n@@ -203,9 +284,10 @@ static int ehci_platform_resume(struct device *dev)\n #define ehci_platform_resume\tNULL\n #endif /* CONFIG_PM */\n \n-static const struct of_device_id vt8500_ehci_ids[] = {\n+static const struct of_device_id ehci_platform_ids[] = {\n \t{ .compatible = \"via,vt8500-ehci\", },\n \t{ .compatible = \"wm,prizm-ehci\", },\n+\t{ .compatible = \"usb-ehci\", },\n \t{}\n };\n \n@@ -229,7 +311,7 @@ static struct platform_driver ehci_platform_driver = {\n \t\t.owner\t= THIS_MODULE,\n \t\t.name\t= \"ehci-platform\",\n \t\t.pm\t= &ehci_platform_pm_ops,\n-\t\t.of_match_table = vt8500_ehci_ids,\n+\t\t.of_match_table = ehci_platform_ids,\n \t}\n };\n \ndiff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c\ndeleted file mode 100644\nindex 932293f..0000000\n--- a/drivers/usb/host/ehci-ppc-of.c\n+++ /dev/null\n@@ -1,236 +0,0 @@\n-/*\n- * EHCI HCD (Host Controller Driver) for USB.\n- *\n- * Bus Glue for PPC On-Chip EHCI driver on the of_platform bus\n- * Tested on AMCC PPC 440EPx\n- *\n- * Valentine Barshak <vbarshak@ru.mvista.com>\n- *\n- * Based on \"ehci-ppc-soc.c\" by Stefan Roese <sr@denx.de>\n- * and \"ohci-ppc-of.c\" by Sylvain Munaut <tnt@246tNt.com>\n- *\n- * This file is licenced under the GPL.\n- */\n-\n-#include <linux/err.h>\n-#include <linux/signal.h>\n-\n-#include <linux/of.h>\n-#include <linux/of_platform.h>\n-\n-\n-static const struct hc_driver ehci_ppc_of_hc_driver = {\n-\t.description\t\t= hcd_name,\n-\t.product_desc\t\t= \"OF EHCI\",\n-\t.hcd_priv_size\t\t= sizeof(struct ehci_hcd),\n-\n-\t/*\n-\t * generic hardware linkage\n-\t */\n-\t.irq\t\t\t= ehci_irq,\n-\t.flags\t\t\t= HCD_MEMORY | HCD_USB2,\n-\n-\t/*\n-\t * basic lifecycle operations\n-\t */\n-\t.reset\t\t\t= ehci_setup,\n-\t.start\t\t\t= ehci_run,\n-\t.stop\t\t\t= ehci_stop,\n-\t.shutdown\t\t= ehci_shutdown,\n-\n-\t/*\n-\t * managing i/o requests and associated device resources\n-\t */\n-\t.urb_enqueue\t\t= ehci_urb_enqueue,\n-\t.urb_dequeue\t\t= ehci_urb_dequeue,\n-\t.endpoint_disable\t= ehci_endpoint_disable,\n-\t.endpoint_reset\t\t= ehci_endpoint_reset,\n-\n-\t/*\n-\t * scheduling support\n-\t */\n-\t.get_frame_number\t= ehci_get_frame,\n-\n-\t/*\n-\t * root hub support\n-\t */\n-\t.hub_status_data\t= ehci_hub_status_data,\n-\t.hub_control\t\t= ehci_hub_control,\n-#ifdef\tCONFIG_PM\n-\t.bus_suspend\t\t= ehci_bus_suspend,\n-\t.bus_resume\t\t= ehci_bus_resume,\n-#endif\n-\t.relinquish_port\t= ehci_relinquish_port,\n-\t.port_handed_over\t= ehci_port_handed_over,\n-\n-\t.clear_tt_buffer_complete\t= ehci_clear_tt_buffer_complete,\n-};\n-\n-\n-/*\n- * 440EPx Errata USBH_3\n- * Fix: Enable Break Memory Transfer (BMT) in INSNREG3\n- */\n-#define PPC440EPX_EHCI0_INSREG_BMT\t(0x1 << 0)\n-static int\n-ppc44x_enable_bmt(struct device_node *dn)\n-{\n-\t__iomem u32 *insreg_virt;\n-\n-\tinsreg_virt = of_iomap(dn, 1);\n-\tif (!insreg_virt)\n-\t\treturn  -EINVAL;\n-\n-\tout_be32(insreg_virt + 3, PPC440EPX_EHCI0_INSREG_BMT);\n-\n-\tiounmap(insreg_virt);\n-\treturn 0;\n-}\n-\n-\n-static int ehci_hcd_ppc_of_probe(struct platform_device *op)\n-{\n-\tstruct device_node *dn = op->dev.of_node;\n-\tstruct usb_hcd *hcd;\n-\tstruct ehci_hcd\t*ehci = NULL;\n-\tstruct resource res;\n-\tint irq;\n-\tint rv;\n-\n-\tstruct device_node *np;\n-\n-\tif (usb_disabled())\n-\t\treturn -ENODEV;\n-\n-\tdev_dbg(&op->dev, \"initializing PPC-OF USB Controller\\n\");\n-\n-\trv = of_address_to_resource(dn, 0, &res);\n-\tif (rv)\n-\t\treturn rv;\n-\n-\thcd = usb_create_hcd(&ehci_ppc_of_hc_driver, &op->dev, \"PPC-OF USB\");\n-\tif (!hcd)\n-\t\treturn -ENOMEM;\n-\n-\thcd->rsrc_start = res.start;\n-\thcd->rsrc_len = resource_size(&res);\n-\n-\tirq = irq_of_parse_and_map(dn, 0);\n-\tif (irq == NO_IRQ) {\n-\t\tprintk(KERN_ERR \"%s: irq_of_parse_and_map failed\\n\", __FILE__);\n-\t\trv = -EBUSY;\n-\t\tgoto err_irq;\n-\t}\n-\n-\thcd->regs = devm_ioremap_resource(&op->dev, &res);\n-\tif (IS_ERR(hcd->regs)) {\n-\t\trv = PTR_ERR(hcd->regs);\n-\t\tgoto err_ioremap;\n-\t}\n-\n-\tehci = hcd_to_ehci(hcd);\n-\tnp = of_find_compatible_node(NULL, NULL, \"ibm,usb-ohci-440epx\");\n-\tif (np != NULL) {\n-\t\t/* claim we really affected by usb23 erratum */\n-\t\tif (!of_address_to_resource(np, 0, &res))\n-\t\t\tehci->ohci_hcctrl_reg =\n-\t\t\t\tdevm_ioremap(&op->dev,\n-\t\t\t\t\t     res.start + OHCI_HCCTRL_OFFSET,\n-\t\t\t\t\t     OHCI_HCCTRL_LEN);\n-\t\telse\n-\t\t\tpr_debug(\"%s: no ohci offset in fdt\\n\", __FILE__);\n-\t\tif (!ehci->ohci_hcctrl_reg) {\n-\t\t\tpr_debug(\"%s: ioremap for ohci hcctrl failed\\n\", __FILE__);\n-\t\t} else {\n-\t\t\tehci->has_amcc_usb23 = 1;\n-\t\t}\n-\t}\n-\n-\tif (of_get_property(dn, \"big-endian\", NULL)) {\n-\t\tehci->big_endian_mmio = 1;\n-\t\tehci->big_endian_desc = 1;\n-\t}\n-\tif (of_get_property(dn, \"big-endian-regs\", NULL))\n-\t\tehci->big_endian_mmio = 1;\n-\tif (of_get_property(dn, \"big-endian-desc\", NULL))\n-\t\tehci->big_endian_desc = 1;\n-\n-\tehci->caps = hcd->regs;\n-\n-\tif (of_device_is_compatible(dn, \"ibm,usb-ehci-440epx\")) {\n-\t\trv = ppc44x_enable_bmt(dn);\n-\t\tehci_dbg(ehci, \"Break Memory Transfer (BMT) is %senabled!\\n\",\n-\t\t\t\trv ? \"NOT \": \"\");\n-\t}\n-\n-\trv = usb_add_hcd(hcd, irq, 0);\n-\tif (rv)\n-\t\tgoto err_ioremap;\n-\n-\treturn 0;\n-\n-err_ioremap:\n-\tirq_dispose_mapping(irq);\n-err_irq:\n-\tusb_put_hcd(hcd);\n-\n-\treturn rv;\n-}\n-\n-\n-static int ehci_hcd_ppc_of_remove(struct platform_device *op)\n-{\n-\tstruct usb_hcd *hcd = platform_get_drvdata(op);\n-\tstruct ehci_hcd *ehci = hcd_to_ehci(hcd);\n-\n-\tstruct device_node *np;\n-\tstruct resource res;\n-\n-\tdev_dbg(&op->dev, \"stopping PPC-OF USB Controller\\n\");\n-\n-\tusb_remove_hcd(hcd);\n-\n-\tirq_dispose_mapping(hcd->irq);\n-\n-\t/* use request_mem_region to test if the ohci driver is loaded.  if so\n-\t * ensure the ohci core is operational.\n-\t */\n-\tif (ehci->has_amcc_usb23) {\n-\t\tnp = of_find_compatible_node(NULL, NULL, \"ibm,usb-ohci-440epx\");\n-\t\tif (np != NULL) {\n-\t\t\tif (!of_address_to_resource(np, 0, &res))\n-\t\t\t\tif (!request_mem_region(res.start,\n-\t\t\t\t\t\t\t    0x4, hcd_name))\n-\t\t\t\t\tset_ohci_hcfs(ehci, 1);\n-\t\t\t\telse\n-\t\t\t\t\trelease_mem_region(res.start, 0x4);\n-\t\t\telse\n-\t\t\t\tpr_debug(\"%s: no ohci offset in fdt\\n\", __FILE__);\n-\t\t\tof_node_put(np);\n-\t\t}\n-\t}\n-\tusb_put_hcd(hcd);\n-\n-\treturn 0;\n-}\n-\n-\n-static const struct of_device_id ehci_hcd_ppc_of_match[] = {\n-\t{\n-\t\t.compatible = \"usb-ehci\",\n-\t},\n-\t{},\n-};\n-MODULE_DEVICE_TABLE(of, ehci_hcd_ppc_of_match);\n-\n-\n-static struct platform_driver ehci_hcd_ppc_of_driver = {\n-\t.probe\t\t= ehci_hcd_ppc_of_probe,\n-\t.remove\t\t= ehci_hcd_ppc_of_remove,\n-\t.shutdown\t= usb_hcd_platform_shutdown,\n-\t.driver = {\n-\t\t.name = \"ppc-of-ehci\",\n-\t\t.owner = THIS_MODULE,\n-\t\t.of_match_table = ehci_hcd_ppc_of_match,\n-\t},\n-};\n",
    "prefixes": [
        "5/8"
    ]
}