Message ID | 20230113110011.129835-4-adrian.hunter@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mmc: sdhci: Remove SDHCI_QUIRK_MISSING_CAPS | expand |
On Fri, 13 Jan 2023 at 19:00, Adrian Hunter <adrian.hunter@intel.com> wrote: > > SDHCI_QUIRK_MISSING_CAPS is not needed because sdhci_read_caps() can be > called instead. > > In preparation to get rid of SDHCI_QUIRK_MISSING_CAPS, replace > SDHCI_QUIRK_MISSING_CAPS with sdhci_read_caps(). > > __sdhci_read_caps() is also called from sdhci_setup_host() via > sdhci_read_caps(), however only the first call to __sdhci_read_caps() does > anything because after that host->read_caps has been set to true. > > Note, __sdhci_read_caps() does more than just set host->caps, such as do a > reset, so calling __sdhci_read_caps() earlier could have unforeseen > side-effects. However the code flow has been reviewed with that in mind. > > Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Acked-by: Chunyan Zhang <zhang.lyra@gmail.com> Thanks, Chunyan > --- > drivers/mmc/host/sdhci-sprd.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c > index 525f979e2a97..7f4ee2e12735 100644 > --- a/drivers/mmc/host/sdhci-sprd.c > +++ b/drivers/mmc/host/sdhci-sprd.c > @@ -553,8 +553,7 @@ static void sdhci_sprd_phy_param_parse(struct sdhci_sprd_host *sprd_host, > > static const struct sdhci_pltfm_data sdhci_sprd_pdata = { > .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION | > - SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > - SDHCI_QUIRK_MISSING_CAPS, > + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK, > .quirks2 = SDHCI_QUIRK2_BROKEN_HS200 | > SDHCI_QUIRK2_USE_32BIT_BLK_CNT | > SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > @@ -671,8 +670,7 @@ static int sdhci_sprd_probe(struct platform_device *pdev) > * will allow these modes to be specified only by device > * tree properties through mmc_of_parse(). > */ > - host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); > - host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); > + sdhci_read_caps(host); > host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 | > SDHCI_SUPPORT_DDR50); > > -- > 2.34.1 >
diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c index 525f979e2a97..7f4ee2e12735 100644 --- a/drivers/mmc/host/sdhci-sprd.c +++ b/drivers/mmc/host/sdhci-sprd.c @@ -553,8 +553,7 @@ static void sdhci_sprd_phy_param_parse(struct sdhci_sprd_host *sprd_host, static const struct sdhci_pltfm_data sdhci_sprd_pdata = { .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION | - SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | - SDHCI_QUIRK_MISSING_CAPS, + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK, .quirks2 = SDHCI_QUIRK2_BROKEN_HS200 | SDHCI_QUIRK2_USE_32BIT_BLK_CNT | SDHCI_QUIRK2_PRESET_VALUE_BROKEN, @@ -671,8 +670,7 @@ static int sdhci_sprd_probe(struct platform_device *pdev) * will allow these modes to be specified only by device * tree properties through mmc_of_parse(). */ - host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); - host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); + sdhci_read_caps(host); host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_DDR50);
SDHCI_QUIRK_MISSING_CAPS is not needed because sdhci_read_caps() can be called instead. In preparation to get rid of SDHCI_QUIRK_MISSING_CAPS, replace SDHCI_QUIRK_MISSING_CAPS with sdhci_read_caps(). __sdhci_read_caps() is also called from sdhci_setup_host() via sdhci_read_caps(), however only the first call to __sdhci_read_caps() does anything because after that host->read_caps has been set to true. Note, __sdhci_read_caps() does more than just set host->caps, such as do a reset, so calling __sdhci_read_caps() earlier could have unforeseen side-effects. However the code flow has been reviewed with that in mind. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> --- drivers/mmc/host/sdhci-sprd.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)