ar_sdio            29 drivers/net/wireless/ath/ath10k/sdio.c static inline int ath10k_sdio_calc_txrx_padded_len(struct ath10k_sdio *ar_sdio,
ar_sdio            32 drivers/net/wireless/ath/ath10k/sdio.c 	return __ALIGN_MASK((len), ar_sdio->mbox_info.block_mask);
ar_sdio           129 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           130 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           200 drivers/net/wireless/ath/ath10k/sdio.c 	ret = sdio_set_block_size(func, ar_sdio->mbox_info.block_size);
ar_sdio           203 drivers/net/wireless/ath/ath10k/sdio.c 			    ar_sdio->mbox_info.block_size, ret);
ar_sdio           214 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           215 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           238 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           239 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           271 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           272 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           294 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           295 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           319 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           320 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           347 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           348 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           353 drivers/net/wireless/ath/ath10k/sdio.c 	len = round_down(len, ar_sdio->mbox_info.block_size);
ar_sdio           416 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           425 drivers/net/wireless/ath/ath10k/sdio.c 	for (i = 0; i < ar_sdio->n_rx_pkts; i++) {
ar_sdio           447 drivers/net/wireless/ath/ath10k/sdio.c 		pkt = &ar_sdio->rx_pkts[i];
ar_sdio           466 drivers/net/wireless/ath/ath10k/sdio.c 			ep->ep_ops.ep_rx_complete(ar_sdio->ar, pkt->skb);
ar_sdio           481 drivers/net/wireless/ath/ath10k/sdio.c 	for (; i < ar_sdio->n_rx_pkts; i++)
ar_sdio           482 drivers/net/wireless/ath/ath10k/sdio.c 		ath10k_sdio_mbox_free_rx_pkt(&ar_sdio->rx_pkts[i]);
ar_sdio           527 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           557 drivers/net/wireless/ath/ath10k/sdio.c 		full_len = ath10k_sdio_calc_txrx_padded_len(ar_sdio, act_len);
ar_sdio           576 drivers/net/wireless/ath/ath10k/sdio.c 								&ar_sdio->rx_pkts[i],
ar_sdio           600 drivers/net/wireless/ath/ath10k/sdio.c 		ret = ath10k_sdio_mbox_alloc_rx_pkt(&ar_sdio->rx_pkts[i],
ar_sdio           611 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->n_rx_pkts = i;
ar_sdio           617 drivers/net/wireless/ath/ath10k/sdio.c 		if (!ar_sdio->rx_pkts[i].alloc_len)
ar_sdio           619 drivers/net/wireless/ath/ath10k/sdio.c 		ath10k_sdio_mbox_free_rx_pkt(&ar_sdio->rx_pkts[i]);
ar_sdio           628 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           633 drivers/net/wireless/ath/ath10k/sdio.c 	ret = ath10k_sdio_readsb(ar, ar_sdio->mbox_info.htc_addr,
ar_sdio           661 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           664 drivers/net/wireless/ath/ath10k/sdio.c 	for (i = 0; i < ar_sdio->n_rx_pkts; i++) {
ar_sdio           666 drivers/net/wireless/ath/ath10k/sdio.c 						 &ar_sdio->rx_pkts[i]);
ar_sdio           675 drivers/net/wireless/ath/ath10k/sdio.c 	for (; i < ar_sdio->n_rx_pkts; i++)
ar_sdio           676 drivers/net/wireless/ath/ath10k/sdio.c 		ath10k_sdio_mbox_free_rx_pkt(&ar_sdio->rx_pkts[i]);
ar_sdio           691 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           714 drivers/net/wireless/ath/ath10k/sdio.c 		if (ar_sdio->n_rx_pkts >= 2)
ar_sdio           770 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           771 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio           795 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           796 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio           841 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           842 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio           886 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio           887 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio          1031 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1032 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_mbox_info *mbox_info = &ar_sdio->mbox_info;
ar_sdio          1033 drivers/net/wireless/ath/ath10k/sdio.c 	u16 device = ar_sdio->func->device, dev_id_base, dev_id_chiprev;
ar_sdio          1148 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1157 drivers/net/wireless/ath/ath10k/sdio.c 		addr = ar_sdio->mbox_info.htc_addr;
ar_sdio          1159 drivers/net/wireless/ath/ath10k/sdio.c 		memcpy(ar_sdio->bmi_buf, req, req_len);
ar_sdio          1160 drivers/net/wireless/ath/ath10k/sdio.c 		ret = ath10k_sdio_write(ar, addr, ar_sdio->bmi_buf, req_len);
ar_sdio          1223 drivers/net/wireless/ath/ath10k/sdio.c 	addr = ar_sdio->mbox_info.htc_addr;
ar_sdio          1224 drivers/net/wireless/ath/ath10k/sdio.c 	ret = ath10k_sdio_read(ar, addr, ar_sdio->bmi_buf, *resp_len);
ar_sdio          1232 drivers/net/wireless/ath/ath10k/sdio.c 	memcpy(resp, ar_sdio->bmi_buf, *resp_len);
ar_sdio          1242 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1245 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_bh(&ar_sdio->lock);
ar_sdio          1247 drivers/net/wireless/ath/ath10k/sdio.c 	if (list_empty(&ar_sdio->bus_req_freeq)) {
ar_sdio          1252 drivers/net/wireless/ath/ath10k/sdio.c 	bus_req = list_first_entry(&ar_sdio->bus_req_freeq,
ar_sdio          1257 drivers/net/wireless/ath/ath10k/sdio.c 	spin_unlock_bh(&ar_sdio->lock);
ar_sdio          1264 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1268 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_bh(&ar_sdio->lock);
ar_sdio          1269 drivers/net/wireless/ath/ath10k/sdio.c 	list_add_tail(&bus_req->list, &ar_sdio->bus_req_freeq);
ar_sdio          1270 drivers/net/wireless/ath/ath10k/sdio.c 	spin_unlock_bh(&ar_sdio->lock);
ar_sdio          1298 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = container_of(work, struct ath10k_sdio,
ar_sdio          1300 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k *ar = ar_sdio->ar;
ar_sdio          1303 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1305 drivers/net/wireless/ath/ath10k/sdio.c 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
ar_sdio          1307 drivers/net/wireless/ath/ath10k/sdio.c 		spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1309 drivers/net/wireless/ath/ath10k/sdio.c 		spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1312 drivers/net/wireless/ath/ath10k/sdio.c 	spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1320 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1339 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1340 drivers/net/wireless/ath/ath10k/sdio.c 	list_add_tail(&bus_req->list, &ar_sdio->wr_asyncq);
ar_sdio          1341 drivers/net/wireless/ath/ath10k/sdio.c 	spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1350 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = sdio_get_drvdata(func);
ar_sdio          1351 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k *ar = ar_sdio->ar;
ar_sdio          1359 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio          1370 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio          1381 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1382 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio          1402 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1403 drivers/net/wireless/ath/ath10k/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio          1406 drivers/net/wireless/ath/ath10k/sdio.c 	if (!ar_sdio->is_disabled)
ar_sdio          1433 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->is_disabled = false;
ar_sdio          1444 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1447 drivers/net/wireless/ath/ath10k/sdio.c 	if (ar_sdio->is_disabled)
ar_sdio          1453 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio          1455 drivers/net/wireless/ath/ath10k/sdio.c 	ret = sdio_disable_func(ar_sdio->func);
ar_sdio          1458 drivers/net/wireless/ath/ath10k/sdio.c 		sdio_release_host(ar_sdio->func);
ar_sdio          1462 drivers/net/wireless/ath/ath10k/sdio.c 	ret = mmc_hw_reset(ar_sdio->func->card->host);
ar_sdio          1466 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio          1468 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->is_disabled = true;
ar_sdio          1474 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1486 drivers/net/wireless/ath/ath10k/sdio.c 		padded_len = ath10k_sdio_calc_txrx_padded_len(ar_sdio,
ar_sdio          1491 drivers/net/wireless/ath/ath10k/sdio.c 		address = ar_sdio->mbox_addr[eid] + ar_sdio->mbox_size[eid] -
ar_sdio          1499 drivers/net/wireless/ath/ath10k/sdio.c 	queue_work(ar_sdio->workqueue, &ar_sdio->wr_async_work);
ar_sdio          1506 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1507 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio          1652 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1667 drivers/net/wireless/ath/ath10k/sdio.c 		ar_sdio->swap_mbox = true;
ar_sdio          1671 drivers/net/wireless/ath/ath10k/sdio.c 		ar_sdio->swap_mbox = false;
ar_sdio          1681 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1696 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->mbox_addr[0] = ar_sdio->mbox_info.ext_info[0].htc_ext_addr;
ar_sdio          1697 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->mbox_size[0] = ar_sdio->mbox_info.ext_info[0].htc_ext_sz;
ar_sdio          1699 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio          1702 drivers/net/wireless/ath/ath10k/sdio.c 	ret =  sdio_claim_irq(ar_sdio->func, ath10k_sdio_irq_handler);
ar_sdio          1705 drivers/net/wireless/ath/ath10k/sdio.c 		sdio_release_host(ar_sdio->func);
ar_sdio          1709 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio          1734 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1735 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio_irq_data *irq_data = &ar_sdio->irq_data;
ar_sdio          1759 drivers/net/wireless/ath/ath10k/sdio.c 	queue_work(ar_sdio->workqueue, &ar_sdio->wr_async_work);
ar_sdio          1769 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio          1771 drivers/net/wireless/ath/ath10k/sdio.c 	ret = sdio_release_irq(ar_sdio->func);
ar_sdio          1775 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio          1784 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1788 drivers/net/wireless/ath/ath10k/sdio.c 	cancel_work_sync(&ar_sdio->wr_async_work);
ar_sdio          1790 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1793 drivers/net/wireless/ath/ath10k/sdio.c 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
ar_sdio          1807 drivers/net/wireless/ath/ath10k/sdio.c 	spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1841 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          1874 drivers/net/wireless/ath/ath10k/sdio.c 	if (ar_sdio->swap_mbox) {
ar_sdio          1875 drivers/net/wireless/ath/ath10k/sdio.c 		htt_addr = ar_sdio->mbox_info.ext_info[0].htc_ext_addr;
ar_sdio          1876 drivers/net/wireless/ath/ath10k/sdio.c 		wmi_addr = ar_sdio->mbox_info.ext_info[1].htc_ext_addr;
ar_sdio          1877 drivers/net/wireless/ath/ath10k/sdio.c 		htt_mbox_size = ar_sdio->mbox_info.ext_info[0].htc_ext_sz;
ar_sdio          1878 drivers/net/wireless/ath/ath10k/sdio.c 		wmi_mbox_size = ar_sdio->mbox_info.ext_info[1].htc_ext_sz;
ar_sdio          1880 drivers/net/wireless/ath/ath10k/sdio.c 		htt_addr = ar_sdio->mbox_info.ext_info[1].htc_ext_addr;
ar_sdio          1881 drivers/net/wireless/ath/ath10k/sdio.c 		wmi_addr = ar_sdio->mbox_info.ext_info[0].htc_ext_addr;
ar_sdio          1882 drivers/net/wireless/ath/ath10k/sdio.c 		htt_mbox_size = ar_sdio->mbox_info.ext_info[1].htc_ext_sz;
ar_sdio          1883 drivers/net/wireless/ath/ath10k/sdio.c 		wmi_mbox_size = ar_sdio->mbox_info.ext_info[0].htc_ext_sz;
ar_sdio          1893 drivers/net/wireless/ath/ath10k/sdio.c 		ar_sdio->mbox_addr[eid] = wmi_addr;
ar_sdio          1894 drivers/net/wireless/ath/ath10k/sdio.c 		ar_sdio->mbox_size[eid] = wmi_mbox_size;
ar_sdio          1897 drivers/net/wireless/ath/ath10k/sdio.c 			   ar_sdio->mbox_addr[eid], ar_sdio->mbox_size[eid]);
ar_sdio          1900 drivers/net/wireless/ath/ath10k/sdio.c 		ar_sdio->mbox_addr[eid] = htt_addr;
ar_sdio          1901 drivers/net/wireless/ath/ath10k/sdio.c 		ar_sdio->mbox_size[eid] = htt_mbox_size;
ar_sdio          1904 drivers/net/wireless/ath/ath10k/sdio.c 			   ar_sdio->mbox_addr[eid], ar_sdio->mbox_size[eid]);
ar_sdio          1986 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio;
ar_sdio          2001 drivers/net/wireless/ath/ath10k/sdio.c 	ar = ath10k_core_create(sizeof(*ar_sdio), &func->dev, ATH10K_BUS_SDIO,
ar_sdio          2013 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio = ath10k_sdio_priv(ar);
ar_sdio          2015 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->irq_data.irq_proc_reg =
ar_sdio          2018 drivers/net/wireless/ath/ath10k/sdio.c 	if (!ar_sdio->irq_data.irq_proc_reg) {
ar_sdio          2023 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->irq_data.irq_en_reg =
ar_sdio          2026 drivers/net/wireless/ath/ath10k/sdio.c 	if (!ar_sdio->irq_data.irq_en_reg) {
ar_sdio          2031 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->bmi_buf = devm_kzalloc(ar->dev, BMI_MAX_CMDBUF_SIZE, GFP_KERNEL);
ar_sdio          2032 drivers/net/wireless/ath/ath10k/sdio.c 	if (!ar_sdio->bmi_buf) {
ar_sdio          2037 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->func = func;
ar_sdio          2038 drivers/net/wireless/ath/ath10k/sdio.c 	sdio_set_drvdata(func, ar_sdio);
ar_sdio          2040 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->is_disabled = true;
ar_sdio          2041 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->ar = ar;
ar_sdio          2043 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_init(&ar_sdio->lock);
ar_sdio          2044 drivers/net/wireless/ath/ath10k/sdio.c 	spin_lock_init(&ar_sdio->wr_async_lock);
ar_sdio          2045 drivers/net/wireless/ath/ath10k/sdio.c 	mutex_init(&ar_sdio->irq_data.mtx);
ar_sdio          2047 drivers/net/wireless/ath/ath10k/sdio.c 	INIT_LIST_HEAD(&ar_sdio->bus_req_freeq);
ar_sdio          2048 drivers/net/wireless/ath/ath10k/sdio.c 	INIT_LIST_HEAD(&ar_sdio->wr_asyncq);
ar_sdio          2050 drivers/net/wireless/ath/ath10k/sdio.c 	INIT_WORK(&ar_sdio->wr_async_work, ath10k_sdio_write_async_work);
ar_sdio          2051 drivers/net/wireless/ath/ath10k/sdio.c 	ar_sdio->workqueue = create_singlethread_workqueue("ath10k_sdio_wq");
ar_sdio          2052 drivers/net/wireless/ath/ath10k/sdio.c 	if (!ar_sdio->workqueue) {
ar_sdio          2058 drivers/net/wireless/ath/ath10k/sdio.c 		ath10k_sdio_free_bus_req(ar, &ar_sdio->bus_req[i]);
ar_sdio          2095 drivers/net/wireless/ath/ath10k/sdio.c 	destroy_workqueue(ar_sdio->workqueue);
ar_sdio          2104 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k_sdio *ar_sdio = sdio_get_drvdata(func);
ar_sdio          2105 drivers/net/wireless/ath/ath10k/sdio.c 	struct ath10k *ar = ar_sdio->ar;
ar_sdio          2114 drivers/net/wireless/ath/ath10k/sdio.c 	flush_workqueue(ar_sdio->workqueue);
ar_sdio          2115 drivers/net/wireless/ath/ath10k/sdio.c 	destroy_workqueue(ar_sdio->workqueue);
ar_sdio           190 drivers/net/wireless/ath/ath6kl/sdio.c static struct bus_request *ath6kl_sdio_alloc_busreq(struct ath6kl_sdio *ar_sdio)
ar_sdio           194 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->lock);
ar_sdio           196 drivers/net/wireless/ath/ath6kl/sdio.c 	if (list_empty(&ar_sdio->bus_req_freeq)) {
ar_sdio           197 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_unlock_bh(&ar_sdio->lock);
ar_sdio           201 drivers/net/wireless/ath/ath6kl/sdio.c 	bus_req = list_first_entry(&ar_sdio->bus_req_freeq,
ar_sdio           205 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->lock);
ar_sdio           212 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_free_bus_req(struct ath6kl_sdio *ar_sdio,
ar_sdio           218 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->lock);
ar_sdio           219 drivers/net/wireless/ath/ath6kl/sdio.c 	list_add_tail(&bus_req->list, &ar_sdio->bus_req_freeq);
ar_sdio           220 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->lock);
ar_sdio           260 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_scat_rw(struct ath6kl_sdio *ar_sdio,
ar_sdio           277 drivers/net/wireless/ath/ath6kl/sdio.c 		status = ath6kl_sdio_io(ar_sdio->func, scat_req->req,
ar_sdio           304 drivers/net/wireless/ath/ath6kl/sdio.c 	ath6kl_sdio_set_cmd53_arg(&cmd.arg, rw, ar_sdio->func->num,
ar_sdio           314 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio           316 drivers/net/wireless/ath/ath6kl/sdio.c 	mmc_set_data_timeout(&data, ar_sdio->func->card);
ar_sdio           325 drivers/net/wireless/ath/ath6kl/sdio.c 	mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req);
ar_sdio           327 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio           339 drivers/net/wireless/ath/ath6kl/sdio.c 		scat_req->complete(ar_sdio->ar->htc_target, scat_req);
ar_sdio           344 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_alloc_prep_scat_req(struct ath6kl_sdio *ar_sdio,
ar_sdio           388 drivers/net/wireless/ath/ath6kl/sdio.c 		bus_req = ath6kl_sdio_alloc_busreq(ar_sdio);
ar_sdio           403 drivers/net/wireless/ath/ath6kl/sdio.c 		hif_scatter_req_add(ar_sdio->ar, s_req);
ar_sdio           412 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           421 drivers/net/wireless/ath/ath6kl/sdio.c 		if (!ar_sdio->dma_buffer)
ar_sdio           423 drivers/net/wireless/ath/ath6kl/sdio.c 		mutex_lock(&ar_sdio->dma_buffer_mutex);
ar_sdio           424 drivers/net/wireless/ath/ath6kl/sdio.c 		tbuf = ar_sdio->dma_buffer;
ar_sdio           434 drivers/net/wireless/ath/ath6kl/sdio.c 	ret = ath6kl_sdio_io(ar_sdio->func, request, addr, tbuf, len);
ar_sdio           439 drivers/net/wireless/ath/ath6kl/sdio.c 		mutex_unlock(&ar_sdio->dma_buffer_mutex);
ar_sdio           444 drivers/net/wireless/ath/ath6kl/sdio.c static void __ath6kl_sdio_write_async(struct ath6kl_sdio *ar_sdio,
ar_sdio           448 drivers/net/wireless/ath/ath6kl/sdio.c 		ath6kl_sdio_scat_rw(ar_sdio, req);
ar_sdio           453 drivers/net/wireless/ath/ath6kl/sdio.c 		status = ath6kl_sdio_read_write_sync(ar_sdio->ar, req->address,
ar_sdio           457 drivers/net/wireless/ath/ath6kl/sdio.c 		ath6kl_sdio_free_bus_req(ar_sdio, req);
ar_sdio           464 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio;
ar_sdio           467 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio = container_of(work, struct ath6kl_sdio, wr_async_work);
ar_sdio           469 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio           470 drivers/net/wireless/ath/ath6kl/sdio.c 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
ar_sdio           472 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio           473 drivers/net/wireless/ath/ath6kl/sdio.c 		__ath6kl_sdio_write_async(ar_sdio, req);
ar_sdio           474 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio           476 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio           482 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio;
ar_sdio           486 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio = sdio_get_drvdata(func);
ar_sdio           487 drivers/net/wireless/ath/ath6kl/sdio.c 	atomic_set(&ar_sdio->irq_handling, 1);
ar_sdio           492 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio           494 drivers/net/wireless/ath/ath6kl/sdio.c 	status = ath6kl_hif_intr_bh_handler(ar_sdio->ar);
ar_sdio           495 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio           497 drivers/net/wireless/ath/ath6kl/sdio.c 	atomic_set(&ar_sdio->irq_handling, 0);
ar_sdio           498 drivers/net/wireless/ath/ath6kl/sdio.c 	wake_up(&ar_sdio->irq_wq);
ar_sdio           505 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           506 drivers/net/wireless/ath/ath6kl/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           509 drivers/net/wireless/ath/ath6kl/sdio.c 	if (!ar_sdio->is_disabled)
ar_sdio           537 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->is_disabled = false;
ar_sdio           545 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           548 drivers/net/wireless/ath/ath6kl/sdio.c 	if (ar_sdio->is_disabled)
ar_sdio           554 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio           555 drivers/net/wireless/ath/ath6kl/sdio.c 	ret = sdio_disable_func(ar_sdio->func);
ar_sdio           556 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio           561 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->is_disabled = true;
ar_sdio           570 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           573 drivers/net/wireless/ath/ath6kl/sdio.c 	bus_req = ath6kl_sdio_alloc_busreq(ar_sdio);
ar_sdio           584 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio           585 drivers/net/wireless/ath/ath6kl/sdio.c 	list_add_tail(&bus_req->list, &ar_sdio->wr_asyncq);
ar_sdio           586 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio           587 drivers/net/wireless/ath/ath6kl/sdio.c 	queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work);
ar_sdio           594 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           597 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio           600 drivers/net/wireless/ath/ath6kl/sdio.c 	ret =  sdio_claim_irq(ar_sdio->func, ath6kl_sdio_irq_handler);
ar_sdio           604 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio           609 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           611 drivers/net/wireless/ath/ath6kl/sdio.c 	return !atomic_read(&ar_sdio->irq_handling);
ar_sdio           616 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           619 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_claim_host(ar_sdio->func);
ar_sdio           621 drivers/net/wireless/ath/ath6kl/sdio.c 	if (atomic_read(&ar_sdio->irq_handling)) {
ar_sdio           622 drivers/net/wireless/ath/ath6kl/sdio.c 		sdio_release_host(ar_sdio->func);
ar_sdio           624 drivers/net/wireless/ath/ath6kl/sdio.c 		ret = wait_event_interruptible(ar_sdio->irq_wq,
ar_sdio           629 drivers/net/wireless/ath/ath6kl/sdio.c 		sdio_claim_host(ar_sdio->func);
ar_sdio           632 drivers/net/wireless/ath/ath6kl/sdio.c 	ret = sdio_release_irq(ar_sdio->func);
ar_sdio           636 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_release_host(ar_sdio->func);
ar_sdio           641 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           644 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->scat_lock);
ar_sdio           646 drivers/net/wireless/ath/ath6kl/sdio.c 	if (!list_empty(&ar_sdio->scat_req)) {
ar_sdio           647 drivers/net/wireless/ath/ath6kl/sdio.c 		node = list_first_entry(&ar_sdio->scat_req,
ar_sdio           651 drivers/net/wireless/ath/ath6kl/sdio.c 		node->scat_q_depth = get_queue_depth(&ar_sdio->scat_req);
ar_sdio           654 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->scat_lock);
ar_sdio           662 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           664 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->scat_lock);
ar_sdio           666 drivers/net/wireless/ath/ath6kl/sdio.c 	list_add_tail(&s_req->list, &ar_sdio->scat_req);
ar_sdio           668 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->scat_lock);
ar_sdio           675 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           687 drivers/net/wireless/ath/ath6kl/sdio.c 		status = ath6kl_sdio_scat_rw(ar_sdio, scat_req->busrequest);
ar_sdio           689 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio           690 drivers/net/wireless/ath/ath6kl/sdio.c 		list_add_tail(&scat_req->busrequest->list, &ar_sdio->wr_asyncq);
ar_sdio           691 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio           692 drivers/net/wireless/ath/ath6kl/sdio.c 		queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work);
ar_sdio           701 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           705 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->scat_lock);
ar_sdio           706 drivers/net/wireless/ath/ath6kl/sdio.c 	list_for_each_entry_safe(s_req, tmp_req, &ar_sdio->scat_req, list) {
ar_sdio           708 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_unlock_bh(&ar_sdio->scat_lock);
ar_sdio           717 drivers/net/wireless/ath/ath6kl/sdio.c 			ath6kl_sdio_free_bus_req(ar_sdio, s_req->busrequest);
ar_sdio           723 drivers/net/wireless/ath/ath6kl/sdio.c 		spin_lock_bh(&ar_sdio->scat_lock);
ar_sdio           725 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->scat_lock);
ar_sdio           727 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->scatter_enabled = false;
ar_sdio           733 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           738 drivers/net/wireless/ath/ath6kl/sdio.c 	if (ar_sdio->scatter_enabled)
ar_sdio           741 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->scatter_enabled = true;
ar_sdio           744 drivers/net/wireless/ath/ath6kl/sdio.c 	if (ar_sdio->func->card->host->max_segs < MAX_SCATTER_ENTRIES_PER_REQ) {
ar_sdio           746 drivers/net/wireless/ath/ath6kl/sdio.c 			   ar_sdio->func->card->host->max_segs,
ar_sdio           752 drivers/net/wireless/ath/ath6kl/sdio.c 		ret = ath6kl_sdio_alloc_prep_scat_req(ar_sdio,
ar_sdio           772 drivers/net/wireless/ath/ath6kl/sdio.c 		ret = ath6kl_sdio_alloc_prep_scat_req(ar_sdio,
ar_sdio           796 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           797 drivers/net/wireless/ath/ath6kl/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           802 drivers/net/wireless/ath/ath6kl/sdio.c 	if ((ar_sdio->id->device & MANUFACTURER_ID_ATH6KL_BASE_MASK) >=
ar_sdio           835 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           836 drivers/net/wireless/ath/ath6kl/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio           864 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio           865 drivers/net/wireless/ath/ath6kl/sdio.c 	struct sdio_func *func = ar_sdio->func;
ar_sdio          1225 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar);
ar_sdio          1231 drivers/net/wireless/ath/ath6kl/sdio.c 	cancel_work_sync(&ar_sdio->wr_async_work);
ar_sdio          1233 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1235 drivers/net/wireless/ath/ath6kl/sdio.c 	list_for_each_entry_safe(req, tmp_req, &ar_sdio->wr_asyncq, list) {
ar_sdio          1241 drivers/net/wireless/ath/ath6kl/sdio.c 			req->scat_req->complete(ar_sdio->ar->htc_target,
ar_sdio          1245 drivers/net/wireless/ath/ath6kl/sdio.c 			ath6kl_sdio_free_bus_req(ar_sdio, req);
ar_sdio          1250 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_unlock_bh(&ar_sdio->wr_async_lock);
ar_sdio          1252 drivers/net/wireless/ath/ath6kl/sdio.c 	WARN_ON(get_queue_depth(&ar_sdio->scat_req) != 4);
ar_sdio          1311 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio;
ar_sdio          1320 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio = kzalloc(sizeof(struct ath6kl_sdio), GFP_KERNEL);
ar_sdio          1321 drivers/net/wireless/ath/ath6kl/sdio.c 	if (!ar_sdio)
ar_sdio          1324 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->dma_buffer = kzalloc(HIF_DMA_BUFFER_SIZE, GFP_KERNEL);
ar_sdio          1325 drivers/net/wireless/ath/ath6kl/sdio.c 	if (!ar_sdio->dma_buffer) {
ar_sdio          1330 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->func = func;
ar_sdio          1331 drivers/net/wireless/ath/ath6kl/sdio.c 	sdio_set_drvdata(func, ar_sdio);
ar_sdio          1333 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->id = id;
ar_sdio          1334 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->is_disabled = true;
ar_sdio          1336 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_init(&ar_sdio->lock);
ar_sdio          1337 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_init(&ar_sdio->scat_lock);
ar_sdio          1338 drivers/net/wireless/ath/ath6kl/sdio.c 	spin_lock_init(&ar_sdio->wr_async_lock);
ar_sdio          1339 drivers/net/wireless/ath/ath6kl/sdio.c 	mutex_init(&ar_sdio->dma_buffer_mutex);
ar_sdio          1341 drivers/net/wireless/ath/ath6kl/sdio.c 	INIT_LIST_HEAD(&ar_sdio->scat_req);
ar_sdio          1342 drivers/net/wireless/ath/ath6kl/sdio.c 	INIT_LIST_HEAD(&ar_sdio->bus_req_freeq);
ar_sdio          1343 drivers/net/wireless/ath/ath6kl/sdio.c 	INIT_LIST_HEAD(&ar_sdio->wr_asyncq);
ar_sdio          1345 drivers/net/wireless/ath/ath6kl/sdio.c 	INIT_WORK(&ar_sdio->wr_async_work, ath6kl_sdio_write_async_work);
ar_sdio          1347 drivers/net/wireless/ath/ath6kl/sdio.c 	init_waitqueue_head(&ar_sdio->irq_wq);
ar_sdio          1350 drivers/net/wireless/ath/ath6kl/sdio.c 		ath6kl_sdio_free_bus_req(ar_sdio, &ar_sdio->bus_req[count]);
ar_sdio          1352 drivers/net/wireless/ath/ath6kl/sdio.c 	ar = ath6kl_core_create(&ar_sdio->func->dev);
ar_sdio          1359 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio->ar = ar;
ar_sdio          1361 drivers/net/wireless/ath/ath6kl/sdio.c 	ar->hif_priv = ar_sdio;
ar_sdio          1382 drivers/net/wireless/ath/ath6kl/sdio.c 	ath6kl_core_destroy(ar_sdio->ar);
ar_sdio          1384 drivers/net/wireless/ath/ath6kl/sdio.c 	kfree(ar_sdio->dma_buffer);
ar_sdio          1386 drivers/net/wireless/ath/ath6kl/sdio.c 	kfree(ar_sdio);
ar_sdio          1393 drivers/net/wireless/ath/ath6kl/sdio.c 	struct ath6kl_sdio *ar_sdio;
ar_sdio          1399 drivers/net/wireless/ath/ath6kl/sdio.c 	ar_sdio = sdio_get_drvdata(func);
ar_sdio          1401 drivers/net/wireless/ath/ath6kl/sdio.c 	ath6kl_stop_txrx(ar_sdio->ar);
ar_sdio          1402 drivers/net/wireless/ath/ath6kl/sdio.c 	cancel_work_sync(&ar_sdio->wr_async_work);
ar_sdio          1404 drivers/net/wireless/ath/ath6kl/sdio.c 	ath6kl_core_cleanup(ar_sdio->ar);
ar_sdio          1405 drivers/net/wireless/ath/ath6kl/sdio.c 	ath6kl_core_destroy(ar_sdio->ar);
ar_sdio          1407 drivers/net/wireless/ath/ath6kl/sdio.c 	kfree(ar_sdio->dma_buffer);
ar_sdio          1408 drivers/net/wireless/ath/ath6kl/sdio.c 	kfree(ar_sdio);