| From 077cb2874e2f6c0cf7418758d6f158815d7acffd Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 25 Nov 2018 17:09:18 +0000 |
| Subject: drm/nouveau/bios/ramcfg: fix missing parentheses when calculating RON |
| |
| From: Colin Ian King <colin.king@canonical.com> |
| |
| [ 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 | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c |
| index 60ece0a8a2e1b..1d2d6bae73cd1 100644 |
| --- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c |
| +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c |
| @@ -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; |
| -- |
| 2.20.1 |
| |