In a previous commit, the intel_display_wa() was changed so it
wouldn't receive an integer as the workaround number, but the enum
value itself.  This caused compilation not to fail anymore when the
enum passed didn't exist.

Bring this back by using BUILD_BUG_ON() to check that the enum passed
sits within the range of defined enums.

Cc: Jani Nikula <[email protected]>
Signed-off-by: Luca Coelho <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_display_wa.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_wa.h 
b/drivers/gpu/drm/i915/display/intel_display_wa.h
index 15fec843f15e..4239e4295ec7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_wa.h
+++ b/drivers/gpu/drm/i915/display/intel_display_wa.h
@@ -60,11 +60,14 @@ enum intel_display_wa {
        INTEL_DISPLAY_WA_22012358565,
        INTEL_DISPLAY_WA_22014263786,
        INTEL_DISPLAY_WA_22021048059,
+
+       INTEL_DISPLAY_WA_COUNT
 };
 
 bool __intel_display_wa(struct intel_display *display, enum intel_display_wa 
wa, const char *name);
 
-#define intel_display_wa(__display, __wa) \
-       __intel_display_wa((__display), __wa, __stringify(__wa))
-
+#define intel_display_wa(__display, __wa) ({                             \
+               BUILD_BUG_ON(__wa >= INTEL_DISPLAY_WA_COUNT);             \
+               __intel_display_wa((__display), __wa, __stringify(__wa)); \
+       })
 #endif
-- 
2.51.0

Reply via email to