Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 144093
b: refs/heads/master
c: 226fced
h: refs/heads/master
i:
  144091: 385c55c
v: v3
  • Loading branch information
Almer S. Tigelaar authored and Len Brown committed Apr 24, 2009
1 parent 09d5be0 commit a68996b
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 54 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: 771e5ce3bd96f315e213f6263e40b2b2ee7e5201
refs/heads/master: 226fced325e2865369cbeac41c6a97536d4daa1b
4 changes: 2 additions & 2 deletions trunk/Documentation/laptops/thinkpad-acpi.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
ThinkPad ACPI Extras Driver

Version 0.23
April 10th, 2009
Version 0.22
November 23rd, 2008

Borislav Deianov <borislav@users.sf.net>
Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/acpi/thermal.c
Original file line number Diff line number Diff line change
Expand Up @@ -909,7 +909,7 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
thermal_zone_device_register("acpitz", trips, tz,
&acpi_thermal_zone_ops,
0, 0, 0,
tz->polling_frequency*100);
tz->polling_frequency);
if (IS_ERR(tz->thermal_zone))
return -ENODEV;

Expand Down
8 changes: 3 additions & 5 deletions trunk/drivers/acpi/video.c
Original file line number Diff line number Diff line change
Expand Up @@ -770,12 +770,10 @@ acpi_video_init_brightness(struct acpi_video_device *device)
* In this case, the first two elements in _BCL packages
* are also supported brightness levels that OS should take care of.
*/
for (i = 2; i < count; i++) {
if (br->levels[i] == br->levels[0])
for (i = 2; i < count; i++)
if (br->levels[i] == br->levels[0] ||
br->levels[i] == br->levels[1])
level_ac_battery++;
if (br->levels[i] == br->levels[1])
level_ac_battery++;
}

if (level_ac_battery < 2) {
level_ac_battery = 2 - level_ac_battery;
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/platform/x86/sony-laptop.c
Original file line number Diff line number Diff line change
Expand Up @@ -905,7 +905,6 @@ static struct sony_nc_event sony_127_events[] = {
{ 0x05, SONYPI_EVENT_ANYBUTTON_RELEASED },
{ 0x86, SONYPI_EVENT_PKEY_P5 },
{ 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED },
{ 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED },
{ 0x87, SONYPI_EVENT_SETTINGKEY_PRESSED },
{ 0x07, SONYPI_EVENT_ANYBUTTON_RELEASED },
{ 0, 0 },
Expand Down
81 changes: 37 additions & 44 deletions trunk/drivers/platform/x86/thinkpad_acpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* 02110-1301, USA.
*/

#define TPACPI_VERSION "0.23"
#define TPACPI_VERSION "0.22"
#define TPACPI_SYSFS_VERSION 0x020300

/*
Expand Down Expand Up @@ -303,17 +303,11 @@ static u32 dbg_level;

static struct workqueue_struct *tpacpi_wq;

enum led_status_t {
TPACPI_LED_OFF = 0,
TPACPI_LED_ON,
TPACPI_LED_BLINK,
};

/* Special LED class that can defer work */
struct tpacpi_led_classdev {
struct led_classdev led_classdev;
struct work_struct work;
enum led_status_t new_state;
enum led_brightness new_brightness;
unsigned int led;
};

Expand Down Expand Up @@ -2952,18 +2946,12 @@ static int hotkey_read(char *p)
return len;
}

static void hotkey_enabledisable_warn(bool enable)
static void hotkey_enabledisable_warn(void)
{
tpacpi_log_usertask("procfs hotkey enable/disable");
if (!WARN((tpacpi_lifecycle == TPACPI_LIFE_RUNNING || !enable),
TPACPI_WARN
"hotkey enable/disable functionality has been "
"removed from the driver. Hotkeys are always "
"enabled\n"))
printk(TPACPI_ERR
"Please remove the hotkey=enable module "
"parameter, it is deprecated. Hotkeys are always "
"enabled\n");
WARN(1, TPACPI_WARN
"hotkey enable/disable functionality has been "
"removed from the driver. Hotkeys are always enabled.\n");
}

static int hotkey_write(char *buf)
Expand All @@ -2983,9 +2971,9 @@ static int hotkey_write(char *buf)
res = 0;
while ((cmd = next_cmd(&buf))) {
if (strlencmp(cmd, "enable") == 0) {
hotkey_enabledisable_warn(1);
hotkey_enabledisable_warn();
} else if (strlencmp(cmd, "disable") == 0) {
hotkey_enabledisable_warn(0);
hotkey_enabledisable_warn();
res = -EPERM;
} else if (strlencmp(cmd, "reset") == 0) {
mask = hotkey_orig_mask;
Expand Down Expand Up @@ -4219,7 +4207,7 @@ static void light_set_status_worker(struct work_struct *work)
container_of(work, struct tpacpi_led_classdev, work);

if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING))
light_set_status((data->new_state != TPACPI_LED_OFF));
light_set_status((data->new_brightness != LED_OFF));
}

