diff --git a/projects/imx6/patches/linux/999.01-LLVMLinux_use_static_inline_in_ARM_ftrace.h.patch b/projects/imx6/patches/linux/999.01-LLVMLinux_use_static_inline_in_ARM_ftrace.h.patch new file mode 100644 index 0000000000..8091ff256f --- /dev/null +++ b/projects/imx6/patches/linux/999.01-LLVMLinux_use_static_inline_in_ARM_ftrace.h.patch @@ -0,0 +1,52 @@ +From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001 +From: Behan Webster +Date: Wed, 24 Sep 2014 01:06:46 +0100 +Subject: ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h + +With compilers which follow the C99 standard (like modern versions of gcc and +clang), "extern inline" does the wrong thing (emits code for an externally +linkable version of the inline function). In this case using static inline +and removing the NULL version of return_address in return_address.c does +the right thing. + +Signed-off-by: Behan Webster +Reviewed-by: Mark Charlebois +Acked-by: Steven Rostedt +Signed-off-by: Russell King +--- + arch/arm/include/asm/ftrace.h | 2 +- + arch/arm/kernel/return_address.c | 5 ----- + 2 files changed, 1 insertion(+), 6 deletions(-) + +diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h +index 39eb16b..bfe2a2f 100644 +--- a/arch/arm/include/asm/ftrace.h ++++ b/arch/arm/include/asm/ftrace.h +@@ -45,7 +45,7 @@ void *return_address(unsigned int); + + #else + +-extern inline void *return_address(unsigned int level) ++static inline void *return_address(unsigned int level) + { + return NULL; + } +diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c +index fafedd8..f6aa84d 100644 +--- a/arch/arm/kernel/return_address.c ++++ b/arch/arm/kernel/return_address.c +@@ -63,11 +63,6 @@ void *return_address(unsigned int level) + #warning "TODO: return_address should use unwind tables" + #endif + +-void *return_address(unsigned int level) +-{ +- return NULL; +-} +- + #endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */ + + EXPORT_SYMBOL_GPL(return_address); +-- +cgit v0.11.2 + diff --git a/projects/imx6/patches/linux/999.02-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch b/projects/imx6/patches/linux/999.02-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch new file mode 100644 index 0000000000..0ab03fb9da --- /dev/null +++ b/projects/imx6/patches/linux/999.02-ARM-LLVMLinux-Change-extern-inline-to-static-inline.patch @@ -0,0 +1,59 @@ +From a2561791169351cbf1ac5ca0c4299a0eef7eca65 Mon Sep 17 00:00:00 2001 +From: Behan Webster +Date: Tue, 3 Sep 2013 22:27:26 -0400 +Subject: [PATCH] ARM: LLVMLinux: Change "extern inline" to "static inline" in + glue-cache.h + +With compilers which follow the C99 standard (like modern versions of gcc and +clang), "extern inline" does the wrong thing (emits code for an externally +linkable version of the inline function). "static inline" is the correct choice +instead. + +Author: Behan Webster +Signed-off-by: Behan Webster +Reviewed-by: Mark Charlebois +--- + arch/arm/include/asm/glue-cache.h | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/arch/arm/include/asm/glue-cache.h b/arch/arm/include/asm/glue-cache.h +index c81adc0..a3c24cd 100644 +--- a/arch/arm/include/asm/glue-cache.h ++++ b/arch/arm/include/asm/glue-cache.h +@@ -130,22 +130,22 @@ + #endif + + #ifndef __ASSEMBLER__ +-extern inline void nop_flush_icache_all(void) { } +-extern inline void nop_flush_kern_cache_all(void) { } +-extern inline void nop_flush_kern_cache_louis(void) { } +-extern inline void nop_flush_user_cache_all(void) { } +-extern inline void nop_flush_user_cache_range(unsigned long a, ++static inline void nop_flush_icache_all(void) { } ++static inline void nop_flush_kern_cache_all(void) { } ++static inline void nop_flush_kern_cache_louis(void) { } ++static inline void nop_flush_user_cache_all(void) { } ++static inline void nop_flush_user_cache_range(unsigned long a, + unsigned long b, unsigned int c) { } + +-extern inline void nop_coherent_kern_range(unsigned long a, unsigned long b) { } +-extern inline int nop_coherent_user_range(unsigned long a, ++static inline void nop_coherent_kern_range(unsigned long a, unsigned long b) { } ++static inline int nop_coherent_user_range(unsigned long a, + unsigned long b) { return 0; } +-extern inline void nop_flush_kern_dcache_area(void *a, size_t s) { } ++static inline void nop_flush_kern_dcache_area(void *a, size_t s) { } + +-extern inline void nop_dma_flush_range(const void *a, const void *b) { } ++static inline void nop_dma_flush_range(const void *a, const void *b) { } + +-extern inline void nop_dma_map_area(const void *s, size_t l, int f) { } +-extern inline void nop_dma_unmap_area(const void *s, size_t l, int f) { } ++static inline void nop_dma_map_area(const void *s, size_t l, int f) { } ++static inline void nop_dma_unmap_area(const void *s, size_t l, int f) { } + #endif + + #ifndef MULTI_CACHE +-- +2.1.4 + diff --git a/projects/imx6/patches/linux/999.03-rtl8712-avoid-lots-of-build-warnings.patch b/projects/imx6/patches/linux/999.03-rtl8712-avoid-lots-of-build-warnings.patch new file mode 100644 index 0000000000..db4bd5fb74 --- /dev/null +++ b/projects/imx6/patches/linux/999.03-rtl8712-avoid-lots-of-build-warnings.patch @@ -0,0 +1,68 @@ +diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211.h b/drivers/staging/rtl8192u/ieee80211/ieee80211.h +index bc64f05..b1a0380 100644 +--- a/drivers/staging/rtl8192u/ieee80211/ieee80211.h ++++ b/drivers/staging/rtl8192u/ieee80211/ieee80211.h +@@ -2250,7 +2250,7 @@ static inline void *ieee80211_priv(struct net_device *dev) + return ((struct ieee80211_device *)netdev_priv(dev))->priv; + } + +-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] == ' ') +@@ -2266,7 +2266,7 @@ extern inline int ieee80211_is_empty_essid(const char *essid, int essid_len) + return 1; + } + +-extern inline int ieee80211_is_valid_mode(struct ieee80211_device *ieee, int mode) ++static inline int ieee80211_is_valid_mode(struct ieee80211_device *ieee, int mode) + { + /* + * It is possible for both access points and our device to support +@@ -2292,7 +2292,7 @@ extern inline int ieee80211_is_valid_mode(struct ieee80211_device *ieee, int mod + return 0; + } + +-extern inline int ieee80211_get_hdrlen(u16 fc) ++static inline int ieee80211_get_hdrlen(u16 fc) + { + int hdrlen = IEEE80211_3ADDR_LEN; + +@@ -2578,12 +2578,12 @@ void ieee80211_softmac_scan_syncro(struct ieee80211_device *ieee); + + extern const long ieee80211_wlan_frequencies[]; + +-extern inline void ieee80211_increment_scans(struct ieee80211_device *ieee) ++static inline void ieee80211_increment_scans(struct ieee80211_device *ieee) + { + ieee->scans++; + } + +-extern inline int ieee80211_get_scans(struct ieee80211_device *ieee) ++static inline int ieee80211_get_scans(struct ieee80211_device *ieee) + { + return ieee->scans; + } +diff --git a/drivers/staging/rtl8712/ieee80211.h b/drivers/staging/rtl8712/ieee80211.h +index da4000e..8269be8 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; +