[OpenWrt-Devel] [PATCH CC] kernel: take bcm47xx_nvram.h from kernel and not backports

Matthias Schiffer mschiffer at universe-factory.net
Mon Feb 29 20:31:23 EST 2016


compat-wireless/backports now contains a bcm47xx_nvram.h file to
backport some of the functions in it which are used by the bcmfmac
driver. This file just checks for the kernel versions and provide an
empty implementations on older kernel versions. This is OK on most
systems, but on bcm47xx / bcm53xx systems we want to call the real
functions here. This commit removes the file from backports in our
build process like we do it with the bcma and ssb header files. Instead
we add a recent version into our kernel so all code uses only one
header file. On bcm47xx / bcm53xx the real implementations of this code
will be used.

Reported-by: Hante Meuleman <meuleman at broadcom.com>
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
[Backport of r47467. The recent mac80211 backport was missing this patch,
breaking the build of the brcmfmac module]
Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
---

This fixes the compile failure of the brcmfmac module (and thus ALL_KMODS
builds) in CC after the latest mac80211 backport. Compile tested kernel
and mac80211 with ALL_KMODS on brcm47xx and bcm53xx.


 .../bcm53xx/files/include/linux/bcm47xx_nvram.h    | 49 --------------------
 ...xx-Move-NVRAM-header-to-the-include-linux.patch | 37 ---------------
 ...x-allow-retrieval-of-complete-nvram-conte.patch | 36 ---------------
 .../patches-3.18/030-backport_bcm47xx_nvram.patch  | 52 ++++++++++++++++++++++
 4 files changed, 52 insertions(+), 122 deletions(-)
 delete mode 100644 target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h
 create mode 100644 target/linux/generic/patches-3.18/030-backport_bcm47xx_nvram.patch

diff --git a/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h b/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h
deleted file mode 100644
index 2793652..0000000
--- a/target/linux/bcm53xx/files/include/linux/bcm47xx_nvram.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  This program is free software; you can redistribute  it and/or modify it
- *  under  the terms of  the GNU General  Public License as published by the
- *  Free Software Foundation;  either version 2 of the  License, or (at your
- *  option) any later version.
- */
-
-#ifndef __BCM47XX_NVRAM_H
-#define __BCM47XX_NVRAM_H
-
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/vmalloc.h>
-
-#ifdef CONFIG_BCM47XX_NVRAM
-int bcm47xx_nvram_init_from_mem(u32 base, u32 lim);
-int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len);
-int bcm47xx_nvram_gpio_pin(const char *name);
-char *bcm47xx_nvram_get_contents(size_t *val_len);
-static inline void bcm47xx_nvram_release_contents(char *nvram)
-{
-	vfree(nvram);
-};
-#else
-static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim)
-{
-	return -ENOTSUPP;
-};
-static inline int bcm47xx_nvram_getenv(const char *name, char *val,
-				       size_t val_len)
-{
-	return -ENOTSUPP;
-};
-static inline int bcm47xx_nvram_gpio_pin(const char *name)
-{
-	return -ENOTSUPP;
-};
-
-static inline char *bcm47xx_nvram_get_contents(size_t *val_len)
-{
-	return NULL;
-};
-
-static inline void bcm47xx_nvram_release_contents(char *nvram)
-{
-};
-#endif
-
-#endif /* __BCM47XX_NVRAM_H */
diff --git a/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch b/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch
index c1c0927..e9e3873 100644
--- a/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch
+++ b/target/linux/brcm47xx/patches-3.18/031-05-MIPS-BCM47xx-Move-NVRAM-header-to-the-include-linux.patch
@@ -182,40 +182,3 @@ Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
  #endif
  
  #include "ssb_private.h"
