Re: [RFC 0/4] mmc: tmio, sdhi: provide multiple irq handlers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 15, 2011 at 10:17:28AM +0200, Guennadi Liakhovetski wrote:
> Hi Simon
> 
> On Mon, 15 Aug 2011, Simon Horman wrote:
> 
> > The SDHI driver already supports making use of up to three interrupt
> > sources.
> > 
> > This series breaks up the existing interrupt handler into three handlers,
> > one for card access, one for card detect interrupts, and one for SDIO
> > interrupts.  A cover-all handler, which makes use of these new broken-out
> > handlers is provided for for the case where there is only one interrupt
> > source.
> 
> The idea is good, thanks for the patches. Only I'm not sure I find the way 
> you split the patches extremely intuitive;-) How about:
> 
> [PATCH 1/x] cache IRQ masks
>  * in this patch I'd propose to cache SD-card and SDIO IRQ masks in struct 
>    tmio_mmc_host, instead of reading them every time from the hardware

Sure, that sounds reasonable - though it seems somewhat orthogonal to my series.

I'll check over the code, but it seems that you are implying that
the masks never change.

> [PATCH 2/x] split the ISR
>  * in this patch you split the IRQ handler directly into the final form as 
>    after the first your 3 patches, without intermediate steps, also adding 
>    them to the header

The current split was intended to make bite-size patches that
are easy to review. I'm happy to combine the patches as you
suggest if that is what you prefer.

> [PATCH 3/x] SDHI: use specialized ISRs when available
>  * you know what to do here:-) Also, I'd

> #define SH_MOBILE_SDHI_IRQ_SDCARD	0
> #define SH_MOBILE_SDHI_IRQ_CARD_DETECT	1
> #define SH_MOBILE_SDHI_IRQ_SDIO		2
> 
> and use these defines both in platforms
> 
> 	}, [1 + SH_MOBILE_SDHI_IRQ_SDCARD] = {
> ...

I think I see what you are getting at there.
I will try and make it so.

> and in sh_mobile_sdhi.c, instead of going "case 2:" Please, also consider 
> unfolding the loop over platform IRQs in probing, it might look better 
> flat.

I agree the current loop isn't entirely clean.
I'll unroll it and see how things look.

> "card_access" in function names I would replace with "io" or "data," 
> "card_irq" with "sdcard_irq" because I believe, that "SD card" is a proper 
> identification to pure storage card in SD format, as opposed to SDIO 
> cards.

Sure, if you would prefer that naming scheme.

> Also, maybe you can double-check, whether you really need all those 
> functions with names, beginning with a double underscore, and whether 
> better names wouldn't be possible for them.

The motivation behind that aspect of the implementation is
to allow re-use of code while avoiding extra register reads.

I believe the two sdio functions could be collapsed into a single function
while only losing (probably unused) debugging information. I will do that,
though I decided against that option previously for the sake of consistency.

For the card_irq() functions I think it is a bit difficult to collapse things
because the access and detect handlers actually need to read the same
register(s).
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux