Lines Matching refs:req
202 static int pmu_send_request(struct adb_request *req, int sync);
234 int pmu_polled_request(struct adb_request *req);
587 struct adb_request req; in init_pmu() local
593 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask); in init_pmu()
595 while (!req.complete) { in init_pmu()
620 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2); in init_pmu()
621 while (!req.complete) in init_pmu()
626 pmu_request(&req, NULL, 1, PMU_GET_VERSION); in init_pmu()
627 pmu_wait_complete(&req); in init_pmu()
628 if (req.reply_len > 0) in init_pmu()
629 pmu_version = req.reply[0]; in init_pmu()
633 pmu_request(&req, NULL, 2, PMU_POWER_EVENTS, in init_pmu()
635 pmu_wait_complete(&req); in init_pmu()
636 if (req.reply_len == 2) { in init_pmu()
637 if (req.reply[1] & PMU_PWR_WAKEUP_AC_INSERT) in init_pmu()
658 struct adb_request req; in pmu_set_server_mode() local
664 pmu_request(&req, NULL, 2, PMU_POWER_EVENTS, PMU_PWR_GET_POWERUP_EVENTS); in pmu_set_server_mode()
665 pmu_wait_complete(&req); in pmu_set_server_mode()
666 if (req.reply_len < 2) in pmu_set_server_mode()
669 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, in pmu_set_server_mode()
671 req.reply[0], PMU_PWR_WAKEUP_AC_INSERT); in pmu_set_server_mode()
673 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, in pmu_set_server_mode()
675 req.reply[0], PMU_PWR_WAKEUP_AC_INSERT); in pmu_set_server_mode()
676 pmu_wait_complete(&req); in pmu_set_server_mode()
683 done_battery_state_ohare(struct adb_request* req) in done_battery_state_ohare() argument
711 if (req->reply[0] & 0x01) in done_battery_state_ohare()
728 if (req->reply[0] & 0x04) { in done_battery_state_ohare()
730 if (req->reply[0] & 0x02) in done_battery_state_ohare()
732 vb = (req->reply[1] << 8) | req->reply[2]; in done_battery_state_ohare()
734 amperage = req->reply[5]; in done_battery_state_ohare()
735 if ((req->reply[0] & 0x01) == 0) { in done_battery_state_ohare()
738 } else if (req->reply[0] & 0x02) { in done_battery_state_ohare()
743 if (req->reply[0] & 0x40) { in done_battery_state_ohare()
744 pcharge = (req->reply[6] << 8) + req->reply[7]; in done_battery_state_ohare()
773 done_battery_state_smart(struct adb_request* req) in done_battery_state_smart() argument
798 if (req->reply[1] & 0x01) in done_battery_state_smart()
806 if (req->reply[1] & 0x04) { in done_battery_state_smart()
808 switch(req->reply[0]) { in done_battery_state_smart()
810 case 4: capa = req->reply[2]; in done_battery_state_smart()
811 max = req->reply[3]; in done_battery_state_smart()
812 amperage = *((signed char *)&req->reply[4]); in done_battery_state_smart()
813 voltage = req->reply[5]; in done_battery_state_smart()
815 case 5: capa = (req->reply[2] << 8) | req->reply[3]; in done_battery_state_smart()
816 max = (req->reply[4] << 8) | req->reply[5]; in done_battery_state_smart()
817 amperage = *((signed short *)&req->reply[6]); in done_battery_state_smart()
818 voltage = (req->reply[8] << 8) | req->reply[9]; in done_battery_state_smart()
822 "len: %d, %4ph\n", req->reply_len, in done_battery_state_smart()
823 req->reply); in done_battery_state_smart()
828 if ((req->reply[1] & 0x01) && (amperage > 0)) in done_battery_state_smart()
837 if ((req->reply[1] & 0x01) && (amperage > 0)) in done_battery_state_smart()
988 static int pmu_send_request(struct adb_request *req, int sync) in pmu_send_request() argument
993 req->complete = 1; in pmu_send_request()
999 switch (req->data[0]) { in pmu_send_request()
1001 for (i = 0; i < req->nbytes - 1; ++i) in pmu_send_request()
1002 req->data[i] = req->data[i+1]; in pmu_send_request()
1003 --req->nbytes; in pmu_send_request()
1004 if (pmu_data_len[req->data[0]][1] != 0) { in pmu_send_request()
1005 req->reply[0] = ADB_RET_OK; in pmu_send_request()
1006 req->reply_len = 1; in pmu_send_request()
1008 req->reply_len = 0; in pmu_send_request()
1009 ret = pmu_queue_request(req); in pmu_send_request()
1012 switch (req->data[1]) { in pmu_send_request()
1014 if (req->nbytes != 2) in pmu_send_request()
1016 req->data[0] = PMU_READ_RTC; in pmu_send_request()
1017 req->nbytes = 1; in pmu_send_request()
1018 req->reply_len = 3; in pmu_send_request()
1019 req->reply[0] = CUDA_PACKET; in pmu_send_request()
1020 req->reply[1] = 0; in pmu_send_request()
1021 req->reply[2] = CUDA_GET_TIME; in pmu_send_request()
1022 ret = pmu_queue_request(req); in pmu_send_request()
1025 if (req->nbytes != 6) in pmu_send_request()
1027 req->data[0] = PMU_SET_RTC; in pmu_send_request()
1028 req->nbytes = 5; in pmu_send_request()
1030 req->data[i] = req->data[i+1]; in pmu_send_request()
1031 req->reply_len = 3; in pmu_send_request()
1032 req->reply[0] = CUDA_PACKET; in pmu_send_request()
1033 req->reply[1] = 0; in pmu_send_request()
1034 req->reply[2] = CUDA_SET_TIME; in pmu_send_request()
1035 ret = pmu_queue_request(req); in pmu_send_request()
1042 for (i = req->nbytes - 1; i > 1; --i) in pmu_send_request()
1043 req->data[i+2] = req->data[i]; in pmu_send_request()
1044 req->data[3] = req->nbytes - 2; in pmu_send_request()
1045 req->data[2] = pmu_adb_flags; in pmu_send_request()
1047 req->data[0] = PMU_ADB_CMD; in pmu_send_request()
1048 req->nbytes += 2; in pmu_send_request()
1049 req->reply_expected = 1; in pmu_send_request()
1050 req->reply_len = 0; in pmu_send_request()
1051 ret = pmu_queue_request(req); in pmu_send_request()
1055 req->complete = 1; in pmu_send_request()
1060 while (!req->complete) in pmu_send_request()
1069 struct adb_request req; in __pmu_adb_autopoll() local
1072 pmu_request(&req, NULL, 5, PMU_ADB_CMD, 0, 0x86, in __pmu_adb_autopoll()
1076 pmu_request(&req, NULL, 1, PMU_ADB_POLL_OFF); in __pmu_adb_autopoll()
1079 while (!req.complete) in __pmu_adb_autopoll()
1096 struct adb_request req; in pmu_adb_reset_bus() local
1105 req.nbytes = 4; in pmu_adb_reset_bus()
1106 req.done = NULL; in pmu_adb_reset_bus()
1107 req.data[0] = PMU_ADB_CMD; in pmu_adb_reset_bus()
1108 req.data[1] = ADB_BUSRESET; in pmu_adb_reset_bus()
1109 req.data[2] = 0; in pmu_adb_reset_bus()
1110 req.data[3] = 0; in pmu_adb_reset_bus()
1111 req.data[4] = 0; in pmu_adb_reset_bus()
1112 req.reply_len = 0; in pmu_adb_reset_bus()
1113 req.reply_expected = 1; in pmu_adb_reset_bus()
1114 if (pmu_queue_request(&req) != 0) { in pmu_adb_reset_bus()
1118 pmu_wait_complete(&req); in pmu_adb_reset_bus()
1129 pmu_request(struct adb_request *req, void (*done)(struct adb_request *), in pmu_request() argument
1140 req->complete = 1; in pmu_request()
1143 req->nbytes = nbytes; in pmu_request()
1144 req->done = done; in pmu_request()
1147 req->data[i] = va_arg(list, int); in pmu_request()
1149 req->reply_len = 0; in pmu_request()
1150 req->reply_expected = 0; in pmu_request()
1151 return pmu_queue_request(req); in pmu_request()
1155 pmu_queue_request(struct adb_request *req) in pmu_queue_request() argument
1161 req->complete = 1; in pmu_queue_request()
1164 if (req->nbytes <= 0) { in pmu_queue_request()
1165 req->complete = 1; in pmu_queue_request()
1168 nsend = pmu_data_len[req->data[0]][0]; in pmu_queue_request()
1169 if (nsend >= 0 && req->nbytes != nsend + 1) { in pmu_queue_request()
1170 req->complete = 1; in pmu_queue_request()
1174 req->next = NULL; in pmu_queue_request()
1175 req->sent = 0; in pmu_queue_request()
1176 req->complete = 0; in pmu_queue_request()
1180 last_req->next = req; in pmu_queue_request()
1181 last_req = req; in pmu_queue_request()
1183 current_req = req; in pmu_queue_request()
1184 last_req = req; in pmu_queue_request()
1230 pmu_done(struct adb_request *req) in pmu_done() argument
1232 void (*done)(struct adb_request *) = req->done; in pmu_done()
1234 req->complete = 1; in pmu_done()
1239 (*done)(req); in pmu_done()
1245 struct adb_request *req; in pmu_start() local
1249 req = current_req; in pmu_start()
1250 if (!req || pmu_state != idle in pmu_start()
1256 data_len = pmu_data_len[req->data[0]][0]; in pmu_start()
1263 send_byte(req->data[0]); in pmu_start()
1292 pmu_wait_complete(struct adb_request *req) in pmu_wait_complete() argument
1296 while((pmu_state != idle && pmu_state != locked) || !req->complete) in pmu_wait_complete()
1404 struct adb_request *req = req_awaiting_reply; in pmu_handle_data() local
1405 if (!req) { in pmu_handle_data()
1411 req->reply_len = 0; in pmu_handle_data()
1413 memcpy(req->reply, data + 1, len - 1); in pmu_handle_data()
1414 req->reply_len = len - 1; in pmu_handle_data()
1416 pmu_done(req); in pmu_handle_data()
1482 struct adb_request *req; in pmu_sr_intr() local
1503 req = current_req; in pmu_sr_intr()
1505 data_len = req->nbytes - 1; in pmu_sr_intr()
1510 send_byte(req->data[data_index++]); in pmu_sr_intr()
1513 req->sent = 1; in pmu_sr_intr()
1514 data_len = pmu_data_len[req->data[0]][1]; in pmu_sr_intr()
1517 current_req = req->next; in pmu_sr_intr()
1518 if (req->reply_expected) in pmu_sr_intr()
1519 req_awaiting_reply = req; in pmu_sr_intr()
1521 return req; in pmu_sr_intr()
1525 reply_ptr = req->reply + req->reply_len; in pmu_sr_intr()
1561 req = current_req; in pmu_sr_intr()
1567 current_req = req->next; in pmu_sr_intr()
1568 req->reply_len += data_index; in pmu_sr_intr()
1569 if (req->data[0] == PMU_SLEEP || req->data[0] == PMU_CPU_SPEED) in pmu_sr_intr()
1573 return req; in pmu_sr_intr()
1591 struct adb_request *req = NULL; in via_pmu_interrupt() local
1632 req = pmu_sr_intr(); in via_pmu_interrupt()
1633 if (req) in via_pmu_interrupt()
1674 if (req) { in via_pmu_interrupt()
1675 pmu_done(req); in via_pmu_interrupt()
1676 req = NULL; in via_pmu_interrupt()
1728 struct adb_request req; in pmu_enable_irled() local
1735 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, PMU_POW_IRLED | in pmu_enable_irled()
1737 pmu_wait_complete(&req); in pmu_enable_irled()
1745 struct adb_request req; in pmu_get_time() local
1748 if (pmu_request(&req, NULL, 1, PMU_READ_RTC) < 0) in pmu_get_time()
1750 pmu_wait_complete(&req); in pmu_get_time()
1751 if (req.reply_len != 4) in pmu_get_time()
1752 pr_err("%s: got %d byte reply\n", __func__, req.reply_len); in pmu_get_time()
1753 now = (req.reply[0] << 24) + (req.reply[1] << 16) + in pmu_get_time()
1754 (req.reply[2] << 8) + req.reply[3]; in pmu_get_time()
1761 struct adb_request req; in pmu_set_rtc_time() local
1764 if (pmu_request(&req, NULL, 5, PMU_SET_RTC, in pmu_set_rtc_time()
1767 pmu_wait_complete(&req); in pmu_set_rtc_time()
1768 if (req.reply_len != 0) in pmu_set_rtc_time()
1769 pr_err("%s: got %d byte reply\n", __func__, req.reply_len); in pmu_set_rtc_time()
1776 struct adb_request req; in pmu_restart() local
1786 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB | in pmu_restart()
1788 while(!req.complete) in pmu_restart()
1792 pmu_request(&req, NULL, 1, PMU_RESET); in pmu_restart()
1793 pmu_wait_complete(&req); in pmu_restart()
1801 struct adb_request req; in pmu_shutdown() local
1811 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB | in pmu_shutdown()
1813 pmu_wait_complete(&req); in pmu_shutdown()
1821 pmu_request(&req, NULL, 5, PMU_SHUTDOWN, in pmu_shutdown()
1823 pmu_wait_complete(&req); in pmu_shutdown()
1878 struct adb_request req; in powerbook_sleep_grackle() local
1886 pmu_request(&req, NULL, 2, PMU_POWER_CTRL0, PMU_POW0_OFF|PMU_POW0_HARD_DRIVE); in powerbook_sleep_grackle()
1887 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1888 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, in powerbook_sleep_grackle()
1890 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1897 pmu_request(&req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T'); in powerbook_sleep_grackle()
1898 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1938 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask); in powerbook_sleep_grackle()
1939 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1940 pmu_request(&req, NULL, 2, PMU_POWER_CTRL0, in powerbook_sleep_grackle()
1942 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1943 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, in powerbook_sleep_grackle()
1945 pmu_wait_complete(&req); in powerbook_sleep_grackle()
1955 struct adb_request req; in powerbook_sleep_Core99() local
1966 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, 0); in powerbook_sleep_Core99()
1967 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1970 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, PMU_PWR_CLR_WAKEUP_EVENTS, in powerbook_sleep_Core99()
1972 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1973 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, PMU_PWR_SET_WAKEUP_EVENTS, in powerbook_sleep_Core99()
1976 pmu_wait_complete(&req); in powerbook_sleep_Core99()
1984 pmu_request(&req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T'); in powerbook_sleep_Core99()
1985 pmu_wait_complete(&req); in powerbook_sleep_Core99()
2027 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2); in powerbook_sleep_Core99()
2028 pmu_wait_complete(&req); in powerbook_sleep_Core99()
2029 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask); in powerbook_sleep_Core99()
2030 pmu_wait_complete(&req); in powerbook_sleep_Core99()
2541 pmu_polled_request(struct adb_request *req) in pmu_polled_request() argument
2546 req->complete = 1; in pmu_polled_request()
2547 c = req->data[0]; in pmu_polled_request()
2549 if (l >= 0 && req->nbytes != l + 1) in pmu_polled_request()
2560 l = req->nbytes - 1; in pmu_polled_request()
2564 polled_send_byte(req->data[i]); in pmu_polled_request()
2570 req->reply[i + req->reply_len] = polled_recv_byte(); in pmu_polled_request()
2572 if (req->done) in pmu_polled_request()
2573 (*req->done)(req); in pmu_polled_request()
2582 struct adb_request req; in pmu_blink() local
2584 memset(&req, 0, sizeof(req)); in pmu_blink()
2587 req.nbytes = 4; in pmu_blink()
2588 req.done = NULL; in pmu_blink()
2589 req.data[0] = 0xee; in pmu_blink()
2590 req.data[1] = 4; in pmu_blink()
2591 req.data[2] = 0; in pmu_blink()
2592 req.data[3] = 1; in pmu_blink()
2593 req.reply[0] = ADB_RET_OK; in pmu_blink()
2594 req.reply_len = 1; in pmu_blink()
2595 req.reply_expected = 0; in pmu_blink()
2596 pmu_polled_request(&req); in pmu_blink()
2598 req.nbytes = 4; in pmu_blink()
2599 req.done = NULL; in pmu_blink()
2600 req.data[0] = 0xee; in pmu_blink()
2601 req.data[1] = 4; in pmu_blink()
2602 req.data[2] = 0; in pmu_blink()
2603 req.data[3] = 0; in pmu_blink()
2604 req.reply[0] = ADB_RET_OK; in pmu_blink()
2605 req.reply_len = 1; in pmu_blink()
2606 req.reply_expected = 0; in pmu_blink()
2607 pmu_polled_request(&req); in pmu_blink()
2633 struct adb_request req; in pmu_syscore_resume() local
2639 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2); in pmu_syscore_resume()
2640 pmu_wait_complete(&req); in pmu_syscore_resume()