[PATCH] wcn36xx: Fix software-driven scan

Bryan O'Donoghue pure.logic at nexus-software.ie
Tue Aug 18 14:01:19 EDT 2020


On 18/08/2020 14:34, Loic Poulain wrote:
> On Tue, 18 Aug 2020 at 08:15, Kalle Valo <kvalo at codeaurora.org> wrote:
>>
>> Loic Poulain <loic.poulain at linaro.org> writes:
>>
>>> For software-driven scan, rely on mac80211 software scan instead
>>> of internal driver implementation. The internal implementation
>>> cause connection trouble since it keep the antenna busy during
>>> the entire scan duration, moreover it's only a passive scanning
>>> (no probe request). Therefore, let mac80211 manages sw scan.
>>>
>>> Note: we fallback to software scan if firmware does not report
>>> scan offload support or if we need to scan the 5Ghz band (currently
>>> not supported by the offload scan...).
>>>
>>> Signed-off-by: Loic Poulain <loic.poulain at linaro.org>
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue at linaro.org>
>>
>> What changed since v2? Please always include a changelog so that I don't
>> need to guess what you have changed in the patch. No need to resend, a
>> reply is enough.
> 
> Yes sorry, this patch has been rebased on ath master and squashed with
> Bryan's fix:
>       wcn36xx: Set sw-scan chan to 0 when not associated
> No additional changes have been made on top of the initial patches.
> 
> Regards,
> Loic
> 

This is excruciatingly slow on Android.

Android I'm finding unlike Debian where this stuff was tested, merrily 
issues scan requests every 30 seconds.

For me this ends up looking like this

[  162.296995] wcn36xx: mac config changed 0x00000040
[  162.297001] wcn36xx: wcn36xx_config channel switch=1
[  162.297005] wcn36xx: hal init scan mode 2
[  162.300011] wcn36xx: indication arrived
[  162.300525] wcn36xx: SMD command (req 4, rsp 5) completed in 4ms
[  162.300529] wcn36xx: hal start scan channel 1
[  162.306930] wcn36xx: SMD command (req 6, rsp 7) completed in 4ms

Big gap here

