aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/ibmasm
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/ibmasm')
-rw-r--r--drivers/misc/ibmasm/ibmasm.h4
-rw-r--r--drivers/misc/ibmasm/lowlevel.c4
-rw-r--r--drivers/misc/ibmasm/remote.c14
3 files changed, 9 insertions, 13 deletions
diff --git a/drivers/misc/ibmasm/ibmasm.h b/drivers/misc/ibmasm/ibmasm.h
index 634d538ccd14..48d5abebfc30 100644
--- a/drivers/misc/ibmasm/ibmasm.h
+++ b/drivers/misc/ibmasm/ibmasm.h
@@ -196,10 +196,10 @@ extern int ibmasm_send_os_state(struct service_processor *sp, int os_state);
196 196
197/* low level message processing */ 197/* low level message processing */
198extern int ibmasm_send_i2o_message(struct service_processor *sp); 198extern int ibmasm_send_i2o_message(struct service_processor *sp);
199extern irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id, struct pt_regs *regs); 199extern irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id);
200 200
201/* remote console */ 201/* remote console */
202extern void ibmasm_handle_mouse_interrupt(struct service_processor *sp, struct pt_regs *regs); 202extern void ibmasm_handle_mouse_interrupt(struct service_processor *sp);
203extern int ibmasm_init_remote_input_dev(struct service_processor *sp); 203extern int ibmasm_init_remote_input_dev(struct service_processor *sp);
204extern void ibmasm_free_remote_input_dev(struct service_processor *sp); 204extern void ibmasm_free_remote_input_dev(struct service_processor *sp);
205 205
diff --git a/drivers/misc/ibmasm/lowlevel.c b/drivers/misc/ibmasm/lowlevel.c
index 47949a2c7e94..a3c589b7cbfa 100644
--- a/drivers/misc/ibmasm/lowlevel.c
+++ b/drivers/misc/ibmasm/lowlevel.c
@@ -54,7 +54,7 @@ int ibmasm_send_i2o_message(struct service_processor *sp)
54 return 0; 54 return 0;
55} 55}
56 56
57irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id, struct pt_regs *regs) 57irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id)
58{ 58{
59 u32 mfa; 59 u32 mfa;
60 struct service_processor *sp = (struct service_processor *)dev_id; 60 struct service_processor *sp = (struct service_processor *)dev_id;
@@ -67,7 +67,7 @@ irqreturn_t ibmasm_interrupt_handler(int irq, void * dev_id, struct pt_regs *reg
67 dbg("respond to interrupt at %s\n", get_timestamp(tsbuf)); 67 dbg("respond to interrupt at %s\n", get_timestamp(tsbuf));
68 68
69 if (mouse_interrupt_pending(sp)) { 69 if (mouse_interrupt_pending(sp)) {
70 ibmasm_handle_mouse_interrupt(sp, regs); 70 ibmasm_handle_mouse_interrupt(sp);
71 clear_mouse_interrupt(sp); 71 clear_mouse_interrupt(sp);
72 } 72 }
73 73
diff --git a/drivers/misc/ibmasm/remote.c b/drivers/misc/ibmasm/remote.c
index 0f9e3aa34d07..a40fda6c402c 100644
--- a/drivers/misc/ibmasm/remote.c
+++ b/drivers/misc/ibmasm/remote.c
@@ -158,12 +158,10 @@ static void print_input(struct remote_input *input)
158 } 158 }
159} 159}
160 160
161static void send_mouse_event(struct input_dev *dev, struct pt_regs *regs, 161static void send_mouse_event(struct input_dev *dev, struct remote_input *input)
162 struct remote_input *input)
163{ 162{
164 unsigned char buttons = input->mouse_buttons; 163 unsigned char buttons = input->mouse_buttons;
165 164
166 input_regs(dev, regs);
167 input_report_abs(dev, ABS_X, input->data.mouse.x); 165 input_report_abs(dev, ABS_X, input->data.mouse.x);
168 input_report_abs(dev, ABS_Y, input->data.mouse.y); 166 input_report_abs(dev, ABS_Y, input->data.mouse.y);
169 input_report_key(dev, BTN_LEFT, buttons & REMOTE_BUTTON_LEFT); 167 input_report_key(dev, BTN_LEFT, buttons & REMOTE_BUTTON_LEFT);
@@ -172,7 +170,7 @@ static void send_mouse_event(struct input_dev *dev, struct pt_regs *regs,
172 input_sync(dev); 170 input_sync(dev);
173} 171}
174 172
175static void send_keyboard_event(struct input_dev *dev, struct pt_regs *regs, 173static void send_keyboard_event(struct input_dev *dev,
176 struct remote_input *input) 174 struct remote_input *input)
177{ 175{
178 unsigned int key; 176 unsigned int key;
@@ -182,13 +180,11 @@ static void send_keyboard_event(struct input_dev *dev, struct pt_regs *regs,
182 key = xlate_high[code & 0xff]; 180 key = xlate_high[code & 0xff];
183 else 181 else
184 key = xlate[code]; 182 key = xlate[code];
185 input_regs(dev, regs);
186 input_report_key(dev, key, (input->data.keyboard.key_down) ? 1 : 0); 183 input_report_key(dev, key, (input->data.keyboard.key_down) ? 1 : 0);
187 input_sync(dev); 184 input_sync(dev);
188} 185}
189 186
190void ibmasm_handle_mouse_interrupt(struct service_processor *sp, 187void ibmasm_handle_mouse_interrupt(struct service_processor *sp)
191 struct pt_regs *regs)
192{ 188{
193 unsigned long reader; 189 unsigned long reader;
194 unsigned long writer; 190 unsigned long writer;
@@ -203,9 +199,9 @@ void ibmasm_handle_mouse_interrupt(struct service_processor *sp,
203 199
204 print_input(&input); 200 print_input(&input);
205 if (input.type == INPUT_TYPE_MOUSE) { 201 if (input.type == INPUT_TYPE_MOUSE) {
206 send_mouse_event(sp->remote.mouse_dev, regs, &input); 202 send_mouse_event(sp->remote.mouse_dev, &input);
207 } else if (input.type == INPUT_TYPE_KEYBOARD) { 203 } else if (input.type == INPUT_TYPE_KEYBOARD) {
208 send_keyboard_event(sp->remote.keybd_dev, regs, &input); 204 send_keyboard_event(sp->remote.keybd_dev, &input);
209 } else 205 } else
210 break; 206 break;
211 207