<div dir="ltr">I was also going to say that I believe this breaks DP hotplug, but this was agreed already...<div><br></div><div>But I also don't understand how hot_plug is called twice since it calls encoder->hot_plug...</div><div>and dp has no ->hot_plug... </div><div>And also if this is happening how this code that checks for connector would help... there is something else strange happening... </div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Sep 5, 2015 at 9:31 PM Jindal, Sonika <<a href="mailto:sonika.jindal@intel.com">sonika.jindal@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 9/4/2015 8:17 PM, Daniel Vetter wrote:<br>
> On Fri, Sep 04, 2015 at 06:56:15PM +0530, Sonika Jindal wrote:<br>
>> If the same port is enumerated as hdmi as well as DP, this will get<br>
>> called for DP connector as well which is not required because<br>
>> i915_hotplug_work_func is solely to handle hdmi HPD.<br>
>><br>
>> Signed-off-by: Sonika Jindal <<a href="mailto:sonika.jindal@intel.com" target="_blank">sonika.jindal@intel.com</a>><br>
>> ---<br>
>>   drivers/gpu/drm/i915/intel_hotplug.c |    3 ++-<br>
>>   1 file changed, 2 insertions(+), 1 deletion(-)<br>
>><br>
>> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c b/drivers/gpu/drm/i915/intel_hotplug.c<br>
>> index 53c0173..8e1c43e 100644<br>
>> --- a/drivers/gpu/drm/i915/intel_hotplug.c<br>
>> +++ b/drivers/gpu/drm/i915/intel_hotplug.c<br>
>> @@ -325,7 +325,8 @@ static void i915_hotplug_work_func(struct work_struct *work)<br>
>><br>
>>      list_for_each_entry(connector, &mode_config->connector_list, head) {<br>
>>              intel_connector = to_intel_connector(connector);<br>
>> -            if (!intel_connector->encoder)<br>
>> +            if (!intel_connector->encoder<br>
>> +                    && connector->connector_type != DRM_MODE_CONNECTOR_HDMIA)<br>
>>                      continue;<br>
><br>
> Pretty sure this breaks hotplug detection for everything but HDMI (since<br>
> now nothing but hdmi gets called it's ->detect function, and only if that<br>
> signals a status change will we send out an uevent to userspace). Does<br>
> this really not break DP hotplug?<br>
><br>
> Yes we probe both hdmi and DP always, and probably we could be more<br>
> intelligent with the fallback between the too. But this here doesn't seem<br>
> to be the right solution.<br>
> -Daniel<br>
<br>
Hmm :(<br>
This doesn't allow detect to be called for dp. I missed the part that<br>
hpd_pulse only handles mst. From the name and comments it looks like it<br>
should handle hpd for dp completely. I think this this code needs some<br>
refactoring.<br>
<br>
For now, I think I better move this check to intel_encoder->hot_plug<br>
function because for the connectors with dp and hdmi both, this hot_plug<br>
hook gets called twice.<br>
<br>
><br>
>>              intel_encoder = intel_connector->encoder;<br>
>>              if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {<br>
>> --<br>
>> 1.7.10.4<br>
>><br>
>> _______________________________________________<br>
>> Intel-gfx mailing list<br>
>> <a href="mailto:Intel-gfx@lists.freedesktop.org" target="_blank">Intel-gfx@lists.freedesktop.org</a><br>
>> <a href="http://lists.freedesktop.org/mailman/listinfo/intel-gfx" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/intel-gfx</a><br>
><br>
_______________________________________________<br>
Intel-gfx mailing list<br>
<a href="mailto:Intel-gfx@lists.freedesktop.org" target="_blank">Intel-gfx@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/intel-gfx" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/intel-gfx</a><br>
</blockquote></div>