[  162.368198] wcn36xx: mac config changed 0x00000040
[  162.368205] wcn36xx: wcn36xx_config channel switch=40
[  162.368209] wcn36xx: hal finish scan mode 2
[  162.379085] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  162.382218] wcn36xx: indication arrived
[  162.583396] wcn36xx: indication arrived
[  162.684336] wcn36xx: mac config changed 0x00000040
[  162.684344] wcn36xx: wcn36xx_config channel switch=2
[  162.684348] wcn36xx: hal init scan mode 2
[  162.687547] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  162.687552] wcn36xx: hal start scan channel 2
[  162.693935] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  162.756359] wcn36xx: mac config changed 0x00000040
[  162.756367] wcn36xx: wcn36xx_config channel switch=40
[  162.756371] wcn36xx: hal finish scan mode 2
[  162.767361] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  162.770445] wcn36xx: indication arrived
[  162.971533] wcn36xx: indication arrived
[  163.072318] wcn36xx: mac config changed 0x00000040
[  163.072325] wcn36xx: wcn36xx_config channel switch=3
[  163.072329] wcn36xx: hal init scan mode 2
[  163.075449] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  163.075453] wcn36xx: hal start scan channel 3
[  163.081648] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  163.144202] wcn36xx: mac config changed 0x00000040
[  163.144210] wcn36xx: wcn36xx_config channel switch=40
[  163.144214] wcn36xx: hal finish scan mode 2
[  163.155103] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  163.158219] wcn36xx: indication arrived
[  163.359477] wcn36xx: indication arrived
[  163.460428] wcn36xx: mac config changed 0x00000040
[  163.460435] wcn36xx: wcn36xx_config channel switch=4
[  163.460439] wcn36xx: hal init scan mode 2
[  163.463572] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  163.463576] wcn36xx: hal start scan channel 4
[  163.469851] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  163.532373] wcn36xx: mac config changed 0x00000040
[  163.532381] wcn36xx: wcn36xx_config channel switch=40
[  163.532384] wcn36xx: hal finish scan mode 2
[  163.543736] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  163.546987] wcn36xx: indication arrived
[  163.747577] wcn36xx: indication arrived
[  163.848431] wcn36xx: mac config changed 0x00000040
[  163.848439] wcn36xx: wcn36xx_config channel switch=5
[  163.848442] wcn36xx: hal init scan mode 2
[  163.851668] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  163.851672] wcn36xx: hal start scan channel 5
[  163.857929] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  163.920386] wcn36xx: mac config changed 0x00000040
[  163.920394] wcn36xx: wcn36xx_config channel switch=40
[  163.920398] wcn36xx: hal finish scan mode 2
[  163.931279] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  163.934460] wcn36xx: indication arrived
[  164.135411] wcn36xx: indication arrived
[  164.236376] wcn36xx: mac config changed 0x00000040
[  164.236383] wcn36xx: wcn36xx_config channel switch=6
[  164.236387] wcn36xx: hal init scan mode 2
[  164.239669] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  164.239673] wcn36xx: hal start scan channel 6
[  164.245868] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  164.308339] wcn36xx: mac config changed 0x00000040
[  164.308347] wcn36xx: wcn36xx_config channel switch=40
[  164.308351] wcn36xx: hal finish scan mode 2
[  164.319240] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  164.322405] wcn36xx: indication arrived
[  164.523510] wcn36xx: indication arrived
[  164.624238] wcn36xx: mac config changed 0x00000040
[  164.624245] wcn36xx: wcn36xx_config channel switch=7
[  164.624249] wcn36xx: hal init scan mode 2
[  164.627352] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  164.627356] wcn36xx: hal start scan channel 7
[  164.633425] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  164.696365] wcn36xx: mac config changed 0x00000040
[  164.696374] wcn36xx: wcn36xx_config channel switch=40
[  164.696378] wcn36xx: hal finish scan mode 2
[  164.707355] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  164.710683] wcn36xx: indication arrived
[  164.911285] wcn36xx: indication arrived
[  165.012228] wcn36xx: mac config changed 0x00000040
[  165.012236] wcn36xx: wcn36xx_config channel switch=8
[  165.012240] wcn36xx: hal init scan mode 2
[  165.015434] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  165.015439] wcn36xx: hal start scan channel 8
[  165.021509] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  165.084204] wcn36xx: mac config changed 0x00000040
[  165.084212] wcn36xx: wcn36xx_config channel switch=40
[  165.084217] wcn36xx: hal finish scan mode 2
[  165.095164] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  165.098269] wcn36xx: indication arrived
[  165.299691] wcn36xx: indication arrived
[  165.400304] wcn36xx: mac config changed 0x00000040
[  165.400309] wcn36xx: wcn36xx_config channel switch=9
[  165.400313] wcn36xx: hal init scan mode 2
[  165.403424] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  165.403428] wcn36xx: hal start scan channel 9
[  165.409695] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  165.472378] wcn36xx: mac config changed 0x00000040
[  165.472386] wcn36xx: wcn36xx_config channel switch=40
[  165.472390] wcn36xx: hal finish scan mode 2
[  165.483390] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  165.486478] wcn36xx: indication arrived
[  165.687641] wcn36xx: indication arrived
[  165.788548] wcn36xx: mac config changed 0x00000040
[  165.788556] wcn36xx: wcn36xx_config channel switch=10
[  165.788561] wcn36xx: hal init scan mode 2
[  165.791729] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  165.791734] wcn36xx: hal start scan channel 10
[  165.797986] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  165.860337] wcn36xx: mac config changed 0x00000040
[  165.860346] wcn36xx: wcn36xx_config channel switch=40
[  165.860349] wcn36xx: hal finish scan mode 2
[  165.871185] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  165.874560] wcn36xx: indication arrived
[  166.075631] wcn36xx: indication arrived
[  166.176336] wcn36xx: mac config changed 0x00000040
[  166.176344] wcn36xx: wcn36xx_config channel switch=11
[  166.176348] wcn36xx: hal init scan mode 2
[  166.179753] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  166.179758] wcn36xx: hal start scan channel 11
[  166.186033] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  166.248204] wcn36xx: mac config changed 0x00000040
[  166.248211] wcn36xx: wcn36xx_config channel switch=40
[  166.248216] wcn36xx: hal finish scan mode 2
[  166.259127] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  166.262339] wcn36xx: indication arrived
[  166.463387] wcn36xx: indication arrived
[  166.564353] wcn36xx: mac config changed 0x00000040
[  166.564362] wcn36xx: wcn36xx_config channel switch=12
[  166.564366] wcn36xx: hal init scan mode 2
[  166.567517] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  166.567522] wcn36xx: hal start scan channel 12
[  166.573823] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  166.684383] wcn36xx: mac config changed 0x00000040
[  166.684390] wcn36xx: wcn36xx_config channel switch=40
[  166.684394] wcn36xx: hal finish scan mode 2
[  166.695665] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  166.698857] wcn36xx: indication arrived
[  166.899623] wcn36xx: indication arrived
[  167.000265] wcn36xx: mac config changed 0x00000040
[  167.000273] wcn36xx: wcn36xx_config channel switch=13
[  167.000277] wcn36xx: hal init scan mode 2
[  167.003459] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  167.003463] wcn36xx: hal start scan channel 13
[  167.009787] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  167.120339] wcn36xx: mac config changed 0x00000040
[  167.120348] wcn36xx: wcn36xx_config channel switch=40
[  167.120351] wcn36xx: hal finish scan mode 2
[  167.131208] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  167.134376] wcn36xx: indication arrived
[  167.335469] wcn36xx: indication arrived
[  167.436335] wcn36xx: mac config changed 0x00000040
[  167.436343] wcn36xx: wcn36xx_config channel switch=14
[  167.436347] wcn36xx: hal init scan mode 2
[  167.439492] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  167.439497] wcn36xx: hal start scan channel 14
[  167.446075] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  167.556358] wcn36xx: mac config changed 0x00000040
[  167.556367] wcn36xx: wcn36xx_config channel switch=40
[  167.556372] wcn36xx: hal finish scan mode 2
[  167.567787] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  167.570712] wcn36xx: indication arrived
[  167.771184] wcn36xx: indication arrived
[  167.872093] wcn36xx: mac config changed 0x00000040
[  167.872104] wcn36xx: wcn36xx_config channel switch=36
[  167.872110] wcn36xx: hal init scan mode 2
[  167.875463] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  167.875469] wcn36xx: hal start scan channel 36
[  167.880887] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  167.944229] wcn36xx: mac config changed 0x00000040
[  167.944238] wcn36xx: wcn36xx_config channel switch=40
[  167.944243] wcn36xx: hal finish scan mode 2
[  167.953262] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  167.956751] wcn36xx: indication arrived
[  168.159485] wcn36xx: indication arrived
[  168.260233] wcn36xx: mac config changed 0x00000040
[  168.260243] wcn36xx: wcn36xx_config channel switch=40
[  168.260248] wcn36xx: hal finish scan mode 2
[  168.268055] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  168.332250] wcn36xx: mac config changed 0x00000040
[  168.332259] wcn36xx: wcn36xx_config channel switch=40
[  168.332264] wcn36xx: hal finish scan mode 2
[  168.340018] wcn36xx: SMD command (req 10, rsp 11) completed in 4ms
[  168.343231] wcn36xx: indication arrived
[  168.547404] wcn36xx: indication arrived
[  168.652662] wcn36xx: mac config changed 0x00000040
[  168.652666] wcn36xx: wcn36xx_config channel switch=44
[  168.652670] wcn36xx: hal init scan mode 2
[  168.655732] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  168.655736] wcn36xx: hal start scan channel 44
[  168.660968] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  168.772327] wcn36xx: mac config changed 0x00000040
[  168.772334] wcn36xx: wcn36xx_config channel switch=40
[  168.772338] wcn36xx: hal finish scan mode 2
[  168.781369] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  168.784371] wcn36xx: indication arrived
[  168.987575] wcn36xx: indication arrived
[  169.088390] wcn36xx: mac config changed 0x00000040
[  169.088398] wcn36xx: wcn36xx_config channel switch=48
[  169.088402] wcn36xx: hal init scan mode 2
[  169.091527] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  169.091532] wcn36xx: hal start scan channel 48
[  169.097022] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  169.208455] wcn36xx: mac config changed 0x00000040
[  169.208463] wcn36xx: wcn36xx_config channel switch=40
[  169.208467] wcn36xx: hal finish scan mode 2
[  169.218407] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  169.221568] wcn36xx: indication arrived
[  169.423420] wcn36xx: indication arrived
[  169.524402] wcn36xx: mac config changed 0x00000040
[  169.524409] wcn36xx: wcn36xx_config channel switch=52
[  169.524413] wcn36xx: hal init scan mode 2
[  169.527559] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  169.527563] wcn36xx: hal start scan channel 52
[  169.532973] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  169.644216] wcn36xx: mac config changed 0x00000040
[  169.644223] wcn36xx: wcn36xx_config channel switch=40
[  169.644227] wcn36xx: hal finish scan mode 2
[  169.653367] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  169.656579] wcn36xx: indication arrived
[  169.859998] wcn36xx: indication arrived
[  169.960478] wcn36xx: mac config changed 0x00000040
[  169.960489] wcn36xx: wcn36xx_config channel switch=56
[  169.960494] wcn36xx: hal init scan mode 2
[  169.963757] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  169.963762] wcn36xx: hal start scan channel 56
[  169.969107] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  170.080126] wcn36xx: mac config changed 0x00000040
[  170.080136] wcn36xx: wcn36xx_config channel switch=40
[  170.080141] wcn36xx: hal finish scan mode 2
[  170.089183] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  170.092346] wcn36xx: indication arrived
[  170.295765] wcn36xx: indication arrived
[  170.396072] wcn36xx: mac config changed 0x00000040
[  170.396079] wcn36xx: wcn36xx_config channel switch=60
[  170.396083] wcn36xx: hal init scan mode 2
[  170.399139] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  170.399144] wcn36xx: hal start scan channel 60
[  170.404547] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  170.516260] wcn36xx: mac config changed 0x00000040
[  170.516268] wcn36xx: wcn36xx_config channel switch=40
[  170.516272] wcn36xx: hal finish scan mode 2
[  170.525323] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  170.528989] wcn36xx: indication arrived
[  170.731306] wcn36xx: indication arrived
[  170.832258] wcn36xx: mac config changed 0x00000040
[  170.832266] wcn36xx: wcn36xx_config channel switch=64
[  170.832270] wcn36xx: hal init scan mode 2
[  170.835453] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  170.835457] wcn36xx: hal start scan channel 64
[  170.840746] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  170.952490] wcn36xx: mac config changed 0x00000040
[  170.952497] wcn36xx: wcn36xx_config channel switch=40
[  170.952501] wcn36xx: hal finish scan mode 2
[  170.961563] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  170.964663] wcn36xx: indication arrived
[  171.167256] wcn36xx: indication arrived
[  171.268465] wcn36xx: mac config changed 0x00000040
[  171.268474] wcn36xx: wcn36xx_config channel switch=100
[  171.268478] wcn36xx: hal init scan mode 2
[  171.271622] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  171.271626] wcn36xx: hal start scan channel 100
[  171.277068] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  171.388309] wcn36xx: mac config changed 0x00000040
[  171.388316] wcn36xx: wcn36xx_config channel switch=40
[  171.388320] wcn36xx: hal finish scan mode 2
[  171.397462] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  171.400449] wcn36xx: indication arrived
[  171.603380] wcn36xx: indication arrived
[  171.704307] wcn36xx: mac config changed 0x00000040
[  171.704315] wcn36xx: wcn36xx_config channel switch=104
[  171.704318] wcn36xx: hal init scan mode 2
[  171.707472] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  171.707476] wcn36xx: hal start scan channel 104
[  171.712907] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  171.824322] wcn36xx: mac config changed 0x00000040
[  171.824330] wcn36xx: wcn36xx_config channel switch=40
[  171.824334] wcn36xx: hal finish scan mode 2
[  171.833404] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  171.836577] wcn36xx: indication arrived
[  172.039628] wcn36xx: indication arrived
[  172.140321] wcn36xx: mac config changed 0x00000040
[  172.140329] wcn36xx: wcn36xx_config channel switch=108
[  172.140333] wcn36xx: hal init scan mode 2
[  172.143442] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  172.143447] wcn36xx: hal start scan channel 108
[  172.149071] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  172.260211] wcn36xx: mac config changed 0x00000040
[  172.260219] wcn36xx: wcn36xx_config channel switch=40
[  172.260222] wcn36xx: hal finish scan mode 2
[  172.269482] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  172.272333] wcn36xx: indication arrived
[  172.475588] wcn36xx: indication arrived
[  172.576210] wcn36xx: mac config changed 0x00000040
[  172.576217] wcn36xx: wcn36xx_config channel switch=112
[  172.576221] wcn36xx: hal init scan mode 2
[  172.579357] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  172.579362] wcn36xx: hal start scan channel 112
[  172.584763] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  172.696318] wcn36xx: mac config changed 0x00000040
[  172.696325] wcn36xx: wcn36xx_config channel switch=40
[  172.696329] wcn36xx: hal finish scan mode 2
[  172.705421] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  172.708542] wcn36xx: indication arrived
[  172.911501] wcn36xx: indication arrived
[  173.012248] wcn36xx: mac config changed 0x00000040
[  173.012255] wcn36xx: wcn36xx_config channel switch=116
[  173.012259] wcn36xx: hal init scan mode 2
[  173.015521] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  173.015532] wcn36xx: hal start scan channel 116
[  173.020870] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  173.132338] wcn36xx: mac config changed 0x00000040
[  173.132346] wcn36xx: wcn36xx_config channel switch=40
[  173.132350] wcn36xx: hal finish scan mode 2
[  173.141388] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  173.144426] wcn36xx: indication arrived
[  173.347588] wcn36xx: indication arrived
[  173.448338] wcn36xx: mac config changed 0x00000040
[  173.448347] wcn36xx: wcn36xx_config channel switch=120
[  173.448350] wcn36xx: hal init scan mode 2
[  173.451499] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  173.451503] wcn36xx: hal start scan channel 120
[  173.456889] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  173.568336] wcn36xx: mac config changed 0x00000040
[  173.568344] wcn36xx: wcn36xx_config channel switch=40
[  173.568348] wcn36xx: hal finish scan mode 2
[  173.577465] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  173.580602] wcn36xx: indication arrived
[  173.783414] wcn36xx: indication arrived
[  173.884494] wcn36xx: mac config changed 0x00000040
[  173.884504] wcn36xx: wcn36xx_config channel switch=124
[  173.884508] wcn36xx: hal init scan mode 2
[  173.887627] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  173.887633] wcn36xx: hal start scan channel 124
[  173.892978] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  174.004293] wcn36xx: mac config changed 0x00000040
[  174.004303] wcn36xx: wcn36xx_config channel switch=40
[  174.004308] wcn36xx: hal finish scan mode 2
[  174.013188] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  174.017060] wcn36xx: indication arrived
[  174.219812] wcn36xx: indication arrived
[  174.320551] wcn36xx: mac config changed 0x00000040
[  174.320559] wcn36xx: wcn36xx_config channel switch=128
[  174.320563] wcn36xx: hal init scan mode 2
[  174.324192] wcn36xx: SMD command (req 4, rsp 5) completed in 4ms
[  174.324197] wcn36xx: hal start scan channel 128
[  174.329545] wcn36xx: SMD command (req 6, rsp 7) completed in 4ms
[  174.440367] wcn36xx: mac config changed 0x00000040
[  174.440374] wcn36xx: wcn36xx_config channel switch=40
[  174.440378] wcn36xx: hal finish scan mode 2
[  174.449705] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  174.452983] wcn36xx: indication arrived
[  174.655452] wcn36xx: indication arrived
[  174.756428] wcn36xx: mac config changed 0x00000040
[  174.756438] wcn36xx: wcn36xx_config channel switch=132
[  174.756443] wcn36xx: hal init scan mode 2
[  174.759554] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  174.759560] wcn36xx: hal start scan channel 132
[  174.764959] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  174.876237] wcn36xx: mac config changed 0x00000040
[  174.876245] wcn36xx: wcn36xx_config channel switch=40
[  174.876250] wcn36xx: hal finish scan mode 2
[  174.885310] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  174.888341] wcn36xx: indication arrived
[  175.091324] wcn36xx: indication arrived
[  175.192423] wcn36xx: mac config changed 0x00000040
[  175.192430] wcn36xx: wcn36xx_config channel switch=140
[  175.192433] wcn36xx: hal init scan mode 2
[  175.195530] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  175.195534] wcn36xx: hal start scan channel 140
[  175.200805] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  175.312321] wcn36xx: mac config changed 0x00000040
[  175.312329] wcn36xx: wcn36xx_config channel switch=40
[  175.312333] wcn36xx: hal finish scan mode 2
[  175.321295] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  175.324800] wcn36xx: indication arrived
[  175.527611] wcn36xx: indication arrived
[  175.628313] wcn36xx: mac config changed 0x00000040
[  175.628320] wcn36xx: wcn36xx_config channel switch=149
[  175.628324] wcn36xx: hal init scan mode 2
[  175.631414] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  175.631419] wcn36xx: hal start scan channel 149
[  175.636846] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  175.748358] wcn36xx: mac config changed 0x00000040
[  175.748367] wcn36xx: wcn36xx_config channel switch=40
[  175.748371] wcn36xx: hal finish scan mode 2
[  175.758146] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  175.761536] wcn36xx: indication arrived
[  175.963887] wcn36xx: indication arrived
[  176.064314] wcn36xx: mac config changed 0x00000040
[  176.064322] wcn36xx: wcn36xx_config channel switch=153
[  176.064326] wcn36xx: hal init scan mode 2
[  176.067659] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  176.067663] wcn36xx: hal start scan channel 153
[  176.072911] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  176.184091] wcn36xx: mac config changed 0x00000040
[  176.184099] wcn36xx: wcn36xx_config channel switch=40
[  176.184104] wcn36xx: hal finish scan mode 2
[  176.193195] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  176.196177] wcn36xx: indication arrived
[  176.399382] wcn36xx: indication arrived
[  176.500288] wcn36xx: mac config changed 0x00000040
[  176.500295] wcn36xx: wcn36xx_config channel switch=157
[  176.500299] wcn36xx: hal init scan mode 2
[  176.503417] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  176.503421] wcn36xx: hal start scan channel 157
[  176.508762] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  176.620389] wcn36xx: mac config changed 0x00000040
[  176.620396] wcn36xx: wcn36xx_config channel switch=40
[  176.620400] wcn36xx: hal finish scan mode 2
[  176.629516] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  176.632609] wcn36xx: indication arrived
[  176.835319] wcn36xx: indication arrived
[  176.936427] wcn36xx: mac config changed 0x00000040
[  176.936435] wcn36xx: wcn36xx_config channel switch=161
[  176.936440] wcn36xx: hal init scan mode 2
[  176.939590] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  176.939595] wcn36xx: hal start scan channel 161
[  176.945005] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  177.056380] wcn36xx: mac config changed 0x00000040
[  177.056388] wcn36xx: wcn36xx_config channel switch=40
[  177.056392] wcn36xx: hal finish scan mode 2
[  177.065466] wcn36xx: SMD command (req 10, rsp 11) completed in 8ms
[  177.068489] wcn36xx: indication arrived
[  177.271739] wcn36xx: indication arrived
[  177.372381] wcn36xx: mac config changed 0x00000040
[  177.372389] wcn36xx: wcn36xx_config channel switch=165
[  177.372393] wcn36xx: hal init scan mode 2
[  177.375538] wcn36xx: SMD command (req 4, rsp 5) completed in 0ms
[  177.375543] wcn36xx: hal start scan channel 165
[  177.380982] wcn36xx: SMD command (req 6, rsp 7) completed in 8ms
[  177.492402] wcn36xx: mac config changed 0x00000040
[  177.492409] wcn36xx: wcn36xx_config channel switch=40
[  177.492413] wcn36xx: hal finish scan mode 2

