epq 136 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq = NULL; epq 139 drivers/usb/host/isp1362-hcd.c epq = &isp1362_hcd->istl_queue[0]; epq 141 drivers/usb/host/isp1362-hcd.c epq = &isp1362_hcd->istl_queue[1]; epq 143 drivers/usb/host/isp1362-hcd.c epq = &isp1362_hcd->intl_queue; epq 146 drivers/usb/host/isp1362-hcd.c epq = &isp1362_hcd->atl_queue; epq 148 drivers/usb/host/isp1362-hcd.c if (epq) epq 149 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: PTD $%04x is on %s queue\n", __func__, offset, epq->name); epq 153 drivers/usb/host/isp1362-hcd.c return epq; epq 156 drivers/usb/host/isp1362-hcd.c static inline int get_ptd_offset(struct isp1362_ep_queue *epq, u8 index) epq 160 drivers/usb/host/isp1362-hcd.c if (index * epq->blk_size > epq->buf_size) { epq 162 drivers/usb/host/isp1362-hcd.c __func__, epq->name, index, epq 163 drivers/usb/host/isp1362-hcd.c epq->buf_size / epq->blk_size); epq 166 drivers/usb/host/isp1362-hcd.c offset = epq->buf_start + index * epq->blk_size; epq 167 drivers/usb/host/isp1362-hcd.c DBG(3, "%s: %s PTD[%02x] # %04x\n", __func__, epq->name, index, offset); epq 174 drivers/usb/host/isp1362-hcd.c static inline u16 max_transfer_size(struct isp1362_ep_queue *epq, size_t size, epq 179 drivers/usb/host/isp1362-hcd.c xfer_size = min_t(size_t, xfer_size, epq->buf_avail * epq->blk_size - PTD_HEADER_SIZE); epq 186 drivers/usb/host/isp1362-hcd.c static int claim_ptd_buffers(struct isp1362_ep_queue *epq, epq 190 drivers/usb/host/isp1362-hcd.c int num_ptds = ((len + PTD_HEADER_SIZE - 1) / epq->blk_size) + 1; epq 193 drivers/usb/host/isp1362-hcd.c BUG_ON(len > epq->buf_size); epq 195 drivers/usb/host/isp1362-hcd.c if (!epq->buf_avail) epq 200 drivers/usb/host/isp1362-hcd.c epq->name, len, epq->blk_size, num_ptds, epq->buf_map, epq->skip_map); epq 203 drivers/usb/host/isp1362-hcd.c found = bitmap_find_next_zero_area(&epq->buf_map, epq->buf_count, 0, epq 205 drivers/usb/host/isp1362-hcd.c if (found >= epq->buf_count) epq 209 drivers/usb/host/isp1362-hcd.c num_ptds, found, len, (int)(epq->blk_size - PTD_HEADER_SIZE)); epq 210 drivers/usb/host/isp1362-hcd.c ptd_offset = get_ptd_offset(epq, found); epq 214 drivers/usb/host/isp1362-hcd.c epq->buf_avail -= num_ptds; epq 215 drivers/usb/host/isp1362-hcd.c BUG_ON(epq->buf_avail > epq->buf_count); epq 217 drivers/usb/host/isp1362-hcd.c bitmap_set(&epq->buf_map, found, num_ptds); epq 219 drivers/usb/host/isp1362-hcd.c __func__, epq->name, ep->ptd_index, ep->ptd_offset, epq 220 drivers/usb/host/isp1362-hcd.c epq->buf_avail, epq->buf_count, num_ptds, epq->buf_map, epq->skip_map); epq 225 drivers/usb/host/isp1362-hcd.c static inline void release_ptd_buffers(struct isp1362_ep_queue *epq, struct isp1362_ep *ep) epq 229 drivers/usb/host/isp1362-hcd.c if (last > epq->buf_count) epq 231 drivers/usb/host/isp1362-hcd.c __func__, ep, ep->num_req, ep->length, epq->name, ep->ptd_index, epq 232 drivers/usb/host/isp1362-hcd.c ep->ptd_offset, ep->num_ptds, epq->buf_count, epq->buf_avail, epq 233 drivers/usb/host/isp1362-hcd.c epq->buf_map, epq->skip_map); epq 234 drivers/usb/host/isp1362-hcd.c BUG_ON(last > epq->buf_count); epq 236 drivers/usb/host/isp1362-hcd.c bitmap_clear(&epq->buf_map, ep->ptd_index, ep->num_ptds); epq 237 drivers/usb/host/isp1362-hcd.c bitmap_set(&epq->skip_map, ep->ptd_index, ep->num_ptds); epq 238 drivers/usb/host/isp1362-hcd.c epq->buf_avail += ep->num_ptds; epq 239 drivers/usb/host/isp1362-hcd.c epq->ptd_count--; epq 241 drivers/usb/host/isp1362-hcd.c BUG_ON(epq->buf_avail > epq->buf_count); epq 242 drivers/usb/host/isp1362-hcd.c BUG_ON(epq->ptd_count > epq->buf_count); epq 245 drivers/usb/host/isp1362-hcd.c __func__, epq->name, epq 246 drivers/usb/host/isp1362-hcd.c ep->ptd_offset, ep->num_ptds, epq->buf_avail, epq->buf_count); epq 248 drivers/usb/host/isp1362-hcd.c epq->buf_map, epq->skip_map); epq 261 drivers/usb/host/isp1362-hcd.c struct isp1362_ep *ep, struct isp1362_ep_queue *epq, epq 270 drivers/usb/host/isp1362-hcd.c DBG(3, "%s: %s ep %p\n", __func__, epq->name, ep); epq 286 drivers/usb/host/isp1362-hcd.c len = max_transfer_size(epq, buf_len, ep->maxpacket); epq 298 drivers/usb/host/isp1362-hcd.c len = max_transfer_size(epq, buf_len, ep->maxpacket); epq 346 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq) epq 362 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq) epq 371 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: ep %p removed from active list %p\n", __func__, ep, &epq->active); epq 402 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq; epq 407 drivers/usb/host/isp1362-hcd.c epq = get_ptd_queue(isp1362_hcd, ep->ptd_offset); epq 408 drivers/usb/host/isp1362-hcd.c BUG_ON(!epq); epq 422 drivers/usb/host/isp1362-hcd.c index, ep->ptd_offset, epq->skip_map, 1 << index); epq 425 drivers/usb/host/isp1362-hcd.c epq->skip_map |= 1 << index; epq 426 drivers/usb/host/isp1362-hcd.c if (epq == &isp1362_hcd->atl_queue) { epq 428 drivers/usb/host/isp1362-hcd.c isp1362_read_reg32(isp1362_hcd, HCATLSKIP), epq->skip_map); epq 429 drivers/usb/host/isp1362-hcd.c isp1362_write_reg32(isp1362_hcd, HCATLSKIP, epq->skip_map); epq 430 drivers/usb/host/isp1362-hcd.c if (~epq->skip_map == 0) epq 432 drivers/usb/host/isp1362-hcd.c } else if (epq == &isp1362_hcd->intl_queue) { epq 434 drivers/usb/host/isp1362-hcd.c isp1362_read_reg32(isp1362_hcd, HCINTLSKIP), epq->skip_map); epq 435 drivers/usb/host/isp1362-hcd.c isp1362_write_reg32(isp1362_hcd, HCINTLSKIP, epq->skip_map); epq 436 drivers/usb/host/isp1362-hcd.c if (~epq->skip_map == 0) epq 659 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq = epq 663 drivers/usb/host/isp1362-hcd.c BUG_ON(epq == NULL); epq 667 drivers/usb/host/isp1362-hcd.c release_ptd_buffers(epq, ep); epq 714 drivers/usb/host/isp1362-hcd.c struct isp1362_ep *ep, struct isp1362_ep_queue *epq) epq 718 drivers/usb/host/isp1362-hcd.c prepare_ptd(isp1362_hcd, urb, ep, epq, 0); epq 719 drivers/usb/host/isp1362-hcd.c index = claim_ptd_buffers(epq, ep, ep->length); epq 722 drivers/usb/host/isp1362-hcd.c ep->num_req, epq->name, ep->num_ptds, epq->buf_map, epq->skip_map); epq 726 drivers/usb/host/isp1362-hcd.c __func__, ep->num_req, ep->length, epq->name, ep->num_ptds, epq 727 drivers/usb/host/isp1362-hcd.c epq->buf_map, epq->skip_map); epq 731 drivers/usb/host/isp1362-hcd.c list_add_tail(&ep->active, &epq->active); epq 733 drivers/usb/host/isp1362-hcd.c ep, ep->num_req, ep->length, &epq->active); epq 734 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Submitting %s PTD $%04x for ep %p req %d\n", __func__, epq->name, epq 736 drivers/usb/host/isp1362-hcd.c isp1362_write_ptd(isp1362_hcd, ep, epq); epq 737 drivers/usb/host/isp1362-hcd.c __clear_bit(ep->ptd_index, &epq->skip_map); epq 745 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq = &isp1362_hcd->atl_queue; epq 749 drivers/usb/host/isp1362-hcd.c if (atomic_read(&epq->finishing)) { epq 750 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: finish_transfers is active for %s\n", __func__, epq->name); epq 759 drivers/usb/host/isp1362-hcd.c DBG(2, "%s: Skipping active %s ep %p\n", __func__, epq->name, ep); epq 763 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Processing %s ep %p req %d\n", __func__, epq->name, epq 766 drivers/usb/host/isp1362-hcd.c ret = submit_req(isp1362_hcd, urb, ep, epq); epq 788 drivers/usb/host/isp1362-hcd.c epq->ptd_count += ptd_count; epq 789 drivers/usb/host/isp1362-hcd.c if (epq->ptd_count > epq->stat_maxptds) { epq 790 drivers/usb/host/isp1362-hcd.c epq->stat_maxptds = epq->ptd_count; epq 791 drivers/usb/host/isp1362-hcd.c DBG(0, "%s: max_ptds: %d\n", __func__, epq->stat_maxptds); epq 798 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq = &isp1362_hcd->intl_queue; epq 801 drivers/usb/host/isp1362-hcd.c if (atomic_read(&epq->finishing)) { epq 802 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: finish_transfers is active for %s\n", __func__, epq->name); epq 812 drivers/usb/host/isp1362-hcd.c epq->name, ep); epq 817 drivers/usb/host/isp1362-hcd.c epq->name, ep, ep->num_req); epq 818 drivers/usb/host/isp1362-hcd.c ret = submit_req(isp1362_hcd, urb, ep, epq); epq 836 drivers/usb/host/isp1362-hcd.c epq->ptd_count += ptd_count; epq 837 drivers/usb/host/isp1362-hcd.c if (epq->ptd_count > epq->stat_maxptds) epq 838 drivers/usb/host/isp1362-hcd.c epq->stat_maxptds = epq->ptd_count; epq 841 drivers/usb/host/isp1362-hcd.c static inline int next_ptd(struct isp1362_ep_queue *epq, struct isp1362_ep *ep) epq 844 drivers/usb/host/isp1362-hcd.c int num_ptds = (ep->length + PTD_HEADER_SIZE + (epq->blk_size - 1)) / epq->blk_size; epq 847 drivers/usb/host/isp1362-hcd.c ep->length, num_ptds, epq->blk_size, ptd_offset + num_ptds * epq->blk_size); epq 849 drivers/usb/host/isp1362-hcd.c ptd_offset += num_ptds * epq->blk_size; epq 850 drivers/usb/host/isp1362-hcd.c if (ptd_offset < epq->buf_start + epq->buf_size) epq 860 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq; epq 867 drivers/usb/host/isp1362-hcd.c epq = &isp1362_hcd->istl_queue[flip]; epq 868 drivers/usb/host/isp1362-hcd.c if (atomic_read(&epq->finishing)) { epq 869 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: finish_transfers is active for %s\n", __func__, epq->name); epq 873 drivers/usb/host/isp1362-hcd.c if (!list_empty(&epq->active)) epq 876 drivers/usb/host/isp1362-hcd.c ptd_offset = epq->buf_start; epq 881 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Processing %s ep %p\n", __func__, epq->name, ep); epq 895 drivers/usb/host/isp1362-hcd.c prepare_ptd(isp1362_hcd, urb, ep, epq, fno); epq 897 drivers/usb/host/isp1362-hcd.c epq->buf_start + epq->buf_size) { epq 903 drivers/usb/host/isp1362-hcd.c list_add_tail(&ep->active, &epq->active); epq 905 drivers/usb/host/isp1362-hcd.c ptd_offset = next_ptd(epq, ep); epq 908 drivers/usb/host/isp1362-hcd.c __func__, ep->num_req, epq->name); epq 913 drivers/usb/host/isp1362-hcd.c list_for_each_entry(ep, &epq->active, active) { epq 914 drivers/usb/host/isp1362-hcd.c if (epq->active.next == &ep->active) epq 916 drivers/usb/host/isp1362-hcd.c isp1362_write_ptd(isp1362_hcd, ep, epq); epq 923 drivers/usb/host/isp1362-hcd.c epq->ptd_count += ptd_count; epq 924 drivers/usb/host/isp1362-hcd.c if (epq->ptd_count > epq->stat_maxptds) epq 925 drivers/usb/host/isp1362-hcd.c epq->stat_maxptds = epq->ptd_count; epq 938 drivers/usb/host/isp1362-hcd.c struct isp1362_ep_queue *epq) epq 943 drivers/usb/host/isp1362-hcd.c if (list_empty(&epq->active)) { epq 944 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Nothing to do for %s queue\n", __func__, epq->name); epq 948 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Finishing %s transfers %08lx\n", __func__, epq->name, done_map); epq 950 drivers/usb/host/isp1362-hcd.c atomic_inc(&epq->finishing); epq 951 drivers/usb/host/isp1362-hcd.c list_for_each_entry_safe(ep, tmp, &epq->active, active) { epq 954 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Checking %s PTD[%02x] $%04x\n", __func__, epq->name, epq 959 drivers/usb/host/isp1362-hcd.c isp1362_read_ptd(isp1362_hcd, ep, epq); epq 960 drivers/usb/host/isp1362-hcd.c epq->free_ptd = index; epq 962 drivers/usb/host/isp1362-hcd.c release_ptd_buffers(epq, ep); epq 970 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Postprocessing %s ep %p req %d\n", __func__, epq->name, epq 979 drivers/usb/host/isp1362-hcd.c __func__, done_map, epq->skip_map); epq 980 drivers/usb/host/isp1362-hcd.c atomic_dec(&epq->finishing); epq 983 drivers/usb/host/isp1362-hcd.c static void finish_iso_transfers(struct isp1362_hcd *isp1362_hcd, struct isp1362_ep_queue *epq) epq 988 drivers/usb/host/isp1362-hcd.c if (list_empty(&epq->active)) { epq 989 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Nothing to do for %s queue\n", __func__, epq->name); epq 993 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Finishing %s transfers\n", __func__, epq->name); epq 995 drivers/usb/host/isp1362-hcd.c atomic_inc(&epq->finishing); epq 996 drivers/usb/host/isp1362-hcd.c list_for_each_entry_safe(ep, tmp, &epq->active, active) { epq 999 drivers/usb/host/isp1362-hcd.c isp1362_read_ptd(isp1362_hcd, ep, epq); epq 1000 drivers/usb/host/isp1362-hcd.c DBG(1, "%s: Postprocessing %s ep %p\n", __func__, epq->name, ep); epq 1003 drivers/usb/host/isp1362-hcd.c WARN_ON(epq->blk_size != 0); epq 1004 drivers/usb/host/isp1362-hcd.c atomic_dec(&epq->finishing); epq 951 drivers/usb/host/isp1362.h static void dump_ptd_queue(struct isp1362_ep_queue *epq) epq 957 drivers/usb/host/isp1362.h list_for_each_entry(ep, &epq->active, active) { epq 968 drivers/usb/host/isp1362.h #define dump_ptd_queue(epq) do {} while (0) epq 1503 fs/eventpoll.c struct ep_pqueue epq; epq 1531 fs/eventpoll.c epq.epi = epi; epq 1532 fs/eventpoll.c init_poll_funcptr(&epq.pt, ep_ptable_queue_proc); epq 1541 fs/eventpoll.c revents = ep_item_poll(epi, &epq.pt, 1);