* [PATCH 00/24] drm_framebuffer boilerplate removal
@ 2018-03-30 14:11 Daniel Stone
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
2018-03-30 14:47 ` [PATCH 00/24] drm_framebuffer boilerplate removal Alex Deucher
0 siblings, 2 replies; 9+ messages in thread
From: Daniel Stone @ 2018-03-30 14:11 UTC (permalink / raw)
To: dri-devel
Cc: open list:VIRTIO CORE, NET..., Thierry Reding, Gerd Hoffmann,
Russell King, Tomi Valkeinen, Kyungmin Park, David Lechner,
linux-arm-msm, intel-gfx, Rodrigo Vivi, Dave Airlie, linux-tegra,
amd-gfx mailing list, Seung-Woo Kim, Alex Deucher,
Christian König
Hi,
I've been working on a getfb2[0] ioctl, which amongst other things
supports multi-planar framebuffers as well as modifiers. getfb
currently calls the framebuffer's handle_create hook, which doesn't
support multiple planes.
Thanks to Noralf's recent work, drivers can just store GEM objects
directly in drm_framebuffer. I use this directly in getfb2: we need
direct access to the GEM objects and not a vfunc in order to not hand
out duplicate GEM names for the same object.
This series converts all drivers except for nouveau, which was a
little too non-trivial for my comfort, to storing GEM objects directly
in drm_framebuffer. For those drivers whose driver_framebuffer struct
was nothing but drm_framebuffer + BO, it deletes the driver-specific
struct. It also makes use of Noralf's generic framebuffer helpers for
create_handle and destroy where possible.
I don't have the hardware for most of these drivers, so have had to
settle for just staring really hard at the diff.
I intend to remove create_handle when all drivers are converted over
to placing BOs directly inside drm_framebuffer. For most drivers
there's a relatively easy conversion to using the helpers for
basically all framebuffer handling and fbdev emulation as well, though
that's a bit further than I was willing to go without hardware to test
on ...
Cheers,
Daniel
[0]: https://lists.freedesktop.org/archives/dri-devel/2018-March/170512.html
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 11/24] drm/tegra: Remove duplicate framebuffer num_planes
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
@ 2018-03-30 14:11 ` Daniel Stone
2018-03-30 14:11 ` [PATCH 12/24] drm/tegra: Move GEM BOs to drm_framebuffer Daniel Stone
` (3 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Daniel Stone @ 2018-03-30 14:11 UTC (permalink / raw)
To: dri-devel; +Cc: linux-tegra, Thierry Reding
drm_framebuffer already stores num_planes for us.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org
---
drivers/gpu/drm/tegra/drm.h | 1 -
drivers/gpu/drm/tegra/fb.c | 6 ++----
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 4f41aaec8530..79340fb1de43 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -32,7 +32,6 @@ struct reset_control;
struct tegra_fb {
struct drm_framebuffer base;
struct tegra_bo **planes;
- unsigned int num_planes;
};
#ifdef CONFIG_DRM_FBDEV_EMULATION
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index e69434909a42..75badf371721 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -107,7 +107,7 @@ static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
struct tegra_fb *fb = to_tegra_fb(framebuffer);
unsigned int i;
- for (i = 0; i < fb->num_planes; i++) {
+ for (i = 0; i < framebuffer->format->num_planes; i++) {
struct tegra_bo *bo = fb->planes[i];
if (bo) {
@@ -155,11 +155,9 @@ static struct tegra_fb *tegra_fb_alloc(struct drm_device *drm,
return ERR_PTR(-ENOMEM);
}
- fb->num_planes = num_planes;
-
drm_helper_mode_fill_fb_struct(drm, &fb->base, mode_cmd);
- for (i = 0; i < fb->num_planes; i++)
+ for (i = 0; i < fb->base.format->num_planes; i++)
fb->planes[i] = planes[i];
err = drm_framebuffer_init(drm, &fb->base, &tegra_fb_funcs);
--
2.16.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 12/24] drm/tegra: Move GEM BOs to drm_framebuffer
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
2018-03-30 14:11 ` [PATCH 11/24] drm/tegra: Remove duplicate framebuffer num_planes Daniel Stone
@ 2018-03-30 14:11 ` Daniel Stone
2018-03-30 14:11 ` [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer Daniel Stone
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Daniel Stone @ 2018-03-30 14:11 UTC (permalink / raw)
To: dri-devel; +Cc: linux-tegra, Thierry Reding
Since drm_framebuffer can now store GEM objects directly, place them
there rather than in our own subclass. As this makes the framebuffer
create_handle function the same as the GEM framebuffer helper, we
can reuse that.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org
---
drivers/gpu/drm/tegra/drm.h | 1 -
drivers/gpu/drm/tegra/fb.c | 37 ++++++++-----------------------------
2 files changed, 8 insertions(+), 30 deletions(-)
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 79340fb1de43..025e011d74af 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -31,7 +31,6 @@ struct reset_control;
struct tegra_fb {
struct drm_framebuffer base;
- struct tegra_bo **planes;
};
#ifdef CONFIG_DRM_FBDEV_EMULATION
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 75badf371721..5bc8f968284c 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -14,6 +14,7 @@
#include "drm.h"
#include "gem.h"
+#include <drm/drm_gem_framebuffer_helper.h>
static inline struct tegra_fb *to_tegra_fb(struct drm_framebuffer *fb)
{
@@ -30,19 +31,14 @@ static inline struct tegra_fbdev *to_tegra_fbdev(struct drm_fb_helper *helper)
struct tegra_bo *tegra_fb_get_plane(struct drm_framebuffer *framebuffer,
unsigned int index)
{
- struct tegra_fb *fb = to_tegra_fb(framebuffer);
-
- if (index >= framebuffer->format->num_planes)
- return NULL;
-
- return fb->planes[index];
+ return to_tegra_bo(drm_gem_fb_get_obj(framebuffer, index));
}
bool tegra_fb_is_bottom_up(struct drm_framebuffer *framebuffer)
{
- struct tegra_fb *fb = to_tegra_fb(framebuffer);
+ struct tegra_bo *bo = tegra_fb_get_plane(framebuffer, 0);
- if (fb->planes[0]->flags & TEGRA_BO_BOTTOM_UP)
+ if (bo->flags & TEGRA_BO_BOTTOM_UP)
return true;
return false;
@@ -51,8 +47,7 @@ bool tegra_fb_is_bottom_up(struct drm_framebuffer *framebuffer)
int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,
struct tegra_bo_tiling *tiling)
{
- struct tegra_fb *fb = to_tegra_fb(framebuffer);
- uint64_t modifier = fb->base.modifier;
+ uint64_t modifier = framebuffer->modifier;
switch (modifier) {
case DRM_FORMAT_MOD_LINEAR:
@@ -108,7 +103,7 @@ static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
unsigned int i;
for (i = 0; i < framebuffer->format->num_planes; i++) {
- struct tegra_bo *bo = fb->planes[i];
+ struct tegra_bo *bo = tegra_fb_get_plane(framebuffer, i);
if (bo) {
if (bo->pages)
@@ -119,21 +114,12 @@ static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
}
drm_framebuffer_cleanup(framebuffer);
- kfree(fb->planes);
kfree(fb);
}
-static int tegra_fb_create_handle(struct drm_framebuffer *framebuffer,
- struct drm_file *file, unsigned int *handle)
-{
- struct tegra_fb *fb = to_tegra_fb(framebuffer);
-
- return drm_gem_handle_create(file, &fb->planes[0]->gem, handle);
-}
-
static const struct drm_framebuffer_funcs tegra_fb_funcs = {
.destroy = tegra_fb_destroy,
- .create_handle = tegra_fb_create_handle,
+ .create_handle = drm_gem_fb_create_handle,
};
static struct tegra_fb *tegra_fb_alloc(struct drm_device *drm,
@@ -149,22 +135,15 @@ static struct tegra_fb *tegra_fb_alloc(struct drm_device *drm,
if (!fb)
return ERR_PTR(-ENOMEM);
- fb->planes = kzalloc(num_planes * sizeof(*planes), GFP_KERNEL);
- if (!fb->planes) {
- kfree(fb);
- return ERR_PTR(-ENOMEM);
- }
-
drm_helper_mode_fill_fb_struct(drm, &fb->base, mode_cmd);
for (i = 0; i < fb->base.format->num_planes; i++)
- fb->planes[i] = planes[i];
+ fb->base.obj[i] = &planes[i]->gem;
err = drm_framebuffer_init(drm, &fb->base, &tegra_fb_funcs);
if (err < 0) {
dev_err(drm->dev, "failed to initialize framebuffer: %d\n",
err);
- kfree(fb->planes);
kfree(fb);
return ERR_PTR(err);
}
--
2.16.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
2018-03-30 14:11 ` [PATCH 11/24] drm/tegra: Remove duplicate framebuffer num_planes Daniel Stone
2018-03-30 14:11 ` [PATCH 12/24] drm/tegra: Move GEM BOs to drm_framebuffer Daniel Stone
@ 2018-03-30 14:11 ` Daniel Stone
2018-05-17 13:11 ` Daniel Stone
2018-03-30 14:11 ` [PATCH 14/24] drm/tegra: Move fbdev unmap special case Daniel Stone
2018-03-30 14:11 ` [PATCH 15/24] drm/tegra: Use drm_gem_fb_destroy Daniel Stone
4 siblings, 1 reply; 9+ messages in thread
From: Daniel Stone @ 2018-03-30 14:11 UTC (permalink / raw)
To: dri-devel; +Cc: linux-tegra, Thierry Reding
Since tegra_fb is now the same as drm_framebuffer, we can just replace
the type completely.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org
---
drivers/gpu/drm/tegra/drm.h | 6 +-----
drivers/gpu/drm/tegra/fb.c | 34 ++++++++++++++--------------------
2 files changed, 15 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h
index 025e011d74af..f1fc2cfc8f02 100644
--- a/drivers/gpu/drm/tegra/drm.h
+++ b/drivers/gpu/drm/tegra/drm.h
@@ -29,14 +29,10 @@
struct reset_control;
-struct tegra_fb {
- struct drm_framebuffer base;
-};
-
#ifdef CONFIG_DRM_FBDEV_EMULATION
struct tegra_fbdev {
struct drm_fb_helper base;
- struct tegra_fb *fb;
+ struct drm_framebuffer *fb;
};
#endif
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 5bc8f968284c..57da9683a713 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -16,11 +16,6 @@
#include "gem.h"
#include <drm/drm_gem_framebuffer_helper.h>
-static inline struct tegra_fb *to_tegra_fb(struct drm_framebuffer *fb)
-{
- return container_of(fb, struct tegra_fb, base);
-}
-
#ifdef CONFIG_DRM_FBDEV_EMULATION
static inline struct tegra_fbdev *to_tegra_fbdev(struct drm_fb_helper *helper)
{
@@ -99,7 +94,6 @@ int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,
static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
{
- struct tegra_fb *fb = to_tegra_fb(framebuffer);
unsigned int i;
for (i = 0; i < framebuffer->format->num_planes; i++) {
@@ -114,7 +108,7 @@ static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
}
drm_framebuffer_cleanup(framebuffer);
- kfree(fb);
+ kfree(framebuffer);
}
static const struct drm_framebuffer_funcs tegra_fb_funcs = {
@@ -122,12 +116,12 @@ static const struct drm_framebuffer_funcs tegra_fb_funcs = {
.create_handle = drm_gem_fb_create_handle,
};
-static struct tegra_fb *tegra_fb_alloc(struct drm_device *drm,
- const struct drm_mode_fb_cmd2 *mode_cmd,
- struct tegra_bo **planes,
- unsigned int num_planes)
+static struct drm_framebuffer *tegra_fb_alloc(struct drm_device *drm,
+ const struct drm_mode_fb_cmd2 *mode_cmd,
+ struct tegra_bo **planes,
+ unsigned int num_planes)
{
- struct tegra_fb *fb;
+ struct drm_framebuffer *fb;
unsigned int i;
int err;
@@ -135,12 +129,12 @@ static struct tegra_fb *tegra_fb_alloc(struct drm_device *drm,
if (!fb)
return ERR_PTR(-ENOMEM);
- drm_helper_mode_fill_fb_struct(drm, &fb->base, mode_cmd);
+ drm_helper_mode_fill_fb_struct(drm, fb, mode_cmd);
- for (i = 0; i < fb->base.format->num_planes; i++)
- fb->base.obj[i] = &planes[i]->gem;
+ for (i = 0; i < fb->format->num_planes; i++)
+ fb->obj[i] = &planes[i]->gem;
- err = drm_framebuffer_init(drm, &fb->base, &tegra_fb_funcs);
+ err = drm_framebuffer_init(drm, fb, &tegra_fb_funcs);
if (err < 0) {
dev_err(drm->dev, "failed to initialize framebuffer: %d\n",
err);
@@ -158,7 +152,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
unsigned int hsub, vsub, i;
struct tegra_bo *planes[4];
struct drm_gem_object *gem;
- struct tegra_fb *fb;
+ struct drm_framebuffer *fb;
int err;
hsub = drm_format_horz_chroma_subsampling(cmd->pixel_format);
@@ -194,7 +188,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
goto unreference;
}
- return &fb->base;
+ return fb;
unreference:
while (i--)
@@ -275,7 +269,7 @@ static int tegra_fbdev_probe(struct drm_fb_helper *helper,
return PTR_ERR(fbdev->fb);
}
- fb = &fbdev->fb->base;
+ fb = fbdev->fb;
helper->fb = fb;
helper->fbdev = info;
@@ -376,7 +370,7 @@ static void tegra_fbdev_exit(struct tegra_fbdev *fbdev)
drm_fb_helper_unregister_fbi(&fbdev->base);
if (fbdev->fb)
- drm_framebuffer_remove(&fbdev->fb->base);
+ drm_framebuffer_remove(fbdev->fb);
drm_fb_helper_fini(&fbdev->base);
tegra_fbdev_free(fbdev);
--
2.16.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 14/24] drm/tegra: Move fbdev unmap special case
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
` (2 preceding siblings ...)
2018-03-30 14:11 ` [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer Daniel Stone
@ 2018-03-30 14:11 ` Daniel Stone
2018-03-30 14:11 ` [PATCH 15/24] drm/tegra: Use drm_gem_fb_destroy Daniel Stone
4 siblings, 0 replies; 9+ messages in thread
From: Daniel Stone @ 2018-03-30 14:11 UTC (permalink / raw)
To: dri-devel; +Cc: linux-tegra, Thierry Reding
User framebuffers are created with either bo->pages or bo->vaddr set,
depending on whether or not an IOMMU is present. On the other hand, the
framebuffer created for fbdev emulation has a vaddr mapping made if
bo->pages is set after creation. This is set up in fbdev probe.
Remove the special case unmapping from the general-purpose framebuffer
destroy, and move it to fbdev teardown.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org
---
drivers/gpu/drm/tegra/fb.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 57da9683a713..709aa6ef171a 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -99,12 +99,8 @@ static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
for (i = 0; i < framebuffer->format->num_planes; i++) {
struct tegra_bo *bo = tegra_fb_get_plane(framebuffer, i);
- if (bo) {
- if (bo->pages)
- vunmap(bo->vaddr);
-
+ if (bo)
drm_gem_object_put_unlocked(&bo->gem);
- }
}
drm_framebuffer_cleanup(framebuffer);
@@ -369,8 +365,17 @@ static void tegra_fbdev_exit(struct tegra_fbdev *fbdev)
{
drm_fb_helper_unregister_fbi(&fbdev->base);
- if (fbdev->fb)
+ if (fbdev->fb) {
+ struct tegra_bo *bo = tegra_fb_get_plane(fbdev->fb, 0);
+
+ /* Undo the special mapping we made in fbdev probe. */
+ if (bo && bo->pages) {
+ vunmap(bo->vaddr);
+ bo->vaddr = 0;
+ }
+
drm_framebuffer_remove(fbdev->fb);
+ }
drm_fb_helper_fini(&fbdev->base);
tegra_fbdev_free(fbdev);
--
2.16.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 15/24] drm/tegra: Use drm_gem_fb_destroy
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
` (3 preceding siblings ...)
2018-03-30 14:11 ` [PATCH 14/24] drm/tegra: Move fbdev unmap special case Daniel Stone
@ 2018-03-30 14:11 ` Daniel Stone
4 siblings, 0 replies; 9+ messages in thread
From: Daniel Stone @ 2018-03-30 14:11 UTC (permalink / raw)
To: dri-devel; +Cc: linux-tegra, Thierry Reding
Now that our destroy function is the same as the helper, use that
directly.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: linux-tegra@vger.kernel.org
---
drivers/gpu/drm/tegra/fb.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 709aa6ef171a..4c22cdded3c2 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -92,23 +92,8 @@ int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,
return 0;
}
-static void tegra_fb_destroy(struct drm_framebuffer *framebuffer)
-{
- unsigned int i;
-
- for (i = 0; i < framebuffer->format->num_planes; i++) {
- struct tegra_bo *bo = tegra_fb_get_plane(framebuffer, i);
-
- if (bo)
- drm_gem_object_put_unlocked(&bo->gem);
- }
-
- drm_framebuffer_cleanup(framebuffer);
- kfree(framebuffer);
-}
-
static const struct drm_framebuffer_funcs tegra_fb_funcs = {
- .destroy = tegra_fb_destroy,
+ .destroy = drm_gem_fb_destroy,
.create_handle = drm_gem_fb_create_handle,
};
--
2.16.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 00/24] drm_framebuffer boilerplate removal
2018-03-30 14:11 [PATCH 00/24] drm_framebuffer boilerplate removal Daniel Stone
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
@ 2018-03-30 14:47 ` Alex Deucher
1 sibling, 0 replies; 9+ messages in thread
From: Alex Deucher @ 2018-03-30 14:47 UTC (permalink / raw)
To: Daniel Stone
Cc: dri-devel, open list:VIRTIO CORE, NET..., Thierry Reding,
amd-gfx mailing list, Russell King, Tomi Valkeinen, Dave Airlie,
David Lechner, linux-arm-msm, intel-gfx, Rodrigo Vivi,
linux-tegra, Seung-Woo Kim, Kyungmin Park, Alex Deucher,
Christian König, Gerd Hoffmann
On Fri, Mar 30, 2018 at 10:11 AM, Daniel Stone <daniels@collabora.com> wrote:
> Hi,
> I've been working on a getfb2[0] ioctl, which amongst other things
> supports multi-planar framebuffers as well as modifiers. getfb
> currently calls the framebuffer's handle_create hook, which doesn't
> support multiple planes.
>
> Thanks to Noralf's recent work, drivers can just store GEM objects
> directly in drm_framebuffer. I use this directly in getfb2: we need
> direct access to the GEM objects and not a vfunc in order to not hand
> out duplicate GEM names for the same object.
>
> This series converts all drivers except for nouveau, which was a
> little too non-trivial for my comfort, to storing GEM objects directly
> in drm_framebuffer. For those drivers whose driver_framebuffer struct
> was nothing but drm_framebuffer + BO, it deletes the driver-specific
> struct. It also makes use of Noralf's generic framebuffer helpers for
> create_handle and destroy where possible.
>
> I don't have the hardware for most of these drivers, so have had to
> settle for just staring really hard at the diff.
>
> I intend to remove create_handle when all drivers are converted over
> to placing BOs directly inside drm_framebuffer. For most drivers
> there's a relatively easy conversion to using the helpers for
> basically all framebuffer handling and fbdev emulation as well, though
> that's a bit further than I was willing to go without hardware to test
> on ...
Series is:
Acked-by: Alex Deucher <alexander.deucher@amd.com>
>
> Cheers,
> Daniel
>
> [0]: https://lists.freedesktop.org/archives/dri-devel/2018-March/170512.html
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer
2018-03-30 14:11 ` [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer Daniel Stone
@ 2018-05-17 13:11 ` Daniel Stone
2018-05-17 13:46 ` Thierry Reding
0 siblings, 1 reply; 9+ messages in thread
From: Daniel Stone @ 2018-05-17 13:11 UTC (permalink / raw)
To: Daniel Stone; +Cc: linux-tegra, Thierry Reding, dri-devel
Hi Thierry,
On 30 March 2018 at 15:11, Daniel Stone <daniels@collabora.com> wrote:
> Since tegra_fb is now the same as drm_framebuffer, we can just replace
> the type completely.
>
> Signed-off-by: Daniel Stone <daniels@collabora.com>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: linux-tegra@vger.kernel.org
Did this still need some more testing, or is it OK to apply?
Cheers,
Daniel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer
2018-05-17 13:11 ` Daniel Stone
@ 2018-05-17 13:46 ` Thierry Reding
0 siblings, 0 replies; 9+ messages in thread
From: Thierry Reding @ 2018-05-17 13:46 UTC (permalink / raw)
To: Daniel Stone; +Cc: linux-tegra, Daniel Stone, dri-devel
[-- Attachment #1.1: Type: text/plain, Size: 632 bytes --]
On Thu, May 17, 2018 at 02:11:16PM +0100, Daniel Stone wrote:
> Hi Thierry,
>
> On 30 March 2018 at 15:11, Daniel Stone <daniels@collabora.com> wrote:
> > Since tegra_fb is now the same as drm_framebuffer, we can just replace
> > the type completely.
> >
> > Signed-off-by: Daniel Stone <daniels@collabora.com>
> > Cc: Thierry Reding <thierry.reding@gmail.com>
> > Cc: linux-tegra@vger.kernel.org
>
> Did this still need some more testing, or is it OK to apply?
Sorry, this completely fell off the table. I've tested patches 11-15 and
they work fine. Applied all of them to drm/tegra/for-next.
Thanks,
Thierry
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-05-17 13:46 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-30 14:11 [PATCH 00/24] drm_framebuffer boilerplate removal Daniel Stone
[not found] ` <20180330141138.28987-1-daniels@collabora.com>
2018-03-30 14:11 ` [PATCH 11/24] drm/tegra: Remove duplicate framebuffer num_planes Daniel Stone
2018-03-30 14:11 ` [PATCH 12/24] drm/tegra: Move GEM BOs to drm_framebuffer Daniel Stone
2018-03-30 14:11 ` [PATCH 13/24] drm/tegra: tegra_fb -> drm_framebuffer Daniel Stone
2018-05-17 13:11 ` Daniel Stone
2018-05-17 13:46 ` Thierry Reding
2018-03-30 14:11 ` [PATCH 14/24] drm/tegra: Move fbdev unmap special case Daniel Stone
2018-03-30 14:11 ` [PATCH 15/24] drm/tegra: Use drm_gem_fb_destroy Daniel Stone
2018-03-30 14:47 ` [PATCH 00/24] drm_framebuffer boilerplate removal Alex Deucher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).