Merge tag 'platform-drivers-x86-v5.1-1' of git://git.infradead.org/linux-platform-drivers-x86
Pull x86 platform driver updates from Darren Hart: - use MODULE_DEVICE_TABLE across several wmi drivers, keeping wmi_device_id and MODULE_ALIAS() declarations in sync - add several Ideapad models to the no_hw_rfkill list - add support for new Mellanox platforms, including new fan and LED functionality - address Dell keyboard backlight change event and power button release issues - update dell_rbu to use appropriate memory allocation mechanisms - several small fixes and Ice Lake support for intel_pmc_core - fix a suspend regression for Cherry Trail based devices in intel_int0002_vgpio - a few other routine fixes * tag 'platform-drivers-x86-v5.1-1' of git://git.infradead.org/linux-platform-drivers-x86: (50 commits) MAINTAINERS: Include mlxreg.h in Mellanox Platform Driver files platform/x86: ideapad-laptop: Add S130-14IGM to no_hw_rfkill list platform/x86: mlx-platform: Fix access mode for fan_dir attribute platform/x86: mlx-platform: Add UID LED for the next generation systems platform/x86: mlx-platform: Add extra CPLD for next generation systems platform/x86: wmi-bmof: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() platform/x86: intel-wmi-thunderbolt: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() platform/x86: huawei-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() platform/x86: dell-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() platform/x86: dell-wmi-descriptor: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() platform/x86: dell-smbios-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() platform/x86: wmi: add WMI support to MODULE_DEVICE_TABLE() platform/x86: wmi: move struct wmi_device_id to mod_devicetable.h modpost: file2alias: define size of alias platform/x86: touchscreen_dmi: Add info for the CHUWI Hi10 Air tablet platform/x86: ideapad-laptop: Add Ideapad 530S-14ARR to no_hw_rfkill list platform/x86: ideapad-laptop: Add Yoga C930 to no_hw_rfkill_list platform/x86: intel_pmc_core: Quirk to ignore XTAL shutdown platform/x86: intel_pmc_core: Add Package cstates residency info platform/x86: intel_pmc_core: Add ICL platform support ...
This commit is contained in:
@@ -40,6 +40,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
__u8 b[16];
|
||||
} uuid_t;
|
||||
#define UUID_STRING_LEN 36
|
||||
|
||||
/* Big exception to the "don't include kernel headers into userspace, which
|
||||
* even potentially has different endianness and word sizes, since
|
||||
@@ -53,6 +54,9 @@ struct devtable {
|
||||
int (*do_entry)(const char *filename, void *symval, char *alias);
|
||||
};
|
||||
|
||||
/* Size of alias provided to do_entry functions */
|
||||
#define ALIAS_SIZE 500
|
||||
|
||||
/* Define a variable f that holds the value of field f of struct devid
|
||||
* based at address m.
|
||||
*/
|
||||
@@ -1305,6 +1309,27 @@ static int do_tee_entry(const char *filename, void *symval, char *alias)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Looks like: wmi:guid */
|
||||
static int do_wmi_entry(const char *filename, void *symval, char *alias)
|
||||
{
|
||||
int len;
|
||||
DEF_FIELD_ADDR(symval, wmi_device_id, guid_string);
|
||||
|
||||
if (strlen(*guid_string) != UUID_STRING_LEN) {
|
||||
warn("Invalid WMI device id 'wmi:%s' in '%s'\n",
|
||||
*guid_string, filename);
|
||||
return 0;
|
||||
}
|
||||
|
||||
len = snprintf(alias, ALIAS_SIZE, WMI_MODULE_PREFIX "%s", *guid_string);
|
||||
if (len < 0 || len >= ALIAS_SIZE) {
|
||||
warn("Could not generate all MODULE_ALIAS's in '%s'\n",
|
||||
filename);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Does namelen bytes of name exactly match the symbol? */
|
||||
static bool sym_is(const char *name, unsigned namelen, const char *symbol)
|
||||
{
|
||||
@@ -1321,7 +1346,7 @@ static void do_table(void *symval, unsigned long size,
|
||||
struct module *mod)
|
||||
{
|
||||
unsigned int i;
|
||||
char alias[500];
|
||||
char alias[ALIAS_SIZE];
|
||||
|
||||
device_id_check(mod->name, device_id, size, id_size, symval);
|
||||
/* Leave last one: it's the terminator. */
|
||||
@@ -1376,6 +1401,7 @@ static const struct devtable devtable[] = {
|
||||
{"tbsvc", SIZE_tb_service_id, do_tbsvc_entry},
|
||||
{"typec", SIZE_typec_device_id, do_typec_entry},
|
||||
{"tee", SIZE_tee_client_device_id, do_tee_entry},
|
||||
{"wmi", SIZE_wmi_device_id, do_wmi_entry},
|
||||
};
|
||||
|
||||
/* Create MODULE_ALIAS() statements.
|
||||
|
||||
Reference in New Issue
Block a user