aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/radio
diff options
context:
space:
mode:
authorSebastian Reichel <sre@kernel.org>2014-10-21 11:07:03 -0400
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-11-14 15:05:40 -0500
commitc3a5baf452df03e3d571298c86d2ed8638c9d18d (patch)
treec33482d959ad21aaf2da0951bb8f661cefbdacb9 /drivers/media/radio
parent80cd5c7a4ed0561d52dbe71556f8b8ea5165d67b (diff)
[media] si4713: use managed irq request
Introduce the usage of managed irq request to simplify the code slightly. Signed-off-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/radio')
-rw-r--r--drivers/media/radio/si4713/si4713.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/media/radio/si4713/si4713.c b/drivers/media/radio/si4713/si4713.c
index afea1c311240..449f6cda2938 100644
--- a/drivers/media/radio/si4713/si4713.c
+++ b/drivers/media/radio/si4713/si4713.c
@@ -1589,7 +1589,7 @@ static int si4713_probe(struct i2c_client *client,
1589 sdev->sd.ctrl_handler = hdl; 1589 sdev->sd.ctrl_handler = hdl;
1590 1590
1591 if (client->irq) { 1591 if (client->irq) {
1592 rval = request_irq(client->irq, 1592 rval = devm_request_irq(&client->dev, client->irq,
1593 si4713_handler, IRQF_TRIGGER_FALLING, 1593 si4713_handler, IRQF_TRIGGER_FALLING,
1594 client->name, sdev); 1594 client->name, sdev);
1595 if (rval < 0) { 1595 if (rval < 0) {
@@ -1604,14 +1604,11 @@ static int si4713_probe(struct i2c_client *client,
1604 rval = si4713_initialize(sdev); 1604 rval = si4713_initialize(sdev);
1605 if (rval < 0) { 1605 if (rval < 0) {
1606 v4l2_err(&sdev->sd, "Failed to probe device information.\n"); 1606 v4l2_err(&sdev->sd, "Failed to probe device information.\n");
1607 goto free_irq; 1607 goto free_ctrls;
1608 } 1608 }
1609 1609
1610 return 0; 1610 return 0;
1611 1611
1612free_irq:
1613 if (client->irq)
1614 free_irq(client->irq, sdev);
1615free_ctrls: 1612free_ctrls:
1616 v4l2_ctrl_handler_free(hdl); 1613 v4l2_ctrl_handler_free(hdl);
1617exit: 1614exit:
@@ -1627,9 +1624,6 @@ static int si4713_remove(struct i2c_client *client)
1627 if (sdev->power_state) 1624 if (sdev->power_state)
1628 si4713_set_power_state(sdev, POWER_DOWN); 1625 si4713_set_power_state(sdev, POWER_DOWN);
1629 1626
1630 if (client->irq > 0)
1631 free_irq(client->irq, sdev);
1632
1633 v4l2_device_unregister_subdev(sd); 1627 v4l2_device_unregister_subdev(sd);
1634 v4l2_ctrl_handler_free(sd->ctrl_handler); 1628 v4l2_ctrl_handler_free(sd->ctrl_handler);
1635 1629