Wanna see this logo while booting your 2.6 kernel? Click here!

16.12.2005 14:59

New Matrox Parhelia Driver (1.4.3) _officially_ released


Exactly before christmas, Matrox released a new mtxdriver.
I downloaded it already, but - like always - before testing the driver, I looked at the sourcecode and especially at the diff output between my latest 1.4.2.2 driver modifications and the new 1.4.3 driver.

I thought Matrox would honor my and monty's changes this time, but unfortunately, they didn't. Here are some "funny" excerpts from the diff output between those two versions:

Let's start with a very nice one:

-File Name:      mtx_agp.c
+    File Name:      mtx_agp.c

-Description:    AGP driver backend control
+    Description:    AGP driver backend control

-References:     None.
-
-Author:         Karl Lessard    <klessard@matrox.com>
-2.6.x Updates:  Alexander Griesser <matrox@tuxx-home.at>
-               Christopher Montgomery <monty@xiph.org>
+    References:     None.

Followed by this one:

     if ( ! agp_backend )
     {
         MTX_ERROR("Failed to retrieve agpgart symbol table\n");
-        mtx_agp_cleanup();
-        return -ENODEV;
+        goto cleanup;
     }
 #endif
-
     return 0;
+
+cleanup:
+
+    mtx_agp_cleanup();
+    return -ENODEV;
 }
-/* this piece can't be done until we have a bridge, that's not
- * discovered until the device probe step. */
+
 int mtx_agp_init_finish(void)
 {
-
     /* Copy AGP information */


-    mtx_agp_chipset_info_print( &agp_drv ->kern_info );
+    mtx_agp_chipset_info_print( &agp_drv->kern_info );


I don't understand this one:
The use of #if instead of #ifdef causes compiler warnings on some platforms. OK, they're just warnings, but if it is so easy to get rid of them, why don't do it?
-#ifdef MEMORY_STATS
+#if MEMORY_STATS

 STACK_LINKAGE void* ClientMemStatsAlloc(size_t size, const char* filename, int line)
 {
@@ -58,7 +60,7 @@
 {
     mtx_mem_stats_free( ptr );
 }
-#endif  /* #ifdef MEMORY_STATS */
+#endif

This one is really neat (no, we don't need no comments in our drivers!):

-File Name:      mtx_dev.c
+    File Name:      mtx_dev.c

-Description:    MTX devices manipulation. Supported devices detected on the PCI buses
-                are stored in a global list of mtx_dev.
+    Description:    MTX devices manipulation. Supported devices detected on the PCI buses
+                    are stored in a global list of mtx_dev.

-References:     None.
-
-Author:         Karl Lessard    <klessard@matrox.com>
-2.6.x-updates: Christopher Montgomery <monty@xiph.org>
+    References:     None.

     Copyright (c) 2001, Matrox Graphics Inc.
     All Rights Reserved.
@@ -274,14 +271,10 @@
             MTX_WARNING("Fail to acquire control of AGP driver. "
                         "AGP tranfers are therefore disabled\n");
         }
-
-       /* *now* we have a bridge and can handle the rest of the setup
-        * initially done in mty_agp_init() */
-       if(mtx_agp_init_finish()<0){
-         MTX_WARNING("Fail to finish setup of AGP driver. "
-                     "AGP transfers are therefore disabled\n");
-       }
-
+        else if(mtx_agp_init_finish()<0){
+            MTX_WARNING("Fail to finish setup of AGP driver. "
+                        "AGP transfers are therefore disabled\n");
+        }
     } else {


Maybe I'm too fussy about that, but as long as Matrox does not honor the work of all people outside their company who are willing to work on this driver and help other people having problems with this driver, the driver situation itself will not get better.

Now I'm going to test the new driver (although there are some posts in the Matrox technical support forums that this driver does not work at all). Let's have a look...