Lines Matching +full:deep +full:- +full:sleep
1 // SPDX-License-Identifier: GPL-2.0-or-later
16 #define LEGACY_CONTROL_GUID "A90597CE-A997-11DA-B012-B622A1EF5492"
17 #define LEGACY_POWER_CONTROL_GUID "A80593CE-A997-11DA-B012-B622A1EF5492"
18 #define WMAX_CONTROL_GUID "A70591CE-A997-11DA-B012-B622A1EF5492"
113 quirks = dmi->driver_data; in dmi_matched()
224 .name = "alienware-wmi",
252 /* RGB triplet notation is 24-bit hexadecimal */ in parse_rgb()
254 return -EINVAL; in parse_rgb()
257 pr_debug("alienware-wmi: r: %d g:%d b: %d\n", in parse_rgb()
259 zone->colors = repackager.cp; in parse_rgb()
267 for (zone = 0; zone < quirks->num_zones; zone++) { in match_zone()
269 pr_debug("alienware-wmi: matched zone location: %d\n", in match_zone()
289 wmax_basic_args.led_mask = 1 << zone->location; in alienware_update_led()
290 wmax_basic_args.colors = zone->colors; in alienware_update_led()
298 legacy_args.colors = zone->colors; in alienware_update_led()
307 method_id = zone->location + 1; in alienware_update_led()
312 pr_debug("alienware-wmi: guid %s method %d\n", guid, method_id); in alienware_update_led()
316 pr_err("alienware-wmi: zone set failure: %u\n", status); in alienware_update_led()
326 return sprintf(buf, "red: -1, green: -1, blue: -1\n"); in zone_show()
328 target_zone->colors.red, in zone_show()
329 target_zone->colors.green, target_zone->colors.blue); in zone_show()
340 pr_err("alienware-wmi: invalid target zone\n"); in zone_set()
366 pr_err("alienware-wmi: brightness set failure: %u\n", status); in wmax_brightness()
421 pr_debug("alienware-wmi: updated control state to %d\n", in store_control_state()
444 * - zone_dev_attrs num_zones + 1 is for individual zones and then in alienware_zone_init()
446 * - zone_attrs num_zones + 2 is for all attrs in zone_dev_attrs + in alienware_zone_init()
448 * - zone_data num_zones is for the distinct zones in alienware_zone_init()
451 kcalloc(quirks->num_zones + 1, sizeof(struct device_attribute), in alienware_zone_init()
454 return -ENOMEM; in alienware_zone_init()
457 kcalloc(quirks->num_zones + 2, sizeof(struct attribute *), in alienware_zone_init()
460 return -ENOMEM; in alienware_zone_init()
463 kcalloc(quirks->num_zones, sizeof(struct platform_zone), in alienware_zone_init()
466 return -ENOMEM; in alienware_zone_init()
468 for (zone = 0; zone < quirks->num_zones; zone++) { in alienware_zone_init()
482 zone_attrs[quirks->num_zones] = &dev_attr_lighting_control_state.attr; in alienware_zone_init()
485 led_classdev_register(&dev->dev, &global_led); in alienware_zone_init()
487 return sysfs_create_group(&dev->dev.kobj, &zone_attribute_group); in alienware_zone_init()
494 sysfs_remove_group(&dev->dev.kobj, &zone_attribute_group); in alienware_zone_exit()
497 for (zone = 0; zone < quirks->num_zones; zone++) in alienware_zone_exit()
522 if (obj && obj->type == ACPI_TYPE_INTEGER) in alienware_wmax_command()
523 *out_data = (u32)obj->integer.value; in alienware_wmax_command()
556 pr_err("alienware-wmi: unknown HDMI cable status: %d\n", status); in show_hdmi_cable()
580 pr_err("alienware-wmi: unknown HDMI source status: %u\n", status); in show_hdmi_source()
596 pr_debug("alienware-wmi: setting hdmi to %d : %s", args.arg, buf); in toggle_hdmi_source()
601 pr_err("alienware-wmi: HDMI toggle failed: results: %u\n", in toggle_hdmi_source()
623 if (quirks->hdmi_mux > 0) in remove_hdmi()
624 sysfs_remove_group(&dev->dev.kobj, &hdmi_attribute_group); in remove_hdmi()
631 ret = sysfs_create_group(&dev->dev.kobj, &hdmi_attribute_group); in create_hdmi()
639 * - Currently supports reading cable status
640 * - Leaving expansion room to possibly support dock/undock events later
661 pr_err("alienware-wmi: unknown amplifier cable status: %d\n", status); in show_amplifier_status()
679 if (quirks->amplifier > 0) in remove_amplifier()
680 sysfs_remove_group(&dev->dev.kobj, &lifier_attribute_group); in remove_amplifier()
687 ret = sysfs_create_group(&dev->dev.kobj, &lifier_attribute_group); in create_amplifier()
694 * Deep Sleep Control support
695 * - Modifies BIOS setting for deep sleep control allowing extra wakeup events
718 pr_err("alienware-wmi: unknown deep sleep status: %d\n", status); in show_deepsleep_status()
735 pr_debug("alienware-wmi: setting deep sleep to %d : %s", args.arg, buf); in toggle_deepsleep()
741 pr_err("alienware-wmi: deep sleep control failed: results: %u\n", in toggle_deepsleep()
760 if (quirks->deepslp > 0) in remove_deepsleep()
761 sysfs_remove_group(&dev->dev.kobj, &deepsleep_attribute_group); in remove_deepsleep()
768 ret = sysfs_create_group(&dev->dev.kobj, &deepsleep_attribute_group); in create_deepsleep()
783 pr_warn("alienware-wmi: No known WMI GUID found\n"); in alienware_wmi_init()
784 return -ENODEV; in alienware_wmi_init()
794 platform_device = platform_device_alloc("alienware-wmi", -1); in alienware_wmi_init()
796 ret = -ENOMEM; in alienware_wmi_init()
803 if (quirks->hdmi_mux > 0) { in alienware_wmi_init()
809 if (quirks->amplifier > 0) { in alienware_wmi_init()
815 if (quirks->deepslp > 0) { in alienware_wmi_init()