Is slmodem still being maintained ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

  I sent this email about last week to Sasha Khapyorsky 
  <sashak@xxxxxxxxxxxx>, sashak@xxxxxxxxxxx But I got no reply. I wonder 
  if the guys on linmodems.org are the ones maintaining slmodem, or at 
  least know whether and who is maintaining it ?

  I am maintaing sl-modem package for Debian, and there are a lot of 
  patches that you might like to include them in the upstream code.
  Please find those patches attached.

-- 
 أحمد المحمودي (Ahmed El-Mahmoudy)
  Digital design engineer
 GPG KeyID: 0x9DCA0B27 (@ subkeys.pgp.net)
 GPG Fingerprint: 087D 3767 8CAC 65B1 8F6C  156E D325 C3C8 9DCA 0B27
Enlarge dial string buffer to 128 bytes. Some dial strings that include calling
card numbers can be longer than the previously allowed 32 characters, causing
them to be truncated.
Index: slmodem-2.9.11-20080817/modem/modem.h
===================================================================
--- slmodem-2.9.11-20080817.orig/modem/modem.h	2008-03-29 14:04:16.000000000 +0200
+++ slmodem-2.9.11-20080817/modem/modem.h	2008-09-17 15:17:49.000000000 +0200
@@ -301,7 +301,7 @@
 	void *cid;
 #endif
         /* dialer */
-        char dial_string[32];
+        char dial_string[128];
         /* escape counter */
         unsigned escape_count;
 	unsigned long last_esc_check;
Workaround in drivers/Makefile for a kernel 2.4 check accidentialy matching 2.6.12.4.
Index: slmodem-2.9.11-20080817/drivers/Makefile
===================================================================
--- slmodem-2.9.11-20080817.orig/drivers/Makefile	2008-09-17 15:15:36.000000000 +0200
+++ slmodem-2.9.11-20080817/drivers/Makefile	2008-09-17 15:17:56.000000000 +0200
@@ -76,7 +76,7 @@
 	    $(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n
 
 else
-ifeq ($(findstring 2.4,$(KERNEL_VER)),2.4)
+ifeq ($(shell grep 'UTS.*"2\.6' $(KERNEL_DIR)/include/linux/version.h),)
 
 slusb-objs:= old_st7554.o
 obj:=.
Changed the MODULE_LICENSE string to "Dual BSD/GPL" since the license is
actually a BSD license clone.
Index: slmodem-2.9.11-20080817/drivers/st7554.c
===================================================================
--- slmodem-2.9.11-20080817.orig/drivers/st7554.c	2008-04-18 04:56:46.000000000 +0200
+++ slmodem-2.9.11-20080817/drivers/st7554.c	2008-09-17 15:18:14.000000000 +0200
@@ -1414,5 +1414,6 @@
 
 MODULE_AUTHOR("Smart Link Ltd.");
 MODULE_DESCRIPTION("ST7554 USB Smart Link Soft Modem driver.");
-MODULE_LICENSE("Smart Link Ltd.");
+//MODULE_LICENSE("Smart Link Ltd.");
+MODULE_LICENSE("Dual BSD/GPL");
 
Since 2.6.25 class_device_add() and class_device_destroy() has been renamed, 
modified st7554.c accordingly.
Index: slmodem-2.9.11-20080817/drivers/st7554.c
===================================================================
--- slmodem-2.9.11-20080817.orig/drivers/st7554.c	2008-10-04 01:02:35.000000000 +0200
+++ slmodem-2.9.11-20080817/drivers/st7554.c	2008-10-04 00:32:21.000000000 +0200
@@ -220,11 +220,15 @@
 #define CLASS_CREATE(owner, name) class_simple_create(owner, name)
 static struct class_simple *st7554_class;
 #else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+#define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) device_create(class, dev, device, fmt, rest)
+#define CLASS_DEVICE_DESTROY(class, dev) device_destroy(class, dev)
+#else
 #include <linux/moduleparam.h>
-
 #define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) class_device_create(class, dev, device, fmt, rest)
-#define CLASS_DESTROY(class) class_destroy(class)
 #define CLASS_DEVICE_DESTROY(class, dev) class_device_destroy(class, dev)
+#endif
+#define CLASS_DESTROY(class) class_destroy(class)
 #define CLASS_CREATE(owner, name) class_create(owner, name)
 static struct class *st7554_class;
 #endif
Patch for class/simple_class transition.
Index: slmodem-2.9.11-20080817/drivers/st7554.c
===================================================================
--- slmodem-2.9.11-20080817.orig/drivers/st7554.c	2008-09-17 15:18:14.000000000 +0200
+++ slmodem-2.9.11-20080817/drivers/st7554.c	2008-09-17 15:24:12.000000000 +0200
@@ -213,7 +213,21 @@
 
 
 static struct st7554_state *st7554_table[MAX_MODEMS] = {};
+#ifdef FOUND_CLASS_SIMPLE
+#define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) class_simple_device_add(class, dev, device, fmt, rest)
+#define CLASS_DESTROY(class) class_simple_destroy(class)
+#define CLASS_DEVICE_DESTROY(class, dev) class_simple_device_remove(dev)
+#define CLASS_CREATE(owner, name) class_simple_create(owner, name)
 static struct class_simple *st7554_class;
+#else
+#include <linux/moduleparam.h>
+
+#define CLASS_DEVICE_CREATE(class, dev, device, fmt, rest) class_device_create(class, dev, device, fmt, rest)
+#define CLASS_DESTROY(class) class_destroy(class)
+#define CLASS_DEVICE_DESTROY(class, dev) class_device_destroy(class, dev)
+#define CLASS_CREATE(owner, name) class_create(owner, name)
+static struct class *st7554_class;
+#endif
 
 static DECLARE_MUTEX(open_sem);
 
@@ -1315,7 +1329,7 @@
 	}
 
 	usb_set_intfdata(interface, s );
