linux-xiaomi-chiron/drivers/usb
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
..
atm usb/atm: fix repeated words in comments 2022-07-27 14:32:20 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable() 2022-08-04 11:53:48 -07:00
chipidea Tracing updates for 5.20 / 6.0 2022-08-05 09:41:12 -07:00
class USB: cdc-acm: use CDC serial-state defines 2022-07-25 10:57:41 +02:00
common usb: common: usb-conn-gpio: Allow wakeup from system suspend 2022-06-10 11:48:41 +02:00
core dma-mapping updates 2022-08-06 10:56:45 -07:00
dwc2 usb: dwc2: drop unexpected word "the" in the comments 2022-06-24 13:37:34 +02:00
dwc3 usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop 2022-08-18 21:10:44 +02:00
early usb: early: xhci-dbc: Fix xdbc number parsing 2022-03-15 18:20:34 +01:00
gadget Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32 2022-08-04 15:20:39 -07:00
host dma-mapping updates 2022-08-06 10:56:45 -07:00
image usb/image: fix repeated words in comments 2022-07-27 14:33:53 +02:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-05-19 18:10:59 +02:00
misc usb: misc: onboard_usb_hub: Drop reset delay in onboard_hub_power_off() 2022-08-18 21:10:59 +02:00
mon USB: mon: Use scnprintf() for avoiding potential buffer overflow 2020-03-12 09:49:28 +01:00
mtu3 Tracing updates for 5.20 / 6.0 2022-08-05 09:41:12 -07:00
musb musb: fix USB_MUSB_TUSB6010 dependency 2022-08-18 16:33:06 +02:00
phy usb: phy: remove redundant store to variable var after & operation 2022-07-27 14:24:50 +02:00
renesas_usbhs usb: renesas: Fix refcount leak bug 2022-06-21 16:39:03 +02:00
roles usb: roles: add helper usb_role_string() 2021-05-27 09:17:18 +02:00
serial USB-serial updates for 5.20-rc1 2022-07-25 11:28:52 +02:00
storage usb-storage: Add ignore-residue quirk for NXP PN7462AU 2022-08-18 17:18:05 +02:00
typec usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles 2022-08-18 21:20:07 +02:00
usbip usbip: vudc: Don't enable IRQs prematurely 2022-06-10 11:48:19 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c usb: usb-skeleton: Update min() to min_t() 2021-10-05 12:56:48 +02:00