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;
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;