staging: vt6655: Add missing BE support on 2x iowrite32
authorPhilipp Hortmann <philipp.g.hortmann@gmail.com>
Sun, 22 May 2022 19:49:28 +0000 (21:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Jun 2022 05:58:40 +0000 (07:58 +0200)
Add missing big-endian support when using two times iowrite32
to write 64 Bit.

Signed-off-by: Philipp Hortmann <philipp.g.hortmann@gmail.com>
Link: https://lore.kernel.org/r/974ef7a9244e7caeafd8c176c7b53a6de3c20219.1653203927.git.philipp.g.hortmann@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6655/card.c
drivers/staging/vt6655/device_main.c

index 7a4a8b3..abc74a5 100644 (file)
@@ -293,6 +293,7 @@ bool CARDbUpdateTSF(struct vnt_private *priv, unsigned char byRxRate,
                qwTSFOffset = CARDqGetTSFOffset(byRxRate, qwBSSTimestamp,
                                                local_tsf);
                /* adjust TSF, HW's TSF add TSF Offset reg */
+               qwTSFOffset =  le64_to_cpu(qwTSFOffset);
                iowrite32((u32)qwTSFOffset, priv->port_offset + MAC_REG_TSFOFST);
                iowrite32((u32)(qwTSFOffset >> 32), priv->port_offset + MAC_REG_TSFOFST + 4);
                MACvRegBitsOn(priv->port_offset, MAC_REG_TFTCTL,
@@ -327,6 +328,7 @@ bool CARDbSetBeaconPeriod(struct vnt_private *priv,
        iowrite16(wBeaconInterval, priv->port_offset + MAC_REG_BI);
        priv->wBeaconInterval = wBeaconInterval;
        /* Set NextTBTT */
+       qwNextTBTT =  le64_to_cpu(qwNextTBTT);
        iowrite32((u32)qwNextTBTT, priv->port_offset + MAC_REG_NEXTTBTT);
        iowrite32((u32)(qwNextTBTT >> 32), priv->port_offset + MAC_REG_NEXTTBTT + 4);
        MACvRegBitsOn(priv->port_offset, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
@@ -795,6 +797,7 @@ void CARDvSetFirstNextTBTT(struct vnt_private *priv,
 
        qwNextTBTT = CARDqGetNextTBTT(qwNextTBTT, wBeaconInterval);
        /* Set NextTBTT */
+       qwNextTBTT =  le64_to_cpu(qwNextTBTT);
        iowrite32((u32)qwNextTBTT, iobase + MAC_REG_NEXTTBTT);
        iowrite32((u32)(qwNextTBTT >> 32), iobase + MAC_REG_NEXTTBTT + 4);
        MACvRegBitsOn(iobase, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
@@ -821,6 +824,7 @@ void CARDvUpdateNextTBTT(struct vnt_private *priv, u64 qwTSF,
 
        qwTSF = CARDqGetNextTBTT(qwTSF, wBeaconInterval);
        /* Set NextTBTT */
+       qwTSF =  le64_to_cpu(qwTSF);
        iowrite32((u32)qwTSF, iobase + MAC_REG_NEXTTBTT);
        iowrite32((u32)(qwTSF >> 32), iobase + MAC_REG_NEXTTBTT + 4);
        MACvRegBitsOn(iobase, MAC_REG_TFTCTL, TFTCTL_TBTTSYNCEN);
index c32c032..2049946 100644 (file)
@@ -1529,6 +1529,7 @@ static void vnt_configure(struct ieee80211_hw *hw,
                        } else {
                                MACvSelectPage1(priv->port_offset);
 
+                               multicast =  le64_to_cpu(multicast);
                                iowrite32((u32)multicast, priv->port_offset +  MAC_REG_MAR0);
                                iowrite32((u32)(multicast >> 32),
                                          priv->port_offset + MAC_REG_MAR0 + 4);