On Thursday there was a work-in-progress Git branch published by AMD's Alex Deucher that provides a glimpse of the code that's being prepared for landing during the Linux 3.9 merge window in the coming weeks.
Among the changes for his Linux 3.9 Radeon "WIP" branch, which can be viewed on the FreeDesktop.org CGit, has the following changes compared to Linux 3.8:
- GPU resetting is being reworked for Radeon graphics hardware. This improved resetting mostly comes down to updating the code to better matching the recommended programming sequence for handling soft-resets with Radeon hardware. There's also now a BIOS scratch hung helper for R600+ hardware to use as a flag for the video BIOS to indicate that the GPU is hung. During the resetting process, status registers are now looked at to determine what parts of the graphics processor to actually reset.
- The command submission ioctl has been re-factored. This work is about using a common Radeon CS packet parsing function that works for all GPUs and avoids using ASIC-specific functions. This work was actually contributed by a developer at Bell Labs. "CS packet parse functions have a lot of in common across all ASICs. Implement a common function and take care of small differences between families inside the function. This patch is a prep for major refactoring and consolidation of CS parsing code."
- Switch to using "IBs for VM PT updates." This is using an indirect buffer to fill with commands to avoid exceeding the size of the ring for very large page table updates. Also the DMA ring is used now for VM PT updates as a result of this indirect buffer change.
- Radeon User-space mode-setting has been deprecated. Radeon kernel mode-setting (KMS) support has been stable now for quite some time and only KMS support is being enabled for recent and future Radeon GPUs. While Intel and Nouveau drivers killed off their UMS support years ago, the Radeon driver is now finally making the move. AMD already made the xf86-video-ati KMS-only and now they are deprecated user-space mode-setting support within the Radeon kernel driver.
Alex Deucher also noted, "We have a few other internal projects we'd like to get out for 3.9. Stay tuned." It will be interesting to see what other features they're hoping to make public for this next Linux kernel release.