Lines Matching refs:trackers

138 static void set_tracker_dma(struct dma_tracker_list *trackers,  in set_tracker_dma()  argument
142 trackers->list[tag].dma = dma; in set_tracker_dma()
145 static struct rsxx_dma *get_tracker_dma(struct dma_tracker_list *trackers, in get_tracker_dma() argument
148 return trackers->list[tag].dma; in get_tracker_dma()
151 static int pop_tracker(struct dma_tracker_list *trackers) in pop_tracker() argument
155 spin_lock(&trackers->lock); in pop_tracker()
156 tag = trackers->head; in pop_tracker()
158 trackers->head = trackers->list[tag].next_tag; in pop_tracker()
159 trackers->list[tag].next_tag = -1; in pop_tracker()
161 spin_unlock(&trackers->lock); in pop_tracker()
166 static void push_tracker(struct dma_tracker_list *trackers, int tag) in push_tracker() argument
168 spin_lock(&trackers->lock); in push_tracker()
169 trackers->list[tag].next_tag = trackers->head; in push_tracker()
170 trackers->head = tag; in push_tracker()
171 trackers->list[tag].dma = NULL; in push_tracker()
172 spin_unlock(&trackers->lock); in push_tracker()
418 tag = pop_tracker(ctrl->trackers); in rsxx_issue_dmas()
434 push_tracker(ctrl->trackers, tag); in rsxx_issue_dmas()
458 push_tracker(ctrl->trackers, tag); in rsxx_issue_dmas()
464 set_tracker_dma(ctrl->trackers, tag, dma); in rsxx_issue_dmas()
539 dma = get_tracker_dma(ctrl->trackers, tag); in rsxx_dma_done()
568 push_tracker(ctrl->trackers, tag); in rsxx_dma_done()
826 ctrl->trackers = vmalloc(DMA_TRACKER_LIST_SIZE8); in rsxx_dma_ctrl_init()
827 if (!ctrl->trackers) in rsxx_dma_ctrl_init()
830 ctrl->trackers->head = 0; in rsxx_dma_ctrl_init()
832 ctrl->trackers->list[i].next_tag = i + 1; in rsxx_dma_ctrl_init()
833 ctrl->trackers->list[i].dma = NULL; in rsxx_dma_ctrl_init()
835 ctrl->trackers->list[RSXX_MAX_OUTSTANDING_CMDS-1].next_tag = -1; in rsxx_dma_ctrl_init()
836 spin_lock_init(&ctrl->trackers->lock); in rsxx_dma_ctrl_init()
963 if (ctrl->trackers) in rsxx_dma_setup()
964 vfree(ctrl->trackers); in rsxx_dma_setup()
986 dma = get_tracker_dma(ctrl->trackers, i); in rsxx_dma_cancel()
990 push_tracker(ctrl->trackers, i); in rsxx_dma_cancel()
1026 vfree(ctrl->trackers); in rsxx_dma_destroy()
1052 dma = get_tracker_dma(card->ctrl[i].trackers, j); in rsxx_eeh_save_issued_dmas()
1072 push_tracker(card->ctrl[i].trackers, j); in rsxx_eeh_save_issued_dmas()