Lines Matching refs:tt

45 	struct ttusbir *tt = container_of(led_dev, struct ttusbir, led);  in ttusbir_brightness_get()  local
47 return tt->led_on ? LED_FULL : LED_OFF; in ttusbir_brightness_get()
50 static void ttusbir_set_led(struct ttusbir *tt) in ttusbir_set_led() argument
56 if (tt->led_on != tt->is_led_on && tt->udev && in ttusbir_set_led()
57 atomic_add_unless(&tt->led_complete, 1, 1)) { in ttusbir_set_led()
58 tt->bulk_buffer[4] = tt->is_led_on = tt->led_on; in ttusbir_set_led()
59 ret = usb_submit_urb(tt->bulk_urb, GFP_ATOMIC); in ttusbir_set_led()
61 dev_warn(tt->dev, "failed to submit bulk urb: %d\n", in ttusbir_set_led()
63 atomic_dec(&tt->led_complete); in ttusbir_set_led()
71 struct ttusbir *tt = container_of(led_dev, struct ttusbir, led); in ttusbir_brightness_set() local
73 tt->led_on = brightness != LED_OFF; in ttusbir_brightness_set()
75 ttusbir_set_led(tt); in ttusbir_brightness_set()
83 struct ttusbir *tt = urb->context; in ttusbir_bulk_complete() local
85 atomic_dec(&tt->led_complete); in ttusbir_bulk_complete()
96 dev_dbg(tt->dev, "Error: urb status = %d\n", urb->status); in ttusbir_bulk_complete()
100 ttusbir_set_led(tt); in ttusbir_bulk_complete()
108 static void ttusbir_process_ir_data(struct ttusbir *tt, uint8_t *buf) in ttusbir_process_ir_data() argument
120 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
126 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
140 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
145 if (ir_raw_event_store_with_filter(tt->rc, &rawir)) in ttusbir_process_ir_data()
153 ir_raw_event_handle(tt->rc); in ttusbir_process_ir_data()
158 struct ttusbir *tt = urb->context; in ttusbir_urb_complete() local
163 ttusbir_process_ir_data(tt, urb->transfer_buffer); in ttusbir_urb_complete()
171 dev_dbg(tt->dev, "Error: urb status = %d\n", urb->status); in ttusbir_urb_complete()
177 dev_warn(tt->dev, "failed to resubmit urb: %d\n", rc); in ttusbir_urb_complete()
183 struct ttusbir *tt; in ttusbir_probe() local
190 tt = kzalloc(sizeof(*tt), GFP_KERNEL); in ttusbir_probe()
192 if (!tt || !rc) { in ttusbir_probe()
216 tt->bulk_out_endp = bulk_out_endp; in ttusbir_probe()
217 tt->iso_in_endp = iso_in_endp; in ttusbir_probe()
230 tt->dev = &intf->dev; in ttusbir_probe()
231 tt->udev = interface_to_usbdev(intf); in ttusbir_probe()
232 tt->rc = rc; in ttusbir_probe()
234 ret = usb_set_interface(tt->udev, 0, altsetting); in ttusbir_probe()
247 urb->dev = tt->udev; in ttusbir_probe()
248 urb->context = tt; in ttusbir_probe()
249 urb->pipe = usb_rcvisocpipe(tt->udev, tt->iso_in_endp); in ttusbir_probe()
251 buffer = usb_alloc_coherent(tt->udev, 128, GFP_KERNEL, in ttusbir_probe()
269 tt->urb[i] = urb; in ttusbir_probe()
272 tt->bulk_urb = usb_alloc_urb(0, GFP_KERNEL); in ttusbir_probe()
273 if (!tt->bulk_urb) { in ttusbir_probe()
278 tt->bulk_buffer[0] = 0xaa; in ttusbir_probe()
279 tt->bulk_buffer[1] = 0x01; in ttusbir_probe()
280 tt->bulk_buffer[2] = 0x05; in ttusbir_probe()
281 tt->bulk_buffer[3] = 0x01; in ttusbir_probe()
283 usb_fill_bulk_urb(tt->bulk_urb, tt->udev, usb_sndbulkpipe(tt->udev, in ttusbir_probe()
284 tt->bulk_out_endp), tt->bulk_buffer, sizeof(tt->bulk_buffer), in ttusbir_probe()
285 ttusbir_bulk_complete, tt); in ttusbir_probe()
287 tt->led.name = "ttusbir:green:power"; in ttusbir_probe()
288 tt->led.default_trigger = "rc-feedback"; in ttusbir_probe()
289 tt->led.brightness_set = ttusbir_brightness_set; in ttusbir_probe()
290 tt->led.brightness_get = ttusbir_brightness_get; in ttusbir_probe()
291 tt->is_led_on = tt->led_on = true; in ttusbir_probe()
292 atomic_set(&tt->led_complete, 0); in ttusbir_probe()
293 ret = led_classdev_register(&intf->dev, &tt->led); in ttusbir_probe()
297 usb_make_path(tt->udev, tt->phys, sizeof(tt->phys)); in ttusbir_probe()
300 rc->input_phys = tt->phys; in ttusbir_probe()
301 usb_to_input_id(tt->udev, &rc->input_id); in ttusbir_probe()
304 rc->priv = tt; in ttusbir_probe()
323 usb_set_intfdata(intf, tt); in ttusbir_probe()
326 ret = usb_submit_urb(tt->urb[i], GFP_KERNEL); in ttusbir_probe()
328 dev_err(tt->dev, "failed to submit urb %d\n", ret); in ttusbir_probe()
338 led_classdev_unregister(&tt->led); in ttusbir_probe()
340 if (tt) { in ttusbir_probe()
341 for (i = 0; i < NUM_URBS && tt->urb[i]; i++) { in ttusbir_probe()
342 struct urb *urb = tt->urb[i]; in ttusbir_probe()
345 usb_free_coherent(tt->udev, 128, urb->transfer_buffer, in ttusbir_probe()
349 usb_kill_urb(tt->bulk_urb); in ttusbir_probe()
350 usb_free_urb(tt->bulk_urb); in ttusbir_probe()
351 kfree(tt); in ttusbir_probe()
360 struct ttusbir *tt = usb_get_intfdata(intf); in ttusbir_disconnect() local
361 struct usb_device *udev = tt->udev; in ttusbir_disconnect()
364 tt->udev = NULL; in ttusbir_disconnect()
366 rc_unregister_device(tt->rc); in ttusbir_disconnect()
367 led_classdev_unregister(&tt->led); in ttusbir_disconnect()
369 usb_kill_urb(tt->urb[i]); in ttusbir_disconnect()
370 usb_free_coherent(udev, 128, tt->urb[i]->transfer_buffer, in ttusbir_disconnect()
371 tt->urb[i]->transfer_dma); in ttusbir_disconnect()
372 usb_free_urb(tt->urb[i]); in ttusbir_disconnect()
374 usb_kill_urb(tt->bulk_urb); in ttusbir_disconnect()
375 usb_free_urb(tt->bulk_urb); in ttusbir_disconnect()
377 kfree(tt); in ttusbir_disconnect()
382 struct ttusbir *tt = usb_get_intfdata(intf); in ttusbir_suspend() local
386 usb_kill_urb(tt->urb[i]); in ttusbir_suspend()
388 led_classdev_suspend(&tt->led); in ttusbir_suspend()
389 usb_kill_urb(tt->bulk_urb); in ttusbir_suspend()
396 struct ttusbir *tt = usb_get_intfdata(intf); in ttusbir_resume() local
399 tt->is_led_on = true; in ttusbir_resume()
400 led_classdev_resume(&tt->led); in ttusbir_resume()
403 rc = usb_submit_urb(tt->urb[i], GFP_NOIO); in ttusbir_resume()
405 dev_warn(tt->dev, "failed to submit urb: %d\n", rc); in ttusbir_resume()