Lines Matching defs:priv

156  * @priv: the instance of iwlwifi device
166 static void iwl_testmode_ucode_rx_pkt(struct iwl_priv *priv,
169 struct ieee80211_hw *hw = priv->hw;
183 IWL_ERR(priv,
195 IWL_ERR(priv, "Ouch, overran buffer, check allocation!\n");
198 void iwl_testmode_init(struct iwl_priv *priv)
200 priv->pre_rx_handler = NULL;
201 priv->testmode_trace.trace_enabled = false;
202 priv->testmode_mem.read_in_progress = false;
205 static void iwl_mem_cleanup(struct iwl_priv *priv)
207 if (priv->testmode_mem.read_in_progress) {
208 kfree(priv->testmode_mem.buff_addr);
209 priv->testmode_mem.buff_addr = NULL;
210 priv->testmode_mem.buff_size = 0;
211 priv->testmode_mem.num_chunks = 0;
212 priv->testmode_mem.read_in_progress = false;
216 static void iwl_trace_cleanup(struct iwl_priv *priv)
218 if (priv->testmode_trace.trace_enabled) {
219 if (priv->testmode_trace.cpu_addr &&
220 priv->testmode_trace.dma_addr)
221 dma_free_coherent(trans(priv)->dev,
222 priv->testmode_trace.total_size,
223 priv->testmode_trace.cpu_addr,
224 priv->testmode_trace.dma_addr);
225 priv->testmode_trace.trace_enabled = false;
226 priv->testmode_trace.cpu_addr = NULL;
227 priv->testmode_trace.trace_addr = NULL;
228 priv->testmode_trace.dma_addr = 0;
229 priv->testmode_trace.buff_size = 0;
230 priv->testmode_trace.total_size = 0;
235 void iwl_testmode_cleanup(struct iwl_priv *priv)
237 iwl_trace_cleanup(priv);
238 iwl_mem_cleanup(priv);
260 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
273 IWL_ERR(priv, "Missing ucode command mandatory fields\n");
286 IWL_DEBUG_INFO(priv, "testmode ucode command ID 0x%x, flags 0x%x,"
289 ret = iwl_dvm_send_cmd(priv, &cmd);
291 IWL_ERR(priv, "Failed to send hcmd\n");
300 IWL_ERR(priv, "HCMD received a null response packet\n");
322 IWL_DEBUG_INFO(priv, "Failed creating NL attributes\n");
346 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
353 IWL_ERR(priv, "Missing register offset\n");
357 IWL_INFO(priv, "testmode register access command offset 0x%x\n", ofs);
367 IWL_ERR(priv, "offset out of segment (0x0 - 0x%x)\n",
374 val32 = iwl_read_direct32(trans(priv), ofs);
375 IWL_INFO(priv, "32bit value to read 0x%x\n", val32);
379 IWL_ERR(priv, "Memory allocation fail\n");
385 IWL_ERR(priv, "Error sending msg : %d\n", status);
389 IWL_ERR(priv, "Missing value to write\n");
393 IWL_INFO(priv, "32bit value to write 0x%x\n", val32);
394 iwl_write_direct32(trans(priv), ofs, val32);
399 IWL_ERR(priv, "Missing value to write\n");
403 IWL_INFO(priv, "8bit value to write 0x%x\n", val8);
404 iwl_write8(trans(priv), ofs, val8);
408 IWL_ERR(priv, "Unknown testmode register command ID\n");
420 static int iwl_testmode_cfg_init_calib(struct iwl_priv *priv)
425 iwl_init_notification_wait(&priv->notif_wait, &calib_wait,
428 ret = iwl_init_alive_start(priv);
430 IWL_ERR(priv, "Fail init calibration: %d\n", ret);
434 ret = iwl_wait_notification(&priv->notif_wait, &calib_wait, 2 * HZ);
436 IWL_ERR(priv, "Error detecting"
441 iwl_remove_notification(&priv->notif_wait, &calib_wait);
463 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
464 struct iwl_trans *trans = trans(priv);
473 rsp_data_ptr = (unsigned char *)cfg(priv)->name;
474 rsp_data_len = strlen(cfg(priv)->name);
478 IWL_ERR(priv, "Memory allocation fail\n");
487 IWL_ERR(priv, "Error sending msg : %d\n", status);
491 status = iwl_load_ucode_wait_alive(priv, IWL_UCODE_INIT);
493 IWL_ERR(priv, "Error loading init ucode: %d\n", status);
497 iwl_testmode_cfg_init_calib(priv);
498 priv->ucode_loaded = false;
503 status = iwl_load_ucode_wait_alive(priv, IWL_UCODE_REGULAR);
505 IWL_ERR(priv,
509 status = iwl_alive_start(priv);
511 IWL_ERR(priv,
516 iwl_scan_cancel_timeout(priv, 200);
517 priv->ucode_loaded = false;
519 status = iwl_load_ucode_wait_alive(priv, IWL_UCODE_WOWLAN);
521 IWL_ERR(priv,
525 status = iwl_alive_start(priv);
527 IWL_ERR(priv,
532 if (priv->shrd->eeprom) {
534 cfg(priv)->base_params->eeprom_size + 20);
536 IWL_ERR(priv, "Memory allocation fail\n");
542 cfg(priv)->base_params->eeprom_size,
543 priv->shrd->eeprom);
546 IWL_ERR(priv, "Error sending msg : %d\n",
554 IWL_ERR(priv, "Missing fixrate setting\n");
557 priv->tm_fixed_rate = nla_get_u32(tb[IWL_TM_ATTR_FIXRATE]);
561 IWL_INFO(priv, "uCode version raw: 0x%x\n",
562 priv->fw->ucode_ver);
566 IWL_ERR(priv, "Memory allocation fail\n");
570 priv->fw->ucode_ver);
573 IWL_ERR(priv, "Error sending msg : %d\n", status);
577 devid = trans(priv)->hw_id;
578 IWL_INFO(priv, "hw version: 0x%x\n", devid);
582 IWL_ERR(priv, "Memory allocation fail\n");
588 IWL_ERR(priv, "Error sending msg : %d\n", status);
594 IWL_ERR(priv, "Memory allocation fail\n");
597 if (!priv->ucode_loaded) {
598 IWL_ERR(priv, "No uCode has not been loaded\n");
601 img = &priv->fw->img[priv->shrd->ucode_type];
605 NLA_PUT_U32(skb, IWL_TM_ATTR_FW_TYPE, priv->shrd->ucode_type);
610 IWL_ERR(priv, "Error sending msg : %d\n", status);
614 IWL_ERR(priv, "Unknown testmode driver command ID\n");
639 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
642 struct device *dev = trans(priv)->dev;
646 if (priv->testmode_trace.trace_enabled)
650 priv->testmode_trace.buff_size = TRACE_BUFF_SIZE_DEF;
652 priv->testmode_trace.buff_size =
654 if (!priv->testmode_trace.buff_size)
656 if (priv->testmode_trace.buff_size < TRACE_BUFF_SIZE_MIN ||
657 priv->testmode_trace.buff_size > TRACE_BUFF_SIZE_MAX)
660 priv->testmode_trace.total_size =
661 priv->testmode_trace.buff_size + TRACE_BUFF_PADD;
662 priv->testmode_trace.cpu_addr =
664 priv->testmode_trace.total_size,
665 &priv->testmode_trace.dma_addr,
667 if (!priv->testmode_trace.cpu_addr)
669 priv->testmode_trace.trace_enabled = true;
670 priv->testmode_trace.trace_addr = (u8 *)PTR_ALIGN(
671 priv->testmode_trace.cpu_addr, 0x100);
672 memset(priv->testmode_trace.trace_addr, 0x03B,
673 priv->testmode_trace.buff_size);
675 sizeof(priv->testmode_trace.dma_addr) + 20);
677 IWL_ERR(priv, "Memory allocation fail\n");
678 iwl_trace_cleanup(priv);
682 sizeof(priv->testmode_trace.dma_addr),
683 (u64 *)&priv->testmode_trace.dma_addr);
686 IWL_ERR(priv, "Error sending msg : %d\n", status);
688 priv->testmode_trace.num_chunks =
689 DIV_ROUND_UP(priv->testmode_trace.buff_size,
694 iwl_trace_cleanup(priv);
697 IWL_ERR(priv, "Unknown testmode mem command ID\n");
706 iwl_trace_cleanup(priv);
714 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
717 if (priv->testmode_trace.trace_enabled &&
718 priv->testmode_trace.trace_addr) {
720 if (idx >= priv->testmode_trace.num_chunks)
723 if (((idx + 1) == priv->testmode_trace.num_chunks) &&
724 (priv->testmode_trace.buff_size % DUMP_CHUNK_SIZE))
725 length = priv->testmode_trace.buff_size %
729 priv->testmode_trace.trace_addr +
758 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
762 IWL_ERR(priv, "Missing ucode owner\n");
768 priv->ucode_owner = owner;
769 priv->pre_rx_handler = NULL;
771 priv->pre_rx_handler = iwl_testmode_ucode_rx_pkt;
772 priv->ucode_owner = owner;
774 IWL_ERR(priv, "Invalid owner\n");
780 static int iwl_testmode_indirect_read(struct iwl_priv *priv, u32 addr, u32 size)
782 struct iwl_trans *trans = trans(priv);
788 priv->testmode_mem.buff_size = size;
789 priv->testmode_mem.buff_addr =
790 kmalloc(priv->testmode_mem.buff_size, GFP_KERNEL);
791 if (priv->testmode_mem.buff_addr == NULL)
802 *(u32 *)(priv->testmode_mem.buff_addr + i) =
808 priv->testmode_mem.buff_addr,
809 priv->testmode_mem.buff_size / 4);
812 priv->testmode_mem.num_chunks =
813 DIV_ROUND_UP(priv->testmode_mem.buff_size, DUMP_CHUNK_SIZE);
814 priv->testmode_mem.read_in_progress = true;
819 static int iwl_testmode_indirect_write(struct iwl_priv *priv, u32 addr,
822 struct iwl_trans *trans = trans(priv);
876 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
881 if (priv->testmode_mem.read_in_progress)
886 IWL_ERR(priv, "Error finding memory offset address\n");
891 IWL_ERR(priv, "Error finding size for memory reading\n");
897 return iwl_testmode_indirect_read(priv, addr, size);
902 return iwl_testmode_indirect_write(priv, addr, size, buf);
910 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
913 if (priv->testmode_mem.read_in_progress) {
915 if (idx >= priv->testmode_mem.num_chunks) {
916 iwl_mem_cleanup(priv);
920 if (((idx + 1) == priv->testmode_mem.num_chunks) &&
921 (priv->testmode_mem.buff_size % DUMP_CHUNK_SIZE))
922 length = priv->testmode_mem.buff_size %
926 priv->testmode_mem.buff_addr +
941 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
946 priv->pre_rx_handler = iwl_testmode_ucode_rx_pkt;
948 priv->pre_rx_handler = NULL;
975 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
981 IWL_ERR(priv, "Error parsing the gnl message : %d\n", result);
987 IWL_ERR(priv, "Missing testmode command type\n");
991 mutex_lock(&priv->mutex);
995 IWL_DEBUG_INFO(priv, "testmode cmd to uCode\n");
1001 IWL_DEBUG_INFO(priv, "testmode cmd to register\n");
1014 IWL_DEBUG_INFO(priv, "testmode cmd to driver\n");
1021 IWL_DEBUG_INFO(priv, "testmode uCode trace cmd to driver\n");
1026 IWL_DEBUG_INFO(priv, "testmode change uCode ownership\n");
1032 IWL_DEBUG_INFO(priv, "testmode indirect memory cmd "
1038 IWL_DEBUG_INFO(priv, "testmode notifications cmd "
1044 IWL_ERR(priv, "Unknown testmode command\n");
1049 mutex_unlock(&priv->mutex);
1058 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
1069 IWL_ERR(priv,
1076 IWL_ERR(priv, "Missing testmode command type\n");
1084 mutex_lock(&priv->mutex);
1087 IWL_DEBUG_INFO(priv, "uCode trace cmd to driver\n");
1091 IWL_DEBUG_INFO(priv, "testmode sram dump cmd to driver\n");
1099 mutex_unlock(&priv->mutex);