Lines Matching refs:tt

58 	struct ttusbir *tt = container_of(led_dev, struct ttusbir, led);  in ttusbir_brightness_get()  local
60 return tt->led_on ? LED_FULL : LED_OFF; in ttusbir_brightness_get()
63 static void ttusbir_set_led(struct ttusbir *tt) in ttusbir_set_led() argument
69 if (tt->led_on != tt->is_led_on && tt->udev && in ttusbir_set_led()
70 atomic_add_unless(&tt->led_complete, 1, 1)) { in ttusbir_set_led()
71 tt->bulk_buffer[4] = tt->is_led_on = tt->led_on; in ttusbir_set_led()
72 ret = usb_submit_urb(tt->bulk_urb, GFP_ATOMIC); in ttusbir_set_led()
74 dev_warn(tt->dev, "failed to submit bulk urb: %d\n", in ttusbir_set_led()
76 atomic_dec(&tt->led_complete); in ttusbir_set_led()
84 struct ttusbir *tt = container_of(led_dev, struct ttusbir, led); in ttusbir_brightness_set() local
86 tt->led_on = brightness != LED_OFF; in ttusbir_brightness_set()
88 ttusbir_set_led(tt); in ttusbir_brightness_set()
96 struct ttusbir *tt = urb->context; in ttusbir_bulk_complete() local
98 atomic_dec(&tt->led_complete); in ttusbir_bulk_complete()
110 dev_dbg(tt->dev, "Error: urb status = %d\n", urb->status); in ttusbir_bulk_complete()
114 ttusbir_set_led(tt); in ttusbir_bulk_complete()
122 static void ttusbir_process_ir_data(struct ttusbir *tt, uint8_t *buf) in ttusbir_process_ir_data() argument
136 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
142 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
156 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
161 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
169 ir_raw_event_handle(tt->rc); in ttusbir_process_ir_data()
174 struct ttusbir *tt = urb->context; in ttusbir_urb_complete() local
179 ttusbir_process_ir_data(tt, urb->transfer_buffer); in ttusbir_urb_complete()
188 dev_dbg(tt->dev, "Error: urb status = %d\n", urb->status); in ttusbir_urb_complete()
194 dev_warn(tt->dev, "failed to resubmit urb: %d\n", rc); in ttusbir_urb_complete()
200 struct ttusbir *tt; in ttusbir_probe() local
207 tt = kzalloc(sizeof(*tt), GFP_KERNEL); in ttusbir_probe()
209 if (!tt || !rc) { in ttusbir_probe()
233 tt->bulk_out_endp = bulk_out_endp; in ttusbir_probe()
234 tt->iso_in_endp = iso_in_endp; in ttusbir_probe()
247 tt->dev = &intf->dev; in ttusbir_probe()
248 tt->udev = interface_to_usbdev(intf); in ttusbir_probe()
249 tt->rc = rc; in ttusbir_probe()
251 ret = usb_set_interface(tt->udev, 0, altsetting); in ttusbir_probe()
264 urb->dev = tt->udev; in ttusbir_probe()
265 urb->context = tt; in ttusbir_probe()
266 urb->pipe = usb_rcvisocpipe(tt->udev, tt->iso_in_endp); in ttusbir_probe()
268 buffer = usb_alloc_coherent(tt->udev, 128, GFP_KERNEL, in ttusbir_probe()
286 tt->urb[i] = urb; in ttusbir_probe()
289 tt->bulk_urb = usb_alloc_urb(0, GFP_KERNEL); in ttusbir_probe()
290 if (!tt->bulk_urb) { in ttusbir_probe()
295 tt->bulk_buffer[0] = 0xaa; in ttusbir_probe()
296 tt->bulk_buffer[1] = 0x01; in ttusbir_probe()
297 tt->bulk_buffer[2] = 0x05; in ttusbir_probe()
298 tt->bulk_buffer[3] = 0x01; in ttusbir_probe()
300 usb_fill_bulk_urb(tt->bulk_urb, tt->udev, usb_sndbulkpipe(tt->udev, in ttusbir_probe()
301 tt->bulk_out_endp), tt->bulk_buffer, sizeof(tt->bulk_buffer), in ttusbir_probe()
302 ttusbir_bulk_complete, tt); in ttusbir_probe()
304 tt->led.name = "ttusbir:green:power"; in ttusbir_probe()
305 tt->led.default_trigger = "rc-feedback"; in ttusbir_probe()
306 tt->led.brightness_set = ttusbir_brightness_set; in ttusbir_probe()
307 tt->led.brightness_get = ttusbir_brightness_get; in ttusbir_probe()
308 tt->is_led_on = tt->led_on = true; in ttusbir_probe()
309 atomic_set(&tt->led_complete, 0); in ttusbir_probe()
310 ret = led_classdev_register(&intf->dev, &tt->led); in ttusbir_probe()
314 usb_make_path(tt->udev, tt->phys, sizeof(tt->phys)); in ttusbir_probe()
317 rc->input_phys = tt->phys; in ttusbir_probe()
318 usb_to_input_id(tt->udev, &rc->input_id); in ttusbir_probe()
322 rc->priv = tt; in ttusbir_probe()
338 usb_set_intfdata(intf, tt); in ttusbir_probe()
341 ret = usb_submit_urb(tt->urb[i], GFP_KERNEL); in ttusbir_probe()
343 dev_err(tt->dev, "failed to submit urb %d\n", ret); in ttusbir_probe()
353 led_classdev_unregister(&tt->led); in ttusbir_probe()
355 if (tt) { in ttusbir_probe()
356 for (i = 0; i < NUM_URBS && tt->urb[i]; i++) { in ttusbir_probe()
357 struct urb *urb = tt->urb[i]; in ttusbir_probe()
360 usb_free_coherent(tt->udev, 128, urb->transfer_buffer, in ttusbir_probe()
364 usb_kill_urb(tt->bulk_urb); in ttusbir_probe()
365 usb_free_urb(tt->bulk_urb); in ttusbir_probe()
366 kfree(tt); in ttusbir_probe()
375 struct ttusbir *tt = usb_get_intfdata(intf); in ttusbir_disconnect() local
376 struct usb_device *udev = tt->udev; in ttusbir_disconnect()
379 tt->udev = NULL; in ttusbir_disconnect()
381 rc_unregister_device(tt->rc); in ttusbir_disconnect()
382 led_classdev_unregister(&tt->led); in ttusbir_disconnect()
384 usb_kill_urb(tt->urb[i]); in ttusbir_disconnect()
385 usb_free_coherent(udev, 128, tt->urb[i]->transfer_buffer, in ttusbir_disconnect()
386 tt->urb[i]->transfer_dma); in ttusbir_disconnect()
387 usb_free_urb(tt->urb[i]); in ttusbir_disconnect()
389 usb_kill_urb(tt->bulk_urb); in ttusbir_disconnect()
390 usb_free_urb(tt->bulk_urb); in ttusbir_disconnect()
392 kfree(tt); in ttusbir_disconnect()
397 struct ttusbir *tt = usb_get_intfdata(intf); in ttusbir_suspend() local
401 usb_kill_urb(tt->urb[i]); in ttusbir_suspend()
403 led_classdev_suspend(&tt->led); in ttusbir_suspend()
404 usb_kill_urb(tt->bulk_urb); in ttusbir_suspend()
411 struct ttusbir *tt = usb_get_intfdata(intf); in ttusbir_resume() local
414 tt->is_led_on = true; in ttusbir_resume()
415 led_classdev_resume(&tt->led); in ttusbir_resume()
418 rc = usb_submit_urb(tt->urb[i], GFP_KERNEL); in ttusbir_resume()
420 dev_warn(tt->dev, "failed to submit urb: %d\n", rc); in ttusbir_resume()