• Ville Syrjälä's avatar
    drm/i915/bios: Use i915->vbt.ports[] on CHV · eb9fcf63
    Ville Syrjälä authored
    CHV is currently straddling the divide by using parse_ddi_ports() stuff
    for aux_ch/ddc_pin but going through all old codepaths for the rest
    (intel_bios_is_port_present(), intel_bios_is_port_edp(),
    intel_bios_is_port_dp_dual_mode()). Let's switch over full and use
    i915->vbt.ports[] for the rest of the stuff.
    
    dvo_port_to_port() doesn't know about DSI so we won't get into
    any kind of "is port B HDMI or DSI or both?" conundrum, which
    could otherwise happen on VLV/CHV due to DSI ports living in a
    separate world from the other digital ports.
    
    Including Jani's detailed analysis here for posterity:
    "We stop checking for port A for CHV in intel_bios_is_port_present(), but
     it's a warn and I don't recall any bug reports, so probably fine. We
     could add a check in parse_ddi_port(), but meh.
    
     Ditto for intel_bios_is_port_dp_dual_mode(), except it doesn't have a
     warn.
    
     The eDP check in intel_bios_is_port_edp() becomes slightly more
     relaxed. Both the old and new check require these to be set:
    
     - DEVICE_TYPE_DISPLAYPORT_OUTPUT
     - DEVICE_TYPE_INTERNAL_CONNECTOR.
    
     The old code also required these to be unset:
    
     - DEVICE_TYPE_MIPI_OUTPUT
     - DEVICE_TYPE_COMPOSITE_OUTPUT
     - DEVICE_TYPE_DUAL_CHANNEL
     - DEVICE_TYPE_LVDS_SIGNALING
     - DEVICE_TYPE_TMDS_DVI_SIGNALING
     - DEVICE_TYPE_VIDEO_SIGNALING
     - DEVICE_TYPE_ANALOG_OUTPUT
    
     It's possible we've added these just as a sanity check for broken VBTs
     more than anything. I guess I'd see if actual problems arise.
    
     Bottom line, I think the functional changes matter only for VBTs with
     bogus data."
    
    I agree that it should work assuming the VBT isn't totally insane.
    Modern windows drivers also don't seem to check any of those
    additional device type bits, which may or may not matter for older
    devices (no idea what some old driver versions are checking).
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20211217155403.31477-3-ville.syrjala@linux.intel.comReviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    eb9fcf63
intel_bios.c 83.6 KB