Lines Matching refs:ubc

855 	struct bas_bc_state *ubc;  in read_iso_callback()  local
872 ubc = bcs->hw.bas; in read_iso_callback()
874 spin_lock_irqsave(&ubc->isoinlock, flags); in read_iso_callback()
875 if (likely(ubc->isoindone == NULL)) { in read_iso_callback()
877 ubc->isoindone = urb; in read_iso_callback()
878 ubc->isoinstatus = status; in read_iso_callback()
879 tasklet_hi_schedule(&ubc->rcvd_tasklet); in read_iso_callback()
883 ubc->loststatus = status; in read_iso_callback()
885 ubc->isoinlost += urb->iso_frame_desc[i].actual_length; in read_iso_callback()
888 ubc->loststatus = urb->iso_frame_desc[i].status; in read_iso_callback()
892 if (likely(ubc->running)) { in read_iso_callback()
907 spin_unlock_irqrestore(&ubc->isoinlock, flags); in read_iso_callback()
920 struct bas_bc_state *ubc; in write_iso_callback() local
937 ubc = ucx->bcs->hw.bas; in write_iso_callback()
940 spin_lock_irqsave(&ubc->isooutlock, flags); in write_iso_callback()
941 ubc->isooutovfl = ubc->isooutdone; in write_iso_callback()
942 ubc->isooutdone = ucx; in write_iso_callback()
943 spin_unlock_irqrestore(&ubc->isooutlock, flags); in write_iso_callback()
944 tasklet_hi_schedule(&ubc->sent_tasklet); in write_iso_callback()
957 struct bas_bc_state *ubc = bcs->hw.bas; in starturbs() local
967 ubc->running = 1; in starturbs()
969 urb = ubc->isoinurbs[k]; in starturbs()
978 urb->transfer_buffer = ubc->isoinbuf + k * BAS_INBUFSIZE; in starturbs()
998 gigaset_isowbuf_init(ubc->isooutbuf, PPP_FLAG); in starturbs()
1002 urb = ubc->isoouturbs[k].urb; in starturbs()
1010 urb->transfer_buffer = ubc->isooutbuf->data; in starturbs()
1011 urb->transfer_buffer_length = sizeof(ubc->isooutbuf->data); in starturbs()
1015 urb->context = &ubc->isoouturbs[k]; in starturbs()
1022 ubc->isoouturbs[k].limit = -1; in starturbs()
1028 rc = usb_submit_urb(ubc->isoouturbs[k].urb, GFP_ATOMIC); in starturbs()
1033 ubc->isooutfree = &ubc->isoouturbs[BAS_OUTURBS - 1]; in starturbs()
1034 ubc->isooutdone = ubc->isooutovfl = NULL; in starturbs()
1037 stopurbs(ubc); in starturbs()
1047 static void stopurbs(struct bas_bc_state *ubc) in stopurbs() argument
1051 ubc->running = 0; in stopurbs()
1054 rc = usb_unlink_urb(ubc->isoinurbs[k]); in stopurbs()
1061 rc = usb_unlink_urb(ubc->isoouturbs[k].urb); in stopurbs()
1083 struct bas_bc_state *ubc = ucx->bcs->hw.bas; in submit_iso_write_urb() local
1090 urb->transfer_buffer = ubc->isooutbuf->data; in submit_iso_write_urb()
1091 urb->transfer_buffer_length = sizeof(ubc->isooutbuf->data); in submit_iso_write_urb()
1098 corrbytes = atomic_read(&ubc->corrbytes); in submit_iso_write_urb()
1107 atomic_add(-corrbytes, &ubc->corrbytes); in submit_iso_write_urb()
1111 rc = gigaset_isowbuf_getbytes(ubc->isooutbuf, ifd->length); in submit_iso_write_urb()
1128 ucx->limit = ubc->isooutbuf->nextread; in submit_iso_write_urb()
1147 ++ubc->numsub; in submit_iso_write_urb()
1160 struct bas_bc_state *ubc = bcs->hw.bas; in write_iso_tasklet() local
1174 if (unlikely(!(ubc->running))) { in write_iso_tasklet()
1180 spin_lock_irqsave(&ubc->isooutlock, flags); in write_iso_tasklet()
1181 done = ubc->isooutdone; in write_iso_tasklet()
1182 ubc->isooutdone = NULL; in write_iso_tasklet()
1183 ovfl = ubc->isooutovfl; in write_iso_tasklet()
1184 ubc->isooutovfl = NULL; in write_iso_tasklet()
1185 spin_unlock_irqrestore(&ubc->isooutlock, flags); in write_iso_tasklet()
1195 spin_lock_irqsave(&ubc->isooutlock, flags); in write_iso_tasklet()
1196 next = ubc->isooutfree; in write_iso_tasklet()
1197 ubc->isooutfree = NULL; in write_iso_tasklet()
1198 spin_unlock_irqrestore(&ubc->isooutlock, flags); in write_iso_tasklet()
1203 spin_lock_irqsave(&ubc->isooutlock, flags); in write_iso_tasklet()
1204 if (ubc->isooutfree == NULL) { in write_iso_tasklet()
1205 ubc->isooutfree = next; in write_iso_tasklet()
1208 spin_unlock_irqrestore(&ubc->isooutlock, flags); in write_iso_tasklet()
1257 ubc->isooutbuf->read = done->limit; in write_iso_tasklet()
1260 spin_lock_irqsave(&ubc->isooutlock, flags); in write_iso_tasklet()
1261 next = ubc->isooutfree; in write_iso_tasklet()
1262 ubc->isooutfree = done; in write_iso_tasklet()
1263 spin_unlock_irqrestore(&ubc->isooutlock, flags); in write_iso_tasklet()
1303 struct bas_bc_state *ubc = bcs->hw.bas; in read_iso_tasklet() local
1315 spin_lock_irqsave(&ubc->isoinlock, flags); in read_iso_tasklet()
1316 urb = ubc->isoindone; in read_iso_tasklet()
1318 spin_unlock_irqrestore(&ubc->isoinlock, flags); in read_iso_tasklet()
1321 status = ubc->isoinstatus; in read_iso_tasklet()
1322 ubc->isoindone = NULL; in read_iso_tasklet()
1323 if (unlikely(ubc->loststatus != -EINPROGRESS)) { in read_iso_tasklet()
1326 get_usb_statmsg(ubc->loststatus), in read_iso_tasklet()
1327 ubc->isoinlost); in read_iso_tasklet()
1328 ubc->loststatus = -EINPROGRESS; in read_iso_tasklet()
1330 spin_unlock_irqrestore(&ubc->isoinlock, flags); in read_iso_tasklet()
1332 if (unlikely(!(ubc->running))) { in read_iso_tasklet()
2090 struct bas_bc_state *ubc = bcs->hw.bas; in gigaset_freebcshw() local
2093 if (!ubc) in gigaset_freebcshw()
2097 ubc->running = 0; in gigaset_freebcshw()
2100 usb_kill_urb(ubc->isoouturbs[i].urb); in gigaset_freebcshw()
2101 usb_free_urb(ubc->isoouturbs[i].urb); in gigaset_freebcshw()
2104 usb_kill_urb(ubc->isoinurbs[i]); in gigaset_freebcshw()
2105 usb_free_urb(ubc->isoinurbs[i]); in gigaset_freebcshw()
2107 tasklet_kill(&ubc->sent_tasklet); in gigaset_freebcshw()
2108 tasklet_kill(&ubc->rcvd_tasklet); in gigaset_freebcshw()
2109 kfree(ubc->isooutbuf); in gigaset_freebcshw()
2110 kfree(ubc); in gigaset_freebcshw()
2123 struct bas_bc_state *ubc; in gigaset_initbcshw() local
2125 bcs->hw.bas = ubc = kmalloc(sizeof(struct bas_bc_state), GFP_KERNEL); in gigaset_initbcshw()
2126 if (!ubc) { in gigaset_initbcshw()
2131 ubc->running = 0; in gigaset_initbcshw()
2132 atomic_set(&ubc->corrbytes, 0); in gigaset_initbcshw()
2133 spin_lock_init(&ubc->isooutlock); in gigaset_initbcshw()
2135 ubc->isoouturbs[i].urb = NULL; in gigaset_initbcshw()
2136 ubc->isoouturbs[i].bcs = bcs; in gigaset_initbcshw()
2138 ubc->isooutdone = ubc->isooutfree = ubc->isooutovfl = NULL; in gigaset_initbcshw()
2139 ubc->numsub = 0; in gigaset_initbcshw()
2140 ubc->isooutbuf = kmalloc(sizeof(struct isowbuf_t), GFP_KERNEL); in gigaset_initbcshw()
2141 if (!ubc->isooutbuf) { in gigaset_initbcshw()
2143 kfree(ubc); in gigaset_initbcshw()
2147 tasklet_init(&ubc->sent_tasklet, in gigaset_initbcshw()
2150 spin_lock_init(&ubc->isoinlock); in gigaset_initbcshw()
2152 ubc->isoinurbs[i] = NULL; in gigaset_initbcshw()
2153 ubc->isoindone = NULL; in gigaset_initbcshw()
2154 ubc->loststatus = -EINPROGRESS; in gigaset_initbcshw()
2155 ubc->isoinlost = 0; in gigaset_initbcshw()
2156 ubc->seqlen = 0; in gigaset_initbcshw()
2157 ubc->inbyte = 0; in gigaset_initbcshw()
2158 ubc->inbits = 0; in gigaset_initbcshw()
2159 ubc->goodbytes = 0; in gigaset_initbcshw()
2160 ubc->alignerrs = 0; in gigaset_initbcshw()
2161 ubc->fcserrs = 0; in gigaset_initbcshw()
2162 ubc->frameerrs = 0; in gigaset_initbcshw()
2163 ubc->giants = 0; in gigaset_initbcshw()
2164 ubc->runts = 0; in gigaset_initbcshw()
2165 ubc->aborts = 0; in gigaset_initbcshw()
2166 ubc->shared0s = 0; in gigaset_initbcshw()
2167 ubc->stolen0s = 0; in gigaset_initbcshw()
2168 tasklet_init(&ubc->rcvd_tasklet, in gigaset_initbcshw()
2175 struct bas_bc_state *ubc = bcs->hw.bas; in gigaset_reinitbcshw() local
2180 spin_lock_init(&ubc->isooutlock); in gigaset_reinitbcshw()
2181 spin_lock_init(&ubc->isoinlock); in gigaset_reinitbcshw()
2182 ubc->loststatus = -EINPROGRESS; in gigaset_reinitbcshw()
2243 struct bas_bc_state *ubc; in freeurbs() local
2248 ubc = cs->bcs[j].hw.bas; in freeurbs()
2250 usb_kill_urb(ubc->isoouturbs[i].urb); in freeurbs()
2251 usb_free_urb(ubc->isoouturbs[i].urb); in freeurbs()
2252 ubc->isoouturbs[i].urb = NULL; in freeurbs()
2255 usb_kill_urb(ubc->isoinurbs[i]); in freeurbs()
2256 usb_free_urb(ubc->isoinurbs[i]); in freeurbs()
2257 ubc->isoinurbs[i] = NULL; in freeurbs()
2285 struct bas_bc_state *ubc; in gigaset_probe() local
2350 ubc = cs->bcs[j].hw.bas; in gigaset_probe()
2352 if (!(ubc->isoouturbs[i].urb = in gigaset_probe()
2356 if (!(ubc->isoinurbs[i] = in gigaset_probe()