-	class_simple_device_add(st7554_class, MKDEV(243, i), NULL, "slusb%d", i);
+	CLASS_DEVICE_CREATE(st7554_class, MKDEV(243, i), NULL, "slusb%d", i);
 
 	USB_INFO(KERN_INFO "slusb: slusb%d is found.\n", s->minor);
 
@@ -1343,7 +1357,7 @@
                 return;
         }
 
-	class_simple_device_remove(MKDEV(243, s->minor));
+	CLASS_DEVICE_DESTROY(st7554_class, MKDEV(243, s->minor));
 
 	st7554_stop(s);
 	down(&open_sem);
@@ -1376,7 +1390,7 @@
 	int ret;
 	USB_INFO ("ST7554 USB Modem.\n");
 
-	st7554_class = class_simple_create(THIS_MODULE, "slusb");
+	st7554_class = CLASS_CREATE(THIS_MODULE, "slusb");
 	if (IS_ERR(st7554_class)) {
 		ret = PTR_ERR(st7554_class);
 		USB_ERR("st7554_modem_init: failed to create sysfs class, error %d\n", ret);
@@ -1386,13 +1400,13 @@
 	ret = usb_register(&st7554_usb_driver);
 	if ( ret ) {
 		USB_ERR ("st7554_modem_init: cannot register usb device.\n");
-		class_simple_destroy(st7554_class);
+		CLASS_DESTROY(st7554_class);
 		return ret;
 	}
 
 	if(register_chrdev(243, "slusb", &st7554_fops) < 0) {
 		usb_deregister(&st7554_usb_driver);
-		class_simple_destroy(st7554_class);
+		CLASS_DESTROY(st7554_class);
 		return -ENOMEM;
 	}
 	return 0;
@@ -1404,7 +1418,7 @@
 	USB_DBG ("st7554: exit...\n");
 	unregister_chrdev(243,"slusb");
 	usb_deregister(&st7554_usb_driver);
-	class_simple_destroy(st7554_class);
+	CLASS_DESTROY(st7554_class);
 }
 
 
