Commit 2c8cb236 authored by Prashant Malani's avatar Prashant Malani Committed by Greg Kroah-Hartman
Browse files

usb: typec: Add wrapper for bus switch set code



Add a wrapper that calls the set() function for various switches
associated with a port altmode.

Right now, it just wraps the existing typec_mux_set() command,
but it can be expanded to include other switches in future patches.

No functional changes introduced by this patch.

Signed-off-by: default avatarPrashant Malani <pmalani@chromium.org>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20230112221609.540754-3-pmalani@chromium.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2476de82
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -27,6 +27,13 @@ typec_altmode_set_mux(struct altmode *alt, unsigned long conf, void *data)
	return typec_mux_set(alt->mux, &state);
}

/* Wrapper to set various Type-C port switches together. */
static inline int
typec_altmode_set_switches(struct altmode *alt, unsigned long conf, void *data)
{
	return typec_altmode_set_mux(alt, conf, data);
}

static int typec_altmode_set_state(struct typec_altmode *adev,
				   unsigned long conf, void *data)
{
@@ -35,7 +42,7 @@ static int typec_altmode_set_state(struct typec_altmode *adev,

	port_altmode = is_port ? to_altmode(adev) : to_altmode(adev)->partner;

	return typec_altmode_set_mux(port_altmode, conf, data);
	return typec_altmode_set_switches(port_altmode, conf, data);
}

/* -------------------------------------------------------------------------- */
@@ -73,7 +80,7 @@ int typec_altmode_notify(struct typec_altmode *adev,
	is_port = is_typec_port(adev->dev.parent);
	partner = altmode->partner;

	ret = typec_altmode_set_mux(is_port ? altmode : partner, conf, data);
	ret = typec_altmode_set_switches(is_port ? altmode : partner, conf, data);
	if (ret)
		return ret;