diff options
author | Hauke Mehrtens <hauke@openwrt.org> | 2012-05-03 20:18:41 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@openwrt.org> | 2012-05-03 20:18:41 +0000 |
commit | a56ea99b6d46a94c52971854edb5af0a2df9d564 (patch) | |
tree | 5244cf8b56b2b405ee9d319ad684fbd3343ba54d /target/linux/brcm47xx/patches-3.3/400-arch-bcm47xx.patch | |
parent | c84a22dde3abc22b94d4ddfcae192bb1b0d89baf (diff) | |
download | upstream-a56ea99b6d46a94c52971854edb5af0a2df9d564.tar.gz upstream-a56ea99b6d46a94c52971854edb5af0a2df9d564.tar.bz2 upstream-a56ea99b6d46a94c52971854edb5af0a2df9d564.zip |
brcm47xx: add support for kernel 3.3
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31573 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm47xx/patches-3.3/400-arch-bcm47xx.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.3/400-arch-bcm47xx.patch | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/target/linux/brcm47xx/patches-3.3/400-arch-bcm47xx.patch b/target/linux/brcm47xx/patches-3.3/400-arch-bcm47xx.patch new file mode 100644 index 0000000000..0933fb6959 --- /dev/null +++ b/target/linux/brcm47xx/patches-3.3/400-arch-bcm47xx.patch @@ -0,0 +1,56 @@ +--- a/arch/mips/bcm47xx/nvram.c ++++ b/arch/mips/bcm47xx/nvram.c +@@ -269,3 +269,30 @@ int nvram_getenv(char *name, char *val, + return NVRAM_ERR_ENVNOTFOUND; + } + EXPORT_SYMBOL(nvram_getenv); ++ ++char *nvram_get(const char *name) ++{ ++ char *var, *value, *end, *eq; ++ ++ if (!name) ++ return NULL; ++ ++ if (!nvram_buf[0]) ++ early_nvram_init(); ++ ++ /* Look for name=value and return value */ ++ var = &nvram_buf[sizeof(struct nvram_header)]; ++ end = nvram_buf + sizeof(nvram_buf) - 2; ++ end[0] = end[1] = '\0'; ++ for (; *var; var = value + strlen(value) + 1) { ++ eq = strchr(var, '='); ++ if (!eq) ++ break; ++ value = eq + 1; ++ if ((eq - var) == strlen(name) && strncmp(var, name, (eq - var)) == 0) ++ return value; ++ } ++ ++ return NULL; ++} ++EXPORT_SYMBOL(nvram_get); +--- a/arch/mips/bcm47xx/setup.c ++++ b/arch/mips/bcm47xx/setup.c +@@ -384,3 +384,20 @@ static int __init bcm47xx_register_flash + return -1; + } + fs_initcall(bcm47xx_register_flash); ++ ++static int __init bcm47xx_register_gpiodev(void) ++{ ++ static struct resource res = { ++ .start = 0xFFFFFFFF, ++ }; ++ struct platform_device *pdev; ++ ++ pdev = platform_device_register_simple("GPIODEV", 0, &res, 1); ++ if (!pdev) { ++ printk(KERN_ERR "bcm47xx: GPIODEV init failed\n"); ++ return -ENODEV; ++ } ++ ++ return 0; ++} ++device_initcall(bcm47xx_register_gpiodev); |