[Freedreno] [RFC 0/4] drm/msm/mdp5: writeback connector support
Rob Clark
robdclark at gmail.com
Fri Feb 23 13:17:50 UTC 2018
(Sorry, meant to send this earlier, but got distracted on other things)
The first two patches are Brian Starkey's earlier writeback-connector
patches, with very minor rebasing to drm-next/v4.16-rc1, plus one small
addition to add atomic_commit() vfunc to the connector helpers, so that
writeback jobs could be committed directly from the atomic helpers.
I've tested this on dragonboard 410c (apq8016), with a hacked up
kmscube[1] to use the output of writeback as src texture for the next
frame. (Yes, I know this isn't a "real" userspace, but I needed some
test code.)
So far, I've only managed to get WB2, which is connected to LM3, to
work. I think there should be a WB0 attached to LM0 (which is also
attached to the DSI INTF). It isn't clear to me if this can be used at
the same time as DSI video mode output. If that is possible, then we
could support attaching both DSI and WB encoder+connector to the same
CRTC and re-use all the same planes being used for scanout to flatten
the composited image to a single buffer. This would be an obvious and
simple use-case for weston and drm-hwc, to reduce power/bandwidth when
the screen is not updating by flattening all layers into a single layer
for the next frame. But my attempts at making this work just made the
hardware grumpy.
These patches apply on top of msm-next[2] (which contains a couple other
required fixes, in particular improved CTL START signal handling). The
patches can also be found on the msm-next-writeback[3] branch.
[1] https://github.com/robclark/kmscube/commits/writeback
[2] https://cgit.freedesktop.org/~robclark/linux/log/?h=msm-next
[3] https://cgit.freedesktop.org/~robclark/linux/log/?h=msm-next-writeback
Brian Starkey (2):
drm: Add writeback connector type
drm: writeback: Add out-fences for writeback connectors
Rob Clark (2):
drm/msm/mdp5: add config for writeback pipes
drm/msm/mdp5: writeback support
Documentation/gpu/drm-kms.rst | 9 +
drivers/gpu/drm/Makefile | 2 +-
drivers/gpu/drm/drm_atomic.c | 229 ++++++++++++++++++-
drivers/gpu/drm/drm_atomic_helper.c | 30 +++
drivers/gpu/drm/drm_connector.c | 4 +-
drivers/gpu/drm/drm_writeback.c | 362 +++++++++++++++++++++++++++++
drivers/gpu/drm/msm/Makefile | 1 +
drivers/gpu/drm/msm/disp/mdp5/mdp5.xml.h | 2 -
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c | 17 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.h | 11 +
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 23 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 39 +++-
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h | 7 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_wb.c | 367 ++++++++++++++++++++++++++++++
drivers/gpu/drm/msm/dsi/dsi_host.c | 4 +-
include/drm/drm_atomic.h | 11 +
include/drm/drm_connector.h | 13 ++
include/drm/drm_mode_config.h | 22 ++
include/drm/drm_modeset_helper_vtables.h | 11 +
include/drm/drm_writeback.h | 128 +++++++++++
include/uapi/drm/drm_mode.h | 1 +
21 files changed, 1265 insertions(+), 28 deletions(-)
create mode 100644 drivers/gpu/drm/drm_writeback.c
create mode 100644 drivers/gpu/drm/msm/disp/mdp5/mdp5_wb.c
create mode 100644 include/drm/drm_writeback.h
--
2.14.3
More information about the Freedreno
mailing list