RE: [PATCH 3.16 197/305] memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing

From: SebastienOcquidant
Date: Tue Aug 16 2016 - 03:35:18 EST


ïOk No problem.

Sebastien



-----------------------------
Eaton Industries (France) S.A.S ~ SiÃge social: 110 Rue Blaise Pascal, Immeuble Le VisÃo - BÃtiment A InnovallÃe, 38330, Montbonnot-St.-Martin, France ~ Lieu d'enregistrement au registre du commerce: Grenoble ~ NumÃro d'enregistrement: 509 653 176 ~ Capital social souscrit et liberÃ:â 16215441 ~ NumÃro de TVA: FR47509653176
à
-----------------------------

-----Message d'origine-----
DeÂ: Ben Hutchings [mailto:ben@xxxxxxxxxxxxxxx]
EnvoyÃÂ: samedi 13 aoÃt 2016 19:43
ÃÂ: linux-kernel@xxxxxxxxxxxxxxx; stable@xxxxxxxxxxxxxxx
CcÂ: akpm@xxxxxxxxxxxxxxxxxxxx; Roger Quadros; Ocquidant, Sebastien
ObjetÂ: [PATCH 3.16 197/305] memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing

3.16.37-rc1 review patch. If anyone has any objections, please let me know.

------------------

From: "Ocquidant, Sebastien" <sebastienocquidant@xxxxxxxxx>

commit 8f50b8e57442d28e41bb736c173d8a2490549a82 upstream.

In the omap gpmc driver it can be noticed that GPMC_CONFIG4_OEEXTRADELAY is overwritten by the WEEXTRADELAY value from the device tree and GPMC_CONFIG4_WEEXTRADELAY is not updated by the value from the device tree.

As a consequence, the memory accesses cannot be configured properly when the extra delay are needed for OE and WE.

Fix the update of GPMC_CONFIG4_WEEXTRADELAY with the value from the device tree file and prevents GPMC_CONFIG4_OEXTRADELAY being overwritten by the WEXTRADELAY value from the device tree.

Signed-off-by: Ocquidant, Sebastien <sebastienocquidant@xxxxxxxxx>
Signed-off-by: Roger Quadros <rogerq@xxxxxx>
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
arch/arm/mach-omap2/gpmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -274,7 +274,7 @@ static void gpmc_cs_bool_timings(int cs,
gpmc_cs_modify_reg(cs, GPMC_CS_CONFIG4,
GPMC_CONFIG4_OEEXTRADELAY, p->oe_extra_delay);
gpmc_cs_modify_reg(cs, GPMC_CS_CONFIG4,
- GPMC_CONFIG4_OEEXTRADELAY, p->we_extra_delay);
+ GPMC_CONFIG4_WEEXTRADELAY, p->we_extra_delay);
gpmc_cs_modify_reg(cs, GPMC_CS_CONFIG6,
GPMC_CONFIG6_CYCLE2CYCLESAMECSEN,
p->cycle2cyclesamecsen);