Re: 3dfx voodoo5 framebuffer patch...(w/actual patch this time)

2000-10-09 Thread Aaron Botsis


whoops. Here's a resend with the actual patch attached. :)
one of those days I guess?

Attached is a patch to include 3dfx voodoo5 framebuffer support.
Looking for comments.

Doesn't do much other than check for the voodoo5 device id. It also
doesn't do anything voodoo5 specific. (voodoo5 is apparently backward
compatible to the voodoo3) But I changed some of the code to make it
easier to add future voodoo cards that may not be backward compatible.

It may or may not work with the voodoo4. It surely won't work if the
voodoo4's pci devid is different from the voodoo5's...

If someone wants to send me an lspci of their voodoo4, I'll add support
for it as well.




~aaron
bash# modprobe rd rd_size=131070 ; mkswap /dev/ram0 ; swapon /dev/ram0


diff -ru linux/CREDITS linux.apb/CREDITS
--- linux/CREDITS   Tue Sep 19 19:47:06 2000
+++ linux.apb/CREDITS   Fri Oct  6 00:00:05 2000
@@ -343,6 +343,12 @@
 S: Minneapolis, MN  55410
 S: USA
 
+N: Aaron Botsis
+E: [EMAIL PROTECTED]
+D: Added voodoo5 support to tdfxfb.c and pci headers
+P: 1024D/59E50418 A8AD 6082 14C9 41E0 F86E  8DEE 37F9 C3A6 59E5 0418
+S: USA
+
 N: Marc Boucher
 E: [EMAIL PROTECTED]
 P: CA 67 A5 1A 38 CE B6 F2  D5 83 51 03 D2 9C 30 9E  CE D2 DD 65
diff -ru linux/drivers/video/tdfxfb.c linux.apb/drivers/video/tdfxfb.c
--- linux/drivers/video/tdfxfb.cMon Jul 24 20:24:26 2000
+++ linux.apb/drivers/video/tdfxfb.cFri Oct  6 00:26:43 2000
@@ -8,7 +8,7 @@
  * All rights reserved
  *
  * Created  : Thu Sep 23 18:17:43 1999, hmallat
- * Last modified: Tue Nov  2 21:19:47 1999, hmallat
+ * Last modified: Fri Sep  8 00:24:14 2000, abotsis
  *
  * Lots of the information here comes from the Daryll Strauss' Banshee 
  * patches to the XF86 server, and the rest comes from the 3dfx
@@ -38,9 +38,12 @@
  * - support other architectures (PPC, Alpha); does the fact that the VGA
  *   core can be accessed only thru I/O (not memory mapped) complicate
  *   things?
+ * - add voodoo4 support. The driver might even work as-is. Depends on whether
+ *   or not the pci dev. id is different for voodoo4s.
  *
  * Version history:
  *
+ * 0.1.4 (released 2000-10-06) added voodoo5 support by Aaron Botsis.
  * 0.1.3 (released 1999-11-02) added Attila's panning support, code
  *reorg, hwcursor address page size alignment
  * (for mmaping both frame buffer and regs),
@@ -248,6 +251,8 @@
 
 #define BANSHEE_MAX_PIXCLOCK 27.0
 #define VOODOO3_MAX_PIXCLOCK 30.0
+#define VOODOO5_MAX_PIXCLOCK 30.0
+
 
 struct banshee_reg {
   /* VGA rubbish */
@@ -944,7 +949,8 @@
   int sgram_p = 0;
 
   if(!((fb_info.dev == PCI_DEVICE_ID_3DFX_BANSHEE) ||
-   (fb_info.dev == PCI_DEVICE_ID_3DFX_VOODOO3)))
+   (fb_info.dev == PCI_DEVICE_ID_3DFX_VOODOO3) ||
+   (fb_info.dev == PCI_DEVICE_ID_3DFX_VOODOO5)))
 return 0;
 
   draminit0 = tdfx_inl(DRAMINIT0);  
