wifi: ath12k: fix missing endianness conversion in wmi_vdev_create_cmd()
authorMiaoqing Pan <quic_miaoqing@quicinc.com>
Thu, 4 Apr 2024 06:35:58 +0000 (09:35 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Thu, 4 Apr 2024 10:08:10 +0000 (13:08 +0300)
The WMI commands are in little endian byte order, fix missing endianness
conversion in wmi_vdev_create_cmd.

Tested-on: WCN7850 hw2.0 WLAN.IOE_HMT.1.0.2-00240-QCAHMTSWPL_V1.0_V2.0_SILICON-1

Signed-off-by: Miaoqing Pan <quic_miaoqing@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240322003726.2016208-1-quic_miaoqing@quicinc.com
drivers/net/wireless/ath/ath12k/wmi.c
drivers/net/wireless/ath/ath12k/wmi.h

index 34de3d16efc091371174273ae0b2d8feaa5cb18e..a5575ce9eed4f1bc84f3ce19b6738540ba84a6fc 100644 (file)
@@ -858,20 +858,20 @@ int ath12k_wmi_vdev_create(struct ath12k *ar, u8 *macaddr,
        len = sizeof(*txrx_streams);
        txrx_streams->tlv_header = ath12k_wmi_tlv_cmd_hdr(WMI_TAG_VDEV_TXRX_STREAMS,
                                                          len);
-       txrx_streams->band = WMI_TPC_CHAINMASK_CONFIG_BAND_2G;
+       txrx_streams->band = cpu_to_le32(WMI_TPC_CHAINMASK_CONFIG_BAND_2G);
        txrx_streams->supported_tx_streams =
-                                args->chains[NL80211_BAND_2GHZ].tx;
+                               cpu_to_le32(args->chains[NL80211_BAND_2GHZ].tx);
        txrx_streams->supported_rx_streams =
-                                args->chains[NL80211_BAND_2GHZ].rx;
+                               cpu_to_le32(args->chains[NL80211_BAND_2GHZ].rx);
 
        txrx_streams++;
        txrx_streams->tlv_header = ath12k_wmi_tlv_cmd_hdr(WMI_TAG_VDEV_TXRX_STREAMS,
                                                          len);
-       txrx_streams->band = WMI_TPC_CHAINMASK_CONFIG_BAND_5G;
+       txrx_streams->band = cpu_to_le32(WMI_TPC_CHAINMASK_CONFIG_BAND_5G);
        txrx_streams->supported_tx_streams =
-                                args->chains[NL80211_BAND_5GHZ].tx;
+                               cpu_to_le32(args->chains[NL80211_BAND_5GHZ].tx);
        txrx_streams->supported_rx_streams =
-                                args->chains[NL80211_BAND_5GHZ].rx;
+                               cpu_to_le32(args->chains[NL80211_BAND_5GHZ].rx);
 
        ath12k_dbg(ar->ab, ATH12K_DBG_WMI,
                   "WMI vdev create: id %d type %d subtype %d macaddr %pM pdevid %d\n",
index 6a2da0739ac845ee8e1eb9fc7b4eb462e3fc21ce..78afc94a815dc251e95d071eb3e140a80d7566a8 100644 (file)
@@ -2724,9 +2724,9 @@ struct wmi_vdev_create_cmd {
 
 struct ath12k_wmi_vdev_txrx_streams_params {
        __le32 tlv_header;
-       u32 band;
-       u32 supported_tx_streams;
-       u32 supported_rx_streams;
+       __le32 band;
+       __le32 supported_tx_streams;
+       __le32 supported_rx_streams;
 } __packed;
 
 struct wmi_vdev_delete_cmd {