After shutdown/restart, ath10k sometimes stops receiving packets
michal.kazior at tieto.com
Fri Jun 13 04:00:12 PDT 2014
On 13 June 2014 11:49, Michal Kazior <michal.kazior at tieto.com> wrote:
> On 13 June 2014 11:37, Avery Pennarun <apenwarr at gmail.com> wrote:
>> On Fri, Jun 13, 2014 at 5:14 AM, Michal Kazior <michal.kazior at tieto.com> wrote:
>>> On 13 June 2014 01:37, Avery Pennarun <apenwarr at gmail.com> wrote:
>>>> - restart hostapd (perhaps on another channel or with different settings)
>>>> After that, an external wifi sniffer can see beacons being transmitted
>>>> by the AP as expected, but all packets from stations trying to connect
>>>> are ignored. In particular, Probe requests are not answered, and Auth
>>>> requests do not even receive a wifi ACK.
>>> This means WMI is working (each beacon is submitted via WMI). This
>>> also implies CE works.
>>> But if there are no ACKs this suggest HW must've been instructed to
>>> ignore frames somehow.
>>> (..) After taking a look I think wmi_vdev_start_request_cmd isn't
>>> really handled properly for 10.x firmware. I'm guessing this ABI issue
>>> might be the problem.
>>> 10.x firmware has:
>>> struct wmi_channel chan;
>>> __le32 vdev_id;
>>> __le32 requestor_id;
>>> __le32 num_noa_descriptors;
>>> __le32 disable_hw_ack;
>>> struct wmi_p2p_noa_descriptor noa_descriptors;
>>> disable_hw_ack overlaps with dtim_period. Perhaps that's the problem.
>>> It's intriguing how this hasn't manifested itself until now..
>> I'm not sure what you mean by overlapping...
> 10.x and main firmware branches have ABI differences. Some structures
> differ. vdev_start is one of them but apparently this wasn't a problem
> for either firmware so far.
> The 10th dword (dword=32bit word) is disable_hw_ack for 10.x while for
> main branch it is dtim_period.
>From the looks of it disable_hw_ack is ignored by 10.x firmware anyway
so this is most likely not the source of your problem.
So this brings me back to the question whether your device goes
through reset cycle when you restart hostapd. It might be that the
chip gets into a confused state and needs a reset. Or maybe warm reset
is not sufficient and rmmod-insmod triggers cold reset.
More information about the ath10k