Thread (12 messages) 12 messages, 2 authors, 2011-08-17

Re: [PATCH 3/4] mmc: sdhi: Make use of per-source irq handlers

From: Guennadi Liakhovetski <hidden>
Date: 2011-08-17 12:22:56
Also in: linux-mmc

On Wed, 17 Aug 2011, Simon Horman wrote:
On Wed, Aug 17, 2011 at 08:41:47PM +0900, Simon Horman wrote:
quoted
On Wed, Aug 17, 2011 at 01:24:58PM +0200, Guennadi Liakhovetski wrote:
quoted
On Wed, 17 Aug 2011, Simon Horman wrote:
quoted
Make use of per-source irq handles if the
platform (data) has multiple irq sources.

Also, as suggested by Guennadi Liakhovetski,
add and use defines the index or irqs in platform data.

Cc: Guennadi Liakhovetski <redacted>
Cc: Magnus Damm <magnus.damm@gmail.com>
Signed-off-by: Simon Horman <horms@verge.net.au>

---

v5
* As suggested by Guennadi Liakhovetski:
  - Allow only SH_MOBILE_SDHI_IRQ_SDCARD and
    SH_MOBILE_SDHI_IRQ_SDIO to be specified in platform data
This means, CARD_DETECT is optional in a multi-irq configuration, agree.
[snip]
quoted
quoted
+	ret = irq = platform_get_irq(pdev, SH_MOBILE_SDHI_IRQ_SDCARD);
+	if (irq >= 0) {
+		multi_irq = true;
+		ret = request_irq(irq, tmio_mmc_sdcard_irq, 0,
+				  dev_name(&pdev->dev), host);
+		if (ret)
+			goto eirq_sdcard;
 	}
This means SDCARD is optional in both single- and multi-irq 
configurations.
quoted
+
+	ret = irq = platform_get_irq(pdev, SH_MOBILE_SDHI_IRQ_CARD_DETECT);
+	if (irq < 0)
+		goto eirq_card_detect;
This means, CARD_DETECT is compulsory in all configurations.

One of us must be speaking klingonish today.
Sorry, I messed that up a bit.

I will make CARD_DETECT optional in multi-irq configurations.
Likewise SDIO will be optional in multi-irq configurations.

But SDCARD will always be required.
Oops, that scheme won't work because in single-irq configuration
the only IRQ will be #0, but SDCARD != 0.

So I have it in mind to allow the following combinations.

i) SDIO, SDCARD, CARD_DETECT
ii) SDIO, SDCARD
iii) SDCARD, CARD_DETECT
iv) SDCARD only (sets multi_irq = true locally, but only one irq!)
v) CARD_DETECT only (uses tmio_mmc_irq(), traditional single-irq setup)
I would make it simple:

(1) 1 IRQ: only resource #0 (CARD_DETECT, use tmio_mmc_irq())
(2) 2 or 3 IRQs: compulsory SDCARD and any further IRQs: use respective 
    specialised ISRs.
Do you think iii and iv are necessary?
Accordingly: iii - yes, iv - no.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help