@@ -1463,6 +1469,7 @@
   switch(i->dev) {
   case PCI_DEVICE_ID_3DFX_BANSHEE:
   case PCI_DEVICE_ID_3DFX_VOODOO3:
+  case PCI_DEVICE_ID_3DFX_VOODOO5:
 par->width   = (var->xres + 15) & ~15; /* could sometimes be 8 */
 par->width_virt  = par->width;
 par->height  = var->yres;
@@ -1585,11 +1592,17 @@
 
   switch(info->dev) {
   case PCI_DEVICE_ID_3DFX_BANSHEE:
+strcpy(fix->id, "3Dfx Banshee");
+goto CONTINUE;
   case PCI_DEVICE_ID_3DFX_VOODOO3:
-strcpy(fix->id, 
-  info->dev == PCI_DEVICE_ID_3DFX_BANSHEE 
-  ? "3Dfx Banshee"
-  : "3Dfx Voodoo3");
+strcpy(fix->id, "3Dfx Voodoo3");
+goto CONTINUE;
+  case PCI_DEVICE_ID_3DFX_VOODOO5:
+strcpy(fix->id, "3Dfx Voodoo5");
+goto CONTINUE;
+
+  CONTINUE:
+  
 fix->smem_start  = info->bufbase_phys;
 fix->smem_len= info->bufbase_size;
 fix->mmio_start  = info->regbase_phys;
@@ -1852,20 +1865,29 @@
 int __init tdfxfb_init(void) {
   struct pci_dev *pdev = NULL;
   struct fb_var_screeninfo var;
+  char name[8];
   
   while ((pdev = pci_find_device(PCI_VENDOR_ID_3DFX, PCI_ANY_ID, pdev))) {
 if(((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY) &&
((pdev->device == PCI_DEVICE_ID_3DFX_BANSHEE) ||
-   (pdev->device == PCI_DEVICE_ID_3DFX_VOODOO3))) {
-  char* name = pdev->device == PCI_DEVICE_ID_3DFX_BANSHEE
-   ? "Banshee"
-   : "Voodoo3";
+   (pdev->device == PCI_DEVICE_ID_3DFX_VOODOO3) ||
+   (pdev->device == PCI_DEVICE_ID_3DFX_VOODOO5) )) {
+  switch (pdev->device) {
+  case PCI_DEVICE_ID_3DFX_BANSHEE:
+   strcpy(name, "Banshee");
+   fb_info.max_pixclock=BANSHEE_MAX_PIXCLOCK;
+break;
+  case PCI_DEVICE_ID_3DFX_VOODOO3:
+   strcpy(name, "Voodoo3");
+   fb_info.max_pixclock=VOODOO3_MAX_PIXCLOCK;
+   break;
+  case PCI_DEVICE_ID_3DFX_VOODOO5:
+   strc

3dfx voodoo5 framebuffer patch...

2000-10-09 Thread Aaron Botsis


Attached is a patch to include 3dfx voodoo5 framebuffer support.
Looking for comments.

Doesn't do much other than check for the voodoo5 device id. It also
doesn't do anything voodoo5 specific. (voodoo5 is apparently backward
compatible to the voodoo3) But I changed some of the code to make it
easier to add future voodoo cards that may not be backward compatible.

It may or may not work with the voodoo4. It surely won't work if the
voodoo4's pci devid is different from the voodoo5's...

If someone wants to send me an lspci of their voodoo4, I'll add support
for it as well.


~aaron
bash# modprobe rd rd_size=131070 ; mkswap /dev/ram0 ; swapon /dev/ram0
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



3dfx voodoo5 framebuffer patch...

2000-10-09 Thread Aaron Botsis


Attached is a patch to include 3dfx voodoo5 framebuffer support.
Looking for comments.

Doesn't do much other than check for the voodoo5 device id. It also
doesn't do anything voodoo5 specific. (voodoo5 is apparently backward
compatible to the voodoo3) But I changed some of the code to make it
easier to add future voodoo cards that may not be backward compatible.

It may or may not work with the voodoo4. It surely won't work if the
voodoo4's pci devid is different from the voodoo5's...

If someone wants to send me an lspci of their voodoo4, I'll add support
for it as well.


~aaron
bash# modprobe rd rd_size=131070 ; mkswap /dev/ram0 ; swapon /dev/ram0
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: 3dfx voodoo5 framebuffer patch...(w/actual patch this time)

2000-10-09 Thread Aaron Botsis


whoops. Here's a resend with the actual patch attached. :)
one of those days I guess?

Attached is a patch to include 3dfx voodoo5 framebuffer support.
Looking for comments.

Doesn't do much other than check for the voodoo5 device id. It also
doesn't do anything voodoo5 specific. (voodoo5 is apparently backward
compatible to the voodoo3) But I changed some of the code to make it
easier to add future voodoo cards that may not be backward compatible.

It may or may not work with the voodoo4. It surely won't work if the
voodoo4's pci devid is different from the voodoo5's...

If someone wants to send me an lspci of their voodoo4, I'll add support
for it as well.




~aaron
bash# modprobe rd rd_size=131070 ; mkswap /dev/ram0 ; swapon /dev/ram0


diff -ru linux/CREDITS linux.apb/CREDITS
--- linux/CREDITS   Tue Sep 19 19:47:06 2000
+++ linux.apb/CREDITS   Fri Oct  6 00:00:05 2000
@@ -343,6 +343,12 @@
 S: Minneapolis, MN  55410
 S: USA
 
+N: Aaron Botsis
+E: [EMAIL PROTECTED]
+D: Added voodoo5 support to tdfxfb.c and pci headers
+P: 1024D/59E50418 A8AD 6082 14C9 41E0 F86E  8DEE 37F9 C3A6 59E5 0418
+S: USA
+
 N: Marc Boucher
 E: [EMAIL PROTECTED]
 P: CA 67 A5 1A 38 CE B6 F2  D5 83 51 03 D2 9C 30 9E  CE D2 DD 65
diff -ru linux/drivers/video/tdfxfb.c linux.apb/drivers/video/tdfxfb.c
--- linux/drivers/video/tdfxfb.cMon Jul 24 20:24:26 2000
+++ linux.apb/drivers/video/tdfxfb.cFri Oct  6 00:26:43 2000
@@ -8,7 +8,7 @@
  * All rights reserved
  *
  * Created  : Thu Sep 23 18:17:43 1999, hmallat
- * Last modified: Tue Nov  2 21:19:47 1999, hmallat
+ * Last modified: Fri Sep  8 00:24:14 2000, abotsis
  *
  * Lots of the information here comes from the Daryll Strauss' Banshee 
  * patches to the XF86 server, and the rest comes from the 3dfx
@@ -38,9 +38,12 @@
  * - support other architectures (PPC, Alpha); does the fact that the VGA
  *   core can be accessed only thru I/O (not memory mapped) complicate
  *   things?
+ * - add voodoo4 support. The driver might even work as-is. Depends on whether
+ *   or not the pci dev. id is different for voodoo4s.
  *
  * Version history:
  *
+ * 0.1.4 (released 2000-10-06) added voodoo5 support by Aaron Botsis.
  * 0.1.3 (released 1999-11-02) added Attila's panning support, code
  *reorg, hwcursor address page size alignment
  * (for mmaping both frame buffer and regs),
@@ -248,6 +251,8 @@
 
 #define BANSHEE_MAX_PIXCLOCK 27.0
 #define VOODOO3_MAX_PIXCLOCK 30.0
+#define VOODOO5_MAX_PIXCLOCK 30.0
+
 
 struct banshee_reg {
   /* VGA rubbish */
@@ -944,7 +949,8 @@
   int sgram_p = 0;
 
   if(!((fb_info.dev == PCI_DEVICE_ID_3DFX_BANSHEE) ||
-   (fb_info.dev == PCI_DEVICE_ID_3DFX_VOODOO3)))
+   (fb_info.dev == PCI_DEVICE_ID_3DFX_VOODOO3) ||
+   (fb_info.dev == PCI_DEVICE_ID_3DFX_VOODOO5)))
 return 0;
 
   draminit0 = tdfx_inl(DRAMINIT0);  
@@ -1463,6 +1469,7 @@
   switch(i-dev) {
   case PCI_DEVICE_ID_3DFX_BANSHEE:
   case PCI_DEVICE_ID_3DFX_VOODOO3:
+  case PCI_DEVICE_ID_3DFX_VOODOO5:
 par-width   = (var-xres + 15)  ~15; /* could sometimes be 8 */
 par-width_virt  = par-width;
 par-height  = var-yres;
@@ -1585,11 +1592,17 @@
 
   switch(info-dev) {
   case PCI_DEVICE_ID_3DFX_BANSHEE:
+strcpy(fix-id, "3Dfx Banshee");
+goto CONTINUE;
   case PCI_DEVICE_ID_3DFX_VOODOO3:
-strcpy(fix-id, 
-  info-dev == PCI_DEVICE_ID_3DFX_BANSHEE 
-  ? "3Dfx Banshee"
-  : "3Dfx Voodoo3");
+strcpy(fix-id, "3Dfx Voodoo3");
+goto CONTINUE;
+  case PCI_DEVICE_ID_3DFX_VOODOO5:
+strcpy(fix-id, "3Dfx Voodoo5");
+goto CONTINUE;
+
+  CONTINUE:
+  
 fix-smem_start  = info-bufbase_phys;
 fix-smem_len= info-bufbase_size;
 fix-mmio_start  = info-regbase_phys;
@@ -1852,20 +1865,29 @@
 int __init tdfxfb_init(void) {
   struct pci_dev *pdev = NULL;
   struct fb_var_screeninfo var;
+  char name[8];
   
   while ((pdev = pci_find_device(PCI_VENDOR_ID_3DFX, PCI_ANY_ID, pdev))) {
 if(((pdev-class  16) == PCI_BASE_CLASS_DISPLAY) 
((pdev-device == PCI_DEVICE_ID_3DFX_BANSHEE) ||
-   (pdev-device == PCI_DEVICE_ID_3DFX_VOODOO3))) {
-  char* name = pdev-device == PCI_DEVICE_ID_3DFX_BANSHEE
-   ? "Banshee"
-   : "Voodoo3";
+   (pdev-device == PCI_DEVICE_ID_3DFX_VOODOO3) ||
+   (pdev-device == PCI_DEVICE_ID_3DFX_VOODOO5) )) {
+  switch (pdev-device) {
+  case PCI_DEVICE_ID_3DFX_BANSHEE:
+   strcpy(name, "Banshee");
+   fb_info.max_pixclock=BANSHEE_MAX_PIXCLOCK;
+break;
+  case PCI_DEVICE_ID_3DFX_VOODOO3:
+   strcpy(name, "Voodoo3");
+   fb_info.max_pixclock=VOODOO3_MAX_PIXCLOCK;
+   break;
+  case PCI_DEVICE_ID_3DFX_VOODOO5:
+   strcpy(name, "Voodoo5");
+   fb_info.max_pixclock=VOODOO5_MAX_PIXCLOCK;
+   break;
+  }
 
   fb_info.d