1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2023 Intel Corporation 4 */ 5 6 #ifndef __INTEL_DISPLAY_WA_H__ 7 #define __INTEL_DISPLAY_WA_H__ 8 9 #include <linux/types.h> 10 11 struct intel_display; 12 13 void intel_display_wa_apply(struct intel_display *display); 14 15 #ifdef I915 16 static inline bool intel_display_needs_wa_16023588340(struct intel_display *display) 17 { 18 return false; 19 } 20 #else 21 bool intel_display_needs_wa_16023588340(struct intel_display *display); 22 #endif 23 24 /* 25 * This enum lists display workarounds; each entry here must have a 26 * corresponding case in __intel_display_wa(). Keep both sorted by lineage 27 * number. 28 */ 29 enum intel_display_wa { 30 INTEL_DISPLAY_WA_1409120013, 31 INTEL_DISPLAY_WA_1409767108, 32 INTEL_DISPLAY_WA_13012396614, 33 INTEL_DISPLAY_WA_14010477008, 34 INTEL_DISPLAY_WA_14010480278, 35 INTEL_DISPLAY_WA_14010547955, 36 INTEL_DISPLAY_WA_14010685332, 37 INTEL_DISPLAY_WA_14011294188, 38 INTEL_DISPLAY_WA_14011503030, 39 INTEL_DISPLAY_WA_14011503117, 40 INTEL_DISPLAY_WA_14011508470, 41 INTEL_DISPLAY_WA_14011765242, 42 INTEL_DISPLAY_WA_14014143976, 43 INTEL_DISPLAY_WA_14016740474, 44 INTEL_DISPLAY_WA_14020863754, 45 INTEL_DISPLAY_WA_14025769978, 46 INTEL_DISPLAY_WA_15013987218, 47 INTEL_DISPLAY_WA_15018326506, 48 INTEL_DISPLAY_WA_16011181250, 49 INTEL_DISPLAY_WA_16011303918, 50 INTEL_DISPLAY_WA_16011342517, 51 INTEL_DISPLAY_WA_16011863758, 52 INTEL_DISPLAY_WA_16023588340, 53 INTEL_DISPLAY_WA_16025573575, 54 INTEL_DISPLAY_WA_16025596647, 55 INTEL_DISPLAY_WA_18034343758, 56 INTEL_DISPLAY_WA_22010178259, 57 INTEL_DISPLAY_WA_22010947358, 58 INTEL_DISPLAY_WA_22011320316, 59 INTEL_DISPLAY_WA_22012278275, 60 INTEL_DISPLAY_WA_22012358565, 61 INTEL_DISPLAY_WA_22014263786, 62 INTEL_DISPLAY_WA_22021048059, 63 }; 64 65 bool __intel_display_wa(struct intel_display *display, enum intel_display_wa wa, const char *name); 66 67 #define intel_display_wa(__display, __wa) \ 68 __intel_display_wa((__display), __wa, __stringify(__wa)) 69 70 #endif 71