(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 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 (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 branch.  https://github.com/robclark/kmscube/commits/writeback  https://cgit.freedesktop.org/~robclark/linux/log/?h=msm-next  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 _______________________________________________ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno