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
linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git]
/
drivers
/
input
/
serio
/
libps2.c
diff --git
a/drivers/input/serio/libps2.c
b/drivers/input/serio/libps2.c
index
79c97f9
..
d4c990f
100644
(file)
--- a/
drivers/input/serio/libps2.c
+++ b/
drivers/input/serio/libps2.c
@@
-84,7
+84,7
@@
void ps2_drain(struct ps2dev *ps2dev, int maxbytes, int timeout)
maxbytes = sizeof(ps2dev->cmdbuf);
}
maxbytes = sizeof(ps2dev->cmdbuf);
}
-
mutex_lock(&ps2dev->cmd_mutex
);
+
down(&ps2dev->cmd_sem
);
serio_pause_rx(ps2dev->serio);
ps2dev->flags = PS2_FLAG_CMD;
serio_pause_rx(ps2dev->serio);
ps2dev->flags = PS2_FLAG_CMD;
@@
-94,7
+94,7
@@
void ps2_drain(struct ps2dev *ps2dev, int maxbytes, int timeout)
wait_event_timeout(ps2dev->wait,
!(ps2dev->flags & PS2_FLAG_CMD),
msecs_to_jiffies(timeout));
wait_event_timeout(ps2dev->wait,
!(ps2dev->flags & PS2_FLAG_CMD),
msecs_to_jiffies(timeout));
-
mutex_unlock(&ps2dev->cmd_mutex
);
+
up(&ps2dev->cmd_sem
);
}
/*
}
/*
@@
-177,7
+177,7
@@
int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command)
return -1;
}
return -1;
}
-
mutex_lock(&ps2dev->cmd_mutex
);
+
down(&ps2dev->cmd_sem
);
serio_pause_rx(ps2dev->serio);
ps2dev->flags = command == PS2_CMD_GETID ? PS2_FLAG_WAITID : 0;
serio_pause_rx(ps2dev->serio);
ps2dev->flags = command == PS2_CMD_GETID ? PS2_FLAG_WAITID : 0;
@@
-229,7
+229,7
@@
int ps2_command(struct ps2dev *ps2dev, unsigned char *param, int command)
ps2dev->flags = 0;
serio_continue_rx(ps2dev->serio);
ps2dev->flags = 0;
serio_continue_rx(ps2dev->serio);
-
mutex_unlock(&ps2dev->cmd_mutex
);
+
up(&ps2dev->cmd_sem
);
return rc;
}
return rc;
}
@@
-281,7
+281,7
@@
int ps2_schedule_command(struct ps2dev *ps2dev, unsigned char *param, int comman
void ps2_init(struct ps2dev *ps2dev, struct serio *serio)
{
void ps2_init(struct ps2dev *ps2dev, struct serio *serio)
{
-
mutex_init(&ps2dev->cmd_mutex
);
+
init_MUTEX(&ps2dev->cmd_sem
);
init_waitqueue_head(&ps2dev->wait);
ps2dev->serio = serio;
}
init_waitqueue_head(&ps2dev->wait);
ps2dev->serio = serio;
}