Lines Matching refs:req

82 static int maciisi_send_request(struct adb_request* req, int sync);
83 static void maciisi_sync(struct adb_request *req);
84 static int maciisi_write(struct adb_request* req);
229 maciisi_send_request(struct adb_request* req, int sync) in maciisi_send_request() argument
238 req->complete = 1; in maciisi_send_request()
245 for (i = 0; i < req->nbytes; i++) { in maciisi_send_request()
246 printk(" %.2x", req->data[i]); in maciisi_send_request()
252 req->reply_expected = 1; in maciisi_send_request()
254 i = maciisi_write(req); in maciisi_send_request()
271 maciisi_sync(req); in maciisi_send_request()
277 static void maciisi_sync(struct adb_request *req) in maciisi_sync() argument
286 while (!req->complete && count++ < 50) { in maciisi_sync()
296 maciisi_request(struct adb_request *req, void (*done)(struct adb_request *), in maciisi_request() argument
302 req->nbytes = nbytes; in maciisi_request()
303 req->done = done; in maciisi_request()
304 req->reply_expected = 0; in maciisi_request()
307 req->data[i++] = va_arg(list, int); in maciisi_request()
310 return maciisi_send_request(req, 1); in maciisi_request()
315 maciisi_write(struct adb_request* req) in maciisi_write() argument
322 if (req->nbytes < 2 || req->data[0] > CUDA_PACKET) { in maciisi_write()
324 req->complete = 1; in maciisi_write()
327 req->next = NULL; in maciisi_write()
328 req->sent = 0; in maciisi_write()
329 req->complete = 0; in maciisi_write()
330 req->reply_len = 0; in maciisi_write()
335 last_req->next = req; in maciisi_write()
336 last_req = req; in maciisi_write()
338 current_req = req; in maciisi_write()
339 last_req = req; in maciisi_write()
367 struct adb_request* req; in maciisi_start() local
382 req = current_req; in maciisi_start()
383 if (req == NULL) in maciisi_start()
406 via[SR] = req->data[0]; in maciisi_start()
437 struct adb_request *req; in maciisi_interrupt() local
492 req = current_req; in maciisi_interrupt()
512 if (data_index >= req->nbytes) { in maciisi_interrupt()
519 req->sent = 1; in maciisi_interrupt()
521 if (req->reply_expected) { in maciisi_interrupt()
526 current_req = req->next; in maciisi_interrupt()
527 if (req->done) in maciisi_interrupt()
528 (*req->done)(req); in maciisi_interrupt()
543 via[SR] = req->data[data_index++]; in maciisi_interrupt()
584 req = current_req; in maciisi_interrupt()
585 req->reply_len = reply_ptr - req->reply; in maciisi_interrupt()
586 if (req->data[0] == ADB_PACKET) { in maciisi_interrupt()
588 if (req->reply_len <= 2 || (req->reply[1] & 2) != 0) { in maciisi_interrupt()
590 req->reply_len = 0; in maciisi_interrupt()
593 req->reply_len -= 2; in maciisi_interrupt()
594 memmove(req->reply, req->reply + 2, req->reply_len); in maciisi_interrupt()
601 for (i = 0; i < req->reply_len; ++i) in maciisi_interrupt()
602 printk(" %.2x", req->reply[i]); in maciisi_interrupt()
606 req->complete = 1; in maciisi_interrupt()
607 current_req = req->next; in maciisi_interrupt()
608 if (req->done) in maciisi_interrupt()
609 (*req->done)(req); in maciisi_interrupt()