Lines Matching refs:req

106 static int pmu_send_request(struct adb_request *req, int sync);
114 static void pmu_done(struct adb_request *req);
192 volatile struct adb_request req; in pmu_init() local
197 pmu_request((struct adb_request *) &req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB); in pmu_init()
199 while (!req.complete) { in pmu_init()
224 pmu_request((struct adb_request *) &req, NULL, 2, PMU_SET_INTR_MASK, in pmu_init()
227 while (!req.complete) { in pmu_init()
272 pmu_send_request(struct adb_request *req, int sync) in pmu_send_request() argument
278 req->complete = 1; in pmu_send_request()
284 switch (req->data[0]) { in pmu_send_request()
286 for (i = 0; i < req->nbytes - 1; ++i) in pmu_send_request()
287 req->data[i] = req->data[i+1]; in pmu_send_request()
288 --req->nbytes; in pmu_send_request()
289 if (pmu_data_len[req->data[0]][1] != 0) { in pmu_send_request()
290 req->reply[0] = ADB_RET_OK; in pmu_send_request()
291 req->reply_len = 1; in pmu_send_request()
293 req->reply_len = 0; in pmu_send_request()
294 ret = pmu_queue_request(req); in pmu_send_request()
297 switch (req->data[1]) { in pmu_send_request()
299 if (req->nbytes != 2) in pmu_send_request()
301 req->data[0] = PMU_READ_RTC; in pmu_send_request()
302 req->nbytes = 1; in pmu_send_request()
303 req->reply_len = 3; in pmu_send_request()
304 req->reply[0] = CUDA_PACKET; in pmu_send_request()
305 req->reply[1] = 0; in pmu_send_request()
306 req->reply[2] = CUDA_GET_TIME; in pmu_send_request()
307 ret = pmu_queue_request(req); in pmu_send_request()
310 if (req->nbytes != 6) in pmu_send_request()
312 req->data[0] = PMU_SET_RTC; in pmu_send_request()
313 req->nbytes = 5; in pmu_send_request()
315 req->data[i] = req->data[i+1]; in pmu_send_request()
316 req->reply_len = 3; in pmu_send_request()
317 req->reply[0] = CUDA_PACKET; in pmu_send_request()
318 req->reply[1] = 0; in pmu_send_request()
319 req->reply[2] = CUDA_SET_TIME; in pmu_send_request()
320 ret = pmu_queue_request(req); in pmu_send_request()
323 if (req->nbytes != 4) in pmu_send_request()
325 req->data[0] = PMU_READ_NVRAM; in pmu_send_request()
326 req->data[1] = req->data[2]; in pmu_send_request()
327 req->data[2] = req->data[3]; in pmu_send_request()
328 req->nbytes = 3; in pmu_send_request()
329 req->reply_len = 3; in pmu_send_request()
330 req->reply[0] = CUDA_PACKET; in pmu_send_request()
331 req->reply[1] = 0; in pmu_send_request()
332 req->reply[2] = CUDA_GET_PRAM; in pmu_send_request()
333 ret = pmu_queue_request(req); in pmu_send_request()
336 if (req->nbytes != 5) in pmu_send_request()
338 req->data[0] = PMU_WRITE_NVRAM; in pmu_send_request()
339 req->data[1] = req->data[2]; in pmu_send_request()
340 req->data[2] = req->data[3]; in pmu_send_request()
341 req->data[3] = req->data[4]; in pmu_send_request()
342 req->nbytes = 4; in pmu_send_request()
343 req->reply_len = 3; in pmu_send_request()
344 req->reply[0] = CUDA_PACKET; in pmu_send_request()
345 req->reply[1] = 0; in pmu_send_request()
346 req->reply[2] = CUDA_SET_PRAM; in pmu_send_request()
347 ret = pmu_queue_request(req); in pmu_send_request()
352 for (i = req->nbytes - 1; i > 1; --i) in pmu_send_request()
353 req->data[i+2] = req->data[i]; in pmu_send_request()
354 req->data[3] = req->nbytes - 2; in pmu_send_request()
355 req->data[2] = pmu_adb_flags; in pmu_send_request()
357 req->data[0] = PMU_ADB_CMD; in pmu_send_request()
358 req->nbytes += 2; in pmu_send_request()
359 req->reply_expected = 1; in pmu_send_request()
360 req->reply_len = 0; in pmu_send_request()
361 ret = pmu_queue_request(req); in pmu_send_request()
366 req->complete = 1; in pmu_send_request()
371 while (!req->complete) in pmu_send_request()
382 struct adb_request req; in pmu_autopoll() local
388 pmu_request(&req, NULL, 5, PMU_ADB_CMD, 0, 0x86, in pmu_autopoll()
392 pmu_request(&req, NULL, 1, PMU_ADB_POLL_OFF); in pmu_autopoll()
395 while (!req.complete) in pmu_autopoll()
404 struct adb_request req; in pmu_reset_bus() local
413 req.nbytes = 5; in pmu_reset_bus()
414 req.done = NULL; in pmu_reset_bus()
415 req.data[0] = PMU_ADB_CMD; in pmu_reset_bus()
416 req.data[1] = 0; in pmu_reset_bus()
417 req.data[2] = 3; /* ADB_BUSRESET ??? */ in pmu_reset_bus()
418 req.data[3] = 0; in pmu_reset_bus()
419 req.data[4] = 0; in pmu_reset_bus()
420 req.reply_len = 0; in pmu_reset_bus()
421 req.reply_expected = 1; in pmu_reset_bus()
422 if (pmu_queue_request(&req) != 0) in pmu_reset_bus()
427 while (!req.complete) in pmu_reset_bus()
430 while (!req.complete) { in pmu_reset_bus()
447 pmu_request(struct adb_request *req, void (*done)(struct adb_request *), in pmu_request() argument
455 req->complete = 1; in pmu_request()
458 req->nbytes = nbytes; in pmu_request()
459 req->done = done; in pmu_request()
462 req->data[i] = va_arg(list, int); in pmu_request()
464 if (pmu_data_len[req->data[0]][1] != 0) { in pmu_request()
465 req->reply[0] = ADB_RET_OK; in pmu_request()
466 req->reply_len = 1; in pmu_request()
468 req->reply_len = 0; in pmu_request()
469 req->reply_expected = 0; in pmu_request()
470 return pmu_queue_request(req); in pmu_request()
474 pmu_queue_request(struct adb_request *req) in pmu_queue_request() argument
479 if (req->nbytes <= 0) { in pmu_queue_request()
480 req->complete = 1; in pmu_queue_request()
483 nsend = pmu_data_len[req->data[0]][0]; in pmu_queue_request()
484 if (nsend >= 0 && req->nbytes != nsend + 1) { in pmu_queue_request()
485 req->complete = 1; in pmu_queue_request()
489 req->next = NULL; in pmu_queue_request()
490 req->sent = 0; in pmu_queue_request()
491 req->complete = 0; in pmu_queue_request()
495 last_req->next = req; in pmu_queue_request()
496 last_req = req; in pmu_queue_request()
498 current_req = req; in pmu_queue_request()
499 last_req = req; in pmu_queue_request()
530 struct adb_request *req; in pmu_start() local
535 req = current_req; in pmu_start()
536 if (req == 0 || pmu_state != idle in pmu_start()
537 || (req->reply_expected && req_awaiting_reply)) in pmu_start()
542 data_len = pmu_data_len[req->data[0]][0]; in pmu_start()
545 send_byte(req->data[0]); in pmu_start()
571 struct adb_request *req; in pmu_interrupt() local
602 req = current_req; in pmu_interrupt()
604 data_len = req->nbytes - 1; in pmu_interrupt()
609 send_byte(req->data[data_index++]); in pmu_interrupt()
612 req->sent = 1; in pmu_interrupt()
613 data_len = pmu_data_len[req->data[0]][1]; in pmu_interrupt()
616 current_req = req->next; in pmu_interrupt()
617 if (req->reply_expected) in pmu_interrupt()
618 req_awaiting_reply = req; in pmu_interrupt()
620 pmu_done(req); in pmu_interrupt()
624 reply_ptr = req->reply + req->reply_len; in pmu_interrupt()
655 req = current_req; in pmu_interrupt()
656 current_req = req->next; in pmu_interrupt()
657 req->reply_len += data_index; in pmu_interrupt()
658 pmu_done(req); in pmu_interrupt()
688 pmu_done(struct adb_request *req) in pmu_done() argument
690 req->complete = 1; in pmu_done()
691 if (req->done) in pmu_done()
692 (*req->done)(req); in pmu_done()
708 struct adb_request *req = req_awaiting_reply; in pmu_handle_data() local
709 if (req == 0) { in pmu_handle_data()
715 req->reply_len = 0; in pmu_handle_data()
717 memcpy(req->reply, data + 1, len - 1); in pmu_handle_data()
718 req->reply_len = len - 1; in pmu_handle_data()
720 pmu_done(req); in pmu_handle_data()
748 struct adb_request req; in pmu_enable_backlight() local
756 pmu_request(&req, NULL, 3, PMU_READ_NVRAM, 0x14, 0xe); in pmu_enable_backlight()
757 while (!req.complete) in pmu_enable_backlight()
759 printk(KERN_DEBUG "pmu: nvram returned bright: %d\n", (int)req.reply[1]); in pmu_enable_backlight()
760 backlight_level = req.reply[1]; in pmu_enable_backlight()
767 pmu_request(&req, NULL, 2, PMU_BACKLIGHT_BRIGHT, in pmu_enable_backlight()
769 while (!req.complete) in pmu_enable_backlight()
772 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, in pmu_enable_backlight()
774 while (!req.complete) in pmu_enable_backlight()
799 struct adb_request req; in pmu_enable_irled() local
801 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, PMU_POW_IRLED | in pmu_enable_irled()
803 while (!req.complete) in pmu_enable_irled()