---- /dev/null
-+++ b/include/linux/bcm47xx_nvram.h
-@@ -0,0 +1,34 @@
-+/*
-+ *  This program is free software; you can redistribute  it and/or modify it
-+ *  under  the terms of  the GNU General  Public License as published by the
-+ *  Free Software Foundation;  either version 2 of the  License, or (at your
-+ *  option) any later version.
-+ */
-+
-+#ifndef __BCM47XX_NVRAM_H
-+#define __BCM47XX_NVRAM_H
-+
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+
-+#ifdef CONFIG_BCM47XX
-+int bcm47xx_nvram_init_from_mem(u32 base, u32 lim);
-+int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len);
-+int bcm47xx_nvram_gpio_pin(const char *name);
-+#else
-+static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim)
-+{
-+	return -ENOTSUPP;
-+};
-+static inline int bcm47xx_nvram_getenv(const char *name, char *val,
-+				       size_t val_len)
-+{
-+	return -ENOTSUPP;
-+};
-+static inline int bcm47xx_nvram_gpio_pin(const char *name)
-+{
-+	return -ENOTSUPP;
-+};
-+#endif
-+
-+#endif /* __BCM47XX_NVRAM_H */
diff --git a/target/linux/brcm47xx/patches-3.18/032-08-mips-bcm47xx-allow-retrieval-of-complete-nvram-conte.patch b/target/linux/brcm47xx/patches-3.18/032-08-mips-bcm47xx-allow-retrieval-of-complete-nvram-conte.patch
index 105c651..254be46 100644
--- a/target/linux/brcm47xx/patches-3.18/032-08-mips-bcm47xx-allow-retrieval-of-complete-nvram-conte.patch
+++ b/target/linux/brcm47xx/patches-3.18/032-08-mips-bcm47xx-allow-retrieval-of-complete-nvram-conte.patch
@@ -119,39 +119,3 @@ Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
 +	return nvram;
 +}
 +EXPORT_SYMBOL(bcm47xx_nvram_get_contents);
---- a/include/linux/bcm47xx_nvram.h
-+++ b/include/linux/bcm47xx_nvram.h
-@@ -10,11 +10,17 @@
- 
- #include <linux/types.h>
- #include <linux/kernel.h>
-+#include <linux/vmalloc.h>
- 
- #ifdef CONFIG_BCM47XX
- int bcm47xx_nvram_init_from_mem(u32 base, u32 lim);
- int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len);
- int bcm47xx_nvram_gpio_pin(const char *name);
-+char *bcm47xx_nvram_get_contents(size_t *val_len);
-+static inline void bcm47xx_nvram_release_contents(char *nvram)
-+{
-+	vfree(nvram);
-+};
- #else
- static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim)
- {
-@@ -29,6 +35,15 @@ static inline int bcm47xx_nvram_gpio_pin
- {
- 	return -ENOTSUPP;
- };
-+
-+static inline char *bcm47xx_nvram_get_contents(size_t *val_len)
-+{
-+	return NULL;
-+};
-+
-+static inline void bcm47xx_nvram_release_contents(char *nvram)
-+{
-+};
- #endif
- 
- #endif /* __BCM47XX_NVRAM_H */
diff --git a/target/linux/generic/patches-3.18/030-backport_bcm47xx_nvram.patch b/target/linux/generic/patches-3.18/030-backport_bcm47xx_nvram.patch
new file mode 100644
index 0000000..7ae8b1d
--- /dev/null
+++ b/target/linux/generic/patches-3.18/030-backport_bcm47xx_nvram.patch
@@ -0,0 +1,52 @@
+--- /dev/null
++++ b/include/linux/bcm47xx_nvram.h
+@@ -0,0 +1,49 @@
++/*
++ *  This program is free software; you can redistribute  it and/or modify it
++ *  under  the terms of  the GNU General  Public License as published by the
++ *  Free Software Foundation;  either version 2 of the  License, or (at your
++ *  option) any later version.
++ */
++
++#ifndef __BCM47XX_NVRAM_H
++#define __BCM47XX_NVRAM_H
++
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <linux/vmalloc.h>
++
++#ifdef CONFIG_BCM47XX_NVRAM
++int bcm47xx_nvram_init_from_mem(u32 base, u32 lim);
++int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len);
++int bcm47xx_nvram_gpio_pin(const char *name);
++char *bcm47xx_nvram_get_contents(size_t *val_len);
++static inline void bcm47xx_nvram_release_contents(char *nvram)
++{
++	vfree(nvram);
++};
++#else
++static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim)
++{
++	return -ENOTSUPP;
++};
++static inline int bcm47xx_nvram_getenv(const char *name, char *val,
++				       size_t val_len)
++{
++	return -ENOTSUPP;
++};
++static inline int bcm47xx_nvram_gpio_pin(const char *name)
++{
++	return -ENOTSUPP;
++};
++
++static inline char *bcm47xx_nvram_get_contents(size_t *val_len)
++{
++	return NULL;
++};
++
++static inline void bcm47xx_nvram_release_contents(char *nvram)
++{
++};
++#endif
++
++#endif /* __BCM47XX_NVRAM_H */
-- 
2.7.2
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list