aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/ibmasm/remote.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/ibmasm/remote.c')
-rw-r--r--drivers/misc/ibmasm/remote.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/drivers/misc/ibmasm/remote.c b/drivers/misc/ibmasm/remote.c
index a40fda6c402c..0550ce075fc4 100644
--- a/drivers/misc/ibmasm/remote.c
+++ b/drivers/misc/ibmasm/remote.c
@@ -28,11 +28,10 @@
28#include "ibmasm.h" 28#include "ibmasm.h"
29#include "remote.h" 29#include "remote.h"
30 30
31static int xmax = 1600; 31#define MOUSE_X_MAX 1600
32static int ymax = 1200; 32#define MOUSE_Y_MAX 1200
33 33
34 34static const unsigned short xlate_high[XLATE_SIZE] = {
35static unsigned short xlate_high[XLATE_SIZE] = {
36 [KEY_SYM_ENTER & 0xff] = KEY_ENTER, 35 [KEY_SYM_ENTER & 0xff] = KEY_ENTER,
37 [KEY_SYM_KPSLASH & 0xff] = KEY_KPSLASH, 36 [KEY_SYM_KPSLASH & 0xff] = KEY_KPSLASH,
38 [KEY_SYM_KPSTAR & 0xff] = KEY_KPASTERISK, 37 [KEY_SYM_KPSTAR & 0xff] = KEY_KPASTERISK,
@@ -81,7 +80,8 @@ static unsigned short xlate_high[XLATE_SIZE] = {
81 [KEY_SYM_NUM_LOCK & 0xff] = KEY_NUMLOCK, 80 [KEY_SYM_NUM_LOCK & 0xff] = KEY_NUMLOCK,
82 [KEY_SYM_SCR_LOCK & 0xff] = KEY_SCROLLLOCK, 81 [KEY_SYM_SCR_LOCK & 0xff] = KEY_SCROLLLOCK,
83}; 82};
84static unsigned short xlate[XLATE_SIZE] = { 83
84static const unsigned short xlate[XLATE_SIZE] = {
85 [NO_KEYCODE] = KEY_RESERVED, 85 [NO_KEYCODE] = KEY_RESERVED,
86 [KEY_SYM_SPACE] = KEY_SPACE, 86 [KEY_SYM_SPACE] = KEY_SPACE,
87 [KEY_SYM_TILDE] = KEY_GRAVE, [KEY_SYM_BKTIC] = KEY_GRAVE, 87 [KEY_SYM_TILDE] = KEY_GRAVE, [KEY_SYM_BKTIC] = KEY_GRAVE,
@@ -133,19 +133,16 @@ static unsigned short xlate[XLATE_SIZE] = {
133 [KEY_SYM_Z] = KEY_Z, [KEY_SYM_z] = KEY_Z, 133 [KEY_SYM_Z] = KEY_Z, [KEY_SYM_z] = KEY_Z,
134}; 134};
135 135
136static char remote_mouse_name[] = "ibmasm RSA I remote mouse";
137static char remote_keybd_name[] = "ibmasm RSA I remote keyboard";
138
139static void print_input(struct remote_input *input) 136static void print_input(struct remote_input *input)
140{ 137{
141 if (input->type == INPUT_TYPE_MOUSE) { 138 if (input->type == INPUT_TYPE_MOUSE) {
142 unsigned char buttons = input->mouse_buttons; 139 unsigned char buttons = input->mouse_buttons;
143 dbg("remote mouse movement: (x,y)=(%d,%d)%s%s%s%s\n", 140 dbg("remote mouse movement: (x,y)=(%d,%d)%s%s%s%s\n",
144 input->data.mouse.x, input->data.mouse.y, 141 input->data.mouse.x, input->data.mouse.y,
145 (buttons)?" -- buttons:":"", 142 (buttons) ? " -- buttons:" : "",
146 (buttons & REMOTE_BUTTON_LEFT)?"left ":"", 143 (buttons & REMOTE_BUTTON_LEFT) ? "left " : "",
147 (buttons & REMOTE_BUTTON_MIDDLE)?"middle ":"", 144 (buttons & REMOTE_BUTTON_MIDDLE) ? "middle " : "",
148 (buttons & REMOTE_BUTTON_RIGHT)?"right":"" 145 (buttons & REMOTE_BUTTON_RIGHT) ? "right" : ""
149 ); 146 );
150 } else { 147 } else {
151 dbg("remote keypress (code, flag, down):" 148 dbg("remote keypress (code, flag, down):"
@@ -180,7 +177,7 @@ static void send_keyboard_event(struct input_dev *dev,
180 key = xlate_high[code & 0xff]; 177 key = xlate_high[code & 0xff];
181 else 178 else
182 key = xlate[code]; 179 key = xlate[code];
183 input_report_key(dev, key, (input->data.keyboard.key_down) ? 1 : 0); 180 input_report_key(dev, key, input->data.keyboard.key_down);
184 input_sync(dev); 181 input_sync(dev);
185} 182}
186 183
@@ -228,20 +225,22 @@ int ibmasm_init_remote_input_dev(struct service_processor *sp)
228 mouse_dev->id.vendor = pdev->vendor; 225 mouse_dev->id.vendor = pdev->vendor;
229 mouse_dev->id.product = pdev->device; 226 mouse_dev->id.product = pdev->device;
230 mouse_dev->id.version = 1; 227 mouse_dev->id.version = 1;
228 mouse_dev->dev.parent = sp->dev;
231 mouse_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); 229 mouse_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
232 mouse_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | 230 mouse_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) |
233 BIT(BTN_RIGHT) | BIT(BTN_MIDDLE); 231 BIT(BTN_RIGHT) | BIT(BTN_MIDDLE);
234 set_bit(BTN_TOUCH, mouse_dev->keybit); 232 set_bit(BTN_TOUCH, mouse_dev->keybit);
235 mouse_dev->name = remote_mouse_name; 233 mouse_dev->name = "ibmasm RSA I remote mouse";
236 input_set_abs_params(mouse_dev, ABS_X, 0, xmax, 0, 0); 234 input_set_abs_params(mouse_dev, ABS_X, 0, MOUSE_X_MAX, 0, 0);
237 input_set_abs_params(mouse_dev, ABS_Y, 0, ymax, 0, 0); 235 input_set_abs_params(mouse_dev, ABS_Y, 0, MOUSE_Y_MAX, 0, 0);
238 236
239 mouse_dev->id.bustype = BUS_PCI; 237 keybd_dev->id.bustype = BUS_PCI;
240 keybd_dev->id.vendor = pdev->vendor; 238 keybd_dev->id.vendor = pdev->vendor;
241 keybd_dev->id.product = pdev->device; 239 keybd_dev->id.product = pdev->device;
242 mouse_dev->id.version = 2; 240 keybd_dev->id.version = 2;
241 keybd_dev->dev.parent = sp->dev;
243 keybd_dev->evbit[0] = BIT(EV_KEY); 242 keybd_dev->evbit[0] = BIT(EV_KEY);
244 keybd_dev->name = remote_keybd_name; 243 keybd_dev->name = "ibmasm RSA I remote keyboard";
245 244
246 for (i = 0; i < XLATE_SIZE; i++) { 245 for (i = 0; i < XLATE_SIZE; i++) {
247 if (xlate_high[i]) 246 if (xlate_high[i])