platform/chrome: cros_ec_typec: Stash port driver info
authorPrashant Malani <pmalani@chromium.org>
Wed, 28 Dec 2022 00:45:06 +0000 (00:45 +0000)
committerPrashant Malani <pmalani@chromium.org>
Mon, 9 Jan 2023 20:32:53 +0000 (20:32 +0000)
Stash port number and a pointer to the driver-specific struct in the
local typec port struct.

These can be useful to the port driver to figure out how to communicate
with the Chrome EC when an altmode-driver related callback is invoked
from the Type-C class code.

Signed-off-by: Prashant Malani <pmalani@chromium.org>
Reviewed-by: Benson Leung <bleung@chromium.org>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20221228004648.793339-4-pmalani@chromium.org
drivers/platform/chrome/cros_ec_typec.c

index 001b0de..bc8dc8b 100644 (file)
@@ -45,6 +45,7 @@ struct cros_typec_altmode_node {
 /* Per port data. */
 struct cros_typec_port {
        struct typec_port *port;
+       int port_num;
        /* Initial capabilities for the port. */
        struct typec_capability caps;
        struct typec_partner *partner;
@@ -78,6 +79,8 @@ struct cros_typec_port {
        struct usb_power_delivery *partner_pd;
        struct usb_power_delivery_capabilities *partner_src_caps;
        struct usb_power_delivery_capabilities *partner_sink_caps;
+
+       struct cros_typec_data *typec_data;
 };
 
 /* Platform-specific data for the Chrome OS EC Type C controller. */
@@ -408,6 +411,8 @@ static int cros_typec_init_ports(struct cros_typec_data *typec)
                        goto unregister_ports;
                }
 
+               cros_port->port_num = port_num;
+               cros_port->typec_data = typec;
                typec->ports[port_num] = cros_port;
                cap = &cros_port->caps;