Skip to content

Commit ca7a1d0

Browse files
committed
Merge tag 'drm-intel-next-2024-02-27-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
drm/i915 feature pull #2 for v6.9: Features and functionality: - DP tunneling and bandwidth allocation support (Imre) - Add more ADL-N PCI IDs (Gustavo) - Enable fastboot also on older platforms (Ville) - Bigjoiner force enable debugfs option for testing (Stan) Refactoring and cleanups: - Remove unused structs and struct members (Jiri Slaby) - Use per-device debug logging (Ville) - State check improvements (Ville) - Hardcoded cd2x divider cleanups (Ville) - CDCLK documentation updates (Ville, Rodrigo) Fixes: - HDCP MST Type1 fixes (Suraj) - Fix MTL C20 PHY PLL values (Ravi) - More hardware access prevention during init (Imre) - Always enable decompression with tile4 on Xe2 (Juha-Pekka) - Improve LNL package C residency (Suraj) drm core changes: - DP tunneling and bandwidth allocation helpers (Imre) Signed-off-by: Dave Airlie <airlied@redhat.com> From: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/87sf1devbj.fsf@intel.com
2 parents 3fe262e + e60cff4 commit ca7a1d0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+4419
-671
lines changed

drivers/gpu/drm/display/Kconfig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,27 @@ config DRM_DISPLAY_DP_HELPER
1717
help
1818
DRM display helpers for DisplayPort.
1919

20+
config DRM_DISPLAY_DP_TUNNEL
21+
bool
22+
select DRM_DISPLAY_DP_HELPER
23+
help
24+
Enable support for DisplayPort tunnels. This allows drivers to use
25+
DP tunnel features like the Bandwidth Allocation mode to maximize the
26+
BW utilization for display streams on Thunderbolt links.
27+
28+
config DRM_DISPLAY_DEBUG_DP_TUNNEL_STATE
29+
bool "Enable debugging the DP tunnel state"
30+
depends on REF_TRACKER
31+
depends on DRM_DISPLAY_DP_TUNNEL
32+
depends on DEBUG_KERNEL
33+
depends on EXPERT
34+
help
35+
Enables debugging the DP tunnel manager's state, including the
36+
consistency of all managed tunnels' reference counting and the state of
37+
streams contained in tunnels.
38+
39+
If in doubt, say "N".
40+
2041
config DRM_DISPLAY_HDCP_HELPER
2142
bool
2243
depends on DRM_DISPLAY_HELPER

drivers/gpu/drm/display/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ drm_display_helper-$(CONFIG_DRM_DISPLAY_DP_HELPER) += \
88
drm_dp_helper.o \
99
drm_dp_mst_topology.o \
1010
drm_dsc_helper.o
11+
drm_display_helper-$(CONFIG_DRM_DISPLAY_DP_TUNNEL) += \
12+
drm_dp_tunnel.o
1113
drm_display_helper-$(CONFIG_DRM_DISPLAY_HDCP_HELPER) += drm_hdcp_helper.o
1214
drm_display_helper-$(CONFIG_DRM_DISPLAY_HDMI_HELPER) += \
1315
drm_hdmi_helper.o \

drivers/gpu/drm/display/drm_dp_helper.c

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4055,3 +4055,33 @@ int drm_dp_bw_channel_coding_efficiency(bool is_uhbr)
40554055
return 800000;
40564056
}
40574057
EXPORT_SYMBOL(drm_dp_bw_channel_coding_efficiency);
4058+
4059+
/**
4060+
* drm_dp_max_dprx_data_rate - Get the max data bandwidth of a DPRX sink
4061+
* @max_link_rate: max DPRX link rate in 10kbps units
4062+
* @max_lanes: max DPRX lane count
4063+
*
4064+
* Given a link rate and lanes, get the data bandwidth.
4065+
*
4066+
* Data bandwidth is the actual payload rate, which depends on the data
4067+
* bandwidth efficiency and the link rate.
4068+
*
4069+
* Note that protocol layers above the DPRX link level considered here can
4070+
* further limit the maximum data rate. Such layers are the MST topology (with
4071+
* limits on the link between the source and first branch device as well as on
4072+
* the whole MST path until the DPRX link) and (Thunderbolt) DP tunnels -
4073+
* which in turn can encapsulate an MST link with its own limit - with each
4074+
* SST or MST encapsulated tunnel sharing the BW of a tunnel group.
4075+
*
4076+
* Returns the maximum data rate in kBps units.
4077+
*/
4078+
int drm_dp_max_dprx_data_rate(int max_link_rate, int max_lanes)
4079+
{
4080+
int ch_coding_efficiency =
4081+
drm_dp_bw_channel_coding_efficiency(drm_dp_is_uhbr_rate(max_link_rate));
4082+
4083+
return DIV_ROUND_DOWN_ULL(mul_u32_u32(max_link_rate * 10 * max_lanes,
4084+
ch_coding_efficiency),
4085+
1000000 * 8);
4086+
}
4087+
EXPORT_SYMBOL(drm_dp_max_dprx_data_rate);

0 commit comments

Comments
 (0)