forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
953 B
44 lines
953 B
// SPDX-License-Identifier: GPL-2.0+ |
|
/* |
|
* Copyright 2013 Matthew Garrett <[email protected]> |
|
*/ |
|
|
|
#include <linux/acpi.h> |
|
#include <linux/module.h> |
|
|
|
MODULE_LICENSE("GPL"); |
|
|
|
static int smartconnect_acpi_init(struct acpi_device *acpi) |
|
{ |
|
unsigned long long value; |
|
acpi_status status; |
|
|
|
status = acpi_evaluate_integer(acpi->handle, "GAOS", NULL, &value); |
|
if (ACPI_FAILURE(status)) |
|
return -EINVAL; |
|
|
|
if (value & 0x1) { |
|
dev_info(&acpi->dev, "Disabling Intel Smart Connect\n"); |
|
status = acpi_execute_simple_method(acpi->handle, "SAOS", 0); |
|
} |
|
|
|
return 0; |
|
} |
|
|
|
static const struct acpi_device_id smartconnect_ids[] = { |
|
{"INT33A0", 0}, |
|
{"", 0} |
|
}; |
|
MODULE_DEVICE_TABLE(acpi, smartconnect_ids); |
|
|
|
static struct acpi_driver smartconnect_driver = { |
|
.owner = THIS_MODULE, |
|
.name = "intel_smart_connect", |
|
.class = "intel_smart_connect", |
|
.ids = smartconnect_ids, |
|
.ops = { |
|
.add = smartconnect_acpi_init, |
|
}, |
|
}; |
|
|
|
module_acpi_driver(smartconnect_driver);
|
|
|