[Intel-gfx] i915 4.9 regression: DP AUX CH sanitization no longer working on Asus desktops
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu May 4 20:37:45 UTC 2017
On Thu, May 04, 2017 at 02:21:26PM -0600, Daniel Drake wrote:
> Hi,
>
> Numerous Asus desktops and All-in-one computers (e.g. D520MT) have a
> regression on Linux 4.9 where the VGA output is shown all-white.
>
> This is a regression caused by:
>
> commit 0ce140d45a8398b501934ac289aef0eb7f47c596
> Author: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Date: Tue Oct 11 20:52:47 2016 +0300
>
> drm/i915: Clean up DDI DDC/AUX CH sanitation
>
>
> On these platforms, the VGA output is detected as DP (presumably
> theres a DP-to-VGA converter on the motherboard). The sanitization
> done by the code that was removed here was correctly realising that
> port E's DP aux channel was DP_AUX_A, so it disabled DP output on port
> A, also showing this message:
>
> [drm:intel_ddi_init] VBT says port A is not DVI/HDMI/DP compatible,
> respect it
>
> But after this cleanup commit, both port A and port E are activated
> and the screen shows all-white. Reverting the commit restores usable
> VGA display output.
>
> The reason the new implementation doesn't catch the duplicate
> configuration is because the new code only considers ports that are
> present in the VBT where parse_ddi_port() has run on them (in order to
> set that port's info->alternate_aux_channel).
>
> In this case, port A is not present in the VBT so it will not have
> info->alternate_aux_channel set, and the new sanitize_aux_ch will run
> on port E but will not consider any overlap with port A.
>
> debug logs from an affected kernel:
> https://gist.github.com/dsd/7e56c9bca7b2345b678cfacdab30ec55
>
> Should we modify sanitize_aux_ch to look at all aux channels, not only
> for the ports specified in the VBT?
Please check if commit bb1d132935c2 ("drm/i915/vbt: split out defaults
that are set when there is no VBT") fixes things for you.
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list