wlc_rxhdr = (struct brcms_d11rxhdr *) p->data;
                rxh = (struct d11rxhdr *)p->data;
 
+               /* fixup rx header endianness */
+               rxh->RxFrameSize = le16_to_cpu(rxh->RxFrameSize);
+               rxh->PhyRxStatus_0 = le16_to_cpu(rxh->PhyRxStatus_0);
+               rxh->PhyRxStatus_1 = le16_to_cpu(rxh->PhyRxStatus_1);
+               rxh->PhyRxStatus_2 = le16_to_cpu(rxh->PhyRxStatus_2);
+               rxh->PhyRxStatus_3 = le16_to_cpu(rxh->PhyRxStatus_3);
+               rxh->PhyRxStatus_4 = le16_to_cpu(rxh->PhyRxStatus_4);
+               rxh->PhyRxStatus_5 = le16_to_cpu(rxh->PhyRxStatus_5);
+               rxh->RxStatus1 = le16_to_cpu(rxh->RxStatus1);
+               rxh->RxStatus2 = le16_to_cpu(rxh->RxStatus2);
+               rxh->RxTSFTime = le16_to_cpu(rxh->RxTSFTime);
+               rxh->RxChan = le16_to_cpu(rxh->RxChan);
+
                /*
                 * compute the RSSI from d11rxhdr and record it in wlc_rxd11hr
                 */
                wlc_rxhdr->rssi = wlc_phy_rssi_compute(wlc_hw->band->pi, rxh);
-
                brcms_c_recv(wlc_hw->wlc, p);
        }
 
        /* strip off rxhdr */
        skb_pull(p, BRCMS_HWRXOFF);
 
-       /* fixup rx header endianness */
-       rxh->RxFrameSize = le16_to_cpu(rxh->RxFrameSize);
-       rxh->PhyRxStatus_0 = le16_to_cpu(rxh->PhyRxStatus_0);
-       rxh->PhyRxStatus_1 = le16_to_cpu(rxh->PhyRxStatus_1);
-       rxh->PhyRxStatus_2 = le16_to_cpu(rxh->PhyRxStatus_2);
-       rxh->PhyRxStatus_3 = le16_to_cpu(rxh->PhyRxStatus_3);
-       rxh->PhyRxStatus_4 = le16_to_cpu(rxh->PhyRxStatus_4);
-       rxh->PhyRxStatus_5 = le16_to_cpu(rxh->PhyRxStatus_5);
-       rxh->RxStatus1 = le16_to_cpu(rxh->RxStatus1);
-       rxh->RxStatus2 = le16_to_cpu(rxh->RxStatus2);
-       rxh->RxTSFTime = le16_to_cpu(rxh->RxTSFTime);
-       rxh->RxChan = le16_to_cpu(rxh->RxChan);
-
        /* MAC inserts 2 pad bytes for a4 headers or QoS or A-MSDU subframes */
        if (rxh->RxStatus1 & RXS_PBPRES) {
                if (p->len < 2) {
 
 int wlc_phy_rssi_compute(struct brcms_phy_pub *pih,
                         struct d11rxhdr *rxh)
 {
-       int rssi = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_JSSI_MASK;
+       int rssi = rxh->PhyRxStatus_1 & PRXS1_JSSI_MASK;
        uint radioid = pih->radioid;
        struct brcms_phy *pi = (struct brcms_phy *) pih;
 
        if ((pi->sh->corerev >= 11)
-           && !(le16_to_cpu(rxh->RxStatus2) & RXS_PHYRXST_VALID)) {
+           && !(rxh->RxStatus2 & RXS_PHYRXST_VALID)) {
                rssi = BRCMS_RSSI_INVALID;
                goto end;
        }
 
        if (ISLCNPHY(pi)) {
-               u8 gidx = (le16_to_cpu(rxh->PhyRxStatus_2) & 0xFC00) >> 10;
+               u8 gidx = (rxh->PhyRxStatus_2 & 0xFC00) >> 10;
                struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy;
 
                if (rssi > 127)
 
        s16 phyRx0_l, phyRx2_l;
 
        rxpwr = 0;
-       rxpwr0 = le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR0_MASK;
-       rxpwr1 = (le16_to_cpu(rxh->PhyRxStatus_1) & PRXS1_nphy_PWR1_MASK) >> 8;
+       rxpwr0 = rxh->PhyRxStatus_1 & PRXS1_nphy_PWR0_MASK;
+       rxpwr1 = (rxh->PhyRxStatus_1 & PRXS1_nphy_PWR1_MASK) >> 8;
 
        if (rxpwr0 > 127)
                rxpwr0 -= 256;
        if (rxpwr1 > 127)
                rxpwr1 -= 256;
 
-       phyRx0_l = le16_to_cpu(rxh->PhyRxStatus_0) & 0x00ff;
-       phyRx2_l = le16_to_cpu(rxh->PhyRxStatus_2) & 0x00ff;
+       phyRx0_l = rxh->PhyRxStatus_0 & 0x00ff;
+       phyRx2_l = rxh->PhyRxStatus_2 & 0x00ff;
        if (phyRx2_l > 127)
                phyRx2_l -= 256;