Message ID | 20190905045557.8812-1-drake@endlessm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Revert "mmc: sdhci: Remove unneeded quirk2 flag of O2 SD host controller" | expand |
On Thu, 5 Sep 2019 at 06:56, Daniel Drake <drake@endlessm.com> wrote: > > This reverts commit 414126f9e5abf1973c661d24229543a9458fa8ce. > > This commit broke eMMC storage access on a new consumer MiniPC based on > AMD SoC, which has eMMC connected to: > > 02:00.0 SD Host controller: O2 Micro, Inc. Device 8620 (rev 01) (prog-if 01) > Subsystem: O2 Micro, Inc. Device 0002 > > During probe, several errors are seen including: > > mmc1: Got data interrupt 0x02000000 even though no data operation was in progress. > mmc1: Timeout waiting for hardware interrupt. > mmc1: error -110 whilst initialising MMC card > > Reverting this commit allows the eMMC storage to be detected & usable > again. > > Signed-off-by: Daniel Drake <drake@endlessm.com> Until we find another solution... applied for fixes, thanks! Kind regards Uffe > --- > drivers/mmc/host/sdhci-pci-o2micro.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-pci-o2micro.c b/drivers/mmc/host/sdhci-pci-o2micro.c > index 9dc4548271b4..19944b0049db 100644 > --- a/drivers/mmc/host/sdhci-pci-o2micro.c > +++ b/drivers/mmc/host/sdhci-pci-o2micro.c > @@ -432,7 +432,6 @@ int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot) > mmc_hostname(host->mmc)); > host->flags &= ~SDHCI_SIGNALING_330; > host->flags |= SDHCI_SIGNALING_180; > - host->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; > host->mmc->caps2 |= MMC_CAP2_NO_SD; > host->mmc->caps2 |= MMC_CAP2_NO_SDIO; > pci_write_config_dword(chip->pdev, > @@ -682,6 +681,7 @@ static const struct sdhci_ops sdhci_pci_o2_ops = { > const struct sdhci_pci_fixes sdhci_o2 = { > .probe = sdhci_pci_o2_probe, > .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, > + .quirks2 = SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD, > .probe_slot = sdhci_pci_o2_probe_slot, > #ifdef CONFIG_PM_SLEEP > .resume = sdhci_pci_o2_resume, > -- > 2.20.1 >
diff --git a/drivers/mmc/host/sdhci-pci-o2micro.c b/drivers/mmc/host/sdhci-pci-o2micro.c index 9dc4548271b4..19944b0049db 100644 --- a/drivers/mmc/host/sdhci-pci-o2micro.c +++ b/drivers/mmc/host/sdhci-pci-o2micro.c @@ -432,7 +432,6 @@ int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot) mmc_hostname(host->mmc)); host->flags &= ~SDHCI_SIGNALING_330; host->flags |= SDHCI_SIGNALING_180; - host->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; host->mmc->caps2 |= MMC_CAP2_NO_SD; host->mmc->caps2 |= MMC_CAP2_NO_SDIO; pci_write_config_dword(chip->pdev, @@ -682,6 +681,7 @@ static const struct sdhci_ops sdhci_pci_o2_ops = { const struct sdhci_pci_fixes sdhci_o2 = { .probe = sdhci_pci_o2_probe, .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD, .probe_slot = sdhci_pci_o2_probe_slot, #ifdef CONFIG_PM_SLEEP .resume = sdhci_pci_o2_resume,
This reverts commit 414126f9e5abf1973c661d24229543a9458fa8ce. This commit broke eMMC storage access on a new consumer MiniPC based on AMD SoC, which has eMMC connected to: 02:00.0 SD Host controller: O2 Micro, Inc. Device 8620 (rev 01) (prog-if 01) Subsystem: O2 Micro, Inc. Device 0002 During probe, several errors are seen including: mmc1: Got data interrupt 0x02000000 even though no data operation was in progress. mmc1: Timeout waiting for hardware interrupt. mmc1: error -110 whilst initialising MMC card Reverting this commit allows the eMMC storage to be detected & usable again. Signed-off-by: Daniel Drake <drake@endlessm.com> --- drivers/mmc/host/sdhci-pci-o2micro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)