Lines Matching refs:aaedkbd
46 struct aaedkbd {
55 static void aaedkbd_report_col(struct aaedkbd *aaedkbd,
65 input_report_key(aaedkbd->poll_dev->input,
66 aaedkbd->keycode[scancode], pressed);
73 struct aaedkbd *aaedkbd = dev->private;
82 if (rowd != aaedkbd->kbdscan_state[col]) {
83 aaedkbd->kbdscan_count[col] = 0;
84 aaedkbd->kbdscan_state[col] = rowd;
85 } else if (++aaedkbd->kbdscan_count[col] >= KBDSCAN_STABLE_COUNT) {
86 aaedkbd_report_col(aaedkbd, col, rowd);
97 struct aaedkbd *aaedkbd;
103 aaedkbd = kzalloc(sizeof(struct aaedkbd), GFP_KERNEL);
105 if (!aaedkbd || !poll_dev) {
110 platform_set_drvdata(pdev, aaedkbd);
112 aaedkbd->poll_dev = poll_dev;
113 memcpy(aaedkbd->keycode, aaedkbd_keycode, sizeof(aaedkbd->keycode));
115 poll_dev->private = aaedkbd;
121 input_dev->phys = "aaedkbd/input0";
129 input_dev->keycode = aaedkbd->keycode;
134 set_bit(aaedkbd->keycode[i], input_dev->keybit);
137 error = input_register_polled_device(aaedkbd->poll_dev);
143 fail: kfree(aaedkbd);
150 struct aaedkbd *aaedkbd = platform_get_drvdata(pdev);
152 input_unregister_polled_device(aaedkbd->poll_dev);
153 input_free_polled_device(aaedkbd->poll_dev);
154 kfree(aaedkbd);