diff options
Diffstat (limited to 'drivers/media/rc/ite-cir.c')
-rw-r--r-- | drivers/media/rc/ite-cir.c | 26 |
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 | ||
1612 | failure3: | 1612 | exit_release_cir_addr: |
1613 | free_irq(itdev->cir_irq, itdev); | ||
1614 | failure2: | ||
1615 | release_region(itdev->cir_addr, itdev->params.io_region_size); | 1613 | release_region(itdev->cir_addr, itdev->params.io_region_size); |
1616 | failure: | 1614 | exit_unregister_device: |
1615 | rc_unregister_device(rdev); | ||
1616 | exit_free_dev_rdev: | ||
1617 | rc_free_device(rdev); | 1617 | rc_free_device(rdev); |
1618 | kfree(itdev); | 1618 | kfree(itdev); |
1619 | 1619 | ||