On Wed, 06 Apr 2016, Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx> wrote: > On 04/04/16 12:41, Tvrtko Ursulin wrote: >> >> On 04/04/16 12:08, Jani Nikula wrote: >>> On Mon, 04 Apr 2016, Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx> >>> wrote: >>>> On 01/04/16 08:41, Ander Conselvan De Oliveira wrote: >>>>> On Thu, 2016-03-31 at 12:38 +0000, Patchwork wrote: >>>>>> == Series Details == >>>>>> >>>>>> Series: series starting with [1/5] drm/i915: Splitting intel_dp_detect >>>>>> URL : https://patchwork.freedesktop.org/series/5044/ >>>>>> State : success >>>>> >>>>> I pushed those to dinq. >>>> >>>> This series seems to break eDP detection on BDW RVP. >>> >>> I presume this is due to the sink count check. Can you add debug logging >>> to print intel_dp->sink_count after it's been read in >>> intel_dp_get_dpcd() please? >> >> intel_dp->sink_count is zero here. (raw value, before the >> DP_GET_SINK_COUNT.) >> >> Also, intel_dp_dpcd_read_wake suggests a possibility for reading garbage >> with not overly confident wording for the workaround there. >> >>> Then the question is, is this just because you have an RVP with who >>> knows what panel, or do we have to take into account potentially broken >>> panels too? Then I assume the fix would be to to ignore sink count for >>> eDP. >> >> No idea. :) > > I could really use a solution for this. My only development platform is > incapacitated unless I revert this series which, apart from the extra > work when preparing and sending out patches this is taking, including > lost time waiting on CI which I suspect dislikes patches from top of > unknown bases, I think it won't be so easy to continue doing so when the > conflicts start arriving. :( Ander, Shubhangi? Would something like this be sensible? Tvrtko, can you give it a go? diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index da0c3d29fda8..0890e71db188 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -3799,6 +3799,9 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp) */ intel_dp->sink_count = DP_GET_SINK_COUNT(intel_dp->sink_count); + if (is_edp(intel_dp)) + intel_dp->sink_count = max(intel_dp->sink_count, 1); + /* * SINK_COUNT == 0 and DOWNSTREAM_PORT_PRESENT == 1 implies that * a dongle is present but no display. Unless we require to know BR, Jani. -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx