|
@@ -604,15 +604,15 @@ void tcpm_pd_transmit_complete(struct tcpm_port *port,
|
|
|
EXPORT_SYMBOL_GPL(tcpm_pd_transmit_complete);
|
|
|
|
|
|
static int tcpm_mux_set(struct tcpm_port *port, enum tcpc_mux_mode mode,
|
|
|
- enum tcpc_usb_switch config)
|
|
|
+ enum usb_role usb_role)
|
|
|
{
|
|
|
int ret = 0;
|
|
|
|
|
|
- tcpm_log(port, "Requesting mux mode %d, config %d, polarity %d",
|
|
|
- mode, config, port->polarity);
|
|
|
+ tcpm_log(port, "Requesting mux mode %d, usb-role %d, polarity %d",
|
|
|
+ mode, usb_role, port->polarity);
|
|
|
|
|
|
if (port->tcpc->mux)
|
|
|
- ret = port->tcpc->mux->set(port->tcpc->mux, mode, config,
|
|
|
+ ret = port->tcpc->mux->set(port->tcpc->mux, mode, usb_role,
|
|
|
port->polarity);
|
|
|
|
|
|
return ret;
|
|
@@ -728,14 +728,15 @@ static int tcpm_set_attached_state(struct tcpm_port *port, bool attached)
|
|
|
static int tcpm_set_roles(struct tcpm_port *port, bool attached,
|
|
|
enum typec_role role, enum typec_data_role data)
|
|
|
{
|
|
|
+ enum usb_role usb_role;
|
|
|
int ret;
|
|
|
|
|
|
if (data == TYPEC_HOST)
|
|
|
- ret = tcpm_mux_set(port, TYPEC_MUX_USB,
|
|
|
- TCPC_USB_SWITCH_CONNECT);
|
|
|
+ usb_role = USB_ROLE_HOST;
|
|
|
else
|
|
|
- ret = tcpm_mux_set(port, TYPEC_MUX_NONE,
|
|
|
- TCPC_USB_SWITCH_DISCONNECT);
|
|
|
+ usb_role = USB_ROLE_DEVICE;
|
|
|
+
|
|
|
+ ret = tcpm_mux_set(port, TYPEC_MUX_USB, usb_role);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
@@ -2028,7 +2029,7 @@ out_disable_vconn:
|
|
|
out_disable_pd:
|
|
|
port->tcpc->set_pd_rx(port->tcpc, false);
|
|
|
out_disable_mux:
|
|
|
- tcpm_mux_set(port, TYPEC_MUX_NONE, TCPC_USB_SWITCH_DISCONNECT);
|
|
|
+ tcpm_mux_set(port, TYPEC_MUX_NONE, USB_ROLE_NONE);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -2072,6 +2073,7 @@ static void tcpm_reset_port(struct tcpm_port *port)
|
|
|
tcpm_init_vconn(port);
|
|
|
tcpm_set_current_limit(port, 0, 0);
|
|
|
tcpm_set_polarity(port, TYPEC_POLARITY_CC1);
|
|
|
+ tcpm_mux_set(port, TYPEC_MUX_NONE, USB_ROLE_NONE);
|
|
|
tcpm_set_attached_state(port, false);
|
|
|
port->try_src_count = 0;
|
|
|
port->try_snk_count = 0;
|
|
@@ -2122,8 +2124,6 @@ static int tcpm_snk_attach(struct tcpm_port *port)
|
|
|
static void tcpm_snk_detach(struct tcpm_port *port)
|
|
|
{
|
|
|
tcpm_detach(port);
|
|
|
-
|
|
|
- /* XXX: (Dis)connect SuperSpeed mux? */
|
|
|
}
|
|
|
|
|
|
static int tcpm_acc_attach(struct tcpm_port *port)
|