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
Yong Mao Oct. 28, 2020, 7:21 a.m. UTC | #4
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.

> >
> > 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.
> >
> >> ---
> >>  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 | #5
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,