From 5372efc402ae4f044e95270e3663d3d9c745bf63 Mon Sep 17 00:00:00 2001
From: "Marty E. Plummer" <hanetzer@startmail.com>
Date: Thu, 13 Sep 2018 15:06:38 -0500
Subject: [PATCH] drm/panfrost: flesh out gpu id detection

Signed-off-by: Marty E. Plummer <hanetzer@startmail.com>
---
 drivers/gpu/drm/panfrost/panfrost_gpu.c  | 14 +++++++++-----
 drivers/gpu/drm/panfrost/panfrost_regs.h |  2 +-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c
index f5faf1649050e..b943730fcf888 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -73,11 +73,15 @@ static int panfrost_gpu_soft_reset_async_wait(struct panfrost_ip *ip)
 
 static void panfrost_gpu_print_version(struct panfrost_ip *ip)
 {
-	u32 version, major, minor;
+	u32 gpu_id, version, major, minor, status;
 	char *name;
 
-	version = gpu_read(VERSION);
-	switch (version >> 16) {
+	gpu_id = gpu_read(ID);
+	version = gpu_id >> 16;
+	major = (gpu_id >> 12) & 0xf;
+	minor = (gpu_id >> 4) & 0xff;
+	status = gpu_id & 0xf;
+	switch (version) {
 	case 0x860:
 		name = "mali-t860";
 		break;
@@ -88,8 +92,8 @@ static void panfrost_gpu_print_version(struct panfrost_ip *ip)
 		name = "unknown";
 		break;
 	}
-	dev_info(ip->pfdev->dev, "%s -  %s version %x\n",
-		 panfrost_ip_name(ip), name, version);
+	dev_info(ip->pfdev->dev, "%s -  %s version 0x%x major 0x%x minor 0x%x status 0x%x\n",
+		 panfrost_ip_name(ip), name, version, major, minor, status);
 }
 
 int panfrost_gpu_init(struct panfrost_ip *ip)
diff --git a/drivers/gpu/drm/panfrost/panfrost_regs.h b/drivers/gpu/drm/panfrost/panfrost_regs.h
index 13ba44bd13e13..4c69c4fb4d593 100644
--- a/drivers/gpu/drm/panfrost/panfrost_regs.h
+++ b/drivers/gpu/drm/panfrost/panfrost_regs.h
@@ -11,7 +11,7 @@
  */
 
 /* GPU regs */
-#define PAN_GPU_VERSION				0x00
+#define PAN_GPU_ID				0x00
 #define PAN_GPU_INT_RAWSTAT			0x20
 #define PAN_GPU_INT_CLEAR			0x24
 #define PAN_GPU_INT_MASK			0x28
-- 
GitLab