ATI Mobility Radeon X1400

From ThinkWiki
Revision as of 16:17, 5 January 2007 by Esmil (Talk | contribs) (ATI Mobility Radeon X1400)
Jump to: navigation, search

ATI Mobility Radeon X1400

This is an ATI video adapter.

Features

  • Chipset: ATI M54
  • PCI ID: 1002:7145
  • 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


XVideo support using the VideoOverlay option may not work with recent drivers. With version 8.29.6 of the fglrx driver, you can instead use

       Option          "TexturedVideo" "on"

Use the xvinfo utility to verify if XVideo support is available.

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