#define pr_fmt(fmt) …
#include <linux/acpi.h>
#include <linux/hwmon.h>
#include <linux/module.h>
#include <linux/wmi.h>
#define GIGABYTE_WMI_GUID …
#define NUM_TEMPERATURE_SENSORS …
static u8 usable_sensors_mask;
enum gigabyte_wmi_commandtype { … };
struct gigabyte_wmi_args { … };
static int gigabyte_wmi_perform_query(struct wmi_device *wdev,
enum gigabyte_wmi_commandtype command,
struct gigabyte_wmi_args *args, struct acpi_buffer *out)
{ … }
static int gigabyte_wmi_query_integer(struct wmi_device *wdev,
enum gigabyte_wmi_commandtype command,
struct gigabyte_wmi_args *args, u64 *res)
{ … }
static int gigabyte_wmi_temperature(struct wmi_device *wdev, u8 sensor, long *res)
{ … }
static int gigabyte_wmi_hwmon_read(struct device *dev, enum hwmon_sensor_types type,
u32 attr, int channel, long *val)
{ … }
static umode_t gigabyte_wmi_hwmon_is_visible(const void *data, enum hwmon_sensor_types type,
u32 attr, int channel)
{ … }
static const struct hwmon_channel_info * const gigabyte_wmi_hwmon_info[] = …;
static const struct hwmon_ops gigabyte_wmi_hwmon_ops = …;
static const struct hwmon_chip_info gigabyte_wmi_hwmon_chip_info = …;
static u8 gigabyte_wmi_detect_sensor_usability(struct wmi_device *wdev)
{ … }
static int gigabyte_wmi_probe(struct wmi_device *wdev, const void *context)
{ … }
static const struct wmi_device_id gigabyte_wmi_id_table[] = …;
static struct wmi_driver gigabyte_wmi_driver = …;
module_wmi_driver(…) …;
MODULE_DEVICE_TABLE(wmi, gigabyte_wmi_id_table);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;