drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON
authorColin Ian King <colin.king@canonical.com>
Sun, 25 Nov 2018 17:09:18 +0000 (17:09 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Jan 2020 09:24:17 +0000 (10:24 +0100)
[ Upstream commit 13649101a25c53c87f4ab98a076dfe61f3636ab1 ]

Currently, the expression for calculating RON is always going to result
in zero no matter the value of ram->mr[1] because the ! operator has
higher precedence than the shift >> operator.  I believe the missing
parentheses around the expression before appying the ! operator will
result in the desired result.

[ Note, not tested ]

Detected by CoveritScan, CID#1324005 ("Operands don't affect result")

Fixes: c25bf7b6155c ("drm/nouveau/bios/ramcfg: Separate out RON pull value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c

index 60ece0a8a2e1bc1e5acd5753fe3d37f08323ed8e..1d2d6bae73cd1f57aef57a31ed6ce80dfc57e3f0 100644 (file)
@@ -87,7 +87,7 @@ nvkm_gddr3_calc(struct nvkm_ram *ram)
                WR  = (ram->next->bios.timing[2] & 0x007f0000) >> 16;
                /* XXX: Get these values from the VBIOS instead */
                DLL = !(ram->mr[1] & 0x1);
-               RON = !(ram->mr[1] & 0x300) >> 8;
+               RON = !((ram->mr[1] & 0x300) >> 8);
                break;
        default:
                return -ENOSYS;