]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
staging: wfx: fix output of rx_stats on big endian hosts
authorJérôme Pouiller <jerome.pouiller@silabs.com>
Tue, 12 May 2020 15:04:02 +0000 (17:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:48:22 +0000 (17:48 +0200)
[ Upstream commit a823d6ecd4904e1a6ffb12964de88fb0bb4802f6 ]

The struct hif_rx_stats contains only little endian values. Thus, it is
necessary to fix byte ordering before to use them.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200512150414.267198-6-Jerome.Pouiller@silabs.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/wfx/debug.c

index 1164aba118a184255bccef468c7d8028d40a0f2d..a73b5bbb578e6ab93acfa4617c9774c9de9f4bc5 100644 (file)
@@ -142,7 +142,7 @@ static int wfx_rx_stats_show(struct seq_file *seq, void *v)
        mutex_lock(&wdev->rx_stats_lock);
        seq_printf(seq, "Timestamp: %dus\n", st->date);
        seq_printf(seq, "Low power clock: frequency %uHz, external %s\n",
-                  st->pwr_clk_freq,
+                  le32_to_cpu(st->pwr_clk_freq),
                   st->is_ext_pwr_clk ? "yes" : "no");
        seq_printf(seq,
                   "Num. of frames: %d, PER (x10e4): %d, Throughput: %dKbps/s\n",
@@ -152,9 +152,12 @@ static int wfx_rx_stats_show(struct seq_file *seq, void *v)
        for (i = 0; i < ARRAY_SIZE(channel_names); i++) {
                if (channel_names[i])
                        seq_printf(seq, "%5s %8d %8d %8d %8d %8d\n",
-                                  channel_names[i], st->nb_rx_by_rate[i],
-                                  st->per[i], st->rssi[i] / 100,
-                                  st->snr[i] / 100, st->cfo[i]);
+                                  channel_names[i],
+                                  le32_to_cpu(st->nb_rx_by_rate[i]),
+                                  le16_to_cpu(st->per[i]),
+                                  (s16)le16_to_cpu(st->rssi[i]) / 100,
+                                  (s16)le16_to_cpu(st->snr[i]) / 100,
+                                  (s16)le16_to_cpu(st->cfo[i]));
        }
        mutex_unlock(&wdev->rx_stats_lock);