Lines Matching full:trans

53 #include "iwl-trans.h"
65 int iwl_pcie_gen2_apm_init(struct iwl_trans *trans) in iwl_pcie_gen2_apm_init() argument
69 IWL_DEBUG_INFO(trans, "Init card's basic functions\n"); in iwl_pcie_gen2_apm_init()
80 iwl_set_bit(trans, CSR_GIO_CHICKEN_BITS, in iwl_pcie_gen2_apm_init()
84 iwl_set_bit(trans, CSR_DBG_HPET_MEM_REG, CSR_DBG_HPET_MEM_REG_VAL); in iwl_pcie_gen2_apm_init()
90 iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, in iwl_pcie_gen2_apm_init()
93 iwl_pcie_apm_config(trans); in iwl_pcie_gen2_apm_init()
95 ret = iwl_finish_nic_init(trans, trans->trans_cfg); in iwl_pcie_gen2_apm_init()
99 set_bit(STATUS_DEVICE_ENABLED, &trans->status); in iwl_pcie_gen2_apm_init()
104 static void iwl_pcie_gen2_apm_stop(struct iwl_trans *trans, bool op_mode_leave) in iwl_pcie_gen2_apm_stop() argument
106 IWL_DEBUG_INFO(trans, "Stop card, put in low power state\n"); in iwl_pcie_gen2_apm_stop()
109 if (!test_bit(STATUS_DEVICE_ENABLED, &trans->status)) in iwl_pcie_gen2_apm_stop()
110 iwl_pcie_gen2_apm_init(trans); in iwl_pcie_gen2_apm_stop()
113 iwl_set_bit(trans, CSR_DBG_LINK_PWR_MGMT_REG, in iwl_pcie_gen2_apm_stop()
115 iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, in iwl_pcie_gen2_apm_stop()
119 iwl_clear_bit(trans, CSR_DBG_LINK_PWR_MGMT_REG, in iwl_pcie_gen2_apm_stop()
124 clear_bit(STATUS_DEVICE_ENABLED, &trans->status); in iwl_pcie_gen2_apm_stop()
127 iwl_pcie_apm_stop_master(trans); in iwl_pcie_gen2_apm_stop()
129 iwl_trans_sw_reset(trans); in iwl_pcie_gen2_apm_stop()
135 iwl_clear_bit(trans, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE); in iwl_pcie_gen2_apm_stop()
138 void _iwl_trans_pcie_gen2_stop_device(struct iwl_trans *trans) in _iwl_trans_pcie_gen2_stop_device() argument
140 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); in _iwl_trans_pcie_gen2_stop_device()
150 iwl_disable_interrupts(trans); in _iwl_trans_pcie_gen2_stop_device()
153 iwl_pcie_disable_ict(trans); in _iwl_trans_pcie_gen2_stop_device()
162 if (test_and_clear_bit(STATUS_DEVICE_ENABLED, &trans->status)) { in _iwl_trans_pcie_gen2_stop_device()
163 IWL_DEBUG_INFO(trans, in _iwl_trans_pcie_gen2_stop_device()
165 iwl_txq_gen2_tx_stop(trans); in _iwl_trans_pcie_gen2_stop_device()
166 iwl_pcie_rx_stop(trans); in _iwl_trans_pcie_gen2_stop_device()
169 iwl_pcie_ctxt_info_free_paging(trans); in _iwl_trans_pcie_gen2_stop_device()
170 if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) in _iwl_trans_pcie_gen2_stop_device()
171 iwl_pcie_ctxt_info_gen3_free(trans); in _iwl_trans_pcie_gen2_stop_device()
173 iwl_pcie_ctxt_info_free(trans); in _iwl_trans_pcie_gen2_stop_device()
176 iwl_clear_bit(trans, CSR_GP_CNTRL, in _iwl_trans_pcie_gen2_stop_device()
180 iwl_pcie_gen2_apm_stop(trans, false); in _iwl_trans_pcie_gen2_stop_device()
182 iwl_trans_sw_reset(trans); in _iwl_trans_pcie_gen2_stop_device()
200 iwl_disable_interrupts(trans); in _iwl_trans_pcie_gen2_stop_device()
203 clear_bit(STATUS_SYNC_HCMD_ACTIVE, &trans->status); in _iwl_trans_pcie_gen2_stop_device()
204 clear_bit(STATUS_INT_ENABLED, &trans->status); in _iwl_trans_pcie_gen2_stop_device()
205 clear_bit(STATUS_TPOWER_PMI, &trans->status); in _iwl_trans_pcie_gen2_stop_device()
211 iwl_enable_rfkill_int(trans); in _iwl_trans_pcie_gen2_stop_device()
214 iwl_pcie_prepare_card_hw(trans); in _iwl_trans_pcie_gen2_stop_device()
217 void iwl_trans_pcie_gen2_stop_device(struct iwl_trans *trans) in iwl_trans_pcie_gen2_stop_device() argument
219 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); in iwl_trans_pcie_gen2_stop_device()
224 was_in_rfkill = test_bit(STATUS_RFKILL_OPMODE, &trans->status); in iwl_trans_pcie_gen2_stop_device()
225 _iwl_trans_pcie_gen2_stop_device(trans); in iwl_trans_pcie_gen2_stop_device()
226 iwl_trans_pcie_handle_stop_rfkill(trans, was_in_rfkill); in iwl_trans_pcie_gen2_stop_device()
230 static int iwl_pcie_gen2_nic_init(struct iwl_trans *trans) in iwl_pcie_gen2_nic_init() argument
232 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); in iwl_pcie_gen2_nic_init()
234 trans->cfg->min_txq_size); in iwl_pcie_gen2_nic_init()
238 iwl_pcie_gen2_apm_init(trans); in iwl_pcie_gen2_nic_init()
241 iwl_op_mode_nic_config(trans->op_mode); in iwl_pcie_gen2_nic_init()
244 if (iwl_pcie_gen2_rx_init(trans)) in iwl_pcie_gen2_nic_init()
248 if (iwl_txq_gen2_init(trans, trans->txqs.cmd.q_id, queue_size)) in iwl_pcie_gen2_nic_init()
252 iwl_set_bit(trans, CSR_MAC_SHADOW_REG_CTRL, 0x800FFFFF); in iwl_pcie_gen2_nic_init()
253 IWL_DEBUG_INFO(trans, "Enabling shadow registers in device\n"); in iwl_pcie_gen2_nic_init()
258 void iwl_trans_pcie_gen2_fw_alive(struct iwl_trans *trans, u32 scd_addr) in iwl_trans_pcie_gen2_fw_alive() argument
260 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); in iwl_trans_pcie_gen2_fw_alive()
262 iwl_pcie_reset_ict(trans); in iwl_trans_pcie_gen2_fw_alive()
265 memset(trans->txqs.queue_stopped, 0, in iwl_trans_pcie_gen2_fw_alive()
266 sizeof(trans->txqs.queue_stopped)); in iwl_trans_pcie_gen2_fw_alive()
267 memset(trans->txqs.queue_used, 0, sizeof(trans->txqs.queue_used)); in iwl_trans_pcie_gen2_fw_alive()
272 iwl_pcie_ctxt_info_free(trans); in iwl_trans_pcie_gen2_fw_alive()
278 iwl_enable_interrupts(trans); in iwl_trans_pcie_gen2_fw_alive()
280 iwl_pcie_check_hw_rf_kill(trans); in iwl_trans_pcie_gen2_fw_alive()
284 int iwl_trans_pcie_gen2_start_fw(struct iwl_trans *trans, in iwl_trans_pcie_gen2_start_fw() argument
287 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); in iwl_trans_pcie_gen2_start_fw()
292 if (iwl_pcie_prepare_card_hw(trans)) { in iwl_trans_pcie_gen2_start_fw()
293 IWL_WARN(trans, "Exit HW not ready\n"); in iwl_trans_pcie_gen2_start_fw()
298 iwl_enable_rfkill_int(trans); in iwl_trans_pcie_gen2_start_fw()
300 iwl_write32(trans, CSR_INT, 0xFFFFFFFF); in iwl_trans_pcie_gen2_start_fw()
307 iwl_disable_interrupts(trans); in iwl_trans_pcie_gen2_start_fw()
310 iwl_pcie_synchronize_irqs(trans); in iwl_trans_pcie_gen2_start_fw()
315 hw_rfkill = iwl_pcie_check_hw_rf_kill(trans); in iwl_trans_pcie_gen2_start_fw()
323 IWL_WARN(trans, in iwl_trans_pcie_gen2_start_fw()
330 iwl_write32(trans, CSR_UCODE_DRV_GP1_CLR, CSR_UCODE_SW_BIT_RFKILL); in iwl_trans_pcie_gen2_start_fw()
331 iwl_write32(trans, CSR_UCODE_DRV_GP1_CLR, in iwl_trans_pcie_gen2_start_fw()
335 iwl_write32(trans, CSR_INT, 0xFFFFFFFF); in iwl_trans_pcie_gen2_start_fw()
337 ret = iwl_pcie_gen2_nic_init(trans); in iwl_trans_pcie_gen2_start_fw()
339 IWL_ERR(trans, "Unable to init nic\n"); in iwl_trans_pcie_gen2_start_fw()
343 if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) in iwl_trans_pcie_gen2_start_fw()
344 ret = iwl_pcie_ctxt_info_gen3_init(trans, fw); in iwl_trans_pcie_gen2_start_fw()
346 ret = iwl_pcie_ctxt_info_init(trans, fw); in iwl_trans_pcie_gen2_start_fw()
351 hw_rfkill = iwl_pcie_check_hw_rf_kill(trans); in iwl_trans_pcie_gen2_start_fw()