]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
memory: tegra30-emc: Fix dll_change check
authorMikko Perttunen <mperttunen@nvidia.com>
Mon, 26 Jan 2026 06:50:43 +0000 (15:50 +0900)
committerKrzysztof Kozlowski <krzk@kernel.org>
Tue, 24 Feb 2026 11:02:29 +0000 (12:02 +0100)
The code checking whether the specified memory timing enables DLL
in the EMRS register was reversed. DLL is enabled if bit A0 is low.
Fix the check.

Fixes: e34212c75a68 ("memory: tegra: Introduce Tegra30 EMC driver")
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Link: https://patch.msgid.link/20260126-fix-emc-dllchange-v1-2-47ad3bb63262@nvidia.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
drivers/memory/tegra/tegra30-emc.c

index 606106dd2b32ef289f8374fb0ce3150caab3a1fc..5812c8cd6ce4fc120f676fd784149517f7b8c33c 100644 (file)
@@ -554,14 +554,14 @@ static int emc_prepare_timing_change(struct tegra_emc *emc, unsigned long rate)
        emc->emc_cfg = readl_relaxed(emc->regs + EMC_CFG);
        emc_dbg = readl_relaxed(emc->regs + EMC_DBG);
 
-       if (emc->dll_on == !!(timing->emc_mode_1 & 0x1))
+       if (emc->dll_on == !(timing->emc_mode_1 & 0x1))
                dll_change = DLL_CHANGE_NONE;
-       else if (timing->emc_mode_1 & 0x1)
+       else if (!(timing->emc_mode_1 & 0x1))
                dll_change = DLL_CHANGE_ON;
        else
                dll_change = DLL_CHANGE_OFF;
 
-       emc->dll_on = !!(timing->emc_mode_1 & 0x1);
+       emc->dll_on = !(timing->emc_mode_1 & 0x1);
 
        if (timing->data[80] && !readl_relaxed(emc->regs + EMC_ZCAL_INTERVAL))
                emc->zcal_long = true;