Minor clenaup in the AMD Alchemy Au1xxx HCD bus glue - 1. Make use platform_get_irq/resource() functions. 2. Remove unnecessary parameter in usb_ehci_au1xxx_probe().
Signed-off-by: Subhash Peddamallu <[EMAIL PROTECTED]> --- --- linux-2.6.19-rc5/drivers/usb/host/ehci-au1xxx.c.orig 2006-11-15 01:23:29.000000000 -0500 +++ linux-2.6.19-rc5/drivers/usb/host/ehci-au1xxx.c 2006-11-15 01:53:41.000000000 -0500 @@ -95,11 +95,13 @@ static void au1xxx_stop_ehc(struct platf * */ int usb_ehci_au1xxx_probe(const struct hc_driver *driver, - struct usb_hcd **hcd_out, struct platform_device *dev) + struct platform_device *dev) { int retval; struct usb_hcd *hcd; struct ehci_hcd *ehci; + struct resource *res; + int irq; #if defined(CONFIG_SOC_AU1200) && defined(CONFIG_DMA_COHERENT) @@ -114,15 +116,25 @@ int usb_ehci_au1xxx_probe(const struct h au1xxx_start_ehc(dev); - if (dev->resource[1].flags != IORESOURCE_IRQ) { - pr_debug("resource[1] is not IORESOURCE_IRQ"); - retval = -ENOMEM; + irq = platform_get_irq(dev, IORESOURCE_IRQ, 0); + if (irq < 0) { + pr_debug("%s: Found HC with no IRQ. Check setup!\n", + dev->name); + return -ENODEV; } hcd = usb_create_hcd(driver, &dev->dev, "Au1xxx"); if (!hcd) return -ENOMEM; - hcd->rsrc_start = dev->resource[0].start; - hcd->rsrc_len = dev->resource[0].end - dev->resource[0].start + 1; + + res = platform_get_resource(dev, IORESOURCE_MEM, 0); + if (!res) { + pr_debug("%s: Found HC with no register addr. Check setup!\n", + dev->name); + retval = -ENODEV; + goto err1; + } + hcd->rsrc_start = res->start; + hcd->rsrc_len = res->end - res->start + 1; if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { pr_debug("request_mem_region failed"); @@ -146,7 +158,7 @@ int usb_ehci_au1xxx_probe(const struct h /* ehci_hcd_init(hcd_to_ehci(hcd)); */ retval = - usb_add_hcd(hcd, dev->resource[1].start, IRQF_DISABLED | IRQF_SHARED); + usb_add_hcd(hcd, irq, IRQF_DISABLED | IRQF_SHARED); if (retval == 0) return retval; @@ -229,7 +241,6 @@ static const struct hc_driver ehci_au1xx static int ehci_hcd_au1xxx_drv_probe(struct platform_device *pdev) { - struct usb_hcd *hcd = NULL; int ret; pr_debug("In ehci_hcd_au1xxx_drv_probe\n"); @@ -237,7 +248,7 @@ static int ehci_hcd_au1xxx_drv_probe(str if (usb_disabled()) return -ENODEV; - ret = usb_ehci_au1xxx_probe(&ehci_au1xxx_hc_driver, &hcd, pdev); + ret = usb_ehci_au1xxx_probe(&ehci_au1xxx_hc_driver, pdev); return ret; } ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel