Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86
Pull x86 platform updates from Matthew Garrett: "Nothing amazing here, almost entirely cleanups and minor bugfixes and one bit of hardware enablement in the amilo-rfkill driver" * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86: platform/x86: panasonic-laptop: reuse module_acpi_driver samsung-laptop: fix config build error platform: x86: remove unnecessary platform_set_drvdata() amilo-rfkill: Enable using amilo-rfkill with the FSC Amilo L1310. wmi: parse_wdg() should return kernel error codes hp_wmi: Fix unregister order in hp_wmi_rfkill_setup() platform: replace strict_strto*() with kstrto*() x86: irst: use module_acpi_driver to simplify the code x86: smartconnect: use module_acpi_driver to simplify the code platform samsung-q10: use ACPI instead of direct EC calls thinkpad_acpi: add the ability setting TPACPI_LED_NONE by quirk thinkpad_acpi: return -NODEV while operating uninitialized LEDs
This commit is contained in:
commit
cd619e21ea
@ -732,6 +732,7 @@ config SAMSUNG_LAPTOP
|
|||||||
tristate "Samsung Laptop driver"
|
tristate "Samsung Laptop driver"
|
||||||
depends on X86
|
depends on X86
|
||||||
depends on RFKILL || RFKILL = n
|
depends on RFKILL || RFKILL = n
|
||||||
|
depends on ACPI_VIDEO || ACPI_VIDEO = n
|
||||||
depends on BACKLIGHT_CLASS_DEVICE
|
depends on BACKLIGHT_CLASS_DEVICE
|
||||||
select LEDS_CLASS
|
select LEDS_CLASS
|
||||||
select NEW_LEDS
|
select NEW_LEDS
|
||||||
@ -764,7 +765,7 @@ config INTEL_OAKTRAIL
|
|||||||
|
|
||||||
config SAMSUNG_Q10
|
config SAMSUNG_Q10
|
||||||
tristate "Samsung Q10 Extras"
|
tristate "Samsung Q10 Extras"
|
||||||
depends on SERIO_I8042
|
depends on ACPI
|
||||||
select BACKLIGHT_CLASS_DEVICE
|
select BACKLIGHT_CLASS_DEVICE
|
||||||
---help---
|
---help---
|
||||||
This driver provides support for backlight control on Samsung Q10
|
This driver provides support for backlight control on Samsung Q10
|
||||||
|
@ -82,6 +82,13 @@ static const struct dmi_system_id amilo_rfkill_id_table[] = {
|
|||||||
},
|
},
|
||||||
.driver_data = (void *)&amilo_a1655_rfkill_ops
|
.driver_data = (void *)&amilo_a1655_rfkill_ops
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
||||||
|
DMI_MATCH(DMI_BOARD_NAME, "AMILO L1310"),
|
||||||
|
},
|
||||||
|
.driver_data = (void *)&amilo_a1655_rfkill_ops
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.matches = {
|
.matches = {
|
||||||
DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
|
||||||
|
@ -590,7 +590,7 @@ static ssize_t cmpc_accel_sensitivity_store(struct device *dev,
|
|||||||
inputdev = dev_get_drvdata(&acpi->dev);
|
inputdev = dev_get_drvdata(&acpi->dev);
|
||||||
accel = dev_get_drvdata(&inputdev->dev);
|
accel = dev_get_drvdata(&inputdev->dev);
|
||||||
|
|
||||||
r = strict_strtoul(buf, 0, &sensitivity);
|
r = kstrtoul(buf, 0, &sensitivity);
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -425,7 +425,8 @@ static ssize_t pwm_enable_store(struct device *dev,
|
|||||||
struct compal_data *data = dev_get_drvdata(dev);
|
struct compal_data *data = dev_get_drvdata(dev);
|
||||||
long val;
|
long val;
|
||||||
int err;
|
int err;
|
||||||
err = strict_strtol(buf, 10, &val);
|
|
||||||
|
err = kstrtol(buf, 10, &val);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
if (val < 0)
|
if (val < 0)
|
||||||
@ -463,7 +464,8 @@ static ssize_t pwm_store(struct device *dev, struct device_attribute *attr,
|
|||||||
struct compal_data *data = dev_get_drvdata(dev);
|
struct compal_data *data = dev_get_drvdata(dev);
|
||||||
long val;
|
long val;
|
||||||
int err;
|
int err;
|
||||||
err = strict_strtol(buf, 10, &val);
|
|
||||||
|
err = kstrtol(buf, 10, &val);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
if (val < 0 || val > 255)
|
if (val < 0 || val > 255)
|
||||||
@ -1081,7 +1083,6 @@ static int compal_remove(struct platform_device *pdev)
|
|||||||
hwmon_device_unregister(data->hwmon_dev);
|
hwmon_device_unregister(data->hwmon_dev);
|
||||||
power_supply_unregister(&data->psy);
|
power_supply_unregister(&data->psy);
|
||||||
|
|
||||||
platform_set_drvdata(pdev, NULL);
|
|
||||||
kfree(data);
|
kfree(data);
|
||||||
|
|
||||||
sysfs_remove_group(&pdev->dev.kobj, &compal_attribute_group);
|
sysfs_remove_group(&pdev->dev.kobj, &compal_attribute_group);
|
||||||
|
@ -725,7 +725,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
|
|||||||
(void *) HPWMI_WWAN);
|
(void *) HPWMI_WWAN);
|
||||||
if (!wwan_rfkill) {
|
if (!wwan_rfkill) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto register_gps_error;
|
goto register_bluetooth_error;
|
||||||
}
|
}
|
||||||
rfkill_init_sw_state(wwan_rfkill,
|
rfkill_init_sw_state(wwan_rfkill,
|
||||||
hp_wmi_get_sw_state(HPWMI_WWAN));
|
hp_wmi_get_sw_state(HPWMI_WWAN));
|
||||||
@ -733,7 +733,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
|
|||||||
hp_wmi_get_hw_state(HPWMI_WWAN));
|
hp_wmi_get_hw_state(HPWMI_WWAN));
|
||||||
err = rfkill_register(wwan_rfkill);
|
err = rfkill_register(wwan_rfkill);
|
||||||
if (err)
|
if (err)
|
||||||
goto register_wwan_err;
|
goto register_wwan_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wireless & 0x8) {
|
if (wireless & 0x8) {
|
||||||
@ -743,7 +743,7 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
|
|||||||
(void *) HPWMI_GPS);
|
(void *) HPWMI_GPS);
|
||||||
if (!gps_rfkill) {
|
if (!gps_rfkill) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
goto register_bluetooth_error;
|
goto register_wwan_error;
|
||||||
}
|
}
|
||||||
rfkill_init_sw_state(gps_rfkill,
|
rfkill_init_sw_state(gps_rfkill,
|
||||||
hp_wmi_get_sw_state(HPWMI_GPS));
|
hp_wmi_get_sw_state(HPWMI_GPS));
|
||||||
@ -755,16 +755,16 @@ static int hp_wmi_rfkill_setup(struct platform_device *device)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
register_wwan_err:
|
|
||||||
rfkill_destroy(wwan_rfkill);
|
|
||||||
wwan_rfkill = NULL;
|
|
||||||
if (gps_rfkill)
|
|
||||||
rfkill_unregister(gps_rfkill);
|
|
||||||
register_gps_error:
|
register_gps_error:
|
||||||
rfkill_destroy(gps_rfkill);
|
rfkill_destroy(gps_rfkill);
|
||||||
gps_rfkill = NULL;
|
gps_rfkill = NULL;
|
||||||
if (bluetooth_rfkill)
|
if (bluetooth_rfkill)
|
||||||
rfkill_unregister(bluetooth_rfkill);
|
rfkill_unregister(bluetooth_rfkill);
|
||||||
|
register_wwan_error:
|
||||||
|
rfkill_destroy(wwan_rfkill);
|
||||||
|
wwan_rfkill = NULL;
|
||||||
|
if (gps_rfkill)
|
||||||
|
rfkill_unregister(gps_rfkill);
|
||||||
register_bluetooth_error:
|
register_bluetooth_error:
|
||||||
rfkill_destroy(bluetooth_rfkill);
|
rfkill_destroy(bluetooth_rfkill);
|
||||||
bluetooth_rfkill = NULL;
|
bluetooth_rfkill = NULL;
|
||||||
|
@ -193,17 +193,6 @@ static struct acpi_driver irst_driver = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int irst_init(void)
|
module_acpi_driver(irst_driver);
|
||||||
{
|
|
||||||
return acpi_bus_register_driver(&irst_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void irst_exit(void)
|
|
||||||
{
|
|
||||||
acpi_bus_unregister_driver(&irst_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(irst_init);
|
|
||||||
module_exit(irst_exit);
|
|
||||||
|
|
||||||
MODULE_DEVICE_TABLE(acpi, irst_ids);
|
MODULE_DEVICE_TABLE(acpi, irst_ids);
|
||||||
|
@ -74,17 +74,6 @@ static struct acpi_driver smartconnect_driver = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int smartconnect_init(void)
|
module_acpi_driver(smartconnect_driver);
|
||||||
{
|
|
||||||
return acpi_bus_register_driver(&smartconnect_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void smartconnect_exit(void)
|
|
||||||
{
|
|
||||||
acpi_bus_unregister_driver(&smartconnect_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(smartconnect_init);
|
|
||||||
module_exit(smartconnect_exit);
|
|
||||||
|
|
||||||
MODULE_DEVICE_TABLE(acpi, smartconnect_ids);
|
MODULE_DEVICE_TABLE(acpi, smartconnect_ids);
|
||||||
|
@ -128,7 +128,6 @@ static int mfld_pb_remove(struct platform_device *pdev)
|
|||||||
|
|
||||||
free_irq(irq, input);
|
free_irq(irq, input);
|
||||||
input_unregister_device(input);
|
input_unregister_device(input);
|
||||||
platform_set_drvdata(pdev, NULL);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -542,7 +542,6 @@ static int mid_thermal_remove(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
kfree(pinfo);
|
kfree(pinfo);
|
||||||
platform_set_drvdata(pdev, NULL);
|
|
||||||
|
|
||||||
/* Stop the ADC */
|
/* Stop the ADC */
|
||||||
return configure_adc(0);
|
return configure_adc(0);
|
||||||
|
@ -643,23 +643,6 @@ out_hotkey:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init acpi_pcc_init(void)
|
|
||||||
{
|
|
||||||
int result = 0;
|
|
||||||
|
|
||||||
if (acpi_disabled)
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
result = acpi_bus_register_driver(&acpi_pcc_driver);
|
|
||||||
if (result < 0) {
|
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
|
|
||||||
"Error registering hotkey driver\n"));
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int acpi_pcc_hotkey_remove(struct acpi_device *device)
|
static int acpi_pcc_hotkey_remove(struct acpi_device *device)
|
||||||
{
|
{
|
||||||
struct pcc_acpi *pcc = acpi_driver_data(device);
|
struct pcc_acpi *pcc = acpi_driver_data(device);
|
||||||
@ -679,10 +662,4 @@ static int acpi_pcc_hotkey_remove(struct acpi_device *device)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit acpi_pcc_exit(void)
|
module_acpi_driver(acpi_pcc_driver);
|
||||||
{
|
|
||||||
acpi_bus_unregister_driver(&acpi_pcc_driver);
|
|
||||||
}
|
|
||||||
|
|
||||||
module_init(acpi_pcc_init);
|
|
||||||
module_exit(acpi_pcc_exit);
|
|
||||||
|
@ -14,16 +14,12 @@
|
|||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/backlight.h>
|
#include <linux/backlight.h>
|
||||||
#include <linux/i8042.h>
|
|
||||||
#include <linux/dmi.h>
|
#include <linux/dmi.h>
|
||||||
|
#include <acpi/acpi_drivers.h>
|
||||||
|
|
||||||
#define SAMSUNGQ10_BL_MAX_INTENSITY 255
|
#define SAMSUNGQ10_BL_MAX_INTENSITY 7
|
||||||
#define SAMSUNGQ10_BL_DEFAULT_INTENSITY 185
|
|
||||||
|
|
||||||
#define SAMSUNGQ10_BL_8042_CMD 0xbe
|
static acpi_handle ec_handle;
|
||||||
#define SAMSUNGQ10_BL_8042_DATA { 0x89, 0x91 }
|
|
||||||
|
|
||||||
static int samsungq10_bl_brightness;
|
|
||||||
|
|
||||||
static bool force;
|
static bool force;
|
||||||
module_param(force, bool, 0);
|
module_param(force, bool, 0);
|
||||||
@ -33,21 +29,26 @@ MODULE_PARM_DESC(force,
|
|||||||
static int samsungq10_bl_set_intensity(struct backlight_device *bd)
|
static int samsungq10_bl_set_intensity(struct backlight_device *bd)
|
||||||
{
|
{
|
||||||
|
|
||||||
int brightness = bd->props.brightness;
|
acpi_status status;
|
||||||
unsigned char c[3] = SAMSUNGQ10_BL_8042_DATA;
|
int i;
|
||||||
|
|
||||||
c[2] = (unsigned char)brightness;
|
for (i = 0; i < SAMSUNGQ10_BL_MAX_INTENSITY; i++) {
|
||||||
i8042_lock_chip();
|
status = acpi_evaluate_object(ec_handle, "_Q63", NULL, NULL);
|
||||||
i8042_command(c, (0x30 << 8) | SAMSUNGQ10_BL_8042_CMD);
|
if (ACPI_FAILURE(status))
|
||||||
i8042_unlock_chip();
|
return -EIO;
|
||||||
samsungq10_bl_brightness = brightness;
|
}
|
||||||
|
for (i = 0; i < bd->props.brightness; i++) {
|
||||||
|
status = acpi_evaluate_object(ec_handle, "_Q64", NULL, NULL);
|
||||||
|
if (ACPI_FAILURE(status))
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int samsungq10_bl_get_intensity(struct backlight_device *bd)
|
static int samsungq10_bl_get_intensity(struct backlight_device *bd)
|
||||||
{
|
{
|
||||||
return samsungq10_bl_brightness;
|
return bd->props.brightness;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct backlight_ops samsungq10_bl_ops = {
|
static const struct backlight_ops samsungq10_bl_ops = {
|
||||||
@ -55,28 +56,6 @@ static const struct backlight_ops samsungq10_bl_ops = {
|
|||||||
.update_status = samsungq10_bl_set_intensity,
|
.update_status = samsungq10_bl_set_intensity,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
|
||||||
static int samsungq10_suspend(struct device *dev)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int samsungq10_resume(struct device *dev)
|
|
||||||
{
|
|
||||||
|
|
||||||
struct backlight_device *bd = dev_get_drvdata(dev);
|
|
||||||
|
|
||||||
samsungq10_bl_set_intensity(bd);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
#define samsungq10_suspend NULL
|
|
||||||
#define samsungq10_resume NULL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static SIMPLE_DEV_PM_OPS(samsungq10_pm_ops,
|
|
||||||
samsungq10_suspend, samsungq10_resume);
|
|
||||||
|
|
||||||
static int samsungq10_probe(struct platform_device *pdev)
|
static int samsungq10_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -93,9 +72,6 @@ static int samsungq10_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
platform_set_drvdata(pdev, bd);
|
platform_set_drvdata(pdev, bd);
|
||||||
|
|
||||||
bd->props.brightness = SAMSUNGQ10_BL_DEFAULT_INTENSITY;
|
|
||||||
samsungq10_bl_set_intensity(bd);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,9 +80,6 @@ static int samsungq10_remove(struct platform_device *pdev)
|
|||||||
|
|
||||||
struct backlight_device *bd = platform_get_drvdata(pdev);
|
struct backlight_device *bd = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
bd->props.brightness = SAMSUNGQ10_BL_DEFAULT_INTENSITY;
|
|
||||||
samsungq10_bl_set_intensity(bd);
|
|
||||||
|
|
||||||
backlight_device_unregister(bd);
|
backlight_device_unregister(bd);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -116,7 +89,6 @@ static struct platform_driver samsungq10_driver = {
|
|||||||
.driver = {
|
.driver = {
|
||||||
.name = KBUILD_MODNAME,
|
.name = KBUILD_MODNAME,
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.pm = &samsungq10_pm_ops,
|
|
||||||
},
|
},
|
||||||
.probe = samsungq10_probe,
|
.probe = samsungq10_probe,
|
||||||
.remove = samsungq10_remove,
|
.remove = samsungq10_remove,
|
||||||
@ -172,6 +144,11 @@ static int __init samsungq10_init(void)
|
|||||||
if (!force && !dmi_check_system(samsungq10_dmi_table))
|
if (!force && !dmi_check_system(samsungq10_dmi_table))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
ec_handle = ec_get_handle();
|
||||||
|
|
||||||
|
if (!ec_handle)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
samsungq10_device = platform_create_bundle(&samsungq10_driver,
|
samsungq10_device = platform_create_bundle(&samsungq10_driver,
|
||||||
samsungq10_probe,
|
samsungq10_probe,
|
||||||
NULL, 0, NULL, 0);
|
NULL, 0, NULL, 0);
|
||||||
|
@ -369,7 +369,7 @@ struct tpacpi_led_classdev {
|
|||||||
struct led_classdev led_classdev;
|
struct led_classdev led_classdev;
|
||||||
struct work_struct work;
|
struct work_struct work;
|
||||||
enum led_status_t new_state;
|
enum led_status_t new_state;
|
||||||
unsigned int led;
|
int led;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* brightness level capabilities */
|
/* brightness level capabilities */
|
||||||
@ -5296,6 +5296,16 @@ static int __init led_init(struct ibm_init_struct *iibm)
|
|||||||
|
|
||||||
led_supported = led_init_detect_mode();
|
led_supported = led_init_detect_mode();
|
||||||
|
|
||||||
|
if (led_supported != TPACPI_LED_NONE) {
|
||||||
|
useful_leds = tpacpi_check_quirks(led_useful_qtable,
|
||||||
|
ARRAY_SIZE(led_useful_qtable));
|
||||||
|
|
||||||
|
if (!useful_leds) {
|
||||||
|
led_handle = NULL;
|
||||||
|
led_supported = TPACPI_LED_NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
vdbg_printk(TPACPI_DBG_INIT, "LED commands are %s, mode %d\n",
|
vdbg_printk(TPACPI_DBG_INIT, "LED commands are %s, mode %d\n",
|
||||||
str_supported(led_supported), led_supported);
|
str_supported(led_supported), led_supported);
|
||||||
|
|
||||||
@ -5309,10 +5319,9 @@ static int __init led_init(struct ibm_init_struct *iibm)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
useful_leds = tpacpi_check_quirks(led_useful_qtable,
|
|
||||||
ARRAY_SIZE(led_useful_qtable));
|
|
||||||
|
|
||||||
for (i = 0; i < TPACPI_LED_NUMLEDS; i++) {
|
for (i = 0; i < TPACPI_LED_NUMLEDS; i++) {
|
||||||
|
tpacpi_leds[i].led = -1;
|
||||||
|
|
||||||
if (!tpacpi_is_led_restricted(i) &&
|
if (!tpacpi_is_led_restricted(i) &&
|
||||||
test_bit(i, &useful_leds)) {
|
test_bit(i, &useful_leds)) {
|
||||||
rc = tpacpi_init_led(i);
|
rc = tpacpi_init_led(i);
|
||||||
@ -5370,9 +5379,13 @@ static int led_write(char *buf)
|
|||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
while ((cmd = next_cmd(&buf))) {
|
while ((cmd = next_cmd(&buf))) {
|
||||||
if (sscanf(cmd, "%d", &led) != 1 || led < 0 || led > 15)
|
if (sscanf(cmd, "%d", &led) != 1)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (led < 0 || led > (TPACPI_LED_NUMLEDS - 1) ||
|
||||||
|
tpacpi_leds[led].led < 0)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
if (strstr(cmd, "off")) {
|
if (strstr(cmd, "off")) {
|
||||||
s = TPACPI_LED_OFF;
|
s = TPACPI_LED_OFF;
|
||||||
} else if (strstr(cmd, "on")) {
|
} else if (strstr(cmd, "on")) {
|
||||||
|
@ -780,7 +780,7 @@ static bool guid_already_parsed(const char *guid_string)
|
|||||||
/*
|
/*
|
||||||
* Parse the _WDG method for the GUID data blocks
|
* Parse the _WDG method for the GUID data blocks
|
||||||
*/
|
*/
|
||||||
static acpi_status parse_wdg(acpi_handle handle)
|
static int parse_wdg(acpi_handle handle)
|
||||||
{
|
{
|
||||||
struct acpi_buffer out = {ACPI_ALLOCATE_BUFFER, NULL};
|
struct acpi_buffer out = {ACPI_ALLOCATE_BUFFER, NULL};
|
||||||
union acpi_object *obj;
|
union acpi_object *obj;
|
||||||
@ -812,7 +812,7 @@ static acpi_status parse_wdg(acpi_handle handle)
|
|||||||
|
|
||||||
wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL);
|
wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL);
|
||||||
if (!wblock)
|
if (!wblock)
|
||||||
return AE_NO_MEMORY;
|
return -ENOMEM;
|
||||||
|
|
||||||
wblock->handle = handle;
|
wblock->handle = handle;
|
||||||
wblock->gblock = gblock[i];
|
wblock->gblock = gblock[i];
|
||||||
|
Loading…
Reference in New Issue
Block a user