From: ben@fluff.org.uk
To: linux-kernel@vger.kernel.org, drzeus-mmc@drzeus.cx
Cc: laforge@openmoko.org, tk@maintech.de, Ben Dooks <ben-linux@fluff.org>
Subject: [patch v5 09/16] MMC: S3C24XX: Allow card-detect on non-IRQ capable pin
Date: Mon, 30 Jun 2008 22:40:32 +0100 [thread overview]
Message-ID: <20080630214110.435818323@fluff.org.uk> (raw)
In-Reply-To: 20080630214023.140288591@fluff.org.uk
[-- Attachment #1: simtec/s3c24xx-sdmmc-nocdirq.patch --]
[-- Type: text/plain, Size: 2355 bytes --]
Add support to the S3C24XX MMC driver to have the card detect be on
a pin that is not IRQ capable.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Index: linux-2.6.26-rc8-next20080627/drivers/mmc/host/s3cmci.c
===================================================================
--- linux-2.6.26-rc8-next20080627.orig/drivers/mmc/host/s3cmci.c 2008-06-30 12:36:49.000000000 +0100
+++ linux-2.6.26-rc8-next20080627/drivers/mmc/host/s3cmci.c 2008-06-30 12:36:51.000000000 +0100
@@ -1150,8 +1150,6 @@ static int __devinit s3cmci_probe(struct
host->pio_active = XFER_NONE;
host->dma = S3CMCI_DMA;
- host->irq_cd = s3c2410_gpio_getirq(host->pdata->gpio_detect);
- s3c2410_gpio_cfgpin(host->pdata->gpio_detect, S3C2410_GPIO_IRQ);
host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!host->mem) {
@@ -1197,14 +1195,20 @@ static int __devinit s3cmci_probe(struct
disable_irq(host->irq);
- s3c2410_gpio_cfgpin(host->pdata->gpio_detect, S3C2410_GPIO_IRQ);
- set_irq_type(host->irq_cd, IRQT_BOTHEDGE);
+ host->irq_cd = s3c2410_gpio_getirq(host->pdata->gpio_detect);
- if (request_irq(host->irq_cd, s3cmci_irq_cd, 0, DRIVER_NAME, host)) {
- dev_err(&pdev->dev,
- "failed to request card detect interrupt.\n");
- ret = -ENOENT;
- goto probe_free_irq;
+ if (host->irq_cd >= 0) {
+ if (request_irq(host->irq_cd, s3cmci_irq_cd,
+ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
+ DRIVER_NAME, host)) {
+ dev_err(&pdev->dev, "can't get card detect irq.\n");
+ ret = -ENOENT;
+ goto probe_free_irq;
+ }
+ } else {
+ dev_warn(&pdev->dev, "host detect has no irq available\n");
+ s3c2410_gpio_cfgpin(host->pdata->gpio_detect,
+ S3C2410_GPIO_INPUT);
}
if (host->pdata->gpio_wprotect)
@@ -1273,7 +1277,8 @@ static int __devinit s3cmci_probe(struct
clk_put(host->clk);
probe_free_irq_cd:
- free_irq(host->irq_cd, host);
+ if (host->irq_cd >= 0)
+ free_irq(host->irq_cd, host);
probe_free_irq:
free_irq(host->irq, host);
@@ -1303,7 +1308,8 @@ static int s3cmci_remove(struct platform
tasklet_disable(&host->pio_tasklet);
s3c2410_dma_free(S3CMCI_DMA, &s3cmci_dma_client);
- free_irq(host->irq_cd, host);
+ if (host->irq_cd >= 0)
+ free_irq(host->irq_cd, host);
free_irq(host->irq, host);
iounmap(host->base);
--
Ben (ben@fluff.org, http://www.fluff.org/)
'a smiley only costs 4 bytes'
next prev parent reply other threads:[~2008-06-30 21:51 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-30 21:40 [patch v5 00/16] S3C24XX SD/MMC driver ben
2008-06-30 21:40 ` [patch v5 01/16] MMC: S3C24XX MMC/SD driver ben
2008-06-30 21:40 ` [patch v5 02/16] MMC: S3C24XX MMC/SD driver write fixes ben
2008-06-30 21:40 ` [patch v5 03/16] MMC: DMA free fix for S3C24XX SD/MMC driver ben
2008-06-30 21:40 ` [patch v5 04/16] MMC: S3C24XX MMC/SD stop fix ben
2008-06-30 21:40 ` [patch v5 05/16] MMC: Fix S3C24XX IRQ enable during PIO transfers ben
2008-06-30 21:40 ` [patch v5 06/16] MMC: S3C24XX: Add platform data for MMC/SD driver ben
2008-06-30 21:40 ` [patch v5 07/16] MMC: S3C24XX: Add support to invert write protect line ben
2008-06-30 21:40 ` [patch v5 08/16] MMC: S3C24XX: Ensure host->mrq->data is valid ben
2008-06-30 21:40 ` ben [this message]
2008-06-30 21:40 ` [patch v5 10/16] MMC: S3C24XX: Fix s3c2410_dma_request() return code check ben
2008-06-30 21:40 ` [patch v5 11/16] MMC: S3C24XX: Add MODULE_ALIAS() entries for the platform devices ben
2008-06-30 21:40 ` [patch v5 12/16] MMC: S3C24XX: Fix use of msecs where jiffies are needed ben
2008-06-30 21:40 ` [patch v5 13/16] MMC: S3C24XX: Add media presence test to request handling ben
2008-06-30 21:40 ` [patch v5 14/16] MMC: S3C24XX: Update error debugging ben
2008-06-30 21:40 ` [patch v5 15/16] MMC: S3C24XX: Add maintainer entry ben
2008-06-30 21:40 ` [patch v5 16/16] MMC: S3C24XX: Refuse incorrectly aligned transfers ben
2008-06-30 21:47 ` [patch v5 00/16] S3C24XX SD/MMC driver Ben Dooks
2008-07-04 17:05 ` Pierre Ossman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080630214110.435818323@fluff.org.uk \
--to=ben@fluff.org.uk \
--cc=ben-linux@fluff.org \
--cc=drzeus-mmc@drzeus.cx \
--cc=laforge@openmoko.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tk@maintech.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.