On 9 September 2014 02:09, Kuninori Morimoto
<kuninori.morimoto...@gmail.com> wrote:
>
> Hi Ulf
>
>> > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
>> > index ece1634..7b41f57 100644
>> > --- a/drivers/mmc/host/omap_hsmmc.c
>> > +++ b/drivers/mmc/host/omap_hsmmc.c
>> > @@ -219,6 +219,7 @@ struct omap_hsmmc_host {
>> >  #define AUTO_CMD23             (1 << 0)        /* Auto CMD23 support */
>> >  #define HSMMC_SDIO_IRQ_ENABLED (1 << 1)        /* SDIO irq enabled */
>> >  #define HSMMC_WAKE_IRQ_ENABLED (1 << 2)
>> > +#define HSMMC_NO_MULTI_READ    (1 << 3)
>> >         struct omap_hsmmc_next  next_data;
>> >         struct  omap_mmc_platform_data  *pdata;
>> >  };
> (snip)
>> >  #ifdef CONFIG_DEBUG_FS
>> > @@ -2101,7 +2116,7 @@ static int omap_hsmmc_probe(struct platform_device 
>> > *pdev)
>> >
>> >         if (host->pdata->controller_flags & 
>> > OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) {
>> >                 dev_info(&pdev->dev, "multiblock reads disabled due to 
>> > 35xx erratum 2.1.1.128; MMC read performance may suffer\n");
>> > -               mmc->caps2 |= MMC_CAP2_NO_MULTI_READ;
>>
>> An option to adding yet another flag, would be to assign
>> ->multi_io_quirk = omap_hsmmc_multi_io_quirk() here? Isn't that
>> actually better for those variants that doesn't suffer from this HW
>> bug?
>
> This means we need to copy this ops for each driver ?
> Otherwise, it breaks behavior if many drivers were probed.

The are only one driver for omap_hsmmc, this is not tmio, which
certainly is a different story.

What you need to do, is to make omap_hsmmc_ops non const - and assign
the function pointer here. That should work.

Kind regards
Uffe
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to