ATI Mobility Radeon X1400

From ThinkWiki
Revision as of 21:54, 5 May 2006 by KlausWeidner (Talk | contribs) (Proprietary ATI driver)
Jump to: navigation, search

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

??

ThinkPads this chip may be found in