mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-27 17:21:34 +00:00
38 lines
1.5 KiB
Diff
38 lines
1.5 KiB
Diff
From c33246d793b5bb9d8be7c67918136c310185c23d Mon Sep 17 00:00:00 2001
|
|
From: Lucas Stach <l.stach@pengutronix.de>
|
|
Date: Wed, 6 Jan 2016 14:36:40 +0100
|
|
Subject: [PATCH] drm/etnaviv: fix workaround for GC500
|
|
|
|
The hardware description macros define the mask and shifts the wrong
|
|
way around for the intended use, leading to the condition never being
|
|
true and the chip revision ending up with the wrong value.
|
|
|
|
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
|
|
Acked-by: Christian Gmeiner <christian.gmeiner@gmail.com>
|
|
---
|
|
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 7 +++++--
|
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
|
|
index d39093d..056a72e 100644
|
|
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
|
|
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
|
|
@@ -251,9 +251,12 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
|
|
chipIdentity = gpu_read(gpu, VIVS_HI_CHIP_IDENTITY);
|
|
|
|
/* Special case for older graphic cores. */
|
|
- if (VIVS_HI_CHIP_IDENTITY_FAMILY(chipIdentity) == 0x01) {
|
|
+ if (((chipIdentity & VIVS_HI_CHIP_IDENTITY_FAMILY__MASK)
|
|
+ >> VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT) == 0x01) {
|
|
gpu->identity.model = 0x500; /* gc500 */
|
|
- gpu->identity.revision = VIVS_HI_CHIP_IDENTITY_REVISION(chipIdentity);
|
|
+ gpu->identity.revision =
|
|
+ (chipIdentity & VIVS_HI_CHIP_IDENTITY_REVISION__MASK)
|
|
+ >> VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT;
|
|
} else {
|
|
|
|
gpu->identity.model = gpu_read(gpu, VIVS_HI_CHIP_MODEL);
|
|
--
|
|
2.7.0.rc3
|
|
|