Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 161295
b: refs/heads/master
c: 1c7827a
h: refs/heads/master
i:
  161293: d1fa173
  161291: c08e75e
  161287: 5434b57
  161279: db096d3
v: v3
  • Loading branch information
Dmitry Torokhov committed Sep 11, 2009
1 parent 61adf32 commit 1a1b765
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 2 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: 41c372dcad935fe7c27ec45211bad810515110bd
refs/heads/master: 1c7827ae70e7c8456e08f7bb9ef2238d27814cbe
33 changes: 33 additions & 0 deletions trunk/drivers/input/serio/i8042-x86ia64io.h
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,34 @@ static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = {
},
{ }
};

static struct dmi_system_id __initdata i8042_dmi_laptop_table[] = {
{
.ident = "Portable",
.matches = {
DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */
},
},
{
.ident = "Laptop",
.matches = {
DMI_MATCH(DMI_CHASSIS_TYPE, "9"), /* Laptop */
},
},
{
.ident = "Notebook",
.matches = {
DMI_MATCH(DMI_CHASSIS_TYPE, "10"), /* Notebook */
},
},
{
.ident = "Sub-Notebook",
.matches = {
DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */
},
},
{ }
};
#endif

/*
Expand Down Expand Up @@ -727,6 +755,11 @@ static int __init i8042_pnp_init(void)
i8042_kbd_irq = i8042_pnp_kbd_irq;
i8042_aux_irq = i8042_pnp_aux_irq;

#ifdef CONFIG_X86
i8042_bypass_aux_irq_test = !pnp_data_busted &&
dmi_check_system(i8042_dmi_laptop_table);
#endif

return 0;
}

Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/input/serio/i8042.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ module_param_named(debug, i8042_debug, bool, 0600);
MODULE_PARM_DESC(debug, "Turn i8042 debugging mode on and off");
#endif

static bool i8042_bypass_aux_irq_test;

#include "i8042.h"

static DEFINE_SPINLOCK(i8042_lock);
Expand Down Expand Up @@ -641,7 +643,7 @@ static int __devinit i8042_check_aux(void)
* used it for a PCI card or somethig else.
*/

if (i8042_noloop || aux_loop_broken) {
if (i8042_noloop || i8042_bypass_aux_irq_test || aux_loop_broken) {
/*
* Without LOOP command we can't test AUX IRQ delivery. Assume the port
* is working and hope we are right.
Expand Down

0 comments on commit 1a1b765

Please sign in to comment.