All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/20] drm: Split out the formats API and move it to a common place
@ 2019-03-19 21:57 Maxime Ripard
  2019-03-19 21:57 ` [RFC PATCH 01/20] drm: Remove users of drm_format_num_planes Maxime Ripard
                   ` (19 more replies)
  0 siblings, 20 replies; 69+ messages in thread
From: Maxime Ripard @ 2019-03-19 21:57 UTC (permalink / raw)
  To: Daniel Vetter, David Airlie, Maarten Lankhorst, Sean Paul,
	Maxime Ripard, Mauro Carvalho Chehab
  Cc: Sakari Ailus, Hans Verkuil, Laurent Pinchart, Thomas Petazzoni,
	Paul Kocialkowski, dri-devel, linux-kernel, linux-media

Hi,

DRM comes with an extensive format support to retrieve the various
parameters associated with a given format (such as the subsampling, or the
bits per pixel), as well as some helpers and utilities to ease the driver
development.

v4l2, on the other side, doesn't provide such facilities, leaving each
driver reimplement a subset of the formats parameters for the one supported
by that particular driver. This leads to a lot of duplication and
boilerplate code in the v4l2 drivers.

This series tries to address this by moving the DRM format API into lib and
turning it into a more generic API. In order to do this, we've needed to do
some preliminary changes on the DRM drivers, then moved the API and finally
converted a v4l2 driver to give an example of how such library could be
used.

Let me know what you think,
Maxime

