From: Rabin Vincent Date: Wed, 21 Jul 2010 11:55:18 +0000 (+0100) Subject: ARM: 6245/1: mmci: enable hardware flow control on Ux500 variants X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=4380c14fd77338bac9d1da4dc5dd9f6eb4966c82;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git ARM: 6245/1: mmci: enable hardware flow control on Ux500 variants Although both the U300 and Ux500 use ST variants, the HWFCEN bits are at different positions, so use the variant_data to store the information. Acked-by: Linus Walleij Signed-off-by: Rabin Vincent Signed-off-by: Russell King --- diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index fd2e7acbed39..379af904bf6c 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -39,19 +39,23 @@ static unsigned int fmax = 515633; /** * struct variant_data - MMCI variant-specific quirks * @clkreg: default value for MCICLOCK register + * @clkreg_enable: enable value for MMCICLOCK register */ struct variant_data { unsigned int clkreg; + unsigned int clkreg_enable; }; static struct variant_data variant_arm = { }; static struct variant_data variant_u300 = { + .clkreg_enable = 1 << 13, /* HWFCEN */ }; static struct variant_data variant_ux500 = { .clkreg = MCI_CLK_ENABLE, + .clkreg_enable = 1 << 14, /* HWFCEN */ }; /* * This must be called with host->lock held @@ -71,8 +75,8 @@ static void mmci_set_clkreg(struct mmci_host *host, unsigned int desired) clk = 255; host->cclk = host->mclk / (2 * (clk + 1)); } - if (host->hw_designer == AMBA_VENDOR_ST) - clk |= MCI_ST_FCEN; /* Bug fix in ST IP block */ + + clk |= variant->clkreg_enable; clk |= MCI_CLK_ENABLE; /* This hasn't proven to be worthwhile */ /* clk |= MCI_CLK_PWRSAVE; */ diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h index b98cc782402a..68970cfb81e1 100644 --- a/drivers/mmc/host/mmci.h +++ b/drivers/mmc/host/mmci.h @@ -28,8 +28,6 @@ #define MCI_4BIT_BUS (1 << 11) /* 8bit wide buses supported in ST Micro versions */ #define MCI_ST_8BIT_BUS (1 << 12) -/* HW flow control on the ST Micro version */ -#define MCI_ST_FCEN (1 << 13) #define MMCIARGUMENT 0x008 #define MMCICOMMAND 0x00c