• T
    drm/i915: Move Displayport test request and sink IRQ logic to intel_dp_detect() · 09b1eb13
    Todd Previte 提交于
    Due to changes in the driver and to support Displayport compliance testing,
    the test request and sink IRQ logic has been relocated from
    intel_dp_check_link_status to intel_dp_detect. This is because the bulk of the
    compliance tests that set the TEST_REQUEST bit in the DEVICE_IRQ field of the
    DPCD issue a long pulse / hot plug event to signify the start of the test.
    Currently, for a long pulse, intel_dp_check_link_status is not called for a
    long HPD pulse, so if test requests come in, they cannot be detected by the
    driver.
    
    Once located in the intel_dp_detect, in the regular hot plug event path,
    proper detection of Displayport compliance test requests occurs which then
    invokes the test handler to support them. Additionally, this places compliance
    testing in the normal operational paths, eliminating as much special case code
    as possible.
    
    The only change in intel_dp_check_link_status with this patch is that when
    the IRQ is the result of a test request from the sink, the test handler is not
    invoked during the short pulse path. Short pulse test requests are for a
    particular variety of tests (mainly link training) that will be implemented
    in the future. Once those tests are available, the test request handler will
    be called from here as well.
    
    V2:
    - Rewored the commit message to be more clear about the content and intent
      of this patch
    - Restore IRQ detection logic to intel_dp_check_link_status(). Continue to
      detect and clear sink IRQs in the short pulse case. Ignore test requests
      in the short pulses for now since they are for future test implementations.
    Signed-off-by: NTodd Previte <tprevite@gmail.com>
    Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    09b1eb13
intel_dp.c 164.0 KB