Lines Matching refs:adapter
157 struct mwifiex_adapter *adapter; in mwifiex_sdio_resume() local
163 if (!card || !card->adapter) { in mwifiex_sdio_resume()
172 adapter = card->adapter; in mwifiex_sdio_resume()
174 if (!adapter->is_suspended) { in mwifiex_sdio_resume()
175 mwifiex_dbg(adapter, WARN, in mwifiex_sdio_resume()
180 adapter->is_suspended = false; in mwifiex_sdio_resume()
183 mwifiex_cancel_hs(mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_STA), in mwifiex_sdio_resume()
198 struct mwifiex_adapter *adapter; in mwifiex_sdio_remove() local
205 adapter = card->adapter; in mwifiex_sdio_remove()
206 if (!adapter || !adapter->priv_num) in mwifiex_sdio_remove()
209 mwifiex_dbg(adapter, INFO, "info: SDIO func num=%d\n", func->num); in mwifiex_sdio_remove()
212 if (adapter->is_suspended) in mwifiex_sdio_remove()
213 mwifiex_sdio_resume(adapter->dev); in mwifiex_sdio_remove()
215 mwifiex_deauthenticate_all(adapter); in mwifiex_sdio_remove()
217 priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY); in mwifiex_sdio_remove()
222 mwifiex_remove_card(card->adapter, &add_remove_card_sem); in mwifiex_sdio_remove()
239 struct mwifiex_adapter *adapter; in mwifiex_sdio_suspend() local
254 if (!card || !card->adapter) { in mwifiex_sdio_suspend()
263 adapter = card->adapter; in mwifiex_sdio_suspend()
266 if (!mwifiex_enable_hs(adapter)) { in mwifiex_sdio_suspend()
267 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_suspend()
269 adapter->hs_enabling = false; in mwifiex_sdio_suspend()
273 mwifiex_dbg(adapter, INFO, in mwifiex_sdio_suspend()
278 adapter->is_suspended = true; in mwifiex_sdio_suspend()
279 adapter->hs_enabling = false; in mwifiex_sdio_suspend()
350 mwifiex_write_reg(struct mwifiex_adapter *adapter, u32 reg, u8 data) in mwifiex_write_reg() argument
352 struct sdio_mmc_card *card = adapter->card; in mwifiex_write_reg()
366 mwifiex_read_reg(struct mwifiex_adapter *adapter, u32 reg, u8 *data) in mwifiex_read_reg() argument
368 struct sdio_mmc_card *card = adapter->card; in mwifiex_read_reg()
387 mwifiex_write_data_sync(struct mwifiex_adapter *adapter, in mwifiex_write_data_sync() argument
390 struct sdio_mmc_card *card = adapter->card; in mwifiex_write_data_sync()
401 if (adapter->is_suspended) { in mwifiex_write_data_sync()
402 mwifiex_dbg(adapter, ERROR, in mwifiex_write_data_sync()
419 static int mwifiex_read_data_sync(struct mwifiex_adapter *adapter, u8 *buffer, in mwifiex_read_data_sync() argument
422 struct sdio_mmc_card *card = adapter->card; in mwifiex_read_data_sync()
448 static int mwifiex_pm_wakeup_card(struct mwifiex_adapter *adapter) in mwifiex_pm_wakeup_card() argument
450 mwifiex_dbg(adapter, EVENT, in mwifiex_pm_wakeup_card()
453 return mwifiex_write_reg(adapter, CONFIGURATION_REG, HOST_POWER_UP); in mwifiex_pm_wakeup_card()
461 static int mwifiex_pm_wakeup_card_complete(struct mwifiex_adapter *adapter) in mwifiex_pm_wakeup_card_complete() argument
463 mwifiex_dbg(adapter, EVENT, in mwifiex_pm_wakeup_card_complete()
466 return mwifiex_write_reg(adapter, CONFIGURATION_REG, 0); in mwifiex_pm_wakeup_card_complete()
473 static int mwifiex_init_sdio_new_mode(struct mwifiex_adapter *adapter) in mwifiex_init_sdio_new_mode() argument
476 struct sdio_mmc_card *card = adapter->card; in mwifiex_init_sdio_new_mode()
478 adapter->ioport = MEM_PORT; in mwifiex_init_sdio_new_mode()
481 if (mwifiex_read_reg(adapter, card->reg->card_cfg_2_1_reg, ®)) in mwifiex_init_sdio_new_mode()
483 if (mwifiex_write_reg(adapter, card->reg->card_cfg_2_1_reg, in mwifiex_init_sdio_new_mode()
488 if (mwifiex_read_reg(adapter, card->reg->cmd_cfg_0, ®)) in mwifiex_init_sdio_new_mode()
490 if (mwifiex_write_reg(adapter, card->reg->cmd_cfg_0, in mwifiex_init_sdio_new_mode()
497 if (mwifiex_read_reg(adapter, card->reg->cmd_cfg_1, ®)) in mwifiex_init_sdio_new_mode()
499 if (mwifiex_write_reg(adapter, card->reg->cmd_cfg_1, in mwifiex_init_sdio_new_mode()
513 static int mwifiex_init_sdio_ioport(struct mwifiex_adapter *adapter) in mwifiex_init_sdio_ioport() argument
516 struct sdio_mmc_card *card = adapter->card; in mwifiex_init_sdio_ioport()
518 adapter->ioport = 0; in mwifiex_init_sdio_ioport()
521 if (mwifiex_init_sdio_new_mode(adapter)) in mwifiex_init_sdio_ioport()
527 if (!mwifiex_read_reg(adapter, card->reg->io_port_0_reg, ®)) in mwifiex_init_sdio_ioport()
528 adapter->ioport |= (reg & 0xff); in mwifiex_init_sdio_ioport()
532 if (!mwifiex_read_reg(adapter, card->reg->io_port_1_reg, ®)) in mwifiex_init_sdio_ioport()
533 adapter->ioport |= ((reg & 0xff) << 8); in mwifiex_init_sdio_ioport()
537 if (!mwifiex_read_reg(adapter, card->reg->io_port_2_reg, ®)) in mwifiex_init_sdio_ioport()
538 adapter->ioport |= ((reg & 0xff) << 16); in mwifiex_init_sdio_ioport()
542 mwifiex_dbg(adapter, INFO, in mwifiex_init_sdio_ioport()
543 "info: SDIO FUNC1 IO port: %#x\n", adapter->ioport); in mwifiex_init_sdio_ioport()
546 if (!mwifiex_read_reg(adapter, card->reg->host_int_rsr_reg, ®)) in mwifiex_init_sdio_ioport()
547 mwifiex_write_reg(adapter, card->reg->host_int_rsr_reg, in mwifiex_init_sdio_ioport()
553 if (!mwifiex_read_reg(adapter, card->reg->card_misc_cfg_reg, ®)) in mwifiex_init_sdio_ioport()
554 mwifiex_write_reg(adapter, card->reg->card_misc_cfg_reg, in mwifiex_init_sdio_ioport()
565 static int mwifiex_write_data_to_card(struct mwifiex_adapter *adapter, in mwifiex_write_data_to_card() argument
572 ret = mwifiex_write_data_sync(adapter, payload, pkt_len, port); in mwifiex_write_data_to_card()
575 mwifiex_dbg(adapter, ERROR, in mwifiex_write_data_to_card()
578 if (mwifiex_write_reg(adapter, CONFIGURATION_REG, 0x04)) in mwifiex_write_data_to_card()
579 mwifiex_dbg(adapter, ERROR, in mwifiex_write_data_to_card()
599 static int mwifiex_get_rd_port(struct mwifiex_adapter *adapter, u8 *port) in mwifiex_get_rd_port() argument
601 struct sdio_mmc_card *card = adapter->card; in mwifiex_get_rd_port()
605 mwifiex_dbg(adapter, DATA, in mwifiex_get_rd_port()
620 mwifiex_dbg(adapter, DATA, in mwifiex_get_rd_port()
636 mwifiex_dbg(adapter, DATA, in mwifiex_get_rd_port()
650 static int mwifiex_get_wr_port_data(struct mwifiex_adapter *adapter, u32 *port) in mwifiex_get_wr_port_data() argument
652 struct sdio_mmc_card *card = adapter->card; in mwifiex_get_wr_port_data()
656 mwifiex_dbg(adapter, DATA, in mwifiex_get_wr_port_data()
660 adapter->data_sent = true; in mwifiex_get_wr_port_data()
670 adapter->data_sent = true; in mwifiex_get_wr_port_data()
675 mwifiex_dbg(adapter, ERROR, in mwifiex_get_wr_port_data()
682 mwifiex_dbg(adapter, DATA, in mwifiex_get_wr_port_data()
693 mwifiex_sdio_poll_card_status(struct mwifiex_adapter *adapter, u8 bits) in mwifiex_sdio_poll_card_status() argument
695 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_poll_card_status()
700 if (mwifiex_read_reg(adapter, card->reg->poll_reg, &cs)) in mwifiex_sdio_poll_card_status()
708 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_poll_card_status()
718 mwifiex_sdio_read_fw_status(struct mwifiex_adapter *adapter, u16 *dat) in mwifiex_sdio_read_fw_status() argument
720 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_read_fw_status()
724 if (mwifiex_read_reg(adapter, reg->status_reg_0, &fws0)) in mwifiex_sdio_read_fw_status()
727 if (mwifiex_read_reg(adapter, reg->status_reg_1, &fws1)) in mwifiex_sdio_read_fw_status()
741 static void mwifiex_sdio_disable_host_int(struct mwifiex_adapter *adapter) in mwifiex_sdio_disable_host_int() argument
743 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_disable_host_int()
755 static void mwifiex_interrupt_status(struct mwifiex_adapter *adapter) in mwifiex_interrupt_status() argument
757 struct sdio_mmc_card *card = adapter->card; in mwifiex_interrupt_status()
761 if (mwifiex_read_data_sync(adapter, card->mp_regs, in mwifiex_interrupt_status()
764 mwifiex_dbg(adapter, ERROR, "read mp_regs failed\n"); in mwifiex_interrupt_status()
777 mwifiex_dbg(adapter, INTR, in mwifiex_interrupt_status()
779 spin_lock_irqsave(&adapter->int_lock, flags); in mwifiex_interrupt_status()
780 adapter->int_status |= sdio_ireg; in mwifiex_interrupt_status()
781 spin_unlock_irqrestore(&adapter->int_lock, flags); in mwifiex_interrupt_status()
794 struct mwifiex_adapter *adapter; in mwifiex_sdio_interrupt() local
798 if (!card || !card->adapter) { in mwifiex_sdio_interrupt()
800 func, card, card ? card->adapter : NULL); in mwifiex_sdio_interrupt()
803 adapter = card->adapter; in mwifiex_sdio_interrupt()
805 if (!adapter->pps_uapsd_mode && adapter->ps_state == PS_STATE_SLEEP) in mwifiex_sdio_interrupt()
806 adapter->ps_state = PS_STATE_AWAKE; in mwifiex_sdio_interrupt()
808 mwifiex_interrupt_status(adapter); in mwifiex_sdio_interrupt()
809 mwifiex_main_process(adapter); in mwifiex_sdio_interrupt()
818 static int mwifiex_sdio_enable_host_int(struct mwifiex_adapter *adapter) in mwifiex_sdio_enable_host_int() argument
820 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_enable_host_int()
829 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_enable_host_int()
838 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_enable_host_int()
851 static int mwifiex_sdio_card_to_host(struct mwifiex_adapter *adapter, in mwifiex_sdio_card_to_host() argument
859 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_card_to_host()
864 ret = mwifiex_read_data_sync(adapter, buffer, npayload, ioport, 1); in mwifiex_sdio_card_to_host()
867 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_card_to_host()
875 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_card_to_host()
893 static int mwifiex_prog_fw_w_helper(struct mwifiex_adapter *adapter, in mwifiex_prog_fw_w_helper() argument
896 struct sdio_mmc_card *card = adapter->card; in mwifiex_prog_fw_w_helper()
909 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
914 mwifiex_dbg(adapter, INFO, in mwifiex_prog_fw_w_helper()
929 ret = mwifiex_sdio_poll_card_status(adapter, CARD_IO_READY | in mwifiex_prog_fw_w_helper()
932 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
943 ret = mwifiex_read_reg(adapter, reg->base_0_reg, in mwifiex_prog_fw_w_helper()
946 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
952 ret = mwifiex_read_reg(adapter, reg->base_1_reg, in mwifiex_prog_fw_w_helper()
955 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
972 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
984 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
990 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
1011 ret = mwifiex_write_data_sync(adapter, fwbuf, tx_blocks * in mwifiex_prog_fw_w_helper()
1013 adapter->ioport); in mwifiex_prog_fw_w_helper()
1015 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
1018 if (mwifiex_write_reg(adapter, CONFIGURATION_REG, 0x04)) in mwifiex_prog_fw_w_helper()
1019 mwifiex_dbg(adapter, ERROR, in mwifiex_prog_fw_w_helper()
1031 mwifiex_dbg(adapter, MSG, in mwifiex_prog_fw_w_helper()
1045 static int mwifiex_check_fw_status(struct mwifiex_adapter *adapter, in mwifiex_check_fw_status() argument
1048 struct sdio_mmc_card *card = adapter->card; in mwifiex_check_fw_status()
1056 ret = mwifiex_sdio_read_fw_status(adapter, &firmware_stat); in mwifiex_check_fw_status()
1070 (adapter, card->reg->status_reg_0, &winner_status)) in mwifiex_check_fw_status()
1074 adapter->winner = 0; in mwifiex_check_fw_status()
1076 adapter->winner = 1; in mwifiex_check_fw_status()
1087 static void mwifiex_deaggr_sdio_pkt(struct mwifiex_adapter *adapter, in mwifiex_deaggr_sdio_pkt() argument
1101 if (total_pkt_len < adapter->sdio_rx_block_size) in mwifiex_deaggr_sdio_pkt()
1104 blk_size = adapter->sdio_rx_block_size * blk_num; in mwifiex_deaggr_sdio_pkt()
1106 mwifiex_dbg(adapter, ERROR, in mwifiex_deaggr_sdio_pkt()
1116 mwifiex_dbg(adapter, ERROR, in mwifiex_deaggr_sdio_pkt()
1130 mwifiex_handle_rx_packet(adapter, skb_deaggr); in mwifiex_deaggr_sdio_pkt()
1143 static int mwifiex_decode_rx_packet(struct mwifiex_adapter *adapter, in mwifiex_decode_rx_packet() argument
1158 mwifiex_dbg(adapter, INFO, in mwifiex_decode_rx_packet()
1162 if (adapter->rx_work_enabled) { in mwifiex_decode_rx_packet()
1163 skb_queue_tail(&adapter->rx_data_q, skb); in mwifiex_decode_rx_packet()
1164 atomic_inc(&adapter->rx_pending); in mwifiex_decode_rx_packet()
1165 adapter->data_received = true; in mwifiex_decode_rx_packet()
1167 mwifiex_deaggr_sdio_pkt(adapter, skb); in mwifiex_decode_rx_packet()
1173 mwifiex_dbg(adapter, DATA, in mwifiex_decode_rx_packet()
1175 if (adapter->rx_work_enabled) { in mwifiex_decode_rx_packet()
1176 skb_queue_tail(&adapter->rx_data_q, skb); in mwifiex_decode_rx_packet()
1177 adapter->data_received = true; in mwifiex_decode_rx_packet()
1178 atomic_inc(&adapter->rx_pending); in mwifiex_decode_rx_packet()
1180 mwifiex_handle_rx_packet(adapter, skb); in mwifiex_decode_rx_packet()
1185 mwifiex_dbg(adapter, CMD, in mwifiex_decode_rx_packet()
1188 if (!adapter->curr_cmd) { in mwifiex_decode_rx_packet()
1189 cmd_buf = adapter->upld_buf; in mwifiex_decode_rx_packet()
1191 if (adapter->ps_state == PS_STATE_SLEEP_CFM) in mwifiex_decode_rx_packet()
1192 mwifiex_process_sleep_confirm_resp(adapter, in mwifiex_decode_rx_packet()
1202 adapter->cmd_resp_received = true; in mwifiex_decode_rx_packet()
1203 adapter->curr_cmd->resp_skb = skb; in mwifiex_decode_rx_packet()
1208 mwifiex_dbg(adapter, EVENT, in mwifiex_decode_rx_packet()
1210 adapter->event_cause = le32_to_cpu(*(__le32 *) skb->data); in mwifiex_decode_rx_packet()
1213 memcpy(adapter->event_body, in mwifiex_decode_rx_packet()
1218 adapter->event_received = true; in mwifiex_decode_rx_packet()
1219 adapter->event_skb = skb; in mwifiex_decode_rx_packet()
1224 mwifiex_dbg(adapter, ERROR, in mwifiex_decode_rx_packet()
1242 static int mwifiex_sdio_card_to_host_mp_aggr(struct mwifiex_adapter *adapter, in mwifiex_sdio_card_to_host_mp_aggr() argument
1245 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_card_to_host_mp_aggr()
1257 mwifiex_dbg(adapter, CMD, in mwifiex_sdio_card_to_host_mp_aggr()
1266 mwifiex_dbg(adapter, WARN, in mwifiex_sdio_card_to_host_mp_aggr()
1279 mwifiex_dbg(adapter, INFO, in mwifiex_sdio_card_to_host_mp_aggr()
1297 mwifiex_dbg(adapter, INFO, in mwifiex_sdio_card_to_host_mp_aggr()
1313 mwifiex_dbg(adapter, INFO, in mwifiex_sdio_card_to_host_mp_aggr()
1320 mwifiex_dbg(adapter, INFO, in mwifiex_sdio_card_to_host_mp_aggr()
1330 mwifiex_dbg(adapter, DATA, in mwifiex_sdio_card_to_host_mp_aggr()
1346 mport = (adapter->ioport | SDIO_MPA_ADDR_BASE | in mwifiex_sdio_card_to_host_mp_aggr()
1349 mport = (adapter->ioport | SDIO_MPA_ADDR_BASE | in mwifiex_sdio_card_to_host_mp_aggr()
1354 if (mwifiex_read_data_sync(adapter, card->mpa_rx.buf, in mwifiex_sdio_card_to_host_mp_aggr()
1372 mwifiex_dbg(adapter, ERROR, "skb allocation failure\t" in mwifiex_sdio_card_to_host_mp_aggr()
1383 adapter->sdio_rx_aggr_enable)) && in mwifiex_sdio_card_to_host_mp_aggr()
1391 mwifiex_decode_rx_packet(adapter, skb_deaggr, in mwifiex_sdio_card_to_host_mp_aggr()
1394 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_card_to_host_mp_aggr()
1398 adapter->sdio_rx_aggr_enable, in mwifiex_sdio_card_to_host_mp_aggr()
1409 mwifiex_dbg(adapter, INFO, "info: RX: port: %d, rx_len: %d\n", in mwifiex_sdio_card_to_host_mp_aggr()
1414 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_card_to_host_mp_aggr()
1417 if (mwifiex_sdio_card_to_host(adapter, &pkt_type, in mwifiex_sdio_card_to_host_mp_aggr()
1419 adapter->ioport + port)) in mwifiex_sdio_card_to_host_mp_aggr()
1426 if (mwifiex_sdio_card_to_host(adapter, &pkt_type, in mwifiex_sdio_card_to_host_mp_aggr()
1428 adapter->ioport + port)) in mwifiex_sdio_card_to_host_mp_aggr()
1430 if (!adapter->sdio_rx_aggr_enable && in mwifiex_sdio_card_to_host_mp_aggr()
1432 mwifiex_dbg(adapter, ERROR, "drop wrong pkt type %d\t" in mwifiex_sdio_card_to_host_mp_aggr()
1439 mwifiex_decode_rx_packet(adapter, skb, pkt_type); in mwifiex_sdio_card_to_host_mp_aggr()
1442 mwifiex_dbg(adapter, INFO, in mwifiex_sdio_card_to_host_mp_aggr()
1475 static int mwifiex_process_int_status(struct mwifiex_adapter *adapter) in mwifiex_process_int_status() argument
1477 struct sdio_mmc_card *card = adapter->card; in mwifiex_process_int_status()
1490 spin_lock_irqsave(&adapter->int_lock, flags); in mwifiex_process_int_status()
1491 sdio_ireg = adapter->int_status; in mwifiex_process_int_status()
1492 adapter->int_status = 0; in mwifiex_process_int_status()
1493 spin_unlock_irqrestore(&adapter->int_lock, flags); in mwifiex_process_int_status()
1499 if (sdio_ireg & DN_LD_CMD_PORT_HOST_INT_STATUS && adapter->cmd_sent) in mwifiex_process_int_status()
1500 adapter->cmd_sent = false; in mwifiex_process_int_status()
1515 mwifiex_dbg(adapter, INFO, "info: rx_len = %d\n", rx_len); in mwifiex_process_int_status()
1523 if (mwifiex_sdio_card_to_host(adapter, &pkt_type, skb->data, in mwifiex_process_int_status()
1524 skb->len, adapter->ioport | in mwifiex_process_int_status()
1526 mwifiex_dbg(adapter, ERROR, in mwifiex_process_int_status()
1534 mwifiex_dbg(adapter, ERROR, in mwifiex_process_int_status()
1538 mwifiex_decode_rx_packet(adapter, skb, pkt_type); in mwifiex_process_int_status()
1552 mwifiex_dbg(adapter, INTR, in mwifiex_process_int_status()
1555 if (adapter->data_sent && in mwifiex_process_int_status()
1557 mwifiex_dbg(adapter, INTR, in mwifiex_process_int_status()
1559 adapter->data_sent = false; in mwifiex_process_int_status()
1566 if (card->has_control_mask && adapter->cmd_sent) { in mwifiex_process_int_status()
1572 adapter->cmd_sent = false; in mwifiex_process_int_status()
1575 mwifiex_dbg(adapter, INTR, "info: cmd_sent=%d data_sent=%d\n", in mwifiex_process_int_status()
1576 adapter->cmd_sent, adapter->data_sent); in mwifiex_process_int_status()
1587 mwifiex_dbg(adapter, INTR, in mwifiex_process_int_status()
1592 ret = mwifiex_get_rd_port(adapter, &port); in mwifiex_process_int_status()
1594 mwifiex_dbg(adapter, INFO, in mwifiex_process_int_status()
1602 mwifiex_dbg(adapter, INFO, in mwifiex_process_int_status()
1612 mwifiex_dbg(adapter, ERROR, in mwifiex_process_int_status()
1619 mwifiex_dbg(adapter, INFO, "info: rx_len = %d\n", in mwifiex_process_int_status()
1622 if (mwifiex_sdio_card_to_host_mp_aggr(adapter, rx_len, in mwifiex_process_int_status()
1624 mwifiex_dbg(adapter, ERROR, in mwifiex_process_int_status()
1636 if (mwifiex_read_reg(adapter, CONFIGURATION_REG, &cr)) in mwifiex_process_int_status()
1637 mwifiex_dbg(adapter, ERROR, "read CFG reg failed\n"); in mwifiex_process_int_status()
1639 mwifiex_dbg(adapter, INFO, in mwifiex_process_int_status()
1642 if (mwifiex_write_reg(adapter, CONFIGURATION_REG, (cr | 0x04))) in mwifiex_process_int_status()
1643 mwifiex_dbg(adapter, ERROR, in mwifiex_process_int_status()
1646 mwifiex_dbg(adapter, INFO, "info: write success\n"); in mwifiex_process_int_status()
1648 if (mwifiex_read_reg(adapter, CONFIGURATION_REG, &cr)) in mwifiex_process_int_status()
1649 mwifiex_dbg(adapter, ERROR, in mwifiex_process_int_status()
1652 mwifiex_dbg(adapter, INFO, in mwifiex_process_int_status()
1672 static int mwifiex_host_to_card_mp_aggr(struct mwifiex_adapter *adapter, in mwifiex_host_to_card_mp_aggr() argument
1676 struct sdio_mmc_card *card = adapter->card; in mwifiex_host_to_card_mp_aggr()
1687 mwifiex_dbg(adapter, WARN, in mwifiex_host_to_card_mp_aggr()
1697 mwifiex_dbg(adapter, INFO, in mwifiex_host_to_card_mp_aggr()
1729 mwifiex_dbg(adapter, INFO, in mwifiex_host_to_card_mp_aggr()
1748 mwifiex_dbg(adapter, DATA, in mwifiex_host_to_card_mp_aggr()
1760 mwifiex_dbg(adapter, DATA, in mwifiex_host_to_card_mp_aggr()
1776 mport = (adapter->ioport | SDIO_MPA_ADDR_BASE | in mwifiex_host_to_card_mp_aggr()
1779 mport = (adapter->ioport | SDIO_MPA_ADDR_BASE | in mwifiex_host_to_card_mp_aggr()
1784 ret = mwifiex_write_data_to_card(adapter, card->mpa_tx.buf, in mwifiex_host_to_card_mp_aggr()
1792 mwifiex_dbg(adapter, DATA, in mwifiex_host_to_card_mp_aggr()
1795 ret = mwifiex_write_data_to_card(adapter, payload, pkt_len, in mwifiex_host_to_card_mp_aggr()
1796 adapter->ioport + port); in mwifiex_host_to_card_mp_aggr()
1800 mwifiex_dbg(adapter, DATA, in mwifiex_host_to_card_mp_aggr()
1819 static int mwifiex_sdio_host_to_card(struct mwifiex_adapter *adapter, in mwifiex_sdio_host_to_card() argument
1823 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_host_to_card()
1844 ret = mwifiex_get_wr_port_data(adapter, &port); in mwifiex_sdio_host_to_card()
1846 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_host_to_card()
1852 adapter->cmd_sent = true; in mwifiex_sdio_host_to_card()
1857 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_host_to_card()
1869 ret = mwifiex_host_to_card_mp_aggr(adapter, payload, pkt_len, in mwifiex_sdio_host_to_card()
1873 ret = mwifiex_host_to_card_mp_aggr(adapter, payload, pkt_len, in mwifiex_sdio_host_to_card()
1878 adapter->cmd_sent = false; in mwifiex_sdio_host_to_card()
1880 adapter->data_sent = false; in mwifiex_sdio_host_to_card()
1888 adapter->data_sent = true; in mwifiex_sdio_host_to_card()
1890 adapter->data_sent = false; in mwifiex_sdio_host_to_card()
1900 static int mwifiex_alloc_sdio_mpa_buffers(struct mwifiex_adapter *adapter, in mwifiex_alloc_sdio_mpa_buffers() argument
1903 struct sdio_mmc_card *card = adapter->card; in mwifiex_alloc_sdio_mpa_buffers()
1943 mwifiex_unregister_dev(struct mwifiex_adapter *adapter) in mwifiex_unregister_dev() argument
1945 struct sdio_mmc_card *card = adapter->card; in mwifiex_unregister_dev()
1947 if (adapter->card) { in mwifiex_unregister_dev()
1959 static int mwifiex_register_dev(struct mwifiex_adapter *adapter) in mwifiex_register_dev() argument
1962 struct sdio_mmc_card *card = adapter->card; in mwifiex_register_dev()
1966 card->adapter = adapter; in mwifiex_register_dev()
1967 adapter->tx_buf_size = card->tx_buf_size; in mwifiex_register_dev()
1975 mwifiex_dbg(adapter, ERROR, in mwifiex_register_dev()
1981 adapter->dev = &func->dev; in mwifiex_register_dev()
1983 strcpy(adapter->fw_name, card->firmware); in mwifiex_register_dev()
1985 adapter->mem_type_mapping_tbl = generic_mem_type_map; in mwifiex_register_dev()
1986 adapter->num_mem_types = 1; in mwifiex_register_dev()
1988 adapter->mem_type_mapping_tbl = mem_type_mapping_tbl; in mwifiex_register_dev()
1989 adapter->num_mem_types = ARRAY_SIZE(mem_type_mapping_tbl); in mwifiex_register_dev()
2007 static int mwifiex_init_sdio(struct mwifiex_adapter *adapter) in mwifiex_init_sdio() argument
2009 struct sdio_mmc_card *card = adapter->card; in mwifiex_init_sdio()
2021 mwifiex_read_reg(adapter, card->reg->host_int_status_reg, &sdio_ireg); in mwifiex_init_sdio()
2024 mwifiex_init_sdio_ioport(adapter); in mwifiex_init_sdio()
2058 ret = mwifiex_alloc_sdio_mpa_buffers(adapter, in mwifiex_init_sdio()
2066 adapter->host_disable_sdio_rx_aggr = true; in mwifiex_init_sdio()
2069 (adapter, MWIFIEX_MP_AGGR_BUF_SIZE_32K, in mwifiex_init_sdio()
2078 adapter->auto_tdls = card->can_auto_tdls; in mwifiex_init_sdio()
2079 adapter->ext_scan = card->can_ext_scan; in mwifiex_init_sdio()
2086 static void mwifiex_cleanup_mpa_buf(struct mwifiex_adapter *adapter) in mwifiex_cleanup_mpa_buf() argument
2088 struct sdio_mmc_card *card = adapter->card; in mwifiex_cleanup_mpa_buf()
2102 static void mwifiex_cleanup_sdio(struct mwifiex_adapter *adapter) in mwifiex_cleanup_sdio() argument
2104 struct sdio_mmc_card *card = adapter->card; in mwifiex_cleanup_sdio()
2119 mwifiex_update_mp_end_port(struct mwifiex_adapter *adapter, u16 port) in mwifiex_update_mp_end_port() argument
2121 struct sdio_mmc_card *card = adapter->card; in mwifiex_update_mp_end_port()
2137 mwifiex_dbg(adapter, CMD, in mwifiex_update_mp_end_port()
2171 static void mwifiex_sdio_card_reset_work(struct mwifiex_adapter *adapter) in mwifiex_sdio_card_reset_work() argument
2173 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_card_reset_work()
2186 rdwr_status mwifiex_sdio_rdwr_firmware(struct mwifiex_adapter *adapter, in mwifiex_sdio_rdwr_firmware() argument
2189 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_rdwr_firmware()
2196 mwifiex_dbg(adapter, ERROR, "SDIO Write ERR\n"); in mwifiex_sdio_rdwr_firmware()
2203 mwifiex_dbg(adapter, ERROR, "SDIO read err\n"); in mwifiex_sdio_rdwr_firmware()
2211 mwifiex_dbg(adapter, WARN, in mwifiex_sdio_rdwr_firmware()
2216 mwifiex_dbg(adapter, ERROR, "SDIO write err\n"); in mwifiex_sdio_rdwr_firmware()
2223 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_rdwr_firmware()
2232 static void mwifiex_sdio_fw_dump(struct mwifiex_adapter *adapter) in mwifiex_sdio_fw_dump() argument
2234 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_fw_dump()
2254 mwifiex_pm_wakeup_card(adapter); in mwifiex_sdio_fw_dump()
2257 mwifiex_dbg(adapter, MSG, "== mwifiex firmware dump start ==\n"); in mwifiex_sdio_fw_dump()
2259 stat = mwifiex_sdio_rdwr_firmware(adapter, doneflag); in mwifiex_sdio_fw_dump()
2267 mwifiex_dbg(adapter, ERROR, "SDIO read memory length err\n"); in mwifiex_sdio_fw_dump()
2275 stat = mwifiex_sdio_rdwr_firmware(adapter, doneflag); in mwifiex_sdio_fw_dump()
2284 mwifiex_dbg(adapter, ERROR, "SDIO read err\n"); in mwifiex_sdio_fw_dump()
2292 mwifiex_dbg(adapter, DUMP, "Firmware dump Finished!\n"); in mwifiex_sdio_fw_dump()
2293 ret = mwifiex_write_reg(adapter, in mwifiex_sdio_fw_dump()
2297 mwifiex_dbg(adapter, ERROR, "SDIO write err\n"); in mwifiex_sdio_fw_dump()
2303 mwifiex_dbg(adapter, DUMP, in mwifiex_sdio_fw_dump()
2308 mwifiex_dbg(adapter, ERROR, "Vmalloc %s failed\n", in mwifiex_sdio_fw_dump()
2316 mwifiex_dbg(adapter, DUMP, in mwifiex_sdio_fw_dump()
2321 stat = mwifiex_sdio_rdwr_firmware(adapter, doneflag); in mwifiex_sdio_fw_dump()
2330 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_fw_dump()
2337 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_fw_dump()
2344 mwifiex_dbg(adapter, DUMP, "%s done: size=0x%tx\n", in mwifiex_sdio_fw_dump()
2349 mwifiex_dbg(adapter, MSG, "== mwifiex firmware dump end ==\n"); in mwifiex_sdio_fw_dump()
2355 static void mwifiex_sdio_generic_fw_dump(struct mwifiex_adapter *adapter) in mwifiex_sdio_generic_fw_dump() argument
2357 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_generic_fw_dump()
2374 mwifiex_pm_wakeup_card(adapter); in mwifiex_sdio_generic_fw_dump()
2377 mwifiex_dbg(adapter, MSG, "== mwifiex firmware dump start ==\n"); in mwifiex_sdio_generic_fw_dump()
2379 stat = mwifiex_sdio_rdwr_firmware(adapter, done_flag); in mwifiex_sdio_generic_fw_dump()
2389 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_generic_fw_dump()
2396 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_generic_fw_dump()
2415 mwifiex_dbg(adapter, DUMP, in mwifiex_sdio_generic_fw_dump()
2419 stat = mwifiex_sdio_rdwr_firmware(adapter, done_flag); in mwifiex_sdio_generic_fw_dump()
2425 mwifiex_dbg(adapter, ERROR, in mwifiex_sdio_generic_fw_dump()
2449 mwifiex_dbg(adapter, DUMP, "dump %s done size=0x%x\n", in mwifiex_sdio_generic_fw_dump()
2455 mwifiex_dbg(adapter, MSG, "== mwifiex firmware dump end ==\n"); in mwifiex_sdio_generic_fw_dump()
2459 mwifiex_dbg(adapter, ERROR, "firmware dump failed\n"); in mwifiex_sdio_generic_fw_dump()
2469 static void mwifiex_sdio_device_dump_work(struct mwifiex_adapter *adapter) in mwifiex_sdio_device_dump_work() argument
2471 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_device_dump_work()
2473 mwifiex_drv_info_dump(adapter); in mwifiex_sdio_device_dump_work()
2475 mwifiex_sdio_generic_fw_dump(adapter); in mwifiex_sdio_device_dump_work()
2477 mwifiex_sdio_fw_dump(adapter); in mwifiex_sdio_device_dump_work()
2478 mwifiex_upload_device_dump(adapter); in mwifiex_sdio_device_dump_work()
2493 static void mwifiex_sdio_card_reset(struct mwifiex_adapter *adapter) in mwifiex_sdio_card_reset() argument
2495 save_adapter = adapter; in mwifiex_sdio_card_reset()
2505 static void mwifiex_sdio_device_dump(struct mwifiex_adapter *adapter) in mwifiex_sdio_device_dump() argument
2507 save_adapter = adapter; in mwifiex_sdio_device_dump()
2519 mwifiex_sdio_reg_dump(struct mwifiex_adapter *adapter, char *drv_buf) in mwifiex_sdio_reg_dump() argument
2522 struct sdio_mmc_card *cardp = adapter->card; in mwifiex_sdio_reg_dump()
2531 mwifiex_dbg(adapter, MSG, "SDIO register dump start\n"); in mwifiex_sdio_reg_dump()
2533 mwifiex_pm_wakeup_card(adapter); in mwifiex_sdio_reg_dump()
2597 mwifiex_dbg(adapter, MSG, "%s\n", buf); in mwifiex_sdio_reg_dump()
2603 mwifiex_dbg(adapter, MSG, "SDIO register dump end\n"); in mwifiex_sdio_reg_dump()