u132 113 drivers/usb/host/u132-hcd.c struct u132 *u132; u132 148 drivers/usb/host/u132-hcd.c struct u132 *u132; u132 174 drivers/usb/host/u132-hcd.c struct u132 *u132; u132 214 drivers/usb/host/u132-hcd.c #define u132_read_pcimem(u132, member, data) \ u132 215 drivers/usb/host/u132-hcd.c usb_ftdi_elan_read_pcimem(u132->platform_dev, offsetof(struct \ u132 217 drivers/usb/host/u132-hcd.c #define u132_write_pcimem(u132, member, data) \ u132 218 drivers/usb/host/u132-hcd.c usb_ftdi_elan_write_pcimem(u132->platform_dev, offsetof(struct \ u132 220 drivers/usb/host/u132-hcd.c static inline struct u132 *udev_to_u132(struct u132_udev *udev) u132 223 drivers/usb/host/u132-hcd.c return container_of(udev, struct u132, udev[udev_number]); u132 226 drivers/usb/host/u132-hcd.c static inline struct u132 *hcd_to_u132(struct usb_hcd *hcd) u132 228 drivers/usb/host/u132-hcd.c return (struct u132 *)(hcd->hcd_priv); u132 231 drivers/usb/host/u132-hcd.c static inline struct usb_hcd *u132_to_hcd(struct u132 *u132) u132 233 drivers/usb/host/u132-hcd.c return container_of((void *)u132, struct usb_hcd, hcd_priv); u132 236 drivers/usb/host/u132-hcd.c static inline void u132_disable(struct u132 *u132) u132 238 drivers/usb/host/u132-hcd.c u132_to_hcd(u132)->state = HC_STATE_HALT; u132 242 drivers/usb/host/u132-hcd.c #define kref_to_u132(d) container_of(d, struct u132, kref) u132 252 drivers/usb/host/u132-hcd.c struct u132 *u132 = kref_to_u132(kref); u132 253 drivers/usb/host/u132-hcd.c struct platform_device *pdev = u132->platform_dev; u132 254 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132); u132 255 drivers/usb/host/u132-hcd.c u132->going += 1; u132 257 drivers/usb/host/u132-hcd.c list_del_init(&u132->u132_list); u132 260 drivers/usb/host/u132-hcd.c dev_warn(&u132->platform_dev->dev, "FREEING the hcd=%p and thus the u13" u132 261 drivers/usb/host/u132-hcd.c "2=%p going=%d pdev=%p\n", hcd, u132, u132->going, pdev); u132 265 drivers/usb/host/u132-hcd.c static inline void u132_u132_put_kref(struct u132 *u132) u132 267 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 270 drivers/usb/host/u132-hcd.c static inline void u132_u132_init_kref(struct u132 *u132) u132 272 drivers/usb/host/u132-hcd.c kref_init(&u132->kref); u132 284 drivers/usb/host/u132-hcd.c static inline void u132_udev_put_kref(struct u132 *u132, struct u132_udev *udev) u132 289 drivers/usb/host/u132-hcd.c static inline void u132_udev_get_kref(struct u132 *u132, struct u132_udev *udev) u132 294 drivers/usb/host/u132-hcd.c static inline void u132_udev_init_kref(struct u132 *u132, u132 300 drivers/usb/host/u132-hcd.c static inline void u132_ring_put_kref(struct u132 *u132, struct u132_ring *ring) u132 302 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 305 drivers/usb/host/u132-hcd.c static void u132_ring_requeue_work(struct u132 *u132, struct u132_ring *ring, u132 313 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 316 drivers/usb/host/u132-hcd.c static void u132_ring_queue_work(struct u132 *u132, struct u132_ring *ring, u132 319 drivers/usb/host/u132-hcd.c kref_get(&u132->kref); u132 320 drivers/usb/host/u132-hcd.c u132_ring_requeue_work(u132, ring, delta); u132 323 drivers/usb/host/u132-hcd.c static void u132_ring_cancel_work(struct u132 *u132, struct u132_ring *ring) u132 326 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 332 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 335 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 336 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 356 drivers/usb/host/u132-hcd.c u132_udev_put_kref(u132, udev); u132 360 drivers/usb/host/u132-hcd.c u132_udev_put_kref(u132, udev); u132 362 drivers/usb/host/u132-hcd.c u132->endp[endp_number - 1] = NULL; u132 365 drivers/usb/host/u132-hcd.c u132_u132_put_kref(u132); u132 368 drivers/usb/host/u132-hcd.c static inline void u132_endp_put_kref(struct u132 *u132, struct u132_endp *endp) u132 373 drivers/usb/host/u132-hcd.c static inline void u132_endp_get_kref(struct u132 *u132, struct u132_endp *endp) u132 378 drivers/usb/host/u132-hcd.c static inline void u132_endp_init_kref(struct u132 *u132, u132 382 drivers/usb/host/u132-hcd.c kref_get(&u132->kref); u132 385 drivers/usb/host/u132-hcd.c static void u132_endp_queue_work(struct u132 *u132, struct u132_endp *endp, u132 392 drivers/usb/host/u132-hcd.c static void u132_endp_cancel_work(struct u132 *u132, struct u132_endp *endp) u132 398 drivers/usb/host/u132-hcd.c static inline void u132_monitor_put_kref(struct u132 *u132) u132 400 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 403 drivers/usb/host/u132-hcd.c static void u132_monitor_queue_work(struct u132 *u132, unsigned int delta) u132 405 drivers/usb/host/u132-hcd.c if (queue_delayed_work(workqueue, &u132->monitor, delta)) u132 406 drivers/usb/host/u132-hcd.c kref_get(&u132->kref); u132 409 drivers/usb/host/u132-hcd.c static void u132_monitor_requeue_work(struct u132 *u132, unsigned int delta) u132 411 drivers/usb/host/u132-hcd.c if (!queue_delayed_work(workqueue, &u132->monitor, delta)) u132 412 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 415 drivers/usb/host/u132-hcd.c static void u132_monitor_cancel_work(struct u132 *u132) u132 417 drivers/usb/host/u132-hcd.c if (cancel_delayed_work(&u132->monitor)) u132 418 drivers/usb/host/u132-hcd.c kref_put(&u132->kref, u132_hcd_delete); u132 421 drivers/usb/host/u132-hcd.c static int read_roothub_info(struct u132 *u132) u132 425 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, revision, &revision); u132 427 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "error %d accessing device co" u132 433 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device revision is not valid" u132 437 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &u132->hc_control); u132 439 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "error %d accessing device co" u132 443 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.status, u132 444 drivers/usb/host/u132-hcd.c &u132->hc_roothub_status); u132 446 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "error %d accessing device re" u132 450 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.a, &u132->hc_roothub_a); u132 452 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "error %d accessing device re" u132 457 drivers/usb/host/u132-hcd.c int I = u132->num_ports; u132 460 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.portstatus[i], u132 461 drivers/usb/host/u132-hcd.c &u132->hc_roothub_portstatus[i]); u132 463 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "error %d acc" u132 476 drivers/usb/host/u132-hcd.c struct u132 *u132 = container_of(work, struct u132, monitor.work); u132 477 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 478 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 479 drivers/usb/host/u132-hcd.c , u132->going); u132 480 drivers/usb/host/u132-hcd.c u132_monitor_put_kref(u132); u132 482 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 483 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 484 drivers/usb/host/u132-hcd.c u132_monitor_put_kref(u132); u132 488 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 489 drivers/usb/host/u132-hcd.c retval = read_roothub_info(u132); u132 491 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132); u132 492 drivers/usb/host/u132-hcd.c u132_disable(u132); u132 493 drivers/usb/host/u132-hcd.c u132->going = 1; u132 494 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 496 drivers/usb/host/u132-hcd.c ftdi_elan_gone_away(u132->platform_dev); u132 497 drivers/usb/host/u132-hcd.c u132_monitor_put_kref(u132); u132 500 drivers/usb/host/u132-hcd.c u132_monitor_requeue_work(u132, 500); u132 501 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 507 drivers/usb/host/u132-hcd.c static void u132_hcd_giveback_urb(struct u132 *u132, struct u132_endp *endp, u132 512 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132); u132 531 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 534 drivers/usb/host/u132-hcd.c u132_ring_cancel_work(u132, ring); u132 535 drivers/usb/host/u132-hcd.c u132_ring_queue_work(u132, ring, 0); u132 536 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 537 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 541 drivers/usb/host/u132-hcd.c static void u132_hcd_forget_urb(struct u132 *u132, struct u132_endp *endp, u132 544 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 547 drivers/usb/host/u132-hcd.c static void u132_hcd_abandon_urb(struct u132 *u132, struct u132_endp *endp, u132 551 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132); u132 573 drivers/usb/host/u132-hcd.c static inline int edset_input(struct u132 *u132, struct u132_ring *ring, u132 579 drivers/usb/host/u132-hcd.c return usb_ftdi_elan_edset_input(u132->platform_dev, ring->number, endp, u132 583 drivers/usb/host/u132-hcd.c static inline int edset_setup(struct u132 *u132, struct u132_ring *ring, u132 589 drivers/usb/host/u132-hcd.c return usb_ftdi_elan_edset_setup(u132->platform_dev, ring->number, endp, u132 593 drivers/usb/host/u132-hcd.c static inline int edset_single(struct u132 *u132, struct u132_ring *ring, u132 599 drivers/usb/host/u132-hcd.c return usb_ftdi_elan_edset_single(u132->platform_dev, ring->number, u132 603 drivers/usb/host/u132-hcd.c static inline int edset_output(struct u132 *u132, struct u132_ring *ring, u132 609 drivers/usb/host/u132-hcd.c return usb_ftdi_elan_edset_output(u132->platform_dev, ring->number, u132 623 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 624 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 625 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 626 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 627 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 628 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 629 drivers/usb/host/u132-hcd.c , u132->going); u132 630 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 631 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 635 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 636 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 638 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 639 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 641 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 642 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 661 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 662 drivers/usb/host/u132-hcd.c retval = edset_single(u132, ring, endp, urb, u132 666 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 673 drivers/usb/host/u132-hcd.c u132_ring_cancel_work(u132, ring); u132 674 drivers/usb/host/u132-hcd.c u132_ring_queue_work(u132, ring, 0); u132 675 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 676 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 684 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 685 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 700 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "urb=%p givin" u132 704 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 705 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 710 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 712 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 713 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 723 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 724 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 725 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 726 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 727 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 728 drivers/usb/host/u132-hcd.c , u132->going); u132 729 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 730 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 734 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 735 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 737 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 738 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 740 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 741 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 749 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 750 drivers/usb/host/u132-hcd.c retval = edset_output(u132, ring, endp, urb, address, u132 753 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 756 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 757 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 761 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 763 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 764 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 774 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 775 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 776 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 777 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 778 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 779 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 780 drivers/usb/host/u132-hcd.c , u132->going); u132 781 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 782 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 786 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 787 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 789 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 790 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 792 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 793 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 811 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 812 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_input(u132->platform_dev, u132 817 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 823 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 824 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 832 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 833 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 839 drivers/usb/host/u132-hcd.c dev_warn(&u132->platform_dev->dev, "urb=%p(SHORT NOT OK" u132 842 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 843 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 848 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 849 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 855 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "urb=%p giving back B" u132 858 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 859 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 864 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 866 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 867 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 877 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 878 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 879 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 880 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 881 drivers/usb/host/u132-hcd.c , u132->going); u132 882 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 883 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 887 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 888 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 890 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 891 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 893 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 894 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 897 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 898 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 901 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 903 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 904 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 914 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 915 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 916 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 917 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 918 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 919 drivers/usb/host/u132-hcd.c , u132->going); u132 920 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 921 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 925 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 926 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 928 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 929 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 931 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 932 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 948 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 949 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_empty(u132->platform_dev, u132 954 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 957 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 958 drivers/usb/host/u132-hcd.c dev_warn(&u132->platform_dev->dev, "giving back SETUP I" u132 960 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 964 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 965 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "giving back SETUP IN" u132 968 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 973 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 975 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 976 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 986 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 987 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 988 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 989 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 990 drivers/usb/host/u132-hcd.c , u132->going); u132 991 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 992 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 996 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 997 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 999 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1000 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1002 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1003 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1006 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1007 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1010 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1012 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1013 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1023 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1024 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1025 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1026 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1027 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1028 drivers/usb/host/u132-hcd.c , u132->going); u132 1029 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1030 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 1034 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1035 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 1037 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1038 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1040 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1041 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1047 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1048 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_input(u132->platform_dev, u132 1053 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1058 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1059 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_input(u132->platform_dev, u132 1064 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1068 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1070 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1071 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1081 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1082 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1083 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 1084 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1085 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1086 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1087 drivers/usb/host/u132-hcd.c , u132->going); u132 1088 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1089 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 1093 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1094 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 1096 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1097 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1099 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1100 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1103 drivers/usb/host/u132-hcd.c u132->addr[0].address = 0; u132 1105 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1106 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1109 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1111 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1112 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1122 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1123 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1124 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1125 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1126 drivers/usb/host/u132-hcd.c , u132->going); u132 1127 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1128 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 1132 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1133 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 1135 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1136 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1138 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1139 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1144 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1145 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_input(u132->platform_dev, u132 1149 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1152 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1154 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1155 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1165 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1166 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1167 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1168 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1169 drivers/usb/host/u132-hcd.c , u132->going); u132 1170 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1171 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 1175 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1176 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 1178 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1179 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1181 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1182 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1185 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1186 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1189 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1191 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1192 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1202 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1203 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1204 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1205 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1206 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1207 drivers/usb/host/u132-hcd.c , u132->going); u132 1208 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1209 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 1213 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1214 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 1216 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1217 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1219 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1220 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1233 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1234 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_empty(u132->platform_dev, u132 1238 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1241 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1243 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1244 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1254 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1255 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1256 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1257 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1258 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1259 drivers/usb/host/u132-hcd.c , u132->going); u132 1260 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1261 drivers/usb/host/u132-hcd.c u132_hcd_forget_urb(u132, endp, urb, -ENODEV); u132 1265 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1266 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -EINTR); u132 1268 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1269 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 1271 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1272 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, -ENODEV); u132 1277 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1278 drivers/usb/host/u132-hcd.c retval = usb_ftdi_elan_edset_input(u132->platform_dev, u132 1282 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1285 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "CALLBACK called urb=%p " u132 1287 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1288 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, 0); u132 1301 drivers/usb/host/u132-hcd.c struct u132 *u132 = ring->u132; u132 1302 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1304 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1305 drivers/usb/host/u132-hcd.c u132_ring_put_kref(u132, ring); u132 1315 drivers/usb/host/u132-hcd.c u132_endp_cancel_work(u132, last_endp); u132 1316 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, last_endp, 0); u132 1317 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1318 drivers/usb/host/u132-hcd.c u132_ring_put_kref(u132, ring); u132 1329 drivers/usb/host/u132-hcd.c u132_endp_cancel_work(u132, last_endp); u132 1330 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, last_endp, 0); u132 1331 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1332 drivers/usb/host/u132-hcd.c u132_ring_put_kref(u132, ring); u132 1340 drivers/usb/host/u132-hcd.c u132_ring_requeue_work(u132, ring, wakeup); u132 1341 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1344 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1345 drivers/usb/host/u132-hcd.c u132_ring_put_kref(u132, ring); u132 1349 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1350 drivers/usb/host/u132-hcd.c u132_ring_put_kref(u132, ring); u132 1360 drivers/usb/host/u132-hcd.c struct u132 *u132 = endp->u132; u132 1361 drivers/usb/host/u132-hcd.c mutex_lock(&u132->scheduler_lock); u132 1366 drivers/usb/host/u132-hcd.c usb_ftdi_elan_edset_flush(u132->platform_dev, u132 1368 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1369 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1372 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1373 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1376 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1377 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1380 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1381 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1384 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1386 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1387 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1396 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1397 drivers/usb/host/u132-hcd.c retval = edset_single(u132, ring, endp, urb, address, u132 1400 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1404 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1406 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1407 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1416 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1417 drivers/usb/host/u132-hcd.c retval = edset_setup(u132, ring, endp, urb, address, u132 1420 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1429 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1430 drivers/usb/host/u132-hcd.c retval = edset_setup(u132, ring, endp, urb, 0, 0x2, u132 1433 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1439 drivers/usb/host/u132-hcd.c address = u132->addr[endp->usb_addr].address; u132 1443 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1444 drivers/usb/host/u132-hcd.c retval = edset_setup(u132, ring, endp, urb, address, u132 1447 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, retval); u132 1452 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1454 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1455 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1464 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1465 drivers/usb/host/u132-hcd.c retval = edset_input(u132, ring, endp, urb, u132 1470 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 1475 drivers/usb/host/u132-hcd.c u8 address = u132->addr[endp->usb_addr].address; u132 1477 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1478 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 1487 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->scheduler_lock); u132 1488 drivers/usb/host/u132-hcd.c retval = edset_output(u132, ring, endp, urb, u132 1493 drivers/usb/host/u132-hcd.c u132_hcd_giveback_urb(u132, endp, urb, u132 1502 drivers/usb/host/u132-hcd.c static void port_power(struct u132 *u132, int pn, int is_on) u132 1504 drivers/usb/host/u132-hcd.c u132->port[pn].power = is_on; u132 1509 drivers/usb/host/u132-hcd.c static void u132_power(struct u132 *u132, int is_on) u132 1511 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132) u132 1514 drivers/usb/host/u132-hcd.c if (u132->power) u132 1516 drivers/usb/host/u132-hcd.c u132->power = 1; u132 1518 drivers/usb/host/u132-hcd.c u132->power = 0; u132 1523 drivers/usb/host/u132-hcd.c static int u132_periodic_reinit(struct u132 *u132) u132 1526 drivers/usb/host/u132-hcd.c u32 fi = u132->hc_fminterval & 0x03fff; u132 1529 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, fminterval, &fminterval); u132 1533 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, fminterval, u132 1534 drivers/usb/host/u132-hcd.c (fit ^ FIT) | u132->hc_fminterval); u132 1537 drivers/usb/host/u132-hcd.c return u132_write_pcimem(u132, periodicstart, u132 1556 drivers/usb/host/u132-hcd.c static int u132_init(struct u132 *u132) u132 1560 drivers/usb/host/u132-hcd.c u132_disable(u132); u132 1561 drivers/usb/host/u132-hcd.c u132->next_statechange = jiffies; u132 1562 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, intrdisable, OHCI_INTR_MIE); u132 1565 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &control); u132 1568 drivers/usb/host/u132-hcd.c if (u132->num_ports == 0) { u132 1570 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.a, &rh_a); u132 1573 drivers/usb/host/u132-hcd.c u132->num_ports = rh_a & RH_A_NDP; u132 1574 drivers/usb/host/u132-hcd.c retval = read_roothub_info(u132); u132 1578 drivers/usb/host/u132-hcd.c if (u132->num_ports > MAX_U132_PORTS) u132 1589 drivers/usb/host/u132-hcd.c static int u132_run(struct u132 *u132) u132 1599 drivers/usb/host/u132-hcd.c int first = u132->hc_fminterval == 0; u132 1602 drivers/usb/host/u132-hcd.c u132_disable(u132); u132 1605 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, fminterval, &temp); u132 1608 drivers/usb/host/u132-hcd.c u132->hc_fminterval = temp & 0x3fff; u132 1609 drivers/usb/host/u132-hcd.c u132->hc_fminterval |= FSMP(u132->hc_fminterval) << 16; u132 1611 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &u132->hc_control); u132 1614 drivers/usb/host/u132-hcd.c dev_info(&u132->platform_dev->dev, "resetting from state '%s', control " u132 1615 drivers/usb/host/u132-hcd.c "= %08X\n", hcfs2string(u132->hc_control & OHCI_CTRL_HCFS), u132 1616 drivers/usb/host/u132-hcd.c u132->hc_control); u132 1617 drivers/usb/host/u132-hcd.c switch (u132->hc_control & OHCI_CTRL_HCFS) { u132 1623 drivers/usb/host/u132-hcd.c u132->hc_control &= OHCI_CTRL_RWC; u132 1624 drivers/usb/host/u132-hcd.c u132->hc_control |= OHCI_USB_RESUME; u132 1628 drivers/usb/host/u132-hcd.c u132->hc_control &= OHCI_CTRL_RWC; u132 1629 drivers/usb/host/u132-hcd.c u132->hc_control |= OHCI_USB_RESET; u132 1633 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, control, u132->hc_control); u132 1636 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &control); u132 1640 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.a, &roothub_a); u132 1645 drivers/usb/host/u132-hcd.c for (temp = 0; temp < u132->num_ports; temp++) { u132 1646 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, u132 1652 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &control); u132 1656 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, cmdstatus, &status); u132 1659 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, cmdstatus, OHCI_HCR); u132 1663 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, cmdstatus, &status); u132 1668 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "USB HC reset" u132 1677 drivers/usb/host/u132-hcd.c if (u132->flags & OHCI_QUIRK_INITRESET) { u132 1678 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, control, u132->hc_control); u132 1681 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &control); u132 1685 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, ed_controlhead, 0x00000000); u132 1688 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, ed_bulkhead, 0x11000000); u132 1691 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, hcca, 0x00000000); u132 1694 drivers/usb/host/u132-hcd.c retval = u132_periodic_reinit(u132); u132 1697 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, fminterval, &fminterval); u132 1700 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, periodicstart, &periodicstart); u132 1704 drivers/usb/host/u132-hcd.c if (!(u132->flags & OHCI_QUIRK_INITRESET)) { u132 1705 drivers/usb/host/u132-hcd.c u132->flags |= OHCI_QUIRK_INITRESET; u132 1708 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "init err(%08x %04x)" u132 1711 drivers/usb/host/u132-hcd.c u132->hc_control &= OHCI_CTRL_RWC; u132 1712 drivers/usb/host/u132-hcd.c u132->hc_control |= OHCI_CONTROL_INIT | OHCI_CTRL_BLE | OHCI_USB_OPER; u132 1713 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, control, u132->hc_control); u132 1716 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, cmdstatus, OHCI_BLF); u132 1719 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, cmdstatus, &cmdstatus); u132 1722 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &control); u132 1725 drivers/usb/host/u132-hcd.c u132_to_hcd(u132)->state = HC_STATE_RUNNING; u132 1726 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, roothub.status, RH_HS_DRWE); u132 1729 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, intrstatus, mask); u132 1732 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, intrdisable, u132 1738 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.a, &roothub_a); u132 1742 drivers/usb/host/u132-hcd.c if (u132->flags & OHCI_QUIRK_SUPERIO) { u132 1745 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, roothub.a, roothub_a); u132 1748 drivers/usb/host/u132-hcd.c } else if ((u132->flags & OHCI_QUIRK_AMD756) || distrust_firmware) { u132 1750 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, roothub.a, roothub_a); u132 1754 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, roothub.status, RH_HS_LPSC); u132 1757 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, roothub.b, u132 1761 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, control, &control); u132 1765 drivers/usb/host/u132-hcd.c u132_to_hcd(u132)->state = HC_STATE_RUNNING; u132 1771 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 1772 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1773 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "u132 device %p(hcd=%p) has b" u132 1774 drivers/usb/host/u132-hcd.c "een removed %d\n", u132, hcd, u132->going); u132 1775 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1776 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device hcd=%p is being remov" u132 1779 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 1781 drivers/usb/host/u132-hcd.c u132_power(u132, 0); u132 1782 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 1788 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 1789 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1790 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1791 drivers/usb/host/u132-hcd.c , u132->going); u132 1793 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1794 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 1804 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 1807 drivers/usb/host/u132-hcd.c u132->flags = OHCI_QUIRK_AMD756; u132 1809 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "WARNING: OPTi workar" u132 1812 drivers/usb/host/u132-hcd.c u132->flags |= OHCI_QUIRK_ZFMICRO; u132 1813 drivers/usb/host/u132-hcd.c retval = u132_run(u132); u132 1815 drivers/usb/host/u132-hcd.c u132_disable(u132); u132 1816 drivers/usb/host/u132-hcd.c u132->going = 1; u132 1819 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 1822 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "platform_device missing\n"); u132 1829 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 1830 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 1831 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 1832 drivers/usb/host/u132-hcd.c , u132->going); u132 1834 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 1835 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 1839 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 1840 drivers/usb/host/u132-hcd.c retval = u132_init(u132); u132 1842 drivers/usb/host/u132-hcd.c u132_disable(u132); u132 1843 drivers/usb/host/u132-hcd.c u132->going = 1; u132 1845 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 1850 drivers/usb/host/u132-hcd.c static int create_endpoint_and_queue_int(struct u132 *u132, u132 1866 drivers/usb/host/u132-hcd.c rc = usb_hcd_link_urb_to_ep(u132_to_hcd(u132), urb); u132 1873 drivers/usb/host/u132-hcd.c endp_number = ++u132->num_endpoints; u132 1874 drivers/usb/host/u132-hcd.c urb->ep->hcpriv = u132->endp[endp_number - 1] = endp; u132 1877 drivers/usb/host/u132-hcd.c ring = endp->ring = &u132->ring[0]; u132 1890 drivers/usb/host/u132-hcd.c endp->u132 = u132; u132 1893 drivers/usb/host/u132-hcd.c u132_endp_init_kref(u132, endp); u132 1900 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 1907 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 1909 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 1920 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, msecs_to_jiffies(urb->interval)); u132 1924 drivers/usb/host/u132-hcd.c static int queue_int_on_old_endpoint(struct u132 *u132, u132 1929 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 1948 drivers/usb/host/u132-hcd.c static int create_endpoint_and_queue_bulk(struct u132 *u132, u132 1965 drivers/usb/host/u132-hcd.c rc = usb_hcd_link_urb_to_ep(u132_to_hcd(u132), urb); u132 1972 drivers/usb/host/u132-hcd.c endp_number = ++u132->num_endpoints; u132 1973 drivers/usb/host/u132-hcd.c urb->ep->hcpriv = u132->endp[endp_number - 1] = endp; u132 1981 drivers/usb/host/u132-hcd.c endp->u132 = u132; u132 1984 drivers/usb/host/u132-hcd.c u132_endp_init_kref(u132, endp); u132 1992 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 2000 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 2002 drivers/usb/host/u132-hcd.c ring = endp->ring = &u132->ring[ring_number - 1]; u132 2010 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2019 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, 0); u132 2023 drivers/usb/host/u132-hcd.c static int queue_bulk_on_old_endpoint(struct u132 *u132, struct u132_udev *udev, u132 2028 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2045 drivers/usb/host/u132-hcd.c static int create_endpoint_and_queue_control(struct u132 *u132, u132 2061 drivers/usb/host/u132-hcd.c rc = usb_hcd_link_urb_to_ep(u132_to_hcd(u132), urb); u132 2068 drivers/usb/host/u132-hcd.c endp_number = ++u132->num_endpoints; u132 2069 drivers/usb/host/u132-hcd.c urb->ep->hcpriv = u132->endp[endp_number - 1] = endp; u132 2072 drivers/usb/host/u132-hcd.c ring = endp->ring = &u132->ring[0]; u132 2085 drivers/usb/host/u132-hcd.c endp->u132 = u132; u132 2087 drivers/usb/host/u132-hcd.c u132_endp_init_kref(u132, endp); u132 2088 drivers/usb/host/u132-hcd.c u132_endp_get_kref(u132, endp); u132 2090 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 2091 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 2098 drivers/usb/host/u132-hcd.c u132_udev_init_kref(u132, udev); u132 2099 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 2102 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2108 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, 0); u132 2111 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 2112 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 2119 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 2123 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2129 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, 0); u132 2134 drivers/usb/host/u132-hcd.c static int queue_control_on_old_endpoint(struct u132 *u132, u132 2141 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2160 drivers/usb/host/u132-hcd.c struct u132_addr *addr = &u132->addr[usb_dev->devnum]; u132 2164 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[++i]; u132 2169 drivers/usb/host/u132-hcd.c u132->addr[0].address = i; u132 2173 drivers/usb/host/u132-hcd.c u132_udev_init_kref(u132, udev); u132 2176 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 2182 drivers/usb/host/u132-hcd.c u132_udev_get_kref(u132, udev); u132 2187 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "run out of d" u132 2191 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2211 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 2212 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 2213 drivers/usb/host/u132-hcd.c urb->hcpriv = u132; u132 2237 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2244 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2245 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2246 drivers/usb/host/u132-hcd.c , u132->going); u132 2248 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2249 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed " u132 2257 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 2258 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 2269 drivers/usb/host/u132-hcd.c u132, udev, urb, u132 2282 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, u132 2287 drivers/usb/host/u132-hcd.c } else if (u132->num_endpoints == MAX_U132_ENDPS) { u132 2290 drivers/usb/host/u132-hcd.c return create_endpoint_and_queue_int(u132, udev, u132 2295 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "the hardware does no" u132 2299 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 2300 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 2311 drivers/usb/host/u132-hcd.c u132, udev, urb, u132 2324 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, 0); u132 2327 drivers/usb/host/u132-hcd.c } else if (u132->num_endpoints == MAX_U132_ENDPS) { u132 2330 drivers/usb/host/u132-hcd.c return create_endpoint_and_queue_bulk(u132, u132 2360 drivers/usb/host/u132-hcd.c u132, urb, usb_dev, u132 2372 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, 0); u132 2375 drivers/usb/host/u132-hcd.c } else if (u132->num_endpoints == MAX_U132_ENDPS) { u132 2378 drivers/usb/host/u132-hcd.c return create_endpoint_and_queue_control(u132, u132 2385 drivers/usb/host/u132-hcd.c static int dequeue_from_overflow_chain(struct u132 *u132, u132 2392 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132); u132 2401 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "urb=%p not found in endp[%d]=%p ring" u132 2410 drivers/usb/host/u132-hcd.c static int u132_endp_urb_dequeue(struct u132 *u132, struct u132_endp *endp, u132 2417 drivers/usb/host/u132-hcd.c rc = usb_hcd_check_unlink_urb(u132_to_hcd(u132), urb, status); u132 2423 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "urb=%p not found in endp[%d]" u132 2435 drivers/usb/host/u132-hcd.c u132_endp_queue_work(u132, endp, 0); u132 2440 drivers/usb/host/u132-hcd.c u132_hcd_abandon_urb(u132, endp, urb, status); u132 2464 drivers/usb/host/u132-hcd.c struct usb_hcd *hcd = u132_to_hcd(u132); u132 2485 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "urb=%p not found in " u132 2498 drivers/usb/host/u132-hcd.c usb_hcd_unlink_urb_from_ep(u132_to_hcd(u132), urb); u132 2499 drivers/usb/host/u132-hcd.c retval = dequeue_from_overflow_chain(u132, endp, u132 2509 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2510 drivers/usb/host/u132-hcd.c if (u132->going > 2) { u132 2511 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2512 drivers/usb/host/u132-hcd.c , u132->going); u132 2517 drivers/usb/host/u132-hcd.c u8 address = u132->addr[usb_addr].address; u132 2518 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[address]; u132 2521 drivers/usb/host/u132-hcd.c struct u132_endp *endp = u132->endp[endp_number - 1]; u132 2522 drivers/usb/host/u132-hcd.c return u132_endp_urb_dequeue(u132, endp, urb, status); u132 2525 drivers/usb/host/u132-hcd.c struct u132_endp *endp = u132->endp[endp_number - 1]; u132 2526 drivers/usb/host/u132-hcd.c return u132_endp_urb_dequeue(u132, endp, urb, status); u132 2534 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2535 drivers/usb/host/u132-hcd.c if (u132->going > 2) { u132 2536 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "u132 device %p(hcd=%p hep=%p" u132 2537 drivers/usb/host/u132-hcd.c ") has been removed %d\n", u132, hcd, hep, u132 2538 drivers/usb/host/u132-hcd.c u132->going); u132 2542 drivers/usb/host/u132-hcd.c u132_endp_put_kref(u132, endp); u132 2548 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2549 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2550 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2551 drivers/usb/host/u132-hcd.c , u132->going); u132 2553 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2554 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 2557 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "TODO: u132_get_frame\n"); u132 2563 drivers/usb/host/u132-hcd.c static int u132_roothub_descriptor(struct u132 *u132, u132 2570 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.a, &rh_a); u132 2576 drivers/usb/host/u132-hcd.c desc->bNbrPorts = u132->num_ports; u132 2577 drivers/usb/host/u132-hcd.c temp = 1 + (u132->num_ports / 8); u132 2589 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, roothub.b, &rh_b); u132 2595 drivers/usb/host/u132-hcd.c if (u132->num_ports > 7) { u132 2603 drivers/usb/host/u132-hcd.c static int u132_roothub_status(struct u132 *u132, __le32 *desc) u132 2606 drivers/usb/host/u132-hcd.c int ret_status = u132_read_pcimem(u132, roothub.status, &rh_status); u132 2611 drivers/usb/host/u132-hcd.c static int u132_roothub_portstatus(struct u132 *u132, __le32 *desc, u16 wIndex) u132 2613 drivers/usb/host/u132-hcd.c if (wIndex == 0 || wIndex > u132->num_ports) { u132 2618 drivers/usb/host/u132-hcd.c int ret_portstatus = u132_read_pcimem(u132, u132 2622 drivers/usb/host/u132-hcd.c dev_info(&u132->platform_dev->dev, "Port %d Status Chan" u132 2635 drivers/usb/host/u132-hcd.c static int u132_roothub_portreset(struct u132 *u132, int port_index) u132 2641 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, fmnumber, &fmnumber); u132 2649 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, u132 2662 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, u132 2671 drivers/usb/host/u132-hcd.c retval = u132_write_pcimem(u132, roothub.portstatus[port_index], u132 2676 drivers/usb/host/u132-hcd.c retval = u132_read_pcimem(u132, fmnumber, &fmnumber); u132 2684 drivers/usb/host/u132-hcd.c static int u132_roothub_setportfeature(struct u132 *u132, u16 wValue, u132 2687 drivers/usb/host/u132-hcd.c if (wIndex == 0 || wIndex > u132->num_ports) { u132 2691 drivers/usb/host/u132-hcd.c struct u132_port *port = &u132->port[port_index]; u132 2695 drivers/usb/host/u132-hcd.c return u132_write_pcimem(u132, u132 2698 drivers/usb/host/u132-hcd.c return u132_write_pcimem(u132, u132 2701 drivers/usb/host/u132-hcd.c return u132_roothub_portreset(u132, port_index); u132 2708 drivers/usb/host/u132-hcd.c static int u132_roothub_clearportfeature(struct u132 *u132, u16 wValue, u132 2711 drivers/usb/host/u132-hcd.c if (wIndex == 0 || wIndex > u132->num_ports) { u132 2716 drivers/usb/host/u132-hcd.c struct u132_port *port = &u132->port[port_index]; u132 2727 drivers/usb/host/u132-hcd.c if ((u132->hc_control & OHCI_CTRL_HCFS) u132 2729 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "TODO resume_" u132 2751 drivers/usb/host/u132-hcd.c return u132_write_pcimem(u132, roothub.portstatus[port_index], u132 2760 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2761 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2762 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device hcd=%p has been remov" u132 2763 drivers/usb/host/u132-hcd.c "ed %d\n", hcd, u132->going); u132 2765 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2766 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device hcd=%p is being remov" u132 2771 drivers/usb/host/u132-hcd.c if (u132->flags & OHCI_QUIRK_AMD756) { u132 2772 drivers/usb/host/u132-hcd.c if ((u132->hc_roothub_a & RH_A_NDP) > MAX_ROOT_PORTS) { u132 2773 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "bogus NDP, r" u132 2775 drivers/usb/host/u132-hcd.c u132->hc_roothub_a & RH_A_NDP); u132 2779 drivers/usb/host/u132-hcd.c if (u132->hc_roothub_status & (RH_HS_LPSC | RH_HS_OCIC)) u132 2783 drivers/usb/host/u132-hcd.c if (u132->num_ports > 7) { u132 2787 drivers/usb/host/u132-hcd.c for (i = 0; i < u132->num_ports; i++) { u132 2788 drivers/usb/host/u132-hcd.c if (u132->hc_roothub_portstatus[i] & (RH_PS_CSC | u132 2798 drivers/usb/host/u132-hcd.c if (!(u132->hc_roothub_portstatus[i] & RH_PS_CCS)) u132 2801 drivers/usb/host/u132-hcd.c if ((u132->hc_roothub_portstatus[i] & RH_PS_PSS)) u132 2812 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2813 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2814 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2815 drivers/usb/host/u132-hcd.c , u132->going); u132 2817 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2818 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 2822 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 2843 drivers/usb/host/u132-hcd.c retval = u132_roothub_clearportfeature(u132, u132 2850 drivers/usb/host/u132-hcd.c retval = u132_roothub_descriptor(u132, u132 2857 drivers/usb/host/u132-hcd.c retval = u132_roothub_status(u132, u132 2864 drivers/usb/host/u132-hcd.c retval = u132_roothub_portstatus(u132, u132 2871 drivers/usb/host/u132-hcd.c retval = u132_roothub_setportfeature(u132, u132 2880 drivers/usb/host/u132-hcd.c u132_disable(u132); u132 2881 drivers/usb/host/u132-hcd.c u132->going = 1; u132 2887 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 2894 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2895 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2896 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2897 drivers/usb/host/u132-hcd.c , u132->going); u132 2899 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2900 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 2910 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2911 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2912 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2913 drivers/usb/host/u132-hcd.c , u132->going); u132 2915 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2916 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 2924 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2925 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 2926 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 2927 drivers/usb/host/u132-hcd.c , u132->going); u132 2929 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 2930 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 2942 drivers/usb/host/u132-hcd.c .hcd_priv_size = sizeof(struct u132), u132 2969 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 2970 drivers/usb/host/u132-hcd.c if (u132->going++ > 1) { u132 2971 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "already being remove" u132 2977 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "removing device u132" u132 2978 drivers/usb/host/u132-hcd.c ".%d\n", u132->sequence_num); u132 2980 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 2981 drivers/usb/host/u132-hcd.c u132_monitor_cancel_work(u132); u132 2983 drivers/usb/host/u132-hcd.c struct u132_ring *ring = &u132->ring[rings]; u132 2984 drivers/usb/host/u132-hcd.c u132_ring_cancel_work(u132, ring); u132 2987 drivers/usb/host/u132-hcd.c struct u132_endp *endp = u132->endp[endps]; u132 2989 drivers/usb/host/u132-hcd.c u132_endp_cancel_work(u132, endp); u132 2991 drivers/usb/host/u132-hcd.c u132->going += 1; u132 2993 drivers/usb/host/u132-hcd.c u132->sequence_num); u132 2994 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 2996 drivers/usb/host/u132-hcd.c u132_u132_put_kref(u132); u132 3003 drivers/usb/host/u132-hcd.c static void u132_initialise(struct u132 *u132, struct platform_device *pdev) u132 3010 drivers/usb/host/u132-hcd.c u132->board = dev_get_platdata(&pdev->dev); u132 3011 drivers/usb/host/u132-hcd.c u132->platform_dev = pdev; u132 3012 drivers/usb/host/u132-hcd.c u132->power = 0; u132 3013 drivers/usb/host/u132-hcd.c u132->reset = 0; u132 3014 drivers/usb/host/u132-hcd.c mutex_init(&u132->sw_lock); u132 3015 drivers/usb/host/u132-hcd.c mutex_init(&u132->scheduler_lock); u132 3017 drivers/usb/host/u132-hcd.c struct u132_ring *ring = &u132->ring[rings]; u132 3018 drivers/usb/host/u132-hcd.c ring->u132 = u132; u132 3025 drivers/usb/host/u132-hcd.c mutex_lock(&u132->sw_lock); u132 3026 drivers/usb/host/u132-hcd.c INIT_DELAYED_WORK(&u132->monitor, u132_hcd_monitor_work); u132 3028 drivers/usb/host/u132-hcd.c struct u132_port *port = &u132->port[ports]; u132 3029 drivers/usb/host/u132-hcd.c port->u132 = u132; u132 3036 drivers/usb/host/u132-hcd.c struct u132_addr *addr = &u132->addr[addrs]; u132 3040 drivers/usb/host/u132-hcd.c struct u132_udev *udev = &u132->udev[udevs]; u132 3055 drivers/usb/host/u132-hcd.c u132->endp[endps] = NULL; u132 3057 drivers/usb/host/u132-hcd.c mutex_unlock(&u132->sw_lock); u132 3088 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 3092 drivers/usb/host/u132-hcd.c list_add_tail(&u132->u132_list, &u132_static_list); u132 3093 drivers/usb/host/u132-hcd.c u132->sequence_num = ++u132_instances; u132 3095 drivers/usb/host/u132-hcd.c u132_u132_init_kref(u132); u132 3096 drivers/usb/host/u132-hcd.c u132_initialise(u132, pdev); u132 3100 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "init error %d\n", u132 3102 drivers/usb/host/u132-hcd.c u132_u132_put_kref(u132); u132 3106 drivers/usb/host/u132-hcd.c u132_monitor_queue_work(u132, 100); u132 3121 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 3122 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 3123 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 3124 drivers/usb/host/u132-hcd.c , u132->going); u132 3126 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 3127 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 3140 drivers/usb/host/u132-hcd.c port_power(u132, ports, 0); u132 3151 drivers/usb/host/u132-hcd.c struct u132 *u132 = hcd_to_u132(hcd); u132 3152 drivers/usb/host/u132-hcd.c if (u132->going > 1) { u132 3153 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device has been removed %d\n" u132 3154 drivers/usb/host/u132-hcd.c , u132->going); u132 3156 drivers/usb/host/u132-hcd.c } else if (u132->going > 0) { u132 3157 drivers/usb/host/u132-hcd.c dev_err(&u132->platform_dev->dev, "device is being removed\n"); u132 3161 drivers/usb/host/u132-hcd.c if (!u132->port[0].power) { u132 3164 drivers/usb/host/u132-hcd.c port_power(u132, ports, 1); u132 3216 drivers/usb/host/u132-hcd.c struct u132 *u132; u132 3217 drivers/usb/host/u132-hcd.c struct u132 *temp; u132 3221 drivers/usb/host/u132-hcd.c list_for_each_entry_safe(u132, temp, &u132_static_list, u132_list) { u132 3222 drivers/usb/host/u132-hcd.c platform_device_unregister(u132->platform_dev);