Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915: Add support for forcing the link bpp on a connector

Add support for forcing the link bpp on a connector via a connector
debugfs entry. During reducing link bpps due to a link BW limit, keep
bpps close to their forced value.

Add the debugfs entry to all relevant connectors: all DP connectors and
on an FDI link CRT/SDVO/LVDS/HDMI connectors.

v2:
- Move adding the debugfs entries to this patch.
- Rename i915_force_link_bpp to intel_force_link_bpp. (Jani)
- Select the relevant connectors via platform checks. (Jani)
- Use for_each_new_intel_connector_in_state(). (Jani)
- Fix 64 bit division vs. 32 bit build when converting str to q4. (lkp)
- Avoid division and addition overflow when converting str to q4.

v3:
- Add TODO: to make the non-DSC min bpp value connector specific. (Ankit)

Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://lore.kernel.org/r/20250509180340.554867-12-imre.deak@intel.com

+241 -7
+2
drivers/gpu/drm/i915/display/intel_display_debugfs.c
··· 39 39 #include "intel_hdcp.h" 40 40 #include "intel_hdmi.h" 41 41 #include "intel_hotplug.h" 42 + #include "intel_link_bw.h" 42 43 #include "intel_panel.h" 43 44 #include "intel_pps.h" 44 45 #include "intel_psr.h" ··· 1326 1325 intel_psr_connector_debugfs_add(connector); 1327 1326 intel_alpm_lobf_debugfs_add(connector); 1328 1327 intel_dp_link_training_debugfs_add(connector); 1328 + intel_link_bw_connector_debugfs_add(connector); 1329 1329 1330 1330 if (DISPLAY_VER(display) >= 11 && 1331 1331 ((connector_type == DRM_MODE_CONNECTOR_DisplayPort && !connector->mst.dp) ||
+1
drivers/gpu/drm/i915/display/intel_display_device.h
··· 172 172 #define HAS_GMBUS_BURST_READ(__display) (DISPLAY_VER(__display) >= 10 || (__display)->platform.kabylake) 173 173 #define HAS_GMBUS_IRQ(__display) (DISPLAY_VER(__display) >= 4) 174 174 #define HAS_GMCH(__display) (DISPLAY_INFO(__display)->has_gmch) 175 + #define HAS_FDI(__display) (IS_DISPLAY_VER((__display), 5, 8) && !HAS_GMCH(__display)) 175 176 #define HAS_HOTPLUG(__display) (DISPLAY_INFO(__display)->has_hotplug) 176 177 #define HAS_HW_SAGV_WM(__display) (DISPLAY_VER(__display) >= 13 && !(__display)->platform.dgfx) 177 178 #define HAS_IPC(__display) (DISPLAY_INFO(__display)->has_ipc)
+4
drivers/gpu/drm/i915/display/intel_display_types.h
··· 550 550 struct intel_dp *dp; 551 551 } mst; 552 552 553 + struct { 554 + int force_bpp_x16; 555 + } link; 556 + 553 557 /* Work struct to schedule a uevent on link train failure */ 554 558 struct work_struct modeset_retry_work; 555 559