From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felipe Balbi Subject: [PATCH v3 15/15] mfd: menelaus: Use devm_request_threaded_irq() Date: Mon, 9 Dec 2013 10:21:25 -0600 Message-ID: <1386606085-26838-15-git-send-email-balbi@ti.com> References: <20131209161422.GC24047@saruman.home> <1386606085-26838-1-git-send-email-balbi@ti.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from devils.ext.ti.com ([198.47.26.153]:59758 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933964Ab3LIQWq (ORCPT ); Mon, 9 Dec 2013 11:22:46 -0500 In-Reply-To: <1386606085-26838-1-git-send-email-balbi@ti.com> Sender: linux-omap-owner@vger.kernel.org List-Id: linux-omap@vger.kernel.org To: lee.jones@linaro.org Cc: Tony Lindgren , Aaro Koskinen , Linux OMAP Mailing List , Linux ARM Kernel Mailing List , Linux Kernel Mailing List , Felipe Balbi By using devm_request_threaded_irq() we can drop a few extra lines of code and rely on device managed resources layer to free our IRQ for us. Tested-by: Aaro Koskinen Signed-off-by: Felipe Balbi --- drivers/mfd/menelaus.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/mfd/menelaus.c b/drivers/mfd/menelaus.c index bffe978..b87c2bd 100644 --- a/drivers/mfd/menelaus.c +++ b/drivers/mfd/menelaus.c @@ -1271,8 +1271,8 @@ static int menelaus_probe(struct i2c_client *client, /* Set output buffer strengths */ menelaus_write_reg(m, MENELAUS_MCT_CTRL1, 0x73); - err = request_threaded_irq(client->irq, NULL, menelaus_irq, - IRQF_ONESHOT, DRIVER_NAME, m); + err = devm_request_threaded_irq(&client->dev, client->irq, + NULL, menelaus_irq, IRQF_ONESHOT, DRIVER_NAME, m); if (err) { dev_dbg(&client->dev, "can't get IRQ %d, err %d\n", client->irq, err); @@ -1283,7 +1283,7 @@ static int menelaus_probe(struct i2c_client *client, val = menelaus_read_reg(m, MENELAUS_VCORE_CTRL1); if (val < 0) - goto fail_free_irq; + goto fail_free_descs; if (val & (1 << 7)) m->vcore_hw_mode = 1; else @@ -1292,14 +1292,12 @@ static int menelaus_probe(struct i2c_client *client, if (menelaus_pdata != NULL && menelaus_pdata->late_init != NULL) { err = menelaus_pdata->late_init(&client->dev); if (err < 0) - goto fail_free_irq; + goto fail_free_descs; } menelaus_rtc_init(m); return 0; -fail_free_irq: - free_irq(client->irq, m); fail_free_descs: irq_free_descs(irq_base, MENELAUS_NR_IRQS); @@ -1311,7 +1309,6 @@ static int menelaus_remove(struct i2c_client *client) { struct menelaus_chip *m = i2c_get_clientdata(client); - free_irq(client->irq, m); irq_free_descs(m->irq_base, MENELAUS_NR_IRQS); the_menelaus = NULL; return 0; -- 1.8.4.GIT