yld 129 drivers/input/misc/yealink.c static int setChar(struct yealink_dev *yld, int el, int chr) yld 139 drivers/input/misc/yealink.c yld->lcdMap[el] = chr; yld 145 drivers/input/misc/yealink.c yld->master.b[a] |= m; yld 147 drivers/input/misc/yealink.c yld->master.b[a] &= ~m; yld 160 drivers/input/misc/yealink.c yld->master.b[a] |= m; yld 162 drivers/input/misc/yealink.c yld->master.b[a] &= ~m; yld 222 drivers/input/misc/yealink.c static void report_key(struct yealink_dev *yld, int key) yld 224 drivers/input/misc/yealink.c struct input_dev *idev = yld->idev; yld 226 drivers/input/misc/yealink.c if (yld->key_code >= 0) { yld 228 drivers/input/misc/yealink.c input_report_key(idev, yld->key_code & 0xff, 0); yld 229 drivers/input/misc/yealink.c if (yld->key_code >> 8) yld 230 drivers/input/misc/yealink.c input_report_key(idev, yld->key_code >> 8, 0); yld 233 drivers/input/misc/yealink.c yld->key_code = key; yld 247 drivers/input/misc/yealink.c static int yealink_cmd(struct yealink_dev *yld, struct yld_ctl_packet *p) yld 256 drivers/input/misc/yealink.c return usb_control_msg(yld->udev, yld 257 drivers/input/misc/yealink.c usb_sndctrlpipe(yld->udev, 0), yld 279 drivers/input/misc/yealink.c static int yealink_set_ringtone(struct yealink_dev *yld, u8 *buf, size_t size) yld 281 drivers/input/misc/yealink.c struct yld_ctl_packet *p = yld->ctl_data; yld 288 drivers/input/misc/yealink.c memset(yld->ctl_data, 0, sizeof(*(yld->ctl_data))); yld 289 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_RING_VOLUME; yld 290 drivers/input/misc/yealink.c yld->ctl_data->size = 1; yld 291 drivers/input/misc/yealink.c yld->ctl_data->data[0] = buf[0]; yld 292 drivers/input/misc/yealink.c yealink_cmd(yld, p); yld 306 drivers/input/misc/yealink.c yealink_cmd(yld, p); yld 314 drivers/input/misc/yealink.c static int yealink_do_idle_tasks(struct yealink_dev *yld) yld 319 drivers/input/misc/yealink.c ix = yld->stat_ix; yld 321 drivers/input/misc/yealink.c memset(yld->ctl_data, 0, sizeof(*(yld->ctl_data))); yld 322 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_KEYPRESS; yld 323 drivers/input/misc/yealink.c yld->ctl_data->size = 1; yld 324 drivers/input/misc/yealink.c yld->ctl_data->sum = 0xff - CMD_KEYPRESS; yld 327 drivers/input/misc/yealink.c if (ix >= sizeof(yld->master)) { yld 328 drivers/input/misc/yealink.c yld->stat_ix = 0; yld 334 drivers/input/misc/yealink.c val = yld->master.b[ix]; yld 335 drivers/input/misc/yealink.c if (val != yld->copy.b[ix]) yld 337 drivers/input/misc/yealink.c } while (++ix < sizeof(yld->master)); yld 340 drivers/input/misc/yealink.c yld->stat_ix = 0; yld 349 drivers/input/misc/yealink.c yld->copy.b[ix] = val; yld 350 drivers/input/misc/yealink.c yld->ctl_data->data[0] = val; yld 354 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_LED; yld 355 drivers/input/misc/yealink.c yld->ctl_data->sum = -1 - CMD_LED - val; yld 358 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_DIALTONE; yld 359 drivers/input/misc/yealink.c yld->ctl_data->sum = -1 - CMD_DIALTONE - val; yld 362 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_RINGTONE; yld 363 drivers/input/misc/yealink.c yld->ctl_data->sum = -1 - CMD_RINGTONE - val; yld 368 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_SCANCODE; yld 369 drivers/input/misc/yealink.c yld->ctl_data->offset = cpu_to_be16(val); yld 370 drivers/input/misc/yealink.c yld->ctl_data->data[0] = 0; yld 371 drivers/input/misc/yealink.c yld->ctl_data->sum = -1 - CMD_SCANCODE - val; yld 374 drivers/input/misc/yealink.c len = sizeof(yld->master.s.lcd) - ix; yld 375 drivers/input/misc/yealink.c if (len > sizeof(yld->ctl_data->data)) yld 376 drivers/input/misc/yealink.c len = sizeof(yld->ctl_data->data); yld 380 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_LCD; yld 381 drivers/input/misc/yealink.c yld->ctl_data->offset = cpu_to_be16(ix); yld 382 drivers/input/misc/yealink.c yld->ctl_data->size = len; yld 383 drivers/input/misc/yealink.c yld->ctl_data->sum = -CMD_LCD - ix - val - len; yld 386 drivers/input/misc/yealink.c val = yld->master.b[ix]; yld 387 drivers/input/misc/yealink.c yld->copy.b[ix] = val; yld 388 drivers/input/misc/yealink.c yld->ctl_data->data[i] = val; yld 389 drivers/input/misc/yealink.c yld->ctl_data->sum -= val; yld 392 drivers/input/misc/yealink.c yld->stat_ix = ix + 1; yld 412 drivers/input/misc/yealink.c struct yealink_dev *yld = urb->context; yld 416 drivers/input/misc/yealink.c dev_err(&yld->intf->dev, "%s - urb status %d\n", yld 419 drivers/input/misc/yealink.c switch (yld->irq_data->cmd) { yld 422 drivers/input/misc/yealink.c yld->master.s.keynum = yld->irq_data->data[0]; yld 426 drivers/input/misc/yealink.c dev_dbg(&yld->intf->dev, "get scancode %x\n", yld 427 drivers/input/misc/yealink.c yld->irq_data->data[0]); yld 429 drivers/input/misc/yealink.c report_key(yld, map_p1k_to_key(yld->irq_data->data[0])); yld 433 drivers/input/misc/yealink.c dev_err(&yld->intf->dev, "unexpected response %x\n", yld 434 drivers/input/misc/yealink.c yld->irq_data->cmd); yld 437 drivers/input/misc/yealink.c yealink_do_idle_tasks(yld); yld 439 drivers/input/misc/yealink.c if (!yld->shutdown) { yld 440 drivers/input/misc/yealink.c ret = usb_submit_urb(yld->urb_ctl, GFP_ATOMIC); yld 442 drivers/input/misc/yealink.c dev_err(&yld->intf->dev, yld 450 drivers/input/misc/yealink.c struct yealink_dev *yld = urb->context; yld 454 drivers/input/misc/yealink.c dev_err(&yld->intf->dev, "%s - urb status %d\n", yld 457 drivers/input/misc/yealink.c switch (yld->ctl_data->cmd) { yld 461 drivers/input/misc/yealink.c if (!yld->shutdown) yld 462 drivers/input/misc/yealink.c ret = usb_submit_urb(yld->urb_irq, GFP_ATOMIC); yld 466 drivers/input/misc/yealink.c yealink_do_idle_tasks(yld); yld 467 drivers/input/misc/yealink.c if (!yld->shutdown) yld 468 drivers/input/misc/yealink.c ret = usb_submit_urb(yld->urb_ctl, GFP_ATOMIC); yld 473 drivers/input/misc/yealink.c dev_err(&yld->intf->dev, "%s - usb_submit_urb failed %d\n", yld 503 drivers/input/misc/yealink.c struct yealink_dev *yld = input_get_drvdata(dev); yld 506 drivers/input/misc/yealink.c dev_dbg(&yld->intf->dev, "%s\n", __func__); yld 509 drivers/input/misc/yealink.c for (i = 0; i<sizeof(yld->master); i++) yld 510 drivers/input/misc/yealink.c yld->copy.b[i] = ~yld->master.b[i]; yld 511 drivers/input/misc/yealink.c yld->key_code = -1; /* no keys pressed */ yld 513 drivers/input/misc/yealink.c yealink_set_ringtone(yld, default_ringtone, sizeof(default_ringtone)); yld 516 drivers/input/misc/yealink.c memset(yld->ctl_data, 0, sizeof(*(yld->ctl_data))); yld 517 drivers/input/misc/yealink.c yld->ctl_data->cmd = CMD_INIT; yld 518 drivers/input/misc/yealink.c yld->ctl_data->size = 10; yld 519 drivers/input/misc/yealink.c yld->ctl_data->sum = 0x100-CMD_INIT-10; yld 520 drivers/input/misc/yealink.c if ((ret = usb_submit_urb(yld->urb_ctl, GFP_KERNEL)) != 0) { yld 521 drivers/input/misc/yealink.c dev_dbg(&yld->intf->dev, yld 531 drivers/input/misc/yealink.c struct yealink_dev *yld = input_get_drvdata(dev); yld 533 drivers/input/misc/yealink.c yld->shutdown = 1; yld 540 drivers/input/misc/yealink.c usb_kill_urb(yld->urb_ctl); yld 541 drivers/input/misc/yealink.c usb_kill_urb(yld->urb_irq); yld 543 drivers/input/misc/yealink.c yld->shutdown = 0; yld 583 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 587 drivers/input/misc/yealink.c yld = dev_get_drvdata(dev); yld 588 drivers/input/misc/yealink.c if (yld == NULL) { yld 597 drivers/input/misc/yealink.c *buf++ = yld->lcdMap[i]; yld 633 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 637 drivers/input/misc/yealink.c yld = dev_get_drvdata(dev); yld 638 drivers/input/misc/yealink.c if (yld == NULL) { yld 646 drivers/input/misc/yealink.c setChar(yld, el++, buf[i]); yld 678 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 682 drivers/input/misc/yealink.c yld = dev_get_drvdata(dev); yld 683 drivers/input/misc/yealink.c if (yld == NULL) { yld 692 drivers/input/misc/yealink.c yld->lcdMap[i] == ' ' ? " " : "on", yld 703 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 707 drivers/input/misc/yealink.c yld = dev_get_drvdata(dev); yld 708 drivers/input/misc/yealink.c if (yld == NULL) { yld 717 drivers/input/misc/yealink.c setChar(yld, i, chr); yld 746 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 749 drivers/input/misc/yealink.c yld = dev_get_drvdata(dev); yld 750 drivers/input/misc/yealink.c if (yld == NULL) { yld 756 drivers/input/misc/yealink.c yealink_set_ringtone(yld, (char *)buf, count); yld 816 drivers/input/misc/yealink.c static int usb_cleanup(struct yealink_dev *yld, int err) yld 818 drivers/input/misc/yealink.c if (yld == NULL) yld 821 drivers/input/misc/yealink.c if (yld->idev) { yld 823 drivers/input/misc/yealink.c input_free_device(yld->idev); yld 825 drivers/input/misc/yealink.c input_unregister_device(yld->idev); yld 828 drivers/input/misc/yealink.c usb_free_urb(yld->urb_irq); yld 829 drivers/input/misc/yealink.c usb_free_urb(yld->urb_ctl); yld 831 drivers/input/misc/yealink.c kfree(yld->ctl_req); yld 832 drivers/input/misc/yealink.c usb_free_coherent(yld->udev, USB_PKT_LEN, yld->ctl_data, yld->ctl_dma); yld 833 drivers/input/misc/yealink.c usb_free_coherent(yld->udev, USB_PKT_LEN, yld->irq_data, yld->irq_dma); yld 835 drivers/input/misc/yealink.c kfree(yld); yld 841 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 844 drivers/input/misc/yealink.c yld = usb_get_intfdata(intf); yld 849 drivers/input/misc/yealink.c usb_cleanup(yld, 0); yld 858 drivers/input/misc/yealink.c struct yealink_dev *yld; yld 871 drivers/input/misc/yealink.c yld = kzalloc(sizeof(struct yealink_dev), GFP_KERNEL); yld 872 drivers/input/misc/yealink.c if (!yld) yld 875 drivers/input/misc/yealink.c yld->udev = udev; yld 876 drivers/input/misc/yealink.c yld->intf = intf; yld 878 drivers/input/misc/yealink.c yld->idev = input_dev = input_allocate_device(); yld 880 drivers/input/misc/yealink.c return usb_cleanup(yld, -ENOMEM); yld 883 drivers/input/misc/yealink.c yld->irq_data = usb_alloc_coherent(udev, USB_PKT_LEN, yld 884 drivers/input/misc/yealink.c GFP_KERNEL, &yld->irq_dma); yld 885 drivers/input/misc/yealink.c if (yld->irq_data == NULL) yld 886 drivers/input/misc/yealink.c return usb_cleanup(yld, -ENOMEM); yld 888 drivers/input/misc/yealink.c yld->ctl_data = usb_alloc_coherent(udev, USB_PKT_LEN, yld 889 drivers/input/misc/yealink.c GFP_KERNEL, &yld->ctl_dma); yld 890 drivers/input/misc/yealink.c if (!yld->ctl_data) yld 891 drivers/input/misc/yealink.c return usb_cleanup(yld, -ENOMEM); yld 893 drivers/input/misc/yealink.c yld->ctl_req = kmalloc(sizeof(*(yld->ctl_req)), GFP_KERNEL); yld 894 drivers/input/misc/yealink.c if (yld->ctl_req == NULL) yld 895 drivers/input/misc/yealink.c return usb_cleanup(yld, -ENOMEM); yld 898 drivers/input/misc/yealink.c yld->urb_irq = usb_alloc_urb(0, GFP_KERNEL); yld 899 drivers/input/misc/yealink.c if (yld->urb_irq == NULL) yld 900 drivers/input/misc/yealink.c return usb_cleanup(yld, -ENOMEM); yld 902 drivers/input/misc/yealink.c yld->urb_ctl = usb_alloc_urb(0, GFP_KERNEL); yld 903 drivers/input/misc/yealink.c if (yld->urb_ctl == NULL) yld 904 drivers/input/misc/yealink.c return usb_cleanup(yld, -ENOMEM); yld 914 drivers/input/misc/yealink.c usb_fill_int_urb(yld->urb_irq, udev, pipe, yld->irq_data, yld 917 drivers/input/misc/yealink.c yld, endpoint->bInterval); yld 918 drivers/input/misc/yealink.c yld->urb_irq->transfer_dma = yld->irq_dma; yld 919 drivers/input/misc/yealink.c yld->urb_irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; yld 920 drivers/input/misc/yealink.c yld->urb_irq->dev = udev; yld 923 drivers/input/misc/yealink.c yld->ctl_req->bRequestType = USB_TYPE_CLASS | USB_RECIP_INTERFACE | yld 925 drivers/input/misc/yealink.c yld->ctl_req->bRequest = USB_REQ_SET_CONFIGURATION; yld 926 drivers/input/misc/yealink.c yld->ctl_req->wValue = cpu_to_le16(0x200); yld 927 drivers/input/misc/yealink.c yld->ctl_req->wIndex = cpu_to_le16(interface->desc.bInterfaceNumber); yld 928 drivers/input/misc/yealink.c yld->ctl_req->wLength = cpu_to_le16(USB_PKT_LEN); yld 930 drivers/input/misc/yealink.c usb_fill_control_urb(yld->urb_ctl, udev, usb_sndctrlpipe(udev, 0), yld 931 drivers/input/misc/yealink.c (void *)yld->ctl_req, yld->ctl_data, USB_PKT_LEN, yld 932 drivers/input/misc/yealink.c urb_ctl_callback, yld); yld 933 drivers/input/misc/yealink.c yld->urb_ctl->transfer_dma = yld->ctl_dma; yld 934 drivers/input/misc/yealink.c yld->urb_ctl->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; yld 935 drivers/input/misc/yealink.c yld->urb_ctl->dev = udev; yld 938 drivers/input/misc/yealink.c usb_make_path(udev, yld->phys, sizeof(yld->phys)); yld 939 drivers/input/misc/yealink.c strlcat(yld->phys, "/input0", sizeof(yld->phys)); yld 943 drivers/input/misc/yealink.c input_dev->phys = yld->phys; yld 947 drivers/input/misc/yealink.c input_set_drvdata(input_dev, yld); yld 964 drivers/input/misc/yealink.c ret = input_register_device(yld->idev); yld 966 drivers/input/misc/yealink.c return usb_cleanup(yld, ret); yld 968 drivers/input/misc/yealink.c usb_set_intfdata(intf, yld); yld 972 drivers/input/misc/yealink.c setChar(yld, i, ' ');