Re: [PATCH]: Fixing blksz_bits calling inside drivers/mmc/mmc.c and drivers/mmc/omap.c

Dirk Behme
2006-10-27T18:21:45Z

Felipe Balbi wrote:
> ext Dirk Behme wrote:
>>>> Index: linux-osk/drivers/mmc/omap.c
>>>> ===================================================================
>>>> --- linux-osk.orig/drivers/mmc/omap.c
>>>> +++ linux-osk/drivers/mmc/omap.c
>>>> @@ -581,12 +581,6 @@ static void mmc_omap_switch_timer(unsign
>>>> schedule_work(&host->switch_work);
>>>> }
>>>>
>>>> -/* FIXME: Handle card insertion and removal properly. Maybe use a mask
>>>> - * for MMC state? */
>>>> -static void mmc_omap_switch_callback(unsigned long data, u8 mmc_mask)
>>>> -{
>>>> -}
>>>> -
>>>> static void mmc_omap_switch_handler(void *data)
>>>> {
>>>> struct mmc_omap_host *host = (struct mmc_omap_host *) data;
>>>> @@ -633,10 +627,10 @@ mmc_omap_prepare_dma(struct mmc_omap_hos
>>>> int sync_dev = 0;
>>>>
>>>> data_addr = host->phys_base + OMAP_MMC_REG_DATA;
>>>> - frame = 1 << data->blksz_bits;
>>>> + frame = data->blksz;
>>>> count = sg_dma_len(sg);
>>>>
>>>> - if ((data->blocks == 1) && (count > (1 << data->blksz_bits)))
>>>> + if ((data->blocks == 1) && (count > (data->blksz)))
>>>> count = frame;
>>>>
>>>> host->dma_len = count;
>>>> @@ -825,7 +819,7 @@ mmc_omap_prepare_data(struct mmc_omap_ho
>>>> }
>>>>
>>>>
>>>> - block_size = 1 << data->blksz_bits;
>>>> + block_size = data->blksz;
>>>>
>>>> OMAP_MMC_WRITE(host, NBLK, data->blocks - 1);
>>>> OMAP_MMC_WRITE(host, BLEN, block_size - 1);
>>>>
...
> Yep, my git tree is the newest version...
...
> --- linux-omap/drivers/mmc/mmc.c 2006-10-26 06:42:31.000000000 -0400
> +++ linux-omap-dev/drivers/mmc/mmc.c 2006-10-26 09:53:24.000000000 -0400
> @@ -996,7 +996,7 @@
>
> mmc_set_data_timeout(&data, card, 0);
>
> - data.blksz_bits = 1 << 3;
> + data.blksz = 1 << 3;
> data.blocks = 1;
> data.flags = MMC_DATA_READ;
> data.sg = &sg;

Weird. My drivers/mmc/mmc.c looks

...
mmc_set_data_timeout(&data, card, 0);

data.blksz = 1 << 3;
data.blocks = 1;
data.flags = MMC_DATA_READ;
data.sg = &sg;
data.sg_len = 1;
...

without any patch. Looking at line ~999 of

http://source.mvista.com/git/gitweb.cgi?p=linux-omap-2.6.git;a=blob;h=ee8863c123e37881e0f35ee658a15fd5e925ad31;hb=591db7639fd7e2b2ae3f82851ee1d25beac714c4;f=drivers/mmc/mmc.c#999

it's the same. So I don't have to touch mmc.c for my patch
above.

Best regards

Dirk