From d81b9a5b05eb5909e1d7334264cdaadc4237dc55 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec Date: Tue, 12 Jan 2021 22:25:18 +0100 Subject: [PATCH] RTL8812AU: Fix build for 32-bit ARM SoCs --- ...768-don-t-apply-ARM-options-to-ARM64.patch | 68 +++++++++++++++++++ ...TL8812AU-02-fix-multiple-definitions.patch | 38 ----------- 2 files changed, 68 insertions(+), 38 deletions(-) create mode 100644 packages/linux-drivers/RTL8812AU/patches/Revert-issue-768-don-t-apply-ARM-options-to-ARM64.patch delete mode 100644 packages/linux-drivers/RTL8812AU/patches/aarch64/RTL8812AU-02-fix-multiple-definitions.patch diff --git a/packages/linux-drivers/RTL8812AU/patches/Revert-issue-768-don-t-apply-ARM-options-to-ARM64.patch b/packages/linux-drivers/RTL8812AU/patches/Revert-issue-768-don-t-apply-ARM-options-to-ARM64.patch new file mode 100644 index 0000000000..bd3aa2d3c9 --- /dev/null +++ b/packages/linux-drivers/RTL8812AU/patches/Revert-issue-768-don-t-apply-ARM-options-to-ARM64.patch @@ -0,0 +1,68 @@ +From a6daa2907399a2df2c3c1b576fe6256805766c71 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Tue, 12 Jan 2021 22:16:43 +0100 +Subject: [PATCH] Revert "issue #768: don't apply ARM options to ARM64" + +This reverts commit 3325543154cd8900490385eb6326f5e7911c6e7d. + +Commit 3325543154cd ("issue #768: don't apply ARM options to ARM64") +breaks compilation of driver on 32-bit ARM platforms. Issue is that each +and every 32-bit ARM kernel was always compiled with soft-fp ABI, not +just that for RPi. Commit author probably thinks on userspace which is +entirely different thing. Furthermore, same issue is very likely present +also on 32-bit x86 platforms. There too is soft float flag already part +of compile flags and can't be overriden with custom ones. + +One last thing - these flags are useful only when +CONFIG_MP_VHT_HW_TX_MODE is set to y. This is probably never used. +--- + Makefile | 26 ++++++++++---------------- + 1 file changed, 10 insertions(+), 16 deletions(-) + +diff --git a/Makefile b/Makefile +index 7ba03bb7e9f8..a23673bc3b42 100755 +--- a/Makefile ++++ b/Makefile +@@ -1118,6 +1118,16 @@ endif + + ifeq ($(CONFIG_MP_VHT_HW_TX_MODE), y) + EXTRA_CFLAGS += -DCONFIG_MP_VHT_HW_TX_MODE ++ifeq ($(CONFIG_PLATFORM_I386_PC), y) ++## For I386 X86 ToolChain use Hardware FLOATING ++EXTRA_CFLAGS += -mhard-float ++EXTRA_CFLAGS += -DMARK_KERNEL_PFU ++else ++## For ARM ToolChain use Hardware FLOATING ++# Raspbian kernel is with soft-float. ++# 'softfp' allows FP instructions, but no FP on function call interfaces ++EXTRA_CFLAGS += -mfloat-abi=softfp ++endif + endif + + ifeq ($(CONFIG_APPEND_VENDOR_IE_ENABLE), y) +@@ -2124,22 +2134,6 @@ endif + + endif + +-ifeq ($(ARCH), i386) +-EXTRA_CFLAGS += -mhard-float +-EXTRA_CFLAGS += -DMARK_KERNEL_PFU +-else ifeq ($(ARCH), x86_64) +-EXTRA_CFLAGS += -mhard-float +-EXTRA_CFLAGS += -DMARK_KERNEL_PFU +-else ifeq ($(ARCH), arm) +-# Raspbian kernel is with soft-float. +-# 'softfp' allows FP instructions, but no FP on function call interfaces +-ifeq ($(CONFIG_PLATFORM_ARM_RPI), y) +-EXTRA_CFLAGS += -mfloat-abi=softfp +-else +-EXTRA_CFLAGS += -mfloat-abi=hard +-endif +-endif +- + ########### CUSTOMER ################################ + ifeq ($(CONFIG_CUSTOMER_HUAWEI_GENERAL), y) + CONFIG_CUSTOMER_HUAWEI = y +-- +2.30.0 + diff --git a/packages/linux-drivers/RTL8812AU/patches/aarch64/RTL8812AU-02-fix-multiple-definitions.patch b/packages/linux-drivers/RTL8812AU/patches/aarch64/RTL8812AU-02-fix-multiple-definitions.patch deleted file mode 100644 index 263a970576..0000000000 --- a/packages/linux-drivers/RTL8812AU/patches/aarch64/RTL8812AU-02-fix-multiple-definitions.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 92d01b516a77be6f21f6a3611c39f23e03fe4594 Mon Sep 17 00:00:00 2001 -From: MilhouseVH -Date: Mon, 10 Jul 2017 20:11:37 +0100 -Subject: [PATCH] fix multiple definitions - ---- - include/ieee80211.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/include/ieee80211.h b/include/ieee80211.h -index 7a50a07..84aad12 100644 ---- a/include/ieee80211.h -+++ b/include/ieee80211.h -@@ -1481,18 +1481,18 @@ enum ieee80211_state { - (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \ - (((Addr[5]) & 0xff) == 0xff)) - #else --extern __inline int is_multicast_mac_addr(const u8 *addr) -+static __inline int is_multicast_mac_addr(const u8 *addr) - { - return (addr[0] != 0xff) && (0x01 & addr[0]); - } - --extern __inline int is_broadcast_mac_addr(const u8 *addr) -+static __inline int is_broadcast_mac_addr(const u8 *addr) - { - return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \ - (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); - } - --extern __inline int is_zero_mac_addr(const u8 *addr) -+static __inline int is_zero_mac_addr(const u8 *addr) - { - return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && \ - (addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00)); --- -2.7.4 -