32 #include <linux/module.h>
34 #include <linux/serio.h>
37 #include <linux/bitops.h>
39 #include <linux/slab.h>
42 #include <asm/uaccess.h>
47 #define DRV_NAME "q40kbd"
71 spin_unlock_irqrestore(&q40kbd->
lock, flags);
90 spin_unlock_irqrestore(&q40kbd->
lock, flags);
93 static void q40kbd_stop(
void)
104 static int q40kbd_open(
struct serio *
port)
108 q40kbd_flush(q40kbd);
117 static void q40kbd_close(
struct serio *
port)
122 q40kbd_flush(q40kbd);
127 struct q40kbd *q40kbd;
131 q40kbd = kzalloc(
sizeof(
struct q40kbd),
GFP_KERNEL);
133 if (!q40kbd || !port) {
142 port->
open = q40kbd_open;
143 port->
close = q40kbd_close;
145 port->
dev.parent = &pdev->
dev;
160 platform_set_drvdata(pdev, q40kbd);
173 struct q40kbd *q40kbd = platform_get_drvdata(pdev);
184 platform_set_drvdata(pdev,
NULL);
196 static int __init q40kbd_init(
void)
201 static void __exit q40kbd_exit(
void)