forked from luck/tmp_suning_uos_patched
fe2d70d6f6
These are actually fbcon ioctls which just happen to be exposed through /dev/fb*. They completely ignore which fb_info they're called on, and I think the userspace tool even hardcodes to /dev/fb0. Hence just forward the entire thing to fbcon.c wholesale. Note that this patch drops the fb_lock/unlock on the set side. Since the ioctl can operate on any fb (as passed in through con2fb.framebuffer) this is bogus. Also note that fbcon.c in general never calls fb_lock on anything, so this has been badly broken already. With this the last user of the fbcon notifier callback is gone, and we can garbage collect that too. v2: add missing uaccess.h include (alpha fails to compile otherwise), reported by kbuild. v3: Remember to also drop the #defines (Maarten) v4: Add the static inline to dummy functions. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Yisheng Xie <ysxie@foxmail.com> Cc: "Michał Mirosław" <mirq-linux@rere.qmqm.pl> Cc: Peter Rosin <peda@axentia.se> Cc: Mikulas Patocka <mpatocka@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190528090304.9388-31-daniel.vetter@ffwll.ch
43 lines
1.9 KiB
C
43 lines
1.9 KiB
C
#ifndef _LINUX_FBCON_H
|
|
#define _LINUX_FBCON_H
|
|
|
|
#ifdef CONFIG_FRAMEBUFFER_CONSOLE
|
|
void __init fb_console_init(void);
|
|
void __exit fb_console_exit(void);
|
|
int fbcon_fb_registered(struct fb_info *info);
|
|
void fbcon_fb_unregistered(struct fb_info *info);
|
|
void fbcon_fb_unbind(struct fb_info *info);
|
|
void fbcon_suspended(struct fb_info *info);
|
|
void fbcon_resumed(struct fb_info *info);
|
|
int fbcon_mode_deleted(struct fb_info *info,
|
|
struct fb_videomode *mode);
|
|
void fbcon_new_modelist(struct fb_info *info);
|
|
void fbcon_get_requirement(struct fb_info *info,
|
|
struct fb_blit_caps *caps);
|
|
void fbcon_fb_blanked(struct fb_info *info, int blank);
|
|
void fbcon_update_vcs(struct fb_info *info, bool all);
|
|
void fbcon_remap_all(struct fb_info *info);
|
|
int fbcon_set_con2fb_map_ioctl(void __user *argp);
|
|
int fbcon_get_con2fb_map_ioctl(void __user *argp);
|
|
#else
|
|
static inline void fb_console_init(void) {}
|
|
static inline void fb_console_exit(void) {}
|
|
static inline int fbcon_fb_registered(struct fb_info *info) { return 0; }
|
|
static inline void fbcon_fb_unregistered(struct fb_info *info) {}
|
|
static inline void fbcon_fb_unbind(struct fb_info *info) {}
|
|
static inline void fbcon_suspended(struct fb_info *info) {}
|
|
static inline void fbcon_resumed(struct fb_info *info) {}
|
|
static inline int fbcon_mode_deleted(struct fb_info *info,
|
|
struct fb_videomode *mode) { return 0; }
|
|
static inline void fbcon_new_modelist(struct fb_info *info) {}
|
|
static inline void fbcon_get_requirement(struct fb_info *info,
|
|
struct fb_blit_caps *caps) {}
|
|
static inline void fbcon_fb_blanked(struct fb_info *info, int blank) {}
|
|
static inline void fbcon_update_vcs(struct fb_info *info, bool all) {}
|
|
static inline void fbcon_remap_all(struct fb_info *info) {}
|
|
static inline int fbcon_set_con2fb_map_ioctl(void __user *argp) { return 0; }
|
|
static inline int fbcon_get_con2fb_map_ioctl(void __user *argp) { return 0; }
|
|
#endif
|
|
|
|
#endif /* _LINUX_FBCON_H */
|