Re: [PATCH 00/14] Rename dma-buf-map

From: Thomas Zimmermann
Date: Tue Feb 01 2022 - 03:08:05 EST


Hi

Am 01.02.22 um 08:46 schrieb Christian König:
[..]
2) If renaming, would it still keep the same entry in
MAINTAINERS? Thomas suggested drivers core, but this all seem to be used
mainly on drm/, with just one exception.

I would just add a complete new entry for this and use Thomas as maintainer (with his permission of course) and dri as mailing list.

Sure, no problem.

Best regards
Thomas



3) If renaming, do we have another preferred name?

Nope, as Daniel said the name itself is only bikesheed. What is important is that we see this as functionality separated from the inter driver interface.

Regards,
Christian.



thanks
Lucas De Marchi



But as I said, I don't really have a preference. When crossing
subsystems one thing that is hard is that different people have different
preferences on these things. At least squashing now is much easier than
if I had to split it

Try to imagine how much complain I received on going the other way in
25985edcedea6396277003854657b5f3cb31a628 with
2463 files changed, 4252 insertions(+), 4252 deletions(-)

Well exactly that is perfectly fine.

What you do here is applying your personal hack which is absolutely not welcomed.

Regards,
Christian.

:)


Lucas De Marchi


Regards,
Christian.

I built this series, full config with
CONFIG_COMPILE_TEST and doing:

    git rebase -i <base> -x "make -j$(nproc)"

I split these patches in a way that wouldn't break the build on purpose.
There were a couple that I couldn't build without cross compiling: tegra
and rockchip. The others were ok.

I'm not really against squashing everything in one to merge, though.
It will be hard on the conflicts later, but should get the job done much
quicker.

Lucas De Marchi


Regards,
Christian.

Am 28.01.22 um 09:36 schrieb Lucas De Marchi:
Motivation for this started in
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Flkml%2F20220126203702.1784589-1-lucas.demarchi%40intel.com%2F&amp;data=04%7C01%7Cchristian.koenig%40amd.com%7C01142fa3ce484040ade008d9e51aef5d%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637792726123940514%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=p8rR28Hn0yMTbwy%2F7bpiGyG9fAu9kG1VUzX2MF44mcs%3D&amp;reserved=0


when trying to extend the dma-buf-map API to cover new use cases: help a
single driver with allocations and sharing code paths for IO and system
memory. I'm leaving the API additions aside and first renaming the
interface as requested.

There are already some users in tree outside the context of dma-buf
importer/exporter. So before extending the API, let's dissociate it from
dma-buf.

The iosys-map.h is introduced in the first patch in a way that allows
the conversion of each driver to happen separately. After all the
conversions are done we can remove the old one, which is the last patch.
Another possible way is to squash everything and merge together,
but I believe this would make much harder for review.

The conversion was done with the following semantic patch:

    @r1@
    @@
    - struct dma_buf_map
    + struct iosys_map

    @r2@
    @@
    (
    - DMA_BUF_MAP_INIT_VADDR
    + IOSYS_MAP_INIT_VADDR
    |
    - dma_buf_map_set_vaddr
    + iosys_map_set_vaddr
    |
    - dma_buf_map_set_vaddr_iomem
    + iosys_map_set_vaddr_iomem
    |
    - dma_buf_map_is_equal
    + iosys_map_is_equal
    |
    - dma_buf_map_is_null
    + iosys_map_is_null
    |
    - dma_buf_map_is_set
    + iosys_map_is_set
    |
    - dma_buf_map_clear
    + iosys_map_clear
    |
    - dma_buf_map_memcpy_to
    + iosys_map_memcpy_to
    |
    - dma_buf_map_incr
    + iosys_map_incr
    )

    @@
    @@
    - #include <linux/dma-buf-map.h>
    + #include <linux/iosys-map.h>

and then some files had their includes adjusted so we can build
everything on each commit in this series. Also some comments were update
to remove mentions to dma-buf-map. Simply doing a sed to rename didn't
work as dma-buf has some APIs using the dma_buf_map prefix.

Once finalized, I think most of this, if not all, could go through the
drm-misc-next branch. I split i915, msm, nouveau, and radeon in their
own patches in case it's preferred to take those through their own
trees.

Lucas De Marchi

