[parisc-linux-cvs] 2.5.70-pa6: fix stifb module loading/unloading

Helge Deller deller@gmx.de
Sun, 1 Jun 2003 14:28:39 +0200


--Boundary-00=_3Ff2+NcbXvAvUCb
Content-Type: text/plain;
  charset="iso-8859-15"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Sunday 01 June 2003 14:26, Helge Deller wrote:
> CVSROOT:	/var/cvs
> Module name:	linux-2.5
> Changes by:	deller	03/06/01 06:26:17
>
> Modified files:
> 	.              : Makefile
> 	arch/parisc/kernel: parisc_ksyms.c
> 	drivers/video  : stifb.c
> 	drivers/video/console: sticore.c
>
> Log message:
> 2.5.70-pa6:
> - exported more symbols (needed for stifb as module)
> - fix loading/unloading of stifb module


--Boundary-00=_3Ff2+NcbXvAvUCb
Content-Type: text/plain;
  charset="iso-8859-15";
  name="diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="diff"

Index: Makefile
===================================================================
RCS file: /var/cvs/linux-2.5/Makefile,v
retrieving revision 1.118
diff -u -p -r1.118 Makefile
--- Makefile	1 Jun 2003 11:14:22 -0000	1.118
+++ Makefile	1 Jun 2003 12:24:47 -0000
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 5
 SUBLEVEL = 70
-EXTRAVERSION = -pa5
+EXTRAVERSION = -pa6
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
Index: arch/parisc/kernel/parisc_ksyms.c
===================================================================
RCS file: /var/cvs/linux-2.5/arch/parisc/kernel/parisc_ksyms.c,v
retrieving revision 1.19
diff -u -p -r1.19 parisc_ksyms.c
--- arch/parisc/kernel/parisc_ksyms.c	1 Jun 2003 01:01:44 -0000	1.19
+++ arch/parisc/kernel/parisc_ksyms.c	1 Jun 2003 12:24:47 -0000
@@ -77,6 +77,8 @@ EXPORT_SYMBOL($global$);
 
 EXPORT_SYMBOL(register_parisc_driver);
 EXPORT_SYMBOL(unregister_parisc_driver);
+EXPORT_SYMBOL(print_pci_hwpath);
+EXPORT_SYMBOL(print_pa_hwpath);
 EXPORT_SYMBOL(pdc_iodc_read);
 EXPORT_SYMBOL(pdc_tod_read);
 EXPORT_SYMBOL(pdc_tod_set);
@@ -107,6 +109,8 @@ EXPORT_SYMBOL(outsl);
 #include <asm/cache.h>
 EXPORT_SYMBOL(flush_kernel_dcache_range_asm);
 EXPORT_SYMBOL(flush_kernel_dcache_page);
+EXPORT_SYMBOL(flush_data_cache_local);
+EXPORT_SYMBOL(flush_kernel_icache_range_asm);
 EXPORT_SYMBOL(__flush_dcache_page);
 EXPORT_SYMBOL(flush_all_caches);
 EXPORT_SYMBOL(dcache_stride);
@@ -136,6 +140,7 @@ EXPORT_SYMBOL(csum_partial_copy_from_use
 EXPORT_SYMBOL(pdc_add_valid);
 EXPORT_SYMBOL(pdc_lan_station_id);
 EXPORT_SYMBOL(pdc_get_initiator);
+EXPORT_SYMBOL(pdc_sti_call);
 
 extern void $$divI(void);
 extern void $$divU(void);
Index: drivers/video/stifb.c
===================================================================
RCS file: /var/cvs/linux-2.5/drivers/video/stifb.c,v
retrieving revision 1.13
diff -u -p -r1.13 stifb.c
--- drivers/video/stifb.c	27 May 2003 17:26:32 -0000	1.13
+++ drivers/video/stifb.c	1 Jun 2003 12:24:49 -0000
@@ -112,6 +112,7 @@ struct stifb_info {
 	int deviceSpecificConfig;
 };
 
+static int __initdata bpp = 8;	/* parameter from modprobe */
 static int __initdata stifb_force_bpp[MAX_STI_ROMS];
 
 /* ------------------- chipset specific functions -------------------------- */
@@ -1337,6 +1338,8 @@ stifb_init(void)
 		sti = sti_get_rom(i);
 		if (!sti)
 			break;
+		if (bpp > 0)
+			stifb_force_bpp[i] = bpp;
 		stifb_init_fb(sti, stifb_force_bpp[i]);
 	}
 	return 0;
@@ -1356,8 +1359,14 @@ stifb_cleanup(void)
 		sti = sti_get_rom(i);
 		if (!sti)
 			break;
-		if (sti->info)
+		if (sti->info) {
+			struct fb_info *info = sti->info;
 			unregister_framebuffer(sti->info);
+			release_mem_region(info->fix.mmio_start, info->fix.mmio_len);
+		        release_mem_region(info->fix.smem_start, info->fix.smem_len);
+		        fb_dealloc_cmap(&info->cmap);
+		        kfree(info); 
+		}
 		sti->info = NULL;
 	}
 }
@@ -1373,9 +1382,10 @@ stifb_setup(char *options)
 	if (strncmp(options, "bpp", 3) == 0) {
 		options += 3;
 		for (i = 0; i < MAX_STI_ROMS; i++) {
-			if (*options++ == ':')
+			if (*options++ == ':') {
 				stifb_force_bpp[i] = simple_strtoul(options, &options, 10);
-			else
+				bpp = -1;
+			} else
 				break;
 		}
 	}
@@ -1391,7 +1401,7 @@ module_exit(stifb_cleanup);
 
 MODULE_AUTHOR("Helge Deller <deller@gmx.de>, Thomas Bogendoerfer <tsbogend@alpha.franken.de>");
 MODULE_DESCRIPTION("Framebuffer driver for HP's NGLE series graphics cards in HP PARISC machines");
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL v2");
 
 MODULE_PARM(bpp, "i");
 MODULE_PARM_DESC(mem, "Bits per pixel (default: 8)");
Index: drivers/video/console/sticore.c
===================================================================
RCS file: /var/cvs/linux-2.5/drivers/video/console/sticore.c,v
retrieving revision 1.13
diff -u -p -r1.13 sticore.c
--- drivers/video/console/sticore.c	1 Jun 2003 11:14:23 -0000	1.13
+++ drivers/video/console/sticore.c	1 Jun 2003 12:24:51 -0000
@@ -1076,6 +1076,9 @@ struct sti_struct * sti_get_rom(unsigned
 
 	return sti_roms[index-1];
 }
-
 EXPORT_SYMBOL(sti_get_rom);
+
+MODULE_AUTHOR("Philipp Rumpf, Helge Deller, Thomas Bogendoerfer");
+MODULE_DESCRIPTION("Core STI driver for HP's NGLE series graphics cards in HP PARISC machines");
+MODULE_LICENSE("GPL v2");
 

--Boundary-00=_3Ff2+NcbXvAvUCb--