Kernel Log: Drivers for new Radeon GPUs
by Thorsten Leemhuis
Soon, the kernel will support several AMD graphics cores that are used in recent Radeon graphics cards and in various upcoming processors. In systems with Intel graphics, using hibernation can cause memory corruption. The development of Linux 3.4 has started.
AMD developer Alex Deucher has released a patch collection that adds support for the graphics cores in the "Southern Islands" (SI) and "Trinity" (TN) families of GPUs (graphics processing units) to the Linux kernel's DRM and KMS drivers. The SI generation includes the graphics chips in the mid-range and high-end Radeon HD 7900 and 7700 models that were introduced by AMD just before Christmas and in mid-February; the Trinity is a processor with integrated graphics core that will probably be introduced in the coming weeks to supersede previous Llano processors in AMD's A series.
Deucher has announced that matching userspace support is due to follow; however, he didn't say when drivers for Mesa 3D and X.org are going to be finished. Everything required to provide 2D and 3D support with the Trinity CPU "Aruba" has already been included in Mesa and in X.org's Radeon driver – the required adjustments were likely easy to implement as the Trinity's graphics core is closely related to older cores that Mesa 3D and X.org have supported for some time. However, some sources indicated that it will still be a while before an open source 3D driver for SI graphics cores becomes available.
It looks like DRM/KMS support for the new Radeon graphics cores will make it into Linux 3.4. Usually, any major changes such as those introduced by Deucher are supposed to become part of the Linux-Next development branch before the developers start working on a new kernel version to make sure big changes are tested before they are integrated into Linux mainline during the merge window. However, Dave Airlie indicated that he will submit the drivers for integration into Linux mainline soon, hence they will likely become part of Linux 3.4, which will probably be released around the end of May.
As there are no open source drivers for SI graphics cores, Linux distributions currently configure the standard Vesa drivers which offer only basic functionality. AMD's proprietary driver has supported the Radeon HD 7970's graphics chip since these cards were first introduced.
Since the release of Linux 3.3 at the beginning of the week, the first bugs that the kernel hackers had overlooked during development have already been found – for instance, the DVB-S support for the WinTV Nova HD-S2 and similar cards appears to have problems. The remedy is a small patch that will likely be integrated into the Linux 3.3-based stable kernels.
Meanwhile, various kernel developers are investigating the cause of a flaw that has apparently existed in several previous kernel versions and causes memory areas to be corrupted after a system wakes up from a hibernate/software suspend state. The culprit appears to be the i915 DRM/KMS driver for recent Intel graphics cores, or the hardware it supports (1, 2); depending on when it happens and what the modified memory areas were used for, this bug can cause system crashes, miscalculations or file corruptions. Fedora developer Dave Jones provides some details in a blog posting. Jones took a closer look at the problem because several Fedora users have reported memory corruption issues after their systems come out of hibernation; apparently, the problem also affects other distributions and may already have existed since mid-2011.
Kernel hacker Matthew Garrett, who occasionally blogs and tweets about problems with ACPI and (U)EFI, has recently dealt with memory corruption and describes his ordeal in a blog post entitled "More ways for firmware to screw you". If you don't want to work your way through to his explanation, here's the spoiler: the memory corruptions that led to the observed boot problems on a Mac were caused by an EFI driver that activated the Wi-Fi chip; until the Linux Wi-Fi driver was loaded, the driver sometimes continued to modify RAM areas via DMA even though the Linux kernel was supposed to have full control of the system and was using these areas for other purposes.
About two weeks ago, the VMware developers released version 12.0.0 of their xf86-video-vmware X.org driver. Together with Linux 3.2's Vmwgfx DRM/KMS driver, a reasonably current Libdrm and Mesa 8.0, this driver was supposed to offer 3D acceleration in VMware's Workstation 8.0, Fusion 4.0 and Player 4.0 virtualisation products; however, because of a bug, this functionality has only become available with version 12.0.1, which was released a week later. As all the aforementioned 3D components are released under open source licences, the Linux distributions that are due to become available in the next few months will probably include these components; as these distributions also tend to offer the VMware mouse driver that was updated in parallel with the new graphics driver, the graphical user interface of guest systems should be fully functional without the need for users to install any additional drivers on the guest system.
However, the VMware drivers don't usually accelerate the Xrender X extension. A page on the X.org wiki says that the interactivity experience is nevertheless good, for example, with effects that are created via KWin; the page also explains various other aspects of these drivers.