2020-10-23 15:48:12

by Fabien Parent

[permalink] [raw]
Subject: [PATCH] mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC

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 <[email protected]>
---
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


2020-10-27 14:48:32

by Mattijs Korpershoek

[permalink] [raw]
Subject: Re: [PATCH] mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC

Hi Ulf,

Ulf Hansson <[email protected]> writes:

> + Yong Mao, Chaotian Jing
>
> On Fri, 23 Oct 2020 at 14:29, Fabien Parent <[email protected]> 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 <[email protected]>
>
> 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
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-mediatek

2020-10-28 06:47:58

by Matthias Brugger

[permalink] [raw]
Subject: Re: [PATCH] mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC



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 <[email protected]>

Reviewed-by: Matthias Brugger <[email protected]>

> ---
> 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,
>

2020-10-28 07:23:29

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH] mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC

+ Yong Mao, Chaotian Jing

On Fri, 23 Oct 2020 at 14:29, Fabien Parent <[email protected]> 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 <[email protected]>

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
>

2020-10-28 23:56:01

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH] mmc: host: mtk-sd: enable recheck_sdio_irq for MT8516 SoC

On Wed, 28 Oct 2020 at 08:22, [email protected]
<[email protected]> wrote:
>
> On Tue, 2020-10-27 at 13:44 +0100, Mattijs Korpershoek wrote:
> > Hi Ulf,
> >
> > Ulf Hansson <[email protected]> writes:
> >
> > > + Yong Mao, Chaotian Jing
> > >
> > > On Fri, 23 Oct 2020 at 14:29, Fabien Parent <[email protected]> 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 <[email protected]>
> > >
> > > 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
> > > [email protected]
> > > http://lists.infradead.org/mailman/listinfo/linux-mediatek
>