[PATCH] wcn36xx: Fix software-driven scan

Bryan O'Donoghue bryan.odonoghue at linaro.org
Wed Aug 19 06:52:34 EDT 2020


On 19/08/2020 09:15, Loic Poulain wrote:
> Hi Bryan,
> 
> On Tue, 18 Aug 2020 at 20:00, Bryan O'Donoghue
> <pure.logic at nexus-software.ie> wrote:
>>
>> 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
> 
> 
> The software scan is driven by mac80211 which interleaves channels scanning
> with the regular data operations. In worst case, it scans during 111ms on the
> channel and switches back to the operating channel for 200ms.
> So, with 35 channels to scan that would take about 11 seconds to complete...
> So yes, it's quite slow...

Yes looks a scheduling thing in mac80211.

> However, one remaining
> thing to try would be to send an update-channel-list command to the
> firmware before each offload scan (cf UPDATE_CHANNEL_LIST_REQ
> in the downstream driver). That's not something I've tried yet.

I've tried

1. Setting the operating frequency to a 5ghz band before the scan
2. Updating the channel list with 2g/5g channels via UPDATE_CHANNEL_LIST_REQ
3. Updating the channel list with 5g only with UPDATE_CHANNEL_LIST_REQ
4. Doing 5g channels only in the channel list of 
WCN36XX_HAL_START_SCAN_OFFLOAD_REQ

I don't think the channel list matters, if I recall rightly I've also 
tried leaving out the channel list in WCN36XX_HAL_START_SCAN_OFFLOAD_REQ 
and get back the same set of channels in the result

I guess we should take this patch anyway, since it makes wcn36xx and 
mac80211 agree on ownership of the antenna...

---
bod



More information about the wcn36xx mailing list