diff mbox series

mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC

Message ID 20201023122950.60903-1-fparent@baylibre.com (mailing list archive)
State New, archived
Headers show
Series mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC | expand

Commit Message

Fabien Parent Oct. 23, 2020, 12:29 p.m. UTC
MT8516 SoC suffers from sometimes losing SDIO IRQs, this makes SDIO
devices sometimes unstable. Make use of the new property
recheck_sdio_irq to fix the SDIO stability issues on MT8516.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
---
 drivers/mmc/host/mtk-sd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Matthias Brugger Oct. 27, 2020, 10:19 a.m. UTC | #1
On 23/10/2020 14:29, Fabien Parent wrote:
> MT8516 SoC suffers from sometimes losing SDIO IRQs, this makes SDIO
> devices sometimes unstable. Make use of the new property
> recheck_sdio_irq to fix the SDIO stability issues on MT8516.
> 
> Signed-off-by: Fabien Parent <fparent@baylibre.com>

Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>

> ---
>   drivers/mmc/host/mtk-sd.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
> index a704745e5882..3dc102eefe49 100644
> --- a/drivers/mmc/host/mtk-sd.c
> +++ b/drivers/mmc/host/mtk-sd.c
> @@ -524,7 +524,7 @@ static const struct mtk_mmc_compatible mt7622_compat = {
>   
>   static const struct mtk_mmc_compatible mt8516_compat = {
>   	.clk_div_bits = 12,
> -	.recheck_sdio_irq = false,
> +	.recheck_sdio_irq = true,
>   	.hs400_tune = false,
>   	.pad_tune_reg = MSDC_PAD_TUNE0,
>   	.async_fifo = true,
>
Ulf Hansson Oct. 27, 2020, 12:11 p.m. UTC | #2
+ Yong Mao, Chaotian Jing

On Fri, 23 Oct 2020 at 14:29, Fabien Parent <fparent@baylibre.com> wrote:
>
> MT8516 SoC suffers from sometimes losing SDIO IRQs, this makes SDIO
> devices sometimes unstable. Make use of the new property
> recheck_sdio_irq to fix the SDIO stability issues on MT8516.
>
> Signed-off-by: Fabien Parent <fparent@baylibre.com>

Maybe this is a common problem, thus I am thinking that potentially we
should enable the workaround for all variants?

I have looped in Yong Mao (who invented the workaround) and Chaotian
Jing, to see if they can advise us how to proceed.

In any case, I think we should add a stable tag and a fixes tag.

Kind regards
Uffe

> ---
>  drivers/mmc/host/mtk-sd.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
> index a704745e5882..3dc102eefe49 100644
> --- a/drivers/mmc/host/mtk-sd.c
> +++ b/drivers/mmc/host/mtk-sd.c
> @@ -524,7 +524,7 @@ static const struct mtk_mmc_compatible mt7622_compat = {
>
>  static const struct mtk_mmc_compatible mt8516_compat = {
>         .clk_div_bits = 12,
> -       .recheck_sdio_irq = false,
> +       .recheck_sdio_irq = true,
>         .hs400_tune = false,
>         .pad_tune_reg = MSDC_PAD_TUNE0,
>         .async_fifo = true,
> --
> 2.28.0
>
Mattijs Korpershoek Oct. 27, 2020, 12:44 p.m. UTC | #3
Hi Ulf,

Ulf Hansson <ulf.hansson@linaro.org> writes:

> + Yong Mao, Chaotian Jing
>
> On Fri, 23 Oct 2020 at 14:29, Fabien Parent <fparent@baylibre.com> wrote:
>>
>> MT8516 SoC suffers from sometimes losing SDIO IRQs, this makes SDIO
>> devices sometimes unstable. Make use of the new property
>> recheck_sdio_irq to fix the SDIO stability issues on MT8516.
>>
>> Signed-off-by: Fabien Parent <fparent@baylibre.com>
>
> Maybe this is a common problem, thus I am thinking that potentially we
> should enable the workaround for all variants?
Not sure if this is of any help, but: we use the btmtksdio driver on a
MT8183 soc with an Android kernel based on upstream.

With that kernel, we did not to apply this work-around in order to
have a stable bluetooth experience (pairing with a remote controller)

However, on the MT8516 SoC, it's impossible for us to use btmtksdio
without Fabien's fix.

>
> I have looped in Yong Mao (who invented the workaround) and Chaotian
> Jing, to see if they can advise us how to proceed.
>
> In any case, I think we should add a stable tag and a fixes tag.
>
> Kind regards
> Uffe
>
>> ---
>>  drivers/mmc/host/mtk-sd.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
>> index a704745e5882..3dc102eefe49 100644
>> --- a/drivers/mmc/host/mtk-sd.c
>> +++ b/drivers/mmc/host/mtk-sd.c
>> @@ -524,7 +524,7 @@ static const struct mtk_mmc_compatible mt7622_compat = {
>>
>>  static const struct mtk_mmc_compatible mt8516_compat = {
>>         .clk_div_bits = 12,
>> -       .recheck_sdio_irq = false,
>> +       .recheck_sdio_irq = true,
>>         .hs400_tune = false,
>>         .pad_tune_reg = MSDC_PAD_TUNE0,
>>         .async_fifo = true,
>> --
>> 2.28.0
>>
>
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
Ulf Hansson Oct. 28, 2020, 9:40 a.m. UTC | #4
On Wed, 28 Oct 2020 at 08:22, yong.mao@mediatek.com
<yong.mao@mediatek.com> wrote:
>
> On Tue, 2020-10-27 at 13:44 +0100, Mattijs Korpershoek wrote:
> > Hi Ulf,
> >
> > Ulf Hansson <ulf.hansson@linaro.org> writes:
> >
> > > + Yong Mao, Chaotian Jing
> > >
> > > On Fri, 23 Oct 2020 at 14:29, Fabien Parent <fparent@baylibre.com> wrote:
> > >>
> > >> MT8516 SoC suffers from sometimes losing SDIO IRQs, this makes SDIO
> > >> devices sometimes unstable. Make use of the new property
> > >> recheck_sdio_irq to fix the SDIO stability issues on MT8516.
> > >>
> > >> Signed-off-by: Fabien Parent <fparent@baylibre.com>
> > >
> > > Maybe this is a common problem, thus I am thinking that potentially we
> > > should enable the workaround for all variants?
> > Not sure if this is of any help, but: we use the btmtksdio driver on a
> > MT8183 soc with an Android kernel based on upstream.
> >
> > With that kernel, we did not to apply this work-around in order to
> > have a stable bluetooth experience (pairing with a remote controller)
> >
> > However, on the MT8516 SoC, it's impossible for us to use btmtksdio
> > without Fabien's fix.
> >
> Yes. For mt8516 SoC,recheck_sdio_irq should be set to true for avoiding
> SDIO dat1 irq lost issue. But for mt8183 SoC, it does not need recheck
> sdio irq mechanism.

Okay, thanks for confirming.

>
> > >
> > > I have looped in Yong Mao (who invented the workaround) and Chaotian
> > > Jing, to see if they can advise us how to proceed.
> > >
> > > In any case, I think we should add a stable tag and a fixes tag.
> > >
> > > Kind regards
> > > Uffe
>
> Hi Ulf,
> Sorry. On the patch "mmc:mediatek:fix SDIO irq issue", I only consider
> fixing the issue on mt8173 SoC.But for the whole MTK upstream SoC,
> mt8183, mt2712, mt6779 and mt8192 does not need this mechanism,
> but the other upstream Soc such as mt8135, mt8173, mt2701, mt7622,
> mt8516 and mt7620 need this recheck mechanism. And all future SoC of our
> company does not need this mechanism.
> If it's convenient for you, please help me to revise it.
> Or I will submit a new patch to correct the value of setting.
> Thanks.

Please submit a new patch to enable the "recheck_sdio_irq" flag for
those variants that need it.

I would also add a fixes+stable tag and add reported-by tags from
Fabien and Mattijs.

Kind regards
Uffe

> > >
> > >> ---
> > >>  drivers/mmc/host/mtk-sd.c | 2 +-
> > >>  1 file changed, 1 insertion(+), 1 deletion(-)
> > >>
> > >> diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
> > >> index a704745e5882..3dc102eefe49 100644
> > >> --- a/drivers/mmc/host/mtk-sd.c
> > >> +++ b/drivers/mmc/host/mtk-sd.c
> > >> @@ -524,7 +524,7 @@ static const struct mtk_mmc_compatible mt7622_compat = {
> > >>
> > >>  static const struct mtk_mmc_compatible mt8516_compat = {
> > >>         .clk_div_bits = 12,
> > >> -       .recheck_sdio_irq = false,
> > >> +       .recheck_sdio_irq = true,
> > >>         .hs400_tune = false,
> > >>         .pad_tune_reg = MSDC_PAD_TUNE0,
> > >>         .async_fifo = true,
> > >> --
> > >> 2.28.0
> > >>
> > >
> > > _______________________________________________
> > > Linux-mediatek mailing list
> > > Linux-mediatek@lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-mediatek
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
index a704745e5882..3dc102eefe49 100644
--- a/drivers/mmc/host/mtk-sd.c
+++ b/drivers/mmc/host/mtk-sd.c
@@ -524,7 +524,7 @@  static const struct mtk_mmc_compatible mt7622_compat = {
 
 static const struct mtk_mmc_compatible mt8516_compat = {
 	.clk_div_bits = 12,
-	.recheck_sdio_irq = false,
+	.recheck_sdio_irq = true,
 	.hs400_tune = false,
 	.pad_tune_reg = MSDC_PAD_TUNE0,
 	.async_fifo = true,