hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/gpu/drm/amd/include/amd_acpi.h
....@@ -52,6 +52,30 @@
5252 u8 backlight_level; /* panel backlight level (0-255) */
5353 } __packed;
5454
55
+struct atif_qbtc_arguments {
56
+ u16 size; /* structure size in bytes (includes size field) */
57
+ u8 requested_display; /* which display is requested */
58
+} __packed;
59
+
60
+#define ATIF_QBTC_MAX_DATA_POINTS 99
61
+
62
+struct atif_qbtc_data_point {
63
+ u8 luminance; /* luminance in percent */
64
+ u8 ipnut_signal; /* input signal in range 0-255 */
65
+} __packed;
66
+
67
+struct atif_qbtc_output {
68
+ u16 size; /* structure size in bytes (includes size field) */
69
+ u16 flags; /* all zeroes */
70
+ u8 error_code; /* error code */
71
+ u8 ac_level; /* default brightness on AC power */
72
+ u8 dc_level; /* default brightness on DC power */
73
+ u8 min_input_signal; /* max input signal in range 0-255 */
74
+ u8 max_input_signal; /* min input signal in range 0-255 */
75
+ u8 number_of_points; /* number of data points */
76
+ struct atif_qbtc_data_point data_points[ATIF_QBTC_MAX_DATA_POINTS];
77
+} __packed;
78
+
5579 #define ATIF_NOTIFY_MASK 0x3
5680 #define ATIF_NOTIFY_NONE 0
5781 #define ATIF_NOTIFY_81 1
....@@ -126,26 +150,18 @@
126150 * DWORD - supported functions bit vector
127151 */
128152 /* Notifications mask */
129
-# define ATIF_DISPLAY_SWITCH_REQUEST_SUPPORTED (1 << 0)
130
-# define ATIF_EXPANSION_MODE_CHANGE_REQUEST_SUPPORTED (1 << 1)
131153 # define ATIF_THERMAL_STATE_CHANGE_REQUEST_SUPPORTED (1 << 2)
132154 # define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST_SUPPORTED (1 << 3)
133155 # define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST_SUPPORTED (1 << 4)
134
-# define ATIF_DISPLAY_CONF_CHANGE_REQUEST_SUPPORTED (1 << 5)
135
-# define ATIF_PX_GFX_SWITCH_REQUEST_SUPPORTED (1 << 6)
136156 # define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST_SUPPORTED (1 << 7)
137157 # define ATIF_DGPU_DISPLAY_EVENT_SUPPORTED (1 << 8)
158
+# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST_SUPPORTED (1 << 12)
138159 /* supported functions vector */
139160 # define ATIF_GET_SYSTEM_PARAMETERS_SUPPORTED (1 << 0)
140161 # define ATIF_GET_SYSTEM_BIOS_REQUESTS_SUPPORTED (1 << 1)
141
-# define ATIF_SELECT_ACTIVE_DISPLAYS_SUPPORTED (1 << 2)
142
-# define ATIF_GET_LID_STATE_SUPPORTED (1 << 3)
143
-# define ATIF_GET_TV_STANDARD_FROM_CMOS_SUPPORTED (1 << 4)
144
-# define ATIF_SET_TV_STANDARD_IN_CMOS_SUPPORTED (1 << 5)
145
-# define ATIF_GET_PANEL_EXPANSION_MODE_FROM_CMOS_SUPPORTED (1 << 6)
146
-# define ATIF_SET_PANEL_EXPANSION_MODE_IN_CMOS_SUPPORTED (1 << 7)
147162 # define ATIF_TEMPERATURE_CHANGE_NOTIFICATION_SUPPORTED (1 << 12)
148
-# define ATIF_GET_GRAPHICS_DEVICE_TYPES_SUPPORTED (1 << 14)
163
+# define ATIF_QUERY_BACKLIGHT_TRANSFER_CHARACTERISTICS_SUPPORTED (1 << 15)
164
+# define ATIF_READY_TO_UNDOCK_NOTIFICATION_SUPPORTED (1 << 16)
149165 # define ATIF_GET_EXTERNAL_GPU_INFORMATION_SUPPORTED (1 << 20)
150166 #define ATIF_FUNCTION_GET_SYSTEM_PARAMETERS 0x1
151167 /* ARG0: ATIF_FUNCTION_GET_SYSTEM_PARAMETERS
....@@ -170,6 +186,10 @@
170186 * n (0xd0-0xd9) is specified in notify command code.
171187 * bit 2:
172188 * 1 - lid changes not reported though int10
189
+ * bit 3:
190
+ * 1 - system bios controls overclocking
191
+ * bit 4:
192
+ * 1 - enable overclocking
173193 */
174194 #define ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS 0x2
175195 /* ARG0: ATIF_FUNCTION_GET_SYSTEM_BIOS_REQUESTS
....@@ -177,28 +197,23 @@
177197 * OUTPUT:
178198 * WORD - structure size in bytes (includes size field)
179199 * DWORD - pending sbios requests
180
- * BYTE - panel expansion mode
200
+ * BYTE - reserved (all zeroes)
181201 * BYTE - thermal state: target gfx controller
182202 * BYTE - thermal state: state id (0: exit state, non-0: state)
183203 * BYTE - forced power state: target gfx controller
184
- * BYTE - forced power state: state id
204
+ * BYTE - forced power state: state id (0: forced state, non-0: state)
185205 * BYTE - system power source
186206 * BYTE - panel backlight level (0-255)
207
+ * BYTE - GPU package power limit: target gfx controller
208
+ * DWORD - GPU package power limit: value (24:8 fractional format, Watts)
187209 */
188210 /* pending sbios requests */
189
-# define ATIF_DISPLAY_SWITCH_REQUEST (1 << 0)
190
-# define ATIF_EXPANSION_MODE_CHANGE_REQUEST (1 << 1)
191211 # define ATIF_THERMAL_STATE_CHANGE_REQUEST (1 << 2)
192212 # define ATIF_FORCED_POWER_STATE_CHANGE_REQUEST (1 << 3)
193213 # define ATIF_SYSTEM_POWER_SOURCE_CHANGE_REQUEST (1 << 4)
194
-# define ATIF_DISPLAY_CONF_CHANGE_REQUEST (1 << 5)
195
-# define ATIF_PX_GFX_SWITCH_REQUEST (1 << 6)
196214 # define ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST (1 << 7)
197215 # define ATIF_DGPU_DISPLAY_EVENT (1 << 8)
198
-/* panel expansion mode */
199
-# define ATIF_PANEL_EXPANSION_DISABLE 0
200
-# define ATIF_PANEL_EXPANSION_FULL 1
201
-# define ATIF_PANEL_EXPANSION_ASPECT 2
216
+# define ATIF_GPU_PACKAGE_POWER_LIMIT_REQUEST (1 << 12)
202217 /* target gfx controller */
203218 # define ATIF_TARGET_GFX_SINGLE 0
204219 # define ATIF_TARGET_GFX_PX_IGPU 1
....@@ -208,76 +223,6 @@
208223 # define ATIF_POWER_SOURCE_DC 2
209224 # define ATIF_POWER_SOURCE_RESTRICTED_AC_1 3
210225 # define ATIF_POWER_SOURCE_RESTRICTED_AC_2 4
211
-#define ATIF_FUNCTION_SELECT_ACTIVE_DISPLAYS 0x3
212
-/* ARG0: ATIF_FUNCTION_SELECT_ACTIVE_DISPLAYS
213
- * ARG1:
214
- * WORD - structure size in bytes (includes size field)
215
- * WORD - selected displays
216
- * WORD - connected displays
217
- * OUTPUT:
218
- * WORD - structure size in bytes (includes size field)
219
- * WORD - selected displays
220
- */
221
-# define ATIF_LCD1 (1 << 0)
222
-# define ATIF_CRT1 (1 << 1)
223
-# define ATIF_TV (1 << 2)
224
-# define ATIF_DFP1 (1 << 3)
225
-# define ATIF_CRT2 (1 << 4)
226
-# define ATIF_LCD2 (1 << 5)
227
-# define ATIF_DFP2 (1 << 7)
228
-# define ATIF_CV (1 << 8)
229
-# define ATIF_DFP3 (1 << 9)
230
-# define ATIF_DFP4 (1 << 10)
231
-# define ATIF_DFP5 (1 << 11)
232
-# define ATIF_DFP6 (1 << 12)
233
-#define ATIF_FUNCTION_GET_LID_STATE 0x4
234
-/* ARG0: ATIF_FUNCTION_GET_LID_STATE
235
- * ARG1: none
236
- * OUTPUT:
237
- * WORD - structure size in bytes (includes size field)
238
- * BYTE - lid state (0: open, 1: closed)
239
- *
240
- * GET_LID_STATE only works at boot and resume, for general lid
241
- * status, use the kernel provided status
242
- */
243
-#define ATIF_FUNCTION_GET_TV_STANDARD_FROM_CMOS 0x5
244
-/* ARG0: ATIF_FUNCTION_GET_TV_STANDARD_FROM_CMOS
245
- * ARG1: none
246
- * OUTPUT:
247
- * WORD - structure size in bytes (includes size field)
248
- * BYTE - 0
249
- * BYTE - TV standard
250
- */
251
-# define ATIF_TV_STD_NTSC 0
252
-# define ATIF_TV_STD_PAL 1
253
-# define ATIF_TV_STD_PALM 2
254
-# define ATIF_TV_STD_PAL60 3
255
-# define ATIF_TV_STD_NTSCJ 4
256
-# define ATIF_TV_STD_PALCN 5
257
-# define ATIF_TV_STD_PALN 6
258
-# define ATIF_TV_STD_SCART_RGB 9
259
-#define ATIF_FUNCTION_SET_TV_STANDARD_IN_CMOS 0x6
260
-/* ARG0: ATIF_FUNCTION_SET_TV_STANDARD_IN_CMOS
261
- * ARG1:
262
- * WORD - structure size in bytes (includes size field)
263
- * BYTE - 0
264
- * BYTE - TV standard
265
- * OUTPUT: none
266
- */
267
-#define ATIF_FUNCTION_GET_PANEL_EXPANSION_MODE_FROM_CMOS 0x7
268
-/* ARG0: ATIF_FUNCTION_GET_PANEL_EXPANSION_MODE_FROM_CMOS
269
- * ARG1: none
270
- * OUTPUT:
271
- * WORD - structure size in bytes (includes size field)
272
- * BYTE - panel expansion mode
273
- */
274
-#define ATIF_FUNCTION_SET_PANEL_EXPANSION_MODE_IN_CMOS 0x8
275
-/* ARG0: ATIF_FUNCTION_SET_PANEL_EXPANSION_MODE_IN_CMOS
276
- * ARG1:
277
- * WORD - structure size in bytes (includes size field)
278
- * BYTE - panel expansion mode
279
- * OUTPUT: none
280
- */
281226 #define ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION 0xD
282227 /* ARG0: ATIF_FUNCTION_TEMPERATURE_CHANGE_NOTIFICATION
283228 * ARG1:
....@@ -286,21 +231,43 @@
286231 * BYTE - current temperature (degress Celsius)
287232 * OUTPUT: none
288233 */
289
-#define ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES 0xF
290
-/* ARG0: ATIF_FUNCTION_GET_GRAPHICS_DEVICE_TYPES
291
- * ARG1: none
234
+#define ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS 0x10
235
+/* ARG0: ATIF_FUNCTION_QUERY_BRIGHTNESS_TRANSFER_CHARACTERISTICS
236
+ * ARG1:
237
+ * WORD - structure size in bytes (includes size field)
238
+ * BYTE - requested display
292239 * OUTPUT:
293
- * WORD - number of gfx devices
294
- * WORD - device structure size in bytes (excludes device size field)
295
- * DWORD - flags \
296
- * WORD - bus number } repeated structure
297
- * WORD - device number /
240
+ * WORD - structure size in bytes (includes size field)
241
+ * WORD - flags (currently all 16 bits are reserved)
242
+ * BYTE - error code (on failure, disregard all below fields)
243
+ * BYTE - AC level (default brightness in percent when machine has full power)
244
+ * BYTE - DC level (default brightness in percent when machine is on battery)
245
+ * BYTE - min input signal, in range 0-255, corresponding to 0% backlight
246
+ * BYTE - max input signal, in range 0-255, corresponding to 100% backlight
247
+ * BYTE - number of reported data points
248
+ * BYTE - luminance level in percent \ repeated structure
249
+ * BYTE - input signal in range 0-255 / does not have entries for 0% and 100%
298250 */
299
-/* flags */
300
-# define ATIF_PX_REMOVABLE_GRAPHICS_DEVICE (1 << 0)
301
-# define ATIF_XGP_PORT (1 << 1)
302
-# define ATIF_VGA_ENABLED_GRAPHICS_DEVICE (1 << 2)
303
-# define ATIF_XGP_PORT_IN_DOCK (1 << 3)
251
+/* requested display */
252
+# define ATIF_QBTC_REQUEST_LCD1 0
253
+# define ATIF_QBTC_REQUEST_CRT1 1
254
+# define ATIF_QBTC_REQUEST_DFP1 3
255
+# define ATIF_QBTC_REQUEST_CRT2 4
256
+# define ATIF_QBTC_REQUEST_LCD2 5
257
+# define ATIF_QBTC_REQUEST_DFP2 7
258
+# define ATIF_QBTC_REQUEST_DFP3 9
259
+# define ATIF_QBTC_REQUEST_DFP4 10
260
+# define ATIF_QBTC_REQUEST_DFP5 11
261
+# define ATIF_QBTC_REQUEST_DFP6 12
262
+/* error code */
263
+# define ATIF_QBTC_ERROR_CODE_SUCCESS 0
264
+# define ATIF_QBTC_ERROR_CODE_FAILURE 1
265
+# define ATIF_QBTC_ERROR_CODE_DEVICE_NOT_SUPPORTED 2
266
+#define ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION 0x11
267
+/* ARG0: ATIF_FUNCTION_READY_TO_UNDOCK_NOTIFICATION
268
+ * ARG1: none
269
+ * OUTPUT: none
270
+ */
304271 #define ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION 0x15
305272 /* ARG0: ATIF_FUNCTION_GET_EXTERNAL_GPU_INFORMATION
306273 * ARG1: none