Lines Matching refs:req
184 static int pmu_send_request(struct adb_request *req, int sync);
216 int pmu_polled_request(struct adb_request *req);
531 struct adb_request req; in init_pmu() local
536 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask); in init_pmu()
538 while (!req.complete) { in init_pmu()
563 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2); in init_pmu()
564 while (!req.complete) in init_pmu()
569 pmu_request(&req, NULL, 1, PMU_GET_VERSION); in init_pmu()
570 pmu_wait_complete(&req); in init_pmu()
571 if (req.reply_len > 0) in init_pmu()
572 pmu_version = req.reply[0]; in init_pmu()
576 pmu_request(&req, NULL, 2, PMU_POWER_EVENTS, in init_pmu()
578 pmu_wait_complete(&req); in init_pmu()
579 if (req.reply_len == 2) { in init_pmu()
580 if (req.reply[1] & PMU_PWR_WAKEUP_AC_INSERT) in init_pmu()
597 struct adb_request req; in pmu_set_server_mode() local
603 pmu_request(&req, NULL, 2, PMU_POWER_EVENTS, PMU_PWR_GET_POWERUP_EVENTS); in pmu_set_server_mode()
604 pmu_wait_complete(&req); in pmu_set_server_mode()
605 if (req.reply_len < 2) in pmu_set_server_mode()
608 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, in pmu_set_server_mode()
610 req.reply[0], PMU_PWR_WAKEUP_AC_INSERT); in pmu_set_server_mode()
612 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, in pmu_set_server_mode()
614 req.reply[0], PMU_PWR_WAKEUP_AC_INSERT); in pmu_set_server_mode()
615 pmu_wait_complete(&req); in pmu_set_server_mode()
622 done_battery_state_ohare(struct adb_request* req) in done_battery_state_ohare() argument
649 if (req->reply[0] & 0x01) in done_battery_state_ohare()
666 if (req->reply[0] & 0x04) { in done_battery_state_ohare()
668 if (req->reply[0] & 0x02) in done_battery_state_ohare()
670 vb = (req->reply[1] << 8) | req->reply[2]; in done_battery_state_ohare()
672 amperage = req->reply[5]; in done_battery_state_ohare()
673 if ((req->reply[0] & 0x01) == 0) { in done_battery_state_ohare()
676 } else if (req->reply[0] & 0x02) { in done_battery_state_ohare()
681 if (req->reply[0] & 0x40) { in done_battery_state_ohare()
682 pcharge = (req->reply[6] << 8) + req->reply[7]; in done_battery_state_ohare()
710 done_battery_state_smart(struct adb_request* req) in done_battery_state_smart() argument
735 if (req->reply[1] & 0x01) in done_battery_state_smart()
743 if (req->reply[1] & 0x04) { in done_battery_state_smart()
745 switch(req->reply[0]) { in done_battery_state_smart()
747 case 4: capa = req->reply[2]; in done_battery_state_smart()
748 max = req->reply[3]; in done_battery_state_smart()
749 amperage = *((signed char *)&req->reply[4]); in done_battery_state_smart()
750 voltage = req->reply[5]; in done_battery_state_smart()
752 case 5: capa = (req->reply[2] << 8) | req->reply[3]; in done_battery_state_smart()
753 max = (req->reply[4] << 8) | req->reply[5]; in done_battery_state_smart()
754 amperage = *((signed short *)&req->reply[6]); in done_battery_state_smart()
755 voltage = (req->reply[8] << 8) | req->reply[9]; in done_battery_state_smart()
759 "len: %d, %4ph\n", req->reply_len, in done_battery_state_smart()
760 req->reply); in done_battery_state_smart()
765 if ((req->reply[1] & 0x01) && (amperage > 0)) in done_battery_state_smart()
774 if ((req->reply[1] & 0x01) && (amperage > 0)) in done_battery_state_smart()
962 static int pmu_send_request(struct adb_request *req, int sync) in pmu_send_request() argument
967 req->complete = 1; in pmu_send_request()
973 switch (req->data[0]) { in pmu_send_request()
975 for (i = 0; i < req->nbytes - 1; ++i) in pmu_send_request()
976 req->data[i] = req->data[i+1]; in pmu_send_request()
977 --req->nbytes; in pmu_send_request()
978 if (pmu_data_len[req->data[0]][1] != 0) { in pmu_send_request()
979 req->reply[0] = ADB_RET_OK; in pmu_send_request()
980 req->reply_len = 1; in pmu_send_request()
982 req->reply_len = 0; in pmu_send_request()
983 ret = pmu_queue_request(req); in pmu_send_request()
986 switch (req->data[1]) { in pmu_send_request()
988 if (req->nbytes != 2) in pmu_send_request()
990 req->data[0] = PMU_READ_RTC; in pmu_send_request()
991 req->nbytes = 1; in pmu_send_request()
992 req->reply_len = 3; in pmu_send_request()
993 req->reply[0] = CUDA_PACKET; in pmu_send_request()
994 req->reply[1] = 0; in pmu_send_request()
995 req->reply[2] = CUDA_GET_TIME; in pmu_send_request()
996 ret = pmu_queue_request(req); in pmu_send_request()
999 if (req->nbytes != 6) in pmu_send_request()
1001 req->data[0] = PMU_SET_RTC; in pmu_send_request()
1002 req->nbytes = 5; in pmu_send_request()
1004 req->data[i] = req->data[i+1]; in pmu_send_request()
1005 req->reply_len = 3; in pmu_send_request()
1006 req->reply[0] = CUDA_PACKET; in pmu_send_request()
1007 req->reply[1] = 0; in pmu_send_request()
1008 req->reply[2] = CUDA_SET_TIME; in pmu_send_request()
1009 ret = pmu_queue_request(req); in pmu_send_request()
1016 for (i = req->nbytes - 1; i > 1; --i) in pmu_send_request()
1017 req->data[i+2] = req->data[i]; in pmu_send_request()
1018 req->data[3] = req->nbytes - 2; in pmu_send_request()
1019 req->data[2] = pmu_adb_flags; in pmu_send_request()
1021 req->data[0] = PMU_ADB_CMD; in pmu_send_request()
1022 req->nbytes += 2; in pmu_send_request()
1023 req->reply_expected = 1; in pmu_send_request()
1024 req->reply_len = 0; in pmu_send_request()
1025 ret = pmu_queue_request(req); in pmu_send_request()
1029 req->complete = 1; in pmu_send_request()
1034 while (!req->complete) in pmu_send_request()
1043 struct adb_request req; in __pmu_adb_autopoll() local
1046 pmu_request(&req, NULL, 5, PMU_ADB_CMD, 0, 0x86, in __pmu_adb_autopoll()
1050 pmu_request(&req, NULL, 1, PMU_ADB_POLL_OFF); in __pmu_adb_autopoll()
1053 while (!req.complete) in __pmu_adb_autopoll()
1070 struct adb_request req; in pmu_adb_reset_bus() local
1079 req.nbytes = 4; in pmu_adb_reset_bus()
1080 req.done = NULL; in pmu_adb_reset_bus()
1081 req.data[0] = PMU_ADB_CMD; in pmu_adb_reset_bus()
1082 req.data[1] = ADB_BUSRESET; in pmu_adb_reset_bus()
1083 req.data[2] = 0; in pmu_adb_reset_bus()
1084 req.data[3] = 0; in pmu_adb_reset_bus()
1085 req.data[4] = 0; in pmu_adb_reset_bus()
1086 req.reply_len = 0; in pmu_adb_reset_bus()
1087 req.reply_expected = 1; in pmu_adb_reset_bus()
1088 if (pmu_queue_request(&req) != 0) { in pmu_adb_reset_bus()
1092 pmu_wait_complete(&req); in pmu_adb_reset_bus()
1103 pmu_request(struct adb_request *req, void (*done)(struct adb_request *), in pmu_request() argument
1114 req->complete = 1; in pmu_request()
1117 req->nbytes = nbytes; in pmu_request()
1118 req->done = done; in pmu_request()
1121 req->data[i] = va_arg(list, int); in pmu_request()
1123 req->reply_len = 0; in pmu_request()
1124 req->reply_expected = 0; in pmu_request()
1125 return pmu_queue_request(req); in pmu_request()
1129 pmu_queue_request(struct adb_request *req) in pmu_queue_request() argument
1135 req->complete = 1; in pmu_queue_request()
1138 if (req->nbytes <= 0) { in pmu_queue_request()
1139 req->complete = 1; in pmu_queue_request()
1142 nsend = pmu_data_len[req->data[0]][0]; in pmu_queue_request()
1143 if (nsend >= 0 && req->nbytes != nsend + 1) { in pmu_queue_request()
1144 req->complete = 1; in pmu_queue_request()
1148 req->next = NULL; in pmu_queue_request()
1149 req->sent = 0; in pmu_queue_request()
1150 req->complete = 0; in pmu_queue_request()
1154 last_req->next = req; in pmu_queue_request()
1155 last_req = req; in pmu_queue_request()
1157 current_req = req; in pmu_queue_request()
1158 last_req = req; in pmu_queue_request()
1208 pmu_done(struct adb_request *req) in pmu_done() argument
1210 void (*done)(struct adb_request *) = req->done; in pmu_done()
1212 req->complete = 1; in pmu_done()
1217 (*done)(req); in pmu_done()
1223 struct adb_request *req; in pmu_start() local
1227 req = current_req; in pmu_start()
1228 if (req == 0 || pmu_state != idle in pmu_start()
1234 data_len = pmu_data_len[req->data[0]][0]; in pmu_start()
1241 send_byte(req->data[0]); in pmu_start()
1270 pmu_wait_complete(struct adb_request *req) in pmu_wait_complete() argument
1274 while((pmu_state != idle && pmu_state != locked) || !req->complete) in pmu_wait_complete()
1382 struct adb_request *req = req_awaiting_reply; in pmu_handle_data() local
1383 if (req == 0) { in pmu_handle_data()
1389 req->reply_len = 0; in pmu_handle_data()
1391 memcpy(req->reply, data + 1, len - 1); in pmu_handle_data()
1392 req->reply_len = len - 1; in pmu_handle_data()
1394 pmu_done(req); in pmu_handle_data()
1453 struct adb_request *req; in pmu_sr_intr() local
1475 req = current_req; in pmu_sr_intr()
1477 data_len = req->nbytes - 1; in pmu_sr_intr()
1482 send_byte(req->data[data_index++]); in pmu_sr_intr()
1485 req->sent = 1; in pmu_sr_intr()
1486 data_len = pmu_data_len[req->data[0]][1]; in pmu_sr_intr()
1489 current_req = req->next; in pmu_sr_intr()
1490 if (req->reply_expected) in pmu_sr_intr()
1491 req_awaiting_reply = req; in pmu_sr_intr()
1493 return req; in pmu_sr_intr()
1497 reply_ptr = req->reply + req->reply_len; in pmu_sr_intr()
1533 req = current_req; in pmu_sr_intr()
1539 current_req = req->next; in pmu_sr_intr()
1540 req->reply_len += data_index; in pmu_sr_intr()
1541 if (req->data[0] == PMU_SLEEP || req->data[0] == PMU_CPU_SPEED) in pmu_sr_intr()
1545 return req; in pmu_sr_intr()
1563 struct adb_request *req = NULL; in via_pmu_interrupt() local
1587 req = pmu_sr_intr(); in via_pmu_interrupt()
1588 if (req) in via_pmu_interrupt()
1626 if (req) { in via_pmu_interrupt()
1627 pmu_done(req); in via_pmu_interrupt()
1628 req = NULL; in via_pmu_interrupt()
1680 struct adb_request req; in pmu_enable_irled() local
1687 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, PMU_POW_IRLED | in pmu_enable_irled()
1689 pmu_wait_complete(&req); in pmu_enable_irled()
1695 struct adb_request req; in pmu_restart() local
1705 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB | in pmu_restart()
1707 while(!req.complete) in pmu_restart()
1711 pmu_request(&req, NULL, 1, PMU_RESET); in pmu_restart()
1712 pmu_wait_complete(&req); in pmu_restart()
1720 struct adb_request req; in pmu_shutdown() local
1730 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB | in pmu_shutdown()
1732 pmu_wait_complete(&req); in pmu_shutdown()
1740 pmu_request(&req, NULL, 5, PMU_SHUTDOWN, in pmu_shutdown()
1742 pmu_wait_complete(&req); in pmu_shutdown()
1797 struct adb_request req; in powerbook_sleep_grackle() local
1805 pmu_request(&req, NULL, 2, PMU_POWER_CTRL0, PMU_POW0_OFF|PMU_POW0_HARD_DRIVE); in powerbook_sleep_grackle()
1806 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1807 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, in powerbook_sleep_grackle()
1809 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1816 pmu_request(&req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T'); in powerbook_sleep_grackle()
1817 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1857 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask); in powerbook_sleep_grackle()
1858 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1859 pmu_request(&req, NULL, 2, PMU_POWER_CTRL0, in powerbook_sleep_grackle()
1861 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1862 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, in powerbook_sleep_grackle()
1864 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1874 struct adb_request req; in powerbook_sleep_Core99() local
1885 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, 0); in powerbook_sleep_Core99()
1886 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1889 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, PMU_PWR_CLR_WAKEUP_EVENTS, in powerbook_sleep_Core99()
1891 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1892 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, PMU_PWR_SET_WAKEUP_EVENTS, in powerbook_sleep_Core99()
1895 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1903 pmu_request(&req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T'); in powerbook_sleep_Core99()
1904 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1946 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2); in powerbook_sleep_Core99()
1947 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1948 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask); in powerbook_sleep_Core99()
1949 pmu_wait_complete(&req); in powerbook_sleep_Core99()
2458 pmu_polled_request(struct adb_request *req) in pmu_polled_request() argument
2464 req->complete = 1; in pmu_polled_request()
2465 c = req->data[0]; in pmu_polled_request()
2467 if (l >= 0 && req->nbytes != l + 1) in pmu_polled_request()
2478 l = req->nbytes - 1; in pmu_polled_request()
2482 polled_send_byte(v, req->data[i]); in pmu_polled_request()
2488 req->reply[i + req->reply_len] = polled_recv_byte(v); in pmu_polled_request()
2490 if (req->done) in pmu_polled_request()
2491 (*req->done)(req); in pmu_polled_request()
2500 struct adb_request req; in pmu_blink() local
2502 memset(&req, 0, sizeof(req)); in pmu_blink()
2505 req.nbytes = 4; in pmu_blink()
2506 req.done = NULL; in pmu_blink()
2507 req.data[0] = 0xee; in pmu_blink()
2508 req.data[1] = 4; in pmu_blink()
2509 req.data[2] = 0; in pmu_blink()
2510 req.data[3] = 1; in pmu_blink()
2511 req.reply[0] = ADB_RET_OK; in pmu_blink()
2512 req.reply_len = 1; in pmu_blink()
2513 req.reply_expected = 0; in pmu_blink()
2514 pmu_polled_request(&req); in pmu_blink()
2516 req.nbytes = 4; in pmu_blink()
2517 req.done = NULL; in pmu_blink()
2518 req.data[0] = 0xee; in pmu_blink()
2519 req.data[1] = 4; in pmu_blink()
2520 req.data[2] = 0; in pmu_blink()
2521 req.data[3] = 0; in pmu_blink()
2522 req.reply[0] = ADB_RET_OK; in pmu_blink()
2523 req.reply_len = 1; in pmu_blink()
2524 req.reply_expected = 0; in pmu_blink()
2525 pmu_polled_request(&req); in pmu_blink()
2551 struct adb_request req; in pmu_syscore_resume() local
2557 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2); in pmu_syscore_resume()
2558 pmu_wait_complete(&req); in pmu_syscore_resume()