drm/dp/mst: Clear port->pdt when tearing down the i2c adapter
commit 36e3fa6a38e135e9478a2f75dec9bf6ff1e6480e upstream. The i2c adapter is only relevant for some peer device types, so let's clear the pdt if it's still the same as the old_pdt when we tear down the i2c adapter. I don't really like this design pattern of updating port->whatever before doing the accompanying changes and passing around old_whatever to figure stuff out. Would make much more sense to me to the pass the new value around and only update the port->whatever when things are consistent. But let's try to work with what we have right now. Quoting a follow-up from Ville: "And naturally I forgot to amend the commit message w.r.t. this guy [the change in drm_dp_destroy_port]. We don't really need to do this here, but I figured I'd try to be a bit more consistent by having it, just to avoid accidental mistakes if/when someone changes this stuff again later." v2: Clear port->pdt in the caller, if needed (Daniel) Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Carlos Santa <carlos.santa@intel.com> Cc: Kirill A. Shutemov <kirill@shutemov.name> Tested-by: Carlos Santa <carlos.santa@intel.com> Tested-by: Kirill A. Shutemov <kirill@shutemov.name> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97666 Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1477488633-16544-1-git-send-email-ville.syrjala@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4125fe7f8d
commit
44084f15b7
@ -909,6 +909,7 @@ static void drm_dp_destroy_port(struct kref *kref)
|
||||
/* no need to clean up vcpi
|
||||
* as if we have no connector we never setup a vcpi */
|
||||
drm_dp_port_teardown_pdt(port, port->pdt);
|
||||
port->pdt = DP_PEER_DEVICE_NONE;
|
||||
}
|
||||
kfree(port);
|
||||
}
|
||||
@ -2872,6 +2873,7 @@ static void drm_dp_destroy_connector_work(struct work_struct *work)
|
||||
mgr->cbs->destroy_connector(mgr, port->connector);
|
||||
|
||||
drm_dp_port_teardown_pdt(port, port->pdt);
|
||||
port->pdt = DP_PEER_DEVICE_NONE;
|
||||
|
||||
if (!port->input && port->vcpi.vcpi > 0) {
|
||||
drm_dp_mst_reset_vcpi_slots(mgr, port);
|
||||
|
Loading…
x
Reference in New Issue
Block a user