aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/serio
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2007-10-12 21:27:47 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2007-10-12 21:27:47 -0400
commitb981d8b3f5e008ff10d993be633ad00564fc22cd (patch)
treee292dc07b22308912cf6a58354a608b9e5e8e1fd /drivers/input/serio
parentb11d2127c4893a7315d1e16273bc8560049fa3ca (diff)
parent2b9e0aae1d50e880c58d46788e5e3ebd89d75d62 (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/Kconfig2
-rw-r--r--drivers/input/serio/ambakmi.c6
-rw-r--r--drivers/input/serio/gscps2.c6
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h10
-rw-r--r--drivers/input/serio/i8042.c6
-rw-r--r--drivers/input/serio/pcips2.c6
-rw-r--r--drivers/input/serio/sa1111ps2.c6
-rw-r--r--drivers/input/serio/serio.c11
8 files changed, 26 insertions, 27 deletions
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
index adef447f23ea..5ce632ca6815 100644
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -21,7 +21,7 @@ if SERIO
21config SERIO_I8042 21config 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 5a7b49c35539..b10ffae7c39b 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 74f14e097789..3e99df6be084 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 702a526cf45b..f8fe42148093 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 42aa4ec72661..11dafc0ee994 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
1045static void __devinit i8042_unregister_ports(void) 1047static 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 ea5e3c6ddb62..1b404f9e3bff 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 d31ece8f68e9..2ad88780a170 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 372ca4931194..b3bc15acd3f5 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
886static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size) 884static 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
911static int serio_uevent(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size) 906static int serio_uevent(struct device *dev, struct kobj_uevent_env *env)
912{ 907{
913 return -ENODEV; 908 return -ENODEV;
914} 909}