Lines Matching refs:req

53 	struct mpc52xx_lpbfifo_request *req;  member
63 static void mpc52xx_lpbfifo_kick(struct mpc52xx_lpbfifo_request *req) in mpc52xx_lpbfifo_kick() argument
65 size_t transfer_size = req->size - req->pos; in mpc52xx_lpbfifo_kick()
71 int dma = !(req->flags & MPC52XX_LPBFIFO_FLAG_NO_DMA); in mpc52xx_lpbfifo_kick()
72 int write = req->flags & MPC52XX_LPBFIFO_FLAG_WRITE; in mpc52xx_lpbfifo_kick()
73 int poll_dma = req->flags & MPC52XX_LPBFIFO_FLAG_POLL_DMA; in mpc52xx_lpbfifo_kick()
96 data = req->data + req->pos; in mpc52xx_lpbfifo_kick()
150 bd->data[0] = req->data_phys + req->pos; in mpc52xx_lpbfifo_kick()
164 req->offset + req->pos); in mpc52xx_lpbfifo_kick()
167 bit_fields = req->cs << 24 | 0x000008; in mpc52xx_lpbfifo_kick()
173 if (!lpbfifo.req->defer_xfer_start) in mpc52xx_lpbfifo_kick()
222 struct mpc52xx_lpbfifo_request *req; in mpc52xx_lpbfifo_irq() local
235 req = lpbfifo.req; in mpc52xx_lpbfifo_irq()
236 if (!req) { in mpc52xx_lpbfifo_irq()
242 dma = !(req->flags & MPC52XX_LPBFIFO_FLAG_NO_DMA); in mpc52xx_lpbfifo_irq()
243 write = req->flags & MPC52XX_LPBFIFO_FLAG_WRITE; in mpc52xx_lpbfifo_irq()
244 poll_dma = req->flags & MPC52XX_LPBFIFO_FLAG_POLL_DMA; in mpc52xx_lpbfifo_irq()
270 data = req->data + req->pos; in mpc52xx_lpbfifo_irq()
276 req->pos += count; in mpc52xx_lpbfifo_irq()
279 if (req->size - req->pos) in mpc52xx_lpbfifo_irq()
280 mpc52xx_lpbfifo_kick(req); /* more work to do */ in mpc52xx_lpbfifo_irq()
301 req->last_byte = ((u8 *)req->data)[req->size - 1]; in mpc52xx_lpbfifo_irq()
306 lpbfifo.req = NULL; in mpc52xx_lpbfifo_irq()
309 req->irq_count++; in mpc52xx_lpbfifo_irq()
311 req->irq_ticks += get_tbl() - ts; in mpc52xx_lpbfifo_irq()
315 if (do_callback && req->callback) in mpc52xx_lpbfifo_irq()
316 req->callback(req); in mpc52xx_lpbfifo_irq()
328 struct mpc52xx_lpbfifo_request *req; in mpc52xx_lpbfifo_bcom_irq() local
336 req = lpbfifo.req; in mpc52xx_lpbfifo_bcom_irq()
337 if (!req || (req->flags & MPC52XX_LPBFIFO_FLAG_NO_DMA)) { in mpc52xx_lpbfifo_bcom_irq()
343 req->irq_count++; in mpc52xx_lpbfifo_bcom_irq()
348 req->buffer_not_done_cnt++; in mpc52xx_lpbfifo_bcom_irq()
349 if ((req->buffer_not_done_cnt % 1000) == 0) in mpc52xx_lpbfifo_bcom_irq()
357 req->last_byte = ((u8 *)req->data)[req->size - 1]; in mpc52xx_lpbfifo_bcom_irq()
359 req->pos = status & 0x00ffffff; in mpc52xx_lpbfifo_bcom_irq()
362 lpbfifo.req = NULL; in mpc52xx_lpbfifo_bcom_irq()
365 req->irq_ticks += get_tbl() - ts; in mpc52xx_lpbfifo_bcom_irq()
368 if (req->callback) in mpc52xx_lpbfifo_bcom_irq()
369 req->callback(req); in mpc52xx_lpbfifo_bcom_irq()
379 struct mpc52xx_lpbfifo_request *req = lpbfifo.req; in mpc52xx_lpbfifo_poll() local
380 int dma = !(req->flags & MPC52XX_LPBFIFO_FLAG_NO_DMA); in mpc52xx_lpbfifo_poll()
381 int write = req->flags & MPC52XX_LPBFIFO_FLAG_WRITE; in mpc52xx_lpbfifo_poll()
397 int mpc52xx_lpbfifo_submit(struct mpc52xx_lpbfifo_request *req) in mpc52xx_lpbfifo_submit() argument
407 if (lpbfifo.req) { in mpc52xx_lpbfifo_submit()
413 lpbfifo.req = req; in mpc52xx_lpbfifo_submit()
414 req->irq_count = 0; in mpc52xx_lpbfifo_submit()
415 req->irq_ticks = 0; in mpc52xx_lpbfifo_submit()
416 req->buffer_not_done_cnt = 0; in mpc52xx_lpbfifo_submit()
417 req->pos = 0; in mpc52xx_lpbfifo_submit()
419 mpc52xx_lpbfifo_kick(req); in mpc52xx_lpbfifo_submit()
425 int mpc52xx_lpbfifo_start_xfer(struct mpc52xx_lpbfifo_request *req) in mpc52xx_lpbfifo_start_xfer() argument
438 if (lpbfifo.req && !lpbfifo.req->defer_xfer_start) { in mpc52xx_lpbfifo_start_xfer()
447 if (lpbfifo.req && lpbfifo.req == req && in mpc52xx_lpbfifo_start_xfer()
448 lpbfifo.req->defer_xfer_start) { in mpc52xx_lpbfifo_start_xfer()
457 void mpc52xx_lpbfifo_abort(struct mpc52xx_lpbfifo_request *req) in mpc52xx_lpbfifo_abort() argument
462 if (lpbfifo.req == req) { in mpc52xx_lpbfifo_abort()
467 lpbfifo.req = NULL; in mpc52xx_lpbfifo_abort()