Lines Matching refs:req
199 static int pmu_send_request(struct adb_request *req, int sync);
231 int pmu_polled_request(struct adb_request *req);
584 struct adb_request req;
590 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask);
592 while (!req.complete) {
617 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2);
618 while (!req.complete)
623 pmu_request(&req, NULL, 1, PMU_GET_VERSION);
624 pmu_wait_complete(&req);
625 if (req.reply_len > 0)
626 pmu_version = req.reply[0];
630 pmu_request(&req, NULL, 2, PMU_POWER_EVENTS,
632 pmu_wait_complete(&req);
633 if (req.reply_len == 2) {
634 if (req.reply[1] & PMU_PWR_WAKEUP_AC_INSERT)
655 struct adb_request req;
661 pmu_request(&req, NULL, 2, PMU_POWER_EVENTS, PMU_PWR_GET_POWERUP_EVENTS);
662 pmu_wait_complete(&req);
663 if (req.reply_len < 2)
666 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS,
668 req.reply[0], PMU_PWR_WAKEUP_AC_INSERT);
670 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS,
672 req.reply[0], PMU_PWR_WAKEUP_AC_INSERT);
673 pmu_wait_complete(&req);
680 done_battery_state_ohare(struct adb_request* req)
708 if (req->reply[0] & 0x01)
725 if (req->reply[0] & 0x04) {
727 if (req->reply[0] & 0x02)
729 vb = (req->reply[1] << 8) | req->reply[2];
731 amperage = req->reply[5];
732 if ((req->reply[0] & 0x01) == 0) {
735 } else if (req->reply[0] & 0x02) {
740 if (req->reply[0] & 0x40) {
741 pcharge = (req->reply[6] << 8) + req->reply[7];
770 done_battery_state_smart(struct adb_request* req)
795 if (req->reply[1] & 0x01)
803 if (req->reply[1] & 0x04) {
805 switch(req->reply[0]) {
807 case 4: capa = req->reply[2];
808 max = req->reply[3];
809 amperage = *((signed char *)&req->reply[4]);
810 voltage = req->reply[5];
812 case 5: capa = (req->reply[2] << 8) | req->reply[3];
813 max = (req->reply[4] << 8) | req->reply[5];
814 amperage = *((signed short *)&req->reply[6]);
815 voltage = (req->reply[8] << 8) | req->reply[9];
819 "len: %d, %4ph\n", req->reply_len,
820 req->reply);
825 if ((req->reply[1] & 0x01) && (amperage > 0))
834 if ((req->reply[1] & 0x01) && (amperage > 0))
984 static int pmu_send_request(struct adb_request *req, int sync)
989 req->complete = 1;
995 switch (req->data[0]) {
997 for (i = 0; i < req->nbytes - 1; ++i)
998 req->data[i] = req->data[i+1];
999 --req->nbytes;
1000 if (pmu_data_len[req->data[0]][1] != 0) {
1001 req->reply[0] = ADB_RET_OK;
1002 req->reply_len = 1;
1004 req->reply_len = 0;
1005 ret = pmu_queue_request(req);
1008 switch (req->data[1]) {
1010 if (req->nbytes != 2)
1012 req->data[0] = PMU_READ_RTC;
1013 req->nbytes = 1;
1014 req->reply_len = 3;
1015 req->reply[0] = CUDA_PACKET;
1016 req->reply[1] = 0;
1017 req->reply[2] = CUDA_GET_TIME;
1018 ret = pmu_queue_request(req);
1021 if (req->nbytes != 6)
1023 req->data[0] = PMU_SET_RTC;
1024 req->nbytes = 5;
1026 req->data[i] = req->data[i+1];
1027 req->reply_len = 3;
1028 req->reply[0] = CUDA_PACKET;
1029 req->reply[1] = 0;
1030 req->reply[2] = CUDA_SET_TIME;
1031 ret = pmu_queue_request(req);
1038 for (i = req->nbytes - 1; i > 1; --i)
1039 req->data[i+2] = req->data[i];
1040 req->data[3] = req->nbytes - 2;
1041 req->data[2] = pmu_adb_flags;
1042 /*req->data[1] = req->data[1];*/
1043 req->data[0] = PMU_ADB_CMD;
1044 req->nbytes += 2;
1045 req->reply_expected = 1;
1046 req->reply_len = 0;
1047 ret = pmu_queue_request(req);
1051 req->complete = 1;
1056 while (!req->complete)
1065 struct adb_request req;
1068 pmu_request(&req, NULL, 5, PMU_ADB_CMD, 0, 0x86,
1072 pmu_request(&req, NULL, 1, PMU_ADB_POLL_OFF);
1075 while (!req.complete)
1092 struct adb_request req;
1101 req.nbytes = 4;
1102 req.done = NULL;
1103 req.data[0] = PMU_ADB_CMD;
1104 req.data[1] = ADB_BUSRESET;
1105 req.data[2] = 0;
1106 req.data[3] = 0;
1107 req.data[4] = 0;
1108 req.reply_len = 0;
1109 req.reply_expected = 1;
1110 if (pmu_queue_request(&req) != 0) {
1114 pmu_wait_complete(&req);
1125 pmu_request(struct adb_request *req, void (*done)(struct adb_request *),
1136 req->complete = 1;
1139 req->nbytes = nbytes;
1140 req->done = done;
1143 req->data[i] = va_arg(list, int);
1145 req->reply_len = 0;
1146 req->reply_expected = 0;
1147 return pmu_queue_request(req);
1151 pmu_queue_request(struct adb_request *req)
1157 req->complete = 1;
1160 if (req->nbytes <= 0) {
1161 req->complete = 1;
1164 nsend = pmu_data_len[req->data[0]][0];
1165 if (nsend >= 0 && req->nbytes != nsend + 1) {
1166 req->complete = 1;
1170 req->next = NULL;
1171 req->sent = 0;
1172 req->complete = 0;
1176 last_req->next = req;
1177 last_req = req;
1179 current_req = req;
1180 last_req = req;
1226 pmu_done(struct adb_request *req)
1228 void (*done)(struct adb_request *) = req->done;
1230 req->complete = 1;
1232 * struct request will survive to setting req->complete to 1
1235 (*done)(req);
1241 struct adb_request *req;
1245 req = current_req;
1246 if (!req || pmu_state != idle
1247 || (/*req->reply_expected && */req_awaiting_reply))
1252 data_len = pmu_data_len[req->data[0]][0];
1259 send_byte(req->data[0]);
1288 pmu_wait_complete(struct adb_request *req)
1292 while((pmu_state != idle && pmu_state != locked) || !req->complete)
1400 struct adb_request *req = req_awaiting_reply;
1401 if (!req) {
1407 req->reply_len = 0;
1409 memcpy(req->reply, data + 1, len - 1);
1410 req->reply_len = len - 1;
1412 pmu_done(req);
1478 struct adb_request *req;
1499 req = current_req;
1501 data_len = req->nbytes - 1;
1506 send_byte(req->data[data_index++]);
1509 req->sent = 1;
1510 data_len = pmu_data_len[req->data[0]][1];
1513 current_req = req->next;
1514 if (req->reply_expected)
1515 req_awaiting_reply = req;
1517 return req;
1521 reply_ptr = req->reply + req->reply_len;
1557 req = current_req;
1563 current_req = req->next;
1564 req->reply_len += data_index;
1565 if (req->data[0] == PMU_SLEEP || req->data[0] == PMU_CPU_SPEED)
1569 return req;
1587 struct adb_request *req = NULL;
1628 req = pmu_sr_intr();
1629 if (req)
1670 if (req) {
1671 pmu_done(req);
1672 req = NULL;
1724 struct adb_request req;
1731 pmu_request(&req, NULL, 2, PMU_POWER_CTRL, PMU_POW_IRLED |
1733 pmu_wait_complete(&req);
1741 struct adb_request req;
1744 if (pmu_request(&req, NULL, 1, PMU_READ_RTC) < 0)
1746 pmu_wait_complete(&req);
1747 if (req.reply_len != 4)
1748 pr_err("%s: got %d byte reply\n", __func__, req.reply_len);
1749 now = (req.reply[0] << 24) + (req.reply[1] << 16) +
1750 (req.reply[2] << 8) + req.reply[3];
1757 struct adb_request req;
1760 if (pmu_request(&req, NULL, 5, PMU_SET_RTC,
1763 pmu_wait_complete(&req);
1764 if (req.reply_len != 0)
1765 pr_err("%s: got %d byte reply\n", __func__, req.reply_len);
1772 struct adb_request req;
1782 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB |
1784 while(!req.complete)
1788 pmu_request(&req, NULL, 1, PMU_RESET);
1789 pmu_wait_complete(&req);
1797 struct adb_request req;
1807 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, PMU_INT_ADB |
1809 pmu_wait_complete(&req);
1817 pmu_request(&req, NULL, 5, PMU_SHUTDOWN,
1819 pmu_wait_complete(&req);
1874 struct adb_request req;
1882 pmu_request(&req, NULL, 2, PMU_POWER_CTRL0, PMU_POW0_OFF|PMU_POW0_HARD_DRIVE);
1883 pmu_wait_complete(&req);
1884 pmu_request(&req, NULL, 2, PMU_POWER_CTRL,
1886 pmu_wait_complete(&req);
1893 pmu_request(&req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T');
1894 pmu_wait_complete(&req);
1934 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask);
1935 pmu_wait_complete(&req);
1936 pmu_request(&req, NULL, 2, PMU_POWER_CTRL0,
1938 pmu_wait_complete(&req);
1939 pmu_request(&req, NULL, 2, PMU_POWER_CTRL,
1941 pmu_wait_complete(&req);
1951 struct adb_request req;
1962 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, 0);
1963 pmu_wait_complete(&req);
1966 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, PMU_PWR_CLR_WAKEUP_EVENTS,
1968 pmu_wait_complete(&req);
1969 pmu_request(&req, NULL, 4, PMU_POWER_EVENTS, PMU_PWR_SET_WAKEUP_EVENTS,
1972 pmu_wait_complete(&req);
1980 pmu_request(&req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T');
1981 pmu_wait_complete(&req);
2023 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2);
2024 pmu_wait_complete(&req);
2025 pmu_request(&req, NULL, 2, PMU_SET_INTR_MASK, pmu_intr_mask);
2026 pmu_wait_complete(&req);
2535 pmu_polled_request(struct adb_request *req)
2540 req->complete = 1;
2541 c = req->data[0];
2543 if (l >= 0 && req->nbytes != l + 1)
2554 l = req->nbytes - 1;
2558 polled_send_byte(req->data[i]);
2564 req->reply[i + req->reply_len] = polled_recv_byte();
2566 if (req->done)
2567 (*req->done)(req);
2576 struct adb_request req;
2578 memset(&req, 0, sizeof(req));
2581 req.nbytes = 4;
2582 req.done = NULL;
2583 req.data[0] = 0xee;
2584 req.data[1] = 4;
2585 req.data[2] = 0;
2586 req.data[3] = 1;
2587 req.reply[0] = ADB_RET_OK;
2588 req.reply_len = 1;
2589 req.reply_expected = 0;
2590 pmu_polled_request(&req);
2592 req.nbytes = 4;
2593 req.done = NULL;
2594 req.data[0] = 0xee;
2595 req.data[1] = 4;
2596 req.data[2] = 0;
2597 req.data[3] = 0;
2598 req.reply[0] = ADB_RET_OK;
2599 req.reply_len = 1;
2600 req.reply_expected = 0;
2601 pmu_polled_request(&req);
2627 struct adb_request req;
2633 pmu_request(&req, NULL, 2, PMU_SYSTEM_READY, 2);
2634 pmu_wait_complete(&req);