git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
drivers
/
input
/
serio
/
hil_mlc.c
diff --git
a/drivers/input/serio/hil_mlc.c
b/drivers/input/serio/hil_mlc.c
index
c243cb6
..
bbbe15e
100644
(file)
--- a/
drivers/input/serio/hil_mlc.c
+++ b/
drivers/input/serio/hil_mlc.c
@@
-556,7
+556,7
@@
static inline void hilse_setup_input(hil_mlc *mlc, struct hilse_node *node) {
do_gettimeofday(&(mlc->instart));
mlc->icount = 15;
memset(mlc->ipacket, 0, 16 * sizeof(hil_packet));
do_gettimeofday(&(mlc->instart));
mlc->icount = 15;
memset(mlc->ipacket, 0, 16 * sizeof(hil_packet));
-
if (down_trylock(&(mlc->isem))) BUG(
);
+
BUG_ON(down_trylock(&(mlc->isem))
);
return;
}
return;
}
@@
-801,7
+801,8
@@
static int hil_mlc_serio_open(struct serio *serio) {
struct hil_mlc_serio_map *map;
struct hil_mlc *mlc;
struct hil_mlc_serio_map *map;
struct hil_mlc *mlc;
- if (serio->private != NULL) return -EBUSY;
+ if (serio_get_drvdata(serio) != NULL)
+ return -EBUSY;
map = serio->port_data;
if (map == NULL) {
map = serio->port_data;
if (map == NULL) {
@@
-832,11
+833,18
@@
static void hil_mlc_serio_close(struct serio *serio) {
return;
}
return;
}
- serio
->private = NULL
;
+ serio
_set_drvdata(serio, NULL)
;
serio->drv = NULL;
/* TODO wake up interruptable */
}
serio->drv = NULL;
/* TODO wake up interruptable */
}
+static struct serio_device_id hil_mlc_serio_id = {
+ .type = SERIO_HIL_MLC,
+ .proto = SERIO_HIL,
+ .extra = SERIO_ANY,
+ .id = SERIO_ANY,
+};
+
int hil_mlc_register(hil_mlc *mlc) {
int i;
unsigned long flags;
int hil_mlc_register(hil_mlc *mlc) {
int i;
unsigned long flags;
@@
-864,10
+872,9
@@
int hil_mlc_register(hil_mlc *mlc) {
for (i = 0; i < HIL_MLC_DEVMEM; i++) {
struct serio *mlc_serio;
hil_mlc_copy_di_scratch(mlc, i);
for (i = 0; i < HIL_MLC_DEVMEM; i++) {
struct serio *mlc_serio;
hil_mlc_copy_di_scratch(mlc, i);
- mlc_serio = k
m
alloc(sizeof(*mlc_serio), GFP_KERNEL);
+ mlc_serio = k
z
alloc(sizeof(*mlc_serio), GFP_KERNEL);
mlc->serio[i] = mlc_serio;
mlc->serio[i] = mlc_serio;
- memset(mlc_serio, 0, sizeof(*mlc_serio));
- mlc_serio->type = SERIO_HIL | SERIO_HIL_MLC;
+ mlc_serio->id = hil_mlc_serio_id;
mlc_serio->write = hil_mlc_serio_write;
mlc_serio->open = hil_mlc_serio_open;
mlc_serio->close = hil_mlc_serio_close;
mlc_serio->write = hil_mlc_serio_write;
mlc_serio->open = hil_mlc_serio_open;
mlc_serio->close = hil_mlc_serio_close;