platform/chrome: cros_ec_typec: Tolerate unrecognized mux flags

On occasion, the Chrome Embedded Controller (EC) can send a mux
configuration which doesn't map to a particular data mode. For instance,
dedicated Type C chargers, when connected, may cause only
USB_PD_MUX_POLARITY_INVERTED to be set. This is a valid flag combination
and should not lead to a driver abort.

Modify the mux configuration handling to not return an error when an
unrecognized mux flag combination is encountered. Concordantly, make the
ensuing print a debug level print so as to not pollute the kernel logs.

Cc: Keith Short <keithshort@chromium.org>
Signed-off-by: Prashant Malani <pmalani@chromium.org>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Benson Leung <bleung@chromium.org>
Link: https://lore.kernel.org/r/20201106020305.767202-1-pmalani@chromium.org
This commit is contained in:
Prashant Malani 2020-11-05 18:03:05 -08:00 committed by Benson Leung
parent de0f49487d
commit 6ae9b5ffca
No known key found for this signature in database
GPG Key ID: 736DAA268733B0C2
1 changed files with 3 additions and 4 deletions

View File

@ -537,10 +537,9 @@ static int cros_typec_configure_mux(struct cros_typec_data *typec, int port_num,
port->state.mode = TYPEC_STATE_USB; port->state.mode = TYPEC_STATE_USB;
ret = typec_mux_set(port->mux, &port->state); ret = typec_mux_set(port->mux, &port->state);
} else { } else {
dev_info(typec->dev, dev_dbg(typec->dev,
"Unsupported mode requested, mux flags: %x\n", "Unrecognized mode requested, mux flags: %x\n",
mux_flags); mux_flags);
ret = -ENOTSUPP;
} }
return ret; return ret;