Lucas De Marchi (14):
  iosys-map: Introduce renamed dma-buf-map
  misc: fastrpc: Replace dma-buf-map with iosys-map
  dma-buf: Replace dma-buf-map with iosys-map
  media: Replace dma-buf-map with iosys-map
  drm/ttm: Replace dma-buf-map with iosys-map
  drm: Replace dma-buf-map with iosys-map in drivers
  drm/i915: Replace dma-buf-map with iosys-map
  drm/msm: Replace dma-buf-map with iosys-map
  drm/nouveau: Replace dma-buf-map with iosys-map
  drm/tegra: Replace dma-buf-map with iosys-map
  drm/radeon: Replace dma-buf-map with iosys-map
  drm: Replace dma-buf-map with iosys-map in common code
  Documentation: Refer to iosys-map instead of dma-buf-map
  dma-buf-map: Remove API in favor of iosys-map

 Documentation/driver-api/dma-buf.rst          |   4 +-
 Documentation/gpu/todo.rst                    |  20 +-
 MAINTAINERS                                   |   2 +-
 drivers/dma-buf/dma-buf.c                     |  22 +-
 drivers/dma-buf/heaps/cma_heap.c              |  10 +-
 drivers/dma-buf/heaps/system_heap.c           |  10 +-
 drivers/gpu/drm/ast/ast_drv.h                 |   2 +-
 drivers/gpu/drm/ast/ast_mode.c                |   8 +-
 drivers/gpu/drm/drm_cache.c                   |  18 +-
 drivers/gpu/drm/drm_client.c                  |   9 +-
 drivers/gpu/drm/drm_fb_helper.c               |  12 +-
 drivers/gpu/drm/drm_gem.c                     |  12 +-
 drivers/gpu/drm/drm_gem_cma_helper.c          |   9 +-
 drivers/gpu/drm/drm_gem_framebuffer_helper.c  |  16 +-
 drivers/gpu/drm/drm_gem_shmem_helper.c        |  15 +-
 drivers/gpu/drm/drm_gem_ttm_helper.c          |   4 +-
 drivers/gpu/drm/drm_gem_vram_helper.c         |  25 +-
 drivers/gpu/drm/drm_internal.h                |   6 +-
 drivers/gpu/drm/drm_mipi_dbi.c                |   8 +-
 drivers/gpu/drm/drm_prime.c                   |   4 +-
 drivers/gpu/drm/etnaviv/etnaviv_drv.h         |   2 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c   |   8 +-
 drivers/gpu/drm/gud/gud_pipe.c                |   4 +-
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c   |   5 +-
 drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c    |   8 +-
 .../drm/i915/gem/selftests/i915_gem_dmabuf.c  |   6 +-
 .../gpu/drm/i915/gem/selftests/mock_dmabuf.c  |   6 +-
 drivers/gpu/drm/lima/lima_gem.c               |   3 +-
 drivers/gpu/drm/lima/lima_sched.c             |   4 +-
 drivers/gpu/drm/mediatek/mtk_drm_gem.c        |   7 +-
 drivers/gpu/drm/mediatek/mtk_drm_gem.h        |   5 +-
 drivers/gpu/drm/mgag200/mgag200_mode.c        |   4 +-
 drivers/gpu/drm/msm/msm_drv.h                 |   4 +-
 drivers/gpu/drm/msm/msm_gem_prime.c           |   6 +-
 drivers/gpu/drm/nouveau/nouveau_gem.c         |   2 +
 drivers/gpu/drm/panfrost/panfrost_perfcnt.c   |  13 +-
 drivers/gpu/drm/qxl/qxl_display.c             |   8 +-
 drivers/gpu/drm/qxl/qxl_draw.c                |   6 +-
 drivers/gpu/drm/qxl/qxl_drv.h                 |  10 +-
 drivers/gpu/drm/qxl/qxl_object.c              |   8 +-
 drivers/gpu/drm/qxl/qxl_object.h              |   4 +-
 drivers/gpu/drm/qxl/qxl_prime.c               |   4 +-
 drivers/gpu/drm/radeon/radeon_gem.c           |   1 +
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c   |   9 +-
 drivers/gpu/drm/rockchip/rockchip_drm_gem.h   |   5 +-
 drivers/gpu/drm/tegra/gem.c                   |  10 +-
 drivers/gpu/drm/tiny/cirrus.c                 |   8 +-
 drivers/gpu/drm/tiny/gm12u320.c               |   7 +-
 drivers/gpu/drm/ttm/ttm_bo_util.c             |  16 +-
 drivers/gpu/drm/ttm/ttm_resource.c            |  26 +-
 drivers/gpu/drm/ttm/ttm_tt.c                  |   6 +-
 drivers/gpu/drm/udl/udl_modeset.c             |   3 +-
 drivers/gpu/drm/vboxvideo/vbox_mode.c         |   4 +-
 drivers/gpu/drm/virtio/virtgpu_prime.c        |   1 +
 drivers/gpu/drm/vkms/vkms_composer.c          |   4 +-
 drivers/gpu/drm/vkms/vkms_drv.h               |   6 +-
 drivers/gpu/drm/vkms/vkms_plane.c             |   2 +-
 drivers/gpu/drm/vkms/vkms_writeback.c         |   2 +-
 drivers/gpu/drm/xen/xen_drm_front_gem.c       |   7 +-
 drivers/gpu/drm/xen/xen_drm_front_gem.h       |   6 +-
 .../common/videobuf2/videobuf2-dma-contig.c   |   8 +-
 .../media/common/videobuf2/videobuf2-dma-sg.c |   9 +-
 .../common/videobuf2/videobuf2-vmalloc.c      |  11 +-
 drivers/misc/fastrpc.c                        |   4 +-
 include/drm/drm_cache.h                       |   6 +-
 include/drm/drm_client.h                      |   7 +-
 include/drm/drm_gem.h                         |   6 +-
 include/drm/drm_gem_atomic_helper.h           |   6 +-
 include/drm/drm_gem_cma_helper.h              |   6 +-
 include/drm/drm_gem_framebuffer_helper.h      |   8 +-
 include/drm/drm_gem_shmem_helper.h            |  12 +-
 include/drm/drm_gem_ttm_helper.h              |   6 +-
 include/drm/drm_gem_vram_helper.h             |   9 +-
 include/drm/drm_prime.h                       |   6 +-
 include/drm/ttm/ttm_bo_api.h                  |  10 +-
 include/drm/ttm/ttm_kmap_iter.h               |  10 +-
 include/drm/ttm/ttm_resource.h                |   6 +-
 include/linux/dma-buf-map.h                   | 266 ------------------
 include/linux/dma-buf.h                       |  12 +-
 include/linux/iosys-map.h                     | 257 +++++++++++++++++
 80 files changed, 579 insertions(+), 552 deletions(-)
 delete mode 100644 include/linux/dma-buf-map.h
 create mode 100644 include/linux/iosys-map.h






--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev

Attachment: OpenPGP_signature
Description: OpenPGP digital signature