From da2364cc14a0b34411c4a228ae687a23504afe04 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Mon, 26 Jun 2017 16:36:15 -0700 Subject: Revert "x86: Convert MMC to driver model" This reverts commit ddb3ac3c716f56cead695444e65a7ba7b0946555. With MMC converted to driver model, SCSI driver is broken due to zero address access at (ops->read) in block_dread() function. The fix (SCSI driver converted to DM) is ready in u-boot-dm branch, but it is too late for this relese to get that in. Signed-off-by: Bin Meng Reviewed-by: Simon Glass --- arch/Kconfig | 1 - arch/x86/cpu/baytrail/valleyview.c | 12 ++++++++++++ arch/x86/cpu/quark/quark.c | 10 ++++++++++ arch/x86/cpu/queensbay/Makefile | 2 +- arch/x86/cpu/queensbay/topcliff.c | 20 ++++++++++++++++++++ 5 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 arch/x86/cpu/queensbay/topcliff.c (limited to 'arch') diff --git a/arch/Kconfig b/arch/Kconfig index e447671..d04ab9f 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -96,7 +96,6 @@ config X86 select DM_SPI select DM_SPI_FLASH select USB_EHCI_HCD - select DM_MMC if MMC imply CMD_FPGA_LOADMK imply CMD_GETTIME imply CMD_IO diff --git a/arch/x86/cpu/baytrail/valleyview.c b/arch/x86/cpu/baytrail/valleyview.c index c58f6a8..87ba849 100644 --- a/arch/x86/cpu/baytrail/valleyview.c +++ b/arch/x86/cpu/baytrail/valleyview.c @@ -11,6 +11,18 @@ #include #include +static struct pci_device_id mmc_supported[] = { + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BYT_SDIO }, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BYT_SD }, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BYT_EMMC2 }, + {}, +}; + +int cpu_mmc_init(bd_t *bis) +{ + return pci_mmc_init("ValleyView SDHCI", mmc_supported); +} + #ifndef CONFIG_EFI_APP int arch_cpu_init(void) { diff --git a/arch/x86/cpu/quark/quark.c b/arch/x86/cpu/quark/quark.c index c36a589..0c2cea4 100644 --- a/arch/x86/cpu/quark/quark.c +++ b/arch/x86/cpu/quark/quark.c @@ -16,6 +16,11 @@ #include #include +static struct pci_device_id mmc_supported[] = { + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QRK_SDIO }, + {}, +}; + static void quark_setup_mtrr(void) { u32 base, mask; @@ -323,6 +328,11 @@ int arch_early_init_r(void) return 0; } +int cpu_mmc_init(bd_t *bis) +{ + return pci_mmc_init("Quark SDHCI", mmc_supported); +} + int arch_misc_init(void) { #ifdef CONFIG_ENABLE_MRC_CACHE diff --git a/arch/x86/cpu/queensbay/Makefile b/arch/x86/cpu/queensbay/Makefile index c068199..af3ffad 100644 --- a/arch/x86/cpu/queensbay/Makefile +++ b/arch/x86/cpu/queensbay/Makefile @@ -5,4 +5,4 @@ # obj-y += fsp_configs.o irq.o -obj-y += tnc.o +obj-y += tnc.o topcliff.o diff --git a/arch/x86/cpu/queensbay/topcliff.c b/arch/x86/cpu/queensbay/topcliff.c new file mode 100644 index 0000000..b76dd7d --- /dev/null +++ b/arch/x86/cpu/queensbay/topcliff.c @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2014, Bin Meng + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include + +static struct pci_device_id mmc_supported[] = { + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SDIO_0 }, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SDIO_1 }, + {}, +}; + +int cpu_mmc_init(bd_t *bis) +{ + return pci_mmc_init("Topcliff SDHCI", mmc_supported); +} -- cgit v1.1