From 509067bbd2644ed8f59b84b5db95a985633004ba Mon Sep 17 00:00:00 2001
From: Zhenguo Zhao <Zhenguo.Zhao1@unisoc.com>
Date: Fri, 20 Aug 2021 20:17:49 +0800
Subject: [PATCH] tty: n_gsm: Delete gsm_disconnect when config requester
Git-commit: 509067bbd2644ed8f59b84b5db95a985633004ba
Patch-mainline: v5.16-rc1
References: git-fixes
When n_gsm config "initiator=0",when gsmld config ,as requester ,it
doesn't need to send CLD frame data or SABM frame.
Example,when tty dev receive "AT+CMUX=0",it will change ldisc
n_tty to n_gsm,during config requester,gsmld output "7e 01 ef c3 aa 7e",
initiator maybe not want to receive the frame data.
[ 154.666457] c1 Q> 0) R: UIH(F)
[ 154.669514] c1 C3
[ 154.671519] c1 gsmld_output: 00000000: 7e 01 ef c3 aa 7e
[ 155.014874] c1 Q> 0) R: UIH(F)
[ 155.018000] c1 C3
[ 155.020046] c1 gsmld_output: 00000000: 7e 01 ef c3 aa 7e
[ 155.364425] c1 Q> 0) R: UIH(F)
[ 155.367546] c1 C3
[ 155.369597] c1 gsmld_output: 00000000: 7e 01 ef c3 aa 7e
Signed-off-by: Zhenguo Zhao <Zhenguo.Zhao1@unisoc.com>
Link: https://lore.kernel.org/r/1629461872-26965-5-git-send-email-zhenguo6858@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Takashi Iwai <tiwai@suse.de>
---
drivers/tty/n_gsm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 563b685de88c..fd980a68c7ea 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -2304,7 +2304,7 @@ static int gsm_config(struct gsm_mux *gsm, struct gsm_config *c)
* configuration
*/
- if (need_close || need_restart) {
+ if (gsm->initiator && (need_close || need_restart)) {
int ret;
ret = gsm_disconnect(gsm);
--
2.35.3