ddr: marvell: a38x: fix write leveling suplementary algo
authorMoti Buskila <motib@marvell.com>
Fri, 19 Feb 2021 16:11:09 +0000 (17:11 +0100)
committerStefan Roese <sr@denx.de>
Fri, 26 Feb 2021 09:22:29 +0000 (10:22 +0100)
commit ce62bef8fac559e27245259882e45f19cdc293ad upstream.

- fix JIRA A7K8K-5056
- remove TEST_PATTERN write at the load patern stage earlier to WL SUP stage
- the WL SUP stage already writes this pattern to the memory, if the pattern exist at the memory
  then the algorithm will fail, since it think that there are no phase to correct

Signed-off-by: Moti Buskila <motib@marvell.com>
Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
Signed-off-by: Marek BehĂșn <marek.behun@nic.cz>
Tested-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
drivers/ddr/marvell/a38x/ddr3_training_ip_engine.c

index 979f353..5fd9a05 100644 (file)
@@ -864,8 +864,11 @@ int ddr3_tip_load_all_pattern_to_mem(u32 dev_num)
                              DUAL_DUNIT_CFG_REG, (1 << 3), (1 << 3)));
        }
 
-       for (pattern = 0; pattern < PATTERN_LAST; pattern++)
+       for (pattern = 0; pattern < PATTERN_LAST; pattern++) {
+               if (pattern == PATTERN_TEST)
+                       continue;
                ddr3_tip_load_pattern_to_mem(dev_num, pattern);
+       }
 
        return MV_OK;
 }