Merge pull request #3 from linux-sunxi/master

Update from Master
This commit is contained in:
Noxenious 2015-10-22 16:11:07 +02:00
commit 4f75b81ab2
8 changed files with 409 additions and 41 deletions

View File

@ -21,8 +21,9 @@ Most Allwinner devices and hardware are supported in mainline kernel and U-Boot,
There is a custom U-Boot and Kernel version for sunxi devices which includes some special drivers not mainlined.
These versions are rather old (3.4 for kernel and 2014.04 for U-Boot), but may support more functions and devices than current mainline
If you want to switch back to sunxi versions for some reasons (no device tree available, unsupported hardware), change the file
/conf/machine/include/sunxi.inc and set
If you want to switch back to sunxi versions for some reasons (no device tree available, unsupported hardware), either:
- change the file conf/machine/include/sunxi.inc to include the following block
- edit your conf/local.conf to add the following block
PREFERRED_PROVIDER_u-boot="u-boot-sunxi"
PREFERRED_PROVIDER_virtual/bootloader="u-boot-sunxi"
@ -33,6 +34,10 @@ If you already have built the mainline versions it might be necessary to reset t
bitbake -c clean linux
bitbake -c clean u-boot
Also, older kernel versions such as this don't build successfully with any gcc version 5.0 or newer. Since gcc-5.2 is the current
default compiler on master, if you wish to build this kernel with master you'll need to add the following to your conf/local.conf:
GCCVERSION = "4.9%"
Performance
===========

View File

@ -18,7 +18,10 @@ UBOOT_MACHINE_olinuxino-a20 = "A20-OLinuXino-Micro_config"
UBOOT_MACHINE_olinuxino-a10s = "A10s-OLinuXino-Micro_config"
UBOOT_MACHINE_meleg = "Mele_A1000G_config"
SRC_URI = "git://github.com/linux-sunxi/u-boot-sunxi.git;protocol=git;branch=sunxi"
SRC_URI = " \
git://github.com/linux-sunxi/u-boot-sunxi.git;protocol=git;branch=sunxi \
file://0002-gcc5-fixes.patch \
"
PE = "1"

View File

