On 05/26/2017 12:13 PM, Jani Nikula wrote:
> On Thu, 25 May 2017, Hans Verkuil <hverk...@xs4all.nl> wrote:
>> @@ -4179,6 +4181,33 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
>>      return -EINVAL;
>>  }
>>  
>> +static bool
>> +intel_dp_check_cec_status(struct intel_dp *intel_dp)
>> +{
>> +    bool handled = false;
>> +
>> +    for (;;) {
>> +            u8 cec_irq;
>> +            int ret;
>> +
>> +            ret = drm_dp_dpcd_readb(&intel_dp->aux,
>> +                                    DP_DEVICE_SERVICE_IRQ_VECTOR_ESI1,
>> +                                    &cec_irq);
>> +            if (ret < 0 || !(cec_irq & DP_CEC_IRQ))
>> +                    return handled;
>> +
>> +            cec_irq &= ~DP_CEC_IRQ;
>> +            drm_dp_cec_irq(&intel_dp->aux);
>> +            handled = true;
>> +
>> +            ret = drm_dp_dpcd_writeb(&intel_dp->aux,
>> +                                     DP_DEVICE_SERVICE_IRQ_VECTOR_ESI1,
>> +                                     cec_irq);
>> +            if (ret < 0)
>> +                    return handled;
>> +    }
> 
> DP sinks suck. Please add a limit to the loop.

Good to know. I wondered about that.

Regards,

        Hans
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to