static int __init dell_wmi_aio_init(void)
{
	int err;
	const char *guid;

	guid = dell_wmi_aio_find();
	if (!guid) {
		pr_warn("No known WMI GUID found\n");
		return -ENXIO;
	}

	err = dell_wmi_aio_input_setup();
	if (err)
		return err;

	err = wmi_install_notify_handler(guid, dell_wmi_aio_notify, NULL);
	if (err) {
		pr_err("Unable to register notify handler - %d\n", err);
		sparse_keymap_free(dell_wmi_aio_input_dev);
		input_unregister_device(dell_wmi_aio_input_dev);
		return err;
	}

	return 0;
}
示例#2
0
static int __init dell_wmi_aio_init(void)
{
	int err;
	char *guid;

	guid = dell_wmi_aio_find();
	if (guid) {
		err = dell_wmi_aio_input_setup();

		if (err)
			return err;

		err = wmi_install_notify_handler(guid,
			dell_wmi_aio_notify, NULL);
		if (err) {
			input_unregister_device(dell_wmi_aio_input_dev);
			pr_err(AIO_PREFIX "Unable to register"
			       " notify handler - %d\n", err);
			return err;
		}
	} else
		pr_warning(AIO_PREFIX "No known WMI GUID found\n");

	return 0;
}
static void __exit dell_wmi_aio_exit(void)
{
	const char *guid;

	guid = dell_wmi_aio_find();
	wmi_remove_notify_handler(guid);
	sparse_keymap_free(dell_wmi_aio_input_dev);
	input_unregister_device(dell_wmi_aio_input_dev);
}
示例#4
0
static void __exit dell_wmi_aio_exit(void)
{
	char *guid;

	guid = dell_wmi_aio_find();
	if (guid) {
		wmi_remove_notify_handler(guid);
		input_unregister_device(dell_wmi_aio_input_dev);
	}
}