static void light_sysfs_set(struct led_classdev *led_cdev,
Expand All @@ -4229,8 +4217,7 @@ static void light_sysfs_set(struct led_classdev *led_cdev,
container_of(led_cdev,
struct tpacpi_led_classdev,
led_classdev);
data->new_state = (brightness != LED_OFF) ?
TPACPI_LED_ON : TPACPI_LED_OFF;
data->new_brightness = brightness;
queue_work(tpacpi_wq, &data->work);
}

Expand Down Expand Up @@ -4737,6 +4724,12 @@ enum { /* For TPACPI_LED_OLD */
TPACPI_LED_EC_HLMS = 0x0e, /* EC reg to select led to command */
};

enum led_status_t {
TPACPI_LED_OFF = 0,
TPACPI_LED_ON,
TPACPI_LED_BLINK,
};

static enum led_access_mode led_supported;

TPACPI_HANDLE(led, ec, "SLED", /* 570 */
Expand Down Expand Up @@ -4848,13 +4841,23 @@ static int led_set_status(const unsigned int led,
return rc;
}

static void led_sysfs_set_status(unsigned int led,
enum led_brightness brightness)
{
led_set_status(led,
(brightness == LED_OFF) ?
TPACPI_LED_OFF :
(tpacpi_led_state_cache[led] == TPACPI_LED_BLINK) ?
TPACPI_LED_BLINK : TPACPI_LED_ON);
}

static void led_set_status_worker(struct work_struct *work)
{
struct tpacpi_led_classdev *data =
container_of(work, struct tpacpi_led_classdev, work);

if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING))
led_set_status(data->led, data->new_state);
led_sysfs_set_status(data->led, data->new_brightness);
}

static void led_sysfs_set(struct led_classdev *led_cdev,
Expand All @@ -4863,13 +4866,7 @@ static void led_sysfs_set(struct led_classdev *led_cdev,
struct tpacpi_led_classdev *data = container_of(led_cdev,
struct tpacpi_led_classdev, led_classdev);

if (brightness == LED_OFF)
data->new_state = TPACPI_LED_OFF;
else if (tpacpi_led_state_cache[data->led] != TPACPI_LED_BLINK)
data->new_state = TPACPI_LED_ON;
else
data->new_state = TPACPI_LED_BLINK;

data->new_brightness = brightness;
queue_work(tpacpi_wq, &data->work);
}

Expand All @@ -4887,7 +4884,7 @@ static int led_sysfs_blink_set(struct led_classdev *led_cdev,
} else if ((*delay_on != 500) || (*delay_off != 500))
return -EINVAL;

data->new_state = TPACPI_LED_BLINK;
data->new_brightness = TPACPI_LED_BLINK;
queue_work(tpacpi_wq, &data->work);

return 0;
Expand Down Expand Up @@ -7860,15 +7857,6 @@ static int __init thinkpad_acpi_module_init(void)

MODULE_ALIAS(TPACPI_DRVR_SHORTNAME);

/*
* This will autoload the driver in almost every ThinkPad
* in widespread use.
*
* Only _VERY_ old models, like the 240, 240x and 570 lack
* the HKEY event interface.
*/
MODULE_DEVICE_TABLE(acpi, ibm_htk_device_ids);

/*
* DMI matching for module autoloading
*
Expand All @@ -7881,13 +7869,18 @@ MODULE_DEVICE_TABLE(acpi, ibm_htk_device_ids);
#define IBM_BIOS_MODULE_ALIAS(__type) \
MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*")

/* Non-ancient thinkpads */
MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*");
MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO:*:pvrThinkPad*:rvnLENOVO:*");

/* Ancient thinkpad BIOSes have to be identified by
* BIOS type or model number, and there are far less
* BIOS types than model numbers... */
IBM_BIOS_MODULE_ALIAS("I[MU]"); /* 570, 570e */
IBM_BIOS_MODULE_ALIAS("I[BDHIMNOTWVYZ]");
IBM_BIOS_MODULE_ALIAS("1[0368A-GIKM-PST]");
IBM_BIOS_MODULE_ALIAS("K[UX-Z]");

MODULE_AUTHOR("Borislav Deianov <borislav@users.sf.net>");
MODULE_AUTHOR("Henrique de Moraes Holschuh <hmh@hmh.eng.br>");
MODULE_AUTHOR("Borislav Deianov, Henrique de Moraes Holschuh");
MODULE_DESCRIPTION(TPACPI_DESC);
MODULE_VERSION(TPACPI_VERSION);
MODULE_LICENSE("GPL");
Expand Down

0 comments on commit a68996b

Please sign in to comment.