On Tue, Jul 07, 2026 at 04:57:04PM +0800, LIOU, Mei Fan wrote:
> When eDP connector is forced off (video=eDP-1:d),
> intel_edp_init_connector() ignores the force flag and still probes
> the AUX channel for DPCD and EDID.
> 
> video=eDP-1:d sets connector->force = DRM_FORCE_OFF via
> drm_connector_get_cmdline_mode() inside drm_connector_init_with_ddc(),
> which logs 'forcing eDP-1 connector off'. However,
> intel_edp_init_connector() is called immediately after and ignores
> the force flag, so AUX/PPS probing still occurs.
> 
> Fix this by checking connector->base.force == DRM_FORCE_OFF in
> intel_edp_init_connector() after the intel_dp_is_edp() check, before
> any AUX/DPCD probing is attempted. When the connector is forced off,
> log an informational message and goto out_vdd_off to properly clean
> up PPS state and skip all remaining hardware probing.
> 
> Suggested-by: Arun R Murthy <[email protected]>
> Signed-off-by: LIOU, Mei Fan <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_dp.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 3569e61e7fee..fa61b299f83e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -7057,6 +7057,17 @@ static bool intel_edp_init_connector(struct intel_dp 
> *intel_dp,
>  
>       intel_alpm_init(intel_dp);
>  
> +     /*
> +      * If the connector has been forced off via the kernel cmdline
> +      * (e.g. video=eDP-1:d), skip DPCD/AUX probing.
> +      */
> +     if (connector->base.force == DRM_FORCE_OFF) {
> +             drm_info(display->drm,
> +                      "[ENCODER:%d:%s] eDP disabled via cmdline, skipping 
> eDP init\n",
> +                      encoder->base.base.id, encoder->base.name);
> +             goto out_vdd_off;
> +     }

This doesn't looks sane if the eDP panel is actually there. We need to
turn it off gracefully.

> +
>       /* Cache DPCD and EDID for edp. */
>       has_dpcd = intel_edp_init_dpcd(intel_dp, connector);
>  
> -- 
> 2.52.0

-- 
Ville Syrjälä
Intel

Reply via email to