Lines Matching refs:kbd_dev
111 struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev); in hv_kbd_on_receive() local
133 memcpy(&kbd_dev->protocol_resp, msg, in hv_kbd_on_receive()
135 complete(&kbd_dev->wait_event); in hv_kbd_on_receive()
158 spin_lock_irqsave(&kbd_dev->lock, flags); in hv_kbd_on_receive()
159 if (kbd_dev->started) { in hv_kbd_on_receive()
161 serio_interrupt(kbd_dev->hv_serio, in hv_kbd_on_receive()
164 serio_interrupt(kbd_dev->hv_serio, in hv_kbd_on_receive()
170 serio_interrupt(kbd_dev->hv_serio, scan_code, 0); in hv_kbd_on_receive()
172 spin_unlock_irqrestore(&kbd_dev->lock, flags); in hv_kbd_on_receive()
287 struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev); in hv_kbd_connect_to_vsp() local
293 request = &kbd_dev->protocol_req; in hv_kbd_connect_to_vsp()
306 if (!wait_for_completion_timeout(&kbd_dev->wait_event, 10 * HZ)) in hv_kbd_connect_to_vsp()
309 response = &kbd_dev->protocol_resp; in hv_kbd_connect_to_vsp()
323 struct hv_kbd_dev *kbd_dev = serio->port_data; in hv_kbd_start() local
326 spin_lock_irqsave(&kbd_dev->lock, flags); in hv_kbd_start()
327 kbd_dev->started = true; in hv_kbd_start()
328 spin_unlock_irqrestore(&kbd_dev->lock, flags); in hv_kbd_start()
335 struct hv_kbd_dev *kbd_dev = serio->port_data; in hv_kbd_stop() local
338 spin_lock_irqsave(&kbd_dev->lock, flags); in hv_kbd_stop()
339 kbd_dev->started = false; in hv_kbd_stop()
340 spin_unlock_irqrestore(&kbd_dev->lock, flags); in hv_kbd_stop()
346 struct hv_kbd_dev *kbd_dev; in hv_kbd_probe() local
350 kbd_dev = kzalloc(sizeof(struct hv_kbd_dev), GFP_KERNEL); in hv_kbd_probe()
352 if (!kbd_dev || !hv_serio) { in hv_kbd_probe()
357 kbd_dev->hv_dev = hv_dev; in hv_kbd_probe()
358 kbd_dev->hv_serio = hv_serio; in hv_kbd_probe()
359 spin_lock_init(&kbd_dev->lock); in hv_kbd_probe()
360 init_completion(&kbd_dev->wait_event); in hv_kbd_probe()
361 hv_set_drvdata(hv_dev, kbd_dev); in hv_kbd_probe()
365 hv_serio->port_data = kbd_dev; in hv_kbd_probe()
387 serio_register_port(kbd_dev->hv_serio); in hv_kbd_probe()
397 kfree(kbd_dev); in hv_kbd_probe()
403 struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev); in hv_kbd_remove() local
406 serio_unregister_port(kbd_dev->hv_serio); in hv_kbd_remove()
408 kfree(kbd_dev); in hv_kbd_remove()