The Allwinner display engine doesn't have any kind of hardware help to deal
with TV overscan.
This means that if we use the only mode the hardware provides (either PAL
or NTSC, or something else), most of the screens will crop the borders of
the image, which is bad.
We can however use somekind of a hack, to instead reduce the mode exposed
to the userspace, and center it in the final image. We would expose
different overscan ratio to be able to deal with most of the screens, each
reducing more the displayable area.
The first patches are rework for the command line parser in order to be
able to use named modes. This is going to be helpful for us, since
different modes might have the same timings but only differ on a few
settings not exposed in the modes, but it might eventually be used for the
*VGA modes for example.
The last patches extend the current driver to deal with the changes used
to introduce the overscan.
Let me know what you think,
Maxime Ripard (5):
drm/modes: Rewrite the command line parser
drm/modes: Support modes names on the command line
drm/sun4i: Add custom crtc state
drm/sun4i: Compute TCON1 mode from tv mode
drm/sun4i: Add support for the overscan profiles
drivers/gpu/drm/drm_connector.c | 3 +-
drivers/gpu/drm/drm_fb_helper.c | 4 +-
drivers/gpu/drm/drm_modes.c | 324 +++++++++++++++++----------
drivers/gpu/drm/sun4i/sun4i_backend.c | 18 +-
drivers/gpu/drm/sun4i/sun4i_crtc.c | 37 ++-
drivers/gpu/drm/sun4i/sun4i_crtc.h | 16 +-
drivers/gpu/drm/sun4i/sun4i_rgb.c | 10 +-
drivers/gpu/drm/sun4i/sun4i_tv.c | 75 ++++--
include/drm/drm_connector.h | 1 +-
9 files changed, 342 insertions(+), 146 deletions(-)