提交 0bb32462 编写于 作者: L Linus Torvalds

Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
  acerhdf: return temperature in milidegree instead of degree
  thinkpad-acpi: fix detection of old ThinkPads
  thinkpad-acpi: fix sign of ERESTARTSYS return
  ACPI: Add Thinkpad T400, T500 to OSI(Linux) white-list
  ACPICA: Silence the warning about _BIF returning the buffer
  ACPI: DMI init_set_sci_en_on_resume for HP-Compaq C700
...@@ -203,8 +203,9 @@ static const union acpi_predefined_info predefined_names[] = ...@@ -203,8 +203,9 @@ static const union acpi_predefined_info predefined_names[] =
{{"_BCT", 1, ACPI_RTYPE_INTEGER}}, {{"_BCT", 1, ACPI_RTYPE_INTEGER}},
{{"_BDN", 0, ACPI_RTYPE_INTEGER}}, {{"_BDN", 0, ACPI_RTYPE_INTEGER}},
{{"_BFS", 1, 0}}, {{"_BFS", 1, 0}},
{{"_BIF", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (9 Int),(4 Str) */ {{"_BIF", 0, ACPI_RTYPE_PACKAGE} }, /* Fixed-length (9 Int),(4 Str/Buf) */
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9, ACPI_RTYPE_STRING}, 4,0}}, {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9,
ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER}, 4, 0} },
{{"_BIX", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int),(4 Str) */ {{"_BIX", 0, ACPI_RTYPE_PACKAGE}}, /* Fixed-length (16 Int),(4 Str) */
{{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, ACPI_RTYPE_STRING}, 4, {{{ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, ACPI_RTYPE_STRING}, 4,
......
...@@ -224,6 +224,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { ...@@ -224,6 +224,7 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
* _OSI(Linux) helps sound * _OSI(Linux) helps sound
* DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad R61"), * DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad R61"),
* DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T61"), * DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T61"),
* T400, T500
* _OSI(Linux) has Linux specific hooks * _OSI(Linux) has Linux specific hooks
* DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"), * DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"),
* _OSI(Linux) is a NOP: * _OSI(Linux) is a NOP:
...@@ -254,6 +255,22 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { ...@@ -254,6 +255,22 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"), DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"),
}, },
}, },
{
.callback = dmi_enable_osi_linux,
.ident = "Lenovo ThinkPad T400",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T400"),
},
},
{
.callback = dmi_enable_osi_linux,
.ident = "Lenovo ThinkPad T500",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T500"),
},
},
{} {}
}; };
......
...@@ -430,6 +430,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = { ...@@ -430,6 +430,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
}, },
{ {
.callback = init_set_sci_en_on_resume, .callback = init_set_sci_en_on_resume,
.ident = "Hewlett-Packard Compaq Presario C700 Notebook PC",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
DMI_MATCH(DMI_PRODUCT_NAME, "Compaq Presario C700 Notebook PC"),
},
},
{
.callback = init_set_sci_en_on_resume,
.ident = "Hewlett-Packard Compaq Presario CQ40 Notebook PC", .ident = "Hewlett-Packard Compaq Presario CQ40 Notebook PC",
.matches = { .matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
*/ */
#undef START_IN_KERNEL_MODE #undef START_IN_KERNEL_MODE
#define DRV_VER "0.5.17" #define DRV_VER "0.5.18"
/* /*
* According to the Atom N270 datasheet, * According to the Atom N270 datasheet,
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
* measured by the on-die thermal monitor are within 0 <= Tj <= 90. So, * measured by the on-die thermal monitor are within 0 <= Tj <= 90. So,
* assume 89°C is critical temperature. * assume 89°C is critical temperature.
*/ */
#define ACERHDF_TEMP_CRIT 89 #define ACERHDF_TEMP_CRIT 89000
#define ACERHDF_FAN_OFF 0 #define ACERHDF_FAN_OFF 0
#define ACERHDF_FAN_AUTO 1 #define ACERHDF_FAN_AUTO 1
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
* No matter what value the user puts into the fanon variable, turn on the fan * No matter what value the user puts into the fanon variable, turn on the fan
* at 80 degree Celsius to prevent hardware damage * at 80 degree Celsius to prevent hardware damage
*/ */
#define ACERHDF_MAX_FANON 80 #define ACERHDF_MAX_FANON 80000
/* /*
* Maximum interval between two temperature checks is 15 seconds, as the die * Maximum interval between two temperature checks is 15 seconds, as the die
...@@ -85,8 +85,8 @@ static int kernelmode; ...@@ -85,8 +85,8 @@ static int kernelmode;
#endif #endif
static unsigned int interval = 10; static unsigned int interval = 10;
static unsigned int fanon = 63; static unsigned int fanon = 63000;
static unsigned int fanoff = 58; static unsigned int fanoff = 58000;
static unsigned int verbose; static unsigned int verbose;
static unsigned int fanstate = ACERHDF_FAN_AUTO; static unsigned int fanstate = ACERHDF_FAN_AUTO;
static char force_bios[16]; static char force_bios[16];
...@@ -171,7 +171,7 @@ static int acerhdf_get_temp(int *temp) ...@@ -171,7 +171,7 @@ static int acerhdf_get_temp(int *temp)
if (ec_read(bios_cfg->tempreg, &read_temp)) if (ec_read(bios_cfg->tempreg, &read_temp))
return -EINVAL; return -EINVAL;
*temp = read_temp; *temp = read_temp * 1000;
return 0; return 0;
} }
......
...@@ -1680,36 +1680,48 @@ static void tpacpi_remove_driver_attributes(struct device_driver *drv) ...@@ -1680,36 +1680,48 @@ static void tpacpi_remove_driver_attributes(struct device_driver *drv)
| (__bv1) << 8 | (__bv2) } | (__bv1) << 8 | (__bv2) }
#define TPV_Q_X(__v, __bid1, __bid2, __bv1, __bv2, \ #define TPV_Q_X(__v, __bid1, __bid2, __bv1, __bv2, \
__eid1, __eid2, __ev1, __ev2) \ __eid, __ev1, __ev2) \
{ .vendor = (__v), \ { .vendor = (__v), \
.bios = TPID(__bid1, __bid2), \ .bios = TPID(__bid1, __bid2), \
.ec = TPID(__eid1, __eid2), \ .ec = __eid, \
.quirks = (__ev1) << 24 | (__ev2) << 16 \ .quirks = (__ev1) << 24 | (__ev2) << 16 \
| (__bv1) << 8 | (__bv2) } | (__bv1) << 8 | (__bv2) }
#define TPV_QI0(__id1, __id2, __bv1, __bv2) \ #define TPV_QI0(__id1, __id2, __bv1, __bv2) \
TPV_Q(PCI_VENDOR_ID_IBM, __id1, __id2, __bv1, __bv2) TPV_Q(PCI_VENDOR_ID_IBM, __id1, __id2, __bv1, __bv2)
/* Outdated IBM BIOSes often lack the EC id string */
#define TPV_QI1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \ #define TPV_QI1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, \ TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, \
__bv1, __bv2, __id1, __id2, __ev1, __ev2) __bv1, __bv2, TPID(__id1, __id2), \
__ev1, __ev2), \
TPV_Q_X(PCI_VENDOR_ID_IBM, __id1, __id2, \
__bv1, __bv2, TPACPI_MATCH_UNKNOWN, \
__ev1, __ev2)
/* Outdated IBM BIOSes often lack the EC id string */
#define TPV_QI2(__bid1, __bid2, __bv1, __bv2, \ #define TPV_QI2(__bid1, __bid2, __bv1, __bv2, \
__eid1, __eid2, __ev1, __ev2) \ __eid1, __eid2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, \ TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, \
__bv1, __bv2, __eid1, __eid2, __ev1, __ev2) __bv1, __bv2, TPID(__eid1, __eid2), \
__ev1, __ev2), \
TPV_Q_X(PCI_VENDOR_ID_IBM, __bid1, __bid2, \
__bv1, __bv2, TPACPI_MATCH_UNKNOWN, \
__ev1, __ev2)
#define TPV_QL0(__id1, __id2, __bv1, __bv2) \ #define TPV_QL0(__id1, __id2, __bv1, __bv2) \
TPV_Q(PCI_VENDOR_ID_LENOVO, __id1, __id2, __bv1, __bv2) TPV_Q(PCI_VENDOR_ID_LENOVO, __id1, __id2, __bv1, __bv2)
#define TPV_QL1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \ #define TPV_QL1(__id1, __id2, __bv1, __bv2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_LENOVO, __id1, __id2, \ TPV_Q_X(PCI_VENDOR_ID_LENOVO, __id1, __id2, \
__bv1, __bv2, __id1, __id2, __ev1, __ev2) __bv1, __bv2, TPID(__id1, __id2), \
__ev1, __ev2)
#define TPV_QL2(__bid1, __bid2, __bv1, __bv2, \ #define TPV_QL2(__bid1, __bid2, __bv1, __bv2, \
__eid1, __eid2, __ev1, __ev2) \ __eid1, __eid2, __ev1, __ev2) \
TPV_Q_X(PCI_VENDOR_ID_LENOVO, __bid1, __bid2, \ TPV_Q_X(PCI_VENDOR_ID_LENOVO, __bid1, __bid2, \
__bv1, __bv2, __eid1, __eid2, __ev1, __ev2) __bv1, __bv2, TPID(__eid1, __eid2), \
__ev1, __ev2)
static const struct tpacpi_quirk tpacpi_bios_version_qtable[] __initconst = { static const struct tpacpi_quirk tpacpi_bios_version_qtable[] __initconst = {
/* Numeric models ------------------ */ /* Numeric models ------------------ */
...@@ -6313,7 +6325,7 @@ static int brightness_write(char *buf) ...@@ -6313,7 +6325,7 @@ static int brightness_write(char *buf)
* Doing it this way makes the syscall restartable in case of EINTR * Doing it this way makes the syscall restartable in case of EINTR
*/ */
rc = brightness_set(level); rc = brightness_set(level);
return (rc == -EINTR)? ERESTARTSYS : rc; return (rc == -EINTR)? -ERESTARTSYS : rc;
} }
static struct ibm_struct brightness_driver_data = { static struct ibm_struct brightness_driver_data = {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册