Basically it takes 15 seconds to complete.

Interleaved scan seems very slow and is IMO unusable on Android

After this change - on Android with scan interleaving

console:/ # iperf3 -c 192.168.50.167 -i 1 -t 320 

Connecting to host 192.168.50.167, port 5201
[  5] local 192.168.50.244 port 33132 connected to 192.168.50.167 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.09 MBytes  9.15 Mbits/sec    0   79.2 KBytes 

[  5]   1.00-2.00   sec   954 KBytes  7.82 Mbits/sec    0    116 KBytes 

[  5]   2.00-3.00   sec   891 KBytes  7.30 Mbits/sec    0    158 KBytes 

[  5]   3.00-4.00   sec   764 KBytes  6.25 Mbits/sec    0    199 KBytes 

[  5]   4.00-5.00   sec   764 KBytes  6.26 Mbits/sec    0    219 KBytes 

^C[  5]   5.00-5.09   sec   382 KBytes  33.8 Mbits/sec    0    221 
KBytes

Before this change - with Android issuing periodic scans on the same 30 
second cadence.

console:/ # iperf3 -c 192.168.50.167 -i 1 -t 320 

Connecting to host 192.168.50.167, port 5201
[  5] local 192.168.50.244 port 54378 connected to 192.168.50.167 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  4.57 MBytes  38.3 Mbits/sec    2    148 KBytes 

[  5]   1.00-2.00   sec  14.2 MBytes   119 Mbits/sec    1    164 KBytes 

[  5]   2.00-3.00   sec  14.9 MBytes   125 Mbits/sec    2    173 KBytes 

[  5]   3.00-4.00   sec  14.7 MBytes   124 Mbits/sec    2    133 KBytes 

[  5]   4.00-5.00   sec  15.0 MBytes   126 Mbits/sec    1    148 KBytes 

[  5]   5.00-6.00   sec  14.8 MBytes   124 Mbits/sec    5    164 KBytes 

[  5]   6.00-7.00   sec  15.1 MBytes   127 Mbits/sec    1    178 KBytes 

^C[  5]   7.00-7.39   sec  5.72 MBytes   124 Mbits/sec    2    147 KBytes

I wasn't seeing this on Debian because wpa_supplicant on my test system 
doesn't behave this way.

I wonder would we be better off trying to serialize txrx::*tx with the 
old scan method ?

Accepted it would be a passive scan but sw_scan seems to be so very very 
slow - we might be beter off.

---
bod



More information about the wcn36xx mailing list