[PATCH v5] ath10k: set MAC timestamp in management Rx frame
Michal Kazior
michal.kazior at tieto.com
Mon Feb 29 10:33:57 PST 2016
On 26 February 2016 at 20:03, Peter Oh <poh at qca.qualcomm.com> wrote:
> Check and set Rx MAC timestamp when firmware indicates it.
> Firmware adds it in Rx beacon frame only at this moment.
> Driver and mac80211 may utilize it to detect such clockdrift
> or beacon collision and use the result for beacon collision
> avoidance.
>
> Signed-off-by: Peter Oh <poh at qca.qualcomm.com>
> ---
[...]
> + if (rx_status & WMI_RX_STATUS_EXT_INFO) {
> + status->mactime =
> + __le32_to_cpu(arg.ext_info.rx_mac_timestamp_l32) |
> + (u64)__le32_to_cpu(arg.ext_info.rx_mac_timestamp_u32)
> + << 32;
> + status->flag |= RX_FLAG_MACTIME_END;
> + }
> /* Hardware can Rx CCK rates on 5GHz. In that case phy_mode is set to
> * MODE_11B. This means phy_mode is not a reliable source for the band
> * of mgmt rx.
> diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
> index 4d3cbc4..f209d51 100644
> --- a/drivers/net/wireless/ath/ath10k/wmi.h
> +++ b/drivers/net/wireless/ath/ath10k/wmi.h
> @@ -3037,11 +3037,18 @@ struct wmi_10_4_mgmt_rx_event {
> u8 buf[0];
> } __packed;
>
> +struct wmi_mgmt_rx_ext_info {
> + __le32 rx_mac_timestamp_l32;
> + __le32 rx_mac_timestamp_u32;
Oh.. I feel bad for noticing this so late. I think this can be
represented with a mere __le64 and then accessed via le64_to_cpu().
Michał
More information about the ath10k
mailing list