diff -ur slmodem-2.9.10.old/drivers/amrmo_init.c slmodem-2.9.10_/drivers/amrmo_init.c --- slmodem-2.9.10.old/drivers/amrmo_init.c 2005-12-20 00:34:01.000000000 +0600 +++ slmodem-2.9.10/drivers/amrmo_init.c 2005-12-19 21:03:43.000000000 +0600 @@ -276,7 +276,7 @@ static struct amrmo_struct *amrmo_table[MAXNUM] = {}; #ifndef OLD_KERNEL -static struct class_simple *amrmo_class; +static struct class *amrmo_class; #endif /* @@ -620,7 +620,7 @@ } #endif #else - class_simple_device_add(amrmo_class, MKDEV(AMRMO_MAJOR, i), NULL, "slamr%d", i); + class_device_create(amrmo_class, MKDEV(AMRMO_MAJOR, i), &pci_dev->dev, "slamr%d", i); devfs_mk_cdev(MKDEV(AMRMO_MAJOR,i), S_IFCHR|S_IRUSR|S_IWUSR, "slamr%d", i); #endif return 0; @@ -652,7 +652,7 @@ } #endif #else - class_simple_device_remove(MKDEV(AMRMO_MAJOR, amrmo->num)); + class_device_destroy(amrmo_class, MKDEV(AMRMO_MAJOR, amrmo->num)); devfs_remove("slamr%d", amrmo->num); #endif amrmo_table[amrmo->num] = NULL; @@ -686,7 +686,7 @@ MODULE_AUTHOR("Smart Link Ltd."); MODULE_DESCRIPTION("SmartLink HAMR5600,SmartPCI56/561 based modem driver"); -MODULE_LICENSE("Smart Link Ltd."); +MODULE_LICENSE("GPL"); static int __init amrmo_init(void) @@ -708,7 +708,7 @@ #else while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) { #endif - if(pci_match_device(amrmo_pci_tbl, dev) && + if(pci_match_id(amrmo_pci_driver.id_table, dev) && pci_dev_driver(dev)) { #ifdef OLD_KERNEL AMRMO_DBG("device %04x:%04x is used by %s: remove\n", @@ -732,7 +732,7 @@ } #ifndef OLD_KERNEL - amrmo_class = class_simple_create(THIS_MODULE, "slamr"); + amrmo_class = class_create(THIS_MODULE, "slamr"); if (IS_ERR(amrmo_class)) { int err = PTR_ERR(amrmo_class); printk(KERN_ERR "slamr: failure creating simple class, error %d\n", err); @@ -740,10 +740,10 @@ } #endif - if (!pci_register_driver(&amrmo_pci_driver)) { + if (pci_register_driver(&amrmo_pci_driver)) { pci_unregister_driver(&amrmo_pci_driver); #ifndef OLD_KERNEL - class_simple_destroy(amrmo_class); + class_destroy(amrmo_class); #endif return -ENODEV; } @@ -751,7 +751,7 @@ if(register_chrdev(AMRMO_MAJOR, "slamr", &amrmo_fops) < 0) { pci_unregister_driver(&amrmo_pci_driver); #ifndef OLD_KERNEL - class_simple_destroy(amrmo_class); + class_destroy(amrmo_class); #endif return -ENOMEM; } @@ -765,7 +765,7 @@ unregister_chrdev(AMRMO_MAJOR,"slamr"); pci_unregister_driver(&amrmo_pci_driver); #ifndef OLD_KERNEL - class_simple_destroy(amrmo_class); + class_destroy(amrmo_class); #endif } ?????? ? slmodem-2.9.10_/drivers: amrmo_init.c.orig diff -ur slmodem-2.9.10.old/drivers/st7554.c slmodem-2.9.10_/drivers/st7554.c --- slmodem-2.9.10.old/drivers/st7554.c 2005-12-20 00:34:01.000000000 +0600 +++ slmodem-2.9.10/drivers/st7554.c 2005-12-19 21:14:11.000000000 +0600 @@ -206,7 +206,7 @@ static struct st7554_state *st7554_table[MAX_MODEMS] = {}; -static struct class_simple *st7554_class; +static struct class *st7554_class; static DECLARE_MUTEX(open_sem); @@ -1277,7 +1277,7 @@ } usb_set_intfdata(interface, s ); - class_simple_device_add(st7554_class, MKDEV(213, i), NULL, "slusb%d", i); + class_device_create(st7554_class, MKDEV(213, i), NULL, "slusb%d", i); devfs_mk_cdev(MKDEV(213,i),S_IFCHR|S_IRUSR|S_IWUSR ,"slusb%d",i); USB_INFO(KERN_INFO "slusb: slusb%d is found.\n", s->minor); @@ -1306,7 +1306,7 @@ return; } - class_simple_device_remove(MKDEV(213, s->minor)); + class_device_destroy(st7554_class, MKDEV(213, s->minor)); devfs_remove("slusb%d",s->minor); st7554_stop(s); @@ -1340,7 +1340,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); @@ -1350,13 +1350,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(213, "slusb", &st7554_fops) < 0) { usb_deregister(&st7554_usb_driver); - class_simple_destroy(st7554_class); + class_destroy(st7554_class); return -ENOMEM; } return 0; @@ -1368,7 +1368,7 @@ USB_DBG ("st7554: exit...\n"); unregister_chrdev(213,"slusb"); usb_deregister(&st7554_usb_driver); - class_simple_destroy(st7554_class); + class_destroy(st7554_class); }