From 54060b2bc8274b2a0f5f246df2706d14477e5ae4 Mon Sep 17 00:00:00 2001 From: Linyu Yuan Date: Wed, 12 May 2021 15:25:51 +0800 Subject: [PATCH] usb: misc: nb7vpq904m: fix disconnect api if failed to stop active transfer in USB gadget mode, currently gadget state will change to disconnect mode, redriver will change to disable mode when usb call redriver disconnect, it can't enable again if there is no new adsp notification, usb super speed will not work again. it should not change redriver mode to disable, but it can only write register to disable and keep current software mode. Change-Id: I3b8aa4140482564948bc8e25c4ef2532f4e641fa Signed-off-by: Linyu Yuan --- drivers/usb/misc/ssusb-redriver-nb7vpq904m.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/usb/misc/ssusb-redriver-nb7vpq904m.c b/drivers/usb/misc/ssusb-redriver-nb7vpq904m.c index a9b284ba6abb..b7a4675d4071 100644 --- a/drivers/usb/misc/ssusb-redriver-nb7vpq904m.c +++ b/drivers/usb/misc/ssusb-redriver-nb7vpq904m.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved. */ #include @@ -578,12 +578,10 @@ int redriver_notify_disconnect(struct device_node *node) (redriver->op_mode == OP_MODE_NONE)) return 0; - dev_dbg(redriver->dev, "op mode %s -> %s\n", - OPMODESTR(redriver->op_mode), OPMODESTR(OP_MODE_NONE)); + dev_dbg(redriver->dev, "disconnect op mode %s\n", + OPMODESTR(redriver->op_mode)); - redriver->op_mode = OP_MODE_NONE; - - ssusb_redriver_gen_dev_set(redriver); + redriver_i2c_reg_set(redriver, GEN_DEV_SET_REG, 0); return 0; }