Maxime Ripard (20):
  drm: Remove users of drm_format_num_planes
  drm: Remove users of drm_format_(horz|vert)_chroma_subsampling
  drm/fourcc: Pass the format_info pointer to drm_format_plane_cpp
  drm/fourcc: Pass the format_info pointer to drm_format_plane_width/height
  drm: Replace instances of drm_format_info by drm_get_format_info
  lib: Add video format information library
  drm/fb: Move from drm_format_info to image_format_info
  drm/malidp: Convert to generic image format library
  drm/client: Convert to generic image format library
  drm/exynos: Convert to generic image format library
  drm/i915: Convert to generic image format library
  drm/ipuv3: Convert to generic image format library
  drm/msm: Convert to generic image format library
  drm/omap: Convert to generic image format library
  drm/rockchip: Convert to generic image format library
  drm/tegra: Convert to generic image format library
  drm/fourcc: Remove old DRM format API
  lib: image-formats: Add v4l2 formats support
  lib: image-formats: Add more functions
  media: sun6i: Convert to the image format API

 drivers/gpu/drm/Kconfig                             |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c              |   4 +-
 drivers/gpu/drm/arm/malidp_drv.c                    |   5 +-
 drivers/gpu/drm/arm/malidp_hw.c                     |   4 +-
 drivers/gpu/drm/arm/malidp_mw.c                     |   2 +-
 drivers/gpu/drm/arm/malidp_planes.c                 |   8 +-
 drivers/gpu/drm/armada/armada_fb.c                  |   3 +-
 drivers/gpu/drm/armada/armada_overlay.c             |   3 +-
 drivers/gpu/drm/armada/armada_plane.c               |   3 +-
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c     |  13 +-
 drivers/gpu/drm/bochs/bochs.h                       |   4 +-
 drivers/gpu/drm/bochs/bochs_hw.c                    |   3 +-
 drivers/gpu/drm/cirrus/cirrus_fbdev.c               |   4 +-
 drivers/gpu/drm/cirrus/cirrus_main.c                |   4 +-
 drivers/gpu/drm/drm_atomic.c                        |   1 +-
 drivers/gpu/drm/drm_client.c                        |   8 +-
 drivers/gpu/drm/drm_crtc.c                          |   1 +-
 drivers/gpu/drm/drm_fb_cma_helper.c                 |   5 +-
 drivers/gpu/drm/drm_fb_helper.c                     |  15 +-
 drivers/gpu/drm/drm_fourcc.c                        | 318 +-----
 drivers/gpu/drm/drm_framebuffer.c                   |  11 +-
 drivers/gpu/drm/drm_gem_framebuffer_helper.c        |   5 +-
 drivers/gpu/drm/drm_plane.c                         |   1 +-
 drivers/gpu/drm/exynos/exynos_drm_fb.c              |   3 +-
 drivers/gpu/drm/exynos/exynos_drm_ipp.c             |   2 +-
 drivers/gpu/drm/exynos/exynos_drm_ipp.h             |   4 +-
 drivers/gpu/drm/exynos/exynos_drm_scaler.c          |   3 +-
 drivers/gpu/drm/gma500/framebuffer.c                |   4 +-
 drivers/gpu/drm/i915/i915_drv.h                     |   6 +-
 drivers/gpu/drm/i915/intel_display.c                |  15 +-
 drivers/gpu/drm/i915/intel_sprite.c                 |   3 +-
 drivers/gpu/drm/imx/ipuv3-plane.c                   |  20 +-
 drivers/gpu/drm/mediatek/mtk_drm_fb.c               |   8 +-
 drivers/gpu/drm/meson/meson_overlay.c               |  14 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c         |  11 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c           |  10 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c           |   4 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c          |  25 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c            |   8 +-
 drivers/gpu/drm/msm/msm_fb.c                        |  18 +-
 drivers/gpu/drm/omapdrm/dss/dispc.c                 |   9 +-
 drivers/gpu/drm/omapdrm/omap_fb.c                   |  15 +-
 drivers/gpu/drm/radeon/radeon_fb.c                  |   4 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fb.c          |  17 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c         |  14 +-
 drivers/gpu/drm/selftests/Makefile                  |   3 +-
 drivers/gpu/drm/selftests/drm_modeset_selftests.h   |   3 +-
 drivers/gpu/drm/selftests/test-drm_format.c         | 280 +----
 drivers/gpu/drm/selftests/test-drm_modeset_common.h |   3 +-
 drivers/gpu/drm/stm/ltdc.c                          |   2 +-
 drivers/gpu/drm/sun4i/sun4i_backend.c               |   7 +-
 drivers/gpu/drm/sun4i/sun4i_frontend.c              |  19 +-
 drivers/gpu/drm/sun4i/sun8i_ui_layer.c              |   2 +-
 drivers/gpu/drm/sun4i/sun8i_vi_layer.c              |   6 +-
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.c             |   6 +-
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.h             |   5 +-
 drivers/gpu/drm/tegra/fb.c                          |  14 +-
 drivers/gpu/drm/tegra/plane.c                       |   4 +-
 drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c      |   2 +-
 drivers/gpu/drm/vc4/vc4_plane.c                     |  15 +-
 drivers/gpu/drm/zte/zx_plane.c                      |   6 +-
 drivers/gpu/ipu-v3/ipu-pre.c                        |   3 +-
 drivers/gpu/ipu-v3/ipu-prg.c                        |   3 +-
 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c  |  88 +-
 drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h  |  46 +-
 include/drm/drm_fourcc.h                            | 219 +---
 include/drm/drm_framebuffer.h                       |   3 +-
 include/drm/drm_mode_config.h                       |   4 +-
 include/linux/image-formats.h                       | 253 ++++-
 lib/Kconfig                                         |   7 +-
 lib/Makefile                                        |   3 +-
 lib/image-formats-selftests.c                       | 326 +++++-
 lib/image-formats.c                                 | 869 +++++++++++++-
 73 files changed, 1719 insertions(+), 1126 deletions(-)
 delete mode 100644 drivers/gpu/drm/selftests/test-drm_format.c
 create mode 100644 include/linux/image-formats.h
 create mode 100644 lib/image-formats-selftests.c
 create mode 100644 lib/image-formats.c

base-commit: 98f41dc3b3eeabfc80d5d5eb1c1a6294ff59b4ec
-- 
git-series 0.9.1

