From 113e5dfcd77cfef4a1719c9a6ba3933c2ef06320 Mon Sep 17 00:00:00 2001 From: Jaehoon Chung Date: Fri, 19 Jul 2013 17:44:49 +0900 Subject: mmc: sdhci: use the SDHCI_QUIRK_USE_WIDE8 for samsung SoC Samsung SoC is supported the WIDE8, even if Controller version is v2.0. So add the SDHCI_QUIRK_USE_WIDE8 for Samsung-SoC. Signed-off-by: Jaehoon Chung Signed-off-by: Kyungmin Park Signed-off-by: Pantelis Antoniou --- include/sdhci.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/sdhci.h b/include/sdhci.h index b18b873..74d06ae 100644 --- a/include/sdhci.h +++ b/include/sdhci.h @@ -192,6 +192,8 @@ #define SDHCI_SPEC_200 1 #define SDHCI_SPEC_300 2 +#define SDHCI_GET_VERSION(x) (x->version & SDHCI_SPEC_VER_MASK) + /* * End of controller registers. */ @@ -210,6 +212,7 @@ #define SDHCI_QUIRK_NO_CD (1 << 5) #define SDHCI_QUIRK_WAIT_SEND_CMD (1 << 6) #define SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER (1 << 7) +#define SDHCI_QUIRK_USE_WIDE8 (1 << 8) /* to make gcc happy */ struct sdhci_host; -- cgit v1.1 From 8687d5c80c9b4d66b4c33e34ef8eb36cf93d9ec7 Mon Sep 17 00:00:00 2001 From: Paul Burton Date: Wed, 4 Sep 2013 16:12:26 +0100 Subject: mmc: size optimization when !CONFIG_MMC_SPI When CONFIG_MMC_SPI is not enabled, the MMC_MODE_SPI capability can never be set. However there is code in mmc.c which uses the mmc_host_is_spi macro to check that capability & act accordingly. If we expand that macro to 0 when CONFIG_MMC_SPI is not set (since it will always be 0 at runtime anyway) then the compiler can optimize away the SPI-specific code paths in mmc.c. Signed-off-by: Paul Burton --- include/mmc.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/mmc.h b/include/mmc.h index 228d771..214b9ed 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -335,7 +335,11 @@ int mmc_start_init(struct mmc *mmc); void mmc_set_preinit(struct mmc *mmc, int preinit); #ifdef CONFIG_GENERIC_MMC +#ifdef CONFIG_MMC_SPI #define mmc_host_is_spi(mmc) ((mmc)->host_caps & MMC_MODE_SPI) +#else +#define mmc_host_is_spi(mmc) 0 +#endif struct mmc *mmc_spi_init(uint bus, uint cs, uint speed, uint mode); #else int mmc_legacy_init(int verbose); -- cgit v1.1 From e8232fea41be712bfe894abbff08c39015d8d5d2 Mon Sep 17 00:00:00 2001 From: Mischa Jonker Date: Fri, 26 Jul 2013 16:18:41 +0200 Subject: Add parentheses to ALLOC_ALIGN_BUFFER macro's Without those it's very easy to make mistakes when for instance the 'size' field is more than just a constant. Signed-off-by: Mischa Jonker Cc: Alexey Brodkin Cc: Marek Vasut Cc: Anton Staaf Cc: Tom Rini Cc: Wolfgang Denk --- include/common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/common.h b/include/common.h index 8addf43..cc7454a 100644 --- a/include/common.h +++ b/include/common.h @@ -1015,10 +1015,10 @@ static inline phys_addr_t map_to_sysmem(void *ptr) * of a function scoped static buffer. It can not be used to create a cache * line aligned global buffer. */ -#define PAD_COUNT(s, pad) ((s - 1) / pad + 1) +#define PAD_COUNT(s, pad) (((s) - 1) / (pad) + 1) #define PAD_SIZE(s, pad) (PAD_COUNT(s, pad) * pad) #define ALLOC_ALIGN_BUFFER_PAD(type, name, size, align, pad) \ - char __##name[ROUND(PAD_SIZE(size * sizeof(type), pad), align) \ + char __##name[ROUND(PAD_SIZE((size) * sizeof(type), pad), align) \ + (align - 1)]; \ \ type *name = (type *) ALIGN((uintptr_t)__##name, align) -- cgit v1.1