On 20/03/2022 13:21, Bryan O'Donoghue wrote:
On 18/03/2022 19:58, Edmond Gagnon wrote:
+ INIT_DELAYED_WORK(&wcn->get_stats_work, wcn36xx_get_stats_work);
Instead of forking a worker and polling we could add the relevant SMD
command to
static int wcn36xx_smd_tx_compl_ind(struct wcn36xx *wcn, void *buf,
size_t len)
{
wcn36xx_smd_get_stats(wcn, 0xSomeMask);
}
That way we only ever ask for and report a new TX data rate when we know
a TX event - and hence a potential TX data-rate update - has taken place.
---
bod
Thinking a bit more
- Do the SMD get_stats in the tx completion
This might be a problem initiating another SMD transaction inside
of an SMD callback. But is the most straight forward way to
get the data while avoiding alot of needless polling.
- Schedule your worker from the TX completion
Again you should only care about gathering the data when you know
something has happened which necessitates gathering that data
like TX completion
- Schedule your worker from the RX indication routine
Seems not as logical as the first two but it might be easier
to schedule the worker in the RX data handler
Either way, I do think you should only gather this data on an event, not
as a continuous poll.
---
bod