Lines Matching refs:card

88 	struct sdio_mmc_card *card = NULL;  in mwifiex_sdio_probe()  local
93 card = kzalloc(sizeof(struct sdio_mmc_card), GFP_KERNEL); in mwifiex_sdio_probe()
94 if (!card) in mwifiex_sdio_probe()
97 card->func = func; in mwifiex_sdio_probe()
98 card->device_id = id; in mwifiex_sdio_probe()
100 func->card->quirks |= MMC_QUIRK_BLKSZ_FOR_BYTE_MODE; in mwifiex_sdio_probe()
105 card->firmware = data->firmware; in mwifiex_sdio_probe()
106 card->reg = data->reg; in mwifiex_sdio_probe()
107 card->max_ports = data->max_ports; in mwifiex_sdio_probe()
108 card->mp_agg_pkt_limit = data->mp_agg_pkt_limit; in mwifiex_sdio_probe()
109 card->supports_sdio_new_mode = data->supports_sdio_new_mode; in mwifiex_sdio_probe()
110 card->has_control_mask = data->has_control_mask; in mwifiex_sdio_probe()
111 card->tx_buf_size = data->tx_buf_size; in mwifiex_sdio_probe()
112 card->mp_tx_agg_buf_size = data->mp_tx_agg_buf_size; in mwifiex_sdio_probe()
113 card->mp_rx_agg_buf_size = data->mp_rx_agg_buf_size; in mwifiex_sdio_probe()
114 card->can_dump_fw = data->can_dump_fw; in mwifiex_sdio_probe()
115 card->fw_dump_enh = data->fw_dump_enh; in mwifiex_sdio_probe()
116 card->can_auto_tdls = data->can_auto_tdls; in mwifiex_sdio_probe()
117 card->can_ext_scan = data->can_ext_scan; in mwifiex_sdio_probe()
126 kfree(card); in mwifiex_sdio_probe()
130 if (mwifiex_add_card(card, &add_remove_card_sem, &sdio_ops, in mwifiex_sdio_probe()
133 kfree(card); in mwifiex_sdio_probe()
156 struct sdio_mmc_card *card; in mwifiex_sdio_resume() local
162 card = sdio_get_drvdata(func); in mwifiex_sdio_resume()
163 if (!card || !card->adapter) { in mwifiex_sdio_resume()
172 adapter = card->adapter; in mwifiex_sdio_resume()
197 struct sdio_mmc_card *card; in mwifiex_sdio_remove() local
201 card = sdio_get_drvdata(func); in mwifiex_sdio_remove()
202 if (!card) in mwifiex_sdio_remove()
205 adapter = card->adapter; in mwifiex_sdio_remove()
222 mwifiex_remove_card(card->adapter, &add_remove_card_sem); in mwifiex_sdio_remove()
238 struct sdio_mmc_card *card; in mwifiex_sdio_suspend() local
253 card = sdio_get_drvdata(func); in mwifiex_sdio_suspend()
254 if (!card || !card->adapter) { in mwifiex_sdio_suspend()
263 adapter = card->adapter; in mwifiex_sdio_suspend()
352 struct sdio_mmc_card *card = adapter->card; in mwifiex_write_reg() local
355 sdio_claim_host(card->func); in mwifiex_write_reg()
356 ret = mwifiex_write_reg_locked(card->func, reg, data); in mwifiex_write_reg()
357 sdio_release_host(card->func); in mwifiex_write_reg()
368 struct sdio_mmc_card *card = adapter->card; in mwifiex_read_reg() local
372 sdio_claim_host(card->func); in mwifiex_read_reg()
373 val = sdio_readb(card->func, reg, &ret); in mwifiex_read_reg()
374 sdio_release_host(card->func); in mwifiex_read_reg()
390 struct sdio_mmc_card *card = adapter->card; in mwifiex_write_data_sync() local
407 sdio_claim_host(card->func); in mwifiex_write_data_sync()
409 ret = sdio_writesb(card->func, ioport, buffer, blk_cnt * blk_size); in mwifiex_write_data_sync()
411 sdio_release_host(card->func); in mwifiex_write_data_sync()
422 struct sdio_mmc_card *card = adapter->card; in mwifiex_read_data_sync() local
432 sdio_claim_host(card->func); in mwifiex_read_data_sync()
434 ret = sdio_readsb(card->func, buffer, ioport, blk_cnt * blk_size); in mwifiex_read_data_sync()
437 sdio_release_host(card->func); in mwifiex_read_data_sync()
476 struct sdio_mmc_card *card = adapter->card; in mwifiex_init_sdio_new_mode() local
481 if (mwifiex_read_reg(adapter, card->reg->card_cfg_2_1_reg, &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, &reg)) 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, &reg)) in mwifiex_init_sdio_new_mode()
499 if (mwifiex_write_reg(adapter, card->reg->cmd_cfg_1, in mwifiex_init_sdio_new_mode()
516 struct sdio_mmc_card *card = adapter->card; in mwifiex_init_sdio_ioport() local
520 if (card->supports_sdio_new_mode) { in mwifiex_init_sdio_ioport()
527 if (!mwifiex_read_reg(adapter, card->reg->io_port_0_reg, &reg)) in mwifiex_init_sdio_ioport()
532 if (!mwifiex_read_reg(adapter, card->reg->io_port_1_reg, &reg)) in mwifiex_init_sdio_ioport()
537 if (!mwifiex_read_reg(adapter, card->reg->io_port_2_reg, &reg)) in mwifiex_init_sdio_ioport()
546 if (!mwifiex_read_reg(adapter, card->reg->host_int_rsr_reg, &reg)) in mwifiex_init_sdio_ioport()
547 mwifiex_write_reg(adapter, card->reg->host_int_rsr_reg, in mwifiex_init_sdio_ioport()
548 reg | card->reg->sdio_int_mask); in mwifiex_init_sdio_ioport()
553 if (!mwifiex_read_reg(adapter, card->reg->card_misc_cfg_reg, &reg)) in mwifiex_init_sdio_ioport()
554 mwifiex_write_reg(adapter, card->reg->card_misc_cfg_reg, in mwifiex_init_sdio_ioport()
601 struct sdio_mmc_card *card = adapter->card; in mwifiex_get_rd_port() local
602 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_get_rd_port()
603 u32 rd_bitmap = card->mp_rd_bitmap; in mwifiex_get_rd_port()
608 if (card->supports_sdio_new_mode) { in mwifiex_get_rd_port()
616 if ((card->has_control_mask) && in mwifiex_get_rd_port()
617 (card->mp_rd_bitmap & CTRL_PORT_MASK)) { in mwifiex_get_rd_port()
618 card->mp_rd_bitmap &= (u32) (~CTRL_PORT_MASK); in mwifiex_get_rd_port()
622 *port, card->mp_rd_bitmap); in mwifiex_get_rd_port()
626 if (!(card->mp_rd_bitmap & (1 << card->curr_rd_port))) in mwifiex_get_rd_port()
630 card->mp_rd_bitmap &= (u32)(~(1 << card->curr_rd_port)); in mwifiex_get_rd_port()
631 *port = card->curr_rd_port; in mwifiex_get_rd_port()
633 if (++card->curr_rd_port == card->max_ports) in mwifiex_get_rd_port()
634 card->curr_rd_port = reg->start_rd_port; in mwifiex_get_rd_port()
638 *port, rd_bitmap, card->mp_rd_bitmap); in mwifiex_get_rd_port()
652 struct sdio_mmc_card *card = adapter->card; in mwifiex_get_wr_port_data() local
653 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_get_wr_port_data()
654 u32 wr_bitmap = card->mp_wr_bitmap; in mwifiex_get_wr_port_data()
659 if (!(wr_bitmap & card->mp_data_port_mask)) { in mwifiex_get_wr_port_data()
664 if (card->mp_wr_bitmap & (1 << card->curr_wr_port)) { in mwifiex_get_wr_port_data()
665 card->mp_wr_bitmap &= (u32) (~(1 << card->curr_wr_port)); in mwifiex_get_wr_port_data()
666 *port = card->curr_wr_port; in mwifiex_get_wr_port_data()
667 if (++card->curr_wr_port == card->mp_end_port) in mwifiex_get_wr_port_data()
668 card->curr_wr_port = reg->start_wr_port; in mwifiex_get_wr_port_data()
674 if ((card->has_control_mask) && (*port == CTRL_PORT)) { in mwifiex_get_wr_port_data()
677 *port, card->curr_wr_port, wr_bitmap, in mwifiex_get_wr_port_data()
678 card->mp_wr_bitmap); in mwifiex_get_wr_port_data()
684 *port, wr_bitmap, card->mp_wr_bitmap); in mwifiex_get_wr_port_data()
695 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_poll_card_status() local
700 if (mwifiex_read_reg(adapter, card->reg->poll_reg, &cs)) in mwifiex_sdio_poll_card_status()
720 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_read_fw_status() local
721 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_sdio_read_fw_status()
743 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_disable_host_int() local
744 struct sdio_func *func = card->func; in mwifiex_sdio_disable_host_int()
747 mwifiex_write_reg_locked(func, card->reg->host_int_mask_reg, 0); in mwifiex_sdio_disable_host_int()
757 struct sdio_mmc_card *card = adapter->card; in mwifiex_interrupt_status() local
761 if (mwifiex_read_data_sync(adapter, card->mp_regs, in mwifiex_interrupt_status()
762 card->reg->max_mp_regs, in mwifiex_interrupt_status()
768 sdio_ireg = card->mp_regs[card->reg->host_int_status_reg]; in mwifiex_interrupt_status()
795 struct sdio_mmc_card *card; in mwifiex_sdio_interrupt() local
797 card = sdio_get_drvdata(func); in mwifiex_sdio_interrupt()
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()
820 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_enable_host_int() local
821 struct sdio_func *func = card->func; in mwifiex_sdio_enable_host_int()
835 ret = mwifiex_write_reg_locked(func, card->reg->host_int_mask_reg, in mwifiex_sdio_enable_host_int()
836 card->reg->host_int_enable); in mwifiex_sdio_enable_host_int()
896 struct sdio_mmc_card *card = adapter->card; in mwifiex_prog_fw_w_helper() local
897 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_prog_fw_w_helper()
923 sdio_claim_host(card->func); in mwifiex_prog_fw_w_helper()
1029 sdio_release_host(card->func); in mwifiex_prog_fw_w_helper()
1048 struct sdio_mmc_card *card = adapter->card; in mwifiex_check_fw_status() local
1070 (adapter, card->reg->status_reg_0, &winner_status)) in mwifiex_check_fw_status()
1245 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_card_to_host_mp_aggr() local
1255 if ((card->has_control_mask) && (port == CTRL_PORT)) { in mwifiex_sdio_card_to_host_mp_aggr()
1265 if (!card->mpa_rx.enabled) { in mwifiex_sdio_card_to_host_mp_aggr()
1274 if ((!card->has_control_mask && (card->mp_rd_bitmap & in mwifiex_sdio_card_to_host_mp_aggr()
1275 card->reg->data_port_mask)) || in mwifiex_sdio_card_to_host_mp_aggr()
1276 (card->has_control_mask && (card->mp_rd_bitmap & in mwifiex_sdio_card_to_host_mp_aggr()
1282 if (MP_RX_AGGR_IN_PROGRESS(card)) { in mwifiex_sdio_card_to_host_mp_aggr()
1283 if (MP_RX_AGGR_BUF_HAS_ROOM(card, rx_len)) { in mwifiex_sdio_card_to_host_mp_aggr()
1300 if (MP_RX_AGGR_IN_PROGRESS(card)) { in mwifiex_sdio_card_to_host_mp_aggr()
1302 if (MP_RX_AGGR_BUF_HAS_ROOM(card, rx_len)) in mwifiex_sdio_card_to_host_mp_aggr()
1316 mp_rx_aggr_setup(card, rx_len, port); in mwifiex_sdio_card_to_host_mp_aggr()
1318 if (MP_RX_AGGR_PKT_LIMIT_REACHED(card) || in mwifiex_sdio_card_to_host_mp_aggr()
1319 mp_rx_aggr_port_limit_reached(card)) { in mwifiex_sdio_card_to_host_mp_aggr()
1332 card->mpa_rx.pkt_cnt); in mwifiex_sdio_card_to_host_mp_aggr()
1334 if (card->supports_sdio_new_mode) { in mwifiex_sdio_card_to_host_mp_aggr()
1338 for (i = 0, port_count = 0; i < card->max_ports; i++) in mwifiex_sdio_card_to_host_mp_aggr()
1339 if (card->mpa_rx.ports & BIT(i)) in mwifiex_sdio_card_to_host_mp_aggr()
1347 (port_count << 8)) + card->mpa_rx.start_port; in mwifiex_sdio_card_to_host_mp_aggr()
1350 (card->mpa_rx.ports << 4)) + in mwifiex_sdio_card_to_host_mp_aggr()
1351 card->mpa_rx.start_port; 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()
1355 card->mpa_rx.buf_len, mport, 1)) in mwifiex_sdio_card_to_host_mp_aggr()
1358 curr_ptr = card->mpa_rx.buf; in mwifiex_sdio_card_to_host_mp_aggr()
1360 for (pind = 0; pind < card->mpa_rx.pkt_cnt; pind++) { in mwifiex_sdio_card_to_host_mp_aggr()
1361 u32 *len_arr = card->mpa_rx.len_arr; in mwifiex_sdio_card_to_host_mp_aggr()
1404 MP_RX_AGGR_BUF_RESET(card); in mwifiex_sdio_card_to_host_mp_aggr()
1418 card->mpa_rx.buf, rx_len, in mwifiex_sdio_card_to_host_mp_aggr()
1445 mp_rx_aggr_setup(card, rx_len, port); in mwifiex_sdio_card_to_host_mp_aggr()
1450 if (MP_RX_AGGR_IN_PROGRESS(card)) in mwifiex_sdio_card_to_host_mp_aggr()
1451 MP_RX_AGGR_BUF_RESET(card); in mwifiex_sdio_card_to_host_mp_aggr()
1477 struct sdio_mmc_card *card = adapter->card; in mwifiex_process_int_status() local
1478 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_process_int_status()
1507 rx_len = card->mp_regs[reg->cmd_rd_len_1] << 8; in mwifiex_process_int_status()
1508 rx_len |= (u16)card->mp_regs[reg->cmd_rd_len_0]; in mwifiex_process_int_status()
1542 bitmap = (u32) card->mp_regs[reg->wr_bitmap_l]; in mwifiex_process_int_status()
1543 bitmap |= ((u32) card->mp_regs[reg->wr_bitmap_u]) << 8; in mwifiex_process_int_status()
1544 if (card->supports_sdio_new_mode) { in mwifiex_process_int_status()
1546 ((u32) card->mp_regs[reg->wr_bitmap_1l]) << 16; in mwifiex_process_int_status()
1548 ((u32) card->mp_regs[reg->wr_bitmap_1u]) << 24; in mwifiex_process_int_status()
1550 card->mp_wr_bitmap = bitmap; in mwifiex_process_int_status()
1554 card->mp_wr_bitmap); in mwifiex_process_int_status()
1556 (card->mp_wr_bitmap & card->mp_data_port_mask)) { in mwifiex_process_int_status()
1566 if (card->has_control_mask && adapter->cmd_sent) { in mwifiex_process_int_status()
1569 card->mp_wr_bitmap |= in mwifiex_process_int_status()
1570 (u32) card->mp_regs[reg->wr_bitmap_l] & CTRL_PORT_MASK; in mwifiex_process_int_status()
1571 if (card->mp_wr_bitmap & CTRL_PORT_MASK) in mwifiex_process_int_status()
1578 bitmap = (u32) card->mp_regs[reg->rd_bitmap_l]; in mwifiex_process_int_status()
1579 bitmap |= ((u32) card->mp_regs[reg->rd_bitmap_u]) << 8; in mwifiex_process_int_status()
1580 if (card->supports_sdio_new_mode) { in mwifiex_process_int_status()
1582 ((u32) card->mp_regs[reg->rd_bitmap_1l]) << 16; in mwifiex_process_int_status()
1584 ((u32) card->mp_regs[reg->rd_bitmap_1u]) << 24; in mwifiex_process_int_status()
1586 card->mp_rd_bitmap = bitmap; in mwifiex_process_int_status()
1589 card->mp_rd_bitmap); in mwifiex_process_int_status()
1600 rx_len = ((u16) card->mp_regs[len_reg_u]) << 8; in mwifiex_process_int_status()
1601 rx_len |= (u16) card->mp_regs[len_reg_l]; in mwifiex_process_int_status()
1609 (card->mpa_rx.enabled && in mwifiex_process_int_status()
1611 card->mpa_rx.buf_size))) { in mwifiex_process_int_status()
1676 struct sdio_mmc_card *card = adapter->card; in mwifiex_host_to_card_mp_aggr() local
1684 if (!card->mpa_tx.enabled || in mwifiex_host_to_card_mp_aggr()
1685 (card->has_control_mask && (port == CTRL_PORT)) || in mwifiex_host_to_card_mp_aggr()
1686 (card->supports_sdio_new_mode && (port == CMD_PORT_SLCT))) { in mwifiex_host_to_card_mp_aggr()
1701 if (MP_TX_AGGR_IN_PROGRESS(card)) { in mwifiex_host_to_card_mp_aggr()
1702 if (MP_TX_AGGR_BUF_HAS_ROOM(card, pkt_len)) { in mwifiex_host_to_card_mp_aggr()
1705 if (!(card->mp_wr_bitmap & in mwifiex_host_to_card_mp_aggr()
1706 (1 << card->curr_wr_port)) || in mwifiex_host_to_card_mp_aggr()
1708 card, pkt_len + next_pkt_len)) in mwifiex_host_to_card_mp_aggr()
1714 if (!(card->mp_wr_bitmap & in mwifiex_host_to_card_mp_aggr()
1715 (1 << card->curr_wr_port))) in mwifiex_host_to_card_mp_aggr()
1721 if (MP_TX_AGGR_BUF_HAS_ROOM(card, pkt_len) && in mwifiex_host_to_card_mp_aggr()
1722 (card->mp_wr_bitmap & (1 << card->curr_wr_port))) in mwifiex_host_to_card_mp_aggr()
1733 if (MP_TX_AGGR_IN_PROGRESS(card)) { in mwifiex_host_to_card_mp_aggr()
1737 if (MP_TX_AGGR_BUF_HAS_ROOM(card, pkt_len)) in mwifiex_host_to_card_mp_aggr()
1751 MP_TX_AGGR_BUF_PUT(card, payload, pkt_len, port); in mwifiex_host_to_card_mp_aggr()
1753 if (MP_TX_AGGR_PKT_LIMIT_REACHED(card) || in mwifiex_host_to_card_mp_aggr()
1754 mp_tx_aggr_port_limit_reached(card)) in mwifiex_host_to_card_mp_aggr()
1762 __func__, card->mpa_tx.start_port, in mwifiex_host_to_card_mp_aggr()
1763 card->mpa_tx.ports); in mwifiex_host_to_card_mp_aggr()
1764 if (card->supports_sdio_new_mode) { in mwifiex_host_to_card_mp_aggr()
1768 for (i = 0, port_count = 0; i < card->max_ports; i++) in mwifiex_host_to_card_mp_aggr()
1769 if (card->mpa_tx.ports & BIT(i)) in mwifiex_host_to_card_mp_aggr()
1777 (port_count << 8)) + card->mpa_tx.start_port; in mwifiex_host_to_card_mp_aggr()
1780 (card->mpa_tx.ports << 4)) + in mwifiex_host_to_card_mp_aggr()
1781 card->mpa_tx.start_port; 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()
1785 card->mpa_tx.buf_len, mport); in mwifiex_host_to_card_mp_aggr()
1787 MP_TX_AGGR_BUF_RESET(card); in mwifiex_host_to_card_mp_aggr()
1803 MP_TX_AGGR_BUF_PUT(card, payload, pkt_len, port); in mwifiex_host_to_card_mp_aggr()
1823 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_host_to_card() local
1861 if (card->supports_sdio_new_mode) in mwifiex_sdio_host_to_card()
1882 card->curr_wr_port = port; in mwifiex_sdio_host_to_card()
1883 card->mp_wr_bitmap |= (u32)(1 << card->curr_wr_port); in mwifiex_sdio_host_to_card()
1887 if (!(card->mp_wr_bitmap & (1 << card->curr_wr_port))) in mwifiex_sdio_host_to_card()
1903 struct sdio_mmc_card *card = adapter->card; in mwifiex_alloc_sdio_mpa_buffers() local
1907 card->mpa_tx.buf = kzalloc(mpa_tx_buf_size, GFP_KERNEL); in mwifiex_alloc_sdio_mpa_buffers()
1908 if (!card->mpa_tx.buf) { in mwifiex_alloc_sdio_mpa_buffers()
1913 card->mpa_tx.buf_size = mpa_tx_buf_size; in mwifiex_alloc_sdio_mpa_buffers()
1917 card->mpa_rx.buf = kzalloc(rx_buf_size, GFP_KERNEL); in mwifiex_alloc_sdio_mpa_buffers()
1918 if (!card->mpa_rx.buf) { in mwifiex_alloc_sdio_mpa_buffers()
1923 card->mpa_rx.buf_size = rx_buf_size; in mwifiex_alloc_sdio_mpa_buffers()
1927 kfree(card->mpa_tx.buf); in mwifiex_alloc_sdio_mpa_buffers()
1928 kfree(card->mpa_rx.buf); in mwifiex_alloc_sdio_mpa_buffers()
1929 card->mpa_tx.buf_size = 0; in mwifiex_alloc_sdio_mpa_buffers()
1930 card->mpa_rx.buf_size = 0; in mwifiex_alloc_sdio_mpa_buffers()
1945 struct sdio_mmc_card *card = adapter->card; in mwifiex_unregister_dev() local
1947 if (adapter->card) { in mwifiex_unregister_dev()
1948 sdio_claim_host(card->func); in mwifiex_unregister_dev()
1949 sdio_disable_func(card->func); in mwifiex_unregister_dev()
1950 sdio_release_host(card->func); in mwifiex_unregister_dev()
1962 struct sdio_mmc_card *card = adapter->card; in mwifiex_register_dev() local
1963 struct sdio_func *func = card->func; 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()
1972 ret = sdio_set_block_size(card->func, MWIFIEX_SDIO_BLOCK_SIZE); in mwifiex_register_dev()
1983 strcpy(adapter->fw_name, card->firmware); in mwifiex_register_dev()
1984 if (card->fw_dump_enh) { in mwifiex_register_dev()
2009 struct sdio_mmc_card *card = adapter->card; in mwifiex_init_sdio() local
2010 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_init_sdio()
2014 sdio_set_drvdata(card->func, card); in mwifiex_init_sdio()
2021 mwifiex_read_reg(adapter, card->reg->host_int_status_reg, &sdio_ireg); in mwifiex_init_sdio()
2027 card->mp_rd_bitmap = 0; in mwifiex_init_sdio()
2028 card->mp_wr_bitmap = 0; in mwifiex_init_sdio()
2029 card->curr_rd_port = reg->start_rd_port; in mwifiex_init_sdio()
2030 card->curr_wr_port = reg->start_wr_port; in mwifiex_init_sdio()
2032 card->mp_data_port_mask = reg->data_port_mask; in mwifiex_init_sdio()
2034 card->mpa_tx.buf_len = 0; in mwifiex_init_sdio()
2035 card->mpa_tx.pkt_cnt = 0; in mwifiex_init_sdio()
2036 card->mpa_tx.start_port = 0; in mwifiex_init_sdio()
2038 card->mpa_tx.enabled = 1; in mwifiex_init_sdio()
2039 card->mpa_tx.pkt_aggr_limit = card->mp_agg_pkt_limit; in mwifiex_init_sdio()
2041 card->mpa_rx.buf_len = 0; in mwifiex_init_sdio()
2042 card->mpa_rx.pkt_cnt = 0; in mwifiex_init_sdio()
2043 card->mpa_rx.start_port = 0; in mwifiex_init_sdio()
2045 card->mpa_rx.enabled = 1; in mwifiex_init_sdio()
2046 card->mpa_rx.pkt_aggr_limit = card->mp_agg_pkt_limit; in mwifiex_init_sdio()
2049 card->mp_regs = kzalloc(reg->max_mp_regs, GFP_KERNEL); in mwifiex_init_sdio()
2050 if (!card->mp_regs) in mwifiex_init_sdio()
2054 card->mpa_rx.skb_arr = kzalloc((sizeof(void *)) * in mwifiex_init_sdio()
2055 card->mp_agg_pkt_limit, GFP_KERNEL); in mwifiex_init_sdio()
2056 card->mpa_rx.len_arr = kzalloc(sizeof(*card->mpa_rx.len_arr) * in mwifiex_init_sdio()
2057 card->mp_agg_pkt_limit, GFP_KERNEL); in mwifiex_init_sdio()
2059 card->mp_tx_agg_buf_size, in mwifiex_init_sdio()
2060 card->mp_rx_agg_buf_size); in mwifiex_init_sdio()
2063 if (ret && (card->mp_tx_agg_buf_size == MWIFIEX_MP_AGGR_BUF_SIZE_MAX || in mwifiex_init_sdio()
2064 card->mp_rx_agg_buf_size == MWIFIEX_MP_AGGR_BUF_SIZE_MAX)) { in mwifiex_init_sdio()
2073 card->mpa_tx.enabled = 0; in mwifiex_init_sdio()
2074 card->mpa_rx.enabled = 0; 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()
2088 struct sdio_mmc_card *card = adapter->card; in mwifiex_cleanup_mpa_buf() local
2090 MP_TX_AGGR_BUF_RESET(card); in mwifiex_cleanup_mpa_buf()
2091 MP_RX_AGGR_BUF_RESET(card); in mwifiex_cleanup_mpa_buf()
2104 struct sdio_mmc_card *card = adapter->card; in mwifiex_cleanup_sdio() local
2106 kfree(card->mp_regs); in mwifiex_cleanup_sdio()
2107 kfree(card->mpa_rx.skb_arr); in mwifiex_cleanup_sdio()
2108 kfree(card->mpa_rx.len_arr); in mwifiex_cleanup_sdio()
2109 kfree(card->mpa_tx.buf); in mwifiex_cleanup_sdio()
2110 kfree(card->mpa_rx.buf); in mwifiex_cleanup_sdio()
2111 sdio_set_drvdata(card->func, NULL); in mwifiex_cleanup_sdio()
2112 kfree(card); in mwifiex_cleanup_sdio()
2121 struct sdio_mmc_card *card = adapter->card; in mwifiex_update_mp_end_port() local
2122 const struct mwifiex_sdio_card_reg *reg = card->reg; in mwifiex_update_mp_end_port()
2125 card->mp_end_port = port; in mwifiex_update_mp_end_port()
2127 card->mp_data_port_mask = reg->data_port_mask; in mwifiex_update_mp_end_port()
2130 for (i = 1; i <= card->max_ports - card->mp_end_port; i++) in mwifiex_update_mp_end_port()
2131 card->mp_data_port_mask &= in mwifiex_update_mp_end_port()
2132 ~(1 << (card->max_ports - i)); in mwifiex_update_mp_end_port()
2135 card->curr_wr_port = reg->start_wr_port; in mwifiex_update_mp_end_port()
2139 port, card->mp_data_port_mask); in mwifiex_update_mp_end_port()
2142 static void mwifiex_recreate_adapter(struct sdio_mmc_card *card) in mwifiex_recreate_adapter() argument
2144 struct sdio_func *func = card->func; in mwifiex_recreate_adapter()
2145 const struct sdio_device_id *device_id = card->device_id; in mwifiex_recreate_adapter()
2164 mmc_hw_reset(func->card->host); in mwifiex_recreate_adapter()
2173 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_card_reset_work() local
2181 mwifiex_recreate_adapter(card); in mwifiex_sdio_card_reset_work()
2189 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_rdwr_firmware() local
2193 sdio_writeb(card->func, card->reg->fw_dump_host_ready, in mwifiex_sdio_rdwr_firmware()
2194 card->reg->fw_dump_ctrl, &ret); in mwifiex_sdio_rdwr_firmware()
2200 ctrl_data = sdio_readb(card->func, card->reg->fw_dump_ctrl, in mwifiex_sdio_rdwr_firmware()
2210 if (ctrl_data != card->reg->fw_dump_host_ready) { in mwifiex_sdio_rdwr_firmware()
2213 sdio_writeb(card->func, card->reg->fw_dump_host_ready, in mwifiex_sdio_rdwr_firmware()
2214 card->reg->fw_dump_ctrl, &ret); in mwifiex_sdio_rdwr_firmware()
2222 if (ctrl_data == card->reg->fw_dump_host_ready) { in mwifiex_sdio_rdwr_firmware()
2234 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_fw_dump() local
2241 if (!card->can_dump_fw) in mwifiex_sdio_fw_dump()
2255 sdio_claim_host(card->func); in mwifiex_sdio_fw_dump()
2263 reg = card->reg->fw_dump_start; in mwifiex_sdio_fw_dump()
2265 dump_num = sdio_readb(card->func, reg, &ret); in mwifiex_sdio_fw_dump()
2280 reg = card->reg->fw_dump_start; in mwifiex_sdio_fw_dump()
2282 read_reg = sdio_readb(card->func, reg, &ret); in mwifiex_sdio_fw_dump()
2294 card->reg->fw_dump_ctrl, in mwifiex_sdio_fw_dump()
2325 reg_start = card->reg->fw_dump_start; in mwifiex_sdio_fw_dump()
2326 reg_end = card->reg->fw_dump_end; in mwifiex_sdio_fw_dump()
2328 *dbg_ptr = sdio_readb(card->func, reg, &ret); in mwifiex_sdio_fw_dump()
2352 sdio_release_host(card->func); in mwifiex_sdio_fw_dump()
2357 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_generic_fw_dump() local
2365 if (!card->fw_dump_enh) in mwifiex_sdio_generic_fw_dump()
2375 sdio_claim_host(card->func); in mwifiex_sdio_generic_fw_dump()
2383 reg_start = card->reg->fw_dump_start; in mwifiex_sdio_generic_fw_dump()
2384 reg_end = card->reg->fw_dump_end; in mwifiex_sdio_generic_fw_dump()
2387 start_flag = sdio_readb(card->func, reg, &ret); in mwifiex_sdio_generic_fw_dump()
2423 *dbg_ptr = sdio_readb(card->func, reg, &ret); in mwifiex_sdio_generic_fw_dump()
2466 sdio_release_host(card->func); in mwifiex_sdio_generic_fw_dump()
2471 struct sdio_mmc_card *card = adapter->card; in mwifiex_sdio_device_dump_work() local
2474 if (card->fw_dump_enh) in mwifiex_sdio_device_dump_work()
2522 struct sdio_mmc_card *cardp = adapter->card; in mwifiex_sdio_reg_dump()