1 /* SPDX-License-Identifier: GPL-2.0-or-later */
6 #include <linux/types.h>
8 #define TLMI_SETTINGS_COUNT 256
9 #define TLMI_SETTINGS_MAXLEN 512
10 #define TLMI_PWD_BUFSIZE 129
11 #define TLMI_LANG_MAXLEN 4
13 /* Possible error values */
14 struct tlmi_err_codes {
19 enum encoding_option {
21 TLMI_ENCODING_SCANCODE,
24 /* password configuration details */
26 uint32_t password_mode;
27 uint32_t password_state;
30 uint32_t supported_encodings;
31 uint32_t supported_keyboard;
34 /* password setting details */
35 struct tlmi_pwd_setting {
38 char password[TLMI_PWD_BUFSIZE];
43 enum encoding_option encoding;
44 char kbdlang[TLMI_LANG_MAXLEN];
47 /* Attribute setting details */
48 struct tlmi_attr_setting {
51 char display_name[TLMI_SETTINGS_MAXLEN];
52 char *possible_values;
56 struct wmi_device *wmi_device;
59 bool can_set_bios_settings;
60 bool can_get_bios_selections;
61 bool can_set_bios_password;
62 bool can_get_password_settings;
66 struct tlmi_attr_setting *setting[TLMI_SETTINGS_COUNT];
67 struct device *class_dev;
68 struct kset *attribute_kset;
69 struct kset *authentication_kset;
70 struct tlmi_pwd_setting *pwd_admin;
71 struct tlmi_pwd_setting *pwd_power;
74 #endif /* !_THINK_LMI_H_ */