On 13 April 2016 at 16:35, Jon Hunter <jonathanh@xxxxxxxxxx> wrote: > Tegra124 has been randomly hanging during system suspend when entering > the Tegra LP1 low power state. The hang is caused by the tegra SDHCI > driver and linked to the UHS-I tuning sequence. Disabling the UHS-I > modes for Tegra124 prevents any hangs from occurring when entering > system suspend. > > Unfortunately, the tuning sequence described in the public Tegra > documentation is incomplete and on inspection of the current tuning > sequence that has been implemented is also incomplete and may cause > problems. In the short-term it is safer to disable UHS-I modes for now > and fix later because it would be too large of a change to simply patch > now. Therefore, disable UHS-I modes for Tegra124. > > Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx> Thanks, applied for fixes (with minor updates to the change log according to suggestions from Stephen)! Kind regards Uffe > --- > > I previously brought up this issue in this thread [0], but there has > been no resolution and so I think that for v4.6 we need to disable this > for now. I also pointered out that there is a complete implementation > available in the v3.18 kernel used by chromeos products [1]. We do plan > to get better support for UHS-I modes for Tegra it is just a matter of > bandwidth at the moment :-( > > [0] http://marc.info/?l=linux-tegra&m=145926947408663&w=2 > [1] https://chromium.googlesource.com/chromiumos/third_party/kernel/+/chromeos-3.10/drivers/mmc/host/sdhci-tegra.c > > drivers/mmc/host/sdhci-tegra.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c > index f8c4762bb48d..bcc0de47fe7e 100644 > --- a/drivers/mmc/host/sdhci-tegra.c > +++ b/drivers/mmc/host/sdhci-tegra.c > @@ -382,14 +382,6 @@ static const struct sdhci_tegra_soc_data soc_data_tegra114 = { > .pdata = &sdhci_tegra114_pdata, > }; > > -static const struct sdhci_tegra_soc_data soc_data_tegra124 = { > - .pdata = &sdhci_tegra114_pdata, > - .nvquirks = NVQUIRK_ENABLE_SDR50 | > - NVQUIRK_ENABLE_DDR50 | > - NVQUIRK_ENABLE_SDR104 | > - NVQUIRK_HAS_PADCALIB, > -}; > - > static const struct sdhci_pltfm_data sdhci_tegra210_pdata = { > .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | > SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > @@ -407,7 +399,7 @@ static const struct sdhci_tegra_soc_data soc_data_tegra210 = { > > static const struct of_device_id sdhci_tegra_dt_match[] = { > { .compatible = "nvidia,tegra210-sdhci", .data = &soc_data_tegra210 }, > - { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, > + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra114 }, > { .compatible = "nvidia,tegra114-sdhci", .data = &soc_data_tegra114 }, > { .compatible = "nvidia,tegra30-sdhci", .data = &soc_data_tegra30 }, > { .compatible = "nvidia,tegra20-sdhci", .data = &soc_data_tegra20 }, > -- > 2.1.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html