[RFC v2 17/24] powerpc, fbdev: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte()
Make use of arch_nvram_ops in device drivers so that the nvram_* function exports can be removed. Since they are no longer global symbols, rename the PPC32 nvram_* functions appropriately. Add the missing CONFIG_NVRAM test to imsttfb to avoid a build failure. Signed-off-by: Finn Thain --- arch/powerpc/kernel/setup_32.c |8 drivers/char/generic_nvram.c |4 ++-- drivers/video/fbdev/controlfb.c|4 ++-- drivers/video/fbdev/imsttfb.c |7 +++ drivers/video/fbdev/matrox/matroxfb_base.c |2 +- drivers/video/fbdev/platinumfb.c |4 ++-- drivers/video/fbdev/valkyriefb.c |4 ++-- 7 files changed, 16 insertions(+), 17 deletions(-) Index: linux/arch/powerpc/kernel/setup_32.c === --- linux.orig/arch/powerpc/kernel/setup_32.c 2015-06-14 17:45:53.0 +1000 +++ linux/arch/powerpc/kernel/setup_32.c2015-06-14 17:45:54.0 +1000 @@ -170,20 +170,18 @@ __setup("l3cr=", ppc_setup_l3cr); #ifdef CONFIG_GENERIC_NVRAM -unsigned char nvram_read_byte(int addr) +static unsigned char ppc_nvram_read_byte(int addr) { if (ppc_md.nvram_read_val) return ppc_md.nvram_read_val(addr); return 0xff; } -EXPORT_SYMBOL(nvram_read_byte); -void nvram_write_byte(unsigned char val, int addr) +static void ppc_nvram_write_byte(unsigned char val, int addr) { if (ppc_md.nvram_write_val) ppc_md.nvram_write_val(addr, val); } -EXPORT_SYMBOL(nvram_write_byte); static ssize_t ppc_nvram_get_size(void) { @@ -200,6 +198,8 @@ static long ppc_nvram_sync(void) } const struct nvram_ops arch_nvram_ops = { + .read_byte = ppc_nvram_read_byte, + .write_byte = ppc_nvram_write_byte, .get_size = ppc_nvram_get_size, .sync = ppc_nvram_sync, }; Index: linux/drivers/char/generic_nvram.c === --- linux.orig/drivers/char/generic_nvram.c 2015-06-14 17:45:53.0 +1000 +++ linux/drivers/char/generic_nvram.c 2015-06-14 17:45:54.0 +1000 @@ -64,7 +64,7 @@ static ssize_t read_nvram(struct file *f if (*ppos >= nvram_len) return 0; for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count) - if (__put_user(nvram_read_byte(i), p)) + if (__put_user(arch_nvram_ops.read_byte(i), p)) return -EFAULT; *ppos = i; return p - buf; @@ -84,7 +84,7 @@ static ssize_t write_nvram(struct file * for (i = *ppos; count > 0 && i < nvram_len; ++i, ++p, --count) { if (__get_user(c, p)) return -EFAULT; - nvram_write_byte(c, i); + arch_nvram_ops.write_byte(c, i); } *ppos = i; return p - buf; Index: linux/drivers/video/fbdev/controlfb.c === --- linux.orig/drivers/video/fbdev/controlfb.c 2015-06-14 17:45:34.0 +1000 +++ linux/drivers/video/fbdev/controlfb.c 2015-06-14 17:45:54.0 +1000 @@ -415,7 +415,7 @@ static int __init init_control(struct fb /* Try to pick a video mode out of NVRAM if we have one. */ #ifdef CONFIG_NVRAM if (default_cmode == CMODE_NVRAM) { - cmode = nvram_read_byte(NV_CMODE); + cmode = arch_nvram_ops.read_byte(NV_CMODE); if(cmode < CMODE_8 || cmode > CMODE_32) cmode = CMODE_8; } else @@ -423,7 +423,7 @@ static int __init init_control(struct fb cmode=default_cmode; #ifdef CONFIG_NVRAM if (default_vmode == VMODE_NVRAM) { - vmode = nvram_read_byte(NV_VMODE); + vmode = arch_nvram_ops.read_byte(NV_VMODE); if (vmode < 1 || vmode > VMODE_MAX || control_mac_modes[vmode - 1].m[full] < cmode) { sense = read_control_sense(p); Index: linux/drivers/video/fbdev/matrox/matroxfb_base.c === --- linux.orig/drivers/video/fbdev/matrox/matroxfb_base.c 2015-06-14 17:45:49.0 +1000 +++ linux/drivers/video/fbdev/matrox/matroxfb_base.c2015-06-14 17:45:54.0 +1000 @@ -1888,7 +1888,7 @@ static int initMatrox2(struct matrox_fb_ default_vmode = VMODE_640_480_60; #ifdef CONFIG_NVRAM if (default_cmode == CMODE_NVRAM) - default_cmode = nvram_read_byte(NV_CMODE); + default_cmode = arch_nvram_ops.read_byte(NV_CMODE); #endif if (default_cmode < CMODE_8 || default_cmode > CMODE_32) default_cmode = CMODE_8; Index: linux/drivers/video/fbdev/platinumfb.c === ---
[RFC v2 17/24] powerpc, fbdev: Use arch_nvram_ops methods instead of nvram_read_byte() and nvram_write_byte()
Make use of arch_nvram_ops in device drivers so that the nvram_* function exports can be removed. Since they are no longer global symbols, rename the PPC32 nvram_* functions appropriately. Add the missing CONFIG_NVRAM test to imsttfb to avoid a build failure. Signed-off-by: Finn Thain fth...@telegraphics.com.au --- arch/powerpc/kernel/setup_32.c |8 drivers/char/generic_nvram.c |4 ++-- drivers/video/fbdev/controlfb.c|4 ++-- drivers/video/fbdev/imsttfb.c |7 +++ drivers/video/fbdev/matrox/matroxfb_base.c |2 +- drivers/video/fbdev/platinumfb.c |4 ++-- drivers/video/fbdev/valkyriefb.c |4 ++-- 7 files changed, 16 insertions(+), 17 deletions(-) Index: linux/arch/powerpc/kernel/setup_32.c === --- linux.orig/arch/powerpc/kernel/setup_32.c 2015-06-14 17:45:53.0 +1000 +++ linux/arch/powerpc/kernel/setup_32.c2015-06-14 17:45:54.0 +1000 @@ -170,20 +170,18 @@ __setup(l3cr=, ppc_setup_l3cr); #ifdef CONFIG_GENERIC_NVRAM -unsigned char nvram_read_byte(int addr) +static unsigned char ppc_nvram_read_byte(int addr) { if (ppc_md.nvram_read_val) return ppc_md.nvram_read_val(addr); return 0xff; } -EXPORT_SYMBOL(nvram_read_byte); -void nvram_write_byte(unsigned char val, int addr) +static void ppc_nvram_write_byte(unsigned char val, int addr) { if (ppc_md.nvram_write_val) ppc_md.nvram_write_val(addr, val); } -EXPORT_SYMBOL(nvram_write_byte); static ssize_t ppc_nvram_get_size(void) { @@ -200,6 +198,8 @@ static long ppc_nvram_sync(void) } const struct nvram_ops arch_nvram_ops = { + .read_byte = ppc_nvram_read_byte, + .write_byte = ppc_nvram_write_byte, .get_size = ppc_nvram_get_size, .sync = ppc_nvram_sync, }; Index: linux/drivers/char/generic_nvram.c === --- linux.orig/drivers/char/generic_nvram.c 2015-06-14 17:45:53.0 +1000 +++ linux/drivers/char/generic_nvram.c 2015-06-14 17:45:54.0 +1000 @@ -64,7 +64,7 @@ static ssize_t read_nvram(struct file *f if (*ppos = nvram_len) return 0; for (i = *ppos; count 0 i nvram_len; ++i, ++p, --count) - if (__put_user(nvram_read_byte(i), p)) + if (__put_user(arch_nvram_ops.read_byte(i), p)) return -EFAULT; *ppos = i; return p - buf; @@ -84,7 +84,7 @@ static ssize_t write_nvram(struct file * for (i = *ppos; count 0 i nvram_len; ++i, ++p, --count) { if (__get_user(c, p)) return -EFAULT; - nvram_write_byte(c, i); + arch_nvram_ops.write_byte(c, i); } *ppos = i; return p - buf; Index: linux/drivers/video/fbdev/controlfb.c === --- linux.orig/drivers/video/fbdev/controlfb.c 2015-06-14 17:45:34.0 +1000 +++ linux/drivers/video/fbdev/controlfb.c 2015-06-14 17:45:54.0 +1000 @@ -415,7 +415,7 @@ static int __init init_control(struct fb /* Try to pick a video mode out of NVRAM if we have one. */ #ifdef CONFIG_NVRAM if (default_cmode == CMODE_NVRAM) { - cmode = nvram_read_byte(NV_CMODE); + cmode = arch_nvram_ops.read_byte(NV_CMODE); if(cmode CMODE_8 || cmode CMODE_32) cmode = CMODE_8; } else @@ -423,7 +423,7 @@ static int __init init_control(struct fb cmode=default_cmode; #ifdef CONFIG_NVRAM if (default_vmode == VMODE_NVRAM) { - vmode = nvram_read_byte(NV_VMODE); + vmode = arch_nvram_ops.read_byte(NV_VMODE); if (vmode 1 || vmode VMODE_MAX || control_mac_modes[vmode - 1].m[full] cmode) { sense = read_control_sense(p); Index: linux/drivers/video/fbdev/matrox/matroxfb_base.c === --- linux.orig/drivers/video/fbdev/matrox/matroxfb_base.c 2015-06-14 17:45:49.0 +1000 +++ linux/drivers/video/fbdev/matrox/matroxfb_base.c2015-06-14 17:45:54.0 +1000 @@ -1888,7 +1888,7 @@ static int initMatrox2(struct matrox_fb_ default_vmode = VMODE_640_480_60; #ifdef CONFIG_NVRAM if (default_cmode == CMODE_NVRAM) - default_cmode = nvram_read_byte(NV_CMODE); + default_cmode = arch_nvram_ops.read_byte(NV_CMODE); #endif if (default_cmode CMODE_8 || default_cmode CMODE_32) default_cmode = CMODE_8; Index: linux/drivers/video/fbdev/platinumfb.c