Re: sdio: enhance IO_RW_EXTENDED support
From: David Vrabel
Date: Mon Aug 06 2007 - 11:34:21 EST
Pierre Ossman wrote:
> On Mon, 06 Aug 2007 11:31:19 +0100
> David Vrabel <david.vrabel@xxxxxxx> wrote:
>
>> I would expect the block size to be set once per card, and never be
>> changed and thus it's not logically a per-transfer operation. We
>> certainly wouldn't want to change the block size willy-nilly as it's
>> an expensive operation.
>>
>
> Indeed. It would of course be optimized so that it doesn't change the
> size needlessly.
Drivers may care about the block size though so you can't have it
changing behind their backs. e.g., they may need to pad data to a
multiple of the block size.
>>> I suspect that some transactions might require a certain block size.
>>> But we could satisfy that by stating that any transfer small enough
>>> to fit into one block will not be split up.
>> I consider it unlikely that any card would want to do anything other
>> than always use the largest possible block size.
>>
>
> I have a counter example. I have here a Marvell wifi card which needs a
> firmware upload. And it seems to be rather picky about parameters
> during that upload.
>
> I'm still experimenting with a clean way to do things for this card.
> I'll get back to you. :)
sdio_set_block_size(func, 64); /* ew, this card is fussy */
download_firmware();
sdio_set_block_size(func, func->max_blksize); /* Ahhh, back to the
card's default */
If a card is fussy about the block size I don't think there's anything
cleaner than specifying directly in the driver.
David
--
David Vrabel, Software Engineer, Drivers group Tel: +44 (0)1223 692562
CSR plc, Churchill House, Cambridge Business Park, Cowley Road, CB4 0WZ
.
-
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/