drm/i915/dp: Add support for out-of-bound hotplug events
authorHans de Goede <hdegoede@redhat.com>
Tue, 17 Aug 2021 21:51:59 +0000 (23:51 +0200)
committerHans de Goede <hdegoede@redhat.com>
Thu, 9 Sep 2021 10:59:07 +0000 (12:59 +0200)
commit4e79e12f5b5a00910fd7246bd02f23713babb1d1
treef104524b3485693f2e6e945e761031935a32ae23
parenta481d0e80eabbc3fed666103744aeaf47f63e708
drm/i915/dp: Add support for out-of-bound hotplug events

On some Cherry Trail devices, DisplayPort over Type-C is supported through
a USB-PD microcontroller (e.g. a fusb302) + a mux to switch the superspeed
datalines between USB-3 and DP (e.g. a pi3usb30532). The kernel in this
case does the PD/alt-mode negotiation itself, rather then everything being
handled in firmware.

So the kernel itself picks an alt-mode, tells the Type-C "dongle" to switch
to DP mode and sets the mux accordingly. In this setup the HPD pin is not
connected, so the i915 driver needs to respond to a software event and scan
the DP port for changes manually.

This commit adds support for this. Together with the recent addition of
DP alt-mode support to the Type-C subsystem this makes DP over Type-C
work on these devices.

Tested-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210817215201.795062-7-hdegoede@redhat.com
drivers/gpu/drm/i915/display/intel_dp.c