* [PATCH 4/7] drm/radeon: Fill out gem_object->resv
[not found] ` <20190625204208.5614-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2019-06-25 20:42 ` Daniel Vetter
[not found] ` <20190625204208.5614-5-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Daniel Vetter @ 2019-06-25 20:42 UTC (permalink / raw)
To: DRI Development
Cc: David (ChunMing) Zhou, Daniel Vetter,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Alex Deucher,
Daniel Vetter, Christian König, Emil Velikov
That way we can ditch our gem_prime_res_obj implementation. Since ttm
absolutely needs the right reservation object all the boilerplate is
already there and we just have to wire it up correctly.
Note that gem/prime doesn't care when we do this, as long as we do it
before the bo is registered and someone can call the handle2fd ioctl
on it.
Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
of always passing a non-NULL resv to ttm_bo_init(). At least for gem
drivers that would avoid having two of these, on in ttm_buffer_object
and the other in drm_gem_object, one just there for confusion.
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
Cc: amd-gfx@lists.freedesktop.org
---
drivers/gpu/drm/radeon/radeon_drv.c | 2 --
drivers/gpu/drm/radeon/radeon_object.c | 1 +
drivers/gpu/drm/radeon/radeon_prime.c | 7 -------
3 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 4403e76e1ae0..a4a78dfdef37 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -152,7 +152,6 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
struct sg_table *sg);
int radeon_gem_prime_pin(struct drm_gem_object *obj);
void radeon_gem_prime_unpin(struct drm_gem_object *obj);
-struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *);
void *radeon_gem_prime_vmap(struct drm_gem_object *obj);
void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
@@ -566,7 +565,6 @@ static struct drm_driver kms_driver = {
.gem_prime_export = radeon_gem_prime_export,
.gem_prime_pin = radeon_gem_prime_pin,
.gem_prime_unpin = radeon_gem_prime_unpin,
- .gem_prime_res_obj = radeon_gem_prime_res_obj,
.gem_prime_get_sg_table = radeon_gem_prime_get_sg_table,
.gem_prime_import_sg_table = radeon_gem_prime_import_sg_table,
.gem_prime_vmap = radeon_gem_prime_vmap,
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index 21f73fc86f38..7a2bad843f8a 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -262,6 +262,7 @@ int radeon_bo_create(struct radeon_device *rdev,
r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
&bo->placement, page_align, !kernel, acc_size,
sg, resv, &radeon_ttm_bo_destroy);
+ bo->gem_base.resv = bo->tbo.resv;
up_read(&rdev->pm.mclk_lock);
if (unlikely(r != 0)) {
return r;
diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c
index deaffce50a2e..8ce3e8045d42 100644
--- a/drivers/gpu/drm/radeon/radeon_prime.c
+++ b/drivers/gpu/drm/radeon/radeon_prime.c
@@ -117,13 +117,6 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj)
}
-struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
-{
- struct radeon_bo *bo = gem_to_radeon_bo(obj);
-
- return bo->tbo.resv;
-}
-
struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
int flags)
{
--
2.20.1
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 4/7] drm/radeon: Fill out gem_object->resv
[not found] ` <20190625204208.5614-5-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
@ 2019-06-25 20:52 ` Sam Ravnborg
2019-07-25 13:18 ` Daniel Vetter
2019-06-26 7:10 ` Koenig, Christian
1 sibling, 1 reply; 7+ messages in thread
From: Sam Ravnborg @ 2019-06-25 20:52 UTC (permalink / raw)
To: Daniel Vetter
Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, DRI Development,
Alex Deucher, Daniel Vetter, Christian König, Emil Velikov
On Tue, Jun 25, 2019 at 10:42:05PM +0200, Daniel Vetter wrote:
> That way we can ditch our gem_prime_res_obj implementation. Since ttm
> absolutely needs the right reservation object all the boilerplate is
> already there and we just have to wire it up correctly.
>
> Note that gem/prime doesn't care when we do this, as long as we do it
> before the bo is registered and someone can call the handle2fd ioctl
> on it.
>
> Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
> of always passing a non-NULL resv to ttm_bo_init(). At least for gem
> drivers that would avoid having two of these, on in ttm_buffer_object
> and the other in drm_gem_object, one just there for confusion.
Something for todo.rst - so this does not get lost in a changelog
people will soon forget?
Sam
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 4/7] drm/radeon: Fill out gem_object->resv
[not found] ` <20190625204208.5614-5-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-25 20:52 ` Sam Ravnborg
@ 2019-06-26 7:10 ` Koenig, Christian
[not found] ` <4cfa949e-1a20-149c-0758-e1bd97fd3cf5-5C7GfCeVMHo@public.gmane.org>
1 sibling, 1 reply; 7+ messages in thread
From: Koenig, Christian @ 2019-06-26 7:10 UTC (permalink / raw)
To: Daniel Vetter, DRI Development
Cc: Deucher, Alexander, Daniel Vetter, Zhou, David(ChunMing),
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Emil Velikov
Those patches would become superfluous when merging Gerd's work.
But I'm not sure if that is going to fly soon or not.
Christian.
Am 25.06.19 um 22:42 schrieb Daniel Vetter:
> That way we can ditch our gem_prime_res_obj implementation. Since ttm
> absolutely needs the right reservation object all the boilerplate is
> already there and we just have to wire it up correctly.
>
> Note that gem/prime doesn't care when we do this, as long as we do it
> before the bo is registered and someone can call the handle2fd ioctl
> on it.
>
> Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
> of always passing a non-NULL resv to ttm_bo_init(). At least for gem
> drivers that would avoid having two of these, on in ttm_buffer_object
> and the other in drm_gem_object, one just there for confusion.
>
> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: "Christian König" <christian.koenig@amd.com>
> Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
> Cc: amd-gfx@lists.freedesktop.org
> ---
> drivers/gpu/drm/radeon/radeon_drv.c | 2 --
> drivers/gpu/drm/radeon/radeon_object.c | 1 +
> drivers/gpu/drm/radeon/radeon_prime.c | 7 -------
> 3 files changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> index 4403e76e1ae0..a4a78dfdef37 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -152,7 +152,6 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
> struct sg_table *sg);
> int radeon_gem_prime_pin(struct drm_gem_object *obj);
> void radeon_gem_prime_unpin(struct drm_gem_object *obj);
> -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *);
> void *radeon_gem_prime_vmap(struct drm_gem_object *obj);
> void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
>
> @@ -566,7 +565,6 @@ static struct drm_driver kms_driver = {
> .gem_prime_export = radeon_gem_prime_export,
> .gem_prime_pin = radeon_gem_prime_pin,
> .gem_prime_unpin = radeon_gem_prime_unpin,
> - .gem_prime_res_obj = radeon_gem_prime_res_obj,
> .gem_prime_get_sg_table = radeon_gem_prime_get_sg_table,
> .gem_prime_import_sg_table = radeon_gem_prime_import_sg_table,
> .gem_prime_vmap = radeon_gem_prime_vmap,
> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> index 21f73fc86f38..7a2bad843f8a 100644
> --- a/drivers/gpu/drm/radeon/radeon_object.c
> +++ b/drivers/gpu/drm/radeon/radeon_object.c
> @@ -262,6 +262,7 @@ int radeon_bo_create(struct radeon_device *rdev,
> r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
> &bo->placement, page_align, !kernel, acc_size,
> sg, resv, &radeon_ttm_bo_destroy);
> + bo->gem_base.resv = bo->tbo.resv;
> up_read(&rdev->pm.mclk_lock);
> if (unlikely(r != 0)) {
> return r;
> diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c
> index deaffce50a2e..8ce3e8045d42 100644
> --- a/drivers/gpu/drm/radeon/radeon_prime.c
> +++ b/drivers/gpu/drm/radeon/radeon_prime.c
> @@ -117,13 +117,6 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj)
> }
>
>
> -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
> -{
> - struct radeon_bo *bo = gem_to_radeon_bo(obj);
> -
> - return bo->tbo.resv;
> -}
> -
> struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
> int flags)
> {
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 4/7] drm/radeon: Fill out gem_object->resv
[not found] ` <4cfa949e-1a20-149c-0758-e1bd97fd3cf5-5C7GfCeVMHo@public.gmane.org>
@ 2019-06-26 8:23 ` Daniel Vetter
[not found] ` <20190626082312.GI12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Daniel Vetter @ 2019-06-26 8:23 UTC (permalink / raw)
To: Koenig, Christian
Cc: Zhou, David(ChunMing), Daniel Vetter, DRI Development,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Deucher, Alexander, Daniel Vetter, Emil Velikov
On Wed, Jun 26, 2019 at 07:10:21AM +0000, Koenig, Christian wrote:
> Those patches would become superfluous when merging Gerd's work.
Not entirely, they still remove the gem_prime_res_obj. Setting up
gem_bo.resv is only one half of what these do here. And yeah I think that
single addition can be removed again when Gerd's stuff lands.
> But I'm not sure if that is going to fly soon or not.
I think r-b from Thomas Zimmermann (or some other ttm+gem stakeholder) and
we're good to land them. Thomas Hellstrom mellowed down his "nack" to
"I'll look at this in August again and course-correct if necessary".
-Daniel
>
> Christian.
>
> Am 25.06.19 um 22:42 schrieb Daniel Vetter:
> > That way we can ditch our gem_prime_res_obj implementation. Since ttm
> > absolutely needs the right reservation object all the boilerplate is
> > already there and we just have to wire it up correctly.
> >
> > Note that gem/prime doesn't care when we do this, as long as we do it
> > before the bo is registered and someone can call the handle2fd ioctl
> > on it.
> >
> > Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
> > of always passing a non-NULL resv to ttm_bo_init(). At least for gem
> > drivers that would avoid having two of these, on in ttm_buffer_object
> > and the other in drm_gem_object, one just there for confusion.
> >
> > Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: Alex Deucher <alexander.deucher@amd.com>
> > Cc: "Christian König" <christian.koenig@amd.com>
> > Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
> > Cc: amd-gfx@lists.freedesktop.org
> > ---
> > drivers/gpu/drm/radeon/radeon_drv.c | 2 --
> > drivers/gpu/drm/radeon/radeon_object.c | 1 +
> > drivers/gpu/drm/radeon/radeon_prime.c | 7 -------
> > 3 files changed, 1 insertion(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> > index 4403e76e1ae0..a4a78dfdef37 100644
> > --- a/drivers/gpu/drm/radeon/radeon_drv.c
> > +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> > @@ -152,7 +152,6 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
> > struct sg_table *sg);
> > int radeon_gem_prime_pin(struct drm_gem_object *obj);
> > void radeon_gem_prime_unpin(struct drm_gem_object *obj);
> > -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *);
> > void *radeon_gem_prime_vmap(struct drm_gem_object *obj);
> > void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
> >
> > @@ -566,7 +565,6 @@ static struct drm_driver kms_driver = {
> > .gem_prime_export = radeon_gem_prime_export,
> > .gem_prime_pin = radeon_gem_prime_pin,
> > .gem_prime_unpin = radeon_gem_prime_unpin,
> > - .gem_prime_res_obj = radeon_gem_prime_res_obj,
> > .gem_prime_get_sg_table = radeon_gem_prime_get_sg_table,
> > .gem_prime_import_sg_table = radeon_gem_prime_import_sg_table,
> > .gem_prime_vmap = radeon_gem_prime_vmap,
> > diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> > index 21f73fc86f38..7a2bad843f8a 100644
> > --- a/drivers/gpu/drm/radeon/radeon_object.c
> > +++ b/drivers/gpu/drm/radeon/radeon_object.c
> > @@ -262,6 +262,7 @@ int radeon_bo_create(struct radeon_device *rdev,
> > r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
> > &bo->placement, page_align, !kernel, acc_size,
> > sg, resv, &radeon_ttm_bo_destroy);
> > + bo->gem_base.resv = bo->tbo.resv;
> > up_read(&rdev->pm.mclk_lock);
> > if (unlikely(r != 0)) {
> > return r;
> > diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c
> > index deaffce50a2e..8ce3e8045d42 100644
> > --- a/drivers/gpu/drm/radeon/radeon_prime.c
> > +++ b/drivers/gpu/drm/radeon/radeon_prime.c
> > @@ -117,13 +117,6 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj)
> > }
> >
> >
> > -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
> > -{
> > - struct radeon_bo *bo = gem_to_radeon_bo(obj);
> > -
> > - return bo->tbo.resv;
> > -}
> > -
> > struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
> > int flags)
> > {
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 4/7] drm/radeon: Fill out gem_object->resv
[not found] ` <20190626082312.GI12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
@ 2019-06-27 7:33 ` Daniel Vetter
[not found] ` <20190627073350.GG12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
0 siblings, 1 reply; 7+ messages in thread
From: Daniel Vetter @ 2019-06-27 7:33 UTC (permalink / raw)
To: Koenig, Christian
Cc: Zhou, David(ChunMing), Daniel Vetter, DRI Development,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Deucher, Alexander, Daniel Vetter, Emil Velikov
On Wed, Jun 26, 2019 at 10:23:12AM +0200, Daniel Vetter wrote:
> On Wed, Jun 26, 2019 at 07:10:21AM +0000, Koenig, Christian wrote:
> > Those patches would become superfluous when merging Gerd's work.
>
> Not entirely, they still remove the gem_prime_res_obj. Setting up
> gem_bo.resv is only one half of what these do here. And yeah I think that
> single addition can be removed again when Gerd's stuff lands.
>
> > But I'm not sure if that is going to fly soon or not.
>
> I think r-b from Thomas Zimmermann (or some other ttm+gem stakeholder) and
> we're good to land them. Thomas Hellstrom mellowed down his "nack" to
> "I'll look at this in August again and course-correct if necessary".
Just pinged Gerd on this, so we can start coordination.
btw planning to review this from amd side, I'd like to ditch
gem_prime_res_obj especially with Gerd series it's pointless.
-Daniel
> -Daniel
>
> >
> > Christian.
> >
> > Am 25.06.19 um 22:42 schrieb Daniel Vetter:
> > > That way we can ditch our gem_prime_res_obj implementation. Since ttm
> > > absolutely needs the right reservation object all the boilerplate is
> > > already there and we just have to wire it up correctly.
> > >
> > > Note that gem/prime doesn't care when we do this, as long as we do it
> > > before the bo is registered and someone can call the handle2fd ioctl
> > > on it.
> > >
> > > Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
> > > of always passing a non-NULL resv to ttm_bo_init(). At least for gem
> > > drivers that would avoid having two of these, on in ttm_buffer_object
> > > and the other in drm_gem_object, one just there for confusion.
> > >
> > > Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > > Cc: Alex Deucher <alexander.deucher@amd.com>
> > > Cc: "Christian König" <christian.koenig@amd.com>
> > > Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
> > > Cc: amd-gfx@lists.freedesktop.org
> > > ---
> > > drivers/gpu/drm/radeon/radeon_drv.c | 2 --
> > > drivers/gpu/drm/radeon/radeon_object.c | 1 +
> > > drivers/gpu/drm/radeon/radeon_prime.c | 7 -------
> > > 3 files changed, 1 insertion(+), 9 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> > > index 4403e76e1ae0..a4a78dfdef37 100644
> > > --- a/drivers/gpu/drm/radeon/radeon_drv.c
> > > +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> > > @@ -152,7 +152,6 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
> > > struct sg_table *sg);
> > > int radeon_gem_prime_pin(struct drm_gem_object *obj);
> > > void radeon_gem_prime_unpin(struct drm_gem_object *obj);
> > > -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *);
> > > void *radeon_gem_prime_vmap(struct drm_gem_object *obj);
> > > void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
> > >
> > > @@ -566,7 +565,6 @@ static struct drm_driver kms_driver = {
> > > .gem_prime_export = radeon_gem_prime_export,
> > > .gem_prime_pin = radeon_gem_prime_pin,
> > > .gem_prime_unpin = radeon_gem_prime_unpin,
> > > - .gem_prime_res_obj = radeon_gem_prime_res_obj,
> > > .gem_prime_get_sg_table = radeon_gem_prime_get_sg_table,
> > > .gem_prime_import_sg_table = radeon_gem_prime_import_sg_table,
> > > .gem_prime_vmap = radeon_gem_prime_vmap,
> > > diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> > > index 21f73fc86f38..7a2bad843f8a 100644
> > > --- a/drivers/gpu/drm/radeon/radeon_object.c
> > > +++ b/drivers/gpu/drm/radeon/radeon_object.c
> > > @@ -262,6 +262,7 @@ int radeon_bo_create(struct radeon_device *rdev,
> > > r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
> > > &bo->placement, page_align, !kernel, acc_size,
> > > sg, resv, &radeon_ttm_bo_destroy);
> > > + bo->gem_base.resv = bo->tbo.resv;
> > > up_read(&rdev->pm.mclk_lock);
> > > if (unlikely(r != 0)) {
> > > return r;
> > > diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c
> > > index deaffce50a2e..8ce3e8045d42 100644
> > > --- a/drivers/gpu/drm/radeon/radeon_prime.c
> > > +++ b/drivers/gpu/drm/radeon/radeon_prime.c
> > > @@ -117,13 +117,6 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj)
> > > }
> > >
> > >
> > > -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
> > > -{
> > > - struct radeon_bo *bo = gem_to_radeon_bo(obj);
> > > -
> > > - return bo->tbo.resv;
> > > -}
> > > -
> > > struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
> > > int flags)
> > > {
> >
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 4/7] drm/radeon: Fill out gem_object->resv
[not found] ` <20190627073350.GG12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
@ 2019-07-19 13:00 ` Daniel Vetter
0 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2019-07-19 13:00 UTC (permalink / raw)
To: Koenig, Christian
Cc: Zhou, David(ChunMing), Daniel Vetter, DRI Development,
amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
Deucher, Alexander, Daniel Vetter, Emil Velikov
On Thu, Jun 27, 2019 at 09:33:50AM +0200, Daniel Vetter wrote:
> On Wed, Jun 26, 2019 at 10:23:12AM +0200, Daniel Vetter wrote:
> > On Wed, Jun 26, 2019 at 07:10:21AM +0000, Koenig, Christian wrote:
> > > Those patches would become superfluous when merging Gerd's work.
> >
> > Not entirely, they still remove the gem_prime_res_obj. Setting up
> > gem_bo.resv is only one half of what these do here. And yeah I think that
> > single addition can be removed again when Gerd's stuff lands.
> >
> > > But I'm not sure if that is going to fly soon or not.
> >
> > I think r-b from Thomas Zimmermann (or some other ttm+gem stakeholder) and
> > we're good to land them. Thomas Hellstrom mellowed down his "nack" to
> > "I'll look at this in August again and course-correct if necessary".
>
> Just pinged Gerd on this, so we can start coordination.
>
> btw planning to review this from amd side, I'd like to ditch
> gem_prime_res_obj especially with Gerd series it's pointless.
Gerd rebased his series on top of this, so review would be neat to unblock
everything. I'd like to get this all landed for 5.4.
Thanks, Daniel
> -Daniel
>
> > -Daniel
> >
> > >
> > > Christian.
> > >
> > > Am 25.06.19 um 22:42 schrieb Daniel Vetter:
> > > > That way we can ditch our gem_prime_res_obj implementation. Since ttm
> > > > absolutely needs the right reservation object all the boilerplate is
> > > > already there and we just have to wire it up correctly.
> > > >
> > > > Note that gem/prime doesn't care when we do this, as long as we do it
> > > > before the bo is registered and someone can call the handle2fd ioctl
> > > > on it.
> > > >
> > > > Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
> > > > of always passing a non-NULL resv to ttm_bo_init(). At least for gem
> > > > drivers that would avoid having two of these, on in ttm_buffer_object
> > > > and the other in drm_gem_object, one just there for confusion.
> > > >
> > > > Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> > > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > > > Cc: Alex Deucher <alexander.deucher@amd.com>
> > > > Cc: "Christian König" <christian.koenig@amd.com>
> > > > Cc: "David (ChunMing) Zhou" <David1.Zhou@amd.com>
> > > > Cc: amd-gfx@lists.freedesktop.org
> > > > ---
> > > > drivers/gpu/drm/radeon/radeon_drv.c | 2 --
> > > > drivers/gpu/drm/radeon/radeon_object.c | 1 +
> > > > drivers/gpu/drm/radeon/radeon_prime.c | 7 -------
> > > > 3 files changed, 1 insertion(+), 9 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> > > > index 4403e76e1ae0..a4a78dfdef37 100644
> > > > --- a/drivers/gpu/drm/radeon/radeon_drv.c
> > > > +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> > > > @@ -152,7 +152,6 @@ struct drm_gem_object *radeon_gem_prime_import_sg_table(struct drm_device *dev,
> > > > struct sg_table *sg);
> > > > int radeon_gem_prime_pin(struct drm_gem_object *obj);
> > > > void radeon_gem_prime_unpin(struct drm_gem_object *obj);
> > > > -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *);
> > > > void *radeon_gem_prime_vmap(struct drm_gem_object *obj);
> > > > void radeon_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
> > > >
> > > > @@ -566,7 +565,6 @@ static struct drm_driver kms_driver = {
> > > > .gem_prime_export = radeon_gem_prime_export,
> > > > .gem_prime_pin = radeon_gem_prime_pin,
> > > > .gem_prime_unpin = radeon_gem_prime_unpin,
> > > > - .gem_prime_res_obj = radeon_gem_prime_res_obj,
> > > > .gem_prime_get_sg_table = radeon_gem_prime_get_sg_table,
> > > > .gem_prime_import_sg_table = radeon_gem_prime_import_sg_table,
> > > > .gem_prime_vmap = radeon_gem_prime_vmap,
> > > > diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> > > > index 21f73fc86f38..7a2bad843f8a 100644
> > > > --- a/drivers/gpu/drm/radeon/radeon_object.c
> > > > +++ b/drivers/gpu/drm/radeon/radeon_object.c
> > > > @@ -262,6 +262,7 @@ int radeon_bo_create(struct radeon_device *rdev,
> > > > r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
> > > > &bo->placement, page_align, !kernel, acc_size,
> > > > sg, resv, &radeon_ttm_bo_destroy);
> > > > + bo->gem_base.resv = bo->tbo.resv;
> > > > up_read(&rdev->pm.mclk_lock);
> > > > if (unlikely(r != 0)) {
> > > > return r;
> > > > diff --git a/drivers/gpu/drm/radeon/radeon_prime.c b/drivers/gpu/drm/radeon/radeon_prime.c
> > > > index deaffce50a2e..8ce3e8045d42 100644
> > > > --- a/drivers/gpu/drm/radeon/radeon_prime.c
> > > > +++ b/drivers/gpu/drm/radeon/radeon_prime.c
> > > > @@ -117,13 +117,6 @@ void radeon_gem_prime_unpin(struct drm_gem_object *obj)
> > > > }
> > > >
> > > >
> > > > -struct reservation_object *radeon_gem_prime_res_obj(struct drm_gem_object *obj)
> > > > -{
> > > > - struct radeon_bo *bo = gem_to_radeon_bo(obj);
> > > > -
> > > > - return bo->tbo.resv;
> > > > -}
> > > > -
> > > > struct dma_buf *radeon_gem_prime_export(struct drm_gem_object *gobj,
> > > > int flags)
> > > > {
> > >
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 4/7] drm/radeon: Fill out gem_object->resv
2019-06-25 20:52 ` Sam Ravnborg
@ 2019-07-25 13:18 ` Daniel Vetter
0 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2019-07-25 13:18 UTC (permalink / raw)
To: Sam Ravnborg
Cc: Daniel Vetter, amd-gfx, DRI Development, Alex Deucher,
Daniel Vetter, Christian König, Emil Velikov
On Tue, Jun 25, 2019 at 10:52:17PM +0200, Sam Ravnborg wrote:
> On Tue, Jun 25, 2019 at 10:42:05PM +0200, Daniel Vetter wrote:
> > That way we can ditch our gem_prime_res_obj implementation. Since ttm
> > absolutely needs the right reservation object all the boilerplate is
> > already there and we just have to wire it up correctly.
> >
> > Note that gem/prime doesn't care when we do this, as long as we do it
> > before the bo is registered and someone can call the handle2fd ioctl
> > on it.
> >
> > Aside: ttm_buffer_object.ttm_resv could probably be ditched in favour
> > of always passing a non-NULL resv to ttm_bo_init(). At least for gem
> > drivers that would avoid having two of these, on in ttm_buffer_object
> > and the other in drm_gem_object, one just there for confusion.
> Something for todo.rst - so this does not get lost in a changelog
> people will soon forget?
Gerd already has a nice patch series (rebased onto this one), so I don't
think we need a todo.rst for this.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-07-25 13:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190625204208.5614-1-daniel.vetter@ffwll.ch>
[not found] ` <20190625204208.5614-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-25 20:42 ` [PATCH 4/7] drm/radeon: Fill out gem_object->resv Daniel Vetter
[not found] ` <20190625204208.5614-5-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-25 20:52 ` Sam Ravnborg
2019-07-25 13:18 ` Daniel Vetter
2019-06-26 7:10 ` Koenig, Christian
[not found] ` <4cfa949e-1a20-149c-0758-e1bd97fd3cf5-5C7GfCeVMHo@public.gmane.org>
2019-06-26 8:23 ` Daniel Vetter
[not found] ` <20190626082312.GI12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2019-06-27 7:33 ` Daniel Vetter
[not found] ` <20190627073350.GG12905-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2019-07-19 13:00 ` Daniel Vetter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox