Re: Support for TI FlashMedia (pci id 104c:8033, 104c:803b) flash card readers

From: Alex Dubov
Date: Mon Sep 04 2006 - 10:10:30 EST



--- Pierre Ossman <drzeus-list@xxxxxxxxx> wrote:

>
> I suppose it's a matter of taste, but personally I think the mere
> mentioning of 'for' allows you to directly see that there is some kind
> of looping involved. And it shouldn't be terribly complex:
>
> for (i = 0;i < 8;i++) {
> resp[i] = readw(addr + RESPONSE + (7 - i)*4) << 16;
> resp[i] |= readw(addr + RESPONSE + (6 - i)*4);
> }
>

The actual loop is slightly different (there are 4 elements in cmd->resp):
for (i=0; i < 4; i++) {
resp[i] = readl(addr + RESP + (7 - 2 * i) * 4) << 16;
resp[i] |= readl(addr + RESP + (6 - 2 * i) * 4);
}
As there are only 4 iterations it's not a lot of work to spare the compiler from address
calculation. readl also seems more appropriate than readw, as resp is array of u32.


> The problem is that it's a big difference between
> seeing "data TO" and
> seeing "data to" in the code. How about using the
> three letter
> abbreviations in those places? I.e. "cto" and "dto"?
I changed the variable and function names to *_timeout, but left the macros as *_TO. This way,
the macro name corresponds to the datasheet and the meaning is evident from context:

writel(data_timeout, sock->addr + SOCK_MMCSD_DATA_TO);


Additionally, I added defines for response and command types.


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/