diff options
Diffstat (limited to 'drivers/usb/host/ehci-tilegx.c')
| -rw-r--r-- | drivers/usb/host/ehci-tilegx.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/host/ehci-tilegx.c b/drivers/usb/host/ehci-tilegx.c index 67026ffbf9a..0d247673c3c 100644 --- a/drivers/usb/host/ehci-tilegx.c +++ b/drivers/usb/host/ehci-tilegx.c @@ -142,8 +142,8 @@ static int ehci_hcd_tilegx_drv_probe(struct platform_device *pdev)  	ehci->hcs_params = readl(&ehci->caps->hcs_params);  	/* Create our IRQs and register them. */ -	pdata->irq = create_irq(); -	if (pdata->irq < 0) { +	pdata->irq = irq_alloc_hwirq(-1); +	if (!pdata->irq) {  		ret = -ENXIO;  		goto err_no_irq;  	} @@ -170,11 +170,12 @@ static int ehci_hcd_tilegx_drv_probe(struct platform_device *pdev)  	ret = usb_add_hcd(hcd, pdata->irq, IRQF_SHARED);  	if (ret == 0) {  		platform_set_drvdata(pdev, hcd); +		device_wakeup_enable(hcd->self.controller);  		return ret;  	}  err_have_irq: -	destroy_irq(pdata->irq); +	irq_free_hwirq(pdata->irq);  err_no_irq:  	tilegx_stop_ehc();  	usb_put_hcd(hcd); @@ -192,7 +193,7 @@ static int ehci_hcd_tilegx_drv_remove(struct platform_device *pdev)  	usb_put_hcd(hcd);  	tilegx_stop_ehc();  	gxio_usb_host_destroy(&pdata->usb_ctx); -	destroy_irq(pdata->irq); +	irq_free_hwirq(pdata->irq);  	return 0;  }  | 
