Lines Matching refs:ar2
233 static int ati_remote2_submit_urbs(struct ati_remote2 *ar2) in ati_remote2_submit_urbs() argument
237 r = usb_submit_urb(ar2->urb[0], GFP_KERNEL); in ati_remote2_submit_urbs()
239 dev_err(&ar2->intf[0]->dev, in ati_remote2_submit_urbs()
243 r = usb_submit_urb(ar2->urb[1], GFP_KERNEL); in ati_remote2_submit_urbs()
245 usb_kill_urb(ar2->urb[0]); in ati_remote2_submit_urbs()
246 dev_err(&ar2->intf[1]->dev, in ati_remote2_submit_urbs()
254 static void ati_remote2_kill_urbs(struct ati_remote2 *ar2) in ati_remote2_kill_urbs() argument
256 usb_kill_urb(ar2->urb[1]); in ati_remote2_kill_urbs()
257 usb_kill_urb(ar2->urb[0]); in ati_remote2_kill_urbs()
262 struct ati_remote2 *ar2 = input_get_drvdata(idev); in ati_remote2_open() local
265 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_open()
267 r = usb_autopm_get_interface(ar2->intf[0]); in ati_remote2_open()
269 dev_err(&ar2->intf[0]->dev, in ati_remote2_open()
276 if (!(ar2->flags & ATI_REMOTE2_SUSPENDED)) { in ati_remote2_open()
277 r = ati_remote2_submit_urbs(ar2); in ati_remote2_open()
282 ar2->flags |= ATI_REMOTE2_OPENED; in ati_remote2_open()
286 usb_autopm_put_interface(ar2->intf[0]); in ati_remote2_open()
292 usb_autopm_put_interface(ar2->intf[0]); in ati_remote2_open()
299 struct ati_remote2 *ar2 = input_get_drvdata(idev); in ati_remote2_close() local
301 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_close()
305 if (!(ar2->flags & ATI_REMOTE2_SUSPENDED)) in ati_remote2_close()
306 ati_remote2_kill_urbs(ar2); in ati_remote2_close()
308 ar2->flags &= ~ATI_REMOTE2_OPENED; in ati_remote2_close()
313 static void ati_remote2_input_mouse(struct ati_remote2 *ar2) in ati_remote2_input_mouse() argument
315 struct input_dev *idev = ar2->idev; in ati_remote2_input_mouse()
316 u8 *data = ar2->buf[0]; in ati_remote2_input_mouse()
321 if (!((1 << channel) & ar2->channel_mask)) in ati_remote2_input_mouse()
327 dev_err(&ar2->intf[0]->dev, in ati_remote2_input_mouse()
333 if (!((1 << mode) & ar2->mode_mask)) in ati_remote2_input_mouse()
352 static void ati_remote2_input_key(struct ati_remote2 *ar2) in ati_remote2_input_key() argument
354 struct input_dev *idev = ar2->idev; in ati_remote2_input_key()
355 u8 *data = ar2->buf[1]; in ati_remote2_input_key()
360 if (!((1 << channel) & ar2->channel_mask)) in ati_remote2_input_key()
366 dev_err(&ar2->intf[1]->dev, in ati_remote2_input_key()
381 if (ar2->mode == mode) in ati_remote2_input_key()
385 ar2->mode = mode; in ati_remote2_input_key()
388 if (!((1 << mode) & ar2->mode_mask)) in ati_remote2_input_key()
393 dev_err(&ar2->intf[1]->dev, in ati_remote2_input_key()
403 ar2->jiffies = jiffies + msecs_to_jiffies(idev->rep[REP_DELAY]); in ati_remote2_input_key()
408 if (ar2->keycode[mode][index] == BTN_LEFT || in ati_remote2_input_key()
409 ar2->keycode[mode][index] == BTN_RIGHT) in ati_remote2_input_key()
412 if (!time_after_eq(jiffies, ar2->jiffies)) in ati_remote2_input_key()
415 ar2->jiffies = jiffies + msecs_to_jiffies(idev->rep[REP_PERIOD]); in ati_remote2_input_key()
418 dev_err(&ar2->intf[1]->dev, in ati_remote2_input_key()
424 input_event(idev, EV_KEY, ar2->keycode[mode][index], data[1]); in ati_remote2_input_key()
430 struct ati_remote2 *ar2 = urb->context; in ati_remote2_complete_mouse() local
435 usb_mark_last_busy(ar2->udev); in ati_remote2_complete_mouse()
436 ati_remote2_input_mouse(ar2); in ati_remote2_complete_mouse()
442 dev_dbg(&ar2->intf[0]->dev, in ati_remote2_complete_mouse()
446 usb_mark_last_busy(ar2->udev); in ati_remote2_complete_mouse()
447 dev_err(&ar2->intf[0]->dev, in ati_remote2_complete_mouse()
453 dev_err(&ar2->intf[0]->dev, in ati_remote2_complete_mouse()
459 struct ati_remote2 *ar2 = urb->context; in ati_remote2_complete_key() local
464 usb_mark_last_busy(ar2->udev); in ati_remote2_complete_key()
465 ati_remote2_input_key(ar2); in ati_remote2_complete_key()
471 dev_dbg(&ar2->intf[1]->dev, in ati_remote2_complete_key()
475 usb_mark_last_busy(ar2->udev); in ati_remote2_complete_key()
476 dev_err(&ar2->intf[1]->dev, in ati_remote2_complete_key()
482 dev_err(&ar2->intf[1]->dev, in ati_remote2_complete_key()
489 struct ati_remote2 *ar2 = input_get_drvdata(idev); in ati_remote2_getkeycode() local
519 ke->keycode = ar2->keycode[mode][offset]; in ati_remote2_getkeycode()
531 struct ati_remote2 *ar2 = input_get_drvdata(idev); in ati_remote2_setkeycode() local
557 *old_keycode = ar2->keycode[mode][offset]; in ati_remote2_setkeycode()
558 ar2->keycode[mode][offset] = ke->keycode; in ati_remote2_setkeycode()
563 if (ar2->keycode[mode][index] == *old_keycode) in ati_remote2_setkeycode()
573 static int ati_remote2_input_init(struct ati_remote2 *ar2) in ati_remote2_input_init() argument
582 ar2->idev = idev; in ati_remote2_input_init()
583 input_set_drvdata(idev, ar2); in ati_remote2_input_init()
592 ar2->keycode[mode][index] = ati_remote2_key_table[index].keycode; in ati_remote2_input_init()
593 __set_bit(ar2->keycode[mode][index], idev->keybit); in ati_remote2_input_init()
599 ar2->keycode[ATI_REMOTE2_AUX1][index] = KEY_PROG1; in ati_remote2_input_init()
600 ar2->keycode[ATI_REMOTE2_AUX2][index] = KEY_PROG2; in ati_remote2_input_init()
601 ar2->keycode[ATI_REMOTE2_AUX3][index] = KEY_PROG3; in ati_remote2_input_init()
602 ar2->keycode[ATI_REMOTE2_AUX4][index] = KEY_PROG4; in ati_remote2_input_init()
603 ar2->keycode[ATI_REMOTE2_PC][index] = KEY_PC; in ati_remote2_input_init()
619 idev->name = ar2->name; in ati_remote2_input_init()
620 idev->phys = ar2->phys; in ati_remote2_input_init()
622 usb_to_input_id(ar2->udev, &idev->id); in ati_remote2_input_init()
623 idev->dev.parent = &ar2->udev->dev; in ati_remote2_input_init()
632 static int ati_remote2_urb_init(struct ati_remote2 *ar2) in ati_remote2_urb_init() argument
634 struct usb_device *udev = ar2->udev; in ati_remote2_urb_init()
638 ar2->buf[i] = usb_alloc_coherent(udev, 4, GFP_KERNEL, &ar2->buf_dma[i]); in ati_remote2_urb_init()
639 if (!ar2->buf[i]) in ati_remote2_urb_init()
642 ar2->urb[i] = usb_alloc_urb(0, GFP_KERNEL); in ati_remote2_urb_init()
643 if (!ar2->urb[i]) in ati_remote2_urb_init()
646 pipe = usb_rcvintpipe(udev, ar2->ep[i]->bEndpointAddress); in ati_remote2_urb_init()
650 usb_fill_int_urb(ar2->urb[i], udev, pipe, ar2->buf[i], maxp, in ati_remote2_urb_init()
652 ar2, ar2->ep[i]->bInterval); in ati_remote2_urb_init()
653 ar2->urb[i]->transfer_dma = ar2->buf_dma[i]; in ati_remote2_urb_init()
654 ar2->urb[i]->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in ati_remote2_urb_init()
660 static void ati_remote2_urb_cleanup(struct ati_remote2 *ar2) in ati_remote2_urb_cleanup() argument
665 usb_free_urb(ar2->urb[i]); in ati_remote2_urb_cleanup()
666 usb_free_coherent(ar2->udev, 4, ar2->buf[i], ar2->buf_dma[i]); in ati_remote2_urb_cleanup()
670 static int ati_remote2_setup(struct ati_remote2 *ar2, unsigned int ch_mask) in ati_remote2_setup() argument
692 r = usb_control_msg(ar2->udev, usb_sndctrlpipe(ar2->udev, 0), in ati_remote2_setup()
697 dev_err(&ar2->udev->dev, "%s - failed to set channel due to error: %d\n", in ati_remote2_setup()
711 struct ati_remote2 *ar2 = usb_get_intfdata(intf); in ati_remote2_show_channel_mask() local
713 return sprintf(buf, "0x%04x\n", ar2->channel_mask); in ati_remote2_show_channel_mask()
722 struct ati_remote2 *ar2 = usb_get_intfdata(intf); in ati_remote2_store_channel_mask() local
733 r = usb_autopm_get_interface(ar2->intf[0]); in ati_remote2_store_channel_mask()
735 dev_err(&ar2->intf[0]->dev, in ati_remote2_store_channel_mask()
742 if (mask != ar2->channel_mask) { in ati_remote2_store_channel_mask()
743 r = ati_remote2_setup(ar2, mask); in ati_remote2_store_channel_mask()
745 ar2->channel_mask = mask; in ati_remote2_store_channel_mask()
750 usb_autopm_put_interface(ar2->intf[0]); in ati_remote2_store_channel_mask()
761 struct ati_remote2 *ar2 = usb_get_intfdata(intf); in ati_remote2_show_mode_mask() local
763 return sprintf(buf, "0x%02x\n", ar2->mode_mask); in ati_remote2_show_mode_mask()
772 struct ati_remote2 *ar2 = usb_get_intfdata(intf); in ati_remote2_store_mode_mask() local
783 ar2->mode_mask = mask; in ati_remote2_store_mode_mask()
808 struct ati_remote2 *ar2; in ati_remote2_probe() local
814 ar2 = kzalloc(sizeof (struct ati_remote2), GFP_KERNEL); in ati_remote2_probe()
815 if (!ar2) in ati_remote2_probe()
818 ar2->udev = udev; in ati_remote2_probe()
827 ar2->intf[0] = interface; in ati_remote2_probe()
828 ar2->ep[0] = &alt->endpoint[0].desc; in ati_remote2_probe()
831 ar2->intf[1] = usb_ifnum_to_if(udev, 1); in ati_remote2_probe()
832 if ((udev->actconfig->desc.bNumInterfaces < 2) || !ar2->intf[1]) { in ati_remote2_probe()
839 r = usb_driver_claim_interface(&ati_remote2_driver, ar2->intf[1], ar2); in ati_remote2_probe()
844 alt = ar2->intf[1]->cur_altsetting; in ati_remote2_probe()
851 ar2->ep[1] = &alt->endpoint[0].desc; in ati_remote2_probe()
853 r = ati_remote2_urb_init(ar2); in ati_remote2_probe()
857 ar2->channel_mask = channel_mask; in ati_remote2_probe()
858 ar2->mode_mask = mode_mask; in ati_remote2_probe()
860 r = ati_remote2_setup(ar2, ar2->channel_mask); in ati_remote2_probe()
864 usb_make_path(udev, ar2->phys, sizeof(ar2->phys)); in ati_remote2_probe()
865 strlcat(ar2->phys, "/input0", sizeof(ar2->phys)); in ati_remote2_probe()
867 strlcat(ar2->name, "ATI Remote Wonder II", sizeof(ar2->name)); in ati_remote2_probe()
873 r = ati_remote2_input_init(ar2); in ati_remote2_probe()
877 usb_set_intfdata(interface, ar2); in ati_remote2_probe()
886 ati_remote2_urb_cleanup(ar2); in ati_remote2_probe()
888 usb_driver_release_interface(&ati_remote2_driver, ar2->intf[1]); in ati_remote2_probe()
890 kfree(ar2); in ati_remote2_probe()
897 struct ati_remote2 *ar2; in ati_remote2_disconnect() local
903 ar2 = usb_get_intfdata(interface); in ati_remote2_disconnect()
906 input_unregister_device(ar2->idev); in ati_remote2_disconnect()
908 sysfs_remove_group(&ar2->udev->dev.kobj, &ati_remote2_attr_group); in ati_remote2_disconnect()
910 ati_remote2_urb_cleanup(ar2); in ati_remote2_disconnect()
912 usb_driver_release_interface(&ati_remote2_driver, ar2->intf[1]); in ati_remote2_disconnect()
914 kfree(ar2); in ati_remote2_disconnect()
920 struct ati_remote2 *ar2; in ati_remote2_suspend() local
926 ar2 = usb_get_intfdata(interface); in ati_remote2_suspend()
928 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_suspend()
932 if (ar2->flags & ATI_REMOTE2_OPENED) in ati_remote2_suspend()
933 ati_remote2_kill_urbs(ar2); in ati_remote2_suspend()
935 ar2->flags |= ATI_REMOTE2_SUSPENDED; in ati_remote2_suspend()
944 struct ati_remote2 *ar2; in ati_remote2_resume() local
951 ar2 = usb_get_intfdata(interface); in ati_remote2_resume()
953 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_resume()
957 if (ar2->flags & ATI_REMOTE2_OPENED) in ati_remote2_resume()
958 r = ati_remote2_submit_urbs(ar2); in ati_remote2_resume()
961 ar2->flags &= ~ATI_REMOTE2_SUSPENDED; in ati_remote2_resume()
970 struct ati_remote2 *ar2; in ati_remote2_reset_resume() local
977 ar2 = usb_get_intfdata(interface); in ati_remote2_reset_resume()
979 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_reset_resume()
983 r = ati_remote2_setup(ar2, ar2->channel_mask); in ati_remote2_reset_resume()
987 if (ar2->flags & ATI_REMOTE2_OPENED) in ati_remote2_reset_resume()
988 r = ati_remote2_submit_urbs(ar2); in ati_remote2_reset_resume()
991 ar2->flags &= ~ATI_REMOTE2_SUSPENDED; in ati_remote2_reset_resume()
1001 struct ati_remote2 *ar2; in ati_remote2_pre_reset() local
1007 ar2 = usb_get_intfdata(interface); in ati_remote2_pre_reset()
1009 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_pre_reset()
1013 if (ar2->flags == ATI_REMOTE2_OPENED) in ati_remote2_pre_reset()
1014 ati_remote2_kill_urbs(ar2); in ati_remote2_pre_reset()
1021 struct ati_remote2 *ar2; in ati_remote2_post_reset() local
1028 ar2 = usb_get_intfdata(interface); in ati_remote2_post_reset()
1030 dev_dbg(&ar2->intf[0]->dev, "%s()\n", __func__); in ati_remote2_post_reset()
1032 if (ar2->flags == ATI_REMOTE2_OPENED) in ati_remote2_post_reset()
1033 r = ati_remote2_submit_urbs(ar2); in ati_remote2_post_reset()