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/