Lines Matching refs:kbd_dev
103 struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev);
125 memcpy(&kbd_dev->protocol_resp, msg,
127 complete(&kbd_dev->wait_event);
150 spin_lock_irqsave(&kbd_dev->lock, flags);
151 if (kbd_dev->started) {
153 serio_interrupt(kbd_dev->hv_serio,
156 serio_interrupt(kbd_dev->hv_serio,
162 serio_interrupt(kbd_dev->hv_serio, scan_code, 0);
164 spin_unlock_irqrestore(&kbd_dev->lock, flags);
256 struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev);
262 reinit_completion(&kbd_dev->wait_event);
264 request = &kbd_dev->protocol_req;
277 if (!wait_for_completion_timeout(&kbd_dev->wait_event, 10 * HZ))
280 response = &kbd_dev->protocol_resp;
294 struct hv_kbd_dev *kbd_dev = serio->port_data;
297 spin_lock_irqsave(&kbd_dev->lock, flags);
298 kbd_dev->started = true;
299 spin_unlock_irqrestore(&kbd_dev->lock, flags);
306 struct hv_kbd_dev *kbd_dev = serio->port_data;
309 spin_lock_irqsave(&kbd_dev->lock, flags);
310 kbd_dev->started = false;
311 spin_unlock_irqrestore(&kbd_dev->lock, flags);
317 struct hv_kbd_dev *kbd_dev;
321 kbd_dev = kzalloc(sizeof(struct hv_kbd_dev), GFP_KERNEL);
323 if (!kbd_dev || !hv_serio) {
328 kbd_dev->hv_dev = hv_dev;
329 kbd_dev->hv_serio = hv_serio;
330 spin_lock_init(&kbd_dev->lock);
331 init_completion(&kbd_dev->wait_event);
332 hv_set_drvdata(hv_dev, kbd_dev);
336 hv_serio->port_data = kbd_dev;
358 serio_register_port(kbd_dev->hv_serio);
368 kfree(kbd_dev);
374 struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev);
376 serio_unregister_port(kbd_dev->hv_serio);
378 kfree(kbd_dev);