Commit 3838896d authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "platform/chrome: cros_typec_switch: Register mode switches"



This reverts commit f5434e30.

The chrome platform driver changes need to come in through the platform
tree due to some api changes that showed up there that cause build
errors in linux-next

Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Link: https://lore.kernel.org/r/20220719160821.5e68e30b@oak.ozlabs.ibm.com


Cc: Prashant Malani <pmalani@chromium.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9169d2fd
Loading
Loading
Loading
Loading
+0 −40
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
#include <linux/platform_device.h>
#include <linux/usb/typec_altmode.h>
#include <linux/usb/typec_dp.h>
#include <linux/usb/typec_mux.h>
#include <linux/usb/typec_retimer.h>

#define DRV_NAME "cros-typec-switch"
@@ -23,7 +22,6 @@
/* Handles and other relevant data required for each port's switches. */
struct cros_typec_port {
	int port_num;
	struct typec_mux_dev *mode_switch;
	struct typec_retimer *retimer;
	struct cros_typec_switch_data *sdata;
};
@@ -149,15 +147,6 @@ static int cros_typec_configure_mux(struct cros_typec_switch_data *sdata, int po
	return -ETIMEDOUT;
}

static int cros_typec_mode_switch_set(struct typec_mux_dev *mode_switch,
				      struct typec_mux_state *state)
{
	struct cros_typec_port *port = typec_mux_get_drvdata(mode_switch);

	/* Mode switches have index 0. */
	return cros_typec_configure_mux(port->sdata, port->port_num, 0, state->mode, state->alt);
}

static int cros_typec_retimer_set(struct typec_retimer *retimer, struct typec_retimer_state *state)
{
	struct cros_typec_port *port = typec_retimer_get_drvdata(retimer);
@@ -174,27 +163,9 @@ static void cros_typec_unregister_switches(struct cros_typec_switch_data *sdata)
		if (!sdata->ports[i])
			continue;
		typec_retimer_unregister(sdata->ports[i]->retimer);
		typec_mux_unregister(sdata->ports[i]->mode_switch);
	}
}

static int cros_typec_register_mode_switch(struct cros_typec_port *port,
					   struct fwnode_handle *fwnode)
{
	struct typec_mux_desc mode_switch_desc = {
		.fwnode = fwnode,
		.drvdata = port,
		.name = fwnode_get_name(fwnode),
		.set = cros_typec_mode_switch_set,
	};

	port->mode_switch = typec_mux_register(port->sdata->dev, &mode_switch_desc);
	if (IS_ERR(port->mode_switch))
		return PTR_ERR(port->mode_switch);

	return 0;
}

static int cros_typec_register_retimer(struct cros_typec_port *port, struct fwnode_handle *fwnode)
{
	struct typec_retimer_desc retimer_desc = {
@@ -264,17 +235,6 @@ static int cros_typec_register_switches(struct cros_typec_switch_data *sdata)
		}

		dev_dbg(dev, "Retimer switch registered for index %llu\n", index);

		if (!fwnode_property_read_bool(fwnode, "mode-switch"))
			continue;

		ret = cros_typec_register_mode_switch(port, fwnode);
		if (ret) {
			dev_err(dev, "Mode switch register failed\n");
			goto err_switch;
		}

		dev_dbg(dev, "Mode switch registered for index %llu\n", index);
	}

	return 0;