Lines Matching refs:bmi

28 	if (ar->bmi.done_sent) {
29 ath6kl_dbg(ATH6KL_DBG_BMI, "bmi done skipped\n");
33 ar->bmi.done_sent = true;
37 ath6kl_err("Unable to send bmi done: %d\n", ret);
50 if (ar->bmi.done_sent) {
51 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
122 if (ar->bmi.done_sent) {
123 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
127 size = ar->bmi.max_data_size + sizeof(cid) + sizeof(addr) + sizeof(len);
128 if (size > ar->bmi.max_cmd_size) {
132 memset(ar->bmi.cmd_buf, 0, size);
135 "bmi read memory: device: addr: 0x%x, len: %d\n",
141 rx_len = (len_remain < ar->bmi.max_data_size) ?
142 len_remain : ar->bmi.max_data_size;
144 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
146 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
148 memcpy(&(ar->bmi.cmd_buf[offset]), &rx_len, sizeof(rx_len));
151 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
157 ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, rx_len);
163 memcpy(&buf[len - len_remain], ar->bmi.cmd_buf, rx_len);
180 if (ar->bmi.done_sent) {
181 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
185 if ((ar->bmi.max_data_size + header) > ar->bmi.max_cmd_size) {
190 if (WARN_ON(ar->bmi.max_data_size > sizeof(aligned_buf)))
193 memset(ar->bmi.cmd_buf, 0, ar->bmi.max_data_size + header);
196 "bmi write memory: addr: 0x%x, len: %d\n", addr, len);
202 if (len_remain < (ar->bmi.max_data_size - header)) {
212 tx_len = (ar->bmi.max_data_size - header);
216 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
218 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
220 memcpy(&(ar->bmi.cmd_buf[offset]), &tx_len, sizeof(tx_len));
222 memcpy(&(ar->bmi.cmd_buf[offset]), src, tx_len);
225 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
244 if (ar->bmi.done_sent) {
245 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
250 if (size > ar->bmi.max_cmd_size) {
254 memset(ar->bmi.cmd_buf, 0, size);
256 ath6kl_dbg(ATH6KL_DBG_BMI, "bmi execute: addr: 0x%x, param: %d)\n",
260 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
262 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
264 memcpy(&(ar->bmi.cmd_buf[offset]), param, sizeof(*param));
267 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
273 ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, sizeof(*param));
279 memcpy(param, ar->bmi.cmd_buf, sizeof(*param));
291 if (ar->bmi.done_sent) {
292 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
297 if (size > ar->bmi.max_cmd_size) {
301 memset(ar->bmi.cmd_buf, 0, size);
303 ath6kl_dbg(ATH6KL_DBG_BMI, "bmi set app start: addr: 0x%x\n", addr);
306 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
308 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
311 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
327 if (ar->bmi.done_sent) {
328 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
333 if (size > ar->bmi.max_cmd_size) {
337 memset(ar->bmi.cmd_buf, 0, size);
339 ath6kl_dbg(ATH6KL_DBG_BMI, "bmi read SOC reg: addr: 0x%x\n", addr);
342 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
344 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
347 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
353 ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, sizeof(*param));
358 memcpy(param, ar->bmi.cmd_buf, sizeof(*param));
370 if (ar->bmi.done_sent) {
371 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
376 if (size > ar->bmi.max_cmd_size) {
380 memset(ar->bmi.cmd_buf, 0, size);
383 "bmi write SOC reg: addr: 0x%x, param: %d\n",
387 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
389 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
391 memcpy(&(ar->bmi.cmd_buf[offset]), &param, sizeof(param));
394 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
412 if (ar->bmi.done_sent) {
413 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
417 size = ar->bmi.max_data_size + header;
418 if (size > ar->bmi.max_cmd_size) {
422 memset(ar->bmi.cmd_buf, 0, size);
424 ath6kl_dbg(ATH6KL_DBG_BMI, "bmi send LZ data: len: %d)\n",
429 tx_len = (len_remain < (ar->bmi.max_data_size - header)) ?
430 len_remain : (ar->bmi.max_data_size - header);
433 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
435 memcpy(&(ar->bmi.cmd_buf[offset]), &tx_len, sizeof(tx_len));
437 memcpy(&(ar->bmi.cmd_buf[offset]), &buf[len - len_remain],
441 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
461 if (ar->bmi.done_sent) {
462 ath6kl_err("bmi done sent already, cmd %d disallowed\n", cid);
467 if (size > ar->bmi.max_cmd_size) {
471 memset(ar->bmi.cmd_buf, 0, size);
474 "bmi LZ stream start: addr: 0x%x)\n",
478 memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid));
480 memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr));
483 ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset);
526 ar->bmi.done_sent = false;
531 if (WARN_ON(ar->bmi.max_data_size == 0))
535 ar->bmi.max_cmd_size = ar->bmi.max_data_size + (sizeof(u32) * 3);
537 ar->bmi.cmd_buf = kzalloc(ar->bmi.max_cmd_size, GFP_KERNEL);
538 if (!ar->bmi.cmd_buf)
546 kfree(ar->bmi.cmd_buf);
547 ar->bmi.cmd_buf = NULL;