Wen Gong <wgong@xxxxxxxxxxxxxx> writes: > From: Alagu Sankar <alagusankar@xxxxxxxxxxxxxxx> > > The existing implementation of initiating multiple sdio transfers for > receive bundling is slowing down the receive speed. Combining the > transfers using a bundle method would be ideal. > > The transmission utilization ratio for sdio bus for small packet is > slow, because the space and time cost for sdio bus is same for large > length packet and small length packet. So the speed of data for large > length packet is higher than small length. > > Test result of different length of data: > data packet(byte) cost time(us) calculated rate(Mbps) > 256 28 73 > 512 33 124 > 1024 35 234 > 1792 45 318 > 14336 168 682 > 28672 333 688 > 57344 660 695 > > Tested with QCA6174 SDIO with firmware > WLAN.RMH.4.4.1-00017-QCARMSWPZ-1 > > Signed-off-by: Alagu Sankar <alagusankar@xxxxxxxxxxxxxxx> > Signed-off-by: Wen Gong <wgong@xxxxxxxxxxxxxx> [...] > +static int ath10k_sdio_mbox_rx_fetch_bundle(struct ath10k *ar) > { > struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); > + struct ath10k_sdio_rx_data *pkt; > + struct ath10k_htc_hdr *htc_hdr; > int ret, i; > + u32 pkt_offset, virt_pkt_len; > > + virt_pkt_len = 0; > + for (i = 0; i < ar_sdio->n_rx_pkts; i++) > + virt_pkt_len += ar_sdio->rx_pkts[i].alloc_len; > + > + if (virt_pkt_len > ATH10K_SDIO_VSG_BUF_SIZE) { > + ath10k_err(ar, "size exceeding limit %d\n", virt_pkt_len); > + ret = -E2BIG; > + goto err; > + } This should use ath10k_warn(), fixed in the pending branch. I also improved the log message. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches