mbox series

[00/59] prime doc polish and ... a few cleanups

Message ID 20190614203615.12639-1-daniel.vetter@ffwll.ch (mailing list archive)
Headers show
Series prime doc polish and ... a few cleanups | expand

Message

Daniel Vetter June 14, 2019, 8:35 p.m. UTC
Hi all,

So I figured let's get going and polish the docs for the last part of drm
core/helpers that hasn't yet seen some neat polish last few years. With
the goal to make docs for driver kapi a requirement henceforth - see last
patch. Aside from that final doc patch I also included some todo.rst
updates, bunch of things have progressed quite a bit.

Of course spotted some lower-hanging fruit to untangle the prime helpers
and interfaces, and decided to at least fix a few of those.

Patch series survived some light testing on i915+vgem, but that's it. So
review, testing, comments and anything else really highgly welcome.

Cheers, Daniel

Daniel Vetter (59):
  drm/todo: Improve drm_gem_object funcs todo
  drm/gem: Unexport drm_gem_(un)pin/v(un)map
  drm/prime: Update docs
  drm/prime: Unconditionally set up the prime file private
  drm/prime: Make DRIVER_PRIME a no-op
  drm/prime: Actually remove DRIVER_PRIME everywhere
  drm/arm/komeda: Remove DRIVER_HAVE_IRQ
  drm/omapdrm: drop fb_debug_enter/leave
  drm/prime: Align gem_prime_export with obj_funcs.export
  drm/arc: Drop drm_gem_prime_export/import
  drm/arm: Drop drm_gem_prime_export/import
  drm/atmel: Drop drm_gem_prime_export/import
  drm/etnaviv: Drop drm_gem_prime_export/import
  drm/exynos: Drop drm_gem_prime_export
  drm/fsl-dcu: Drop drm_gem_prime_export/import
  drm/hisilicon: Drop drm_gem_prime_export/import
  drm/imx: Drop drm_gem_prime_export/import
  drm/mcde: Drop drm_gem_prime_export/import
  drm/mtk: Drop drm_gem_prime_export/import
  drm/meson: Drop drm_gem_prime_export/import
  drm/msm: Drop drm_gem_prime_export/import
  drm/mxsfb: Drop drm_gem_prime_export/import
  drm/nouveau: Drop drm_gem_prime_export/import
  drm/pl111: Drop drm_gem_prime_export/import
  drm/qxl: Drop drm_gem_prime_export/import
  drm/rcar-du: Drop drm_gem_prime_export/import
  drm/rockchip: Drop drm_gem_prime_export/import
  drm/shmob: Drop drm_gem_prime_export/import
  drm/sti: Drop drm_gem_prime_export/import
  drm/stm: Drop drm_gem_prime_export/import
  drm/tilcdc: Drop drm_gem_prime_export/import
  drm/tve2000: Drop drm_gem_prime_export/import
  drm/vboxvideo: Drop drm_gem_prime_export/import
  drm/vc3: Drop drm_gem_prime_import
  drm/radeon: Drop drm_gem_prime_import
  drm/vgem: Drop drm_gem_prime_export
  drm/virtio: Drop drm_gem_prime_export/import
  drm/xen: Drop drm_gem_prime_export/import
  drm/zte: Drop drm_gem_prime_export/import
  drm/vram-helper: Drop drm_gem_prime_export/import
  drm/prime: automatically set gem_obj->resv on import
  drm/etnaviv: Drop resv argument from etnaviv_gem_new_impl
  drm/lima: Drop resv argument from lima_bo_create_struct
  drm/mediatek: Use drm_atomic_helper_wait_for_fences
  drm/msm: Drop robj from msm_gem_new_impl
  drm/panfrost: don't set gem_obj->resv for prime import anymore
  drm/vc4: Don set gem_obj->resv in prime import anymore
  drm/vgem: Ditch attach trickery in the fence ioctl
  drm/msm: Use drm_gem_fb_prepare_fb
  drm/vc4: Use drm_gem_fb_prepare_fb
  drm/radeon: Fill out gem_object->resv
  drm/nouveau: Fill out gem_object->resv
  drm/amdgpu: Fill out gem_object->resv
  drm/prime: Ditch gem_prime_res_obj hook
  drm/todo: remove gem_prime_import/export todo
  drm/todo: Update backlight todo
  drm/todo: Update mmap todo
  drm/todo: Add new debugfs todo
  drm/doc: Document kapi doc expectations

 Documentation/gpu/drm-mm.rst                  |  40 +-
 Documentation/gpu/introduction.rst            |  13 +
 Documentation/gpu/todo.rst                    |  65 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c   |  24 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.h   |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c       |   3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c    |   2 +
 drivers/gpu/drm/arc/arcpgu_drv.c              |   5 +-
 .../gpu/drm/arm/display/komeda/komeda_kms.c   |   5 +-
 drivers/gpu/drm/arm/hdlcd_drv.c               |   6 +-
 drivers/gpu/drm/arm/malidp_drv.c              |   5 +-
 drivers/gpu/drm/armada/armada_drv.c           |   3 +-
 drivers/gpu/drm/armada/armada_gem.c           |   5 +-
 drivers/gpu/drm/armada/armada_gem.h           |   3 +-
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c       |   3 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c  |   6 +-
 drivers/gpu/drm/bochs/bochs_drv.c             |   3 +-
 drivers/gpu/drm/cirrus/cirrus.c               |   2 +-
 drivers/gpu/drm/drm_file.c                    |   9 +-
 drivers/gpu/drm/drm_gem.c                     |  35 +-
 drivers/gpu/drm/drm_internal.h                |   5 +
 drivers/gpu/drm/drm_prime.c                   | 861 +++++++++---------
 drivers/gpu/drm/etnaviv/etnaviv_drv.c         |   6 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem.c         |  14 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem.h         |   3 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c   |   1 -
 drivers/gpu/drm/exynos/exynos_drm_drv.c       |   3 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c     |   5 +-
 .../gpu/drm/hisilicon/kirin/kirin_drm_drv.c   |   5 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c    |   5 +-
 .../drm/i915/gem/selftests/i915_gem_dmabuf.c  |   8 +-
 drivers/gpu/drm/i915/gvt/dmabuf.c             |   2 +-
 drivers/gpu/drm/i915/i915_drv.c               |   2 +-
 drivers/gpu/drm/i915/i915_drv.h               |   3 +-
 drivers/gpu/drm/imx/imx-drm-core.c            |   5 +-
 drivers/gpu/drm/lima/lima_drv.c               |   2 +-
 drivers/gpu/drm/lima/lima_gem.c               |   2 +-
 drivers/gpu/drm/lima/lima_gem_prime.c         |   3 +-
 drivers/gpu/drm/lima/lima_object.c            |   9 +-
 drivers/gpu/drm/lima/lima_object.h            |   3 +-
 drivers/gpu/drm/mcde/mcde_drv.c               |   4 +-
 drivers/gpu/drm/mediatek/mtk_drm_drv.c        |  17 +-
 drivers/gpu/drm/mediatek/mtk_drm_fb.c         |  28 -
 drivers/gpu/drm/mediatek/mtk_drm_fb.h         |   1 -
 drivers/gpu/drm/mediatek/mtk_drm_plane.c      |   2 +
 drivers/gpu/drm/meson/meson_drv.c             |   6 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c     |   5 +-
 drivers/gpu/drm/msm/msm_atomic.c              |   5 +-
 drivers/gpu/drm/msm/msm_drv.c                 |   3 -
 drivers/gpu/drm/msm/msm_gem.c                 |   8 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c             |   5 +-
 drivers/gpu/drm/nouveau/nouveau_bo.c          |   2 +
 drivers/gpu/drm/nouveau/nouveau_drm.c         |   5 +-
 drivers/gpu/drm/nouveau/nouveau_gem.h         |   1 -
 drivers/gpu/drm/nouveau/nouveau_prime.c       |   7 -
 drivers/gpu/drm/omapdrm/omap_drv.c            |   2 +-
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |   2 -
 drivers/gpu/drm/omapdrm/omap_gem.h            |   3 +-
 drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c     |   5 +-
 drivers/gpu/drm/panfrost/panfrost_drv.c       |   3 +-
 drivers/gpu/drm/panfrost/panfrost_gem.c       |   2 -
 drivers/gpu/drm/pl111/pl111_drv.c             |   4 +-
 drivers/gpu/drm/qxl/qxl_drv.c                 |   5 +-
 drivers/gpu/drm/radeon/radeon_drv.c           |   8 +-
 drivers/gpu/drm/radeon/radeon_object.c        |   1 +
 drivers/gpu/drm/radeon/radeon_prime.c         |  12 +-
 drivers/gpu/drm/rcar-du/rcar_du_drv.c         |   5 +-
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c   |   5 +-
 drivers/gpu/drm/shmobile/shmob_drm_drv.c      |   5 +-
 drivers/gpu/drm/sti/sti_drv.c                 |   5 +-
 drivers/gpu/drm/stm/drv.c                     |   5 +-
 drivers/gpu/drm/sun4i/sun4i_drv.c             |   2 +-
 drivers/gpu/drm/tegra/drm.c                   |   2 +-
 drivers/gpu/drm/tegra/gem.c                   |   7 +-
 drivers/gpu/drm/tegra/gem.h                   |   3 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c           |   5 +-
 drivers/gpu/drm/tinydrm/hx8357d.c             |   2 +-
 drivers/gpu/drm/tinydrm/ili9225.c             |   3 +-
 drivers/gpu/drm/tinydrm/ili9341.c             |   2 +-
 drivers/gpu/drm/tinydrm/mi0283qt.c            |   3 +-
 drivers/gpu/drm/tinydrm/repaper.c             |   3 +-
 drivers/gpu/drm/tinydrm/st7586.c              |   3 +-
 drivers/gpu/drm/tinydrm/st7735r.c             |   3 +-
 drivers/gpu/drm/tve200/tve200_drv.c           |   5 +-
 drivers/gpu/drm/udl/udl_dmabuf.c              |   5 +-
 drivers/gpu/drm/udl/udl_drv.c                 |   2 +-
 drivers/gpu/drm/udl/udl_drv.h                 |   3 +-
 drivers/gpu/drm/v3d/v3d_drv.c                 |   1 -
 drivers/gpu/drm/vboxvideo/vbox_drv.c          |   4 +-
 drivers/gpu/drm/vc4/vc4_bo.c                  |   7 +-
 drivers/gpu/drm/vc4/vc4_drv.c                 |   2 -
 drivers/gpu/drm/vc4/vc4_drv.h                 |   3 +-
 drivers/gpu/drm/vc4/vc4_plane.c               |   5 +-
 drivers/gpu/drm/vgem/vgem_drv.c               |   4 +-
 drivers/gpu/drm/vgem/vgem_fence.c             |  22 +-
 drivers/gpu/drm/virtio/virtgpu_drv.c          |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c           |   2 +-
 drivers/gpu/drm/xen/xen_drm_front.c           |   5 +-
 drivers/gpu/drm/zte/zx_drm_drv.c              |   5 +-
 include/drm/drm_drv.h                         | 104 ++-
 include/drm/drm_gem.h                         |  23 +-
 include/drm/drm_gem_vram_helper.h             |   2 -
 include/drm/drm_prime.h                       |  41 +-
 103 files changed, 717 insertions(+), 929 deletions(-)

Comments

Emil Velikov June 17, 2019, 6:21 p.m. UTC | #1
Hi Daniel,

On Fri, 14 Jun 2019 at 21:36, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
>
> Hi all,
>
> So I figured let's get going and polish the docs for the last part of drm
> core/helpers that hasn't yet seen some neat polish last few years. With
> the goal to make docs for driver kapi a requirement henceforth - see last
> patch. Aside from that final doc patch I also included some todo.rst
> updates, bunch of things have progressed quite a bit.
>
> Of course spotted some lower-hanging fruit to untangle the prime helpers
> and interfaces, and decided to at least fix a few of those.
>
> Patch series survived some light testing on i915+vgem, but that's it. So
> review, testing, comments and anything else really highgly welcome.
>
> Cheers, Daniel
>
> Daniel Vetter (59):
I think this is the larges series from you so far. As already
mentioned - might be good idea to split this up a bit and merge it
into a few pieces?
Should make the churn much more manageable.

>   drm/prime: Unconditionally set up the prime file private
>   drm/prime: Make DRIVER_PRIME a no-op
>   drm/prime: Actually remove DRIVER_PRIME everywhere
Patch set#1
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

>   drm/arm/komeda: Remove DRIVER_HAVE_IRQ
>   drm/omapdrm: drop fb_debug_enter/leave
I'd keep these separate - each one is:
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

>   drm/arc: Drop drm_gem_prime_export/import
>   drm/arm: Drop drm_gem_prime_export/import
>   drm/atmel: Drop drm_gem_prime_export/import
>   drm/etnaviv: Drop drm_gem_prime_export/import
>   drm/exynos: Drop drm_gem_prime_export
>   drm/fsl-dcu: Drop drm_gem_prime_export/import
>   drm/hisilicon: Drop drm_gem_prime_export/import
>   drm/imx: Drop drm_gem_prime_export/import
>   drm/mcde: Drop drm_gem_prime_export/import
>   drm/mtk: Drop drm_gem_prime_export/import
>   drm/meson: Drop drm_gem_prime_export/import
>   drm/msm: Drop drm_gem_prime_export/import
>   drm/mxsfb: Drop drm_gem_prime_export/import
>   drm/nouveau: Drop drm_gem_prime_export/import
>   drm/pl111: Drop drm_gem_prime_export/import
>   drm/qxl: Drop drm_gem_prime_export/import
>   drm/rcar-du: Drop drm_gem_prime_export/import
>   drm/rockchip: Drop drm_gem_prime_export/import
>   drm/shmob: Drop drm_gem_prime_export/import
>   drm/sti: Drop drm_gem_prime_export/import
>   drm/stm: Drop drm_gem_prime_export/import
>   drm/tilcdc: Drop drm_gem_prime_export/import
>   drm/tve2000: Drop drm_gem_prime_export/import
>   drm/vboxvideo: Drop drm_gem_prime_export/import
>   drm/vc3: Drop drm_gem_prime_import
>   drm/radeon: Drop drm_gem_prime_import
>   drm/vgem: Drop drm_gem_prime_export
>   drm/virtio: Drop drm_gem_prime_export/import
>   drm/xen: Drop drm_gem_prime_export/import
>   drm/zte: Drop drm_gem_prime_export/import
>   drm/vram-helper: Drop drm_gem_prime_export/import

The above are completely orthogonal of the preceding prime patches. For this lot
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

I'll get to the rest tomorrow.

HTH
Emil

>   drm/todo: Improve drm_gem_object funcs todo
>   drm/gem: Unexport drm_gem_(un)pin/v(un)map

>   drm/prime: Update docs

>   drm/prime: Align gem_prime_export with obj_funcs.export

>   drm/prime: automatically set gem_obj->resv on import
>   drm/etnaviv: Drop resv argument from etnaviv_gem_new_impl
>   drm/lima: Drop resv argument from lima_bo_create_struct
>   drm/mediatek: Use drm_atomic_helper_wait_for_fences
>   drm/msm: Drop robj from msm_gem_new_impl
>   drm/panfrost: don't set gem_obj->resv for prime import anymore
>   drm/vc4: Don set gem_obj->resv in prime import anymore
>   drm/vgem: Ditch attach trickery in the fence ioctl
>   drm/msm: Use drm_gem_fb_prepare_fb
>   drm/vc4: Use drm_gem_fb_prepare_fb
>   drm/radeon: Fill out gem_object->resv
>   drm/nouveau: Fill out gem_object->resv
>   drm/amdgpu: Fill out gem_object->resv
>   drm/prime: Ditch gem_prime_res_obj hook
>   drm/todo: remove gem_prime_import/export todo
>   drm/todo: Update backlight todo
>   drm/todo: Update mmap todo
>   drm/todo: Add new debugfs todo
>   drm/doc: Document kapi doc expectations
>
Emil Velikov June 18, 2019, 10:41 a.m. UTC | #2
On 2019/06/17, Emil Velikov wrote:
> Hi Daniel,
> 
> On Fri, 14 Jun 2019 at 21:36, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> >
> > Hi all,
> >
> > So I figured let's get going and polish the docs for the last part of drm
> > core/helpers that hasn't yet seen some neat polish last few years. With
> > the goal to make docs for driver kapi a requirement henceforth - see last
> > patch. Aside from that final doc patch I also included some todo.rst
> > updates, bunch of things have progressed quite a bit.
> >
> > Of course spotted some lower-hanging fruit to untangle the prime helpers
> > and interfaces, and decided to at least fix a few of those.
> >
> > Patch series survived some light testing on i915+vgem, but that's it. So
> > review, testing, comments and anything else really highgly welcome.
> >
> > Cheers, Daniel
> >
> > Daniel Vetter (59):
> I think this is the larges series from you so far. As already
> mentioned - might be good idea to split this up a bit and merge it
> into a few pieces?
> Should make the churn much more manageable.
> 
> >   drm/prime: Unconditionally set up the prime file private
> >   drm/prime: Make DRIVER_PRIME a no-op
> >   drm/prime: Actually remove DRIVER_PRIME everywhere
> Patch set#1
> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> 
> >   drm/arm/komeda: Remove DRIVER_HAVE_IRQ
> >   drm/omapdrm: drop fb_debug_enter/leave
> I'd keep these separate - each one is:
> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> 
> >   drm/arc: Drop drm_gem_prime_export/import
> >   drm/arm: Drop drm_gem_prime_export/import
> >   drm/atmel: Drop drm_gem_prime_export/import
> >   drm/etnaviv: Drop drm_gem_prime_export/import
> >   drm/exynos: Drop drm_gem_prime_export
> >   drm/fsl-dcu: Drop drm_gem_prime_export/import
> >   drm/hisilicon: Drop drm_gem_prime_export/import
> >   drm/imx: Drop drm_gem_prime_export/import
> >   drm/mcde: Drop drm_gem_prime_export/import
> >   drm/mtk: Drop drm_gem_prime_export/import
> >   drm/meson: Drop drm_gem_prime_export/import
> >   drm/msm: Drop drm_gem_prime_export/import
> >   drm/mxsfb: Drop drm_gem_prime_export/import
> >   drm/nouveau: Drop drm_gem_prime_export/import
> >   drm/pl111: Drop drm_gem_prime_export/import
> >   drm/qxl: Drop drm_gem_prime_export/import
> >   drm/rcar-du: Drop drm_gem_prime_export/import
> >   drm/rockchip: Drop drm_gem_prime_export/import
> >   drm/shmob: Drop drm_gem_prime_export/import
> >   drm/sti: Drop drm_gem_prime_export/import
> >   drm/stm: Drop drm_gem_prime_export/import
> >   drm/tilcdc: Drop drm_gem_prime_export/import
> >   drm/tve2000: Drop drm_gem_prime_export/import
> >   drm/vboxvideo: Drop drm_gem_prime_export/import
> >   drm/vc3: Drop drm_gem_prime_import
> >   drm/radeon: Drop drm_gem_prime_import
> >   drm/vgem: Drop drm_gem_prime_export
> >   drm/virtio: Drop drm_gem_prime_export/import
> >   drm/xen: Drop drm_gem_prime_export/import
> >   drm/zte: Drop drm_gem_prime_export/import
> >   drm/vram-helper: Drop drm_gem_prime_export/import
> 
> The above are completely orthogonal of the preceding prime patches. For this lot
> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
> 
> I'll get to the rest tomorrow.
> 
> HTH
> Emil
> 
> >   drm/todo: Improve drm_gem_object funcs todo
> >   drm/gem: Unexport drm_gem_(un)pin/v(un)map
> 
Series X++:
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>


> >   drm/prime: Update docs
> 
Will look/reply in v2 of the above.

> >   drm/prime: Align gem_prime_export with obj_funcs.export
> 
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

> >   drm/prime: automatically set gem_obj->resv on import
> >   drm/etnaviv: Drop resv argument from etnaviv_gem_new_impl
> >   drm/lima: Drop resv argument from lima_bo_create_struct
> >   drm/mediatek: Use drm_atomic_helper_wait_for_fences
> >   drm/msm: Drop robj from msm_gem_new_impl
> >   drm/panfrost: don't set gem_obj->resv for prime import anymore
> >   drm/vc4: Don set gem_obj->resv in prime import anymore
> >   drm/vgem: Ditch attach trickery in the fence ioctl
Series X++:
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

> >   drm/msm: Use drm_gem_fb_prepare_fb
> >   drm/vc4: Use drm_gem_fb_prepare_fb
Series X++?
My atomic foo isn't that great so I cannot provide any meaningful review

> >   drm/radeon: Fill out gem_object->resv
> >   drm/nouveau: Fill out gem_object->resv
> >   drm/amdgpu: Fill out gem_object->resv
> >   drm/prime: Ditch gem_prime_res_obj hook
Series X++. For the lot:
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

> >   drm/todo: remove gem_prime_import/export todo
> >   drm/todo: Update backlight todo
> >   drm/todo: Update mmap todo
> >   drm/todo: Add new debugfs todo
> >   drm/doc: Document kapi doc expectations
> >
For the documentation updates
Acked-by: Emil Velikov <emil.velikov@collabora.com>

Thanks
Emil