Re: [PATCH 3/3] mmc: sdhci-pci: allow 8-bit bus width for Intel PCH
From: Tomoya MORINAGA
Date: Tue Mar 13 2012 - 21:17:37 EST
Hi Alexander
As a matter of interest,
do you mean that current MMC of eg20t on Linux doesn't support 8-bit access?
thanks,
--
ROHM Co., Ltd.
tomoya
On Wed, Mar 14, 2012 at 2:16 AM, Alexander Stein
<alexander.stein@xxxxxxxxxxxxxxxxxxxxx> wrote:
> Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxxxxxxxx>
> ---
> drivers/mmc/host/sdhci-pci.c | 27 +++++++++++++++++++++++++++
> include/linux/pci_ids.h | 2 ++
> 2 files changed, 29 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
> index 9382f27..0218cb2 100644
> --- a/drivers/mmc/host/sdhci-pci.c
> +++ b/drivers/mmc/host/sdhci-pci.c
> @@ -172,6 +172,12 @@ static int mrst_hc_probe(struct sdhci_pci_chip *chip)
> return 0;
> }
>
> +static int pch_hc_probe_slot(struct sdhci_pci_slot *slot)
> +{
> + slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA;
> + return 0;
> +}
> +
> #ifdef CONFIG_PM_RUNTIME
>
> static irqreturn_t sdhci_pci_sd_cd(int irq, void *dev_id)
> @@ -281,6 +287,11 @@ static const struct sdhci_pci_fixes sdhci_intel_mfd_emmc = {
> .probe_slot = mfd_emmc_probe_slot,
> };
>
> +static const struct sdhci_pci_fixes sdhci_intel_pch_sdio = {
> + .quirks = SDHCI_QUIRK_BROKEN_ADMA,
> + .probe_slot = pch_hc_probe_slot,
> +};
> +
> /* O2Micro extra registers */
> #define O2_SD_LOCK_WP 0xD3
> #define O2_SD_MULTI_VCC3V 0xEE
> @@ -817,6 +828,22 @@ static const struct pci_device_id pci_ids[] __devinitdata = {
> },
>
> {
> + .vendor = PCI_VENDOR_ID_INTEL,
> + .device = PCI_DEVICE_ID_INTEL_PCH_SDIO0,
> + .subvendor = PCI_ANY_ID,
> + .subdevice = PCI_ANY_ID,
> + .driver_data = (kernel_ulong_t)&sdhci_intel_pch_sdio,
> + },
> +
> + {
> + .vendor = PCI_VENDOR_ID_INTEL,
> + .device = PCI_DEVICE_ID_INTEL_PCH_SDIO1,
> + .subvendor = PCI_ANY_ID,
> + .subdevice = PCI_ANY_ID,
> + .driver_data = (kernel_ulong_t)&sdhci_intel_pch_sdio,
> + },
> +
> + {
> .vendor = PCI_VENDOR_ID_O2,
> .device = PCI_DEVICE_ID_O2_8120,
> .subvendor = PCI_ANY_ID,
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 31d77af..28cd019 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -2800,6 +2800,8 @@
> #define PCI_DEVICE_ID_INTEL_82454NX 0x84cb
> #define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
> #define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500
> +#define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809
> +#define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a
> #define PCI_DEVICE_ID_INTEL_IXP2800 0x9004
> #define PCI_DEVICE_ID_INTEL_S21152BB 0xb152
>
> --
> 1.7.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/