linux/drivers/platform/x86/asus-nb-wmi.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Asus Notebooks WMI hotkey driver
 *
 * Copyright(C) 2010 Corentin Chary <[email protected]>
 */

#define pr_fmt(fmt)

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/input.h>
#include <linux/input/sparse-keymap.h>
#include <linux/fb.h>
#include <linux/dmi.h>
#include <linux/i8042.h>

#include <acpi/video.h>

#include "asus-wmi.h"

#define ASUS_NB_WMI_FILE

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();

#define ASUS_NB_WMI_EVENT_GUID

MODULE_ALIAS();

/*
 * WAPF defines the behavior of the Fn+Fx wlan key
 * The significance of values is yet to be found, but
 * most of the time:
 * Bit | Bluetooth | WLAN
 *  0  | Hardware  | Hardware
 *  1  | Hardware  | Software
 *  4  | Software  | Software
 */
static int wapf =;
module_param(wapf, uint, 0444);
MODULE_PARM_DESC();

static int tablet_mode_sw =;
module_param(tablet_mode_sw, uint, 0444);
MODULE_PARM_DESC();

static struct quirk_entry *quirks;
static bool atkbd_reports_vol_keys;

static bool asus_i8042_filter(unsigned char data, unsigned char str, struct serio *port)
{}

static struct quirk_entry quirk_asus_unknown =;

static struct quirk_entry quirk_asus_q500a =;

/*
 * For those machines that need software to control bt/wifi status
 * and have duplicate events(ACPI and WMI) for display toggle
 */
static struct quirk_entry quirk_asus_x55u =;

static struct quirk_entry quirk_asus_wapf4 =;

static struct quirk_entry quirk_asus_x200ca =;

static struct quirk_entry quirk_asus_x550lb =;

static struct quirk_entry quirk_asus_forceals =;

static struct quirk_entry quirk_asus_use_kbd_dock_devid =;

static struct quirk_entry quirk_asus_use_lid_flip_devid =;

static struct quirk_entry quirk_asus_tablet_mode =;

static struct quirk_entry quirk_asus_ignore_fan =;

static int dmi_matched(const struct dmi_system_id *dmi)
{}

static const struct dmi_system_id asus_quirks[] =;

static void asus_nb_wmi_quirks(struct asus_wmi_driver *driver)
{}

static const struct key_entry asus_nb_wmi_keymap[] =;

static void asus_nb_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code,
				   unsigned int *value, bool *autorelease)
{}

static struct asus_wmi_driver asus_nb_wmi_driver =;


static int __init asus_nb_wmi_init(void)
{}

static void __exit asus_nb_wmi_exit(void)
{}

module_init();
module_exit(asus_nb_wmi_exit);