aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/rc/ite-cir.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/rc/ite-cir.c')
-rw-r--r--drivers/media/rc/ite-cir.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
index 1b8669b6d042..dd8237324c09 100644
--- a/drivers/media/rc/ite-cir.c
+++ b/drivers/media/rc/ite-cir.c
@@ -1472,7 +1472,7 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1472 /* input device for IR remote (and tx) */ 1472 /* input device for IR remote (and tx) */
1473 rdev = rc_allocate_device(); 1473 rdev = rc_allocate_device();
1474 if (!rdev) 1474 if (!rdev)
1475 goto failure; 1475 goto exit_free_dev_rdev;
1476 itdev->rdev = rdev; 1476 itdev->rdev = rdev;
1477 1477
1478 ret = -ENODEV; 1478 ret = -ENODEV;
@@ -1498,12 +1498,12 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1498 if (!pnp_port_valid(pdev, io_rsrc_no) || 1498 if (!pnp_port_valid(pdev, io_rsrc_no) ||
1499 pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) { 1499 pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
1500 dev_err(&pdev->dev, "IR PNP Port not valid!\n"); 1500 dev_err(&pdev->dev, "IR PNP Port not valid!\n");
1501 goto failure; 1501 goto exit_free_dev_rdev;
1502 } 1502 }
1503 1503
1504 if (!pnp_irq_valid(pdev, 0)) { 1504 if (!pnp_irq_valid(pdev, 0)) {
1505 dev_err(&pdev->dev, "PNP IRQ not valid!\n"); 1505 dev_err(&pdev->dev, "PNP IRQ not valid!\n");
1506 goto failure; 1506 goto exit_free_dev_rdev;
1507 } 1507 }
1508 1508
1509 /* store resource values */ 1509 /* store resource values */
@@ -1591,29 +1591,29 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
1591 rdev->driver_name = ITE_DRIVER_NAME; 1591 rdev->driver_name = ITE_DRIVER_NAME;
1592 rdev->map_name = RC_MAP_RC6_MCE; 1592 rdev->map_name = RC_MAP_RC6_MCE;
1593 1593
1594 ret = rc_register_device(rdev);
1595 if (ret)
1596 goto exit_free_dev_rdev;
1597
1594 ret = -EBUSY; 1598 ret = -EBUSY;
1595 /* now claim resources */ 1599 /* now claim resources */
1596 if (!request_region(itdev->cir_addr, 1600 if (!request_region(itdev->cir_addr,
1597 dev_desc->io_region_size, ITE_DRIVER_NAME)) 1601 dev_desc->io_region_size, ITE_DRIVER_NAME))
1598 goto failure; 1602 goto exit_unregister_device;
1599 1603
1600 if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED, 1604 if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
1601 ITE_DRIVER_NAME, (void *)itdev)) 1605 ITE_DRIVER_NAME, (void *)itdev))
1602 goto failure2; 1606 goto exit_release_cir_addr;
1603
1604 ret = rc_register_device(rdev);
1605 if (ret)
1606 goto failure3;
1607 1607
1608 ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); 1608 ite_pr(KERN_NOTICE, "driver has been successfully loaded\n");
1609 1609
1610 return 0; 1610 return 0;
1611 1611
1612failure3: 1612exit_release_cir_addr:
1613 free_irq(itdev->cir_irq, itdev);
1614failure2:
1615 release_region(itdev->cir_addr, itdev->params.io_region_size); 1613 release_region(itdev->cir_addr, itdev->params.io_region_size);
1616failure: 1614exit_unregister_device:
1615 rc_unregister_device(rdev);
1616exit_free_dev_rdev:
1617 rc_free_device(rdev); 1617 rc_free_device(rdev);
1618 kfree(itdev); 1618 kfree(itdev);
1619 1619