ath10k: add a_sle32_to_cpu()
authorKalle Valo <kvalo@qca.qualcomm.com>
Mon, 5 Oct 2015 14:56:37 +0000 (17:56 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 6 Oct 2015 11:42:51 +0000 (14:42 +0300)
Copy a_sle32_to_cpu() from ath6kl so that we can easily handle signed __le32
values. This is needed in struct wmi_pdev_tpc_config_event.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/wmi.h

index 3e5a1591f772e98981ba823ccbee33ef5ab69a25..1e8f55d29d2c4c81168d0fb75e76c200fc392ce2 100644 (file)
@@ -73,6 +73,25 @@ struct wmi_cmd_hdr {
 #define HTC_PROTOCOL_VERSION    0x0002
 #define WMI_PROTOCOL_VERSION    0x0002
 
 #define HTC_PROTOCOL_VERSION    0x0002
 #define WMI_PROTOCOL_VERSION    0x0002
 
+/*
+ * There is no signed version of __le32, so for a temporary solution come
+ * up with our own version. The idea is from fs/ntfs/types.h.
+ *
+ * Use a_ prefix so that it doesn't conflict if we get proper support to
+ * linux/types.h.
+ */
+typedef __s32 __bitwise a_sle32;
+
+static inline a_sle32 a_cpu_to_sle32(s32 val)
+{
+       return (__force a_sle32)cpu_to_le32(val);
+}
+
+static inline s32 a_sle32_to_cpu(a_sle32 val)
+{
+       return le32_to_cpu((__force __le32)val);
+}
+
 enum wmi_service {
        WMI_SERVICE_BEACON_OFFLOAD = 0,
        WMI_SERVICE_SCAN_OFFLOAD,
 enum wmi_service {
        WMI_SERVICE_BEACON_OFFLOAD = 0,
        WMI_SERVICE_SCAN_OFFLOAD,
@@ -3657,7 +3676,7 @@ struct wmi_pdev_tpc_config_event {
        __le32 phy_mode;
        __le32 twice_antenna_reduction;
        __le32 twice_max_rd_power;
        __le32 phy_mode;
        __le32 twice_antenna_reduction;
        __le32 twice_max_rd_power;
-       s32 twice_antenna_gain;
+       a_sle32 twice_antenna_gain;
        __le32 power_limit;
        __le32 rate_max;
        __le32 num_tx_chain;
        __le32 power_limit;
        __le32 rate_max;
        __le32 num_tx_chain;