On Sun, Apr 23, 2023 at 7:58 AM Thomas Weißschuh <thomas@xxxxxxxx> wrote: > > On 2023-04-20 11:54:50-0500, Jorge Lopez wrote: > > --- > > .../x86/hp/hp-bioscfg/passwdattr-interface.c | 51 +++++++++++++++++++ > > 1 file changed, 51 insertions(+) > > create mode 100644 drivers/platform/x86/hp/hp-bioscfg/passwdattr-interface.c > > > > diff --git a/drivers/platform/x86/hp/hp-bioscfg/passwdattr-interface.c b/drivers/platform/x86/hp/hp-bioscfg/passwdattr-interface.c > > new file mode 100644 > > index 000000000000..02fc766eb3cf > > --- /dev/null > > +++ b/drivers/platform/x86/hp/hp-bioscfg/passwdattr-interface.c > > @@ -0,0 +1,51 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Functions corresponding to SET password methods under > > + * HP_WMI_SET_BIOS_SETTING_GUID for use with hp-bioscfg driver. > > + * > > + * Copyright (c) 2022 Hewlett-Packard Inc. > > + */ > > + > > +#include <linux/wmi.h> > > +#include "bioscfg.h" > > + > > +static int bios_attr_pass_interface_probe(struct wmi_device *wdev, > > + const void *context) > > +{ > > + mutex_lock(&bioscfg_drv.mutex); > > + bioscfg_drv.password_attr_wdev = wdev; > > This wdev is never used. It seems this full subdriver can be dropped. > Or the one UUID-based callsite using the same UUID can use the driver. I will remove the subdriver. > > > + mutex_unlock(&bioscfg_drv.mutex); > > + return 0; > > +} > > + > > +static void bios_attr_pass_interface_remove(struct wmi_device *wdev) > > +{ > > + mutex_lock(&bioscfg_drv.mutex); > > + bioscfg_drv.password_attr_wdev = NULL; > > + mutex_unlock(&bioscfg_drv.mutex); > > +} > > + > > +static const struct wmi_device_id bios_attr_pass_interface_id_table[] = { > > + { .guid_string = HP_WMI_SET_BIOS_SETTING_GUID }, > > + { }, > > No comma after end-of-array marker. > > > +}; > > +static struct wmi_driver bios_attr_pass_interface_driver = { > > + .driver = { > > + .name = DRIVER_NAME"-password" > > + }, > > + .probe = bios_attr_pass_interface_probe, > > + .remove = bios_attr_pass_interface_remove, > > + .id_table = bios_attr_pass_interface_id_table, > > +}; > > + > > +int init_bios_attr_pass_interface(void) > > +{ > > + return wmi_driver_register(&bios_attr_pass_interface_driver); > > +} > > + > > +void exit_bios_attr_pass_interface(void) > > +{ > > + wmi_driver_unregister(&bios_attr_pass_interface_driver); > > +} > > + > > +MODULE_DEVICE_TABLE(wmi, bios_attr_pass_interface_id_table); > > -- > > 2.34.1 > >