Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d013bcf authored by Adrian Hunter's avatar Adrian Hunter Committed by Chris Ball
Browse files

mmc: sdhci-pci: allow 8-bit bus width for Intel Medfield eMMCs



Unless MMC_CAP_8_BIT_DATA is set, the bus width defaults to 4.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent 68077b02
Loading
Loading
Loading
Loading
+16 −5
Original line number Original line Diff line number Diff line
@@ -163,6 +163,12 @@ static int mrst_hc_probe(struct sdhci_pci_chip *chip)
	return 0;
	return 0;
}
}


static int mfd_emmc_probe_slot(struct sdhci_pci_slot *slot)
{
	slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA;
	return 0;
}

static const struct sdhci_pci_fixes sdhci_intel_mrst_hc0 = {
static const struct sdhci_pci_fixes sdhci_intel_mrst_hc0 = {
	.quirks		= SDHCI_QUIRK_BROKEN_ADMA | SDHCI_QUIRK_NO_HISPD_BIT,
	.quirks		= SDHCI_QUIRK_BROKEN_ADMA | SDHCI_QUIRK_NO_HISPD_BIT,
	.probe_slot	= mrst_hc_probe_slot,
	.probe_slot	= mrst_hc_probe_slot,
@@ -177,8 +183,13 @@ static const struct sdhci_pci_fixes sdhci_intel_mfd_sd = {
	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
};
};


static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc_sdio = {
static const struct sdhci_pci_fixes sdhci_intel_mfd_sdio = {
	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
};

static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc = {
	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
	.quirks		= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
	.probe_slot	= mfd_emmc_probe_slot,
};
};


/* O2Micro extra registers */
/* O2Micro extra registers */
@@ -689,7 +700,7 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
		.device		= PCI_DEVICE_ID_INTEL_MFD_SDIO1,
		.device		= PCI_DEVICE_ID_INTEL_MFD_SDIO1,
		.subvendor	= PCI_ANY_ID,
		.subvendor	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_sdio,
	},
	},


	{
	{
@@ -697,7 +708,7 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
		.device		= PCI_DEVICE_ID_INTEL_MFD_SDIO2,
		.device		= PCI_DEVICE_ID_INTEL_MFD_SDIO2,
		.subvendor	= PCI_ANY_ID,
		.subvendor	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_sdio,
	},
	},


	{
	{
@@ -705,7 +716,7 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
		.device		= PCI_DEVICE_ID_INTEL_MFD_EMMC0,
		.device		= PCI_DEVICE_ID_INTEL_MFD_EMMC0,
		.subvendor	= PCI_ANY_ID,
		.subvendor	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_emmc,
	},
	},


	{
	{
@@ -713,7 +724,7 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
		.device		= PCI_DEVICE_ID_INTEL_MFD_EMMC1,
		.device		= PCI_DEVICE_ID_INTEL_MFD_EMMC1,
		.subvendor	= PCI_ANY_ID,
		.subvendor	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.subdevice	= PCI_ANY_ID,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_emmc_sdio,
		.driver_data	= (kernel_ulong_t)&sdhci_intel_mfd_emmc,
	},
	},


	{
	{