forked from luck/tmp_suning_uos_patched
drm/fb_helper: Create wrappers for fb_sys_read/write funcs
Some drm drivers populate their fb_ops with fb_sys_read/write fb sysfs ops. Create a drm_fb_helper function that wraps around these calls. This is part of an effort to prevent drm drivers from calling fbdev functions directly, in order to make fbdev emulation a top level drm option. v3: - Fix kerneldoc errors v2: - Added kerneldocs - Follow the drm way of aligning of arguments in func definitions - Remove unnecessary checks for non NULL fb_info Signed-off-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
47074ab795
commit
cbb1a82e56
|
@ -37,6 +37,7 @@ config DRM_KMS_FB_HELPER
|
||||||
select FB
|
select FB
|
||||||
select FRAMEBUFFER_CONSOLE if !EXPERT
|
select FRAMEBUFFER_CONSOLE if !EXPERT
|
||||||
select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
|
select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
|
||||||
|
select FB_SYS_FOPS
|
||||||
help
|
help
|
||||||
FBDEV helpers for KMS drivers.
|
FBDEV helpers for KMS drivers.
|
||||||
|
|
||||||
|
|
|
@ -761,6 +761,38 @@ void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_fb_helper_unlink_fbi);
|
EXPORT_SYMBOL(drm_fb_helper_unlink_fbi);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* drm_fb_helper_sys_read - wrapper around fb_sys_read
|
||||||
|
* @info: fb_info struct pointer
|
||||||
|
* @buf: userspace buffer to read from framebuffer memory
|
||||||
|
* @count: number of bytes to read from framebuffer memory
|
||||||
|
* @ppos: read offset within framebuffer memory
|
||||||
|
*
|
||||||
|
* A wrapper around fb_sys_read implemented by fbdev core
|
||||||
|
*/
|
||||||
|
ssize_t drm_fb_helper_sys_read(struct fb_info *info, char __user *buf,
|
||||||
|
size_t count, loff_t *ppos)
|
||||||
|
{
|
||||||
|
return fb_sys_read(info, buf, count, ppos);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_fb_helper_sys_read);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* drm_fb_helper_sys_write - wrapper around fb_sys_write
|
||||||
|
* @info: fb_info struct pointer
|
||||||
|
* @buf: userspace buffer to write to framebuffer memory
|
||||||
|
* @count: number of bytes to write to framebuffer memory
|
||||||
|
* @ppos: write offset within framebuffer memory
|
||||||
|
*
|
||||||
|
* A wrapper around fb_sys_write implemented by fbdev core
|
||||||
|
*/
|
||||||
|
ssize_t drm_fb_helper_sys_write(struct fb_info *info, const char __user *buf,
|
||||||
|
size_t count, loff_t *ppos)
|
||||||
|
{
|
||||||
|
return fb_sys_write(info, buf, count, ppos);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_fb_helper_sys_write);
|
||||||
|
|
||||||
static int setcolreg(struct drm_crtc *crtc, u16 red, u16 green,
|
static int setcolreg(struct drm_crtc *crtc, u16 red, u16 green,
|
||||||
u16 blue, u16 regno, struct fb_info *info)
|
u16 blue, u16 regno, struct fb_info *info)
|
||||||
{
|
{
|
||||||
|
|
|
@ -147,6 +147,11 @@ void drm_fb_helper_fill_fix(struct fb_info *info, uint32_t pitch,
|
||||||
|
|
||||||
void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
|
void drm_fb_helper_unlink_fbi(struct drm_fb_helper *fb_helper);
|
||||||
|
|
||||||
|
ssize_t drm_fb_helper_sys_read(struct fb_info *info, char __user *buf,
|
||||||
|
size_t count, loff_t *ppos);
|
||||||
|
ssize_t drm_fb_helper_sys_write(struct fb_info *info, const char __user *buf,
|
||||||
|
size_t count, loff_t *ppos);
|
||||||
|
|
||||||
int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info);
|
int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info);
|
||||||
|
|
||||||
int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper);
|
int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user