|
@@ -2867,8 +2867,8 @@ bad_on_1710:
|
|
|
udc->clr_halt = UDC_RESET_EP;
|
|
|
|
|
|
/* USB general purpose IRQ: ep0, state changes, dma, etc */
|
|
|
- status = request_irq(pdev->resource[1].start, omap_udc_irq,
|
|
|
- 0, driver_name, udc);
|
|
|
+ status = devm_request_irq(&pdev->dev, pdev->resource[1].start,
|
|
|
+ omap_udc_irq, 0, driver_name, udc);
|
|
|
if (status != 0) {
|
|
|
ERR("can't get irq %d, err %d\n",
|
|
|
(int) pdev->resource[1].start, status);
|
|
@@ -2876,20 +2876,20 @@ bad_on_1710:
|
|
|
}
|
|
|
|
|
|
/* USB "non-iso" IRQ (PIO for all but ep0) */
|
|
|
- status = request_irq(pdev->resource[2].start, omap_udc_pio_irq,
|
|
|
- 0, "omap_udc pio", udc);
|
|
|
+ status = devm_request_irq(&pdev->dev, pdev->resource[2].start,
|
|
|
+ omap_udc_pio_irq, 0, "omap_udc pio", udc);
|
|
|
if (status != 0) {
|
|
|
ERR("can't get irq %d, err %d\n",
|
|
|
(int) pdev->resource[2].start, status);
|
|
|
- goto cleanup2;
|
|
|
+ goto cleanup1;
|
|
|
}
|
|
|
#ifdef USE_ISO
|
|
|
- status = request_irq(pdev->resource[3].start, omap_udc_iso_irq,
|
|
|
- 0, "omap_udc iso", udc);
|
|
|
+ status = devm_request_irq(&pdev->dev, pdev->resource[3].start,
|
|
|
+ omap_udc_iso_irq, 0, "omap_udc iso", udc);
|
|
|
if (status != 0) {
|
|
|
ERR("can't get irq %d, err %d\n",
|
|
|
(int) pdev->resource[3].start, status);
|
|
|
- goto cleanup3;
|
|
|
+ goto cleanup1;
|
|
|
}
|
|
|
#endif
|
|
|
if (cpu_is_omap16xx() || cpu_is_omap7xx()) {
|
|
@@ -2902,22 +2902,11 @@ bad_on_1710:
|
|
|
create_proc_file();
|
|
|
status = usb_add_gadget_udc_release(&pdev->dev, &udc->gadget,
|
|
|
omap_udc_release);
|
|
|
- if (status)
|
|
|
- goto cleanup4;
|
|
|
-
|
|
|
- return 0;
|
|
|
+ if (!status)
|
|
|
+ return 0;
|
|
|
|
|
|
-cleanup4:
|
|
|
remove_proc_file();
|
|
|
|
|
|
-#ifdef USE_ISO
|
|
|
-cleanup3:
|
|
|
- free_irq(pdev->resource[2].start, udc);
|
|
|
-#endif
|
|
|
-
|
|
|
-cleanup2:
|
|
|
- free_irq(pdev->resource[1].start, udc);
|
|
|
-
|
|
|
cleanup1:
|
|
|
kfree(udc);
|
|
|
udc = NULL;
|
|
@@ -2961,12 +2950,6 @@ static int omap_udc_remove(struct platform_device *pdev)
|
|
|
|
|
|
remove_proc_file();
|
|
|
|
|
|
-#ifdef USE_ISO
|
|
|
- free_irq(pdev->resource[3].start, udc);
|
|
|
-#endif
|
|
|
- free_irq(pdev->resource[2].start, udc);
|
|
|
- free_irq(pdev->resource[1].start, udc);
|
|
|
-
|
|
|
if (udc->dc_clk) {
|
|
|
if (udc->clk_requested)
|
|
|
omap_udc_enable_clock(0);
|