On Mon, Sep 02, 2019 at 04:34:49PM +0200, Thomas Zimmermann wrote: > This patch seems unrelated. Well, patch 5/5 depends on it because it hooks the drm_gem_ttm_print_info helper into the new qxl_object_funcs added by this patch. > Am 02.09.19 um 14:41 schrieb Gerd Hoffmann: > > Switch qxl to use drm_gem_object_funcs callbacks > > instead of drm_driver callbacks. > > > > Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> > > --- > > drivers/gpu/drm/qxl/qxl_drv.c | 8 -------- > > drivers/gpu/drm/qxl/qxl_object.c | 12 ++++++++++++ > > 2 files changed, 12 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c > > index 2b726a51a302..996d428fa7e6 100644 > > --- a/drivers/gpu/drm/qxl/qxl_drv.c > > +++ b/drivers/gpu/drm/qxl/qxl_drv.c > > @@ -258,16 +258,8 @@ static struct drm_driver qxl_driver = { > > #endif > > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > > - .gem_prime_pin = qxl_gem_prime_pin, > > - .gem_prime_unpin = qxl_gem_prime_unpin, > > - .gem_prime_get_sg_table = qxl_gem_prime_get_sg_table, > > .gem_prime_import_sg_table = qxl_gem_prime_import_sg_table, > > - .gem_prime_vmap = qxl_gem_prime_vmap, > > - .gem_prime_vunmap = qxl_gem_prime_vunmap, > > .gem_prime_mmap = qxl_gem_prime_mmap, > > - .gem_free_object_unlocked = qxl_gem_object_free, > > - .gem_open_object = qxl_gem_object_open, > > - .gem_close_object = qxl_gem_object_close, > > .fops = &qxl_fops, > > .ioctls = qxl_ioctls, > > .irq_handler = qxl_irq_handler, > > diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c > > index 548dfe6f3b26..29aab7b14513 100644 > > --- a/drivers/gpu/drm/qxl/qxl_object.c > > +++ b/drivers/gpu/drm/qxl/qxl_object.c > > @@ -77,6 +77,17 @@ void qxl_ttm_placement_from_domain(struct qxl_bo *qbo, u32 domain, bool pinned) > > } > > } > > > > +static const struct drm_gem_object_funcs qxl_object_funcs = { > > + .free = qxl_gem_object_free, > > + .open = qxl_gem_object_open, > > + .close = qxl_gem_object_close, > > + .pin = qxl_gem_prime_pin, > > + .unpin = qxl_gem_prime_unpin, > > + .get_sg_table = qxl_gem_prime_get_sg_table, > > + .vmap = qxl_gem_prime_vmap, > > + .vunmap = qxl_gem_prime_vunmap, > > +}; > > + > > int qxl_bo_create(struct qxl_device *qdev, > > unsigned long size, bool kernel, bool pinned, u32 domain, > > struct qxl_surface *surf, > > @@ -100,6 +111,7 @@ int qxl_bo_create(struct qxl_device *qdev, > > kfree(bo); > > return r; > > } > > + bo->tbo.base.funcs = &qxl_object_funcs; > > bo->type = domain; > > bo->pin_count = pinned ? 1 : 0; > > bo->surface_id = 0; > > > > -- > Thomas Zimmermann > Graphics Driver Developer > SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany > GF: Felix Imendörffer, Mary Higgins, Sri Rasiah > HRB 21284 (AG Nürnberg) > _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization