mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 00:51:44 +00:00
drm/rockchip: rockchip_drm_fb -> drm_framebuffer
Now that rockchip_drm_fb is just a wrapper around drm_framebuffer, we can remove it. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Acked-by: Heiko Stübner <heiko@sntech.de> Tested-by: Heiko Stübner <heiko@sntech.de> Cc: Sandy Huang <hjc@rock-chips.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180330141138.28987-5-daniels@collabora.com
This commit is contained in:
parent
4c7c9a63f2
commit
957428f993
@ -25,21 +25,6 @@
|
|||||||
#include "rockchip_drm_gem.h"
|
#include "rockchip_drm_gem.h"
|
||||||
#include "rockchip_drm_psr.h"
|
#include "rockchip_drm_psr.h"
|
||||||
|
|
||||||
#define to_rockchip_fb(x) container_of(x, struct rockchip_drm_fb, fb)
|
|
||||||
|
|
||||||
struct rockchip_drm_fb {
|
|
||||||
struct drm_framebuffer fb;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct drm_gem_object *rockchip_fb_get_gem_obj(struct drm_framebuffer *fb,
|
|
||||||
unsigned int plane)
|
|
||||||
{
|
|
||||||
if (plane >= ROCKCHIP_MAX_FB_BUFFER)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return fb->obj[plane];
|
|
||||||
}
|
|
||||||
|
|
||||||
static int rockchip_drm_fb_dirty(struct drm_framebuffer *fb,
|
static int rockchip_drm_fb_dirty(struct drm_framebuffer *fb,
|
||||||
struct drm_file *file,
|
struct drm_file *file,
|
||||||
unsigned int flags, unsigned int color,
|
unsigned int flags, unsigned int color,
|
||||||
@ -56,41 +41,40 @@ static const struct drm_framebuffer_funcs rockchip_drm_fb_funcs = {
|
|||||||
.dirty = rockchip_drm_fb_dirty,
|
.dirty = rockchip_drm_fb_dirty,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct rockchip_drm_fb *
|
static struct drm_framebuffer *
|
||||||
rockchip_fb_alloc(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd,
|
rockchip_fb_alloc(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd,
|
||||||
struct drm_gem_object **obj, unsigned int num_planes)
|
struct drm_gem_object **obj, unsigned int num_planes)
|
||||||
{
|
{
|
||||||
struct rockchip_drm_fb *rockchip_fb;
|
struct drm_framebuffer *fb;
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
rockchip_fb = kzalloc(sizeof(*rockchip_fb), GFP_KERNEL);
|
fb = kzalloc(sizeof(*fb), GFP_KERNEL);
|
||||||
if (!rockchip_fb)
|
if (!fb)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
drm_helper_mode_fill_fb_struct(dev, &rockchip_fb->fb, mode_cmd);
|
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
|
||||||
|
|
||||||
for (i = 0; i < num_planes; i++)
|
for (i = 0; i < num_planes; i++)
|
||||||
rockchip_fb->fb.obj[i] = obj[i];
|
fb->obj[i] = obj[i];
|
||||||
|
|
||||||
ret = drm_framebuffer_init(dev, &rockchip_fb->fb,
|
ret = drm_framebuffer_init(dev, fb, &rockchip_drm_fb_funcs);
|
||||||
&rockchip_drm_fb_funcs);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
DRM_DEV_ERROR(dev->dev,
|
DRM_DEV_ERROR(dev->dev,
|
||||||
"Failed to initialize framebuffer: %d\n",
|
"Failed to initialize framebuffer: %d\n",
|
||||||
ret);
|
ret);
|
||||||
kfree(rockchip_fb);
|
kfree(fb);
|
||||||
return ERR_PTR(ret);
|
return ERR_PTR(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rockchip_fb;
|
return fb;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct drm_framebuffer *
|
static struct drm_framebuffer *
|
||||||
rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
|
rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
|
||||||
const struct drm_mode_fb_cmd2 *mode_cmd)
|
const struct drm_mode_fb_cmd2 *mode_cmd)
|
||||||
{
|
{
|
||||||
struct rockchip_drm_fb *rockchip_fb;
|
struct drm_framebuffer *fb;
|
||||||
struct drm_gem_object *objs[ROCKCHIP_MAX_FB_BUFFER];
|
struct drm_gem_object *objs[ROCKCHIP_MAX_FB_BUFFER];
|
||||||
struct drm_gem_object *obj;
|
struct drm_gem_object *obj;
|
||||||
unsigned int hsub;
|
unsigned int hsub;
|
||||||
@ -129,13 +113,13 @@ rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
|
|||||||
objs[i] = obj;
|
objs[i] = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
rockchip_fb = rockchip_fb_alloc(dev, mode_cmd, objs, i);
|
fb = rockchip_fb_alloc(dev, mode_cmd, objs, i);
|
||||||
if (IS_ERR(rockchip_fb)) {
|
if (IS_ERR(fb)) {
|
||||||
ret = PTR_ERR(rockchip_fb);
|
ret = PTR_ERR(fb);
|
||||||
goto err_gem_object_unreference;
|
goto err_gem_object_unreference;
|
||||||
}
|
}
|
||||||
|
|
||||||
return &rockchip_fb->fb;
|
return fb;
|
||||||
|
|
||||||
err_gem_object_unreference:
|
err_gem_object_unreference:
|
||||||
for (i--; i >= 0; i--)
|
for (i--; i >= 0; i--)
|
||||||
@ -218,13 +202,13 @@ rockchip_drm_framebuffer_init(struct drm_device *dev,
|
|||||||
const struct drm_mode_fb_cmd2 *mode_cmd,
|
const struct drm_mode_fb_cmd2 *mode_cmd,
|
||||||
struct drm_gem_object *obj)
|
struct drm_gem_object *obj)
|
||||||
{
|
{
|
||||||
struct rockchip_drm_fb *rockchip_fb;
|
struct drm_framebuffer *fb;
|
||||||
|
|
||||||
rockchip_fb = rockchip_fb_alloc(dev, mode_cmd, &obj, 1);
|
fb = rockchip_fb_alloc(dev, mode_cmd, &obj, 1);
|
||||||
if (IS_ERR(rockchip_fb))
|
if (IS_ERR(fb))
|
||||||
return ERR_CAST(rockchip_fb);
|
return ERR_CAST(fb);
|
||||||
|
|
||||||
return &rockchip_fb->fb;
|
return fb;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rockchip_drm_mode_config_init(struct drm_device *dev)
|
void rockchip_drm_mode_config_init(struct drm_device *dev)
|
||||||
|
@ -22,7 +22,4 @@ rockchip_drm_framebuffer_init(struct drm_device *dev,
|
|||||||
void rockchip_drm_framebuffer_fini(struct drm_framebuffer *fb);
|
void rockchip_drm_framebuffer_fini(struct drm_framebuffer *fb);
|
||||||
|
|
||||||
void rockchip_drm_mode_config_init(struct drm_device *dev);
|
void rockchip_drm_mode_config_init(struct drm_device *dev);
|
||||||
|
|
||||||
struct drm_gem_object *rockchip_fb_get_gem_obj(struct drm_framebuffer *fb,
|
|
||||||
unsigned int plane);
|
|
||||||
#endif /* _ROCKCHIP_DRM_FB_H */
|
#endif /* _ROCKCHIP_DRM_FB_H */
|
||||||
|
@ -728,7 +728,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
obj = rockchip_fb_get_gem_obj(fb, 0);
|
obj = fb->obj[0];
|
||||||
rk_obj = to_rockchip_obj(obj);
|
rk_obj = to_rockchip_obj(obj);
|
||||||
|
|
||||||
actual_w = drm_rect_width(src) >> 16;
|
actual_w = drm_rect_width(src) >> 16;
|
||||||
@ -758,7 +758,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane,
|
|||||||
int vsub = drm_format_vert_chroma_subsampling(fb->format->format);
|
int vsub = drm_format_vert_chroma_subsampling(fb->format->format);
|
||||||
int bpp = fb->format->cpp[1];
|
int bpp = fb->format->cpp[1];
|
||||||
|
|
||||||
uv_obj = rockchip_fb_get_gem_obj(fb, 1);
|
uv_obj = fb->obj[1];
|
||||||
rk_uv_obj = to_rockchip_obj(uv_obj);
|
rk_uv_obj = to_rockchip_obj(uv_obj);
|
||||||
|
|
||||||
offset = (src->x1 >> 16) * bpp / hsub;
|
offset = (src->x1 >> 16) * bpp / hsub;
|
||||||
|
Loading…
Reference in New Issue
Block a user