Lines Matching refs:data

129 static void usb_kbd_put_queue(struct usb_kbd_pdata *data, u8 c)  in usb_kbd_put_queue()  argument
131 if (data->usb_in_pointer == USB_KBD_BUFFER_LEN - 1) { in usb_kbd_put_queue()
133 if (data->usb_out_pointer == 0) in usb_kbd_put_queue()
136 data->usb_in_pointer = 0; in usb_kbd_put_queue()
139 if (data->usb_in_pointer == data->usb_out_pointer - 1) in usb_kbd_put_queue()
142 data->usb_in_pointer++; in usb_kbd_put_queue()
145 data->usb_kbd_buffer[data->usb_in_pointer] = c; in usb_kbd_put_queue()
156 struct usb_kbd_pdata *data = dev->privptr; in usb_kbd_setled() local
159 *leds = data->flags & USB_KBD_LEDMASK; in usb_kbd_setled()
167 static int usb_kbd_translate(struct usb_kbd_pdata *data, unsigned char scancode, in usb_kbd_translate() argument
174 data->repeat_delay = 0; in usb_kbd_translate()
179 data->repeat_delay++; in usb_kbd_translate()
180 if (data->repeat_delay < REPEAT_DELAY) in usb_kbd_translate()
183 data->repeat_delay = REPEAT_DELAY; in usb_kbd_translate()
190 if (data->flags & USB_KBD_CAPSLOCK) in usb_kbd_translate()
214 if (data->flags & USB_KBD_CTRL) in usb_kbd_translate()
219 data->flags ^= USB_KBD_NUMLOCK; in usb_kbd_translate()
224 data->flags ^= USB_KBD_CAPSLOCK; in usb_kbd_translate()
228 data->flags ^= USB_KBD_SCROLLLOCK; in usb_kbd_translate()
236 usb_kbd_put_queue(data, keycode); in usb_kbd_translate()
245 usb_kbd_put_queue(data, 0x1b); in usb_kbd_translate()
248 usb_kbd_put_queue(data, 0x4f); in usb_kbd_translate()
249 usb_kbd_put_queue(data, scancode - 0x3a + 'P'); in usb_kbd_translate()
252 usb_kbd_put_queue(data, '['); in usb_kbd_translate()
255 usb_kbd_put_queue(data, '1'); in usb_kbd_translate()
261 usb_kbd_put_queue(data, '2'); in usb_kbd_translate()
272 usb_kbd_put_queue(data, keycode); in usb_kbd_translate()
274 usb_kbd_put_queue(data, '~'); in usb_kbd_translate()
279 usb_kbd_put_queue(data, 0x1b); in usb_kbd_translate()
280 usb_kbd_put_queue(data, '['); in usb_kbd_translate()
281 usb_kbd_put_queue(data, usb_special_keys[scancode - 0x4f]); in usb_kbd_translate()
291 struct usb_kbd_pdata *data = dev->privptr; in usb_kbd_service_key() local
296 new = data->old; in usb_kbd_service_key()
297 old = data->new; in usb_kbd_service_key()
299 new = data->new; in usb_kbd_service_key()
300 old = data->old; in usb_kbd_service_key()
306 res |= usb_kbd_translate(data, old[i], data->new[0], up); in usb_kbd_service_key()
315 struct usb_kbd_pdata *data = dev->privptr; in usb_kbd_irq_worker() local
319 if (data->new[0] == 0x00) in usb_kbd_irq_worker()
320 data->flags &= ~USB_KBD_CTRL; in usb_kbd_irq_worker()
322 else if ((data->new[0] == LEFT_CNTR) || (data->new[0] == RIGHT_CNTR)) in usb_kbd_irq_worker()
323 data->flags |= USB_KBD_CTRL; in usb_kbd_irq_worker()
331 if ((data->new[2] > 3) && (data->old[2] == data->new[2])) in usb_kbd_irq_worker()
332 res |= usb_kbd_translate(data, data->new[2], data->new[0], 2); in usb_kbd_irq_worker()
337 memcpy(data->old, data->new, USB_KBD_BOOT_REPORT_SIZE); in usb_kbd_irq_worker()
359 struct usb_kbd_pdata *data = dev->privptr; local
362 if (usb_int_msg(dev, data->intpipe, &data->new[0],
363 data->intpktsize, data->intinterval, true) >= 0)
369 struct usb_kbd_pdata *data = dev->privptr;
372 1, 0, data->new, USB_KBD_BOOT_REPORT_SIZE);
373 if (memcmp(data->old, data->new, USB_KBD_BOOT_REPORT_SIZE)) {
376 struct usb_kbd_pdata *data = dev->privptr;
377 if (poll_int_queue(dev, data->intq)) {
380 destroy_int_queue(dev, data->intq);
381 data->intq = create_int_queue(dev, data->intpipe, 1,
382 USB_KBD_BOOT_REPORT_SIZE, data->new,
383 data->intinterval);
385 data->last_report = get_timer(0);
387 } else if (data->last_report != -1 &&
388 get_timer(data->last_report) > REPEAT_RATE) {
390 data->last_report = get_timer(0);
400 struct usb_kbd_pdata *data; local
414 data = usb_kbd_dev->privptr;
418 return !(data->usb_in_pointer == data->usb_out_pointer);
426 struct usb_kbd_pdata *data; local
430 data = usb_kbd_dev->privptr;
432 while (data->usb_in_pointer == data->usb_out_pointer)
435 if (data->usb_out_pointer == USB_KBD_BUFFER_LEN - 1)
436 data->usb_out_pointer = 0;
438 data->usb_out_pointer++;
440 return data->usb_kbd_buffer[data->usb_out_pointer];
448 struct usb_kbd_pdata *data; local
478 data = malloc(sizeof(struct usb_kbd_pdata));
479 if (!data) {
485 memset(data, 0, sizeof(struct usb_kbd_pdata));
488 data->new = memalign(USB_DMA_MINALIGN,
492 dev->privptr = data;
497 data->intpipe = usb_rcvintpipe(dev, ep->bEndpointAddress);
498 data->intpktsize = min(usb_maxpacket(dev, data->intpipe),
500 data->intinterval = ep->bInterval;
501 data->last_report = -1;
516 data->intq = create_int_queue(dev, data->intpipe, 1,
517 USB_KBD_BOOT_REPORT_SIZE, data->new,
518 data->intinterval);
519 if (!data->intq) {
522 1, 0, data->new, USB_KBD_BOOT_REPORT_SIZE) < 0) {
524 if (usb_int_msg(dev, data->intpipe, data->new, data->intpktsize,
525 data->intinterval, false) < 0) {
617 struct usb_kbd_pdata *data; local
622 data = usb_kbd_dev->privptr;
630 destroy_int_queue(usb_kbd_dev, data->intq);
632 free(data->new);
633 free(data);
711 struct usb_kbd_pdata *data; local
720 data = udev->privptr;
732 destroy_int_queue(udev, data->intq);
734 free(data->new);
735 free(data);