From 25edc67ca01d1f0b10d52ce08f1654e655fbaf5c Mon Sep 17 00:00:00 2001 From: Li Jun Date: Thu, 27 Jul 2017 21:13:19 +0800 Subject: [PATCH] MLK-16013-19 staging: typec: tcpci: Only touch target bit when enable vconn We need a read and then write back to avoid touch any other bits when enable or disable vconn. Reviewed-by: Peter Chen Signed-off-by: Li Jun --- drivers/staging/typec/tcpci.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/staging/typec/tcpci.c b/drivers/staging/typec/tcpci.c index dbab97baa4be..cfd80a2aa883 100644 --- a/drivers/staging/typec/tcpci.c +++ b/drivers/staging/typec/tcpci.c @@ -263,12 +263,10 @@ static int tcpci_set_vconn(struct tcpc_dev *tcpc, bool enable) struct tcpci *tcpci = tcpc_to_tcpci(tcpc); int ret; - ret = regmap_write(tcpci->regmap, TCPC_POWER_CTRL, - enable ? TCPC_POWER_CTRL_VCONN_ENABLE : 0); - if (ret < 0) - return ret; - - return 0; + ret = regmap_update_bits(tcpci->regmap, TCPC_POWER_CTRL, + TCPC_POWER_CTRL_VCONN_ENABLE, + enable ? TCPC_POWER_CTRL_VCONN_ENABLE : 0); + return ret; } static int tcpci_set_roles(struct tcpc_dev *tcpc, bool attached, -- 2.17.1