usblp 168 drivers/usb/class/usblp.c static void usblp_dump(struct usblp *usblp) usblp 170 drivers/usb/class/usblp.c struct device *dev = &usblp->intf->dev; usblp 173 drivers/usb/class/usblp.c dev_dbg(dev, "usblp=0x%p\n", usblp); usblp 174 drivers/usb/class/usblp.c dev_dbg(dev, "dev=0x%p\n", usblp->dev); usblp 175 drivers/usb/class/usblp.c dev_dbg(dev, "present=%d\n", usblp->present); usblp 176 drivers/usb/class/usblp.c dev_dbg(dev, "readbuf=0x%p\n", usblp->readbuf); usblp 177 drivers/usb/class/usblp.c dev_dbg(dev, "readcount=%d\n", usblp->readcount); usblp 178 drivers/usb/class/usblp.c dev_dbg(dev, "ifnum=%d\n", usblp->ifnum); usblp 181 drivers/usb/class/usblp.c usblp->protocol[p].alt_setting); usblp 183 drivers/usb/class/usblp.c usblp->protocol[p].epwrite); usblp 185 drivers/usb/class/usblp.c usblp->protocol[p].epread); usblp 187 drivers/usb/class/usblp.c dev_dbg(dev, "current_protocol=%d\n", usblp->current_protocol); usblp 188 drivers/usb/class/usblp.c dev_dbg(dev, "minor=%d\n", usblp->minor); usblp 189 drivers/usb/class/usblp.c dev_dbg(dev, "wstatus=%d\n", usblp->wstatus); usblp 190 drivers/usb/class/usblp.c dev_dbg(dev, "rstatus=%d\n", usblp->rstatus); usblp 191 drivers/usb/class/usblp.c dev_dbg(dev, "quirks=%d\n", usblp->quirks); usblp 192 drivers/usb/class/usblp.c dev_dbg(dev, "used=%d\n", usblp->used); usblp 193 drivers/usb/class/usblp.c dev_dbg(dev, "bidir=%d\n", usblp->bidir); usblp 195 drivers/usb/class/usblp.c usblp->device_id_string ? usblp 196 drivers/usb/class/usblp.c usblp->device_id_string + 2 : usblp 233 drivers/usb/class/usblp.c static int usblp_wwait(struct usblp *usblp, int nonblock); usblp 234 drivers/usb/class/usblp.c static int usblp_wtest(struct usblp *usblp, int nonblock); usblp 235 drivers/usb/class/usblp.c static int usblp_rwait_and_lock(struct usblp *usblp, int nonblock); usblp 236 drivers/usb/class/usblp.c static int usblp_rtest(struct usblp *usblp, int nonblock); usblp 237 drivers/usb/class/usblp.c static int usblp_submit_read(struct usblp *usblp); usblp 238 drivers/usb/class/usblp.c static int usblp_select_alts(struct usblp *usblp); usblp 239 drivers/usb/class/usblp.c static int usblp_set_protocol(struct usblp *usblp, int protocol); usblp 240 drivers/usb/class/usblp.c static int usblp_cache_device_id_string(struct usblp *usblp); usblp 250 drivers/usb/class/usblp.c static int usblp_ctrl_msg(struct usblp *usblp, int request, int type, int dir, int recip, int value, void *buf, int len) usblp 253 drivers/usb/class/usblp.c int index = usblp->ifnum; usblp 259 drivers/usb/class/usblp.c index = (usblp->ifnum<<8)|usblp->protocol[usblp->current_protocol].alt_setting; usblp 261 drivers/usb/class/usblp.c retval = usb_control_msg(usblp->dev, usblp 262 drivers/usb/class/usblp.c dir ? usb_rcvctrlpipe(usblp->dev, 0) : usb_sndctrlpipe(usblp->dev, 0), usblp 264 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, usblp 270 drivers/usb/class/usblp.c #define usblp_read_status(usblp, status)\ usblp 271 drivers/usb/class/usblp.c usblp_ctrl_msg(usblp, USBLP_REQ_GET_STATUS, USB_TYPE_CLASS, USB_DIR_IN, USB_RECIP_INTERFACE, 0, status, 1) usblp 272 drivers/usb/class/usblp.c #define usblp_get_id(usblp, config, id, maxlen)\ usblp 273 drivers/usb/class/usblp.c usblp_ctrl_msg(usblp, USBLP_REQ_GET_ID, USB_TYPE_CLASS, USB_DIR_IN, USB_RECIP_INTERFACE, config, id, maxlen) usblp 274 drivers/usb/class/usblp.c #define usblp_reset(usblp)\ usblp 275 drivers/usb/class/usblp.c usblp_ctrl_msg(usblp, USBLP_REQ_RESET, USB_TYPE_CLASS, USB_DIR_OUT, USB_RECIP_OTHER, 0, NULL, 0) usblp 277 drivers/usb/class/usblp.c #define usblp_hp_channel_change_request(usblp, channel, buffer) \ usblp 278 drivers/usb/class/usblp.c usblp_ctrl_msg(usblp, USBLP_REQ_HP_CHANNEL_CHANGE_REQUEST, USB_TYPE_VENDOR, USB_DIR_IN, USB_RECIP_INTERFACE, channel, buffer, 1) usblp 293 drivers/usb/class/usblp.c struct usblp *usblp = urb->context; usblp 297 drivers/usb/class/usblp.c if (usblp->present && usblp->used) { usblp 301 drivers/usb/class/usblp.c usblp->minor, status); usblp 303 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 305 drivers/usb/class/usblp.c usblp->rstatus = status; usblp 307 drivers/usb/class/usblp.c usblp->rstatus = urb->actual_length; usblp 308 drivers/usb/class/usblp.c usblp->rcomplete = 1; usblp 309 drivers/usb/class/usblp.c wake_up(&usblp->rwait); usblp 310 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 317 drivers/usb/class/usblp.c struct usblp *usblp = urb->context; usblp 321 drivers/usb/class/usblp.c if (usblp->present && usblp->used) { usblp 325 drivers/usb/class/usblp.c usblp->minor, status); usblp 327 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 329 drivers/usb/class/usblp.c usblp->wstatus = status; usblp 331 drivers/usb/class/usblp.c usblp->wstatus = urb->actual_length; usblp 332 drivers/usb/class/usblp.c usblp->no_paper = 0; usblp 333 drivers/usb/class/usblp.c usblp->wcomplete = 1; usblp 334 drivers/usb/class/usblp.c wake_up(&usblp->wwait); usblp 335 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 346 drivers/usb/class/usblp.c static int usblp_check_status(struct usblp *usblp, int err) usblp 351 drivers/usb/class/usblp.c mutex_lock(&usblp->mut); usblp 352 drivers/usb/class/usblp.c if ((error = usblp_read_status(usblp, usblp->statusbuf)) < 0) { usblp 353 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 356 drivers/usb/class/usblp.c usblp->minor, error); usblp 359 drivers/usb/class/usblp.c status = *usblp->statusbuf; usblp 360 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 371 drivers/usb/class/usblp.c usblp->minor, usblp_messages[newerr]); usblp 377 drivers/usb/class/usblp.c static int handle_bidir(struct usblp *usblp) usblp 379 drivers/usb/class/usblp.c if (usblp->bidir && usblp->used) { usblp 380 drivers/usb/class/usblp.c if (usblp_submit_read(usblp) < 0) usblp 393 drivers/usb/class/usblp.c struct usblp *usblp; usblp 406 drivers/usb/class/usblp.c usblp = usb_get_intfdata(intf); usblp 407 drivers/usb/class/usblp.c if (!usblp || !usblp->dev || !usblp->present) usblp 411 drivers/usb/class/usblp.c if (usblp->used) usblp 423 drivers/usb/class/usblp.c usblp->used = 1; usblp 424 drivers/usb/class/usblp.c file->private_data = usblp; usblp 426 drivers/usb/class/usblp.c usblp->wcomplete = 1; /* we begin writeable */ usblp 427 drivers/usb/class/usblp.c usblp->wstatus = 0; usblp 428 drivers/usb/class/usblp.c usblp->rcomplete = 0; usblp 430 drivers/usb/class/usblp.c if (handle_bidir(usblp) < 0) { usblp 432 drivers/usb/class/usblp.c usblp->used = 0; usblp 441 drivers/usb/class/usblp.c static void usblp_cleanup(struct usblp *usblp) usblp 443 drivers/usb/class/usblp.c printk(KERN_INFO "usblp%d: removed\n", usblp->minor); usblp 445 drivers/usb/class/usblp.c kfree(usblp->readbuf); usblp 446 drivers/usb/class/usblp.c kfree(usblp->device_id_string); usblp 447 drivers/usb/class/usblp.c kfree(usblp->statusbuf); usblp 448 drivers/usb/class/usblp.c usb_put_intf(usblp->intf); usblp 449 drivers/usb/class/usblp.c kfree(usblp); usblp 452 drivers/usb/class/usblp.c static void usblp_unlink_urbs(struct usblp *usblp) usblp 454 drivers/usb/class/usblp.c usb_kill_anchored_urbs(&usblp->urbs); usblp 459 drivers/usb/class/usblp.c struct usblp *usblp = file->private_data; usblp 461 drivers/usb/class/usblp.c usblp->flags &= ~LP_ABORT; usblp 464 drivers/usb/class/usblp.c usblp->used = 0; usblp 465 drivers/usb/class/usblp.c if (usblp->present) usblp 466 drivers/usb/class/usblp.c usblp_unlink_urbs(usblp); usblp 468 drivers/usb/class/usblp.c usb_autopm_put_interface(usblp->intf); usblp 470 drivers/usb/class/usblp.c if (!usblp->present) /* finish cleanup from disconnect */ usblp 471 drivers/usb/class/usblp.c usblp_cleanup(usblp); usblp 482 drivers/usb/class/usblp.c struct usblp *usblp = file->private_data; usblp 484 drivers/usb/class/usblp.c poll_wait(file, &usblp->rwait, wait); usblp 485 drivers/usb/class/usblp.c poll_wait(file, &usblp->wwait, wait); usblp 486 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 487 drivers/usb/class/usblp.c ret = ((usblp->bidir && usblp->rcomplete) ? EPOLLIN | EPOLLRDNORM : 0) | usblp 488 drivers/usb/class/usblp.c ((usblp->no_paper || usblp->wcomplete) ? EPOLLOUT | EPOLLWRNORM : 0); usblp 489 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 495 drivers/usb/class/usblp.c struct usblp *usblp = file->private_data; usblp 502 drivers/usb/class/usblp.c mutex_lock(&usblp->mut); usblp 503 drivers/usb/class/usblp.c if (!usblp->present) { usblp 508 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, usblp 522 drivers/usb/class/usblp.c length = usblp_cache_device_id_string(usblp); usblp 531 drivers/usb/class/usblp.c usblp->device_id_string, usblp 546 drivers/usb/class/usblp.c twoints[0] = usblp->current_protocol; usblp 550 drivers/usb/class/usblp.c if (usblp->protocol[i].alt_setting >= 0) usblp 571 drivers/usb/class/usblp.c usblp_dump(usblp); usblp 576 drivers/usb/class/usblp.c usblp_unlink_urbs(usblp); usblp 577 drivers/usb/class/usblp.c retval = usblp_set_protocol(usblp, arg); usblp 579 drivers/usb/class/usblp.c usblp_set_protocol(usblp, usblp 580 drivers/usb/class/usblp.c usblp->current_protocol); usblp 586 drivers/usb/class/usblp.c le16_to_cpu(usblp->dev->descriptor.idVendor) != 0x03F0 || usblp 587 drivers/usb/class/usblp.c usblp->quirks & USBLP_QUIRK_BIDIR) { usblp 592 drivers/usb/class/usblp.c err = usblp_hp_channel_change_request(usblp, usblp 595 drivers/usb/class/usblp.c dev_err(&usblp->dev->dev, usblp 598 drivers/usb/class/usblp.c usblp->minor, err); usblp 603 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, usblp 605 drivers/usb/class/usblp.c usblp->minor, arg, newChannel); usblp 615 drivers/usb/class/usblp.c twoints[0] = usblp->dev->bus->busnum; usblp 616 drivers/usb/class/usblp.c twoints[1] = usblp->dev->devnum; usblp 624 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, usblp 626 drivers/usb/class/usblp.c usblp->minor, twoints[0], twoints[1]); usblp 636 drivers/usb/class/usblp.c twoints[0] = le16_to_cpu(usblp->dev->descriptor.idVendor); usblp 637 drivers/usb/class/usblp.c twoints[1] = le16_to_cpu(usblp->dev->descriptor.idProduct); usblp 645 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, usblp 647 drivers/usb/class/usblp.c usblp->minor, twoints[0], twoints[1]); usblp 655 drivers/usb/class/usblp.c retval = usblp_reset(usblp); usblp 664 drivers/usb/class/usblp.c retval = usblp_read_status(usblp, usblp->statusbuf); usblp 668 drivers/usb/class/usblp.c usblp->minor, retval); usblp 672 drivers/usb/class/usblp.c status = *usblp->statusbuf; usblp 679 drivers/usb/class/usblp.c usblp->flags |= LP_ABORT; usblp 681 drivers/usb/class/usblp.c usblp->flags &= ~LP_ABORT; usblp 689 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 693 drivers/usb/class/usblp.c static struct urb *usblp_new_writeurb(struct usblp *usblp, int transfer_length) usblp 707 drivers/usb/class/usblp.c usb_fill_bulk_urb(urb, usblp->dev, usblp 708 drivers/usb/class/usblp.c usb_sndbulkpipe(usblp->dev, usblp 709 drivers/usb/class/usblp.c usblp->protocol[usblp->current_protocol].epwrite->bEndpointAddress), usblp 710 drivers/usb/class/usblp.c writebuf, transfer_length, usblp_bulk_write, usblp); usblp 718 drivers/usb/class/usblp.c struct usblp *usblp = file->private_data; usblp 724 drivers/usb/class/usblp.c if (mutex_lock_interruptible(&usblp->wmut)) { usblp 728 drivers/usb/class/usblp.c if ((rv = usblp_wwait(usblp, !!(file->f_flags & O_NONBLOCK))) < 0) usblp 739 drivers/usb/class/usblp.c writeurb = usblp_new_writeurb(usblp, transfer_length); usblp 742 drivers/usb/class/usblp.c usb_anchor_urb(writeurb, &usblp->urbs); usblp 750 drivers/usb/class/usblp.c spin_lock_irq(&usblp->lock); usblp 751 drivers/usb/class/usblp.c usblp->wcomplete = 0; usblp 752 drivers/usb/class/usblp.c spin_unlock_irq(&usblp->lock); usblp 754 drivers/usb/class/usblp.c usblp->wstatus = 0; usblp 755 drivers/usb/class/usblp.c spin_lock_irq(&usblp->lock); usblp 756 drivers/usb/class/usblp.c usblp->no_paper = 0; usblp 757 drivers/usb/class/usblp.c usblp->wcomplete = 1; usblp 758 drivers/usb/class/usblp.c wake_up(&usblp->wwait); usblp 759 drivers/usb/class/usblp.c spin_unlock_irq(&usblp->lock); usblp 768 drivers/usb/class/usblp.c rv = usblp_wwait(usblp, !!(file->f_flags&O_NONBLOCK)); usblp 775 drivers/usb/class/usblp.c spin_lock_irq(&usblp->lock); usblp 776 drivers/usb/class/usblp.c usblp->no_paper = 1; /* Mark for poll(2) */ usblp 777 drivers/usb/class/usblp.c spin_unlock_irq(&usblp->lock); usblp 784 drivers/usb/class/usblp.c if (usblp->wstatus < 0) { usblp 792 drivers/usb/class/usblp.c writecount += usblp->wstatus; usblp 795 drivers/usb/class/usblp.c mutex_unlock(&usblp->wmut); usblp 805 drivers/usb/class/usblp.c mutex_unlock(&usblp->wmut); usblp 817 drivers/usb/class/usblp.c struct usblp *usblp = file->private_data; usblp 822 drivers/usb/class/usblp.c if (!usblp->bidir) usblp 825 drivers/usb/class/usblp.c rv = usblp_rwait_and_lock(usblp, !!(file->f_flags & O_NONBLOCK)); usblp 829 drivers/usb/class/usblp.c if ((avail = usblp->rstatus) < 0) { usblp 831 drivers/usb/class/usblp.c usblp->minor, (int)avail); usblp 832 drivers/usb/class/usblp.c usblp_submit_read(usblp); usblp 837 drivers/usb/class/usblp.c count = len < avail - usblp->readcount ? len : avail - usblp->readcount; usblp 839 drivers/usb/class/usblp.c copy_to_user(buffer, usblp->readbuf + usblp->readcount, count)) { usblp 844 drivers/usb/class/usblp.c if ((usblp->readcount += count) == avail) { usblp 845 drivers/usb/class/usblp.c if (usblp_submit_read(usblp) < 0) { usblp 854 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 869 drivers/usb/class/usblp.c static int usblp_wwait(struct usblp *usblp, int nonblock) usblp 875 drivers/usb/class/usblp.c add_wait_queue(&usblp->wwait, &waita); usblp 877 drivers/usb/class/usblp.c if (mutex_lock_interruptible(&usblp->mut)) { usblp 882 drivers/usb/class/usblp.c rc = usblp_wtest(usblp, nonblock); usblp 883 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 888 drivers/usb/class/usblp.c if (usblp->flags & LP_ABORT) { usblp 889 drivers/usb/class/usblp.c err = usblp_check_status(usblp, err); usblp 896 drivers/usb/class/usblp.c mutex_lock(&usblp->mut); usblp 897 drivers/usb/class/usblp.c usblp_read_status(usblp, usblp->statusbuf); usblp 898 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 903 drivers/usb/class/usblp.c remove_wait_queue(&usblp->wwait, &waita); usblp 907 drivers/usb/class/usblp.c static int usblp_wtest(struct usblp *usblp, int nonblock) usblp 911 drivers/usb/class/usblp.c if (!usblp->present) usblp 915 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 916 drivers/usb/class/usblp.c if (usblp->wcomplete) { usblp 917 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 920 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 933 drivers/usb/class/usblp.c static int usblp_rwait_and_lock(struct usblp *usblp, int nonblock) usblp 938 drivers/usb/class/usblp.c add_wait_queue(&usblp->rwait, &waita); usblp 940 drivers/usb/class/usblp.c if (mutex_lock_interruptible(&usblp->mut)) { usblp 945 drivers/usb/class/usblp.c if ((rc = usblp_rtest(usblp, nonblock)) < 0) { usblp 946 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 951 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 955 drivers/usb/class/usblp.c remove_wait_queue(&usblp->rwait, &waita); usblp 959 drivers/usb/class/usblp.c static int usblp_rtest(struct usblp *usblp, int nonblock) usblp 963 drivers/usb/class/usblp.c if (!usblp->present) usblp 967 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 968 drivers/usb/class/usblp.c if (usblp->rcomplete) { usblp 969 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 972 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 981 drivers/usb/class/usblp.c static int usblp_submit_read(struct usblp *usblp) usblp 992 drivers/usb/class/usblp.c usb_fill_bulk_urb(urb, usblp->dev, usblp 993 drivers/usb/class/usblp.c usb_rcvbulkpipe(usblp->dev, usblp 994 drivers/usb/class/usblp.c usblp->protocol[usblp->current_protocol].epread->bEndpointAddress), usblp 995 drivers/usb/class/usblp.c usblp->readbuf, USBLP_BUF_SIZE_IN, usblp 996 drivers/usb/class/usblp.c usblp_bulk_read, usblp); usblp 997 drivers/usb/class/usblp.c usb_anchor_urb(urb, &usblp->urbs); usblp 999 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 1000 drivers/usb/class/usblp.c usblp->readcount = 0; /* XXX Why here? */ usblp 1001 drivers/usb/class/usblp.c usblp->rcomplete = 0; usblp 1002 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 1004 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, "error submitting urb (%d)\n", rc); usblp 1005 drivers/usb/class/usblp.c spin_lock_irqsave(&usblp->lock, flags); usblp 1006 drivers/usb/class/usblp.c usblp->rstatus = rc; usblp 1007 drivers/usb/class/usblp.c usblp->rcomplete = 1; usblp 1008 drivers/usb/class/usblp.c spin_unlock_irqrestore(&usblp->lock, flags); usblp 1077 drivers/usb/class/usblp.c struct usblp *usblp = usb_get_intfdata(intf); usblp 1079 drivers/usb/class/usblp.c if (usblp->device_id_string[0] == 0 && usblp 1080 drivers/usb/class/usblp.c usblp->device_id_string[1] == 0) usblp 1083 drivers/usb/class/usblp.c return sprintf(buf, "%s", usblp->device_id_string+2); usblp 1092 drivers/usb/class/usblp.c ATTRIBUTE_GROUPS(usblp); usblp 1098 drivers/usb/class/usblp.c struct usblp *usblp; usblp 1104 drivers/usb/class/usblp.c usblp = kzalloc(sizeof(struct usblp), GFP_KERNEL); usblp 1105 drivers/usb/class/usblp.c if (!usblp) { usblp 1109 drivers/usb/class/usblp.c usblp->dev = dev; usblp 1110 drivers/usb/class/usblp.c mutex_init(&usblp->wmut); usblp 1111 drivers/usb/class/usblp.c mutex_init(&usblp->mut); usblp 1112 drivers/usb/class/usblp.c spin_lock_init(&usblp->lock); usblp 1113 drivers/usb/class/usblp.c init_waitqueue_head(&usblp->rwait); usblp 1114 drivers/usb/class/usblp.c init_waitqueue_head(&usblp->wwait); usblp 1115 drivers/usb/class/usblp.c init_usb_anchor(&usblp->urbs); usblp 1116 drivers/usb/class/usblp.c usblp->ifnum = intf->cur_altsetting->desc.bInterfaceNumber; usblp 1117 drivers/usb/class/usblp.c usblp->intf = usb_get_intf(intf); usblp 1122 drivers/usb/class/usblp.c if (!(usblp->device_id_string = kmalloc(USBLP_DEVICE_ID_SIZE, GFP_KERNEL))) { usblp 1132 drivers/usb/class/usblp.c if (!(usblp->readbuf = kmalloc(USBLP_BUF_SIZE_IN, GFP_KERNEL))) { usblp 1138 drivers/usb/class/usblp.c usblp->statusbuf = kmalloc(STATUS_BUF_SIZE, GFP_KERNEL); usblp 1139 drivers/usb/class/usblp.c if (!usblp->statusbuf) { usblp 1145 drivers/usb/class/usblp.c usblp->quirks = usblp_quirks( usblp 1150 drivers/usb/class/usblp.c protocol = usblp_select_alts(usblp); usblp 1161 drivers/usb/class/usblp.c if (usblp_set_protocol(usblp, protocol) < 0) { usblp 1167 drivers/usb/class/usblp.c usblp_cache_device_id_string(usblp); usblp 1170 drivers/usb/class/usblp.c usblp_check_status(usblp, 0); usblp 1173 drivers/usb/class/usblp.c usb_set_intfdata(intf, usblp); usblp 1175 drivers/usb/class/usblp.c usblp->present = 1; usblp 1184 drivers/usb/class/usblp.c usblp->minor = intf->minor; usblp 1187 drivers/usb/class/usblp.c usblp->minor, usblp->bidir ? "Bi" : "Uni", dev->devnum, usblp 1188 drivers/usb/class/usblp.c usblp->ifnum, usblp 1189 drivers/usb/class/usblp.c usblp->protocol[usblp->current_protocol].alt_setting, usblp 1190 drivers/usb/class/usblp.c usblp->current_protocol, usblp 1191 drivers/usb/class/usblp.c le16_to_cpu(usblp->dev->descriptor.idVendor), usblp 1192 drivers/usb/class/usblp.c le16_to_cpu(usblp->dev->descriptor.idProduct)); usblp 1199 drivers/usb/class/usblp.c kfree(usblp->readbuf); usblp 1200 drivers/usb/class/usblp.c kfree(usblp->statusbuf); usblp 1201 drivers/usb/class/usblp.c kfree(usblp->device_id_string); usblp 1202 drivers/usb/class/usblp.c usb_put_intf(usblp->intf); usblp 1203 drivers/usb/class/usblp.c kfree(usblp); usblp 1231 drivers/usb/class/usblp.c static int usblp_select_alts(struct usblp *usblp) usblp 1239 drivers/usb/class/usblp.c if_alt = usblp->intf; usblp 1242 drivers/usb/class/usblp.c usblp->protocol[p].alt_setting = -1; usblp 1250 drivers/usb/class/usblp.c if (!(usblp->quirks & USBLP_QUIRK_BAD_CLASS)) usblp 1271 drivers/usb/class/usblp.c if (usblp->quirks & USBLP_QUIRK_BIDIR) { usblp 1274 drivers/usb/class/usblp.c usblp->minor); usblp 1278 drivers/usb/class/usblp.c usblp->protocol[ifd->desc.bInterfaceProtocol].alt_setting = usblp 1280 drivers/usb/class/usblp.c usblp->protocol[ifd->desc.bInterfaceProtocol].epwrite = epwrite; usblp 1281 drivers/usb/class/usblp.c usblp->protocol[ifd->desc.bInterfaceProtocol].epread = epread; usblp 1287 drivers/usb/class/usblp.c usblp->protocol[proto_bias].alt_setting != -1) usblp 1291 drivers/usb/class/usblp.c if (usblp->protocol[2].alt_setting != -1) usblp 1293 drivers/usb/class/usblp.c if (usblp->protocol[1].alt_setting != -1) usblp 1295 drivers/usb/class/usblp.c if (usblp->protocol[3].alt_setting != -1) usblp 1302 drivers/usb/class/usblp.c static int usblp_set_protocol(struct usblp *usblp, int protocol) usblp 1309 drivers/usb/class/usblp.c alts = usblp->protocol[protocol].alt_setting; usblp 1312 drivers/usb/class/usblp.c r = usb_set_interface(usblp->dev, usblp->ifnum, alts); usblp 1315 drivers/usb/class/usblp.c alts, usblp->ifnum); usblp 1319 drivers/usb/class/usblp.c usblp->bidir = (usblp->protocol[protocol].epread != NULL); usblp 1320 drivers/usb/class/usblp.c usblp->current_protocol = protocol; usblp 1321 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, "usblp%d set protocol %d\n", usblp 1322 drivers/usb/class/usblp.c usblp->minor, protocol); usblp 1329 drivers/usb/class/usblp.c static int usblp_cache_device_id_string(struct usblp *usblp) usblp 1333 drivers/usb/class/usblp.c err = usblp_get_id(usblp, 0, usblp->device_id_string, USBLP_DEVICE_ID_SIZE - 1); usblp 1335 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, usblp 1337 drivers/usb/class/usblp.c usblp->minor, err); usblp 1338 drivers/usb/class/usblp.c usblp->device_id_string[0] = usblp->device_id_string[1] = '\0'; usblp 1345 drivers/usb/class/usblp.c length = be16_to_cpu(*((__be16 *)usblp->device_id_string)); usblp 1350 drivers/usb/class/usblp.c usblp->device_id_string[length] = '\0'; usblp 1352 drivers/usb/class/usblp.c dev_dbg(&usblp->intf->dev, "usblp%d Device ID string [len=%d]=\"%s\"\n", usblp 1353 drivers/usb/class/usblp.c usblp->minor, length, &usblp->device_id_string[2]); usblp 1360 drivers/usb/class/usblp.c struct usblp *usblp = usb_get_intfdata(intf); usblp 1364 drivers/usb/class/usblp.c if (!usblp || !usblp->dev) { usblp 1370 drivers/usb/class/usblp.c mutex_lock(&usblp->mut); usblp 1371 drivers/usb/class/usblp.c usblp->present = 0; usblp 1372 drivers/usb/class/usblp.c wake_up(&usblp->wwait); usblp 1373 drivers/usb/class/usblp.c wake_up(&usblp->rwait); usblp 1376 drivers/usb/class/usblp.c usblp_unlink_urbs(usblp); usblp 1377 drivers/usb/class/usblp.c mutex_unlock(&usblp->mut); usblp 1379 drivers/usb/class/usblp.c if (!usblp->used) usblp 1380 drivers/usb/class/usblp.c usblp_cleanup(usblp); usblp 1386 drivers/usb/class/usblp.c struct usblp *usblp = usb_get_intfdata(intf); usblp 1388 drivers/usb/class/usblp.c usblp_unlink_urbs(usblp); usblp 1391 drivers/usb/class/usblp.c wake_up(&usblp->wwait); usblp 1392 drivers/usb/class/usblp.c wake_up(&usblp->rwait); usblp 1400 drivers/usb/class/usblp.c struct usblp *usblp = usb_get_intfdata(intf); usblp 1403 drivers/usb/class/usblp.c r = handle_bidir(usblp);