All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/3] tty: n_gsm: fix missing update of modem controls after DLCI open
@ 2022-04-20 10:13 D. Starke
  2022-04-20 10:13 ` [PATCH v3 2/3] tty: n_gsm: clean up dead code in gsm_queue() D. Starke
  2022-04-20 10:13 ` [PATCH v3 3/3] tty: n_gsm: clean up implicit CR bit encoding in address field D. Starke
  0 siblings, 2 replies; 3+ messages in thread
From: D. Starke @ 2022-04-20 10:13 UTC (permalink / raw)
  To: linux-serial, gregkh, jirislaby; +Cc: linux-kernel, Daniel Starke

From: Daniel Starke <daniel.starke@siemens.com>

Currently the peer is not informed about the initial state of the modem
control lines after a new DLCI has been opened.
Fix this by sending the initial modem control line states after DLCI open.

Fixes: e1eaea46bb40 ("tty: n_gsm line discipline")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
---
 drivers/tty/n_gsm.c | 4 ++++
 1 file changed, 4 insertions(+)

All remarks have been incorporated.
Compared to the original patch the additional comment on the prototypes was
removed and the comment in gsm_dlci_open() was moved to a separate line.
The commit message remains unchanged.
This is version 3 of the patch because the second version was missing the
change remarks.

Link: https://lore.kernel.org/all/YlkQ5Jh8HIm+AJHe@kroah.com/

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index f3fb66be8513..07d03447cdfd 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -370,6 +370,7 @@ static const u8 gsm_fcs8[256] = {
 #define GOOD_FCS	0xCF
 
 static int gsmld_output(struct gsm_mux *gsm, u8 *data, int len);
+static int gsmtty_modem_update(struct gsm_dlci *dlci, u8 brk);
 
 /**
  *	gsm_fcs_add	-	update FCS
@@ -1479,6 +1480,9 @@ static void gsm_dlci_open(struct gsm_dlci *dlci)
 		pr_debug("DLCI %d goes open.\n", dlci->addr);
 	/* Register gsmtty driver,report gsmtty dev add uevent for user */
 	tty_register_device(gsm_tty_driver, dlci->addr, NULL);
+	/* Send current modem state */
+	if (dlci->addr)
+		gsmtty_modem_update(dlci, 0);
 	wake_up(&dlci->gsm->event);
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v3 2/3] tty: n_gsm: clean up dead code in gsm_queue()
  2022-04-20 10:13 [PATCH v3 1/3] tty: n_gsm: fix missing update of modem controls after DLCI open D. Starke
@ 2022-04-20 10:13 ` D. Starke
  2022-04-20 10:13 ` [PATCH v3 3/3] tty: n_gsm: clean up implicit CR bit encoding in address field D. Starke
  1 sibling, 0 replies; 3+ messages in thread
From: D. Starke @ 2022-04-20 10:13 UTC (permalink / raw)
  To: linux-serial, gregkh, jirislaby; +Cc: linux-kernel, Daniel Starke

From: Daniel Starke <daniel.starke@siemens.com>

Remove commented out code as it is never used and if anyone accidentally
turned it on, it would be broken.

Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
---
 drivers/tty/n_gsm.c | 4 ----
 1 file changed, 4 deletions(-)

The commit title and message was adjusted as recommended in the remarks for
the original patch. This is only a cleanup now and not a fix. The remark
for backporting was also removed. The code change remains as it was
originally.
This is version 3 of the patch because the second version was missing the
change remarks.

Link: https://lore.kernel.org/all/YlkRO6fAPCuWyT1Y@kroah.com/

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 07d03447cdfd..1b4077006744 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -1894,10 +1894,6 @@ static void gsm_queue(struct gsm_mux *gsm)
 	case UI|PF:
 	case UIH:
 	case UIH|PF:
-#if 0
-		if (cr)
-			goto invalid;
-#endif
 		if (dlci == NULL || dlci->state != DLCI_OPEN) {
 			gsm_command(gsm, address, DM|PF);
 			return;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v3 3/3] tty: n_gsm: clean up implicit CR bit encoding in address field
  2022-04-20 10:13 [PATCH v3 1/3] tty: n_gsm: fix missing update of modem controls after DLCI open D. Starke
  2022-04-20 10:13 ` [PATCH v3 2/3] tty: n_gsm: clean up dead code in gsm_queue() D. Starke
@ 2022-04-20 10:13 ` D. Starke
  1 sibling, 0 replies; 3+ messages in thread
From: D. Starke @ 2022-04-20 10:13 UTC (permalink / raw)
  To: linux-serial, gregkh, jirislaby; +Cc: linux-kernel, Daniel Starke

From: Daniel Starke <daniel.starke@siemens.com>

n_gsm is based on the 3GPP 07.010 and its newer version is the 3GPP 27.010.
See https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=1516
The changes from 07.010 to 27.010 are non-functional. Therefore, I refer to
the newer 27.010 here. Chapter 5.2.1.2 describes the encoding of the
address field within the frame header. It is made up of the DLCI address,
command/response (CR) bit and EA bit.
Use the predefined CR value instead of a plain 2 in alignment to the
remaining code and to make the encoding obvious.

Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
---
 drivers/tty/n_gsm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

All remarks have been incorporated. The commit title was changed from fix
to clean up and the fix and backporting remarks have been removed. The
remaining commit message body and the code changes remain untouched.
This is version 3 of the patch because the second version was missing the
change remarks.

Link: https://lore.kernel.org/all/YlkRvMhDfwgNZptV@kroah.com/

diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
index 9bf5aa508f0e..1beb4b28cd18 100644
--- a/drivers/tty/n_gsm.c
+++ b/drivers/tty/n_gsm.c
@@ -751,7 +751,7 @@ static void __gsm_data_queue(struct gsm_dlci *dlci, struct gsm_msg *msg)
 
 	*--dp = msg->ctrl;
 	if (gsm->initiator)
-		*--dp = (msg->addr << 2) | 2 | EA;
+		*--dp = (msg->addr << 2) | CR | EA;
 	else
 		*--dp = (msg->addr << 2) | EA;
 	*fcs = gsm_fcs_add_block(INIT_FCS, dp , msg->data - dp);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-20 10:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-20 10:13 [PATCH v3 1/3] tty: n_gsm: fix missing update of modem controls after DLCI open D. Starke
2022-04-20 10:13 ` [PATCH v3 2/3] tty: n_gsm: clean up dead code in gsm_queue() D. Starke
2022-04-20 10:13 ` [PATCH v3 3/3] tty: n_gsm: clean up implicit CR bit encoding in address field D. Starke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.