n_gsm: fix UIH control byte : P bit should be 0
authorEric Bénard <eric@eukrea.com>
Wed, 9 Mar 2011 18:24:49 +0000 (19:24 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 9 Mar 2011 23:43:39 +0000 (15:43 -0800)
* the GSM 07.10 specification says in 5.4.3.1 that
'both stations shall set the P bit to 0'
  thanks to Alan Cox for finding this explanation in the spec

* without this fix, on Telit & Sim.com modems, opening a new DLC
randomly fails. Not setting PF bit of the control byte gives a
reliable behaviour on these modems.

Signed-off-by: Eric Bénard <eric@eukrea.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/n_gsm.c

index 0d90be4..176f632 100644 (file)
@@ -1250,8 +1250,7 @@ static void gsm_control_response(struct gsm_mux *gsm, unsigned int command,
 
 static void gsm_control_transmit(struct gsm_mux *gsm, struct gsm_control *ctrl)
 {
-       struct gsm_msg *msg = gsm_data_alloc(gsm, 0, ctrl->len + 1,
-                                                       gsm->ftype|PF);
+       struct gsm_msg *msg = gsm_data_alloc(gsm, 0, ctrl->len + 1, gsm->ftype);
        if (msg == NULL)
                return;
        msg->data[0] = (ctrl->cmd << 1) | 2 | EA;       /* command */