aboutsummaryrefslogtreecommitdiff
path: root/drivers/mmc/core/cd-gpio.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-04-13 13:32:07 -0700
committerDavid S. Miller <davem@davemloft.net>2012-04-13 13:32:07 -0700
commit3423166fdbc2444bf3a4a27af1d7508364a17be7 (patch)
tree0a42bd5fbe6bcca79802bf1ec5af6acf12aadd82 /drivers/mmc/core/cd-gpio.c
parente9b57cca3dbdc7a0b90514af8bf613baf97105a5 (diff)
parent7d93101fc71ec47c7cc66ac99f76ef795c5207aa (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
Diffstat (limited to 'drivers/mmc/core/cd-gpio.c')
-rw-r--r--drivers/mmc/core/cd-gpio.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/mmc/core/cd-gpio.c b/drivers/mmc/core/cd-gpio.c
index 082202ae4a03..29de31e260dd 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;