/* total length of entire transfer */
u32 len;
+ bool virt_scat;
+
void (*complete) (struct htc_target *, struct hif_scatter_req *);
int status;
int scat_entries;
struct hif_dev_scat_sup_info {
int max_scat_entries;
int max_xfer_szper_scatreq;
- bool virt_scat;
};
struct ath6kl_hif_ops {
scat_req->addr, !read ? "async" : "sync",
(read) ? "rd" : "wr");
- if (!read && dev->hif_scat_info.virt_scat)
+ if (!read && scat_req->virt_scat)
status = ath6kldev_cp_scat_dma_buf(scat_req, false);
if (status) {
return status;
}
- if (dev->hif_scat_info.virt_scat)
+ if (scat_req->virt_scat)
status = ath6kldev_rw_scatter(dev->ar, scat_req);
else
status = ath6kl_hif_scat_req_rw(dev->ar, scat_req);
if (read) {
/* in sync mode, we can touch the scatter request */
scat_req->status = status;
- if (!status && dev->hif_scat_info.virt_scat)
+ if (!status && scat_req->virt_scat)
scat_req->status =
ath6kldev_cp_scat_dma_buf(scat_req, true);
}
bus_req->scat_req = s_req;
s_req->busrequest = bus_req;
+ s_req->virt_scat = virt_scat;
+
/* add it to the scatter pool */
hif_scatter_req_add(ar_sdio->ar, s_req);
}
ATH6KL_MAX_TRANSFER_SIZE_PER_SCATTER;
}
- pinfo->virt_scat = virt_scat;
-
return 0;
}