Not exactly the same. In the default case you are supposed to set it to the actual bps requested, not to 9600. Could you update?

BR,
Nikos
----- Original Message ----- From: "Vincent CHAVANIS" <[email protected]>
To: <[email protected]>
Sent: Monday, February 16, 2009 12:31 PM
Subject: [PATCH] EMI_X25 smsc module support for high speed modems



Adapted paul's patch for EMI_X25 SMSC

Vincent.


P. A. Bagyenda a ιcrit :
Thanks.

 On the issue of non-standard speeds, I've tested this on Mac OS X
(which uses bps value as actual speed value) with a 460800 (i.e.
non-standard) modem, and it works just fine. Said modem also works well
under Linux. I believe no issue arises since it is the user
responsibility to provide the correct speed -- and also buy a supported
modem :)




--------------------------------------------------------------------------------


diff -rauw /gateway-cvs/gw/smsc/smsc_emi_x25.c /gateway/gw/smsc/smsc_emi_x25.c --- /gateway-cvs/gw/smsc/smsc_emi_x25.c 2009-01-14 10:24:05.000000000 +0100 +++ /gateway/gw/smsc/smsc_emi_x25.c 2009-02-16 11:20:55.000000000 +0100
@@ -496,7 +496,23 @@

    /* The speed initialisation is pretty important. */
    tcgetattr(fd, &tios);
-#if defined(B115200)
+
+#if defined(B921600)
+    cfsetospeed(&tios, B921600);
+    cfsetispeed(&tios, B921600);
+#elif defined(B576000)
+    cfsetospeed(&tios, B576000);
+    cfsetispeed(&tios, B576000);
+#elif defined(B500000)
+    cfsetospeed(&tios, B500000);
+    cfsetispeed(&tios, B500000);
+#elif defined(B460800)
+    cfsetospeed(&tios, B460800);
+    cfsetispeed(&tios, B460800);
+#elif defined(B230400)
+    cfsetospeed(&tios, B230400);
+    cfsetispeed(&tios, B230400);
+#elif defined(B115200)
    cfsetospeed(&tios, B115200);
    cfsetispeed(&tios, B115200);
#elif defined(B76800)
@@ -512,9 +528,14 @@
    cfsetospeed(&tios, B19200);
    cfsetispeed(&tios, B19200);
#elif defined(B9600)
+ #if B9600 == 9600
+    cfsetospeed(&tios, 9600);
+    cfsetispeed(&tios, 9600);
+ #else
    cfsetospeed(&tios, B9600);
    cfsetispeed(&tios, B9600);
#endif
+#endif
    kannel_cfmakeraw(&tios);
    tios.c_cflag |= (HUPCL | CREAD | CRTSCTS);
    ret = tcsetattr(fd, TCSANOW, &tios);



Reply via email to