Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 197554
b: refs/heads/master
c: 2cbb5c8
h: refs/heads/master
v: v3
  • Loading branch information
Henrique de Moraes Holschuh committed May 16, 2010
1 parent a631ed1 commit 3a05af8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 72f19921217c2267adc65cbe69c63da970578a14
refs/heads/master: 2cbb5c8f5533facb606adc5986ce40da2e987d6d
47 changes: 28 additions & 19 deletions trunk/drivers/platform/x86/thinkpad_acpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -5009,11 +5009,7 @@ enum { /* For TPACPI_LED_OLD */

static enum led_access_mode led_supported;

TPACPI_HANDLE(led, ec, "SLED", /* 570 */
"SYSL", /* 600e/x, 770e, 770x, A21e, A2xm/p, */
/* T20-22, X20-21 */
"LED", /* all others */
); /* R30, R31 */
static acpi_handle led_handle;

#define TPACPI_LED_NUMLEDS 16
static struct tpacpi_led_classdev *tpacpi_leds;
Expand Down Expand Up @@ -5273,6 +5269,32 @@ static const struct tpacpi_quirk led_useful_qtable[] __initconst = {
#undef TPACPI_LEDQ_IBM
#undef TPACPI_LEDQ_LNV

static enum led_access_mode __init led_init_detect_mode(void)
{
acpi_status status;

if (tpacpi_is_ibm()) {
/* 570 */
status = acpi_get_handle(ec_handle, "SLED", &led_handle);
if (ACPI_SUCCESS(status))
return TPACPI_LED_570;

/* 600e/x, 770e, 770x, A21e, A2xm/p, T20-22, X20-21 */
status = acpi_get_handle(ec_handle, "SYSL", &led_handle);
if (ACPI_SUCCESS(status))
return TPACPI_LED_OLD;
}

/* most others */
status = acpi_get_handle(ec_handle, "LED", &led_handle);
if (ACPI_SUCCESS(status))
return TPACPI_LED_NEW;

/* R30, R31, and unknown firmwares */
led_handle = NULL;
return TPACPI_LED_NONE;
}

static int __init led_init(struct ibm_init_struct *iibm)
{
unsigned int i;
Expand All @@ -5281,20 +5303,7 @@ static int __init led_init(struct ibm_init_struct *iibm)

vdbg_printk(TPACPI_DBG_INIT, "initializing LED subdriver\n");

TPACPI_ACPIHANDLE_INIT(led);

if (!led_handle)
/* led not supported on R30, R31 */
led_supported = TPACPI_LED_NONE;
else if (tpacpi_is_ibm() && strlencmp(led_path, "SLED") == 0)
/* 570 */
led_supported = TPACPI_LED_570;
else if (tpacpi_is_ibm() && strlencmp(led_path, "SYSL") == 0)
/* 600e/x, 770e, 770x, A21e, A2xm/p, T20-22, X20-21 */
led_supported = TPACPI_LED_OLD;
else
/* all others */
led_supported = TPACPI_LED_NEW;
led_supported = led_init_detect_mode();

vdbg_printk(TPACPI_DBG_INIT, "LED commands are %s, mode %d\n",
str_supported(led_supported), led_supported);
Expand Down

0 comments on commit 3a05af8

Please sign in to comment.