Do no reset the max link parameters when userspace reprobes modes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I am working on a solution for handling link failures during or after
the modeset. 

In case of link failure, the max link rate/lane count values
are updated to lower link rate/lane count as per the spec and uevent is
sent to the userspace with link-status BAD. The userspace is expected to first
retry the existing mode and do a a full reprobe if this fails.

When userspace reprobes the modes, it calls drmModeGetConnector() IOCTL, that
eventually calls drm_helper_probe_single_connector_modes(). This helper function
calls the connector->func->detect() which in case of i915 calls intel_dp_detect()
which calls intel_dp_long_pulse() that resets the max_link_rate and max_link_lane_count
values. 

Now during the link training retry, it uses the reset values of link rate/lane count
instead of using the lowered link rate/lane count values from link failure.
For this to work properly, we should not reset the link rate/lane count values
during the fill_modes() operation from userspace. However the current driver calls
the long pulse handler again during fill_modes and resets all the values as per DPCD reads
which fails to retrain the link at lower rate.

How can we handle this situation? Do we need to call long pulse handler
again during fill_modes()? Any ideas/suggestions?

Regards
Manasi 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux