Skip to content

Commit

Permalink
Merge branches 'acpi-video' and 'acpi-x86'
Browse files Browse the repository at this point in the history
* acpi-video:
  ACPI / video: Extend chassis-type detection with a "Lunch Box" check
  ACPI / video: Refactor and fix dmi_is_desktop()

* acpi-x86:
  ACPI / x86: Make PWM2 device always present at Lenovo Yoga Book
  • Loading branch information
Rafael J. Wysocki committed Mar 4, 2019
3 parents dcaed59 + d693c00 + ff6cdfd commit 8167e00
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
20 changes: 14 additions & 6 deletions drivers/acpi/acpi_video.c
Original file line number Diff line number Diff line change
Expand Up @@ -2124,21 +2124,29 @@ static int __init intel_opregion_present(void)
return opregion;
}

/* Check if the chassis-type indicates there is no builtin LCD panel */
static bool dmi_is_desktop(void)
{
const char *chassis_type;
unsigned long type;

chassis_type = dmi_get_system_info(DMI_CHASSIS_TYPE);
if (!chassis_type)
return false;

if (!strcmp(chassis_type, "3") || /* 3: Desktop */
!strcmp(chassis_type, "4") || /* 4: Low Profile Desktop */
!strcmp(chassis_type, "5") || /* 5: Pizza Box */
!strcmp(chassis_type, "6") || /* 6: Mini Tower */
!strcmp(chassis_type, "7") || /* 7: Tower */
!strcmp(chassis_type, "11")) /* 11: Main Server Chassis */
if (kstrtoul(chassis_type, 10, &type) != 0)
return false;

switch (type) {
case 0x03: /* Desktop */
case 0x04: /* Low Profile Desktop */
case 0x05: /* Pizza Box */
case 0x06: /* Mini Tower */
case 0x07: /* Tower */
case 0x10: /* Lunch Box */
case 0x11: /* Main Server Chassis */
return true;
}

return false;
}
Expand Down
5 changes: 5 additions & 0 deletions drivers/acpi/x86/utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,11 @@ static const struct always_present_id always_present_ids[] = {
*/
ENTRY("80860F09", "1", ICPU(INTEL_FAM6_ATOM_SILVERMONT), {}),
ENTRY("80862288", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {}),

/* Lenovo Yoga Book uses PWM2 for keyboard backlight control */
ENTRY("80862289", "2", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
}),
/*
* The INT0002 device is necessary to clear wakeup interrupt sources
* on Cherry Trail devices, without it we get nobody cared IRQ msgs.
Expand Down

0 comments on commit 8167e00

Please sign in to comment.