^ permalink raw reply	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2019-04-11 15:55 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-19 21:57 [RFC PATCH 00/20] drm: Split out the formats API and move it to a common place Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 01/20] drm: Remove users of drm_format_num_planes Maxime Ripard
2019-03-20 14:16   ` Paul Kocialkowski
2019-04-02  9:43   ` Emil Velikov
2019-04-02 14:51     ` Maxime Ripard
2019-04-04 16:24       ` Emil Velikov
2019-03-19 21:57 ` [RFC PATCH 02/20] drm: Remove users of drm_format_(horz|vert)_chroma_subsampling Maxime Ripard
2019-03-20 14:19   ` Paul Kocialkowski
2019-03-20 14:19     ` Paul Kocialkowski
2019-03-19 21:57 ` [RFC PATCH 03/20] drm/fourcc: Pass the format_info pointer to drm_format_plane_cpp Maxime Ripard
2019-03-19 21:57   ` Maxime Ripard
2019-03-20 14:24   ` Paul Kocialkowski
2019-03-21 10:13     ` Maxime Ripard
2019-03-21 10:13       ` Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 04/20] drm/fourcc: Pass the format_info pointer to drm_format_plane_width/height Maxime Ripard
2019-03-20 14:26   ` Paul Kocialkowski
2019-03-19 21:57 ` [RFC PATCH 05/20] drm: Replace instances of drm_format_info by drm_get_format_info Maxime Ripard
2019-03-20 14:27   ` Paul Kocialkowski
2019-03-19 21:57 ` [RFC PATCH 06/20] lib: Add video format information library Maxime Ripard
2019-03-19 21:57   ` Maxime Ripard
2019-03-20 13:39   ` Boris Brezillon
2019-03-21  8:20     ` Maxime Ripard
2019-03-21  8:20       ` Maxime Ripard
2019-03-21  8:40       ` Boris Brezillon
2019-03-19 21:57 ` [RFC PATCH 07/20] drm/fb: Move from drm_format_info to image_format_info Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 08/20] drm/malidp: Convert to generic image format library Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 09/20] drm/client: " Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 10/20] drm/exynos: " Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 11/20] drm/i915: " Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 12/20] drm/ipuv3: " Maxime Ripard
2019-03-19 21:57   ` Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 13/20] drm/msm: " Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 14/20] drm/omap: " Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 15/20] drm/rockchip: " Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 16/20] drm/tegra: " Maxime Ripard
2019-03-19 21:57   ` Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 17/20] drm/fourcc: Remove old DRM format API Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 18/20] lib: image-formats: Add v4l2 formats support Maxime Ripard
2019-03-19 23:29   ` Nicolas Dufresne
2019-03-20 14:27     ` Ville Syrjälä
2019-03-20 15:51       ` Nicolas Dufresne
2019-03-20 16:09         ` Ville Syrjälä
2019-03-20 16:30           ` Nicolas Dufresne
2019-03-20 16:41             ` Ville Syrjälä
2019-03-20 18:27               ` Nicolas Dufresne
2019-03-20 18:39                 ` Ville Syrjälä
2019-03-21 16:04                   ` Paul Kocialkowski
2019-03-21 16:04                     ` Paul Kocialkowski
2019-03-21 16:35                     ` Ville Syrjälä
2019-03-21 19:14                       ` Nicolas Dufresne
2019-03-21 21:44                         ` Ville Syrjälä
2019-03-22 18:24                           ` Nicolas Dufresne
2019-03-22 18:44                             ` Ville Syrjälä
2019-03-22 19:25                               ` Nicolas Dufresne
2019-03-22 14:42                         ` Ville Syrjälä
2019-03-22 18:11                           ` Nicolas Dufresne
2019-03-20 18:15     ` Brian Starkey
2019-03-21 15:47       ` Maxime Ripard
2019-03-22 19:55   ` Nicolas Dufresne
2019-04-01 14:44     ` Maxime Ripard
2019-04-11  7:24       ` Hans Verkuil
2019-04-11  7:38     ` Hans Verkuil
2019-04-11 15:55       ` Maxime Ripard
2019-04-11  7:12   ` Hans Verkuil
2019-04-11  7:15     ` Hans Verkuil
2019-04-11  7:15       ` Hans Verkuil
2019-03-19 21:57 ` [RFC PATCH 19/20] lib: image-formats: Add more functions Maxime Ripard
2019-03-19 21:57   ` Maxime Ripard
2019-03-19 21:57 ` [RFC PATCH 20/20] media: sun6i: Convert to the image format API Maxime Ripard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.