2007-01-09 14:40:22

by Pierre Tardy

[permalink] [raw]
Subject: Re: [RFC] New MMC driver model

Pierre Ossman <drzeus-list <at> drzeus.cx> writes:

>
> Register functions
> ==================
>
> I also intend to write a couple of register functions (sdio_read[bwl])
> so that card drivers doesn't have to deal with MMC requests more than
> necessary.

Good idea. Another need may be a sdio_read[bwl]_sync, which will poll for the
end of the cmd52s, instead of waiting for the irq. This polling is faster than
wait_for_completion/irq/tasklet/complete mechanism, which involve several
context switches.

> Endianness can also be handled there (SDIO are always LE).
I dont remember sdio spec forcing HW registers to be LE. Function 0 registers
are (BLKSZ for ex), but Function 1-7 register may be BE if the designers found
an advantage to it..





2007-01-10 20:34:09

by Pierre Ossman

[permalink] [raw]
Subject: Re: [RFC] New MMC driver model

(Please keep me as cc as I will almost always overlook you replies
otherwise)

pierre Tardy wrote:
> Pierre Ossman <drzeus-list <at> drzeus.cx> writes:
>
>> Register functions
>> ==================
>>
>> I also intend to write a couple of register functions (sdio_read[bwl])
>> so that card drivers doesn't have to deal with MMC requests more than
>> necessary.
>
> Good idea. Another need may be a sdio_read[bwl]_sync, which will poll for the
> end of the cmd52s, instead of waiting for the irq. This polling is faster than
> wait_for_completion/irq/tasklet/complete mechanism, which involve several
> context switches.
>

Hadn't thought of that. I will have to do some tests once I have
something functional.

>> Endianness can also be handled there (SDIO are always LE).
> I dont remember sdio spec forcing HW registers to be LE. Function 0 registers
> are (BLKSZ for ex), but Function 1-7 register may be BE if the designers found
> an advantage to it..
>

Hmm... It's been a while since I read the spec, but perhaps the LE
requirement was only for the base registers.

Rgds
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org