[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