Message ID | SEYPR01MB42219753E4388009470D958DD7FC2@SEYPR01MB4221.apcprd01.prod.exchangelabs.com |
---|---|
State | New |
Headers | show |
Series | mmc: sdhci-of-dwcmshc: Use inverted-wp quirk for CV18xx and SG200x SoCs | expand |
On 31/05/24 17:13, Haylen Chu wrote: > MMC controller integrated in Sophgo CV18xx and SG200x SoCs has an > inverted write-protect flag, causing SDCards misdetected as read-only. Is it the SDHCI_WRITE_PROTECT bit of the SDHCI_PRESENT_STATE register that needs to be inverted? > So set SDHCI_QURIK_INVERTED_WRITE_PROTECT to make write protection work > correctly. > > Fixes: 017199c2849c ("mmc: sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002") > Signed-off-by: Haylen Chu <heylenay@outlook.com> > --- > drivers/mmc/host/sdhci-of-dwcmshc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c > index 39edf04fedcf..62b7f28de54f 100644 > --- a/drivers/mmc/host/sdhci-of-dwcmshc.c > +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c > @@ -962,7 +962,8 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_th1520_pdata = { > > static const struct sdhci_pltfm_data sdhci_dwcmshc_cv18xx_pdata = { > .ops = &sdhci_dwcmshc_cv18xx_ops, > - .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > + .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | > + SDHCI_QUIRK_INVERTED_WRITE_PROTECT, > .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > }; >
On Fri, May 31, 2024 at 02:13:47PM +0000, Haylen Chu wrote: > MMC controller integrated in Sophgo CV18xx and SG200x SoCs has an > inverted write-protect flag, causing SDCards misdetected as read-only. > So set SDHCI_QURIK_INVERTED_WRITE_PROTECT to make write protection work > correctly. No, I would rather set cd-inverted property in dts. > > Fixes: 017199c2849c ("mmc: sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002") > Signed-off-by: Haylen Chu <heylenay@outlook.com> > --- > drivers/mmc/host/sdhci-of-dwcmshc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c > index 39edf04fedcf..62b7f28de54f 100644 > --- a/drivers/mmc/host/sdhci-of-dwcmshc.c > +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c > @@ -962,7 +962,8 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_th1520_pdata = { > > static const struct sdhci_pltfm_data sdhci_dwcmshc_cv18xx_pdata = { > .ops = &sdhci_dwcmshc_cv18xx_ops, > - .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > + .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | > + SDHCI_QUIRK_INVERTED_WRITE_PROTECT, > .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > }; > > -- > 2.45.1 >
On Thu, Jun 13, 2024 at 09:15:50PM +0800, Jisheng Zhang wrote: > On Thu, Jun 13, 2024 at 09:03:24PM +0800, Jisheng Zhang wrote: > > On Fri, May 31, 2024 at 02:13:47PM +0000, Haylen Chu wrote: > > > MMC controller integrated in Sophgo CV18xx and SG200x SoCs has an > > > inverted write-protect flag, causing SDCards misdetected as read-only. > > > So set SDHCI_QURIK_INVERTED_WRITE_PROTECT to make write protection work > > > correctly. > > > > No, I would rather set cd-inverted property in dts. > > wp-inverted hmm, if I read the SCH correctly, there's no wp pin at all, so disable-wp is better > > > > > > > Fixes: 017199c2849c ("mmc: sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002") > > > Signed-off-by: Haylen Chu <heylenay@outlook.com> > > > --- > > > drivers/mmc/host/sdhci-of-dwcmshc.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c > > > index 39edf04fedcf..62b7f28de54f 100644 > > > --- a/drivers/mmc/host/sdhci-of-dwcmshc.c > > > +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c > > > @@ -962,7 +962,8 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_th1520_pdata = { > > > > > > static const struct sdhci_pltfm_data sdhci_dwcmshc_cv18xx_pdata = { > > > .ops = &sdhci_dwcmshc_cv18xx_ops, > > > - .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > > > + .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | > > > + SDHCI_QUIRK_INVERTED_WRITE_PROTECT, > > > .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > > > }; > > > > > > -- > > > 2.45.1 > > >
On Thu, Jun 13, 2024 at 09:03:20PM +0800, Jisheng Zhang wrote: > On Fri, May 31, 2024 at 02:13:47PM +0000, Haylen Chu wrote: > > MMC controller integrated in Sophgo CV18xx and SG200x SoCs has an > > inverted write-protect flag, causing SDCards misdetected as read-only. > > So set SDHCI_QURIK_INVERTED_WRITE_PROTECT to make write protection work > > correctly. > > No, I would rather set cd-inverted property in dts. Okay, I will fix it it in dts instead. Thanks, Haylen Chu
diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c index 39edf04fedcf..62b7f28de54f 100644 --- a/drivers/mmc/host/sdhci-of-dwcmshc.c +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c @@ -962,7 +962,8 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_th1520_pdata = { static const struct sdhci_pltfm_data sdhci_dwcmshc_cv18xx_pdata = { .ops = &sdhci_dwcmshc_cv18xx_ops, - .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, + .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | + SDHCI_QUIRK_INVERTED_WRITE_PROTECT, .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, };
MMC controller integrated in Sophgo CV18xx and SG200x SoCs has an inverted write-protect flag, causing SDCards misdetected as read-only. So set SDHCI_QURIK_INVERTED_WRITE_PROTECT to make write protection work correctly. Fixes: 017199c2849c ("mmc: sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002") Signed-off-by: Haylen Chu <heylenay@outlook.com> --- drivers/mmc/host/sdhci-of-dwcmshc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)