aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMárton Németh <nm127@freemail.hu>2007-10-22 00:56:52 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2007-10-22 00:56:52 -0400
commit553a05b8821f5a6bc633e97187933e2157b2d291 (patch)
tree3cf41f6f91986a366af76b0c6c3c06ccb837177f
parent82ba56c273911f7eda79849cfa0fc2d2e5a3b75b (diff)
Input: i8042 - export i8042_command()
Export the i8042_command() function which manages the mutual exclusion with the help of the i8042_lock spinlock. This allows to access i8042 safely from other parts of the kernel. Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r--drivers/input/serio/i8042.c4
-rw-r--r--drivers/input/serio/i8042.h22
-rw-r--r--include/linux/i8042.h35
3 files changed, 38 insertions, 23 deletions
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
index 11dafc0ee994..1a0cea3c5294 100644
--- a/drivers/input/serio/i8042.c
+++ b/drivers/input/serio/i8042.c
@@ -20,6 +20,7 @@
20#include <linux/err.h> 20#include <linux/err.h>
21#include <linux/rcupdate.h> 21#include <linux/rcupdate.h>
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/i8042.h>
23 24
24#include <asm/io.h> 25#include <asm/io.h>
25 26
@@ -208,7 +209,7 @@ static int __i8042_command(unsigned char *param, int command)
208 return 0; 209 return 0;
209} 210}
210 211
211static int i8042_command(unsigned char *param, int command) 212int i8042_command(unsigned char *param, int command)
212{ 213{
213 unsigned long flags; 214 unsigned long flags;
214 int retval; 215 int retval;
@@ -219,6 +220,7 @@ static int i8042_command(unsigned char *param, int command)
219 220
220 return retval; 221 return retval;
221} 222}
223EXPORT_SYMBOL(i8042_command);
222 224
223/* 225/*
224 * i8042_kbd_write() sends a byte out through the keyboard interface. 226 * i8042_kbd_write() sends a byte out through the keyboard interface.
diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h
index b3eb7a72d961..dd22d91f8b39 100644
--- a/drivers/input/serio/i8042.h
+++ b/drivers/input/serio/i8042.h
@@ -61,28 +61,6 @@
61#define I8042_CTR_XLATE 0x40 61#define I8042_CTR_XLATE 0x40
62 62
63/* 63/*
64 * Commands.
65 */
66
67#define I8042_CMD_CTL_RCTR 0x0120
68#define I8042_CMD_CTL_WCTR 0x1060
69#define I8042_CMD_CTL_TEST 0x01aa
70
71#define I8042_CMD_KBD_DISABLE 0x00ad
72#define I8042_CMD_KBD_ENABLE 0x00ae
73#define I8042_CMD_KBD_TEST 0x01ab
74#define I8042_CMD_KBD_LOOP 0x11d2
75
76#define I8042_CMD_AUX_DISABLE 0x00a7
77#define I8042_CMD_AUX_ENABLE 0x00a8
78#define I8042_CMD_AUX_TEST 0x01a9
79#define I8042_CMD_AUX_SEND 0x10d4
80#define I8042_CMD_AUX_LOOP 0x11d3
81
82#define I8042_CMD_MUX_PFX 0x0090
83#define I8042_CMD_MUX_SEND 0x1090
84
85/*
86 * Return codes. 64 * Return codes.
87 */ 65 */
88 66
diff --git a/include/linux/i8042.h b/include/linux/i8042.h
new file mode 100644
index 000000000000..7907a72403ee
--- /dev/null
+++ b/include/linux/i8042.h
@@ -0,0 +1,35 @@
1#ifndef _LINUX_I8042_H
2#define _LINUX_I8042_H
3
4/*
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 as published by
7 * the Free Software Foundation.
8 */
9
10
11/*
12 * Standard commands.
13 */
14
15#define I8042_CMD_CTL_RCTR 0x0120
16#define I8042_CMD_CTL_WCTR 0x1060
17#define I8042_CMD_CTL_TEST 0x01aa
18
19#define I8042_CMD_KBD_DISABLE 0x00ad
20#define I8042_CMD_KBD_ENABLE 0x00ae
21#define I8042_CMD_KBD_TEST 0x01ab
22#define I8042_CMD_KBD_LOOP 0x11d2
23
24#define I8042_CMD_AUX_DISABLE 0x00a7
25#define I8042_CMD_AUX_ENABLE 0x00a8
26#define I8042_CMD_AUX_TEST 0x01a9
27#define I8042_CMD_AUX_SEND 0x10d4
28#define I8042_CMD_AUX_LOOP 0x11d3
29
30#define I8042_CMD_MUX_PFX 0x0090
31#define I8042_CMD_MUX_SEND 0x1090
32
33int i8042_command(unsigned char *param, int command);
34
35#endif