On Mon, Feb 03, 2025 at 12:57:55PM +0200, Abel Vesa wrote: > Looking at both i915 and nouveau DP drivers, both are setting the first > LTTPR (if found) in transparent mode first and then in non-transparent > mode, just like the DP v2.0 specification mentions in section 3.6.6.1. > > Being part of the standard, setting the LTTPR in a specific operation mode > can be easily moved in the generic framework. So do that by adding a new > helper. > > Then, the msm DP driver is lacking any kind of support for LTTPR handling, > so add it by reading the LTTPR caps for figuring out the number of LTTPRs > found on plug detect and then do exactly what the i915 and nouveau drivers > do with respect to toggling through operating modes, just like the > up-mentioned section from DP spec describes. > > At some point, link training per sub-segment will probably be needed, but > for now, toggling the operating modes seems to be enough at least for the > X Elite-based platforms that this patchset has been tested on. As it seems that everybody is more or less happy with the patches, should we pick the series into drm-misc-next now? Then i915 and msm drivers can submerge a fresh-after-rc1 (or fresh-with-rc1?) trees into the trees, reducing a risk of the conflicts during the next development cycle? > > Signed-off-by: Abel Vesa <abel.vesa@xxxxxxxxxx> > --- > Changes in v5: > - Added kernel-doc () suffix and semicolon after "Return" for > drm_dp_lttpr_set_transparent_mode, and dropped the extra blank > line from kernel-doc of drm_dp_lttpr_init, like Bjorn suggested > - Picked up Abhinav's R-b tag. > - Moved the lttpr_caps on stack, as suggested by Bjorn and Abhinav in > the msm implementation. > - Moved the msm_dp_display_lttpr_init call after msm_dp_panel_read_sink_caps, > as Abhinav suggested. > - Link to v4: https://lore.kernel.org/r/20250108-drm-dp-msm-add-lttpr-transparent-mode-set-v4-0-918949bc2e3a@xxxxxxxxxx > > Changes in v4: > - Picked up Dmitry's and Johan's R-b tags for the drm generic and drm > msm patches. > - Moved the comment about the roll-back to transparent mode inside the > if statement and fixed the typos, like Johan suggested. > - Added more details in the commit message for the i915 changes. Details > about the update that the lttpr_common_caps need w.r.t. rollback to > transparent mode in case of failure. > - Link to v3: https://lore.kernel.org/r/20250103-drm-dp-msm-add-lttpr-transparent-mode-set-v3-0-5c367f4b0763@xxxxxxxxxx > > Changes in v3: > - Picked-up T-b tag from Johan for the drm/dp transparent mode set helper > patch > - Re-worked the return value of the drm/dp transparet mode set helper > - Added some more details about what the values of the lttpr_count arg > is expected to be for the drm_dp_lttpr_init(), like Johan suggested. > - Re-worked the non-transparent mode disable->enable so that the rollback > doesn't happen unless enable failed. > - Picked-up Lyude's R-b tag for the nouveau patch. > - Dropped extra parantesis at the end of the drm_dp_lttpr_init() call in > i915 patch. > - Picked-up Johan's T-b tag for the drm/msm/dp patch. > - Added some error handling and an error message in the > msm_dp_display_lttpr_init(), while dropping the unnecessary lttpr_count > local variable. > - Link to v2: https://lore.kernel.org/r/20241211-drm-dp-msm-add-lttpr-transparent-mode-set-v2-0-d5906ed38b28@xxxxxxxxxx > > Changes in v2: > - Added new wrapper over the set_transparent new helper in order to > move the non-transparent disable and the its enable->disable sequence > mentioned in the DP standard section 3.6.6.1 entirely in the generic > implemetation. > - Switch all 3 drivers to use the new wrapper. > - Fixed the return value of the helper to return 0 on success and > negative value on error. > - Added explanation about the transparent/non-transparent modes into the > msm dp commit message. > - Dropped the condition for non-eDP in msm DP driver since it is allowed > to try to get the number of LTTPRs even on eDP and it will be always > 0 anyway. > - Dropped the RFC prefix > - Link to v1: https://lore.kernel.org/r/20241031-drm-dp-msm-add-lttpr-transparent-mode-set-v1-0-cafbb9855f40@xxxxxxxxxx > > --- > Abel Vesa (4): > drm/dp: Add helper to set LTTPRs in transparent mode > drm/nouveau/dp: Use the generic helper to control LTTPR transparent mode > drm/i915/dp: Use the generic helper to control LTTPR transparent mode > drm/msm/dp: Add support for LTTPR handling > > drivers/gpu/drm/display/drm_dp_helper.c | 61 ++++++++++++++++++++++ > .../gpu/drm/i915/display/intel_dp_link_training.c | 24 ++------- > drivers/gpu/drm/msm/dp/dp_display.c | 15 ++++++ > drivers/gpu/drm/nouveau/nouveau_dp.c | 17 +----- > include/drm/display/drm_dp_helper.h | 2 + > 5 files changed, 85 insertions(+), 34 deletions(-) > --- > base-commit: 00f3246adeeacbda0bd0b303604e46eb59c32e6e > change-id: 20241031-drm-dp-msm-add-lttpr-transparent-mode-set-136cd5bfde07 > > Best regards, > -- > Abel Vesa <abel.vesa@xxxxxxxxxx> > -- With best wishes Dmitry