2014-07-08 11:18:31

by Maurice Petallo

[permalink] [raw]
Subject: [PATCH 0/2] mmc: sdhci: Preset Value disabling and DDR50 mode enabling for BayTrail eMMC

This patch series includes:
(1) Declare SDHCI_QUIRK2_PRESET_VALUE_BROKEN for PCI mode and ACPI mode
Baytrail eMMC controller as it doesn't support Preset Value feature.
(2) Enable DDR50 1.8V mode support for PCI and ACPI mode BayTrail eMMC controller

Maurice Petallo (2):
mmc: sdhci: Preset value not supported in Baytrail eMMC
mmc: sdhci: add DDR50 1.8V mode support for BayTrail eMMC Controller

drivers/mmc/host/sdhci-acpi.c | 4 +++-
drivers/mmc/host/sdhci-pci.c | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)

--
1.8.1.4


2014-07-08 11:18:36

by Maurice Petallo

[permalink] [raw]
Subject: [PATCH 2/2] mmc: sdhci: add DDR50 1.8V mode support for BayTrail eMMC Controller

This is to enable DDR50 bus speed mode with 1.8V signaling capability
for BayTrail ACPI and PCI mode eMMC Controller.

Signed-off-by: Maurice Petallo <[email protected]>
Acked-by: Adrian Hunter <[email protected]>
---
drivers/mmc/host/sdhci-acpi.c | 3 ++-
drivers/mmc/host/sdhci-pci.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index 840788e..8c53370 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -124,7 +124,8 @@ static const struct sdhci_acpi_chip sdhci_acpi_chip_int = {

static const struct sdhci_acpi_slot sdhci_acpi_slot_int_emmc = {
.chip = &sdhci_acpi_chip_int,
- .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | MMC_CAP_HW_RESET,
+ .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE |
+ MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR,
.caps2 = MMC_CAP2_HC_ERASE_SZ,
.flags = SDHCI_ACPI_RUNTIME_PM,
.quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index 7514cc7..89bd721 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -264,7 +264,7 @@ static void sdhci_pci_int_hw_reset(struct sdhci_host *host)
static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot)
{
slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE |
- MMC_CAP_HW_RESET;
+ MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR;
slot->host->mmc->caps2 |= MMC_CAP2_HC_ERASE_SZ;
slot->hw_reset = sdhci_pci_int_hw_reset;
return 0;
--
1.8.1.4

2014-07-08 11:18:30

by Maurice Petallo

[permalink] [raw]
Subject: [PATCH 1/2] mmc: sdhci: Preset value not supported in Baytrail eMMC

"SDHCI_QUIRK2_PRESET_VALUE_BROKEN" quirk is added to prohibit
preset value enabling for Baytrail eMMC controller.

Signed-off-by: Maurice Petallo <[email protected]>
Acked-by: Adrian Hunter <[email protected]>
---
drivers/mmc/host/sdhci-acpi.c | 1 +
drivers/mmc/host/sdhci-pci.c | 1 +
2 files changed, 2 insertions(+)

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index 8ce3c28..840788e 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -127,6 +127,7 @@ static const struct sdhci_acpi_slot sdhci_acpi_slot_int_emmc = {
.caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | MMC_CAP_HW_RESET,
.caps2 = MMC_CAP2_HC_ERASE_SZ,
.flags = SDHCI_ACPI_RUNTIME_PM,
+ .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
};

static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sdio = {
diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
index 52c42fc..7514cc7 100644
--- a/drivers/mmc/host/sdhci-pci.c
+++ b/drivers/mmc/host/sdhci-pci.c
@@ -279,6 +279,7 @@ static int byt_sdio_probe_slot(struct sdhci_pci_slot *slot)
static const struct sdhci_pci_fixes sdhci_intel_byt_emmc = {
.allow_runtime_pm = true,
.probe_slot = byt_emmc_probe_slot,
+ .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
};

static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = {
--
1.8.1.4

2014-07-10 13:00:49

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH 1/2] mmc: sdhci: Preset value not supported in Baytrail eMMC

On 8 July 2014 13:11, Maurice Petallo <[email protected]> wrote:
> "SDHCI_QUIRK2_PRESET_VALUE_BROKEN" quirk is added to prohibit
> preset value enabling for Baytrail eMMC controller.
>
> Signed-off-by: Maurice Petallo <[email protected]>
> Acked-by: Adrian Hunter <[email protected]>

Thanks! Applied for next.

Kind regards
Uffe

> ---
> drivers/mmc/host/sdhci-acpi.c | 1 +
> drivers/mmc/host/sdhci-pci.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
> index 8ce3c28..840788e 100644
> --- a/drivers/mmc/host/sdhci-acpi.c
> +++ b/drivers/mmc/host/sdhci-acpi.c
> @@ -127,6 +127,7 @@ static const struct sdhci_acpi_slot sdhci_acpi_slot_int_emmc = {
> .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | MMC_CAP_HW_RESET,
> .caps2 = MMC_CAP2_HC_ERASE_SZ,
> .flags = SDHCI_ACPI_RUNTIME_PM,
> + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
> };
>
> static const struct sdhci_acpi_slot sdhci_acpi_slot_int_sdio = {
> diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
> index 52c42fc..7514cc7 100644
> --- a/drivers/mmc/host/sdhci-pci.c
> +++ b/drivers/mmc/host/sdhci-pci.c
> @@ -279,6 +279,7 @@ static int byt_sdio_probe_slot(struct sdhci_pci_slot *slot)
> static const struct sdhci_pci_fixes sdhci_intel_byt_emmc = {
> .allow_runtime_pm = true,
> .probe_slot = byt_emmc_probe_slot,
> + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
> };
>
> static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = {
> --
> 1.8.1.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2014-07-10 13:01:07

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH 2/2] mmc: sdhci: add DDR50 1.8V mode support for BayTrail eMMC Controller

On 8 July 2014 13:11, Maurice Petallo <[email protected]> wrote:
> This is to enable DDR50 bus speed mode with 1.8V signaling capability
> for BayTrail ACPI and PCI mode eMMC Controller.
>
> Signed-off-by: Maurice Petallo <[email protected]>
> Acked-by: Adrian Hunter <[email protected]>

Thanks! Applied for next.

Kind regards
Uffe


> ---
> drivers/mmc/host/sdhci-acpi.c | 3 ++-
> drivers/mmc/host/sdhci-pci.c | 2 +-
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
> index 840788e..8c53370 100644
> --- a/drivers/mmc/host/sdhci-acpi.c
> +++ b/drivers/mmc/host/sdhci-acpi.c
> @@ -124,7 +124,8 @@ static const struct sdhci_acpi_chip sdhci_acpi_chip_int = {
>
> static const struct sdhci_acpi_slot sdhci_acpi_slot_int_emmc = {
> .chip = &sdhci_acpi_chip_int,
> - .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | MMC_CAP_HW_RESET,
> + .caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE |
> + MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR,
> .caps2 = MMC_CAP2_HC_ERASE_SZ,
> .flags = SDHCI_ACPI_RUNTIME_PM,
> .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
> diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
> index 7514cc7..89bd721 100644
> --- a/drivers/mmc/host/sdhci-pci.c
> +++ b/drivers/mmc/host/sdhci-pci.c
> @@ -264,7 +264,7 @@ static void sdhci_pci_int_hw_reset(struct sdhci_host *host)
> static int byt_emmc_probe_slot(struct sdhci_pci_slot *slot)
> {
> slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE |
> - MMC_CAP_HW_RESET;
> + MMC_CAP_HW_RESET | MMC_CAP_1_8V_DDR;
> slot->host->mmc->caps2 |= MMC_CAP2_HC_ERASE_SZ;
> slot->hw_reset = sdhci_pci_int_hw_reset;
> return 0;
> --
> 1.8.1.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html