| From 6859f92c44996d7337c5d3a1dbfbbb43af00a3c4 Mon Sep 17 00:00:00 2001 |
| From: Guennadi Liakhovetski <g.liakhovetski@gmx.de> |
| Date: Thu, 9 Feb 2012 22:57:07 +0100 |
| Subject: mmc: simplify mmc_cd_gpio_request() by removing two parameters |
| |
| Calculate the IRQ number, using gpio_to_irq() and use fixed flags: trigger |
| on both edges. This makes two out of four arguments of the |
| mmc_cd_gpio_request() function redundant. |
| |
| Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> |
| Signed-off-by: Chris Ball <cjb@laptop.org> |
| (cherry picked from commit c9b0546a59293cabf54c85e1218da595af3274ff) |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| drivers/mmc/core/cd-gpio.c | 13 +++++++++---- |
| include/linux/mmc/cd-gpio.h | 3 +-- |
| 2 files changed, 10 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/mmc/core/cd-gpio.c b/drivers/mmc/core/cd-gpio.c |
| index 082202a..29de31e 100644 |
| --- a/drivers/mmc/core/cd-gpio.c |
| +++ b/drivers/mmc/core/cd-gpio.c |
| @@ -28,13 +28,17 @@ static irqreturn_t mmc_cd_gpio_irqt(int irq, void *dev_id) |
| return IRQ_HANDLED; |
| } |
| |
| -int mmc_cd_gpio_request(struct mmc_host *host, unsigned int gpio, |
| - unsigned int irq, unsigned long flags) |
| +int mmc_cd_gpio_request(struct mmc_host *host, unsigned int gpio) |
| { |
| size_t len = strlen(dev_name(host->parent)) + 4; |
| - struct mmc_cd_gpio *cd = kmalloc(sizeof(*cd) + len, GFP_KERNEL); |
| + struct mmc_cd_gpio *cd; |
| + int irq = gpio_to_irq(gpio); |
| int ret; |
| |
| + if (irq < 0) |
| + return irq; |
| + |
| + cd = kmalloc(sizeof(*cd) + len, GFP_KERNEL); |
| if (!cd) |
| return -ENOMEM; |
| |
| @@ -45,7 +49,8 @@ int mmc_cd_gpio_request(struct mmc_host *host, unsigned int gpio, |
| goto egpioreq; |
| |
| ret = request_threaded_irq(irq, NULL, mmc_cd_gpio_irqt, |
| - flags, cd->label, host); |
| + IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, |
| + cd->label, host); |
| if (ret < 0) |
| goto eirqreq; |
| |
| diff --git a/include/linux/mmc/cd-gpio.h b/include/linux/mmc/cd-gpio.h |
| index a8e4697..cefaba0 100644 |
| --- a/include/linux/mmc/cd-gpio.h |
| +++ b/include/linux/mmc/cd-gpio.h |
| @@ -12,8 +12,7 @@ |
| #define MMC_CD_GPIO_H |
| |
| struct mmc_host; |
| -int mmc_cd_gpio_request(struct mmc_host *host, unsigned int gpio, |
| - unsigned int irq, unsigned long flags); |
| +int mmc_cd_gpio_request(struct mmc_host *host, unsigned int gpio); |
| void mmc_cd_gpio_free(struct mmc_host *host); |
| |
| #endif |
| -- |
| 1.7.10.2.565.gbd578b5 |
| |