diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
| commit | b981d8b3f5e008ff10d993be633ad00564fc22cd (patch) | |
| tree | e292dc07b22308912cf6a58354a608b9e5e8e1fd /drivers/input/serio | |
| parent | b11d2127c4893a7315d1e16273bc8560049fa3ca (diff) | |
| parent | 2b9e0aae1d50e880c58d46788e5e3ebd89d75d62 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/macintosh/adbhid.c
Diffstat (limited to 'drivers/input/serio')
| -rw-r--r-- | drivers/input/serio/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/input/serio/ambakmi.c | 6 | ||||
| -rw-r--r-- | drivers/input/serio/gscps2.c | 6 | ||||
| -rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 10 | ||||
| -rw-r--r-- | drivers/input/serio/i8042.c | 6 | ||||
| -rw-r--r-- | drivers/input/serio/pcips2.c | 6 | ||||
| -rw-r--r-- | drivers/input/serio/sa1111ps2.c | 6 | ||||
| -rw-r--r-- | drivers/input/serio/serio.c | 11 |
8 files changed, 26 insertions, 27 deletions
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index adef447f23..5ce632ca68 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig | |||
| @@ -21,7 +21,7 @@ if SERIO | |||
| 21 | config SERIO_I8042 | 21 | config SERIO_I8042 |
| 22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 | 22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 |
| 23 | default y | 23 | default y |
| 24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K | 24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K && !BFIN |
| 25 | ---help--- | 25 | ---help--- |
| 26 | i8042 is the chip over which the standard AT keyboard and PS/2 | 26 | i8042 is the chip over which the standard AT keyboard and PS/2 |
| 27 | mouse are connected to the computer. If you use these devices, | 27 | mouse are connected to the computer. If you use these devices, |
diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c index 5a7b49c355..b10ffae7c3 100644 --- a/drivers/input/serio/ambakmi.c +++ b/drivers/input/serio/ambakmi.c | |||
| @@ -117,15 +117,13 @@ static int amba_kmi_probe(struct amba_device *dev, void *id) | |||
| 117 | if (ret) | 117 | if (ret) |
| 118 | return ret; | 118 | return ret; |
| 119 | 119 | ||
| 120 | kmi = kmalloc(sizeof(struct amba_kmi_port), GFP_KERNEL); | 120 | kmi = kzalloc(sizeof(struct amba_kmi_port), GFP_KERNEL); |
| 121 | io = kmalloc(sizeof(struct serio), GFP_KERNEL); | 121 | io = kzalloc(sizeof(struct serio), GFP_KERNEL); |
| 122 | if (!kmi || !io) { | 122 | if (!kmi || !io) { |
| 123 | ret = -ENOMEM; | 123 | ret = -ENOMEM; |
| 124 | goto out; | 124 | goto out; |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | memset(kmi, 0, sizeof(struct amba_kmi_port)); | ||
| 128 | memset(io, 0, sizeof(struct serio)); | ||
| 129 | 127 | ||
| 130 | io->id.type = SERIO_8042; | 128 | io->id.type = SERIO_8042; |
| 131 | io->write = amba_kmi_write; | 129 | io->write = amba_kmi_write; |
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c index 74f14e0977..3e99df6be0 100644 --- a/drivers/input/serio/gscps2.c +++ b/drivers/input/serio/gscps2.c | |||
| @@ -340,8 +340,8 @@ static int __init gscps2_probe(struct parisc_device *dev) | |||
| 340 | if (dev->id.sversion == 0x96) | 340 | if (dev->id.sversion == 0x96) |
| 341 | hpa += GSC_DINO_OFFSET; | 341 | hpa += GSC_DINO_OFFSET; |
| 342 | 342 | ||
| 343 | ps2port = kmalloc(sizeof(struct gscps2port), GFP_KERNEL); | 343 | ps2port = kzalloc(sizeof(struct gscps2port), GFP_KERNEL); |
| 344 | serio = kmalloc(sizeof(struct serio), GFP_KERNEL); | 344 | serio = kzalloc(sizeof(struct serio), GFP_KERNEL); |
| 345 | if (!ps2port || !serio) { | 345 | if (!ps2port || !serio) { |
| 346 | ret = -ENOMEM; | 346 | ret = -ENOMEM; |
| 347 | goto fail_nomem; | 347 | goto fail_nomem; |
| @@ -349,8 +349,6 @@ static int __init gscps2_probe(struct parisc_device *dev) | |||
| 349 | 349 | ||
| 350 | dev_set_drvdata(&dev->dev, ps2port); | 350 | dev_set_drvdata(&dev->dev, ps2port); |
| 351 | 351 | ||
| 352 | memset(ps2port, 0, sizeof(struct gscps2port)); | ||
| 353 | memset(serio, 0, sizeof(struct serio)); | ||
| 354 | ps2port->port = serio; | 352 | ps2port->port = serio; |
| 355 | ps2port->padev = dev; | 353 | ps2port->padev = dev; |
| 356 | ps2port->addr = ioremap_nocache(hpa, GSC_STATUS + 4); | 354 | ps2port->addr = ioremap_nocache(hpa, GSC_STATUS + 4); |
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 702a526cf4..f8fe421480 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
| @@ -211,6 +211,16 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
| 211 | }, | 211 | }, |
| 212 | }, | 212 | }, |
| 213 | { | 213 | { |
| 214 | /* | ||
| 215 | * Like DV4017EA does not raise AUXERR for errors on MUX ports. | ||
| 216 | */ | ||
| 217 | .ident = "HP Pavilion DV4270ca", | ||
| 218 | .matches = { | ||
| 219 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
| 220 | DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion dv4000 (EH476UA#ABL)"), | ||
| 221 | }, | ||
| 222 | }, | ||
| 223 | { | ||
| 214 | .ident = "Toshiba P10", | 224 | .ident = "Toshiba P10", |
| 215 | .matches = { | 225 | .matches = { |
| 216 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | 226 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), |
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 42aa4ec726..11dafc0ee9 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
| @@ -516,6 +516,7 @@ static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id) | |||
| 516 | { | 516 | { |
| 517 | unsigned long flags; | 517 | unsigned long flags; |
| 518 | unsigned char str, data; | 518 | unsigned char str, data; |
| 519 | int ret = 0; | ||
| 519 | 520 | ||
| 520 | spin_lock_irqsave(&i8042_lock, flags); | 521 | spin_lock_irqsave(&i8042_lock, flags); |
| 521 | str = i8042_read_status(); | 522 | str = i8042_read_status(); |
| @@ -524,10 +525,11 @@ static irqreturn_t __devinit i8042_aux_test_irq(int irq, void *dev_id) | |||
| 524 | if (i8042_irq_being_tested && | 525 | if (i8042_irq_being_tested && |
| 525 | data == 0xa5 && (str & I8042_STR_AUXDATA)) | 526 | data == 0xa5 && (str & I8042_STR_AUXDATA)) |
| 526 | complete(&i8042_aux_irq_delivered); | 527 | complete(&i8042_aux_irq_delivered); |
| 528 | ret = 1; | ||
| 527 | } | 529 | } |
| 528 | spin_unlock_irqrestore(&i8042_lock, flags); | 530 | spin_unlock_irqrestore(&i8042_lock, flags); |
| 529 | 531 | ||
| 530 | return IRQ_HANDLED; | 532 | return IRQ_RETVAL(ret); |
| 531 | } | 533 | } |
| 532 | 534 | ||
| 533 | /* | 535 | /* |
| @@ -1042,7 +1044,7 @@ static void __devinit i8042_register_ports(void) | |||
| 1042 | } | 1044 | } |
| 1043 | } | 1045 | } |
| 1044 | 1046 | ||
| 1045 | static void __devinit i8042_unregister_ports(void) | 1047 | static void __devexit i8042_unregister_ports(void) |
| 1046 | { | 1048 | { |
| 1047 | int i; | 1049 | int i; |
| 1048 | 1050 | ||
diff --git a/drivers/input/serio/pcips2.c b/drivers/input/serio/pcips2.c index ea5e3c6ddb..1b404f9e3b 100644 --- a/drivers/input/serio/pcips2.c +++ b/drivers/input/serio/pcips2.c | |||
| @@ -140,15 +140,13 @@ static int __devinit pcips2_probe(struct pci_dev *dev, const struct pci_device_i | |||
| 140 | if (ret) | 140 | if (ret) |
| 141 | goto disable; | 141 | goto disable; |
| 142 | 142 | ||
| 143 | ps2if = kmalloc(sizeof(struct pcips2_data), GFP_KERNEL); | 143 | ps2if = kzalloc(sizeof(struct pcips2_data), GFP_KERNEL); |
| 144 | serio = kmalloc(sizeof(struct serio), GFP_KERNEL); | 144 | serio = kzalloc(sizeof(struct serio), GFP_KERNEL); |
| 145 | if (!ps2if || !serio) { | 145 | if (!ps2if || !serio) { |
| 146 | ret = -ENOMEM; | 146 | ret = -ENOMEM; |
| 147 | goto release; | 147 | goto release; |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | memset(ps2if, 0, sizeof(struct pcips2_data)); | ||
| 151 | memset(serio, 0, sizeof(struct serio)); | ||
| 152 | 150 | ||
| 153 | serio->id.type = SERIO_8042; | 151 | serio->id.type = SERIO_8042; |
| 154 | serio->write = pcips2_write; | 152 | serio->write = pcips2_write; |
diff --git a/drivers/input/serio/sa1111ps2.c b/drivers/input/serio/sa1111ps2.c index d31ece8f68..2ad88780a1 100644 --- a/drivers/input/serio/sa1111ps2.c +++ b/drivers/input/serio/sa1111ps2.c | |||
| @@ -234,15 +234,13 @@ static int __devinit ps2_probe(struct sa1111_dev *dev) | |||
| 234 | struct serio *serio; | 234 | struct serio *serio; |
| 235 | int ret; | 235 | int ret; |
| 236 | 236 | ||
| 237 | ps2if = kmalloc(sizeof(struct ps2if), GFP_KERNEL); | 237 | ps2if = kzalloc(sizeof(struct ps2if), GFP_KERNEL); |
| 238 | serio = kmalloc(sizeof(struct serio), GFP_KERNEL); | 238 | serio = kzalloc(sizeof(struct serio), GFP_KERNEL); |
| 239 | if (!ps2if || !serio) { | 239 | if (!ps2if || !serio) { |
| 240 | ret = -ENOMEM; | 240 | ret = -ENOMEM; |
| 241 | goto free; | 241 | goto free; |
| 242 | } | 242 | } |
| 243 | 243 | ||
| 244 | memset(ps2if, 0, sizeof(struct ps2if)); | ||
| 245 | memset(serio, 0, sizeof(struct serio)); | ||
| 246 | 244 | ||
| 247 | serio->id.type = SERIO_8042; | 245 | serio->id.type = SERIO_8042; |
| 248 | serio->write = ps2_write; | 246 | serio->write = ps2_write; |
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c index 372ca49311..b3bc15acd3 100644 --- a/drivers/input/serio/serio.c +++ b/drivers/input/serio/serio.c | |||
| @@ -876,18 +876,14 @@ static int serio_bus_match(struct device *dev, struct device_driver *drv) | |||
| 876 | 876 | ||
| 877 | #define SERIO_ADD_UEVENT_VAR(fmt, val...) \ | 877 | #define SERIO_ADD_UEVENT_VAR(fmt, val...) \ |
| 878 | do { \ | 878 | do { \ |
| 879 | int err = add_uevent_var(envp, num_envp, &i, \ | 879 | int err = add_uevent_var(env, fmt, val); \ |
| 880 | buffer, buffer_size, &len, \ | ||
| 881 | fmt, val); \ | ||
| 882 | if (err) \ | 880 | if (err) \ |
| 883 | return err; \ | 881 | return err; \ |
| 884 | } while (0) | 882 | } while (0) |
| 885 | 883 | ||
| 886 | static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size) | 884 | static int serio_uevent(struct device *dev, struct kobj_uevent_env *env) |
| 887 | { | 885 | { |
| 888 | struct serio *serio; | 886 | struct serio *serio; |
| 889 | int i = 0; | ||
| 890 | int len = 0; | ||
| 891 | 887 | ||
| 892 | if (!dev) | 888 | if (!dev) |
| 893 | return -ENODEV; | 889 | return -ENODEV; |
| @@ -900,7 +896,6 @@ static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buf | |||
| 900 | SERIO_ADD_UEVENT_VAR("SERIO_EXTRA=%02x", serio->id.extra); | 896 | SERIO_ADD_UEVENT_VAR("SERIO_EXTRA=%02x", serio->id.extra); |
| 901 | SERIO_ADD_UEVENT_VAR("MODALIAS=serio:ty%02Xpr%02Xid%02Xex%02X", | 897 | SERIO_ADD_UEVENT_VAR("MODALIAS=serio:ty%02Xpr%02Xid%02Xex%02X", |
| 902 | serio->id.type, serio->id.proto, serio->id.id, serio->id.extra); | 898 | serio->id.type, serio->id.proto, serio->id.id, serio->id.extra); |
| 903 | envp[i] = NULL; | ||
| 904 | 899 | ||
| 905 | return 0; | 900 | return 0; |
| 906 | } | 901 | } |
| @@ -908,7 +903,7 @@ static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buf | |||
| 908 | 903 | ||
| 909 | #else | 904 | #else |
| 910 | 905 | ||
| 911 | static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size) | 906 | static int serio_uevent(struct device *dev, struct kobj_uevent_env *env) |
| 912 | { | 907 | { |
| 913 | return -ENODEV; | 908 | return -ENODEV; |
| 914 | } | 909 | } |
