diag: Add support for QSC restart
Add cleanup of SMUX port once disconnect event is
received by diagfwd driver.
CRs-Fixed: 376401
Change-Id: I5ef07c8ccbfcc4ad6c5e41b3d985bdea434ab9ce
Signed-off-by: Ashay Jaiswal <ashayj@codeaurora.org>
diff --git a/drivers/char/diag/diagfwd_hsic.c b/drivers/char/diag/diagfwd_hsic.c
index fedcf03..81c6afa 100644
--- a/drivers/char/diag/diagfwd_hsic.c
+++ b/drivers/char/diag/diagfwd_hsic.c
@@ -296,7 +296,7 @@
usb_diag_free_req(driver->mdm_ch);
}
- if (driver->logging_mode != MEMORY_DEVICE_MODE) {
+ if (driver->logging_mode == USB_MODE) {
if (driver->hsic_device_enabled) {
driver->in_busy_hsic_write_on_device = 1;
driver->in_busy_hsic_read_on_device = 1;
@@ -307,6 +307,7 @@
} else if (driver->diag_smux_enabled) {
driver->in_busy_smux = 1;
driver->lcid = LCID_INVALID;
+ driver->smux_connected = 0;
/* Turn off communication over usb mdm and smux */
msm_smux_close(LCID_VALID);
}
@@ -440,7 +441,8 @@
int ret;
if (driver->diag_smux_enabled) {
if (driver->lcid && driver->usb_buf_mdm_out &&
- (driver->read_len_mdm > 0)) {
+ (driver->read_len_mdm > 0) &&
+ driver->smux_connected) {
ret = msm_smux_write(driver->lcid, NULL,
driver->usb_buf_mdm_out, driver->read_len_mdm);
if (ret)