]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
platform: tegra: emc: Fix logic in EMC CC
authorAlex Waterman <alexw@nvidia.com>
Thu, 27 Aug 2015 17:50:18 +0000 (10:50 -0700)
committermobile promotions <svcmobile_promotions@nvidia.com>
Mon, 21 Sep 2015 22:59:53 +0000 (15:59 -0700)
Fix some logic in the EMC clock change. The problem was that a bitwise and
operation was compared against the literal value 1. The idea was to actually
test if the bit was set.

Bug 1416640

Change-Id: Ib30c36bb59206b1637ff1fe0443b918c2e493ebe
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: http://git-master/r/791570
Reviewed-by: Robert Shih <rshih@nvidia.com>
Tested-by: Robert Shih <rshih@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Steve Rogers <srogers@nvidia.com>
drivers/platform/tegra/mc/tegra21_emc_cc_r21012.c
drivers/platform/tegra/mc/tegra21_emc_cc_r21015.c
drivers/platform/tegra/mc/tegra21_emc_cc_r21021.c

index e83c7a3df6d155102389f777161800bef0578efa..1721dee12d33b6aab629c0995756f8ffc91d822a 100644 (file)
@@ -857,14 +857,14 @@ void emc_set_clock_r21012(struct tegra21_emc_table *next_timing,
        }
 
        /* Check if we need to turn on VREF generator. */
-       if ((((last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) == 0) &&
-            ((next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) == 1)) ||
-           (((last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) == 0) &&
-            ((next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) == 1))) {
+       if ((!(last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) &&
+            (next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+             EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF)) ||
+           (!(last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) &&
+            (next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+             EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF))) {
                u32 pad_tx_ctrl =
                    next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX];
                u32 last_pad_tx_ctrl =
index 8c10cd84eeae82060bc2a3abbf720dba353bcba2..4fd0d7171af97491e2b3b3722e988d7a2af98a42 100644 (file)
@@ -1605,14 +1605,14 @@ void emc_set_clock_r21015(struct tegra21_emc_table *next_timing,
        }
 
        /* Check if we need to turn on VREF generator. */
-       if ((((last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) == 0) &&
-            ((next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) == 1)) ||
-           (((last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) == 0) &&
-            ((next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) == 1))) {
+       if ((!(last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) &&
+            (next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+             EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF)) ||
+           (!(last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) &&
+            (next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+             EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF))) {
                u32 pad_tx_ctrl =
                    next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX];
                u32 last_pad_tx_ctrl =
index 245f64e4987a0e0ba8fcd493fbbf69bb71d8cb38..463bf4086ddd135218f4c097373b65fe4bf30b02 100644 (file)
@@ -908,14 +908,14 @@ void emc_set_clock_r21021(struct tegra21_emc_table *next_timing,
        }
 
        /* Check if we need to turn on VREF generator. */
-       if ((((last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) == 0) &&
-            ((next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) == 1)) ||
-           (((last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) == 0) &&
-            ((next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
-              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) == 1))) {
+       if ((!(last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF) &&
+            (next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+             EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQ_E_IVREF)) ||
+           (!(last_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+              EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF) &&
+            (next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX] &
+             EMC_PMACRO_DATA_PAD_TX_CTRL_DATA_DQS_E_IVREF))) {
                u32 pad_tx_ctrl =
                    next_timing->burst_regs[EMC_PMACRO_DATA_PAD_TX_CTRL_INDEX];
                u32 last_pad_tx_ctrl =