Message ID | 20230502130223.14719-7-tzimmermann@suse.de |
---|---|
State | New |
Headers | show |
Series | fbdev: Move framebuffer I/O helpers to <asm/fb.h> | expand |
Hi Thomas. On Tue, May 02, 2023 at 03:02:23PM +0200, Thomas Zimmermann wrote: > Update the names of the fb_mem*() helpers to be consistent with their > regular counterparts. Hence, fb_memset() now becomes fb_memset_io(), > fb_memcpy_fromfb() now becomes fb_memcpy_fromio() and fb_memcpy_tofb() > becomes fb_memcpy_toio(). No functional changes. > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > --- ... > > -#ifndef fb_memcpy_fromfb > -static inline void fb_memcpy_fromfb(void *to, const volatile void __iomem *from, size_t n) > +#ifndef fb_memcpy_fromio > +static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n) > { > memcpy_fromio(to, from, n); > } > -#define fb_memcpy_fromfb fb_memcpy_fromfb > +#define fb_memcpy_fromio fb_memcpy_fromio > #endif > > -#ifndef fb_memcpy_tofb > -static inline void fb_memcpy_tofb(volatile void __iomem *to, const void *from, size_t n) > +#ifndef fb_memcpy_toio > +static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, size_t n) > { > memcpy_toio(to, from, n); > } > -#define fb_memcpy_tofb fb_memcpy_tofb > +#define fb_memcpy_toio fb_memcpy_toio > #endif > > #ifndef fb_memset > -static inline void fb_memset(volatile void __iomem *addr, int c, size_t n) > +static inline void fb_memset_io(volatile void __iomem *addr, int c, size_t n) > { > memset_io(addr, c, n); > } > -#define fb_memset fb_memset > +#define fb_memset fb_memset_io The static inlines wrappers does not provide any value, and could be replaced by direct calls to memcpy_fromio(), memcpy_toio(), memset_io(). If you decide to keep the wrappers I will not hold you back, so the patch has my: Reviewed-by: Sam Ravnborg <sam@ravnborg.org> But I prefer the direct calls without the wrappers.... Sam
Hi Am 02.05.23 um 22:08 schrieb Sam Ravnborg: > Hi Thomas. > > On Tue, May 02, 2023 at 03:02:23PM +0200, Thomas Zimmermann wrote: >> Update the names of the fb_mem*() helpers to be consistent with their >> regular counterparts. Hence, fb_memset() now becomes fb_memset_io(), >> fb_memcpy_fromfb() now becomes fb_memcpy_fromio() and fb_memcpy_tofb() >> becomes fb_memcpy_toio(). No functional changes. >> >> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> >> --- > ... >> >> -#ifndef fb_memcpy_fromfb >> -static inline void fb_memcpy_fromfb(void *to, const volatile void __iomem *from, size_t n) >> +#ifndef fb_memcpy_fromio >> +static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n) >> { >> memcpy_fromio(to, from, n); >> } >> -#define fb_memcpy_fromfb fb_memcpy_fromfb >> +#define fb_memcpy_fromio fb_memcpy_fromio >> #endif >> >> -#ifndef fb_memcpy_tofb >> -static inline void fb_memcpy_tofb(volatile void __iomem *to, const void *from, size_t n) >> +#ifndef fb_memcpy_toio >> +static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, size_t n) >> { >> memcpy_toio(to, from, n); >> } >> -#define fb_memcpy_tofb fb_memcpy_tofb >> +#define fb_memcpy_toio fb_memcpy_toio >> #endif >> >> #ifndef fb_memset >> -static inline void fb_memset(volatile void __iomem *addr, int c, size_t n) >> +static inline void fb_memset_io(volatile void __iomem *addr, int c, size_t n) >> { >> memset_io(addr, c, n); >> } >> -#define fb_memset fb_memset >> +#define fb_memset fb_memset_io > > The static inlines wrappers does not provide any value, and could be replaced by > direct calls to memcpy_fromio(), memcpy_toio(), memset_io(). > > If you decide to keep the wrappers I will not hold you back, so the > patch has my: > Reviewed-by: Sam Ravnborg <sam@ravnborg.org> > > But I prefer the direct calls without the wrappers.... At first I was also skeptical if those fb_mem*() wrappers are needed. But Arnd mentioned that there are subtle differences between the current code and Linux' mem*_io() functions. Keeping the wrappers might be needed. Best regards Thomas > > Sam
Hi Thomas, On Wed, May 03, 2023 at 10:15:46AM +0200, Thomas Zimmermann wrote: > Hi > > Am 02.05.23 um 22:08 schrieb Sam Ravnborg: > > Hi Thomas. > > > > On Tue, May 02, 2023 at 03:02:23PM +0200, Thomas Zimmermann wrote: > > > Update the names of the fb_mem*() helpers to be consistent with their > > > regular counterparts. Hence, fb_memset() now becomes fb_memset_io(), > > > fb_memcpy_fromfb() now becomes fb_memcpy_fromio() and fb_memcpy_tofb() > > > becomes fb_memcpy_toio(). No functional changes. > > > > > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > > > --- > > ... > > > -#ifndef fb_memcpy_fromfb > > > -static inline void fb_memcpy_fromfb(void *to, const volatile void __iomem *from, size_t n) > > > +#ifndef fb_memcpy_fromio > > > +static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n) > > > { > > > memcpy_fromio(to, from, n); > > > } > > > -#define fb_memcpy_fromfb fb_memcpy_fromfb > > > +#define fb_memcpy_fromio fb_memcpy_fromio > > > #endif > > > -#ifndef fb_memcpy_tofb > > > -static inline void fb_memcpy_tofb(volatile void __iomem *to, const void *from, size_t n) > > > +#ifndef fb_memcpy_toio > > > +static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, size_t n) > > > { > > > memcpy_toio(to, from, n); > > > } > > > -#define fb_memcpy_tofb fb_memcpy_tofb > > > +#define fb_memcpy_toio fb_memcpy_toio > > > #endif > > > #ifndef fb_memset > > > -static inline void fb_memset(volatile void __iomem *addr, int c, size_t n) > > > +static inline void fb_memset_io(volatile void __iomem *addr, int c, size_t n) > > > { > > > memset_io(addr, c, n); > > > } > > > -#define fb_memset fb_memset > > > +#define fb_memset fb_memset_io > > > > The static inlines wrappers does not provide any value, and could be replaced by > > direct calls to memcpy_fromio(), memcpy_toio(), memset_io(). > > > > If you decide to keep the wrappers I will not hold you back, so the > > patch has my: > > Reviewed-by: Sam Ravnborg <sam@ravnborg.org> > > > > But I prefer the direct calls without the wrappers.... > > At first I was also skeptical if those fb_mem*() wrappers are needed. But > Arnd mentioned that there are subtle differences between the current code > and Linux' mem*_io() functions. Keeping the wrappers might be needed. Saw the dialog, and agree that keeping current behaviour is the way to go for now even if this is more code and wrappers. Sam
diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c index a848aaff510c..6adbcf366a98 100644 --- a/drivers/video/fbdev/aty/mach64_cursor.c +++ b/drivers/video/fbdev/aty/mach64_cursor.c @@ -153,7 +153,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor) u8 m, b; // Clear cursor image with 1010101010... - fb_memset(dst, 0xaa, 1024); + fb_memset_io(dst, 0xaa, 1024); offset = align - width*2; diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c index 9f9ee13ba2be..297ca6eeac1e 100644 --- a/drivers/video/fbdev/chipsfb.c +++ b/drivers/video/fbdev/chipsfb.c @@ -333,7 +333,7 @@ static const struct fb_var_screeninfo chipsfb_var = { static void init_chips(struct fb_info *p, unsigned long addr) { - fb_memset(p->screen_base, 0, 0x100000); + fb_memset_io(p->screen_base, 0, 0x100000); p->fix = chipsfb_fix; p->fix.smem_start = addr; diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 3fd95a79e4c3..a696399f2160 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -804,7 +804,7 @@ fb_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) while (count) { c = (count > PAGE_SIZE) ? PAGE_SIZE : count; dst = buffer; - fb_memcpy_fromfb(dst, src, c); + fb_memcpy_fromio(dst, src, c); dst += c; src += c; @@ -881,7 +881,7 @@ fb_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) break; } - fb_memcpy_tofb(dst, src, c); + fb_memcpy_toio(dst, src, c); dst += c; src += c; *ppos += c; diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c index 8b6c3318bf8c..59a6b71fba44 100644 --- a/drivers/video/fbdev/kyro/fbdev.c +++ b/drivers/video/fbdev/kyro/fbdev.c @@ -738,7 +738,7 @@ static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) info->var.bits_per_pixel); size *= info->var.yres_virtual; - fb_memset(info->screen_base, 0, size); + fb_memset_io(info->screen_base, 0, size); if (register_framebuffer(info) < 0) goto out_unmap; diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c index 1dfb75b15eea..5f85207e91f7 100644 --- a/drivers/video/fbdev/pvr2fb.c +++ b/drivers/video/fbdev/pvr2fb.c @@ -800,7 +800,7 @@ static int __maybe_unused pvr2fb_common_init(void) goto out_err; } - fb_memset(fb_info->screen_base, 0, pvr2_fix.smem_len); + fb_memset_io(fb_info->screen_base, 0, pvr2_fix.smem_len); pvr2_fix.ypanstep = nopan ? 0 : 1; pvr2_fix.ywrapstep = nowrap ? 0 : 1; diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index 1ee4bea467b4..327831b64b85 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -335,7 +335,7 @@ static int sst_calc_pll(const int freq, int *freq_out, struct pll_timing *t) static void sstfb_clear_screen(struct fb_info *info) { /* clear screen */ - fb_memset(info->screen_base, 0, info->fix.smem_len); + fb_memset_io(info->screen_base, 0, info->fix.smem_len); } diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c index a3b837a5fb81..93107909155a 100644 --- a/drivers/video/fbdev/stifb.c +++ b/drivers/video/fbdev/stifb.c @@ -529,8 +529,8 @@ rattlerSetupPlanes(struct stifb_info *fb) fb->id = saved_id; for (y = 0; y < fb->info.var.yres; ++y) - fb_memset(fb->info.screen_base + y * fb->info.fix.line_length, - 0xff, fb->info.var.xres * fb->info.var.bits_per_pixel/8); + fb_memset_io(fb->info.screen_base + y * fb->info.fix.line_length, + 0xff, fb->info.var.xres * fb->info.var.bits_per_pixel/8); CRX24_SET_OVLY_MASK(fb); SETUP_FB(fb); diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c index 5ed8f670f51c..bc8108396c22 100644 --- a/drivers/video/fbdev/tdfxfb.c +++ b/drivers/video/fbdev/tdfxfb.c @@ -1117,7 +1117,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor) u8 *mask = (u8 *)cursor->mask; int i; - fb_memset(cursorbase, 0, 1024); + fb_memset_io(cursorbase, 0, 1024); for (i = 0; i < cursor->image.height; i++) { int h = 0; diff --git a/include/asm-generic/fb.h b/include/asm-generic/fb.h index 0540eccdbeca..bb7ee9c70e60 100644 --- a/include/asm-generic/fb.h +++ b/include/asm-generic/fb.h @@ -108,28 +108,28 @@ static inline void fb_writeq(u64 b, volatile void __iomem *addr) #endif #endif -#ifndef fb_memcpy_fromfb -static inline void fb_memcpy_fromfb(void *to, const volatile void __iomem *from, size_t n) +#ifndef fb_memcpy_fromio +static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n) { memcpy_fromio(to, from, n); } -#define fb_memcpy_fromfb fb_memcpy_fromfb +#define fb_memcpy_fromio fb_memcpy_fromio #endif -#ifndef fb_memcpy_tofb -static inline void fb_memcpy_tofb(volatile void __iomem *to, const void *from, size_t n) +#ifndef fb_memcpy_toio +static inline void fb_memcpy_toio(volatile void __iomem *to, const void *from, size_t n) { memcpy_toio(to, from, n); } -#define fb_memcpy_tofb fb_memcpy_tofb +#define fb_memcpy_toio fb_memcpy_toio #endif #ifndef fb_memset -static inline void fb_memset(volatile void __iomem *addr, int c, size_t n) +static inline void fb_memset_io(volatile void __iomem *addr, int c, size_t n) { memset_io(addr, c, n); } -#define fb_memset fb_memset +#define fb_memset fb_memset_io #endif #endif /* __ASM_GENERIC_FB_H_ */
Update the names of the fb_mem*() helpers to be consistent with their regular counterparts. Hence, fb_memset() now becomes fb_memset_io(), fb_memcpy_fromfb() now becomes fb_memcpy_fromio() and fb_memcpy_tofb() becomes fb_memcpy_toio(). No functional changes. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- drivers/video/fbdev/aty/mach64_cursor.c | 2 +- drivers/video/fbdev/chipsfb.c | 2 +- drivers/video/fbdev/core/fbmem.c | 4 ++-- drivers/video/fbdev/kyro/fbdev.c | 2 +- drivers/video/fbdev/pvr2fb.c | 2 +- drivers/video/fbdev/sstfb.c | 2 +- drivers/video/fbdev/stifb.c | 4 ++-- drivers/video/fbdev/tdfxfb.c | 2 +- include/asm-generic/fb.h | 16 ++++++++-------- 9 files changed, 18 insertions(+), 18 deletions(-)