linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/27] Improve DE2 support
@ 2017-12-01  6:05 Jernej Skrabec
  2017-12-01  6:05 ` [PATCH v2 01/27] drm/sun4i: Fix format mask in DE2 driver Jernej Skrabec
                   ` (27 more replies)
  0 siblings, 28 replies; 31+ messages in thread
From: Jernej Skrabec @ 2017-12-01  6:05 UTC (permalink / raw)
  To: maxime.ripard
  Cc: wens, airlied, linux-kernel, dri-devel, linux-arm-kernel,
	icenowy, linux-sunxi

Current DE2 driver is very basic and uses a lot of magic constants since
there is no documentation and knowledge about it was limited at the time.

With studying BSP source code, deeper knowledge was gained which allows
to improve mainline driver considerably.

At the beginning of this series, some code refactoring is done as well
as adding some checks (patches 1-15).

Further patches add multi-plane support with HW scaling and all possible
RGB formats (patches 16-21).

At last, support for YUV formats is added (patches 22-26).

At the end, I included patch which puts lowest plane before second lowest.
This should help testing VI planes when mixer has configuration 1 VI plane
and 1 or more UI planes (most SoCs except V3s).

This code was developed on H3, but it should work on every SoC if correct
configuration structure is provided.

H3 code can be found here:
https://github.com/jernejsk/linux-1/commits/de2_impr_for_next

Best regards,
Jernej

Changes from v1:
- Split two patches to multiple smaller ones and better explain why those
changes are needed and added fixes tag where appropriate.
- channel parameters represents HW better (layer id -> channel, overlay)
- add kerneldoc to configuration structure
- nicer code style in atomic_check functions
- changed WARN() to DRM_WARN() in csc code
- split common scaler file to separate ui and vi scaler files
- move channel specific code out of mixer code to sun8i_ui_layer.c and
sun8i_vi_layer.c
- defined macros for min and max supported scaler factor for each type
of scaler

Jernej Skrabec (27):
  drm/sun4i: Fix format mask in DE2 driver
  drm/sun4i: Rename DE2 RGB format macros
  drm/sun4i: Remove setting alpha mode in DE2 driver
  drm/sun4i: Fix debug message in DE2
  drm/sun4i: Remove setting default values in DE2 driver
  drm/sun4i: Explain color macro in DE2 driver
  drm/sun4i: Set blending mode for all channels (DE2)
  drm/sun4i: Rename some macros in DE2 driver
  drm/sun4i: Rework enabling plane in DE2 driver
  drm/sun4i: Start using layer id in DE2 driver
  drm/sun4i: Add constraints checking to DE2 driver
  drm/sun4i: Use values calculated by atomic check
  drm/sun4i: Move line width setting in DE2
  drm/sun4i: Move channel size related code in DE2
  drm/sun4i: Move interlace related code in DE2
  drm/sun4i: Add multi plane support to DE2 driver
  drm/sun4i: Add support for all HW supported DE2 RGB formats
  drm/sun4i: Reorganize UI layer code in DE2
  drm/sun4i: Add support for DE2 VI planes
  drm/sun4i: Add scaler configuration to DE2 mixers
  drm/sun4i: Add support for HW scaling to DE2
  drm/sun4i: Add CCSC property to DE2 configuration
  drm/sun4i: Add DE2 CSC library
  drm/sun4i: Add DE2 definitions for YUV formats
  drm/sun4i: Expand DE2 scaler lib with YUV support
  drm/sun4i: Wire in DE2 YUV support
  [DO NOT MERGE]drm/sun4i: Change zpos of bottom VI plane

 drivers/gpu/drm/sun4i/Makefile          |   4 +-
 drivers/gpu/drm/sun4i/sun8i_csc.c       |  93 +++
 drivers/gpu/drm/sun4i/sun8i_csc.h       |  36 ++
 drivers/gpu/drm/sun4i/sun8i_layer.c     | 134 -----
 drivers/gpu/drm/sun4i/sun8i_layer.h     |  36 --
 drivers/gpu/drm/sun4i/sun8i_mixer.c     | 496 +++++++++-------
 drivers/gpu/drm/sun4i/sun8i_mixer.h     | 123 ++--
 drivers/gpu/drm/sun4i/sun8i_ui_layer.c  | 351 ++++++++++++
 drivers/gpu/drm/sun4i/sun8i_ui_layer.h  |  63 +++
 drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 172 ++++++
 drivers/gpu/drm/sun4i/sun8i_ui_scaler.h |  49 ++
 drivers/gpu/drm/sun4i/sun8i_vi_layer.c  | 389 +++++++++++++
 drivers/gpu/drm/sun4i/sun8i_vi_layer.h  |  51 ++
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 971 ++++++++++++++++++++++++++++++++
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.h |  58 ++
 15 files changed, 2595 insertions(+), 431 deletions(-)
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_csc.c
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_csc.h
 delete mode 100644 drivers/gpu/drm/sun4i/sun8i_layer.c
 delete mode 100644 drivers/gpu/drm/sun4i/sun8i_layer.h
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_ui_layer.c
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_ui_layer.h
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_ui_scaler.c
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_ui_scaler.h
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_vi_layer.c
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_vi_layer.h
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_vi_scaler.c
 create mode 100644 drivers/gpu/drm/sun4i/sun8i_vi_scaler.h

-- 
2.15.1

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

end of thread, other threads:[~2017-12-05 19:23 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-01  6:05 [PATCH v2 00/27] Improve DE2 support Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 01/27] drm/sun4i: Fix format mask in DE2 driver Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 02/27] drm/sun4i: Rename DE2 RGB format macros Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 03/27] drm/sun4i: Remove setting alpha mode in DE2 driver Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 04/27] drm/sun4i: Fix debug message in DE2 Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 05/27] drm/sun4i: Remove setting default values in DE2 driver Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 06/27] drm/sun4i: Explain color macro " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 07/27] drm/sun4i: Set blending mode for all channels (DE2) Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 08/27] drm/sun4i: Rename some macros in DE2 driver Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 09/27] drm/sun4i: Rework enabling plane " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 10/27] drm/sun4i: Start using layer id " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 11/27] drm/sun4i: Add constraints checking to " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 12/27] drm/sun4i: Use values calculated by atomic check Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 13/27] drm/sun4i: Move line width setting in DE2 Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 14/27] drm/sun4i: Move channel size related code " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 15/27] drm/sun4i: Move interlace " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 16/27] drm/sun4i: Add multi plane support to DE2 driver Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 17/27] drm/sun4i: Add support for all HW supported DE2 RGB formats Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 18/27] drm/sun4i: Reorganize UI layer code in DE2 Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 19/27] drm/sun4i: Add support for DE2 VI planes Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 20/27] drm/sun4i: Add scaler configuration to DE2 mixers Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 21/27] drm/sun4i: Add support for HW scaling to DE2 Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 22/27] drm/sun4i: Add CCSC property to DE2 configuration Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 23/27] drm/sun4i: Add DE2 CSC library Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 24/27] drm/sun4i: Add DE2 definitions for YUV formats Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 25/27] drm/sun4i: Expand DE2 scaler lib with YUV support Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 26/27] drm/sun4i: Wire in DE2 " Jernej Skrabec
2017-12-01  6:05 ` [PATCH v2 27/27] [DO NOT MERGE]drm/sun4i: Change zpos of bottom VI plane Jernej Skrabec
2017-12-05 10:36 ` [PATCH v2 00/27] Improve DE2 support Maxime Ripard
2017-12-05 15:52   ` Jernej Škrabec
2017-12-05 19:23     ` Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).