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/display: Aux Enable and Display powerwell timeouts

From XE3P we can now poll if the AUX power is up or down define the
timeouts for each respectively.

Bspec: 68967
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Arun R Murthy <arun.r.murthy@intel.com>
Link: https://patch.msgid.link/20251101032513.4171255-25-suraj.kandpal@intel.com

+20 -2
+20 -2
drivers/gpu/drm/i915/display/intel_display_power_well.c
··· 1864 1864 * expected to just wait a fixed 600us after raising the request 1865 1865 * bit. 1866 1866 */ 1867 - usleep_range(600, 1200); 1867 + if (DISPLAY_VER(display) >= 35) { 1868 + if (intel_de_wait_for_set(display, XELPDP_DP_AUX_CH_CTL(display, aux_ch), 1869 + XELPDP_DP_AUX_CH_CTL_POWER_STATUS, 2)) 1870 + drm_warn(display->drm, 1871 + "Timeout waiting for PHY %c AUX channel power to be up\n", 1872 + phy_name(phy)); 1873 + } else { 1874 + usleep_range(600, 1200); 1875 + } 1868 1876 } 1869 1877 1870 1878 static void xelpdp_aux_power_well_disable(struct intel_display *display, 1871 1879 struct i915_power_well *power_well) 1872 1880 { 1873 1881 enum aux_ch aux_ch = i915_power_well_instance(power_well)->xelpdp.aux_ch; 1882 + enum phy phy = icl_aux_pw_to_phy(display, power_well); 1874 1883 1875 1884 intel_de_rmw(display, XELPDP_DP_AUX_CH_CTL(display, aux_ch), 1876 1885 XELPDP_DP_AUX_CH_CTL_POWER_REQUEST, 1877 1886 0); 1878 - usleep_range(10, 30); 1887 + 1888 + if (DISPLAY_VER(display) >= 35) { 1889 + if (intel_de_wait_for_clear(display, XELPDP_DP_AUX_CH_CTL(display, aux_ch), 1890 + XELPDP_DP_AUX_CH_CTL_POWER_STATUS, 1)) 1891 + drm_warn(display->drm, 1892 + "Timeout waiting for PHY %c AUX channel to powerdown\n", 1893 + phy_name(phy)); 1894 + } else { 1895 + usleep_range(10, 30); 1896 + } 1879 1897 } 1880 1898 1881 1899 static bool xelpdp_aux_power_well_enabled(struct intel_display *display,