Lines Matching refs:req
91 static int cuda_send_request(struct adb_request *req, int sync);
101 static int cuda_write(struct adb_request *req);
103 int cuda_request(struct adb_request *req,
120 struct adb_request req; in find_via_cuda() local
137 cuda_request(&req, NULL, 3, CUDA_PACKET, CUDA_AUTOPOLL, 1); in find_via_cuda()
138 while (!req.complete) in find_via_cuda()
146 struct adb_request req; in find_via_cuda() local
190 cuda_request(&req, NULL, 3, CUDA_PACKET, CUDA_AUTOPOLL, 1); in find_via_cuda()
191 while (!req.complete) in find_via_cuda()
307 cuda_send_request(struct adb_request *req, int sync) in cuda_send_request() argument
312 req->complete = 1; in cuda_send_request()
316 req->reply_expected = 1; in cuda_send_request()
318 i = cuda_write(req); in cuda_send_request()
323 while (!req->complete) in cuda_send_request()
334 struct adb_request req; in cuda_adb_autopoll() local
339 cuda_request(&req, NULL, 3, CUDA_PACKET, CUDA_AUTOPOLL, (devs? 1: 0)); in cuda_adb_autopoll()
340 while (!req.complete) in cuda_adb_autopoll()
349 struct adb_request req; in cuda_reset_adb_bus() local
354 cuda_request(&req, NULL, 2, ADB_PACKET, 0); /* maybe? */ in cuda_reset_adb_bus()
355 while (!req.complete) in cuda_reset_adb_bus()
362 cuda_request(struct adb_request *req, void (*done)(struct adb_request *), in cuda_request() argument
369 req->complete = 1; in cuda_request()
373 req->nbytes = nbytes; in cuda_request()
374 req->done = done; in cuda_request()
377 req->data[i] = va_arg(list, int); in cuda_request()
379 req->reply_expected = 1; in cuda_request()
380 return cuda_write(req); in cuda_request()
385 cuda_write(struct adb_request *req) in cuda_write() argument
389 if (req->nbytes < 2 || req->data[0] > CUDA_PACKET) { in cuda_write()
390 req->complete = 1; in cuda_write()
393 req->next = NULL; in cuda_write()
394 req->sent = 0; in cuda_write()
395 req->complete = 0; in cuda_write()
396 req->reply_len = 0; in cuda_write()
400 last_req->next = req; in cuda_write()
401 last_req = req; in cuda_write()
403 current_req = req; in cuda_write()
404 last_req = req; in cuda_write()
416 struct adb_request *req; in cuda_start() local
420 req = current_req; in cuda_start()
421 if (req == 0) in cuda_start()
428 out_8(&via[SR], req->data[0]); in cuda_start()
451 struct adb_request *req = NULL; in cuda_interrupt() local
520 req = current_req; in cuda_interrupt()
521 if (data_index >= req->nbytes) { in cuda_interrupt()
525 req->sent = 1; in cuda_interrupt()
526 if (req->reply_expected) { in cuda_interrupt()
529 current_req = req->next; in cuda_interrupt()
536 out_8(&via[SR], req->data[data_index++]); in cuda_interrupt()
558 req = current_req; in cuda_interrupt()
559 req->reply_len = reply_ptr - req->reply; in cuda_interrupt()
560 if (req->data[0] == ADB_PACKET) { in cuda_interrupt()
562 if (req->reply_len <= 2 || (req->reply[1] & 2) != 0) { in cuda_interrupt()
564 req->reply_len = 0; in cuda_interrupt()
567 req->reply_len -= 2; in cuda_interrupt()
568 memmove(req->reply, req->reply + 2, req->reply_len); in cuda_interrupt()
571 current_req = req->next; in cuda_interrupt()
599 if (complete && req) { in cuda_interrupt()
600 void (*done)(struct adb_request *) = req->done; in cuda_interrupt()
602 req->complete = 1; in cuda_interrupt()
607 (*done)(req); in cuda_interrupt()