Difference between revisions of "ATI Mobility Radeon X1400"

From ThinkWiki
Jump to: navigation, search
m
(Linux kernel Framebuffer driver)
Line 74: Line 74:
  
 
=== Linux kernel Framebuffer driver ===
 
=== Linux kernel Framebuffer driver ===
??
+
Works with the VESA driver at 1280x1024 (you have to append {{bootparm|vga|794}} to the kernel boot parameters)
  
 
=== ThinkPads this chip may be found in ===
 
=== ThinkPads this chip may be found in ===

Revision as of 11:20, 16 August 2006

ATI Mobility Radeon X1400

This is a ATI video adapter

Features

  • Chipset: ATI M54
  • PCI ID: 1002:1745
  • PCI Express x16
  • 128MB GDDR1 video memory

Linux X.Org driver

Not Supported

ThinkPad LCD

Display on the internal LCD works as long as you set the monitor settings correct.

External VGA port

??

SVideo port

??

DVI port

??

Proprietary ATI driver

Proprietary fglrx driver version 8.24.8 adds support for the x1400 chipset (according to ATI changelog). It works, including dualhead, 3d and video (XV) acceleration, when using the fglrx kernel module. (Without it, you get screen corruption including underlined mouse pointers.)

Sample "Device" section for xorg.conf:

Section "Device"
       Identifier  "ATI Graphics Adapter 0"
       Driver      "fglrx"
       Option      "ForceMonitors" "lvds,crt1"
       Option      "Centermode" "off"
       Option      "VideoOverlay" "on"
       Option      "OpenGLOverlay" "off"
       Option      "OverlayOnCRTC2" "0"
       Option      "PseudoColorVisuals" "off"
       Option      "HSync2" "31-64"
       Option      "VRefresh2" "56-75"
       Option      "UseFastTLS" "off"
       Option      "Mode2" "1280x1024,1024x768,800x600,640x480"
       BusID       "PCI:1:0:0"
EndSection

The kernel module doesn't work out of the box with the 2.6.16 kernel, you get undefined symbols such as module_get_request when inserting the module. The following patch to firegl_public.c fixes it (from http://www.stanchina.net/~flavio/debian/fglrx-archive/msg01158.html ):

--- firegl_public.c-orig        2006-02-23 14:54:16.386740016 -0600
+++ firegl_public.c     2006-02-23 14:56:38.054203288 -0600
@@ -361,13 +361,15 @@
 } firegl_drm_stub_info_t;
 static firegl_drm_stub_info_t firegl_stub_info;

-#if LINUX_VERSION_CODE < 0x020400
+#if LINUX_VERSION_CODE > 0x02060F
 struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
 #define inter_module_put(x)
 #define inter_module_unregister(x)
 #define inter_module_get_request(x,y)   firegl_stub_pointer
 #define inter_module_register(x,y,z)    do { firegl_stub_pointer = z; } while (0)
+#endif
 /* This is a kludge for backward compatibility that is only useful in DRM(stub_open) */
+#if LINUX_VERSION_CODE < 0x020400
 #define fops_put(fops)      MOD_DEC_USE_COUNT
 #define fops_get(fops)      (fops); MOD_INC_USE_COUNT
 #endif // LINUX_VERSION_CODE < 0x020400

Linux kernel Framebuffer driver

Works with the VESA driver at 1280x1024 (you have to append vga=794 to the kernel boot parameters)

ThinkPads this chip may be found in