scat_req 77 drivers/net/wireless/ath/ath6kl/hif-ops.h struct hif_scatter_req *scat_req) scat_req 79 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->scat_req_rw(ar, scat_req); scat_req 231 drivers/net/wireless/ath/ath6kl/hif.c struct hif_scatter_req *scat_req, bool read) scat_req 236 drivers/net/wireless/ath/ath6kl/hif.c scat_req->req = HIF_RD_SYNC_BLOCK_FIX; scat_req 237 drivers/net/wireless/ath/ath6kl/hif.c scat_req->addr = dev->ar->mbox_info.htc_addr; scat_req 239 drivers/net/wireless/ath/ath6kl/hif.c scat_req->req = HIF_WR_ASYNC_BLOCK_INC; scat_req 241 drivers/net/wireless/ath/ath6kl/hif.c scat_req->addr = scat_req 242 drivers/net/wireless/ath/ath6kl/hif.c (scat_req->len > HIF_MBOX_WIDTH) ? scat_req 249 drivers/net/wireless/ath/ath6kl/hif.c scat_req->scat_entries, scat_req->len, scat_req 250 drivers/net/wireless/ath/ath6kl/hif.c scat_req->addr, !read ? "async" : "sync", scat_req 253 drivers/net/wireless/ath/ath6kl/hif.c if (!read && scat_req->virt_scat) { scat_req 254 drivers/net/wireless/ath/ath6kl/hif.c status = ath6kl_hif_cp_scat_dma_buf(scat_req, false); scat_req 256 drivers/net/wireless/ath/ath6kl/hif.c scat_req->status = status; scat_req 257 drivers/net/wireless/ath/ath6kl/hif.c scat_req->complete(dev->ar->htc_target, scat_req); scat_req 262 drivers/net/wireless/ath/ath6kl/hif.c status = ath6kl_hif_scat_req_rw(dev->ar, scat_req); scat_req 266 drivers/net/wireless/ath/ath6kl/hif.c scat_req->status = status; scat_req 267 drivers/net/wireless/ath/ath6kl/hif.c if (!status && scat_req->virt_scat) scat_req 268 drivers/net/wireless/ath/ath6kl/hif.c scat_req->status = scat_req 269 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_hif_cp_scat_dma_buf(scat_req, true); scat_req 89 drivers/net/wireless/ath/ath6kl/hif.h struct hif_scatter_req *scat_req; scat_req 248 drivers/net/wireless/ath/ath6kl/hif.h struct hif_scatter_req *scat_req); scat_req 280 drivers/net/wireless/ath/ath6kl/hif.h struct hif_scatter_req *scat_req, bool read); scat_req 468 drivers/net/wireless/ath/ath6kl/htc_mbox.c struct hif_scatter_req *scat_req) scat_req 479 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->len, scat_req->scat_entries); scat_req 481 drivers/net/wireless/ath/ath6kl/htc_mbox.c if (scat_req->status) scat_req 482 drivers/net/wireless/ath/ath6kl/htc_mbox.c ath6kl_err("send scatter req failed: %d\n", scat_req->status); scat_req 484 drivers/net/wireless/ath/ath6kl/htc_mbox.c packet = scat_req->scat_list[0].packet; scat_req 488 drivers/net/wireless/ath/ath6kl/htc_mbox.c for (i = 0; i < scat_req->scat_entries; i++) { scat_req 489 drivers/net/wireless/ath/ath6kl/htc_mbox.c packet = scat_req->scat_list[i].packet; scat_req 495 drivers/net/wireless/ath/ath6kl/htc_mbox.c packet->status = scat_req->status; scat_req 501 drivers/net/wireless/ath/ath6kl/htc_mbox.c hif_scatter_req_add(target->dev->ar, scat_req); scat_req 681 drivers/net/wireless/ath/ath6kl/htc_mbox.c struct hif_scatter_req *scat_req, scat_req 693 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_list[i].packet = NULL; scat_req 713 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_list[i].packet = packet; scat_req 721 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_list[i].buf = packet->buf; scat_req 722 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_list[i].len = len; scat_req 724 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->len += len; scat_req 725 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_entries++; scat_req 732 drivers/net/wireless/ath/ath6kl/htc_mbox.c if (scat_req->scat_entries < HTC_MIN_HTC_MSGS_TO_BUNDLE) { scat_req 733 drivers/net/wireless/ath/ath6kl/htc_mbox.c for (i = scat_req->scat_entries - 1; i >= 0; i--) { scat_req 734 drivers/net/wireless/ath/ath6kl/htc_mbox.c packet = scat_req->scat_list[i].packet; scat_req 760 drivers/net/wireless/ath/ath6kl/htc_mbox.c struct hif_scatter_req *scat_req = NULL; scat_req 780 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req = hif_scatter_req_get(target->dev->ar); scat_req 782 drivers/net/wireless/ath/ath6kl/htc_mbox.c if (!scat_req) { scat_req 809 drivers/net/wireless/ath/ath6kl/htc_mbox.c if (scat_req->scat_q_depth < ATH6KL_SCATTER_REQS) scat_req 818 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->len = 0; scat_req 819 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_entries = 0; scat_req 822 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req, n_scat, scat_req 825 drivers/net/wireless/ath/ath6kl/htc_mbox.c hif_scatter_req_add(target->dev->ar, scat_req); scat_req 830 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->complete = htc_async_tx_scat_complete; scat_req 832 drivers/net/wireless/ath/ath6kl/htc_mbox.c tot_pkts_bundle += scat_req->scat_entries; scat_req 836 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->len, scat_req->scat_entries); scat_req 838 drivers/net/wireless/ath/ath6kl/htc_mbox.c for (i = 0; i < scat_req->scat_entries; i++) { scat_req 839 drivers/net/wireless/ath/ath6kl/htc_mbox.c packet = scat_req->scat_list[i].packet; scat_req 844 drivers/net/wireless/ath/ath6kl/htc_mbox.c ath6kl_hif_submit_scat_req(target->dev, scat_req, false); scat_req 1915 drivers/net/wireless/ath/ath6kl/htc_mbox.c struct hif_scatter_req *scat_req; scat_req 1945 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req = hif_scatter_req_get(target->dev->ar); scat_req 1947 drivers/net/wireless/ath/ath6kl/htc_mbox.c if (scat_req == NULL) scat_req 1976 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_list[i].buf = packet->buf; scat_req 1977 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_list[i].len = pad_len; scat_req 1983 drivers/net/wireless/ath/ath6kl/htc_mbox.c WARN_ON(!scat_req->scat_list[i].len); scat_req 1984 drivers/net/wireless/ath/ath6kl/htc_mbox.c len += scat_req->scat_list[i].len; scat_req 1987 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->len = len; scat_req 1988 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req->scat_entries = i; scat_req 1990 drivers/net/wireless/ath/ath6kl/htc_mbox.c status = ath6kl_hif_submit_scat_req(target->dev, scat_req, true); scat_req 1996 drivers/net/wireless/ath/ath6kl/htc_mbox.c hif_scatter_req_add(target->dev->ar, scat_req); scat_req 53 drivers/net/wireless/ath/ath6kl/sdio.c struct list_head scat_req; scat_req 223 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_setup_scat_data(struct hif_scatter_req *scat_req, scat_req 230 drivers/net/wireless/ath/ath6kl/sdio.c data->blocks = scat_req->len / HIF_MBOX_BLOCK_SIZE; scat_req 234 drivers/net/wireless/ath/ath6kl/sdio.c (scat_req->req & HIF_WRITE) ? "WR" : "RD", scat_req->addr, scat_req 235 drivers/net/wireless/ath/ath6kl/sdio.c data->blksz, data->blocks, scat_req->len, scat_req 236 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->scat_entries); scat_req 238 drivers/net/wireless/ath/ath6kl/sdio.c data->flags = (scat_req->req & HIF_WRITE) ? MMC_DATA_WRITE : scat_req 242 drivers/net/wireless/ath/ath6kl/sdio.c sg = scat_req->sgentries; scat_req 243 drivers/net/wireless/ath/ath6kl/sdio.c sg_init_table(sg, scat_req->scat_entries); scat_req 246 drivers/net/wireless/ath/ath6kl/sdio.c for (i = 0; i < scat_req->scat_entries; i++, sg++) { scat_req 248 drivers/net/wireless/ath/ath6kl/sdio.c i, scat_req->scat_list[i].buf, scat_req 249 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->scat_list[i].len); scat_req 251 drivers/net/wireless/ath/ath6kl/sdio.c sg_set_buf(sg, scat_req->scat_list[i].buf, scat_req 252 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->scat_list[i].len); scat_req 256 drivers/net/wireless/ath/ath6kl/sdio.c data->sg = scat_req->sgentries; scat_req 257 drivers/net/wireless/ath/ath6kl/sdio.c data->sg_len = scat_req->scat_entries; scat_req 266 drivers/net/wireless/ath/ath6kl/sdio.c struct hif_scatter_req *scat_req; scat_req 270 drivers/net/wireless/ath/ath6kl/sdio.c scat_req = req->scat_req; scat_req 272 drivers/net/wireless/ath/ath6kl/sdio.c if (scat_req->virt_scat) { scat_req 273 drivers/net/wireless/ath/ath6kl/sdio.c len = scat_req->len; scat_req 274 drivers/net/wireless/ath/ath6kl/sdio.c if (scat_req->req & HIF_BLOCK_BASIS) scat_req 277 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_io(ar_sdio->func, scat_req->req, scat_req 278 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->addr, scat_req->virt_dma_buf, scat_req 287 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_sdio_setup_scat_data(scat_req, &data); scat_req 289 drivers/net/wireless/ath/ath6kl/sdio.c opcode = (scat_req->req & HIF_FIXED_ADDRESS) ? scat_req 292 drivers/net/wireless/ath/ath6kl/sdio.c rw = (scat_req->req & HIF_WRITE) ? CMD53_ARG_WRITE : CMD53_ARG_READ; scat_req 295 drivers/net/wireless/ath/ath6kl/sdio.c if (scat_req->req & HIF_WRITE) { scat_req 296 drivers/net/wireless/ath/ath6kl/sdio.c if (scat_req->addr == HIF_MBOX_BASE_ADDR) scat_req 297 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->addr += HIF_MBOX_WIDTH - scat_req->len; scat_req 300 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->addr += HIF_MBOX0_EXT_WIDTH - scat_req->len; scat_req 305 drivers/net/wireless/ath/ath6kl/sdio.c CMD53_ARG_BLOCK_BASIS, opcode, scat_req->addr, scat_req 318 drivers/net/wireless/ath/ath6kl/sdio.c trace_ath6kl_sdio_scat(scat_req->addr, scat_req 319 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->req, scat_req 320 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->len, scat_req 321 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->scat_entries, scat_req 322 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->scat_list); scat_req 332 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->status = status; scat_req 334 drivers/net/wireless/ath/ath6kl/sdio.c if (scat_req->status) scat_req 336 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->status); scat_req 338 drivers/net/wireless/ath/ath6kl/sdio.c if (scat_req->req & HIF_ASYNCHRONOUS) scat_req 339 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->complete(ar_sdio->ar->htc_target, scat_req); scat_req 397 drivers/net/wireless/ath/ath6kl/sdio.c bus_req->scat_req = s_req; scat_req 447 drivers/net/wireless/ath/ath6kl/sdio.c if (req->scat_req) { scat_req 646 drivers/net/wireless/ath/ath6kl/sdio.c if (!list_empty(&ar_sdio->scat_req)) { scat_req 647 drivers/net/wireless/ath/ath6kl/sdio.c node = list_first_entry(&ar_sdio->scat_req, scat_req 651 drivers/net/wireless/ath/ath6kl/sdio.c node->scat_q_depth = get_queue_depth(&ar_sdio->scat_req); scat_req 666 drivers/net/wireless/ath/ath6kl/sdio.c list_add_tail(&s_req->list, &ar_sdio->scat_req); scat_req 673 drivers/net/wireless/ath/ath6kl/sdio.c struct hif_scatter_req *scat_req) scat_req 676 drivers/net/wireless/ath/ath6kl/sdio.c u32 request = scat_req->req; scat_req 679 drivers/net/wireless/ath/ath6kl/sdio.c if (!scat_req->len) scat_req 684 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->len, scat_req->scat_entries); scat_req 687 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_scat_rw(ar_sdio, scat_req->busrequest); scat_req 690 drivers/net/wireless/ath/ath6kl/sdio.c list_add_tail(&scat_req->busrequest->list, &ar_sdio->wr_asyncq); scat_req 706 drivers/net/wireless/ath/ath6kl/sdio.c list_for_each_entry_safe(s_req, tmp_req, &ar_sdio->scat_req, list) { scat_req 716 drivers/net/wireless/ath/ath6kl/sdio.c s_req->busrequest->scat_req = NULL; scat_req 1238 drivers/net/wireless/ath/ath6kl/sdio.c if (req->scat_req) { scat_req 1240 drivers/net/wireless/ath/ath6kl/sdio.c req->scat_req->status = -ECANCELED; scat_req 1241 drivers/net/wireless/ath/ath6kl/sdio.c req->scat_req->complete(ar_sdio->ar->htc_target, scat_req 1242 drivers/net/wireless/ath/ath6kl/sdio.c req->scat_req); scat_req 1252 drivers/net/wireless/ath/ath6kl/sdio.c WARN_ON(get_queue_depth(&ar_sdio->scat_req) != 4); scat_req 1341 drivers/net/wireless/ath/ath6kl/sdio.c INIT_LIST_HEAD(&ar_sdio->scat_req);