Lines Matching refs:pipenum
41 static void packet_write(struct r8a66597 *r8a66597, u16 pipenum);
45 static void enable_pipe_irq(struct r8a66597 *r8a66597, u16 pipenum, in enable_pipe_irq() argument
52 r8a66597_bset(r8a66597, 1 << pipenum, reg); in enable_pipe_irq()
57 static void disable_pipe_irq(struct r8a66597 *r8a66597, u16 pipenum, in disable_pipe_irq() argument
64 r8a66597_bclr(r8a66597, 1 << pipenum, reg); in disable_pipe_irq()
299 u16 pipenum = pipe->info.pipenum; in set_pipe_reg_addr() local
311 if (pipenum == 0) in set_pipe_reg_addr()
314 pipe->pipectr = get_pipectr_addr(pipenum); in set_pipe_reg_addr()
316 if (check_bulk_or_isoc(pipenum)) { in set_pipe_reg_addr()
317 pipe->pipetre = get_pipetre_addr(pipenum); in set_pipe_reg_addr()
318 pipe->pipetrn = get_pipetrn_addr(pipenum); in set_pipe_reg_addr()
457 if ((pipe->info.pipenum != 0) & ((tmp & PID_STALL) != 0)) /* stall? */ in pipe_start()
480 if (!pipe || pipe->info.pipenum == 0) in clear_all_buffer()
510 static inline void cfifo_change(struct r8a66597 *r8a66597, u16 pipenum) in cfifo_change() argument
514 r8a66597_mdfy(r8a66597, mbw | pipenum, mbw | CURPIPE, CFIFOSEL); in cfifo_change()
515 r8a66597_reg_wait(r8a66597, CFIFOSEL, CURPIPE, pipenum); in cfifo_change()
528 r8a66597_mdfy(r8a66597, mbw | pipe->info.pipenum, mbw | CURPIPE, in fifo_change_from_pipe()
530 r8a66597_reg_wait(r8a66597, pipe->fifosel, CURPIPE, pipe->info.pipenum); in fifo_change_from_pipe()
540 return pipe->info.pipenum; in r8a66597_get_pipenum()
609 if (info->pipenum == 0) in pipe_buffer_setting()
612 r8a66597_bset(r8a66597, ACLRM, get_pipectr_addr(info->pipenum)); in pipe_buffer_setting()
613 r8a66597_bclr(r8a66597, ACLRM, get_pipectr_addr(info->pipenum)); in pipe_buffer_setting()
614 r8a66597_write(r8a66597, info->pipenum, PIPESEL); in pipe_buffer_setting()
635 if (td->pipenum > 0) { in pipe_setting()
722 static u16 get_bufnum(u16 pipenum) in get_bufnum() argument
726 if (pipenum == 0) in get_bufnum()
728 else if (check_bulk_or_isoc(pipenum)) in get_bufnum()
729 bufnum = 8 + (pipenum - 1) * R8A66597_BUF_BSIZE*2; in get_bufnum()
730 else if (check_interrupt(pipenum)) in get_bufnum()
731 bufnum = 4 + (pipenum - 6); in get_bufnum()
733 printk(KERN_ERR "r8a66597: Illegal pipenum (%d)\n", pipenum); in get_bufnum()
738 static u16 get_buf_bsize(u16 pipenum) in get_buf_bsize() argument
742 if (pipenum == 0) in get_buf_bsize()
744 else if (check_bulk_or_isoc(pipenum)) in get_buf_bsize()
746 else if (check_interrupt(pipenum)) in get_buf_bsize()
749 printk(KERN_ERR "r8a66597: Illegal pipenum (%d)\n", pipenum); in get_buf_bsize()
768 if ((pipe->info.pipenum != 0) && (info->type != R8A66597_INT)) { in enable_r8a66597_pipe_dma()
785 r8a66597_mdfy(r8a66597, mbw | pipe->info.pipenum, in enable_r8a66597_pipe_dma()
789 pipe->info.pipenum); in enable_r8a66597_pipe_dma()
808 r8a66597->pipe_cnt[pipe->info.pipenum]++; in enable_r8a66597_pipe()
809 dev->pipe_cnt[pipe->info.pipenum]++; in enable_r8a66597_pipe()
835 static void force_dequeue(struct r8a66597 *r8a66597, u16 pipenum, u16 address) in force_dequeue() argument
839 struct list_head *list = &r8a66597->pipe_queue[pipenum]; in force_dequeue()
864 u16 pipenum; in disable_r8a66597_pipe_all() local
869 for (pipenum = 1; pipenum < R8A66597_MAX_NUM_PIPE; pipenum++) { in disable_r8a66597_pipe_all()
870 if (!dev->pipe_cnt[pipenum]) in disable_r8a66597_pipe_all()
878 r8a66597->pipe_cnt[pipenum] -= dev->pipe_cnt[pipenum]; in disable_r8a66597_pipe_all()
879 dev->pipe_cnt[pipenum] = 0; in disable_r8a66597_pipe_all()
880 force_dequeue(r8a66597, pipenum, dev->address); in disable_r8a66597_pipe_all()
941 info.pipenum = get_empty_pipenum(r8a66597, ep); in init_pipe_info()
946 info.bufnum = get_bufnum(info.pipenum); in init_pipe_info()
947 info.buf_bsize = get_buf_bsize(info.pipenum); in init_pipe_info()
972 u16 pipenum) in pipe_irq_enable() argument
974 if (pipenum == 0 && usb_pipeout(urb->pipe)) in pipe_irq_enable()
975 enable_irq_empty(r8a66597, pipenum); in pipe_irq_enable()
977 enable_irq_ready(r8a66597, pipenum); in pipe_irq_enable()
980 enable_irq_nrdy(r8a66597, pipenum); in pipe_irq_enable()
983 static void pipe_irq_disable(struct r8a66597 *r8a66597, u16 pipenum) in pipe_irq_disable() argument
985 disable_irq_ready(r8a66597, pipenum); in pipe_irq_disable()
986 disable_irq_nrdy(r8a66597, pipenum); in pipe_irq_disable()
1098 pipe_irq_disable(r8a66597, td->pipenum); in prepare_packet_read()
1100 pipe_irq_enable(r8a66597, urb, td->pipenum); in prepare_packet_read()
1103 pipe_irq_disable(r8a66597, td->pipenum); in prepare_packet_read()
1106 r8a66597_write(r8a66597, ~(1 << td->pipenum), BRDYSTS); in prepare_packet_read()
1121 pipe_irq_enable(r8a66597, urb, td->pipenum); in prepare_packet_read()
1148 r8a66597_write(r8a66597, ~(1 << td->pipenum), BRDYSTS); in prepare_packet_write()
1153 pipe_irq_enable(r8a66597, urb, td->pipenum); in prepare_packet_write()
1155 packet_write(r8a66597, td->pipenum); in prepare_packet_write()
1250 if (!list_empty(&r8a66597->pipe_queue[td->pipenum]) && in set_td_timer()
1252 r8a66597->timeout_map |= 1 << td->pipenum; in set_td_timer()
1263 mod_timer(&r8a66597->timers[td->pipenum].td, in set_td_timer()
1270 u16 pipenum, struct urb *urb, int status) in finish_request() argument
1276 r8a66597->timeout_map &= ~(1 << pipenum); in finish_request()
1287 if (!list_empty(&r8a66597->pipe_queue[pipenum])) in finish_request()
1298 td = r8a66597_get_td(r8a66597, pipenum); in finish_request()
1307 static void packet_read(struct r8a66597 *r8a66597, u16 pipenum) in packet_read() argument
1312 struct r8a66597_td *td = r8a66597_get_td(r8a66597, pipenum); in packet_read()
1325 pipe_irq_disable(r8a66597, pipenum); in packet_read()
1326 printk(KERN_ERR "r8a66597: in fifo not ready (%d)\n", pipenum); in packet_read()
1327 finish_request(r8a66597, td, pipenum, td->urb, -EPIPE); in packet_read()
1367 pipe_irq_disable(r8a66597, pipenum); in packet_read()
1380 if (finish && pipenum != 0) in packet_read()
1381 finish_request(r8a66597, td, pipenum, urb, status); in packet_read()
1384 static void packet_write(struct r8a66597 *r8a66597, u16 pipenum) in packet_write() argument
1389 struct r8a66597_td *td = r8a66597_get_td(r8a66597, pipenum); in packet_write()
1400 pipe_irq_disable(r8a66597, pipenum); in packet_write()
1401 printk(KERN_ERR "r8a66597: out fifo not ready (%d)\n", pipenum); in packet_write()
1402 finish_request(r8a66597, td, pipenum, urb, -EPIPE); in packet_write()
1420 if (pipenum > 0) in packet_write()
1421 r8a66597_write(r8a66597, ~(1 << pipenum), BEMPSTS); in packet_write()
1438 disable_irq_ready(r8a66597, pipenum); in packet_write()
1439 enable_irq_empty(r8a66597, pipenum); in packet_write()
1441 enable_irq_nrdy(r8a66597, pipenum); in packet_write()
1443 pipe_irq_enable(r8a66597, urb, pipenum); in packet_write()
1482 static int get_urb_error(struct r8a66597 *r8a66597, u16 pipenum) in get_urb_error() argument
1484 struct r8a66597_td *td = r8a66597_get_td(r8a66597, pipenum); in get_urb_error()
1500 u16 pipenum; in irq_pipe_ready() local
1516 for (pipenum = 1; pipenum < R8A66597_MAX_NUM_PIPE; pipenum++) { in irq_pipe_ready()
1517 check = 1 << pipenum; in irq_pipe_ready()
1519 td = r8a66597_get_td(r8a66597, pipenum); in irq_pipe_ready()
1524 packet_read(r8a66597, pipenum); in irq_pipe_ready()
1526 packet_write(r8a66597, pipenum); in irq_pipe_ready()
1535 u16 pipenum; in irq_pipe_empty() local
1550 for (pipenum = 1; pipenum < R8A66597_MAX_NUM_PIPE; pipenum++) { in irq_pipe_empty()
1551 check = 1 << pipenum; in irq_pipe_empty()
1554 td = r8a66597_get_td(r8a66597, pipenum); in irq_pipe_empty()
1560 disable_irq_empty(r8a66597, pipenum); in irq_pipe_empty()
1561 pipe_irq_disable(r8a66597, pipenum); in irq_pipe_empty()
1562 finish_request(r8a66597, td, pipenum, td->urb, in irq_pipe_empty()
1572 u16 pipenum; in irq_pipe_nrdy() local
1586 for (pipenum = 1; pipenum < R8A66597_MAX_NUM_PIPE; pipenum++) { in irq_pipe_nrdy()
1587 check = 1 << pipenum; in irq_pipe_nrdy()
1590 td = r8a66597_get_td(r8a66597, pipenum); in irq_pipe_nrdy()
1594 status = get_urb_error(r8a66597, pipenum); in irq_pipe_nrdy()
1595 pipe_irq_disable(r8a66597, pipenum); in irq_pipe_nrdy()
1597 finish_request(r8a66597, td, pipenum, td->urb, status); in irq_pipe_nrdy()
1728 u16 pipenum; in r8a66597_interval_timer() local
1733 for (pipenum = 0; pipenum < R8A66597_MAX_NUM_PIPE; pipenum++) { in r8a66597_interval_timer()
1734 if (!(r8a66597->interval_map & (1 << pipenum))) in r8a66597_interval_timer()
1736 if (timer_pending(&r8a66597->timers[pipenum].interval)) in r8a66597_interval_timer()
1739 td = r8a66597_get_td(r8a66597, pipenum); in r8a66597_interval_timer()
1752 u16 pipenum; in r8a66597_td_timer() local
1757 for (pipenum = 0; pipenum < R8A66597_MAX_NUM_PIPE; pipenum++) { in r8a66597_td_timer()
1758 if (!(r8a66597->timeout_map & (1 << pipenum))) in r8a66597_td_timer()
1760 if (timer_pending(&r8a66597->timers[pipenum].td)) in r8a66597_td_timer()
1763 td = r8a66597_get_td(r8a66597, pipenum); in r8a66597_td_timer()
1765 r8a66597->timeout_map &= ~(1 << pipenum); in r8a66597_td_timer()
1781 &r8a66597->pipe_queue[pipenum]); in r8a66597_td_timer()
1782 new_td = r8a66597_get_td(r8a66597, pipenum); in r8a66597_td_timer()
1793 r8a66597->timeout_map &= ~(1 << pipenum); in r8a66597_td_timer()
1861 u16 pipenum; in r8a66597_make_td() local
1867 pipenum = r8a66597_get_pipenum(urb, hep); in r8a66597_make_td()
1868 td->pipenum = pipenum; in r8a66597_make_td()
1926 if (list_empty(&r8a66597->pipe_queue[td->pipenum])) in r8a66597_urb_enqueue()
1928 list_add_tail(&td->queue, &r8a66597->pipe_queue[td->pipenum]); in r8a66597_urb_enqueue()
1933 r8a66597->interval_map |= 1 << td->pipenum; in r8a66597_urb_enqueue()
1934 mod_timer(&r8a66597->timers[td->pipenum].interval, in r8a66597_urb_enqueue()
1971 pipe_irq_disable(r8a66597, td->pipenum); in r8a66597_urb_dequeue()
1972 disable_irq_empty(r8a66597, td->pipenum); in r8a66597_urb_dequeue()
1973 finish_request(r8a66597, td, td->pipenum, urb, status); in r8a66597_urb_dequeue()
1989 u16 pipenum; in r8a66597_endpoint_disable() local
1994 pipenum = pipe->info.pipenum; in r8a66597_endpoint_disable()
1997 if (pipenum == 0) { in r8a66597_endpoint_disable()
2005 pipe_irq_disable(r8a66597, pipenum); in r8a66597_endpoint_disable()
2006 disable_irq_empty(r8a66597, pipenum); in r8a66597_endpoint_disable()
2007 td = r8a66597_get_td(r8a66597, pipenum); in r8a66597_endpoint_disable()
2010 finish_request(r8a66597, td, pipenum, urb, -ESHUTDOWN); in r8a66597_endpoint_disable()