ath10k: increase relay buffer size of spectral scan
authorPeter Oh <poh@qca.qualcomm.com>
Mon, 4 May 2015 18:21:24 +0000 (11:21 -0700)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 11 May 2015 14:50:42 +0000 (17:50 +0300)
Spectral scan supported by ath10k has capability to monitor and report
through whole bands and channels, but current buffer size is too small
to save reported spectral scan data.
This results in dropping 5G channel reports at all when dual band card
is used, so that users are not able to analyze spectral environments.
Hence increase the buffer size to fix the problem.

A spectral data size is vary based on the number of bins, so the unit
buffer size, 1140, is chose to minimize relay buffer fragmentation.

The total buffer size is also chose in tradeoff with spectral scan
support vs. kernel memory consumption.
Since theoretical maximum buffer size, 9.5MB, can be consumed with
512 bins in dual bands, we target to cover up to 128 bins for all
channels in dual bands and due to the buffer size limitation,
spectral scan with bin number bigger than 128 needs to be run on
single band each.

Signed-off-by: Peter Oh <poh@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/spectral.c

index d22addf6118b832501647c07c39cb56338542bc9..8dcd424aa5029965ffa5d2a2fb07067e9a54ce61 100644 (file)
@@ -519,9 +519,12 @@ int ath10k_spectral_vif_stop(struct ath10k_vif *arvif)
 
 int ath10k_spectral_create(struct ath10k *ar)
 {
+       /* The buffer size covers whole channels in dual bands up to 128 bins.
+        * Scan with bigger than 128 bins needs to be run on single band each.
+        */
        ar->spectral.rfs_chan_spec_scan = relay_open("spectral_scan",
                                                     ar->debug.debugfs_phy,
-                                                    1024, 256,
+                                                    1140, 2500,
                                                     &rfs_spec_scan_cb, NULL);
        debugfs_create_file("spectral_scan_ctl",
                            S_IRUSR | S_IWUSR,