mbox series

[v5,00/12] drm/vc4: Allow for more boot-time configuration

Message ID cover.5190d070d1439d762d7ab273f4ae2573087fee20.1560783090.git-series.maxime.ripard@bootlin.com (mailing list archive)
Headers show
Series drm/vc4: Allow for more boot-time configuration | expand

Message

Maxime Ripard June 17, 2019, 2:51 p.m. UTC
Hi,

The proprietary stack for the RaspberryPi allows for a number of video
parameters widely used by their users, but yet don't have any equivalents
in the mainline kernel.

Those options are detailed here:
https://www.raspberrypi.org/documentation/configuration/config-txt/video.md

While not all of them are desirable to have in the mainline kernel, some of
them still have value, such as properties to initialise the overscan or
rotation parameters.

This series is an attempt to support those, and is based on a rewrite of
the command line parser I did a couple of years ago that never reached
upstream (due to a lack of time on my side). While this parser was
initially made to deal with named modes (in order to support TV modes), it
also allowed to extend it more easily, which is why it's resurrected.

It relies on the series "drm/fb-helper: Move modesetting code to
drm_client" by Noralf Trønnes found here:
https://patchwork.freedesktop.org/series/58598/

Let me know what you think,
Maxime

Changes from v4:
  - Change the name of the variable to make it clear it's about reflection
    and rotation.
  - Fix the reflection case in drm_client_rotation
  - Fix the documentation accordingly
  - Added missing modedb.rst documentation
  - Fix a chunk not in the proper commit
  - Fix a few typos
  - Rebased on top of current next

Changes from v3:
  - Add documentation for drm_cmdline_mode and the new variables
  - Move the TV properties reset to a helper
  - Fix a missing X resolution or a missing Y resolution
  - Add more tests
  - Add the rotation to the orientation
  - Fix the reflection
  - Change the name of the drm_client_panel_rotation function
  - Rebased on top of current next

Changes from v2:
  - Fixed some sparse warnings
  - Rebased on top of next and Noralf series
  - Moved the property initialisation to vc4 reset hook
  - Added documentation for the new drm_cmdline_mode
  - Renamed overscan to tv_margins to be consistent with the APIs

Changes from v1:
  - Dropped the patches to deal with EDID
  - Added the unit test as selftest
  - Rebased on next

Maxime Ripard (12):
  drm/connector: Add documentation for drm_cmdline_mode
  drm/client: Restrict the plane_state scope
  drm/client: Restrict the rotation check to the rotation itself
  drm/client: Change drm_client_panel_rotation name
  drm/modes: Rewrite the command line parser
  drm/modes: Support modes names on the command line
  drm/modes: Allow to specify rotation and reflection on the commandline
  drm/connector: Introduce a TV margins structure
  drm/modes: Parse overscan properties
  drm/atomic: Add a function to reset connector TV properties
  drm/selftests: Add command line parser selftests
  drm/vc4: hdmi: Set default state margin at reset

 Documentation/fb/modedb.rst                         |  13 +-
 drivers/gpu/drm/drm_atomic_state_helper.c           |  18 +-
 drivers/gpu/drm/drm_client_modeset.c                |  54 +-
 drivers/gpu/drm/drm_connector.c                     |   3 +-
 drivers/gpu/drm/drm_fb_helper.c                     |   2 +-
 drivers/gpu/drm/drm_modes.c                         | 473 +++++--
 drivers/gpu/drm/selftests/Makefile                  |   2 +-
 drivers/gpu/drm/selftests/drm_cmdline_selftests.h   |  55 +-
 drivers/gpu/drm/selftests/test-drm_cmdline_parser.c | 918 +++++++++++++-
 drivers/gpu/drm/vc4/vc4_hdmi.c                      |   8 +-
 include/drm/drm_atomic_state_helper.h               |   1 +-
 include/drm/drm_client.h                            |   2 +-
 include/drm/drm_connector.h                         | 149 +-
 13 files changed, 1557 insertions(+), 141 deletions(-)
 create mode 100644 drivers/gpu/drm/selftests/drm_cmdline_selftests.h
 create mode 100644 drivers/gpu/drm/selftests/test-drm_cmdline_parser.c

base-commit: a125097c841039deef9dd589b86467f7d20f4b3d