* [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 @ 2016-02-18 14:48 Jon Hunter [not found] ` <1455806924-14967-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Jon Hunter @ 2016-02-18 14:48 UTC (permalink / raw) To: Ulf Hansson, Stephen Warren, Thierry Reding, Alexandre Courbot, Lucas Stach Cc: linux-mmc-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Jon Hunter SD card support for Tegra114 started failing after commit a8e326a911d3 ("mmc: tegra: implement module external clock change") was merged. This commit was part of a series to enable UHS-I modes for Tegra. To workaround this problem for now, only disable UHS-I modes for Tegra114 and in order to do this it is necessary to revert changes from commits a8e326a911d3 ("mmc: tegra: implement module external clock change"), c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do this so that UHS-I mode can be disabled for Tegra114 but not for Tegra124 separate the platform data, soc data and sdhci-ops so they are no longer common to both Tegra114 and Tegra124. Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> --- drivers/mmc/host/sdhci-tegra.c | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 83c4bf7bc16c..bc7a0847e316 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) /* Advertise UHS modes as supported by host */ if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; + else + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; + else + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; + else + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); @@ -315,6 +321,32 @@ static const struct sdhci_ops tegra114_sdhci_ops = { .write_w = tegra_sdhci_writew, .write_l = tegra_sdhci_writel, .set_clock = tegra_sdhci_set_clock, + .set_bus_width = sdhci_set_bus_width, + .reset = tegra_sdhci_reset, + .set_uhs_signaling = sdhci_set_uhs_signaling, + .get_max_clock = sdhci_pltfm_clk_get_max_clock, +}; + +static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { + .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | + SDHCI_QUIRK_SINGLE_POWER_WRITE | + SDHCI_QUIRK_NO_HISPD_BIT | + SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | + SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, + .ops = &tegra114_sdhci_ops, +}; + +static const struct sdhci_tegra_soc_data soc_data_tegra114 = { + .pdata = &sdhci_tegra114_pdata, +}; + +static const struct sdhci_ops tegra124_sdhci_ops = { + .get_ro = tegra_sdhci_get_ro, + .read_w = tegra_sdhci_readw, + .write_w = tegra_sdhci_writew, + .write_l = tegra_sdhci_writel, + .set_clock = tegra_sdhci_set_clock, .set_bus_width = tegra_sdhci_set_bus_width, .reset = tegra_sdhci_reset, .platform_execute_tuning = tegra_sdhci_execute_tuning, @@ -322,7 +354,7 @@ static const struct sdhci_ops tegra114_sdhci_ops = { .get_max_clock = tegra_sdhci_get_max_clock, }; -static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { +static const struct sdhci_pltfm_data sdhci_tegra124_pdata = { .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | SDHCI_QUIRK_SINGLE_POWER_WRITE | @@ -330,11 +362,11 @@ static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, - .ops = &tegra114_sdhci_ops, + .ops = &tegra124_sdhci_ops, }; -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_tegra124_pdata, .nvquirks = NVQUIRK_ENABLE_SDR50 | NVQUIRK_ENABLE_DDR50 | NVQUIRK_ENABLE_SDR104, @@ -357,7 +389,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_tegra114 }, + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, { .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 ^ permalink raw reply related [flat|nested] 14+ messages in thread
[parent not found: <1455806924-14967-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1455806924-14967-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> @ 2016-02-18 16:07 ` Ulf Hansson [not found] ` <CAPDyKFowEH=4PU1ErNxMA0=SiDT1Q86H0SfMuiH5jA+H7mvquA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-02-26 9:34 ` Jon Hunter 1 sibling, 1 reply; 14+ messages in thread From: Ulf Hansson @ 2016-02-18 16:07 UTC (permalink / raw) To: Jon Hunter Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, Lucas Stach, linux-mmc, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Adrian Hunter +Adrian On 18 February 2016 at 15:48, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote: > SD card support for Tegra114 started failing after commit a8e326a911d3 > ("mmc: tegra: implement module external clock change") was merged. This > commit was part of a series to enable UHS-I modes for Tegra. To > workaround this problem for now, only disable UHS-I modes for Tegra114 > and in order to do this it is necessary to revert changes from commits > a8e326a911d3 ("mmc: tegra: implement module external clock change"), > c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe > ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do this so > that UHS-I mode can be disabled for Tegra114 but not for Tegra124 > separate the platform data, soc data and sdhci-ops so they are no longer > common to both Tegra114 and Tegra124. > > Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") > > Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> This looks okay to me, although I need and ack from Adrian to pick up this for fixes. Adrian did recently step in as the maintainer for sdhci. Kind regards Uffe > --- > drivers/mmc/host/sdhci-tegra.c | 42 +++++++++++++++++++++++++++++++++++++----- > 1 file changed, 37 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c > index 83c4bf7bc16c..bc7a0847e316 100644 > --- a/drivers/mmc/host/sdhci-tegra.c > +++ b/drivers/mmc/host/sdhci-tegra.c > @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) > /* Advertise UHS modes as supported by host */ > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; > sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); > > clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); > @@ -315,6 +321,32 @@ static const struct sdhci_ops tegra114_sdhci_ops = { > .write_w = tegra_sdhci_writew, > .write_l = tegra_sdhci_writel, > .set_clock = tegra_sdhci_set_clock, > + .set_bus_width = sdhci_set_bus_width, > + .reset = tegra_sdhci_reset, > + .set_uhs_signaling = sdhci_set_uhs_signaling, > + .get_max_clock = sdhci_pltfm_clk_get_max_clock, > +}; > + > +static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > + .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | > + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > + SDHCI_QUIRK_SINGLE_POWER_WRITE | > + SDHCI_QUIRK_NO_HISPD_BIT | > + SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | > + SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > + .ops = &tegra114_sdhci_ops, > +}; > + > +static const struct sdhci_tegra_soc_data soc_data_tegra114 = { > + .pdata = &sdhci_tegra114_pdata, > +}; > + > +static const struct sdhci_ops tegra124_sdhci_ops = { > + .get_ro = tegra_sdhci_get_ro, > + .read_w = tegra_sdhci_readw, > + .write_w = tegra_sdhci_writew, > + .write_l = tegra_sdhci_writel, > + .set_clock = tegra_sdhci_set_clock, > .set_bus_width = tegra_sdhci_set_bus_width, > .reset = tegra_sdhci_reset, > .platform_execute_tuning = tegra_sdhci_execute_tuning, > @@ -322,7 +354,7 @@ static const struct sdhci_ops tegra114_sdhci_ops = { > .get_max_clock = tegra_sdhci_get_max_clock, > }; > > -static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > +static const struct sdhci_pltfm_data sdhci_tegra124_pdata = { > .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | > SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > SDHCI_QUIRK_SINGLE_POWER_WRITE | > @@ -330,11 +362,11 @@ static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | > SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > - .ops = &tegra114_sdhci_ops, > + .ops = &tegra124_sdhci_ops, > }; > > -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_tegra124_pdata, > .nvquirks = NVQUIRK_ENABLE_SDR50 | > NVQUIRK_ENABLE_DDR50 | > NVQUIRK_ENABLE_SDR104, > @@ -357,7 +389,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_tegra114 }, > + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, > { .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 > ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <CAPDyKFowEH=4PU1ErNxMA0=SiDT1Q86H0SfMuiH5jA+H7mvquA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <CAPDyKFowEH=4PU1ErNxMA0=SiDT1Q86H0SfMuiH5jA+H7mvquA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2016-02-25 9:42 ` Jon Hunter [not found] ` <56CECC9E.9010501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Jon Hunter @ 2016-02-25 9:42 UTC (permalink / raw) To: Ulf Hansson, Lucas Stach, Adrian Hunter Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, linux-mmc, linux-tegra-u79uwXL29TY76Z2rM5mHXA Hi Adrian, Lucas, On 18/02/16 16:07, Ulf Hansson wrote: > +Adrian > > On 18 February 2016 at 15:48, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote: >> SD card support for Tegra114 started failing after commit a8e326a911d3 >> ("mmc: tegra: implement module external clock change") was merged. This >> commit was part of a series to enable UHS-I modes for Tegra. To >> workaround this problem for now, only disable UHS-I modes for Tegra114 >> and in order to do this it is necessary to revert changes from commits >> a8e326a911d3 ("mmc: tegra: implement module external clock change"), >> c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe >> ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do this so >> that UHS-I mode can be disabled for Tegra114 but not for Tegra124 >> separate the platform data, soc data and sdhci-ops so they are no longer >> common to both Tegra114 and Tegra124. >> >> Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") >> >> Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > > This looks okay to me, although I need and ack from Adrian to pick up > this for fixes. Adrian did recently step in as the maintainer for > sdhci. Are you guys ok with this? It would be good to get your ACK's so that Ulf can pick it up. Jon >> --- >> drivers/mmc/host/sdhci-tegra.c | 42 +++++++++++++++++++++++++++++++++++++----- >> 1 file changed, 37 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c >> index 83c4bf7bc16c..bc7a0847e316 100644 >> --- a/drivers/mmc/host/sdhci-tegra.c >> +++ b/drivers/mmc/host/sdhci-tegra.c >> @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) >> /* Advertise UHS modes as supported by host */ >> if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) >> misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; >> + else >> + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; >> if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) >> misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; >> + else >> + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; >> if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) >> misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; >> + else >> + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; >> sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); >> >> clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); >> @@ -315,6 +321,32 @@ static const struct sdhci_ops tegra114_sdhci_ops = { >> .write_w = tegra_sdhci_writew, >> .write_l = tegra_sdhci_writel, >> .set_clock = tegra_sdhci_set_clock, >> + .set_bus_width = sdhci_set_bus_width, >> + .reset = tegra_sdhci_reset, >> + .set_uhs_signaling = sdhci_set_uhs_signaling, >> + .get_max_clock = sdhci_pltfm_clk_get_max_clock, >> +}; >> + >> +static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { >> + .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | >> + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | >> + SDHCI_QUIRK_SINGLE_POWER_WRITE | >> + SDHCI_QUIRK_NO_HISPD_BIT | >> + SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | >> + SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, >> + .ops = &tegra114_sdhci_ops, >> +}; >> + >> +static const struct sdhci_tegra_soc_data soc_data_tegra114 = { >> + .pdata = &sdhci_tegra114_pdata, >> +}; >> + >> +static const struct sdhci_ops tegra124_sdhci_ops = { >> + .get_ro = tegra_sdhci_get_ro, >> + .read_w = tegra_sdhci_readw, >> + .write_w = tegra_sdhci_writew, >> + .write_l = tegra_sdhci_writel, >> + .set_clock = tegra_sdhci_set_clock, >> .set_bus_width = tegra_sdhci_set_bus_width, >> .reset = tegra_sdhci_reset, >> .platform_execute_tuning = tegra_sdhci_execute_tuning, >> @@ -322,7 +354,7 @@ static const struct sdhci_ops tegra114_sdhci_ops = { >> .get_max_clock = tegra_sdhci_get_max_clock, >> }; >> >> -static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { >> +static const struct sdhci_pltfm_data sdhci_tegra124_pdata = { >> .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | >> SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | >> SDHCI_QUIRK_SINGLE_POWER_WRITE | >> @@ -330,11 +362,11 @@ static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { >> SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | >> SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, >> .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, >> - .ops = &tegra114_sdhci_ops, >> + .ops = &tegra124_sdhci_ops, >> }; >> >> -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_tegra124_pdata, >> .nvquirks = NVQUIRK_ENABLE_SDR50 | >> NVQUIRK_ENABLE_DDR50 | >> NVQUIRK_ENABLE_SDR104, >> @@ -357,7 +389,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_tegra114 }, >> + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, >> { .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 >> ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <56CECC9E.9010501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <56CECC9E.9010501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> @ 2016-02-25 19:32 ` Lucas Stach [not found] ` <1456428771.7433.4.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org> 2016-02-26 8:58 ` Jon Hunter 0 siblings, 2 replies; 14+ messages in thread From: Lucas Stach @ 2016-02-25 19:32 UTC (permalink / raw) To: Jon Hunter, Ulf Hansson, Adrian Hunter Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, linux-mmc, linux-tegra-u79uwXL29TY76Z2rM5mHXA Am Donnerstag, den 25.02.2016, 09:42 +0000 schrieb Jon Hunter: > Hi Adrian, Lucas, > > On 18/02/16 16:07, Ulf Hansson wrote: > > +Adrian > > > > On 18 February 2016 at 15:48, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > > wrote: > > > SD card support for Tegra114 started failing after commit > > > a8e326a911d3 > > > ("mmc: tegra: implement module external clock change") was > > > merged. This > > > commit was part of a series to enable UHS-I modes for Tegra. To > > > workaround this problem for now, only disable UHS-I modes for > > > Tegra114 > > > and in order to do this it is necessary to revert changes from > > > commits > > > a8e326a911d3 ("mmc: tegra: implement module external clock > > > change"), > > > c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe > > > ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do > > > this so > > > that UHS-I mode can be disabled for Tegra114 but not for Tegra124 > > > separate the platform data, soc data and sdhci-ops so they are no > > > longer > > > common to both Tegra114 and Tegra124. > > > > > > Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock > > > change") > > > > > > Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > > > > This looks okay to me, although I need and ack from Adrian to pick > > up > > this for fixes. Adrian did recently step in as the maintainer for > > sdhci. > > Are you guys ok with this? It would be good to get your ACK's so that > Ulf can pick it up. > I don't see why you need to duplicate the tegra114_sdhci_ops. Together with the first hunk of this patch, having soc_data_tegra114 not set any UHS-I capabilities (quirks) should be enough to disable UHS-I modes on Tegra114. The core should never call any of the UHS-I related functions from tegra114_sdhci_ops in that case. Regards, Lucas > Jon > > > > --- > > > drivers/mmc/host/sdhci-tegra.c | 42 > > > +++++++++++++++++++++++++++++++++++++----- > > > 1 file changed, 37 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/mmc/host/sdhci-tegra.c > > > b/drivers/mmc/host/sdhci-tegra.c > > > index 83c4bf7bc16c..bc7a0847e316 100644 > > > --- a/drivers/mmc/host/sdhci-tegra.c > > > +++ b/drivers/mmc/host/sdhci-tegra.c > > > @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct > > > sdhci_host *host, u8 mask) > > > /* Advertise UHS modes as supported by host */ > > > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) > > > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; > > > + else > > > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; > > > if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) > > > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; > > > + else > > > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; > > > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) > > > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; > > > + else > > > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; > > > sdhci_writel(host, misc_ctrl, > > > SDHCI_TEGRA_VENDOR_MISC_CTRL); > > > > > > clk_ctrl = sdhci_readl(host, > > > SDHCI_TEGRA_VENDOR_CLOCK_CTRL); > > > @@ -315,6 +321,32 @@ static const struct sdhci_ops > > > tegra114_sdhci_ops = { > > > .write_w = tegra_sdhci_writew, > > > .write_l = tegra_sdhci_writel, > > > .set_clock = tegra_sdhci_set_clock, > > > + .set_bus_width = sdhci_set_bus_width, > > > + .reset = tegra_sdhci_reset, > > > + .set_uhs_signaling = sdhci_set_uhs_signaling, > > > + .get_max_clock = sdhci_pltfm_clk_get_max_clock, > > > +}; > > > + > > > +static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > > > + .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | > > > + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > > > + SDHCI_QUIRK_SINGLE_POWER_WRITE | > > > + SDHCI_QUIRK_NO_HISPD_BIT | > > > + SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | > > > + SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > > > + .ops = &tegra114_sdhci_ops, > > > +}; > > > + > > > +static const struct sdhci_tegra_soc_data soc_data_tegra114 = { > > > + .pdata = &sdhci_tegra114_pdata, > > > +}; > > > + > > > +static const struct sdhci_ops tegra124_sdhci_ops = { > > > + .get_ro = tegra_sdhci_get_ro, > > > + .read_w = tegra_sdhci_readw, > > > + .write_w = tegra_sdhci_writew, > > > + .write_l = tegra_sdhci_writel, > > > + .set_clock = tegra_sdhci_set_clock, > > > .set_bus_width = tegra_sdhci_set_bus_width, > > > .reset = tegra_sdhci_reset, > > > .platform_execute_tuning = tegra_sdhci_execute_tuning, > > > @@ -322,7 +354,7 @@ static const struct sdhci_ops > > > tegra114_sdhci_ops = { > > > .get_max_clock = tegra_sdhci_get_max_clock, > > > }; > > > > > > -static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > > > +static const struct sdhci_pltfm_data sdhci_tegra124_pdata = { > > > .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | > > > SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | > > > SDHCI_QUIRK_SINGLE_POWER_WRITE | > > > @@ -330,11 +362,11 @@ static const struct sdhci_pltfm_data > > > sdhci_tegra114_pdata = { > > > SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | > > > SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, > > > .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, > > > - .ops = &tegra114_sdhci_ops, > > > + .ops = &tegra124_sdhci_ops, > > > }; > > > > > > -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_tegra124_pdata, > > > .nvquirks = NVQUIRK_ENABLE_SDR50 | > > > NVQUIRK_ENABLE_DDR50 | > > > NVQUIRK_ENABLE_SDR104, > > > @@ -357,7 +389,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_tegra114 }, > > > + { .compatible = "nvidia,tegra124-sdhci", .data = > > > &soc_data_tegra124 }, > > > { .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 > > > ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <1456428771.7433.4.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org>]
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1456428771.7433.4.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org> @ 2016-02-25 23:10 ` Adrian Hunter [not found] ` <56CF89DF.1000206-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 14+ messages in thread From: Adrian Hunter @ 2016-02-25 23:10 UTC (permalink / raw) To: Lucas Stach, Jon Hunter, Ulf Hansson Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, linux-mmc, linux-tegra-u79uwXL29TY76Z2rM5mHXA On 25/02/2016 9:32 p.m., Lucas Stach wrote: > Am Donnerstag, den 25.02.2016, 09:42 +0000 schrieb Jon Hunter: >> Hi Adrian, Lucas, >> >> On 18/02/16 16:07, Ulf Hansson wrote: >>> +Adrian >>> >>> On 18 February 2016 at 15:48, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> >>> wrote: >>>> SD card support for Tegra114 started failing after commit >>>> a8e326a911d3 >>>> ("mmc: tegra: implement module external clock change") was >>>> merged. This >>>> commit was part of a series to enable UHS-I modes for Tegra. To >>>> workaround this problem for now, only disable UHS-I modes for >>>> Tegra114 >>>> and in order to do this it is necessary to revert changes from >>>> commits >>>> a8e326a911d3 ("mmc: tegra: implement module external clock >>>> change"), >>>> c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe >>>> ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do >>>> this so >>>> that UHS-I mode can be disabled for Tegra114 but not for Tegra124 >>>> separate the platform data, soc data and sdhci-ops so they are no >>>> longer >>>> common to both Tegra114 and Tegra124. >>>> >>>> Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock >>>> change") >>>> >>>> Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> >>> >>> This looks okay to me, although I need and ack from Adrian to pick >>> up >>> this for fixes. Adrian did recently step in as the maintainer for >>> sdhci. >> >> Are you guys ok with this? It would be good to get your ACK's so that >> Ulf can pick it up. >> > I don't see why you need to duplicate the tegra114_sdhci_ops. > Together with the first hunk of this patch, having soc_data_tegra114 > not set any UHS-I capabilities (quirks) should be enough to disable > UHS-I modes on Tegra114. The core should never call any of the UHS-I > related functions from tegra114_sdhci_ops in that case. I am on vacation until the middle of next week so I haven't had a chance to look at this, but it is not obvious if the changes to the ops are needed. Jon, please comment. > > Regards, > Lucas > >> Jon >> >>>> --- >>>> drivers/mmc/host/sdhci-tegra.c | 42 >>>> +++++++++++++++++++++++++++++++++++++----- >>>> 1 file changed, 37 insertions(+), 5 deletions(-) >>>> >>>> diff --git a/drivers/mmc/host/sdhci-tegra.c >>>> b/drivers/mmc/host/sdhci-tegra.c >>>> index 83c4bf7bc16c..bc7a0847e316 100644 >>>> --- a/drivers/mmc/host/sdhci-tegra.c >>>> +++ b/drivers/mmc/host/sdhci-tegra.c >>>> @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct >>>> sdhci_host *host, u8 mask) >>>> /* Advertise UHS modes as supported by host */ >>>> if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) >>>> misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; >>>> + else >>>> + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; >>>> if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) >>>> misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; >>>> + else >>>> + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; >>>> if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) >>>> misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; >>>> + else >>>> + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; >>>> sdhci_writel(host, misc_ctrl, >>>> SDHCI_TEGRA_VENDOR_MISC_CTRL); >>>> >>>> clk_ctrl = sdhci_readl(host, >>>> SDHCI_TEGRA_VENDOR_CLOCK_CTRL); >>>> @@ -315,6 +321,32 @@ static const struct sdhci_ops >>>> tegra114_sdhci_ops = { >>>> .write_w = tegra_sdhci_writew, >>>> .write_l = tegra_sdhci_writel, >>>> .set_clock = tegra_sdhci_set_clock, >>>> + .set_bus_width = sdhci_set_bus_width, >>>> + .reset = tegra_sdhci_reset, >>>> + .set_uhs_signaling = sdhci_set_uhs_signaling, >>>> + .get_max_clock = sdhci_pltfm_clk_get_max_clock, >>>> +}; >>>> + >>>> +static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { >>>> + .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | >>>> + SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | >>>> + SDHCI_QUIRK_SINGLE_POWER_WRITE | >>>> + SDHCI_QUIRK_NO_HISPD_BIT | >>>> + SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | >>>> + SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, >>>> + .ops = &tegra114_sdhci_ops, >>>> +}; >>>> + >>>> +static const struct sdhci_tegra_soc_data soc_data_tegra114 = { >>>> + .pdata = &sdhci_tegra114_pdata, >>>> +}; >>>> + >>>> +static const struct sdhci_ops tegra124_sdhci_ops = { >>>> + .get_ro = tegra_sdhci_get_ro, >>>> + .read_w = tegra_sdhci_readw, >>>> + .write_w = tegra_sdhci_writew, >>>> + .write_l = tegra_sdhci_writel, >>>> + .set_clock = tegra_sdhci_set_clock, >>>> .set_bus_width = tegra_sdhci_set_bus_width, >>>> .reset = tegra_sdhci_reset, >>>> .platform_execute_tuning = tegra_sdhci_execute_tuning, >>>> @@ -322,7 +354,7 @@ static const struct sdhci_ops >>>> tegra114_sdhci_ops = { >>>> .get_max_clock = tegra_sdhci_get_max_clock, >>>> }; >>>> >>>> -static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { >>>> +static const struct sdhci_pltfm_data sdhci_tegra124_pdata = { >>>> .quirks = SDHCI_QUIRK_BROKEN_TIMEOUT_VAL | >>>> SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK | >>>> SDHCI_QUIRK_SINGLE_POWER_WRITE | >>>> @@ -330,11 +362,11 @@ static const struct sdhci_pltfm_data >>>> sdhci_tegra114_pdata = { >>>> SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC | >>>> SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, >>>> .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, >>>> - .ops = &tegra114_sdhci_ops, >>>> + .ops = &tegra124_sdhci_ops, >>>> }; >>>> >>>> -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_tegra124_pdata, >>>> .nvquirks = NVQUIRK_ENABLE_SDR50 | >>>> NVQUIRK_ENABLE_DDR50 | >>>> NVQUIRK_ENABLE_SDR104, >>>> @@ -357,7 +389,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_tegra114 }, >>>> + { .compatible = "nvidia,tegra124-sdhci", .data = >>>> &soc_data_tegra124 }, >>>> { .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 >>>> ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <56CF89DF.1000206-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <56CF89DF.1000206-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> @ 2016-02-26 9:39 ` Jon Hunter 0 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2016-02-26 9:39 UTC (permalink / raw) To: Adrian Hunter, Lucas Stach, Ulf Hansson Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, linux-mmc, linux-tegra-u79uwXL29TY76Z2rM5mHXA On 25/02/16 23:10, Adrian Hunter wrote: > On 25/02/2016 9:32 p.m., Lucas Stach wrote: >> Am Donnerstag, den 25.02.2016, 09:42 +0000 schrieb Jon Hunter: >>> Hi Adrian, Lucas, >>> >>> On 18/02/16 16:07, Ulf Hansson wrote: >>>> +Adrian >>>> >>>> On 18 February 2016 at 15:48, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> >>>> wrote: >>>>> SD card support for Tegra114 started failing after commit >>>>> a8e326a911d3 >>>>> ("mmc: tegra: implement module external clock change") was >>>>> merged. This >>>>> commit was part of a series to enable UHS-I modes for Tegra. To >>>>> workaround this problem for now, only disable UHS-I modes for >>>>> Tegra114 >>>>> and in order to do this it is necessary to revert changes from >>>>> commits >>>>> a8e326a911d3 ("mmc: tegra: implement module external clock >>>>> change"), >>>>> c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe >>>>> ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do >>>>> this so >>>>> that UHS-I mode can be disabled for Tegra114 but not for Tegra124 >>>>> separate the platform data, soc data and sdhci-ops so they are no >>>>> longer >>>>> common to both Tegra114 and Tegra124. >>>>> >>>>> Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock >>>>> change") >>>>> >>>>> Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> >>>> >>>> This looks okay to me, although I need and ack from Adrian to pick >>>> up >>>> this for fixes. Adrian did recently step in as the maintainer for >>>> sdhci. >>> >>> Are you guys ok with this? It would be good to get your ACK's so that >>> Ulf can pick it up. >>> >> I don't see why you need to duplicate the tegra114_sdhci_ops. >> Together with the first hunk of this patch, having soc_data_tegra114 >> not set any UHS-I capabilities (quirks) should be enough to disable >> UHS-I modes on Tegra114. The core should never call any of the UHS-I >> related functions from tegra114_sdhci_ops in that case. > > I am on vacation until the middle of next week so I haven't had a > chance to look at this, but it is not obvious if the changes to > the ops are needed. Jon, please comment. No problem. I was not sure so reverted all the changes for Tegra114. I have posted an updated version [0] without the duplicate ops (forgot to mark as V2). I have tested this and confirm that it is working. Please ACK this if you are happy. Jon [0] http://marc.info/?l=linux-mmc&m=145647928317400&w=2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 2016-02-25 19:32 ` Lucas Stach [not found] ` <1456428771.7433.4.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org> @ 2016-02-26 8:58 ` Jon Hunter 1 sibling, 0 replies; 14+ messages in thread From: Jon Hunter @ 2016-02-26 8:58 UTC (permalink / raw) To: Lucas Stach, Ulf Hansson, Adrian Hunter Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, linux-mmc, linux-tegra On 25/02/16 19:32, Lucas Stach wrote: > Am Donnerstag, den 25.02.2016, 09:42 +0000 schrieb Jon Hunter: >> Hi Adrian, Lucas, >> >> On 18/02/16 16:07, Ulf Hansson wrote: >>> +Adrian >>> >>> On 18 February 2016 at 15:48, Jon Hunter <jonathanh@nvidia.com> >>> wrote: >>>> SD card support for Tegra114 started failing after commit >>>> a8e326a911d3 >>>> ("mmc: tegra: implement module external clock change") was >>>> merged. This >>>> commit was part of a series to enable UHS-I modes for Tegra. To >>>> workaround this problem for now, only disable UHS-I modes for >>>> Tegra114 >>>> and in order to do this it is necessary to revert changes from >>>> commits >>>> a8e326a911d3 ("mmc: tegra: implement module external clock >>>> change"), >>>> c3c2384c3ac0 ("mmc: tegra: implement UHS tuning"), 7ad2ed1dfcbe >>>> ("mmc: tegra: enable UHS-I modes") that impact Tegra114. To do >>>> this so >>>> that UHS-I mode can be disabled for Tegra114 but not for Tegra124 >>>> separate the platform data, soc data and sdhci-ops so they are no >>>> longer >>>> common to both Tegra114 and Tegra124. >>>> >>>> Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock >>>> change") >>>> >>>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> >>> >>> This looks okay to me, although I need and ack from Adrian to pick >>> up >>> this for fixes. Adrian did recently step in as the maintainer for >>> sdhci. >> >> Are you guys ok with this? It would be good to get your ACK's so that >> Ulf can pick it up. >> > I don't see why you need to duplicate the tegra114_sdhci_ops. > Together with the first hunk of this patch, having soc_data_tegra114 > not set any UHS-I capabilities (quirks) should be enough to disable > UHS-I modes on Tegra114. The core should never call any of the UHS-I > related functions from tegra114_sdhci_ops in that case. Ok, I will give that a try. I was not sure if I needed to completely remove all the changes or not and so I wanted to make it equivalent to what we had before to ensure there would be no other problems crop up. I will re-work and test and hopefully we can get this sorted. Jon ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1455806924-14967-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-02-18 16:07 ` Ulf Hansson @ 2016-02-26 9:34 ` Jon Hunter [not found] ` <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 1 sibling, 1 reply; 14+ messages in thread From: Jon Hunter @ 2016-02-26 9:34 UTC (permalink / raw) To: Ulf Hansson, Adrian Hunter, Stephen Warren, Thierry Reding, Alexandre Courbot, Lucas Stach Cc: linux-mmc-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Jon Hunter SD card support for Tegra114 started failing after commit a8e326a911d3 ("mmc: tegra: implement module external clock change") was merged. This commit was part of a series to enable UHS-I modes for Tegra. To workaround this problem for now, disable UHS-I modes for Tegra114 by separating the soc data structures for Tegra114 and Tegra124 so that UHS-I is still enabled for Tegra124 but not Tegra114. Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> --- drivers/mmc/host/sdhci-tegra.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 83c4bf7bc16c..212d51f08939 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) /* Advertise UHS modes as supported by host */ if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; + else + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; + else + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; + else + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); @@ -335,6 +341,10 @@ static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { 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, @@ -357,7 +367,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_tegra114 }, + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, { .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 ^ permalink raw reply related [flat|nested] 14+ messages in thread
[parent not found: <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> @ 2016-02-26 9:35 ` Jon Hunter 2016-02-26 17:47 ` Lucas Stach ` (2 subsequent siblings) 3 siblings, 0 replies; 14+ messages in thread From: Jon Hunter @ 2016-02-26 9:35 UTC (permalink / raw) To: Ulf Hansson, Adrian Hunter, Stephen Warren, Thierry Reding, Alexandre Courbot, Lucas Stach Cc: linux-mmc-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA Sorry forgot to mark this as V2! On 26/02/16 09:34, Jon Hunter wrote: > SD card support for Tegra114 started failing after commit a8e326a911d3 > ("mmc: tegra: implement module external clock change") was merged. This > commit was part of a series to enable UHS-I modes for Tegra. To > workaround this problem for now, disable UHS-I modes for Tegra114 by > separating the soc data structures for Tegra114 and Tegra124 so that > UHS-I is still enabled for Tegra124 but not Tegra114. > > Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") > > Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > --- > drivers/mmc/host/sdhci-tegra.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c > index 83c4bf7bc16c..212d51f08939 100644 > --- a/drivers/mmc/host/sdhci-tegra.c > +++ b/drivers/mmc/host/sdhci-tegra.c > @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) > /* Advertise UHS modes as supported by host */ > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; > sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); > > clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); > @@ -335,6 +341,10 @@ static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > > 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, > @@ -357,7 +367,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_tegra114 }, > + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, > { .compatible = "nvidia,tegra114-sdhci", .data = &soc_data_tegra114 }, > { .compatible = "nvidia,tegra30-sdhci", .data = &soc_data_tegra30 }, > { .compatible = "nvidia,tegra20-sdhci", .data = &soc_data_tegra20 }, > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-02-26 9:35 ` Jon Hunter @ 2016-02-26 17:47 ` Lucas Stach 2016-02-29 6:43 ` Thierry Reding 2016-03-04 9:41 ` Ulf Hansson 3 siblings, 0 replies; 14+ messages in thread From: Lucas Stach @ 2016-02-26 17:47 UTC (permalink / raw) To: Jon Hunter, Ulf Hansson, Adrian Hunter, Stephen Warren, Thierry Reding, Alexandre Courbot Cc: linux-mmc-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA Am Freitag, den 26.02.2016, 09:34 +0000 schrieb Jon Hunter: > SD card support for Tegra114 started failing after commit > a8e326a911d3 > ("mmc: tegra: implement module external clock change") was merged. > This > commit was part of a series to enable UHS-I modes for Tegra. To > workaround this problem for now, disable UHS-I modes for Tegra114 by > separating the soc data structures for Tegra114 and Tegra124 so that > UHS-I is still enabled for Tegra124 but not Tegra114. > > Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock > change") > > Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> This looks good to me now, Reviewed-by: Lucas Stach <dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org> > --- > drivers/mmc/host/sdhci-tegra.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci- > tegra.c > index 83c4bf7bc16c..212d51f08939 100644 > --- a/drivers/mmc/host/sdhci-tegra.c > +++ b/drivers/mmc/host/sdhci-tegra.c > @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host > *host, u8 mask) > /* Advertise UHS modes as supported by host */ > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; > sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); > > clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); > @@ -335,6 +341,10 @@ static const struct sdhci_pltfm_data > sdhci_tegra114_pdata = { > > 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, > @@ -357,7 +367,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_tegra114 }, > + { .compatible = "nvidia,tegra124-sdhci", .data = > &soc_data_tegra124 }, > { .compatible = "nvidia,tegra114-sdhci", .data = > &soc_data_tegra114 }, > { .compatible = "nvidia,tegra30-sdhci", .data = > &soc_data_tegra30 }, > { .compatible = "nvidia,tegra20-sdhci", .data = > &soc_data_tegra20 }, ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-02-26 9:35 ` Jon Hunter 2016-02-26 17:47 ` Lucas Stach @ 2016-02-29 6:43 ` Thierry Reding 2016-03-02 13:50 ` Adrian Hunter 2016-03-04 9:41 ` Ulf Hansson 3 siblings, 1 reply; 14+ messages in thread From: Thierry Reding @ 2016-02-29 6:43 UTC (permalink / raw) To: Jon Hunter Cc: Ulf Hansson, Adrian Hunter, Stephen Warren, Alexandre Courbot, Lucas Stach, linux-mmc-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 835 bytes --] On Fri, Feb 26, 2016 at 09:34:17AM +0000, Jon Hunter wrote: > SD card support for Tegra114 started failing after commit a8e326a911d3 > ("mmc: tegra: implement module external clock change") was merged. This > commit was part of a series to enable UHS-I modes for Tegra. To > workaround this problem for now, disable UHS-I modes for Tegra114 by > separating the soc data structures for Tegra114 and Tegra124 so that > UHS-I is still enabled for Tegra124 but not Tegra114. > > Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") > > Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > --- > drivers/mmc/host/sdhci-tegra.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) Acked-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 2016-02-29 6:43 ` Thierry Reding @ 2016-03-02 13:50 ` Adrian Hunter 0 siblings, 0 replies; 14+ messages in thread From: Adrian Hunter @ 2016-03-02 13:50 UTC (permalink / raw) To: Thierry Reding, Jon Hunter Cc: Ulf Hansson, Stephen Warren, Alexandre Courbot, Lucas Stach, linux-mmc-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA On 29/02/16 08:43, Thierry Reding wrote: > On Fri, Feb 26, 2016 at 09:34:17AM +0000, Jon Hunter wrote: >> SD card support for Tegra114 started failing after commit a8e326a911d3 >> ("mmc: tegra: implement module external clock change") was merged. This >> commit was part of a series to enable UHS-I modes for Tegra. To >> workaround this problem for now, disable UHS-I modes for Tegra114 by >> separating the soc data structures for Tegra114 and Tegra124 so that >> UHS-I is still enabled for Tegra124 but not Tegra114. >> >> Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") >> >> Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> >> --- >> drivers/mmc/host/sdhci-tegra.c | 12 +++++++++++- >> 1 file changed, 11 insertions(+), 1 deletion(-) > > Acked-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> > Acked-by: Adrian Hunter <adrian.hunter-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 [not found] ` <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> ` (2 preceding siblings ...) 2016-02-29 6:43 ` Thierry Reding @ 2016-03-04 9:41 ` Ulf Hansson 2016-03-16 12:32 ` Ulf Hansson 3 siblings, 1 reply; 14+ messages in thread From: Ulf Hansson @ 2016-03-04 9:41 UTC (permalink / raw) To: Jon Hunter Cc: Adrian Hunter, Stephen Warren, Thierry Reding, Alexandre Courbot, Lucas Stach, linux-mmc, linux-tegra-u79uwXL29TY76Z2rM5mHXA On 26 February 2016 at 10:34, Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> wrote: > SD card support for Tegra114 started failing after commit a8e326a911d3 > ("mmc: tegra: implement module external clock change") was merged. This > commit was part of a series to enable UHS-I modes for Tegra. To > workaround this problem for now, disable UHS-I modes for Tegra114 by > separating the soc data structures for Tegra114 and Tegra124 so that > UHS-I is still enabled for Tegra124 but not Tegra114. > > Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") > > Signed-off-by: Jon Hunter <jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> Thanks, applied for fixes! Kind regards Uffe > --- > drivers/mmc/host/sdhci-tegra.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c > index 83c4bf7bc16c..212d51f08939 100644 > --- a/drivers/mmc/host/sdhci-tegra.c > +++ b/drivers/mmc/host/sdhci-tegra.c > @@ -147,10 +147,16 @@ static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) > /* Advertise UHS modes as supported by host */ > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_DDR50) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_DDR50; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_DDR50; > if (soc_data->nvquirks & NVQUIRK_ENABLE_SDR104) > misc_ctrl |= SDHCI_MISC_CTRL_ENABLE_SDR104; > + else > + misc_ctrl &= ~SDHCI_MISC_CTRL_ENABLE_SDR104; > sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); > > clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); > @@ -335,6 +341,10 @@ static const struct sdhci_pltfm_data sdhci_tegra114_pdata = { > > 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, > @@ -357,7 +367,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_tegra114 }, > + { .compatible = "nvidia,tegra124-sdhci", .data = &soc_data_tegra124 }, > { .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 > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 2016-03-04 9:41 ` Ulf Hansson @ 2016-03-16 12:32 ` Ulf Hansson 0 siblings, 0 replies; 14+ messages in thread From: Ulf Hansson @ 2016-03-16 12:32 UTC (permalink / raw) To: Jon Hunter Cc: Adrian Hunter, Stephen Warren, Thierry Reding, Alexandre Courbot, Lucas Stach, linux-mmc, linux-tegra On 4 March 2016 at 10:41, Ulf Hansson <ulf.hansson@linaro.org> wrote: > On 26 February 2016 at 10:34, Jon Hunter <jonathanh@nvidia.com> wrote: >> SD card support for Tegra114 started failing after commit a8e326a911d3 >> ("mmc: tegra: implement module external clock change") was merged. This >> commit was part of a series to enable UHS-I modes for Tegra. To >> workaround this problem for now, disable UHS-I modes for Tegra114 by >> separating the soc data structures for Tegra114 and Tegra124 so that >> UHS-I is still enabled for Tegra124 but not Tegra114. >> >> Fixes: a8e326a911d3 ("mmc: tegra: implement module external clock change") >> >> Signed-off-by: Jon Hunter <jonathanh@nvidia.com> > > Thanks, applied for fixes! Unfortunate I failed to send this in a PR to Linus within the 4.5 rc cycle, apologize for the inconvenience! Instead I have this queued for 4.6 and I have added a stable tag to it. [...] Kind regards Uffe ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-03-16 12:32 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-02-18 14:48 [PATCH] mmc: tegra: Disable UHS-I modes for tegra114 Jon Hunter [not found] ` <1455806924-14967-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-02-18 16:07 ` Ulf Hansson [not found] ` <CAPDyKFowEH=4PU1ErNxMA0=SiDT1Q86H0SfMuiH5jA+H7mvquA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2016-02-25 9:42 ` Jon Hunter [not found] ` <56CECC9E.9010501-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-02-25 19:32 ` Lucas Stach [not found] ` <1456428771.7433.4.camel-8ppwABl0HbeELgA04lAiVw@public.gmane.org> 2016-02-25 23:10 ` Adrian Hunter [not found] ` <56CF89DF.1000206-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> 2016-02-26 9:39 ` Jon Hunter 2016-02-26 8:58 ` Jon Hunter 2016-02-26 9:34 ` Jon Hunter [not found] ` <1456479257-12147-1-git-send-email-jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> 2016-02-26 9:35 ` Jon Hunter 2016-02-26 17:47 ` Lucas Stach 2016-02-29 6:43 ` Thierry Reding 2016-03-02 13:50 ` Adrian Hunter 2016-03-04 9:41 ` Ulf Hansson 2016-03-16 12:32 ` Ulf Hansson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.