usb: typec: tcpm: Get Sink VDO from fwnode
authorKyle Tso <kyletso@google.com>
Fri, 5 Feb 2021 03:34:15 +0000 (11:34 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Feb 2021 10:48:55 +0000 (11:48 +0100)
Commit a079973f462a ("usb: typec: tcpm: Remove tcpc_config
configuration mechanism") removed the tcpc_config which includes the
Sink VDO and it is not yet added back with fwnode. Add it now.

Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Kyle Tso <kyletso@google.com>
Link: https://lore.kernel.org/r/20210205033415.3320439-8-kyletso@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/tcpm.c

index b45cd19..be0b646 100644 (file)
@@ -5722,6 +5722,20 @@ sink:
                        port->new_source_frs_current = frs_current;
        }
 
+       /* sink-vdos is optional */
+       ret = fwnode_property_count_u32(fwnode, "sink-vdos");
+       if (ret < 0)
+               ret = 0;
+
+       port->nr_snk_vdo = min(ret, VDO_MAX_OBJECTS);
+       if (port->nr_snk_vdo) {
+               ret = fwnode_property_read_u32_array(fwnode, "sink-vdos",
+                                                    port->snk_vdo,
+                                                    port->nr_snk_vdo);
+               if (ret < 0)
+                       return ret;
+       }
+
        return 0;
 }