usb: typec: ucsi: add support for separate DP altmode devices
authorAjay Gupta <ajayg@nvidia.com>
Mon, 30 Dec 2019 13:34:31 +0000 (16:34 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 30 Dec 2019 19:11:32 +0000 (20:11 +0100)
commit170a6726d0e266f2c8f306e3d61715c32f4ee41e
tree300e9e24aaa0ff2cff5ca9ad43a128061629e2f5
parent71a1fa0df2a3728b8ccb97394be420d1f03df40e
usb: typec: ucsi: add support for separate DP altmode devices

CCGx controller used on NVIDIA GPU card has two separate display
altmode for two DP pin assignments. UCSI specification doesn't
prohibits using separate display altmode.

Current UCSI Type-C framework expects only one display altmode for
all DP pin assignment. This patch squashes two separate display
altmode into single altmode to support controllers with separate
display altmode. We first read all the alternate modes of connector
and then run through it to know if there are separate display
altmodes. If so, it prepares a new port altmode set after squashing
two or more separate altmodes into one.

Signed-off-by: Ajay Gupta <ajayg@nvidia.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20191230133431.63445-3-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/ucsi.c
drivers/usb/typec/ucsi/ucsi.h
drivers/usb/typec/ucsi/ucsi_ccg.c