linux-xiaomi-chiron/drivers/usb/typec
Pablo Sun c1e5c2f0cb usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles
Fix incorrect pin assignment values when connecting to a monitor with
Type-C receptacle instead of a plug.

According to specification, an UFP_D receptacle's pin assignment
should came from the UFP_D pin assignments field (bit 23:16), while
an UFP_D plug's assignments are described in the DFP_D pin assignments
(bit 15:8) during Mode Discovery.

For example the LG 27 UL850-W is a monitor with Type-C receptacle.
The monitor responds to MODE DISCOVERY command with following
DisplayPort Capability flag:

        dp->alt->vdo=0x140045

The existing logic only take cares of UPF_D plug case,
and would take the bit 15:8 for this 0x140045 case.

This results in an non-existing pin assignment 0x0 in
dp_altmode_configure.

To fix this problem a new set of macros are introduced
to take plug/receptacle differences into consideration.

Fixes: 0e3bb7d689 ("usb: typec: Add driver for DisplayPort alternate mode")
Cc: stable@vger.kernel.org
Co-developed-by: Pablo Sun <pablo.sun@mediatek.com>
Co-developed-by: Macpaul Lin <macpaul.lin@mediatek.com>
Reviewed-by: Guillaume Ranquet <granquet@baylibre.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Pablo Sun <pablo.sun@mediatek.com>
Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
Link: https://lore.kernel.org/r/20220804034803.19486-1-macpaul.lin@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-08-18 21:20:07 +02:00
..
altmodes usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles 2022-08-18 21:20:07 +02:00
mux usb: typec: intel_pmc_mux: Add new ACPI ID for Meteor Lake IOM device 2022-08-18 21:10:19 +02:00
tcpm usb: typec: tcpm: Return ENOTSUPP for power supply prop writes 2022-08-18 17:01:43 +02:00
tipd usb: typec: tipd: Only update power status on IRQ 2022-04-21 18:31:08 +02:00
ucsi usb: typec: ucsi: stm32g0: add bootloader support 2022-07-27 14:39:11 +02:00
anx7411.c usb: typec: anx7411: fix passing zero to 'PTR_ERR' 2022-07-27 14:28:07 +02:00
bus.c usb: typec: mux: Introduce indirection 2022-04-26 13:47:13 +02:00
bus.h usb: typec: Organize the private headers properly 2021-04-05 09:07:41 +02:00
class.c Merge 5.19-rc7 into usb-next 2022-07-18 22:41:42 +02:00
class.h usb: typec: Add retimer handle to port 2022-07-14 16:24:05 +02:00
hd3ss3220.c usb: typec: hd3ss3220: Use regmap_write_bits() 2021-09-14 10:12:06 +02:00
Kconfig usb: typec: anx7411: Add Analogix PD ANX7411 support 2022-07-14 16:10:57 +02:00
Makefile usb: typec: Add support for retimers 2022-07-14 16:24:05 +02:00
mux.c usb: typec: mux: Allow muxes to specify mode-switch 2022-06-21 16:37:56 +02:00
mux.h usb: typec: mux: Introduce indirection 2022-04-26 13:47:13 +02:00
pd.c usb: typec: Separate USB Power Delivery from USB Type-C 2022-06-12 06:49:47 +02:00
pd.h usb: typec: Separate USB Power Delivery from USB Type-C 2022-06-12 06:49:47 +02:00
port-mapper.c ACPI: bus: Introduce acpi_bus_for_each_dev() 2022-03-02 20:55:47 +01:00
qcom-pmic-typec.c usb: typec: Add QCOM PMIC typec detection driver 2020-10-09 15:14:43 +02:00
retimer.c usb: typec: retimer: Add missing id check in match callback 2022-07-27 14:37:26 +02:00
retimer.h usb: typec: Add support for retimers 2022-07-14 16:24:05 +02:00
rt1719.c usb: typec: rt1719: Add support for Richtek RT1719 2022-02-11 11:59:17 +01:00
stusb160x.c usb: typec: stusb160x: Don't block probing of consumer of "connector" nodes 2021-07-21 09:16:40 +02:00
wusb3801.c usb: typec: Support the WUSB3801 port controller 2022-02-17 16:23:18 +01:00