@ -0,0 +1,197 @@
From a5e50d6fd7321d0bc60fda2db938c170d09f9dee Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Thu, 24 Sep 2015 22:36:02 -0400
Subject: [PATCH] gcc5 fixes
gcc5 is pickier about inline functions defined in headers.
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
arch/arm/include/asm/io.h | 12 ++++----
common/board_f.c | 18 ++++++------
common/main.c | 2 +-
include/linux/compiler-gcc5.h | 65 +++++++++++++++++++++++++++++++++++++++++++
4 files changed, 81 insertions(+), 16 deletions(-)
create mode 100644 include/linux/compiler-gcc5.h
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
index 6a1f05a..2f6925b 100644
--- a/arch/arm/include/asm/io.h
+++ b/arch/arm/include/asm/io.h
@@ -75,7 +75,7 @@ static inline phys_addr_t virt_to_phys(void * vaddr)
#define __arch_putw(v,a) (*(volatile unsigned short *)(a) = (v))
#define __arch_putl(v,a) (*(volatile unsigned int *)(a) = (v))
-extern inline void __raw_writesb(unsigned long addr, const void *data,
+static inline void __raw_writesb(unsigned long addr, const void *data,
int bytelen)
{
uint8_t *buf = (uint8_t *)data;
@@ -83,7 +83,7 @@ extern inline void __raw_writesb(unsigned long addr, const void *data,
__arch_putb(*buf++, addr);
}
-extern inline void __raw_writesw(unsigned long addr, const void *data,
+static inline void __raw_writesw(unsigned long addr, const void *data,
int wordlen)
{
uint16_t *buf = (uint16_t *)data;
@@ -91,7 +91,7 @@ extern inline void __raw_writesw(unsigned long addr, const void *data,
__arch_putw(*buf++, addr);
}
-extern inline void __raw_writesl(unsigned long addr, const void *data,
+static inline void __raw_writesl(unsigned long addr, const void *data,
int longlen)
{
uint32_t *buf = (uint32_t *)data;
@@ -99,21 +99,21 @@ extern inline void __raw_writesl(unsigned long addr, const void *data,
__arch_putl(*buf++, addr);
}
-extern inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
+static inline void __raw_readsb(unsigned long addr, void *data, int bytelen)
{
uint8_t *buf = (uint8_t *)data;
while(bytelen--)
*buf++ = __arch_getb(addr);
}
-extern inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
+static inline void __raw_readsw(unsigned long addr, void *data, int wordlen)
{
uint16_t *buf = (uint16_t *)data;
while(wordlen--)
*buf++ = __arch_getw(addr);
}
-extern inline void __raw_readsl(unsigned long addr, void *data, int longlen)
+static inline void __raw_readsl(unsigned long addr, void *data, int longlen)
{
uint32_t *buf = (uint32_t *)data;
while(longlen--)
diff --git a/common/board_f.c b/common/board_f.c
index f285bad..72b421c 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -78,24 +78,24 @@ DECLARE_GLOBAL_DATA_PTR;
************************************************************************
* May be supplied by boards if desired
*/
-inline void __coloured_LED_init(void) {}
+void __coloured_LED_init(void) {}
void coloured_LED_init(void)
__attribute__((weak, alias("__coloured_LED_init")));
-inline void __red_led_on(void) {}
+void __red_led_on(void) {}
void red_led_on(void) __attribute__((weak, alias("__red_led_on")));
-inline void __red_led_off(void) {}
+void __red_led_off(void) {}
void red_led_off(void) __attribute__((weak, alias("__red_led_off")));
-inline void __green_led_on(void) {}
+void __green_led_on(void) {}
void green_led_on(void) __attribute__((weak, alias("__green_led_on")));
-inline void __green_led_off(void) {}
+void __green_led_off(void) {}
void green_led_off(void) __attribute__((weak, alias("__green_led_off")));
-inline void __yellow_led_on(void) {}
+void __yellow_led_on(void) {}
void yellow_led_on(void) __attribute__((weak, alias("__yellow_led_on")));
-inline void __yellow_led_off(void) {}
+void __yellow_led_off(void) {}
void yellow_led_off(void) __attribute__((weak, alias("__yellow_led_off")));
-inline void __blue_led_on(void) {}
+void __blue_led_on(void) {}
void blue_led_on(void) __attribute__((weak, alias("__blue_led_on")));
-inline void __blue_led_off(void) {}
+void __blue_led_off(void) {}
void blue_led_off(void) __attribute__((weak, alias("__blue_led_off")));
/*
diff --git a/common/main.c b/common/main.c
index 8b6f274..3312b90 100644
--- a/common/main.c
+++ b/common/main.c
@@ -27,7 +27,7 @@ DECLARE_GLOBAL_DATA_PTR;
/*
* Board-specific Platform code can reimplement show_boot_progress () if needed
*/
-void inline __show_boot_progress (int val) {}
+void __show_boot_progress (int val) {}
void show_boot_progress (int val) __attribute__((weak, alias("__show_boot_progress")));
#define MAX_DELAY_STOP_STR 32
diff --git a/include/linux/compiler-gcc5.h b/include/linux/compiler-gcc5.h
new file mode 100644
index 0000000..c8c5659
--- /dev/null
+++ b/include/linux/compiler-gcc5.h
@@ -0,0 +1,65 @@
+#ifndef __LINUX_COMPILER_H
+#error "Please don't include <linux/compiler-gcc5.h> directly, include <linux/compiler.h> instead."
+#endif
+
+#define __used __attribute__((__used__))
+#define __must_check __attribute__((warn_unused_result))
+#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
+
+/* Mark functions as cold. gcc will assume any path leading to a call
+ to them will be unlikely. This means a lot of manual unlikely()s
+ are unnecessary now for any paths leading to the usual suspects
+ like BUG(), printk(), panic() etc. [but let's keep them for now for
+ older compilers]
+
+ Early snapshots of gcc 4.3 don't support this and we can't detect this
+ in the preprocessor, but we can live with this because they're unreleased.
+ Maketime probing would be overkill here.
+
+ gcc also has a __attribute__((__hot__)) to move hot functions into
+ a special section, but I don't see any sense in this right now in
+ the kernel context */
+#define __cold __attribute__((__cold__))
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#ifndef __CHECKER__
+# define __compiletime_warning(message) __attribute__((warning(message)))
+# define __compiletime_error(message) __attribute__((error(message)))
+#endif /* __CHECKER__ */
+
+/*
+ * Mark a position in code as unreachable. This can be used to
+ * suppress control flow warnings after asm blocks that transfer
+ * control elsewhere.
+ *
+ * Early snapshots of gcc 4.5 don't support this and we can't detect
+ * this in the preprocessor, but we can live with this because they're
+ * unreleased. Really, we need to have autoconf for the kernel.
+ */
+#define unreachable() __builtin_unreachable()
+
+/* Mark a function definition as prohibited from being cloned. */
+#define __noclone __attribute__((__noclone__))
+
+/*
+ * Tell the optimizer that something else uses this function or variable.
+ */
+#define __visible __attribute__((externally_visible))
+
+/*
+ * GCC 'asm goto' miscompiles certain code sequences:
+ *
+ * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
+ *
+ * Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
+ *
+ * (asm goto is automatically volatile - the naming reflects this.)
+ */
+#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
+
+#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
+#define __HAVE_BUILTIN_BSWAP32__
+#define __HAVE_BUILTIN_BSWAP64__
+#define __HAVE_BUILTIN_BSWAP16__
+#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
--
2.6.0.rc3

View File

@ -0,0 +1,28 @@
From 054886253f4f559b351a94e1e6ebfd5eb504461f Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Thu, 24 Sep 2015 23:38:11 -0400
Subject: [PATCH] fix test build
Allow the test application to build and link successfully.
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
test/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/Makefile b/test/Makefile
index 700416e..51481c9 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -5,7 +5,7 @@ CFLAGS ?= -Wall
all: test
test: ../config.mk test.c
- $(CC) $(CFLAGS) -o $@ test.c -lEGL -lGLESv2
+ $(CC) $(CFLAGS) -I../include -L../../image/usr/lib -o $@ test.c -lEGL -lGLESv2 -lX11
clean:
rm -f test
--
2.6.0.rc3

View File

@ -11,14 +11,12 @@ EXCLUDE_FROM_WORLD = "1"
PROVIDES = "virtual/libgles1 virtual/libgles2 virtual/egl"
RPROVIDES_${PN} += "libGLESv2.so libEGL.so libGLESv2.so libGLESv1_CM.so libMali.so"
inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "opengl"
SRCREV_pn-${PN} = "d343311efc8db166d8371b28494f0f27b6a58724"
SRC_URI = "gitsm://github.com/linux-sunxi/sunxi-mali.git \
file://0001-Add-EGLSyncKHR-EGLTimeKHR-and-GLChar-definition.patch \
file://0002-Add-missing-GLchar-definition.patch \
file://0003-Fix-sed-to-replace-by-the-correct-var.patch \
file://0001-fix-test-build.patch \
"
S = "${WORKDIR}/git"
@ -73,10 +71,16 @@ do_install() {
rm ${D}${libdir}/$flib
ln -sf libMali.so.3 ${D}${libdir}/$flib
done
DESTDIR=${D}/ VERSION=r3p0 ABI=armhf ${EXTRA_OECONF} make test
install -d ${D}${bindir}
install -m 0755 ${S}/test/test ${D}${bindir}/sunximali-test
}
# Packages like xf86-video-fbturbo dlopen() libUMP.so, so we do need to ship the .so files in ${PN}
PACKAGES =+ "${PN}-test"
FILES_${PN} += "${libdir}/lib*.so"
FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig/*"
FILES_${PN}-test = "${bindir}/sunximali-test"
# These are closed binaries generated elsewhere so don't check ldflags & text relocations
INSANE_SKIP_${PN} = "dev-so ldflags textrel"
INSANE_SKIP_${PN} = "dev-so ldflags textrel"

View File

@ -5,7 +5,7 @@ DESCRIPTION = "X.Org X server -- A10/A13 display driver"
LICENSE = "MIT-X"
LIC_FILES_CHKSUM = "file://COPYING;md5=f91dc3ee5ce59eb4b528e67e98a31266"
DEPENDS += "sunxi-mali libump"
DEPENDS += "sunxi-mali libump xf86driproto"
PE = "3"
PV = "0.5.1+git${SRCPV}"

View File

@ -0,0 +1,135 @@
From 83b0b8a7b9cb658d3cc980b4fbcbb2cc8b257ccf Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Thu, 24 Sep 2015 17:07:26 -0400
Subject: [PATCH] gcc5 fixes
gcc5 is pickier about inline functions defined in headers.
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
drivers/net/wireless/rtl8188eu/include/ieee80211.h | 4 ++--
drivers/net/wireless/rtl8189es/include/ieee80211.h | 4 ++--
drivers/net/wireless/rtl8192cu/include/ieee80211.h | 8 ++++----
drivers/net/wireless/rtl8723as/include/ieee80211.h | 4 ++--
drivers/staging/rtl8712/ieee80211.h | 4 ++--
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/wireless/rtl8188eu/include/ieee80211.h b/drivers/net/wireless/rtl8188eu/include/ieee80211.h
index 1ae96a5..7a301c5 100644
--- a/drivers/net/wireless/rtl8188eu/include/ieee80211.h
+++ b/drivers/net/wireless/rtl8188eu/include/ieee80211.h
@@ -1188,12 +1188,12 @@ 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));
diff --git a/drivers/net/wireless/rtl8189es/include/ieee80211.h b/drivers/net/wireless/rtl8189es/include/ieee80211.h
index 1ae96a5..7a301c5 100644
--- a/drivers/net/wireless/rtl8189es/include/ieee80211.h
+++ b/drivers/net/wireless/rtl8189es/include/ieee80211.h
@@ -1188,12 +1188,12 @@ 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));
diff --git a/drivers/net/wireless/rtl8192cu/include/ieee80211.h b/drivers/net/wireless/rtl8192cu/include/ieee80211.h
index 86e9726..950691d 100644
--- a/drivers/net/wireless/rtl8192cu/include/ieee80211.h
+++ b/drivers/net/wireless/rtl8192cu/include/ieee80211.h
@@ -1149,12 +1149,12 @@ enum ieee80211_state {
#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
-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));
@@ -1177,7 +1177,7 @@ typedef struct tx_pending_t{
#define IEEE_G (1<<2)
#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G)
-extern __inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
+static __inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
{
/* Single white space is for Linksys APs */
if (essid_len == 1 && essid[0] == ' ')
@@ -1193,7 +1193,7 @@ extern __inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
return 1;
}
-extern __inline int ieee80211_get_hdrlen(u16 fc)
+static __inline int ieee80211_get_hdrlen(u16 fc)
{
int hdrlen = 24;
diff --git a/drivers/net/wireless/rtl8723as/include/ieee80211.h b/drivers/net/wireless/rtl8723as/include/ieee80211.h
index bf24c3b..f8046ee 100644
--- a/drivers/net/wireless/rtl8723as/include/ieee80211.h
+++ b/drivers/net/wireless/rtl8723as/include/ieee80211.h
@@ -1176,12 +1176,12 @@ 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));
diff --git a/drivers/staging/rtl8712/ieee80211.h b/drivers/staging/rtl8712/ieee80211.h
index 3c0092b..1e7b55b 100644
--- a/drivers/staging/rtl8712/ieee80211.h
+++ b/drivers/staging/rtl8712/ieee80211.h
@@ -734,7 +734,7 @@ enum ieee80211_state {
#define IEEE_G (1<<2)
#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G)
-extern inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
+static inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
{
/* Single white space is for Linksys APs */
if (essid_len == 1 && essid[0] == ' ')
@@ -748,7 +748,7 @@ extern inline int ieee80211_is_empty_essid(const char *essid, int essid_len)
return 1;
}
-extern inline int ieee80211_get_hdrlen(u16 fc)
+static inline int ieee80211_get_hdrlen(u16 fc)
{
int hdrlen = 24;
--
2.6.0.rc3

View File

@ -4,23 +4,19 @@ DESCRIPTION = "Linux kernel for Allwinner a10/a20 processors"
COMPATIBLE_MACHINE = "(sun4i|sun5i|sun7i)"
PV = "3.4.90"
PV = "3.4.103"
PR = "r1"
# Last tested version by myself
SRCREV_pn-${PN} = "e37d760b363888f3a65cd6455c99a75cac70a7b8"
SRCREV_pn-${PN} = "9a1cd034181af628d4145202289e1993c1687db6"
MACHINE_KERNEL_PR_append = "a"
SRC_URI += "git://github.com/linux-sunxi/linux-sunxi.git;branch=sunxi-3.4;protocol=git \
http://archlinuxarm.org/builder/src/0001-cgroup-add-xattr-support-sunxi.patch;name=cgroup-patch \
file://0001-compiler-gcc5.patch \
file://0002-use-static-inline-in-ARM-ftrace.patch
file://0002-use-static-inline-in-ARM-ftrace.patch \
file://0001-gcc5-fixes.patch \
file://defconfig \
"
SRC_URI[cgroup-patch.md5sum] = "4aa5087e3396f3179b61ccd478e9e604"
SRC_URI[cgroup-patch.sha256sum] = "f9f9cb55eb6f8abf322830afd7a5f4a090e539add75e0ed1f1016b5351a9b533"
S = "${WORKDIR}/git"
#fix QA issue "Files/directories were installed but not shipped: /usr/src/debug"
@ -28,31 +24,31 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
do_configure_prepend() {
#fix arch QA issues ("Architecture did not match")
rm ${S}/drivers/net/wireless/rtxx7x/tools/bin2h
rm ${S}/modules/wifi/ar6302/AR6K_SDK_ISC.build_3.1_RC.329/host/lib/wac/wac
rm ${S}/modules/wifi/ar6302/AR6K_SDK_ISC.build_3.1_RC.329/host/tools/pal_host_intf/pal_app
rm ${S}/modules/wifi/nano-c047.12/obj/hic-proxy
rm ${S}/modules/wifi/nano-c047.12/obj/x_mac_4.69.axf
rm ${S}/modules/wifi/nano-c047.12/obj/x_mac_patch_4_65.axf
rm ${S}/modules/wifi/nano-c047.12/obj/x_mac_4.66.axf
rm ${S}/modules/wifi/nano-c047.12/obj/x_mac-v4.68.axf
rm ${S}/modules/wifi/nano-c047.12/obj/x_mac.axf
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/wl
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/socket_noasd/x86/wl_server_socket
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/wifi_noasd/x86/wl_server_serial
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/wifi_noasd/x86/wl_server_wifi
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/wl
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/socket_noasd/x86/wl_server_socket
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/wifi_noasd/x86/wl_server_serial
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/wifi_noasd/x86/wl_server_wifi
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/dongle_noasd/x86/wl_server_dongle
rm ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/dongle_noasd/x86/wl_server_dongle
rm ${S}/modules/wifi/bcm40181/apps/tc_cli
rm ${S}/modules/wifi/bcm40181/apps/wfa_ca
rm ${S}/modules/wifi/bcm40181/apps/dhd
rm ${S}/modules/wifi/bcm40181/apps/ca_cli
rm -f ${S}/drivers/net/wireless/rtxx7x/tools/bin2h
rm -f ${S}/modules/wifi/ar6302/AR6K_SDK_ISC.build_3.1_RC.329/host/lib/wac/wac
rm -f ${S}/modules/wifi/ar6302/AR6K_SDK_ISC.build_3.1_RC.329/host/tools/pal_host_intf/pal_app
rm -f ${S}/modules/wifi/nano-c047.12/obj/hic-proxy
rm -f ${S}/modules/wifi/nano-c047.12/obj/x_mac_4.69.axf
rm -f ${S}/modules/wifi/nano-c047.12/obj/x_mac_patch_4_65.axf
rm -f ${S}/modules/wifi/nano-c047.12/obj/x_mac_4.66.axf
rm -f ${S}/modules/wifi/nano-c047.12/obj/x_mac-v4.68.axf
rm -f ${S}/modules/wifi/nano-c047.12/obj/x_mac.axf
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/wl
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/socket_noasd/x86/wl_server_socket
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/wifi_noasd/x86/wl_server_serial
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/wifi_noasd/x86/wl_server_wifi
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/wl
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/socket_noasd/x86/wl_server_socket
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/wifi_noasd/x86/wl_server_serial
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/wifi_noasd/x86/wl_server_wifi
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/make/dongle_noasd/x86/wl_server_dongle
rm -f ${S}/modules/wifi/bcm40181/open-src/src/wl/exe/dongle_noasd/x86/wl_server_dongle
rm -f ${S}/modules/wifi/bcm40181/apps/tc_cli
rm -f ${S}/modules/wifi/bcm40181/apps/wfa_ca
rm -f ${S}/modules/wifi/bcm40181/apps/dhd
rm -f ${S}/modules/wifi/bcm40181/apps/ca_cli
#fix ldflags QA issues ("No GNU_HASH in the elf binary")
rm ${S}/modules/wifi/usi-bcm4329/v4.218.248.15/apps/epi_ttcp
rm ${S}/modules/wifi/bcm40181/apps/epi_ttcp
rm -f ${S}/modules/wifi/usi-bcm4329/v4.218.248.15/apps/epi_ttcp
rm -f ${S}/modules/wifi/bcm40181/apps/epi_ttcp
}