From: Hans de Goede Date: Mon, 25 Feb 2019 12:56:37 +0000 (+0100) Subject: usb: typec: altmodes/displayport: Fall back to multi-func pins X-Git-Tag: v5.2-rc1~132^2~85 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=09fed4d64d3f1c3f9296d3f67eb19c8bf4b1c0c1;p=thirdparty%2Flinux.git usb: typec: altmodes/displayport: Fall back to multi-func pins If our port-partner supports both DP-only operation (pin-assignment C) and multi-func operation (pin-assignment D) and we only support pin-assignment D and the port-partner prefers DP-only mode, then before this commit we would and up masking out pin-assignment D from the available pin-assignments and fail to pick a pin-assignment. Instead only mask out the multi-func pin-assignments if we support dp-only pin-assignments, so that we correctly fall-back to a multi-func pin-assignment in this case (by picking pin-assignment D). Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/typec/altmodes/displayport.c b/drivers/usb/typec/altmodes/displayport.c index 610d790bc9be1..1b2afeb1eeb64 100644 --- a/drivers/usb/typec/altmodes/displayport.c +++ b/drivers/usb/typec/altmodes/displayport.c @@ -100,7 +100,7 @@ static int dp_altmode_configure(struct dp_altmode *dp, u8 con) if (dp->data.status & DP_STATUS_PREFER_MULTI_FUNC && pin_assign & DP_PIN_ASSIGN_MULTI_FUNC_MASK) pin_assign &= DP_PIN_ASSIGN_MULTI_FUNC_MASK; - else + else if (pin_assign & DP_PIN_ASSIGN_DP_ONLY_MASK) pin_assign &= DP_PIN_ASSIGN_DP_ONLY_MASK; if (!pin_assign)