X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=carlfw%2Fsrc%2Fhostif.c;h=06726dbdf7d9c6e47b9556ef0a550c4b6c61a205;hp=7ff1d9b243ba43d88d621019ece3634d66a5387a;hb=001384147050b9cd9daadb4d3115cc0f13f5b319;hpb=2547abad9ca1434b943ea832472bdbb0dc5246c9 diff --git a/carlfw/src/hostif.c b/carlfw/src/hostif.c index 7ff1d9b..06726db 100644 --- a/carlfw/src/hostif.c +++ b/carlfw/src/hostif.c @@ -213,10 +213,14 @@ void handle_cmd(struct carl9170_rsp *resp) fw.reboot = 1; break; - case CARL9170_CMD_READ_TSF: + case CARL9170_CMD_READ_TSF: { + uint32_t tmptsf[2]; + + read_tsf(tmptsf); resp->hdr.len = 8; - read_tsf((uint32_t *)resp->tsf.tsf); + memcpy(resp->tsf.tsf, tmptsf, sizeof(tmptsf)); break; + } case CARL9170_CMD_RX_FILTER: resp->hdr.len = 0; @@ -234,6 +238,12 @@ void handle_cmd(struct carl9170_rsp *resp) memset(&fw.tally, 0, sizeof(struct carl9170_tally_rsp)); break; + case CARL9170_CMD_WREGB: + resp->hdr.len = 0; + for (i = 0; i < MIN(cmd->wregb.count, cmd->hdr.len - 8); i++) + setb(cmd->wregb.addr + i, cmd->wregb.val[i]); + break; + case CARL9170_CMD_BCN_CTRL: resp->hdr.len = 0;