Message ID | 20180330141138.28987-5-daniels@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 30 March 2018 at 15:11, Daniel Stone <daniels@collabora.com> wrote: > Now that rockchip_drm_fb is just a wrapper around drm_framebuffer, we > can remove it. > > Signed-off-by: Daniel Stone <daniels@collabora.com> > Cc: Sandy Huang <hjc@rock-chips.com> > Cc: Heiko Stübner <heiko@sntech.de> Ping? Cheers, Daniel
Hi Daniel, Am Donnerstag, 17. Mai 2018, 15:08:15 CEST schrieb Daniel Stone: > On 30 March 2018 at 15:11, Daniel Stone <daniels@collabora.com> wrote: > > Now that rockchip_drm_fb is just a wrapper around drm_framebuffer, we > > can remove it. > > > > Signed-off-by: Daniel Stone <daniels@collabora.com> > > Cc: Sandy Huang <hjc@rock-chips.com> > > Cc: Heiko Stübner <heiko@sntech.de> > > Ping? I only see the cover-letter (not listing all patches of the series) plus patches 4+5 of the series, nothing else. Both patches seem to reference other previous patches (1-3?) so could you point me at mboxes [patchwork] for those? Thanks Heiko
On Fri, Mar 30, 2018 at 03:11:19PM +0100, Daniel Stone wrote: > 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: Sean Paul <seanpaul@chromium.org> > Cc: Sandy Huang <hjc@rock-chips.com> > Cc: Heiko Stübner <heiko@sntech.de> > --- > drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 54 ++++++++++------------------- > drivers/gpu/drm/rockchip/rockchip_drm_fb.h | 3 -- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 +-- > 3 files changed, 21 insertions(+), 40 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > index d7083c07c294..a4d0a00abcd9 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > @@ -25,21 +25,6 @@ > #include "rockchip_drm_gem.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, > struct drm_file *file, > 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, > }; > > -static struct rockchip_drm_fb * > +static struct drm_framebuffer * > 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 rockchip_drm_fb *rockchip_fb; > + struct drm_framebuffer *fb; > int ret; > int i; > > - rockchip_fb = kzalloc(sizeof(*rockchip_fb), GFP_KERNEL); > - if (!rockchip_fb) > + fb = kzalloc(sizeof(*fb), GFP_KERNEL); > + if (!fb) > 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++) > - rockchip_fb->fb.obj[i] = obj[i]; > + fb->obj[i] = obj[i]; > > - ret = drm_framebuffer_init(dev, &rockchip_fb->fb, > - &rockchip_drm_fb_funcs); > + ret = drm_framebuffer_init(dev, fb, &rockchip_drm_fb_funcs); > if (ret) { > DRM_DEV_ERROR(dev->dev, > "Failed to initialize framebuffer: %d\n", > ret); > - kfree(rockchip_fb); > + kfree(fb); > return ERR_PTR(ret); > } > > - return rockchip_fb; > + return fb; > } > > static struct drm_framebuffer * > rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, > 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 *obj; > unsigned int hsub; > @@ -129,13 +113,13 @@ rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, > objs[i] = obj; > } > > - rockchip_fb = rockchip_fb_alloc(dev, mode_cmd, objs, i); > - if (IS_ERR(rockchip_fb)) { > - ret = PTR_ERR(rockchip_fb); > + fb = rockchip_fb_alloc(dev, mode_cmd, objs, i); > + if (IS_ERR(fb)) { > + ret = PTR_ERR(fb); > goto err_gem_object_unreference; > } > > - return &rockchip_fb->fb; > + return fb; > > err_gem_object_unreference: > for (i--; i >= 0; i--) > @@ -159,13 +143,13 @@ rockchip_drm_framebuffer_init(struct drm_device *dev, > const struct drm_mode_fb_cmd2 *mode_cmd, > 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); > - if (IS_ERR(rockchip_fb)) > - return ERR_CAST(rockchip_fb); > + fb = rockchip_fb_alloc(dev, mode_cmd, &obj, 1); > + if (IS_ERR(fb)) > + return ERR_CAST(fb); > > - return &rockchip_fb->fb; > + return fb; > } > > void rockchip_drm_mode_config_init(struct drm_device *dev) > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.h b/drivers/gpu/drm/rockchip/rockchip_drm_fb.h > index 2fe47f1ee98f..f1265cb1aee8 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.h > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.h > @@ -22,7 +22,4 @@ rockchip_drm_framebuffer_init(struct drm_device *dev, > void rockchip_drm_framebuffer_fini(struct drm_framebuffer *fb); > > 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 */ > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index 53d4afe15278..43d191d42087 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -724,7 +724,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane, > return; > } > > - obj = rockchip_fb_get_gem_obj(fb, 0); > + obj = fb->obj[0]; > rk_obj = to_rockchip_obj(obj); > > actual_w = drm_rect_width(src) >> 16; > @@ -754,7 +754,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane, > int vsub = drm_format_vert_chroma_subsampling(fb->format->format); > 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); > > offset = (src->x1 >> 16) * bpp / hsub; > -- > 2.16.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi Heiko, On 17 May 2018 at 14:42, Heiko Stübner <heiko@sntech.de> wrote: > Am Donnerstag, 17. Mai 2018, 15:08:15 CEST schrieb Daniel Stone: >> On 30 March 2018 at 15:11, Daniel Stone <daniels@collabora.com> wrote: >> > Now that rockchip_drm_fb is just a wrapper around drm_framebuffer, we >> > can remove it. >> > >> > Signed-off-by: Daniel Stone <daniels@collabora.com> >> > Cc: Sandy Huang <hjc@rock-chips.com> >> > Cc: Heiko Stübner <heiko@sntech.de> >> >> Ping? > > I only see the cover-letter (not listing all patches of the series) > plus patches 4+5 of the series, nothing else. > > Both patches seem to reference other previous patches (1-3?) > so could you point me at mboxes [patchwork] for those? The series is available at: https://patchwork.freedesktop.org/series/40944/ Cheers, Daniel
On Fri, Mar 30, 2018 at 03:11:19PM +0100, Daniel Stone wrote: > Now that rockchip_drm_fb is just a wrapper around drm_framebuffer, we > can remove it. > > Signed-off-by: Daniel Stone <daniels@collabora.com> > Cc: Sandy Huang <hjc@rock-chips.com> > Cc: Heiko Stübner <heiko@sntech.de> > --- > drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 54 ++++++++++------------------- > drivers/gpu/drm/rockchip/rockchip_drm_fb.h | 3 -- > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 +-- > 3 files changed, 21 insertions(+), 40 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > index d7083c07c294..a4d0a00abcd9 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c > @@ -25,21 +25,6 @@ > #include "rockchip_drm_gem.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, > struct drm_file *file, > 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, > }; > > -static struct rockchip_drm_fb * > +static struct drm_framebuffer * > 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 rockchip_drm_fb *rockchip_fb; > + struct drm_framebuffer *fb; > int ret; > int i; > > - rockchip_fb = kzalloc(sizeof(*rockchip_fb), GFP_KERNEL); > - if (!rockchip_fb) > + fb = kzalloc(sizeof(*fb), GFP_KERNEL); > + if (!fb) > 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++) > - rockchip_fb->fb.obj[i] = obj[i]; > + fb->obj[i] = obj[i]; > > - ret = drm_framebuffer_init(dev, &rockchip_fb->fb, > - &rockchip_drm_fb_funcs); > + ret = drm_framebuffer_init(dev, fb, &rockchip_drm_fb_funcs); > if (ret) { > DRM_DEV_ERROR(dev->dev, > "Failed to initialize framebuffer: %d\n", > ret); > - kfree(rockchip_fb); > + kfree(fb); > return ERR_PTR(ret); > } > > - return rockchip_fb; > + return fb; > } > > static struct drm_framebuffer * > rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, > 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]; The use of the ROCKCHIP_MAX_FB_BUFFER seems somewhat misguided here. What if a given pixel format requires 4 planes? This function will just silently ignore the last plane. Not sure that's a good idea. Currently I don't know of any formats that require 4 planes, so this is probably not an issue, but there's also no reason to limit this to anything less than the 4 planes that's baked into the KMS ABI everywhere. Anyway, just a random comment and it doesn't have anything to do with this series, so: Reviewed-by: Thierry Reding <treding@nvidia.com>
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c index d7083c07c294..a4d0a00abcd9 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c @@ -25,21 +25,6 @@ #include "rockchip_drm_gem.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, struct drm_file *file, 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, }; -static struct rockchip_drm_fb * +static struct drm_framebuffer * 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 rockchip_drm_fb *rockchip_fb; + struct drm_framebuffer *fb; int ret; int i; - rockchip_fb = kzalloc(sizeof(*rockchip_fb), GFP_KERNEL); - if (!rockchip_fb) + fb = kzalloc(sizeof(*fb), GFP_KERNEL); + if (!fb) 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++) - rockchip_fb->fb.obj[i] = obj[i]; + fb->obj[i] = obj[i]; - ret = drm_framebuffer_init(dev, &rockchip_fb->fb, - &rockchip_drm_fb_funcs); + ret = drm_framebuffer_init(dev, fb, &rockchip_drm_fb_funcs); if (ret) { DRM_DEV_ERROR(dev->dev, "Failed to initialize framebuffer: %d\n", ret); - kfree(rockchip_fb); + kfree(fb); return ERR_PTR(ret); } - return rockchip_fb; + return fb; } static struct drm_framebuffer * rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, 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 *obj; unsigned int hsub; @@ -129,13 +113,13 @@ rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv, objs[i] = obj; } - rockchip_fb = rockchip_fb_alloc(dev, mode_cmd, objs, i); - if (IS_ERR(rockchip_fb)) { - ret = PTR_ERR(rockchip_fb); + fb = rockchip_fb_alloc(dev, mode_cmd, objs, i); + if (IS_ERR(fb)) { + ret = PTR_ERR(fb); goto err_gem_object_unreference; } - return &rockchip_fb->fb; + return fb; err_gem_object_unreference: for (i--; i >= 0; i--) @@ -159,13 +143,13 @@ rockchip_drm_framebuffer_init(struct drm_device *dev, const struct drm_mode_fb_cmd2 *mode_cmd, 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); - if (IS_ERR(rockchip_fb)) - return ERR_CAST(rockchip_fb); + fb = rockchip_fb_alloc(dev, mode_cmd, &obj, 1); + if (IS_ERR(fb)) + return ERR_CAST(fb); - return &rockchip_fb->fb; + return fb; } void rockchip_drm_mode_config_init(struct drm_device *dev) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.h b/drivers/gpu/drm/rockchip/rockchip_drm_fb.h index 2fe47f1ee98f..f1265cb1aee8 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.h @@ -22,7 +22,4 @@ rockchip_drm_framebuffer_init(struct drm_device *dev, void rockchip_drm_framebuffer_fini(struct drm_framebuffer *fb); 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 */ diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 53d4afe15278..43d191d42087 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -724,7 +724,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane, return; } - obj = rockchip_fb_get_gem_obj(fb, 0); + obj = fb->obj[0]; rk_obj = to_rockchip_obj(obj); actual_w = drm_rect_width(src) >> 16; @@ -754,7 +754,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane, int vsub = drm_format_vert_chroma_subsampling(fb->format->format); 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); offset = (src->x1 >> 16) * bpp / hsub;
Now that rockchip_drm_fb is just a wrapper around drm_framebuffer, we can remove it. Signed-off-by: Daniel Stone <daniels@collabora.com> Cc: Sandy Huang <hjc@rock-chips.com> Cc: Heiko Stübner <heiko@sntech.de> --- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 54 ++++++++++------------------- drivers/gpu/drm/rockchip/rockchip_drm_fb.h | 3 -- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 +-- 3 files changed, 21 insertions(+), 40 deletions(-)