acpi_thermal_rel.h (2088B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __ACPI_ACPI_THERMAL_H 3#define __ACPI_ACPI_THERMAL_H 4 5#include <asm/ioctl.h> 6 7#define ACPI_THERMAL_MAGIC 's' 8 9#define ACPI_THERMAL_GET_TRT_LEN _IOR(ACPI_THERMAL_MAGIC, 1, unsigned long) 10#define ACPI_THERMAL_GET_ART_LEN _IOR(ACPI_THERMAL_MAGIC, 2, unsigned long) 11#define ACPI_THERMAL_GET_TRT_COUNT _IOR(ACPI_THERMAL_MAGIC, 3, unsigned long) 12#define ACPI_THERMAL_GET_ART_COUNT _IOR(ACPI_THERMAL_MAGIC, 4, unsigned long) 13 14#define ACPI_THERMAL_GET_TRT _IOR(ACPI_THERMAL_MAGIC, 5, unsigned long) 15#define ACPI_THERMAL_GET_ART _IOR(ACPI_THERMAL_MAGIC, 6, unsigned long) 16 17struct art { 18 acpi_handle source; 19 acpi_handle target; 20 struct_group(data, 21 u64 weight; 22 u64 ac0_max; 23 u64 ac1_max; 24 u64 ac2_max; 25 u64 ac3_max; 26 u64 ac4_max; 27 u64 ac5_max; 28 u64 ac6_max; 29 u64 ac7_max; 30 u64 ac8_max; 31 u64 ac9_max; 32 ); 33} __packed; 34 35struct trt { 36 acpi_handle source; 37 acpi_handle target; 38 u64 influence; 39 u64 sample_period; 40 u64 reserved1; 41 u64 reserved2; 42 u64 reserved3; 43 u64 reserved4; 44} __packed; 45 46#define ACPI_NR_ART_ELEMENTS 13 47/* for usrspace */ 48union art_object { 49 struct { 50 char source_device[8]; /* ACPI single name */ 51 char target_device[8]; /* ACPI single name */ 52 struct_group(data, 53 u64 weight; 54 u64 ac0_max_level; 55 u64 ac1_max_level; 56 u64 ac2_max_level; 57 u64 ac3_max_level; 58 u64 ac4_max_level; 59 u64 ac5_max_level; 60 u64 ac6_max_level; 61 u64 ac7_max_level; 62 u64 ac8_max_level; 63 u64 ac9_max_level; 64 ); 65 }; 66 u64 __data[ACPI_NR_ART_ELEMENTS]; 67}; 68 69union trt_object { 70 struct { 71 char source_device[8]; /* ACPI single name */ 72 char target_device[8]; /* ACPI single name */ 73 u64 influence; 74 u64 sample_period; 75 u64 reserved[4]; 76 }; 77 u64 __data[8]; 78}; 79 80#ifdef __KERNEL__ 81int acpi_thermal_rel_misc_device_add(acpi_handle handle); 82int acpi_thermal_rel_misc_device_remove(acpi_handle handle); 83int acpi_parse_art(acpi_handle handle, int *art_count, struct art **arts, 84 bool create_dev); 85int acpi_parse_trt(acpi_handle handle, int *trt_count, struct trt **trts, 86 bool create_dev); 87#endif 88 89#endif /* __ACPI_ACPI_THERMAL_H */