Thomas Zimmermann ebf85e
From 14b284832e7dea6f54f0adfd7bed105548b94e57 Mon Sep 17 00:00:00 2001
Thomas Zimmermann ebf85e
From: Colin Ian King <colin.king@canonical.com>
Thomas Zimmermann ebf85e
Date: Mon, 8 Oct 2018 17:22:28 +0100
Thomas Zimmermann ebf85e
Subject: drm/amdgpu/powerplay: fix missing break in switch statements
Thomas Zimmermann ebf85e
Git-commit: 14b284832e7dea6f54f0adfd7bed105548b94e57
Thomas Zimmermann ebf85e
Patch-mainline: v4.20-rc1
Thomas Zimmermann ebf85e
References: bsc#1113722
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
There are several switch statements that are missing break statements.
Thomas Zimmermann ebf85e
Add missing breaks to handle any fall-throughs corner cases.
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
Detected by CoverityScan, CID#1457175 ("Missing break in switch")
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
Backporting notes:
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
  * applied patch in {fiji,iceland,tonga}_smc.c files
Thomas Zimmermann ebf85e
  * fixed similar bug in polaris10_smc.c
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
Fixes: 18aafc59b106 ("drm/amd/powerplay: implement fw related smu interface for iceland.")
Thomas Zimmermann ebf85e
Acked-by: Huang Rui <ray.huang@amd.com>
Thomas Zimmermann ebf85e
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Thomas Zimmermann ebf85e
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Thomas Zimmermann ebf85e
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Thomas Zimmermann ebf85e
---
Thomas Zimmermann ebf85e
 drivers/gpu/drm/amd/powerplay/smumgr/fiji_smc.c      |    2 ++
Thomas Zimmermann ebf85e
 drivers/gpu/drm/amd/powerplay/smumgr/iceland_smc.c   |    2 ++
Thomas Zimmermann ebf85e
 drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c |    2 ++
Thomas Zimmermann ebf85e
 drivers/gpu/drm/amd/powerplay/smumgr/tonga_smc.c     |    2 ++
Thomas Zimmermann ebf85e
 4 files changed, 8 insertions(+)
Thomas Zimmermann ebf85e
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smc.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smc.c
Thomas Zimmermann ebf85e
@@ -2193,6 +2193,7 @@ uint32_t fiji_get_offsetof(uint32_t type
Thomas Zimmermann ebf85e
 		case UcodeLoadStatus:
Thomas Zimmermann ebf85e
 			return offsetof(SMU73_SoftRegisters, UcodeLoadStatus);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	case SMU_Discrete_DpmTable:
Thomas Zimmermann ebf85e
 		switch (member) {
Thomas Zimmermann ebf85e
 		case UvdBootLevel:
Thomas Zimmermann ebf85e
@@ -2204,6 +2205,7 @@ uint32_t fiji_get_offsetof(uint32_t type
Thomas Zimmermann ebf85e
 		case LowSclkInterruptThreshold:
Thomas Zimmermann ebf85e
 			return offsetof(SMU73_Discrete_DpmTable, LowSclkInterruptThreshold);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	pr_warn("can't get the offset of type %x member %x\n", type, member);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smc.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smc.c
Thomas Zimmermann ebf85e
@@ -2140,11 +2140,13 @@ uint32_t iceland_get_offsetof(uint32_t t
Thomas Zimmermann ebf85e
 		case UcodeLoadStatus:
Thomas Zimmermann ebf85e
 			return offsetof(SMU71_SoftRegisters, UcodeLoadStatus);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	case SMU_Discrete_DpmTable:
Thomas Zimmermann ebf85e
 		switch (member) {
Thomas Zimmermann ebf85e
 		case LowSclkInterruptThreshold:
Thomas Zimmermann ebf85e
 			return offsetof(SMU71_Discrete_DpmTable, LowSclkInterruptThreshold);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	pr_warn("can't get the offset of type %x member %x\n", type, member);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smc.c
Thomas Zimmermann ebf85e
@@ -2211,6 +2211,7 @@ uint32_t polaris10_get_offsetof(uint32_t
Thomas Zimmermann ebf85e
 		case UcodeLoadStatus:
Thomas Zimmermann ebf85e
 			return offsetof(SMU74_SoftRegisters, UcodeLoadStatus);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	case SMU_Discrete_DpmTable:
Thomas Zimmermann ebf85e
 		switch (member) {
Thomas Zimmermann ebf85e
 		case UvdBootLevel:
Thomas Zimmermann ebf85e
@@ -2222,6 +2223,7 @@ uint32_t polaris10_get_offsetof(uint32_t
Thomas Zimmermann ebf85e
 		case LowSclkInterruptThreshold:
Thomas Zimmermann ebf85e
 			return offsetof(SMU74_Discrete_DpmTable, LowSclkInterruptThreshold);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	pr_warn("can't get the offset of type %x member %x\n", type, member);
Thomas Zimmermann ebf85e
 	return 0;
Thomas Zimmermann ebf85e
--- a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smc.c
Thomas Zimmermann ebf85e
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smc.c
Thomas Zimmermann ebf85e
@@ -2683,6 +2683,7 @@ uint32_t tonga_get_offsetof(uint32_t typ
Thomas Zimmermann ebf85e
 		case UcodeLoadStatus:
Thomas Zimmermann ebf85e
 			return offsetof(SMU72_SoftRegisters, UcodeLoadStatus);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	case SMU_Discrete_DpmTable:
Thomas Zimmermann ebf85e
 		switch (member) {
Thomas Zimmermann ebf85e
 		case UvdBootLevel:
Thomas Zimmermann ebf85e
@@ -2694,6 +2695,7 @@ uint32_t tonga_get_offsetof(uint32_t typ
Thomas Zimmermann ebf85e
 		case LowSclkInterruptThreshold:
Thomas Zimmermann ebf85e
 			return offsetof(SMU72_Discrete_DpmTable, LowSclkInterruptThreshold);
Thomas Zimmermann ebf85e
 		}
Thomas Zimmermann ebf85e
+		break;
Thomas Zimmermann ebf85e
 	}
Thomas Zimmermann ebf85e
 	pr_warn("can't get the offset of type %x member %x\n", type, member);
Thomas Zimmermann ebf85e
 	return 0;