Index: slmodem-2.9.11-20080817/drivers/Makefile
===================================================================
--- slmodem-2.9.11-20080817.orig/drivers/Makefile	2008-09-17 15:17:56.000000000 +0200
+++ slmodem-2.9.11-20080817/drivers/Makefile	2008-09-17 15:24:12.000000000 +0200
@@ -21,7 +21,9 @@
 # slusb support ends at 2.6.24
 AGE:=$(shell if [ "$(SUBLEVEL)" -gt 24 ] ;then echo NEW;fi)
 
-EXTRA_CFLAGS = -I$(obj) -I$(obj)/../modem
+FOUND_CLASS_SIMPLE := $(shell grep -q 'class_simple_device_add' ${KERNEL_DIR}/include/linux/device.h 2> /dev/null && echo -DFOUND_CLASS_SIMPLE)
+
+EXTRA_CFLAGS = -I$(obj) -I$(obj)/../modem $(FOUND_CLASS_SIMPLE)
 
 ARCH64:=$(shell uname -m | sed -e '/amd64/s//x86_64/' | grep -c x86_64)
 
@@ -82,7 +84,7 @@
 obj:=.
 module-dir ?= ${DESTDIR}/lib/modules/$(KERNEL_VER)/misc
 
-CFLAGS:= -Wall -pipe -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB `test -f $(KERNEL_DIR)/include/linux/modversions.h && echo -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include`
+CFLAGS:= -Wall -pipe -O3 -fomit-frame-pointer -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB `test -f $(KERNEL_DIR)/include/linux/modversions.h && echo -DMODVERSIONS --include $(KERNEL_DIR)/include/linux/modversions.h -I$(KERNEL_DIR)/include` $(FOUND_CLASS_SIMPLE)
 
 all: $(obj-m)
 
Workaround for pre-2.6.18 kernels.
Index: slmodem-2.9.11-20080817/drivers/Makefile
===================================================================
--- slmodem-2.9.11-20080817.orig/drivers/Makefile	2008-09-18 05:35:21.000000000 +0200
+++ slmodem-2.9.11-20080817/drivers/Makefile	2008-09-18 08:35:18.000000000 +0200
@@ -78,7 +78,7 @@
 	    $(RM) ${DESTDIR}/dev/slusb$(minor) ; ) echo -n
 
 else
-ifeq ($(shell grep 'UTS.*"2\.6' $(KERNEL_DIR)/include/linux/version.h),)
+ifeq ($(shell grep 'UTS.*"2\.6' $(KERNEL_DIR)/include/linux/utsrelease.h $(KERNEL_DIR)/include/linux/version.h 2>/dev/null),)
 
 slusb-objs:= old_st7554.o
 obj:=.
Dropped the TROUBLESHOOTING section from README and adapted the feedback
section, mentioned the transfer of the modem business to Conexant.
Index: slmodem-2.9.11-20080817/README
===================================================================
--- slmodem-2.9.11-20080817.orig/README	2008-09-18 08:38:11.000000000 +0200
+++ slmodem-2.9.11-20080817/README	2008-09-18 08:38:31.000000000 +0200
@@ -239,21 +239,13 @@
 Note: When using ALSA modem driver you don't need to load other
       modules ('slamr').
 
-
-Troubleshooting
-===============
-
-If you get an error message during installation/configuration or loading
-the modules try to see it in FAQ file.
-
-Please report the problem to your modem provider or to us
-(linux-support@xxxxxxxxxx). 
-
-
 Feedback
 ========
 
-Please send any feedbacks to Smart Link. See the Smart Link
-web site for contact information (www.smlink.com) or to
-linux-support@xxxxxxxxxxx
+This software has been originaly created and distributed by Smart Link.
+However, Smart Link stopped supported them and apparently left the modem
+business. See http://www.smlink.com/smlink.asp for further information and
+contact data.
 
+---
+File modified by Eduard Bloch <blade@xxxxxxxxxx>, 2006

[Index of Archives]     [Linux Media Development]     [Asterisk]     [DCCP]     [Netdev]     [X.org]     [Xfree86]     [Fedora Women]     [Linux USB]

  Powered by Linux