Re: [patch 2/4] sdio: set the functions' block size

From: David Vrabel
Date: Tue Aug 07 2007 - 13:21:47 EST


Pierre Ossman wrote:
> On Tue, 07 Aug 2007 13:54:32 +0100
> David Vrabel <david.vrabel@xxxxxxx> wrote:
>
>>
>> Index: mmc/drivers/mmc/core/sdio.c
>> ===================================================================
>> --- mmc.orig/drivers/mmc/core/sdio.c 2007-08-07
>> 00:38:33.000000000 +0100 +++ mmc/drivers/mmc/core/sdio.c
>> 2007-08-07 07:17:29.000000000 +0100 @@ -53,6 +53,7 @@
>> {
>> int ret;
>> struct sdio_func *func;
>> + unsigned block_size;
>>
>> BUG_ON(fn > SDIO_MAX_FUNCS);
>>
>> @@ -70,6 +71,15 @@
>> if (ret)
>> goto fail;
>>
>> + /*
>> + * Set the function's block size to the largest supported by
>> + * both the function and the host.
>> + */
>> + block_size = min(func->max_blksize,
>> func->card->host->max_blk_size);
>> + ret = sdio_set_block_size(func, block_size);
>> + if (ret)
>> + goto fail;
>> +
>> card->sdio_func[fn - 1] = func;
>>
>> return 0;
>
> This is probably better done in the sdio_enable_func().

I don't think so. A driver might enable/disable a function multiple
times but there's no need to set the block size every time.

It may be best to move setting the block size back to before the probe
so a driver can be sure the block size is something sensible. Consider
a failed probe that called sdio_set_block_size() -- this will currently
mess up drivers probed later.

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/