diff options
author | Yegor Yefremov <yegor_sub1@visionsystems.de> | 2012-01-23 08:32:23 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-02-13 11:06:05 -0800 |
commit | 17f272d8e4349543de855ea63e4eea4a67a7abc5 (patch) | |
tree | aa8904eecaea5c48ecead4bac953fd69eba18d62 /arch | |
parent | e358073331debaab9e14b3139bc469184288aa48 (diff) | |
download | linux-stable-17f272d8e4349543de855ea63e4eea4a67a7abc5.tar.gz linux-stable-17f272d8e4349543de855ea63e4eea4a67a7abc5.tar.bz2 linux-stable-17f272d8e4349543de855ea63e4eea4a67a7abc5.zip |
ARM: OMAP2+: GPMC: fix device size setup
commit 8ef5d844cc3a644ea6f7665932a4307e9fad01fa upstream.
following statement can only change device size from 8-bit(0) to 16-bit(1),
but not vice versa:
regval |= GPMC_CONFIG1_DEVICESIZE(wval);
so as this field has 1 reserved bit, that could be used in future,
just clear both bits and then OR with the desired value
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 130034bf01d5..dfffbbf4c009 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -528,7 +528,13 @@ int gpmc_cs_configure(int cs, int cmd, int wval) case GPMC_CONFIG_DEV_SIZE: regval = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1); + + /* clear 2 target bits */ + regval &= ~GPMC_CONFIG1_DEVICESIZE(3); + + /* set the proper value */ regval |= GPMC_CONFIG1_DEVICESIZE(wval); + gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, regval); break; |