Merge branch 'misc' into release
This commit is contained in:
commit
8a3f257c70
|
@ -4291,10 +4291,7 @@ W: http://sourceforge.net/projects/tlan/
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
||||||
TOSHIBA ACPI EXTRAS DRIVER
|
TOSHIBA ACPI EXTRAS DRIVER
|
||||||
P: John Belmonte
|
S: Orphan
|
||||||
M: toshiba_acpi@memebeam.org
|
|
||||||
W: http://memebeam.org/toys/ToshibaAcpiDriver
|
|
||||||
S: Maintained
|
|
||||||
|
|
||||||
TOSHIBA SMM DRIVER
|
TOSHIBA SMM DRIVER
|
||||||
P: Jonathan Buzzard
|
P: Jonathan Buzzard
|
||||||
|
|
|
@ -1548,7 +1548,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If your system is blacklisted here, but you find that acpi=force
|
* If your system is blacklisted here, but you find that acpi=force
|
||||||
* works for you, please contact acpi-devel@sourceforge.net
|
* works for you, please contact linux-acpi@vger.kernel.org
|
||||||
*/
|
*/
|
||||||
static struct dmi_system_id __initdata acpi_dmi_table[] = {
|
static struct dmi_system_id __initdata acpi_dmi_table[] = {
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -680,6 +680,18 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
|
||||||
perf->states[i].transition_latency * 1000;
|
perf->states[i].transition_latency * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check for high latency (>20uS) from buggy BIOSes, like on T42 */
|
||||||
|
if (perf->control_register.space_id == ACPI_ADR_SPACE_FIXED_HARDWARE &&
|
||||||
|
policy->cpuinfo.transition_latency > 20 * 1000) {
|
||||||
|
static int print_once;
|
||||||
|
policy->cpuinfo.transition_latency = 20 * 1000;
|
||||||
|
if (!print_once) {
|
||||||
|
print_once = 1;
|
||||||
|
printk(KERN_INFO "Capping off P-state tranision latency"
|
||||||
|
" at 20 uS\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data->max_freq = perf->states[0].core_frequency * 1000;
|
data->max_freq = perf->states[0].core_frequency * 1000;
|
||||||
/* table init */
|
/* table init */
|
||||||
for (i=0; i<perf->state_count; i++) {
|
for (i=0; i<perf->state_count; i++) {
|
||||||
|
|
|
@ -1146,9 +1146,10 @@ static int __init dock_init(void)
|
||||||
static void __exit dock_exit(void)
|
static void __exit dock_exit(void)
|
||||||
{
|
{
|
||||||
struct dock_station *dock_station;
|
struct dock_station *dock_station;
|
||||||
|
struct dock_station *tmp;
|
||||||
|
|
||||||
unregister_acpi_bus_notifier(&dock_acpi_notifier);
|
unregister_acpi_bus_notifier(&dock_acpi_notifier);
|
||||||
list_for_each_entry(dock_station, &dock_stations, sibiling)
|
list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibiling)
|
||||||
dock_remove(dock_station);
|
dock_remove(dock_station);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ static struct acpi_prt_entry *acpi_pci_irq_find_prt_entry(struct pci_dev *dev,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* http://bugzilla.kernel.org/show_bug.cgi?id=4773 */
|
/* http://bugzilla.kernel.org/show_bug.cgi?id=4773 */
|
||||||
static struct dmi_system_id medion_md9580[] = {
|
static const struct dmi_system_id medion_md9580[] = {
|
||||||
{
|
{
|
||||||
.ident = "Medion MD9580-F laptop",
|
.ident = "Medion MD9580-F laptop",
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -98,7 +98,7 @@ static struct dmi_system_id medion_md9580[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* http://bugzilla.kernel.org/show_bug.cgi?id=5044 */
|
/* http://bugzilla.kernel.org/show_bug.cgi?id=5044 */
|
||||||
static struct dmi_system_id dell_optiplex[] = {
|
static const struct dmi_system_id dell_optiplex[] = {
|
||||||
{
|
{
|
||||||
.ident = "Dell Optiplex GX1",
|
.ident = "Dell Optiplex GX1",
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -110,7 +110,7 @@ static struct dmi_system_id dell_optiplex[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* http://bugzilla.kernel.org/show_bug.cgi?id=10138 */
|
/* http://bugzilla.kernel.org/show_bug.cgi?id=10138 */
|
||||||
static struct dmi_system_id hp_t5710[] = {
|
static const struct dmi_system_id hp_t5710[] = {
|
||||||
{
|
{
|
||||||
.ident = "HP t5710",
|
.ident = "HP t5710",
|
||||||
.matches = {
|
.matches = {
|
||||||
|
@ -123,13 +123,13 @@ static struct dmi_system_id hp_t5710[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct prt_quirk {
|
struct prt_quirk {
|
||||||
struct dmi_system_id *system;
|
const struct dmi_system_id *system;
|
||||||
unsigned int segment;
|
unsigned int segment;
|
||||||
unsigned int bus;
|
unsigned int bus;
|
||||||
unsigned int device;
|
unsigned int device;
|
||||||
unsigned char pin;
|
unsigned char pin;
|
||||||
char *source; /* according to BIOS */
|
const char *source; /* according to BIOS */
|
||||||
char *actual_source;
|
const char *actual_source;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define PCI_INTX_PIN(c) (c - 'A' + 1)
|
#define PCI_INTX_PIN(c) (c - 'A' + 1)
|
||||||
|
@ -139,7 +139,7 @@ struct prt_quirk {
|
||||||
* interrupt at the listed segment/bus/device/pin is connected to the first
|
* interrupt at the listed segment/bus/device/pin is connected to the first
|
||||||
* link device, but it is actually connected to the second.
|
* link device, but it is actually connected to the second.
|
||||||
*/
|
*/
|
||||||
static struct prt_quirk prt_quirks[] = {
|
static const struct prt_quirk prt_quirks[] = {
|
||||||
{ medion_md9580, 0, 0, 9, PCI_INTX_PIN('A'),
|
{ medion_md9580, 0, 0, 9, PCI_INTX_PIN('A'),
|
||||||
"\\_SB_.PCI0.ISA_.LNKA",
|
"\\_SB_.PCI0.ISA_.LNKA",
|
||||||
"\\_SB_.PCI0.ISA_.LNKB"},
|
"\\_SB_.PCI0.ISA_.LNKB"},
|
||||||
|
@ -155,7 +155,7 @@ static void do_prt_fixups(struct acpi_prt_entry *entry,
|
||||||
struct acpi_pci_routing_table *prt)
|
struct acpi_pci_routing_table *prt)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct prt_quirk *quirk;
|
const struct prt_quirk *quirk;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(prt_quirks); i++) {
|
for (i = 0; i < ARRAY_SIZE(prt_quirks); i++) {
|
||||||
quirk = &prt_quirks[i];
|
quirk = &prt_quirks[i];
|
||||||
|
|
|
@ -783,11 +783,9 @@ static int acpi_get_throttling_state(struct acpi_processor *pr,
|
||||||
(struct acpi_processor_tx_tss *)&(pr->throttling.
|
(struct acpi_processor_tx_tss *)&(pr->throttling.
|
||||||
states_tss[i]);
|
states_tss[i]);
|
||||||
if (tx->control == value)
|
if (tx->control == value)
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (i > pr->throttling.state_count)
|
|
||||||
i = -1;
|
|
||||||
return i;
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int acpi_get_throttling_value(struct acpi_processor *pr,
|
static int acpi_get_throttling_value(struct acpi_processor *pr,
|
||||||
|
|
|
@ -396,6 +396,15 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L300"),
|
DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L300"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.callback = init_old_suspend_ordering,
|
||||||
|
.ident = "Panasonic CF51-2L",
|
||||||
|
.matches = {
|
||||||
|
DMI_MATCH(DMI_BOARD_VENDOR,
|
||||||
|
"Matsushita Electric Industrial Co.,Ltd."),
|
||||||
|
DMI_MATCH(DMI_BOARD_NAME, "CF51-2L"),
|
||||||
|
},
|
||||||
|
},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_SUSPEND */
|
#endif /* CONFIG_SUSPEND */
|
||||||
|
|
|
@ -184,6 +184,7 @@ static const struct acpi_device_id pcc_device_ids[] = {
|
||||||
{ "MAT0019", 0},
|
{ "MAT0019", 0},
|
||||||
{ "", 0},
|
{ "", 0},
|
||||||
};
|
};
|
||||||
|
MODULE_DEVICE_TABLE(acpi, pcc_device_ids);
|
||||||
|
|
||||||
static struct acpi_driver acpi_pcc_driver = {
|
static struct acpi_driver acpi_pcc_driver = {
|
||||||
.name = ACPI_PCC_DRIVER_NAME,
|
.name = ACPI_PCC_DRIVER_NAME,
|
||||||
|
@ -366,7 +367,7 @@ static ssize_t show_numbatt(struct device *dev, struct device_attribute *attr,
|
||||||
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]);
|
return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_lcdtype(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_lcdtype(struct device *dev, struct device_attribute *attr,
|
||||||
|
@ -378,7 +379,7 @@ static ssize_t show_lcdtype(struct device *dev, struct device_attribute *attr,
|
||||||
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", pcc->sinf[SINF_LCD_TYPE]);
|
return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_LCD_TYPE]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_mute(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_mute(struct device *dev, struct device_attribute *attr,
|
||||||
|
@ -390,7 +391,7 @@ static ssize_t show_mute(struct device *dev, struct device_attribute *attr,
|
||||||
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", pcc->sinf[SINF_MUTE]);
|
return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_MUTE]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t show_sticky(struct device *dev, struct device_attribute *attr,
|
static ssize_t show_sticky(struct device *dev, struct device_attribute *attr,
|
||||||
|
@ -402,7 +403,7 @@ static ssize_t show_sticky(struct device *dev, struct device_attribute *attr,
|
||||||
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
|
||||||
return sprintf(buf, "%u\n", pcc->sinf[SINF_STICKY_KEY]);
|
return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_STICKY_KEY]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t set_sticky(struct device *dev, struct device_attribute *attr,
|
static ssize_t set_sticky(struct device *dev, struct device_attribute *attr,
|
||||||
|
|
|
@ -94,9 +94,8 @@ static int get_state(u32 *out, u8 instance)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
obj = (union acpi_object *) result.pointer;
|
obj = (union acpi_object *) result.pointer;
|
||||||
if (obj && obj->type == ACPI_TYPE_BUFFER &&
|
if (obj && obj->type == ACPI_TYPE_INTEGER) {
|
||||||
obj->buffer.length == sizeof(u32)) {
|
tmp = obj->integer.value;
|
||||||
tmp = *((u32 *) obj->buffer.pointer);
|
|
||||||
} else {
|
} else {
|
||||||
tmp = 0;
|
tmp = 0;
|
||||||
}
|
}
|
||||||
|
@ -109,7 +108,7 @@ static int get_state(u32 *out, u8 instance)
|
||||||
*out = (tmp == 3) ? 1 : 0;
|
*out = (tmp == 3) ? 1 : 0;
|
||||||
return 0;
|
return 0;
|
||||||
case TC1100_INSTANCE_JOGDIAL:
|
case TC1100_INSTANCE_JOGDIAL:
|
||||||
*out = (tmp == 1) ? 1 : 0;
|
*out = (tmp == 1) ? 0 : 1;
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
Loading…
Reference in New Issue