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..
(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