1
0
mirror of https://github.com/aircrack-ng/rtl8812au.git synced 2024-11-29 08:27:41 +00:00

Merge pull request #198 from ThijsWithaar/v5.2.20

Fix floating point in VHT_HW_TX for both x86 and rpi
This commit is contained in:
Christian B 2018-09-04 20:27:28 +02:00 committed by GitHub
commit 29f2fd1b17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View File

@ -1040,10 +1040,12 @@ EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE
ifeq ($(CONFIG_PLATFORM_I386_PC), y) ifeq ($(CONFIG_PLATFORM_I386_PC), y)
## For I386 X86 ToolChain use Hardware FLOATING ## For I386 X86 ToolChain use Hardware FLOATING
EXTRA_CFLAGS += -mhard-float EXTRA_CFLAGS += -mhard-float
EXTRA_CFLAGS += -DMARK_KERNEL_PFU
else else
## For ARM ToolChain use Hardware FLOATING ## For ARM ToolChain use Hardware FLOATING
# Raspbian kernel is with soft-float, so can't do this here # Raspbian kernel is with soft-float.
#EXTRA_CFLAGS += -mfloat-abi=hard # 'softfp' allows FP instructions, but no FP on function call interfaces
EXTRA_CFLAGS += -mfloat-abi=softfp
endif endif
endif endif

View File

@ -14,7 +14,7 @@
*****************************************************************************/ *****************************************************************************/
#if defined(CONFIG_MP_INCLUDED) #if defined(CONFIG_MP_INCLUDED)
#ifdef CONFIG_MP_VHT_HW_TX_MODE #ifdef MARK_KERNEL_PFU
#include <linux/kernel.h> #include <linux/kernel.h>
#include <asm/fpu/api.h> #include <asm/fpu/api.h>
#endif #endif
@ -1622,7 +1622,9 @@ int rtw_mp_tx(struct net_device *dev,
PMAC_Get_Pkt_Param(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo); PMAC_Get_Pkt_Param(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo);
#ifdef MARK_KERNEL_PFU
kernel_fpu_begin(); kernel_fpu_begin();
#endif
if (MPT_IS_CCK_RATE(pMptCtx->PMacTxInfo.TX_RATE)) if (MPT_IS_CCK_RATE(pMptCtx->PMacTxInfo.TX_RATE))
CCK_generator(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo); // Floating-Point! CCK_generator(&pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo); // Floating-Point!
else { else {
@ -1630,7 +1632,9 @@ int rtw_mp_tx(struct net_device *dev,
/* 24 BIT*/ /* 24 BIT*/
L_SIG_generator(pMptCtx->PMacPktInfo.N_sym, &pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo); // Floating-Point! L_SIG_generator(pMptCtx->PMacPktInfo.N_sym, &pMptCtx->PMacTxInfo, &pMptCtx->PMacPktInfo); // Floating-Point!
} }
#ifdef MARK_KERNEL_PFU
kernel_fpu_end(); kernel_fpu_end();
#endif
/* 48BIT*/ /* 48BIT*/
if (MPT_IS_HT_RATE(pMptCtx->PMacTxInfo.TX_RATE)) if (MPT_IS_HT_RATE(pMptCtx->PMacTxInfo.TX_RATE))