From 62b7ee19759bec4c280a450784a68fc189cbbcbb Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 12 Sep 2007 10:15:59 +0200 Subject: [PATCH] --- yaml --- r: 64894 b: refs/heads/master c: 2cc7345ff71b27b5ac99e49ad7de39360042f601 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/sparc64/kernel/pci.c | 13 ++++++++++++- trunk/drivers/input/serio/i8042-x86ia64io.h | 10 ---------- trunk/drivers/input/serio/i8042.c | 2 +- trunk/drivers/input/touchscreen/usbtouchscreen.c | 2 +- trunk/include/linux/input.h | 2 -- trunk/include/linux/keyboard.h | 4 +--- 7 files changed, 16 insertions(+), 19 deletions(-) diff --git a/[refs] b/[refs] index 5f59bd96dd0b..4f5a33c2b973 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 532df780a2012ad75b3f078647f229c4dabd99d1 +refs/heads/master: 2cc7345ff71b27b5ac99e49ad7de39360042f601 diff --git a/trunk/arch/sparc64/kernel/pci.c b/trunk/arch/sparc64/kernel/pci.c index 139b4cff8019..e8dac81d8a0d 100644 --- a/trunk/arch/sparc64/kernel/pci.c +++ b/trunk/arch/sparc64/kernel/pci.c @@ -744,7 +744,7 @@ static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm, { struct device_node *child; const u32 *reg; - int reglen, devfn; + int reglen, devfn, prev_devfn; struct pci_dev *dev; if (ofpci_verbose) @@ -752,14 +752,25 @@ static void __devinit pci_of_scan_bus(struct pci_pbm_info *pbm, node->full_name, bus->number); child = NULL; + prev_devfn = -1; while ((child = of_get_next_child(node, child)) != NULL) { if (ofpci_verbose) printk(" * %s\n", child->full_name); reg = of_get_property(child, "reg", ®len); if (reg == NULL || reglen < 20) continue; + devfn = (reg[0] >> 8) & 0xff; + /* This is a workaround for some device trees + * which list PCI devices twice. On the V100 + * for example, device number 3 is listed twice. + * Once as "pm" and once again as "lomp". + */ + if (devfn == prev_devfn) + continue; + prev_devfn = devfn; + /* create a new pci_dev for this device */ dev = of_create_pci_dev(pbm, child, bus, devfn, 0); if (!dev) diff --git a/trunk/drivers/input/serio/i8042-x86ia64io.h b/trunk/drivers/input/serio/i8042-x86ia64io.h index f8fe42148093..702a526cf45b 100644 --- a/trunk/drivers/input/serio/i8042-x86ia64io.h +++ b/trunk/drivers/input/serio/i8042-x86ia64io.h @@ -210,16 +210,6 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"), }, }, - { - /* - * Like DV4017EA does not raise AUXERR for errors on MUX ports. - */ - .ident = "HP Pavilion DV4270ca", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), - DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EH476UA#ABL)"), - }, - }, { .ident = "Toshiba P10", .matches = { diff --git a/trunk/drivers/input/serio/i8042.c b/trunk/drivers/input/serio/i8042.c index c2eea2767e10..06b05dd22485 100644 --- a/trunk/drivers/input/serio/i8042.c +++ b/trunk/drivers/input/serio/i8042.c @@ -1040,7 +1040,7 @@ static void __devinit i8042_register_ports(void) } } -static void __devexit i8042_unregister_ports(void) +static void __devinit i8042_unregister_ports(void) { int i; diff --git a/trunk/drivers/input/touchscreen/usbtouchscreen.c b/trunk/drivers/input/touchscreen/usbtouchscreen.c index 741f6c6f1e50..b407028ffc59 100644 --- a/trunk/drivers/input/touchscreen/usbtouchscreen.c +++ b/trunk/drivers/input/touchscreen/usbtouchscreen.c @@ -767,7 +767,7 @@ static int usbtouch_probe(struct usb_interface *intf, le16_to_cpu(udev->descriptor.idProduct)); usb_make_path(udev, usbtouch->phys, sizeof(usbtouch->phys)); - strlcat(usbtouch->phys, "/input0", sizeof(usbtouch->phys)); + strlcpy(usbtouch->phys, "/input0", sizeof(usbtouch->phys)); input_dev->name = usbtouch->name; input_dev->phys = usbtouch->phys; diff --git a/trunk/include/linux/input.h b/trunk/include/linux/input.h index 36e00aa6f03b..cf2b5619aa13 100644 --- a/trunk/include/linux/input.h +++ b/trunk/include/linux/input.h @@ -558,8 +558,6 @@ struct input_absinfo { #define KEY_BRL_DOT6 0x1f6 #define KEY_BRL_DOT7 0x1f7 #define KEY_BRL_DOT8 0x1f8 -#define KEY_BRL_DOT9 0x1f9 -#define KEY_BRL_DOT10 0x1fa /* We avoid low common keys in module aliases so they don't get huge. */ #define KEY_MIN_INTERESTING KEY_MUTE diff --git a/trunk/include/linux/keyboard.h b/trunk/include/linux/keyboard.h index 7ddbc30aa8e7..de76843bbe8a 100644 --- a/trunk/include/linux/keyboard.h +++ b/trunk/include/linux/keyboard.h @@ -437,10 +437,8 @@ extern unsigned short plain_map[NR_KEYS]; #define K_BRL_DOT6 K(KT_BRL, 6) #define K_BRL_DOT7 K(KT_BRL, 7) #define K_BRL_DOT8 K(KT_BRL, 8) -#define K_BRL_DOT9 K(KT_BRL, 9) -#define K_BRL_DOT10 K(KT_BRL, 10) -#define NR_BRL 11 +#define NR_BRL 9 #define MAX_DIACR 256 #endif