diff -urpwN svgalib-1.9.18/kernel/svgalib_helper/Makefile.alt svgalib-1.9.18.kernel2.6/kernel/svgalib_helper/Makefile.alt --- svgalib-1.9.18/kernel/svgalib_helper/Makefile.alt 2002-10-28 18:25:47.000000000 +0200 +++ svgalib-1.9.18.kernel2.6/kernel/svgalib_helper/Makefile.alt 2003-08-03 14:34:40.000000000 +0200 @@ -37,7 +37,7 @@ CFLAGS += -DSVGALIB_HELPER_MAJOR=$(SVGALIB_HELPER_MAJOR) ifeq (1,$(findstring 1,$(MODVER))) - CFLAGS += -DMODVERSIONS -include $(INCLUDEDIR)/linux/modversions.h + CFLAGS += -DMODVERSIONS -DCONFIG_MODVERSIONS=1 endif TARGET = svgalib_helper @@ -50,7 +50,8 @@ endif endif -all: .depend $(OBJS) +modules: $(OBJS) +all: .depend modules $(TARGET).o: $(SRC:.c=.o) $(LD) -r $^ -o $@ @@ -61,8 +62,8 @@ install: device modules_install modules_install: $(OBJS) - mkdir -p /lib/modules/$(VER)/kernel/misc - install -m 0644 -c $(OBJS) /lib/modules/$(VER)/kernel/misc + mkdir -p $(TOPDIR)/lib/modules/$(VER)/kernel/misc + install -m 0644 -c $(OBJS) $(TOPDIR)/lib/modules/$(VER)/kernel/misc device: rm -f /dev/svgalib_helper* /dev/svga_helper* /dev/svga /dev/svga? diff -urpN svgalib-1.9.18/kernel/svgalib_helper/kernel26compat.h svgalib-1.9.18.new/kernel/svgalib_helper/kernel26compat.h --- svgalib-1.9.18/kernel/svgalib_helper/kernel26compat.h 2003-10-04 15:42:01.000000000 +0200 +++ svgalib-1.9.18.new/kernel/svgalib_helper/kernel26compat.h 2004-02-23 00:41:03.176196576 +0200 @@ -52,6 +52,33 @@ static inline int devfs_unregister_chrde } #endif +#if defined(KERNEL_2_6) +# define SLH_SYSFS_REGISTER \ + svgalib_helper_class = class_simple_create(THIS_MODULE, "svgalib_helper"); + +# define SLH_SYSFS_ADD_CONTROL \ + class_simple_device_add(svgalib_helper_class, \ + MKDEV(SVGALIB_HELPER_MAJOR, 0), \ + NULL, "svga"); + +# define SLH_SYSFS_ADD_DEVICE(_name, _minor) \ + class_simple_device_add(svgalib_helper_class, \ + MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ + &sh_pci_devs[_minor]->dev->dev, _name); + +# define SLH_SYSFS_REMOVE_DEVICE(i) \ + class_simple_device_remove(MKDEV(SVGALIB_HELPER_MAJOR, i)); + +# define SLH_SYSFS_UNREGISTER \ + class_simple_destroy(svgalib_helper_class); +#else +# define SLH_SYSFS_REGISTER +# define SLH_SYSFS_ADD_CONTROL +# define SLH_SYSFS_ADD_DEVICE(_name, _minor) +# define SLH_SYSFS_REMOVE_DEVICE(i) +# define SLH_SYSFS_UNREGISTER +#endif + #if (defined MINOR) # define my_minor(x) MINOR(x) #else diff -urpN svgalib-1.9.18/kernel/svgalib_helper/main.c svgalib-1.9.18.new/kernel/svgalib_helper/main.c --- svgalib-1.9.18/kernel/svgalib_helper/main.c 2003-10-04 12:34:20.000000000 +0200 +++ svgalib-1.9.18.new/kernel/svgalib_helper/main.c 2004-02-23 00:42:25.490682872 +0200 @@ -51,6 +51,10 @@ static int irqs[MAX_NR_DEVICES]; static devfs_handle_t devfs_handle; #endif +#if defined(KERNEL_2_6) +struct class_simple *svgalib_helper_class; +#endif + static int check_io_range(int port, int device) { return 1; } @@ -467,6 +471,7 @@ int init_module(void) { int result, i, j; struct pci_dev *dev=NULL; + char name[255]; #ifdef CONFIG_DEVFS_FS # ifndef KERNEL_2_6 devfs_handle_t slave_handle; @@ -513,9 +518,9 @@ int init_module(void) printk(KERN_INFO "svgalib_helper: Initializing, version %s\n", versionstr); - result = devfs_register_chrdev(SVGALIB_HELPER_MAJOR, "svgalib_helper", &svgalib_helper_fops); + result = devfs_register_chrdev(SVGALIB_HELPER_MAJOR, "svgalib_helper", &svgalib_helper_fops); - if (result < 0) { + if (result < 0) { printk(KERN_WARNING "svgalib_helper: can't get major %d\n",SVGALIB_HELPER_MAJOR); return result; } @@ -523,7 +528,7 @@ int init_module(void) if((sh_pci_devs[0]=kmalloc(sizeof(struct sh_pci_device),GFP_KERNEL))==NULL) { goto nomem_error; } - + memset(sh_pci_devs[0],0,sizeof(struct sh_pci_device)); num_devices=1; for(i=1;istartad=-1; #endif sh_pci_devs[num_devices]->opencount=0; + + sprintf(name, "svga%d", num_devices); + SLH_SYSFS_ADD_DEVICE(name, num_devices); + num_devices++; } } @@ -600,39 +612,51 @@ int init_module(void) init_waitqueue_head(&vsync_wait); #ifndef KERNEL_2_6 - EXPORT_NO_SYMBOLS; + EXPORT_NO_SYMBOLS; #endif - + return 0; /* succeed */ nomem_error: - for(i=0;i= KERNEL_VERSION(2,5,3) # define my_io_remap_page_range(vma, start, ofs, len, prot) \ io_remap_page_range(vma,start,ofs,len,prot) # else