Lines Matching refs:appleir
115 struct appleir { struct
159 static void key_up(struct hid_device *hid, struct appleir *appleir, int key) in key_up() argument
161 input_report_key(appleir->input_dev, key, 0); in key_up()
162 input_sync(appleir->input_dev); in key_up()
165 static void key_down(struct hid_device *hid, struct appleir *appleir, int key) in key_down() argument
167 input_report_key(appleir->input_dev, key, 1); in key_down()
168 input_sync(appleir->input_dev); in key_down()
171 static void battery_flat(struct appleir *appleir) in battery_flat() argument
173 dev_err(&appleir->input_dev->dev, "possible flat battery?\n"); in battery_flat()
178 struct appleir *appleir = (struct appleir *)data; in key_up_tick() local
179 struct hid_device *hid = appleir->hid; in key_up_tick()
182 spin_lock_irqsave(&appleir->lock, flags); in key_up_tick()
183 if (appleir->current_key) { in key_up_tick()
184 key_up(hid, appleir, appleir->current_key); in key_up_tick()
185 appleir->current_key = 0; in key_up_tick()
187 spin_unlock_irqrestore(&appleir->lock, flags); in key_up_tick()
193 struct appleir *appleir = hid_get_drvdata(hid); in appleir_raw_event() local
205 spin_lock_irqsave(&appleir->lock, flags); in appleir_raw_event()
210 if (appleir->current_key) in appleir_raw_event()
211 key_up(hid, appleir, appleir->current_key); in appleir_raw_event()
214 if (appleir->prev_key_idx > 0) in appleir_raw_event()
215 index = appleir->prev_key_idx; in appleir_raw_event()
220 appleir->current_key = appleir->keymap[index]; in appleir_raw_event()
222 key_down(hid, appleir, appleir->current_key); in appleir_raw_event()
228 mod_timer(&appleir->key_up_timer, jiffies + HZ / 8); in appleir_raw_event()
229 appleir->prev_key_idx = 0; in appleir_raw_event()
232 appleir->prev_key_idx = -index; in appleir_raw_event()
233 spin_unlock_irqrestore(&appleir->lock, flags); in appleir_raw_event()
237 appleir->prev_key_idx = 0; in appleir_raw_event()
240 key_down(hid, appleir, appleir->current_key); in appleir_raw_event()
245 mod_timer(&appleir->key_up_timer, jiffies + HZ / 8); in appleir_raw_event()
250 battery_flat(appleir); in appleir_raw_event()
263 struct appleir *appleir = hid_get_drvdata(hid); in appleir_input_configured() local
266 appleir->input_dev = input_dev; in appleir_input_configured()
268 input_dev->keycode = appleir->keymap; in appleir_input_configured()
270 input_dev->keycodemax = ARRAY_SIZE(appleir->keymap); in appleir_input_configured()
274 memcpy(appleir->keymap, appleir_key_table, sizeof(appleir->keymap)); in appleir_input_configured()
276 set_bit(appleir->keymap[i], input_dev->keybit); in appleir_input_configured()
290 struct appleir *appleir; in appleir_probe() local
292 appleir = kzalloc(sizeof(struct appleir), GFP_KERNEL); in appleir_probe()
293 if (!appleir) { in appleir_probe()
298 appleir->hid = hid; in appleir_probe()
303 spin_lock_init(&appleir->lock); in appleir_probe()
304 setup_timer(&appleir->key_up_timer, in appleir_probe()
305 key_up_tick, (unsigned long) appleir); in appleir_probe()
307 hid_set_drvdata(hid, appleir); in appleir_probe()
323 kfree(appleir); in appleir_probe()
330 struct appleir *appleir = hid_get_drvdata(hid); in appleir_remove() local
332 del_timer_sync(&appleir->key_up_timer); in appleir_remove()
333 kfree(appleir); in appleir_remove()