Lines Matching +full:turbo +full:- +full:mode
1 // SPDX-License-Identifier: GPL-2.0-or-later
5 * Copyright (C) 2007-2009 Carlos Corbacho <carlos@strangeworlds.co.uk>
8 * Copyright (C) 2005-2007 E.M. Smith
9 * Copyright (C) 2007-2008 Carlos Corbacho <cathectic@gmail.com>
30 #include <linux/input/sparse-keymap.h>
44 * Meaning is unknown - this number is required for writing to ACPI for AMW0
87 #define AMW0_GUID1 "67C3371D-95A3-4C37-BB61-DD47B491DAAB"
88 #define AMW0_GUID2 "431F16ED-0C2B-444C-B267-27DEB140CF9C"
89 #define WMID_GUID1 "6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3"
90 #define WMID_GUID2 "95764E09-FB56-4E83-B31A-37761F60994A"
91 #define WMID_GUID3 "61EF69EA-865C-4BC3-A502-A0DEBA0CB531"
92 #define WMID_GUID4 "7A4DDFE7-5B5D-40B4-8595-4408E0CC7F56"
97 #define ACERWMID_EVENT_GUID "676AA15E-6A47-4D9F-A2CC-1E6D18D14026"
99 MODULE_ALIAS("wmi:67C3371D-95A3-4C37-BB61-DD47B491DAAB");
100 MODULE_ALIAS("wmi:6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3");
101 MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026");
294 static int mailled = -1;
295 static int brightness = -1;
296 static int threeg = -1;
298 static int force_caps = -1;
320 MODULE_PARM_DESC(ec_raw_mode, "Enable EC raw mode");
322 "Set thermal mode key in cycle mode. Disabling it sets the mode key in turbo toggle mode");
342 /* Each low-level interface must define at least some of the following */
371 u8 turbo; member
381 if (quirks->mailled) in set_quirks()
382 interface->capability |= ACER_CAP_MAILLED; in set_quirks()
384 if (quirks->brightness) in set_quirks()
385 interface->capability |= ACER_CAP_BRIGHTNESS; in set_quirks()
387 if (quirks->turbo) in set_quirks()
388 interface->capability |= ACER_CAP_TURBO_OC | ACER_CAP_TURBO_LED in set_quirks()
391 if (quirks->predator_v4) in set_quirks()
392 interface->capability |= ACER_CAP_PLATFORM_PROFILE | in set_quirks()
398 quirks = dmi->driver_data; in dmi_matched()
404 if (force_caps == -1) { in set_force_caps()
405 force_caps = (uintptr_t)dmi->driver_data; in set_force_caps()
406 pr_info("Found %s, set force_caps to 0x%x\n", dmi->ident, force_caps); in set_force_caps()
415 .brightness = -1,
423 .turbo = 1,
429 .turbo = 1,
436 .turbo = 1,
459 /* The Aspire One has a dummy ACPI-WMI interface - disable it */
502 * that those machines are supported by acer-wmi driver.
615 .ident = "Acer Nitro AN515-58",
618 DMI_MATCH(DMI_PRODUCT_NAME, "Nitro AN515-58"),
624 .ident = "Acer Predator PH315-53",
627 DMI_MATCH(DMI_PRODUCT_NAME, "Predator PH315-53"),
633 .ident = "Acer Predator PHN16-71",
636 DMI_MATCH(DMI_PRODUCT_NAME, "Predator PHN16-71"),
642 .ident = "Acer Predator PH16-71",
645 DMI_MATCH(DMI_PRODUCT_NAME, "Predator PH16-71"),
651 .ident = "Acer Predator PH16-72",
654 DMI_MATCH(DMI_PRODUCT_NAME, "Predator PH16-72"),
660 .ident = "Acer Predator PH18-71",
663 DMI_MATCH(DMI_PRODUCT_NAME, "Predator PH18-71"),
669 .ident = "Acer Predator PT14-51",
672 DMI_MATCH(DMI_PRODUCT_NAME, "Predator PT14-51"),
678 .ident = "Acer Aspire Switch 10E SW3-016",
681 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW3-016"),
687 .ident = "Acer Aspire Switch 10 SW5-012",
690 DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
696 .ident = "Acer Aspire Switch V 10 SW5-017",
699 DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"),
716 * This quirk list is for those non-acer machines that have AMW0_GUID1
717 * but supported by acer-wmi in past days. Keeping this quirk list here
719 * here anymore. Those non-acer machines should be supported by
770 .ident = "Lenovo Ideapad S205-10382JG",
779 .ident = "Lenovo Ideapad S205-1038DPG",
793 * The profile used before turbo mode. This variable is needed for
794 * returning from turbo mode when the mode key is in toggle mode.
828 return interface->capability & cap; in has_cap()
869 switch (quirks->mailled) { in AMW0_get_u32()
879 switch (quirks->wireless) { in AMW0_get_u32()
907 switch (quirks->bluetooth) { in AMW0_get_u32()
917 switch (quirks->brightness) { in AMW0_get_u32()
959 switch (quirks->brightness) { in AMW0_set_u32()
987 if (obj && obj->type == ACPI_TYPE_BUFFER && in AMW0_find_mailled()
988 obj->buffer.length == sizeof(struct wmab_ret)) { in AMW0_find_mailled()
989 ret = *((struct wmab_ret *) obj->buffer.pointer); in AMW0_find_mailled()
996 interface->capability |= ACER_CAP_MAILLED; in AMW0_find_mailled()
1007 { "SNY5001", 0}, /* sony-laptop in charge */
1016 for (id = norfkill_ids; id->id[0]; id++) in AMW0_set_cap_acpi_check_device()
1017 if (acpi_dev_found(id->id)) in AMW0_set_cap_acpi_check_device()
1038 interface->capability |= ACER_CAP_WIRELESS; in AMW0_set_capabilities()
1053 if (obj && obj->type == ACPI_TYPE_BUFFER && in AMW0_set_capabilities()
1054 obj->buffer.length == sizeof(struct wmab_ret)) { in AMW0_set_capabilities()
1055 ret = *((struct wmab_ret *) obj->buffer.pointer); in AMW0_set_capabilities()
1062 interface->capability |= ACER_CAP_WIRELESS; in AMW0_set_capabilities()
1076 if (obj && obj->type == ACPI_TYPE_BUFFER in AMW0_set_capabilities()
1077 && obj->buffer.length == sizeof(struct wmab_ret)) { in AMW0_set_capabilities()
1078 ret = *((struct wmab_ret *) obj->buffer.pointer); in AMW0_set_capabilities()
1085 interface->capability |= ACER_CAP_BLUETOOTH; in AMW0_set_capabilities()
1092 if (quirks->brightness >= 0) in AMW0_set_capabilities()
1093 interface->capability |= ACER_CAP_BRIGHTNESS; in AMW0_set_capabilities()
1128 if (obj->type == ACPI_TYPE_BUFFER && in WMI_execute_u32()
1129 (obj->buffer.length == sizeof(u32) || in WMI_execute_u32()
1130 obj->buffer.length == sizeof(u64))) { in WMI_execute_u32()
1131 tmp = *((u32 *) obj->buffer.pointer); in WMI_execute_u32()
1132 } else if (obj->type == ACPI_TYPE_INTEGER) { in WMI_execute_u32()
1133 tmp = (u32) obj->integer.value; in WMI_execute_u32()
1165 if (quirks->mailled == 1) { in WMID_get_u32()
1211 if (quirks->mailled == 1) { in WMID_set_u32()
1249 else if (obj->type != ACPI_TYPE_BUFFER) { in wmid3_get_device_status()
1253 if (obj->buffer.length != 8) { in wmid3_get_device_status()
1254 pr_warn("Unknown buffer length %d\n", obj->buffer.length); in wmid3_get_device_status()
1259 return_value = *((struct wmid3_gds_return_value *)obj->buffer.pointer); in wmid3_get_device_status()
1263 pr_warn("Get 0x%x Device Status failed: 0x%x - 0x%x\n", in wmid3_get_device_status()
1328 else if (obj->type != ACPI_TYPE_BUFFER) { in wmid3_set_device_status()
1332 if (obj->buffer.length != 8) { in wmid3_set_device_status()
1333 pr_warn("Unknown buffer length %d\n", obj->buffer.length); in wmid3_set_device_status()
1338 return_value = *((struct wmid3_gds_return_value *)obj->buffer.pointer); in wmid3_set_device_status()
1342 pr_warn("Get Current Device Status failed: 0x%x - 0x%x\n", in wmid3_set_device_status()
1359 else if (obj->type != ACPI_TYPE_BUFFER) { in wmid3_set_device_status()
1363 if (obj->buffer.length != 4) { in wmid3_set_device_status()
1364 pr_warn("Unknown buffer length %d\n", obj->buffer.length); in wmid3_set_device_status()
1369 return_value = *((struct wmid3_gds_return_value *)obj->buffer.pointer); in wmid3_set_device_status()
1373 pr_warn("Set Device Status failed: 0x%x - 0x%x\n", in wmid3_set_device_status()
1404 /* We are looking for OEM-specific Type AAh */ in type_aa_dmi_decode()
1405 if (header->type != 0xAA) in type_aa_dmi_decode()
1412 type_aa->commun_func_bitmap); in type_aa_dmi_decode()
1413 commun_func_bitmap = type_aa->commun_func_bitmap; in type_aa_dmi_decode()
1415 if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_WIRELESS) in type_aa_dmi_decode()
1416 interface->capability |= ACER_CAP_WIRELESS; in type_aa_dmi_decode()
1417 if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_THREEG) in type_aa_dmi_decode()
1418 interface->capability |= ACER_CAP_THREEG; in type_aa_dmi_decode()
1419 if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_BLUETOOTH) in type_aa_dmi_decode()
1420 interface->capability |= ACER_CAP_BLUETOOTH; in type_aa_dmi_decode()
1421 if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_RFBTN) in type_aa_dmi_decode()
1424 commun_fn_key_number = type_aa->commun_fn_key_number; in type_aa_dmi_decode()
1440 if (obj->type == ACPI_TYPE_BUFFER && in WMID_set_capabilities()
1441 (obj->buffer.length == sizeof(u32) || in WMID_set_capabilities()
1442 obj->buffer.length == sizeof(u64))) { in WMID_set_capabilities()
1443 devices = *((u32 *) obj->buffer.pointer); in WMID_set_capabilities()
1444 } else if (obj->type == ACPI_TYPE_INTEGER) { in WMID_set_capabilities()
1445 devices = (u32) obj->integer.value; in WMID_set_capabilities()
1457 interface->capability |= ACER_CAP_WIRELESS; in WMID_set_capabilities()
1459 interface->capability |= ACER_CAP_THREEG; in WMID_set_capabilities()
1461 interface->capability |= ACER_CAP_BLUETOOTH; in WMID_set_capabilities()
1498 if (obj->type == ACPI_TYPE_BUFFER) { in WMI_gaming_execute_u64()
1499 if (obj->buffer.length == sizeof(u32)) in WMI_gaming_execute_u64()
1500 tmp = *((u32 *) obj->buffer.pointer); in WMI_gaming_execute_u64()
1501 else if (obj->buffer.length == sizeof(u64)) in WMI_gaming_execute_u64()
1502 tmp = *((u64 *) obj->buffer.pointer); in WMI_gaming_execute_u64()
1503 } else if (obj->type == ACPI_TYPE_INTEGER) { in WMI_gaming_execute_u64()
1504 tmp = (u64) obj->integer.value; in WMI_gaming_execute_u64()
1529 return -EIO; in WMI_gaming_execute_u32_u64()
1533 switch (obj->type) { in WMI_gaming_execute_u32_u64()
1535 *out = obj->integer.value; in WMI_gaming_execute_u32_u64()
1538 if (obj->buffer.length < sizeof(*out)) in WMI_gaming_execute_u32_u64()
1539 ret = -ENOMSG; in WMI_gaming_execute_u32_u64()
1541 *out = get_unaligned_le64(obj->buffer.pointer); in WMI_gaming_execute_u32_u64()
1545 ret = -ENOMSG; in WMI_gaming_execute_u32_u64()
1559 if (!(interface->capability & cap)) in WMID_gaming_set_u64()
1583 if (!(interface->capability & cap)) in WMID_gaming_get_u64()
1608 return -EIO; in WMID_gaming_get_sys_info()
1612 return -EIO; in WMID_gaming_get_sys_info()
1621 /* fan_mode = 1 is used for auto, fan_mode = 2 used for turbo*/ in WMID_gaming_set_fan_mode()
1625 if (quirks->cpu_fans > 0) in WMID_gaming_set_fan_mode()
1627 for (i = 0; i < (quirks->cpu_fans + quirks->gpu_fans); ++i) in WMID_gaming_set_fan_mode()
1629 for (i = 0; i < quirks->gpu_fans; ++i) in WMID_gaming_set_fan_mode()
1631 if (quirks->cpu_fans > 0) in WMID_gaming_set_fan_mode()
1633 for (i = 0; i < (quirks->cpu_fans + quirks->gpu_fans); ++i) in WMID_gaming_set_fan_mode()
1635 for (i = 0; i < quirks->gpu_fans; ++i) in WMID_gaming_set_fan_mode()
1651 return -EIO; in WMID_gaming_set_misc_setting()
1655 return -EIO; in WMID_gaming_set_misc_setting()
1675 return -EIO; in WMID_gaming_get_misc_setting()
1683 * Generic Device (interface-independent)
1690 switch (interface->type) { in get_u32()
1720 if (interface->capability & cap) { in set_u32()
1721 switch (interface->type) { in set_u32()
1784 .name = "acer-wmi::mail",
1833 bd = backlight_device_register("acer-wmi", dev, NULL, &acer_bl_ops, in acer_backlight_init()
1843 bd->props.power = BACKLIGHT_POWER_ON; in acer_backlight_init()
1844 bd->props.brightness = read_brightness(bd); in acer_backlight_init()
1869 return -1; in acer_gsensor_init()
1886 return -1; in acer_gsensor_event()
1893 return -1; in acer_gsensor_event()
1895 if (out_obj->package.count != 4) in acer_gsensor_event()
1896 return -1; in acer_gsensor_event()
1899 (s16)out_obj->package.elements[0].integer.value); in acer_gsensor_event()
1901 (s16)out_obj->package.elements[1].integer.value); in acer_gsensor_event()
1903 (s16)out_obj->package.elements[2].integer.value); in acer_gsensor_event()
1909 * Predator series turbo button
1915 /* Get current state from turbo button */ in acer_toggle_turbo()
1917 return -1; in acer_toggle_turbo()
1920 /* Turn off turbo led */ in acer_toggle_turbo()
1923 /* Set FAN mode to auto */ in acer_toggle_turbo()
1934 /* Turn on turbo led */ in acer_toggle_turbo()
1937 /* Set FAN mode to turbo */ in acer_toggle_turbo()
1940 /* Set OC to turbo mode */ in acer_toggle_turbo()
1979 return -EOPNOTSUPP; in acer_predator_v4_platform_profile_get()
2008 return -EOPNOTSUPP; in acer_predator_v4_platform_profile_set()
2030 /* Set default non-turbo profile */ in acer_predator_v4_platform_profile_probe()
2044 if (quirks->predator_v4) { in acer_platform_profile_setup()
2046 &device->dev, "acer-wmi", NULL, &acer_predator_v4_platform_profile_ops); in acer_platform_profile_setup()
2058 * This mode key will either cycle through each mode or toggle the in acer_thermal_profile_change()
2061 if (quirks->predator_v4) { in acer_thermal_profile_change()
2100 case 0x01: /* Docked, traditional clamshell laptop mode */ in acer_kbd_dock_state_to_sw_tablet_mode()
2102 case 0x04: /* Stand-alone tablet */ in acer_kbd_dock_state_to_sw_tablet_mode()
2103 case 0x40: /* Docked, tent mode, keyboard not usable */ in acer_kbd_dock_state_to_sw_tablet_mode()
2123 pr_err("Error getting keyboard-dock initial status: %s\n", in acer_kbd_dock_get_initial_state()
2129 if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length != 8) { in acer_kbd_dock_get_initial_state()
2130 pr_err("Unexpected output format getting keyboard-dock initial status\n"); in acer_kbd_dock_get_initial_state()
2134 output = obj->buffer.pointer; in acer_kbd_dock_get_initial_state()
2136 pr_err("Unexpected output [0]=0x%02x [3]=0x%02x getting keyboard-dock initial status\n", in acer_kbd_dock_get_initial_state()
2155 sw_tablet_mode = acer_kbd_dock_state_to_sw_tablet_mode(event->kbd_dock_state); in acer_kbd_dock_event()
2173 if (quirks->wireless == 3) in acer_rfkill_update()
2203 return -ENODEV; in acer_rfkill_set()
2226 return ERR_PTR(-ENOMEM); in acer_rfkill_register()
2248 "acer-wireless", ACER_CAP_WIRELESS); in acer_rfkill_init()
2257 RFKILL_TYPE_BLUETOOTH, "acer-bluetooth", in acer_rfkill_init()
2267 RFKILL_TYPE_WWAN, "acer-threeg", in acer_rfkill_init()
2329 if (obj->type != ACPI_TYPE_BUFFER) { in acer_wmi_notify()
2330 pr_warn("Unknown response received %d\n", obj->type); in acer_wmi_notify()
2333 if (obj->buffer.length != 8) { in acer_wmi_notify()
2334 pr_warn("Unknown buffer length %d\n", obj->buffer.length); in acer_wmi_notify()
2338 return_value = *((struct event_return_value *)obj->buffer.pointer); in acer_wmi_notify()
2348 pr_warn("Unknown key number - 0x%x\n", in acer_wmi_notify()
2352 switch (key->keycode) { in acer_wmi_notify()
2386 pr_warn("Unknown function number - %d - %d\n", in acer_wmi_notify()
2410 else if (obj->type != ACPI_TYPE_BUFFER) { in wmid3_set_function_mode()
2414 if (obj->buffer.length != 4) { in wmid3_set_function_mode()
2415 pr_warn("Unknown buffer length %d\n", obj->buffer.length); in wmid3_set_function_mode()
2420 *return_value = *((struct func_return_value *)obj->buffer.pointer); in wmid3_set_function_mode()
2441 pr_warn("Enabling EC raw mode failed: 0x%x - 0x%x\n", in acer_wmi_enable_ec_raw()
2445 pr_info("Enabled EC raw mode\n"); in acer_wmi_enable_ec_raw()
2465 pr_warn("Enabling Launch Manager failed: 0x%x - 0x%x\n", in acer_wmi_enable_lm()
2487 pr_warn("Enabling RF Button failed: 0x%x - 0x%x\n", in acer_wmi_enable_rf_button()
2499 adev = acpi_dev_get_first_match_dev("BST0001", NULL, -1); in acer_wmi_accel_setup()
2501 return -ENODEV; in acer_wmi_accel_setup()
2508 return -ENOMEM; in acer_wmi_accel_setup()
2510 acer_wmi_accel_dev->open = acer_gsensor_open; in acer_wmi_accel_setup()
2512 acer_wmi_accel_dev->name = "Acer BMA150 accelerometer"; in acer_wmi_accel_setup()
2513 acer_wmi_accel_dev->phys = "wmi/input1"; in acer_wmi_accel_setup()
2514 acer_wmi_accel_dev->id.bustype = BUS_HOST; in acer_wmi_accel_setup()
2515 acer_wmi_accel_dev->evbit[0] = BIT_MASK(EV_ABS); in acer_wmi_accel_setup()
2516 input_set_abs_params(acer_wmi_accel_dev, ABS_X, -16384, 16384, 0, 0); in acer_wmi_accel_setup()
2517 input_set_abs_params(acer_wmi_accel_dev, ABS_Y, -16384, 16384, 0, 0); in acer_wmi_accel_setup()
2518 input_set_abs_params(acer_wmi_accel_dev, ABS_Z, -16384, 16384, 0, 0); in acer_wmi_accel_setup()
2538 return -ENOMEM; in acer_wmi_input_setup()
2540 acer_wmi_input_dev->name = "Acer WMI hotkeys"; in acer_wmi_input_setup()
2541 acer_wmi_input_dev->phys = "wmi/input0"; in acer_wmi_input_setup()
2542 acer_wmi_input_dev->id.bustype = BUS_HOST; in acer_wmi_input_setup()
2554 err = -EIO; in acer_wmi_input_setup()
2596 if (obj->type == ACPI_TYPE_BUFFER && in get_wmid_devices()
2597 (obj->buffer.length == sizeof(u32) || in get_wmid_devices()
2598 obj->buffer.length == sizeof(u64))) { in get_wmid_devices()
2599 devices = *((u32 *) obj->buffer.pointer); in get_wmid_devices()
2600 } else if (obj->type == ACPI_TYPE_INTEGER) { in get_wmid_devices()
2601 devices = (u32) obj->integer.value; in get_wmid_devices()
2619 err = acer_led_init(&device->dev); in acer_platform_probe()
2625 err = acer_backlight_init(&device->dev); in acer_platform_probe()
2630 err = acer_rfkill_init(&device->dev); in acer_platform_probe()
2675 struct acer_data *data = &interface->data; in acer_suspend()
2678 return -ENOMEM; in acer_suspend()
2683 data->mailled = value; in acer_suspend()
2688 data->brightness = value; in acer_suspend()
2696 struct acer_data *data = &interface->data; in acer_resume()
2699 return -ENOMEM; in acer_resume()
2702 set_u32(data->mailled, ACER_CAP_MAILLED); in acer_resume()
2705 set_u32(data->brightness, ACER_CAP_BRIGHTNESS); in acer_resume()
2721 struct acer_data *data = &interface->data; in acer_platform_shutdown()
2732 .name = "acer-wmi",
2744 debugfs_remove_recursive(interface->debug.root); in remove_debugfs()
2749 interface->debug.root = debugfs_create_dir("acer-wmi", NULL); in create_debugfs()
2751 debugfs_create_u32("devices", S_IRUGO, interface->debug.root, in create_debugfs()
2752 &interface->debug.wmid_devices); in create_debugfs()
2784 if (*supported_sensors & BIT(sensor_id - 1)) in acer_wmi_hwmon_is_visible()
2820 return -EOPNOTSUPP; in acer_wmi_hwmon_read()
2849 struct device *dev = &acer_platform_device->dev; in acer_wmi_hwmon_init()
2880 pr_info("Acer Laptop ACPI-WMI Extras\n"); in acer_wmi_init()
2883 pr_info("Blacklisted hardware detected - not loading\n"); in acer_wmi_init()
2884 return -ENODEV; in acer_wmi_init()
2892 * acer-wmi driver handled those non-Acer machines by quirks list. in acer_wmi_init()
2893 * But actually acer-wmi driver was loaded on any machines that have in acer_wmi_init()
2895 * be supported by appropriate wmi drivers. e.g. fujitsu-laptop, in acer_wmi_init()
2896 * ideapad-laptop. So, here checks the machine that has AMW0_GUID1 in acer_wmi_init()
2904 return -ENODEV; in acer_wmi_init()
2908 * Detect which ACPI-WMI interface we're using. in acer_wmi_init()
2925 return -ENODEV; in acer_wmi_init()
2928 interface->capability |= ACER_CAP_BRIGHTNESS; in acer_wmi_init()
2929 } else if (!wmi_has_guid(WMID_GUID2) && interface && !has_type_aa && force_caps == -1) { in acer_wmi_init()
2931 return -ENODEV; in acer_wmi_init()
2939 return -ENODEV; in acer_wmi_init()
2948 return -ENODEV; in acer_wmi_init()
2954 interface->capability &= ~ACER_CAP_BRIGHTNESS; in acer_wmi_init()
2957 interface->capability |= ACER_CAP_SET_FUNCTION_MODE; in acer_wmi_init()
2959 if (force_caps != -1) in acer_wmi_init()
2960 interface->capability = force_caps; in acer_wmi_init()
2963 (interface->capability & ACER_CAP_SET_FUNCTION_MODE)) { in acer_wmi_init()
2969 pr_err("Cannot enable EC raw mode\n"); in acer_wmi_init()
2970 return -ENODEV; in acer_wmi_init()
2973 pr_err("Cannot enable Launch Manager mode\n"); in acer_wmi_init()
2974 return -ENODEV; in acer_wmi_init()
2977 pr_info("No WMID EC raw mode enable method\n"); in acer_wmi_init()
2985 if (err && err != -ENODEV) in acer_wmi_init()
2995 acer_platform_device = platform_device_alloc("acer-wmi", PLATFORM_DEVID_NONE); in acer_wmi_init()
2997 err = -ENOMEM; in acer_wmi_init()
3006 interface->debug.wmid_devices = get_wmid_devices(); in acer_wmi_init()