Kernel Log: Coming in 2.6.35 (Part 1) - Graphics
by Thorsten Leemhuis
Power management features for Radeon graphics chips, the first groundwork for supporting 3D with Evergreen GPUs, H264 decoding in Intel's Ironlake driver and the support of Intel's next generation of desktop and notebook chips, are some of the major graphics driver advancements of Linux 2.6.35.
Linus Torvalds went on a two-week holiday in mid-June, which meant that no changes were integrated into the main development branch of Linux during that time. Torvalds started integrating patches again at the end of last month and released the fourth release candidate of Linux 2.6.35 last Sunday. In the release email for version 2.6.35-rc4, he indicated that focussing on bug fixes more strictly than usual worked quite well in this phase of the development cycle.
Therefore, RC4 of Linux 2.6.35 should match the final version even more closely than the RCs of previous versions, unless a bug is found which is serious enough to prompt the kernel developers to remove or temporarily suspend one of the major changes. Since this only happens very rarely, the Kernel Log can already provide a comprehensive overview of the most important changes of the forthcoming kernel release, which is expected to arrive in August.
We will publish the usual multi-part series of articles that will eventually cover all the kernel's individual functional areas. This first part of the "Coming in 2.6.35" mini series describes the changes to the kernel's graphics hardware support. Over the coming weeks, further articles will cover the advancements in terms of network support, storage hardware, file systems, architecture code, drivers and various other areas.
AMD
The rudimentary support of the power management functions of Radeon graphics chips already introduced in Linux 2.6.34 has been extended and optimised considerably in 2.6.35. How aggressive the driver's power saving efforts will be can be determined via /sys/class/drm/card0/device/power_method. For instance, writing "dynpm" to this file activates the fully automatic dynamic power management. Alternatively, by writing "profile" to the file, users can enable one of four profiles in the file /sys/class/drm/card0/device/power_profile: "default" enables the standard GPU and memory clocks, "low" activates a power-saving mode, "high" a performance mode, and "auto" automatically switches between "low" and "high" depending on the power supply. Further details about the improvements and options can be found in the commit comment. In his Git-Pull request, however, DRM maintainer Dave Airlie explains that although the support of the run-time power management functions requires more work, this support has now been integrated into the kernel so developers can obtain feedback upstream; he also mentioned that the dynamic power saving mode, "dynpm", may cause screen glitches.
A rudimentary Command Stream Parser for the Evergreen graphics chips in the Radeon 5000 series has also been integrated by the kernel developers. It's a prerequisite for 3D support; according to the commit comment, developers are soon to release Mesa code that is based on the CS parser. The developers have also added IRQ support for Evergreen GPUs, which should allow them to implement features such as monitor detection without polling and eventually also page flipping.
Intel
The kernel hackers have also merged various changes to the driver for the graphics cores used in many Intel motherboard and notebook chip-sets. This means that the driver now includes all the basics (such as the bit stream decoder ring buffer) required for using the H264 decoding functions offered by Ironlake CPUs, which have a graphics core. New userland software such as the libva as well as a player software which supports this library is also required to use these functions; further details and download links can be found on a web page maintained by Intel.
The driver now also supports a PCH code-named Cougar Point, which it's rumoured Intel plans to introduce together with its Sandy Bridge processors early next year. Further new additions include multi-function SDVO device support as well as the support of memory self-refresh with Ironlake processors – according to tests by the developer, the latter reduced a test netbook's power consumption by one Watt.
Independent
Intel employee Jesse Barnes has introduced some documentation which is aimed at developers and explains various internal aspects of the DRM subsystem to assist newcomers with the development of DRM drivers. The kernel is now said to cope better when no monitor is connected. Various further new additions are listed in the Git-Pull requests by DRM maintainer Dave Airlie and by Eric Anholt, who maintains the Intel drivers. There have been hardly any noteworthy improvements to the fairly young Nouveau driver for NVIDIA graphics chips in this development cycle.
Another component submitted for integration into 2.6.35 was a driver for Intel's Intelligent Power Sharing (IPS). This technology, which is used in mobile CPUs in the Ironlake series such as the Core i5, allows the graphics core to step up its core frequency in order to increase graphics performance while the CPU's x86 processor cores are not working to full capacity and the processor has not yet reached its specified maximum thermal budget. However, the code was submitted after the release of RC2 and was, therefore, rejected by Torvalds – this was not the only rejection in the current development cycle. As already mentioned earlier, Torvalds has been much stricter than he used to be, and it seems likely he will keep up this strategy in the future.
Minor gems
Many further minor, but by no means insignificant, changes can be found in the list below, which contains the commit headers referring to the respective change. Like many of the references in the text above, the links point to the relevant commit in the web front end of the Git branch for the "official" kernel sources maintained by Linus Torvalds at kernel.org. The commit comments available at these links and the patches themselves provide extensive further information on the respective changes.
Every link is preceded by various letters and numbers in square brackets. The letter "C" identifies patches that modify Kconfig files, which contain the help texts and configuration options displayed by "make menuconfig", "make xconfig" and similar tools during kernel configuration. "D" is used for patches that modify the documentation available under Documentation/ in the kernel branch. "N" identifies changes which create a new file. The numbers provide a rough idea of the patch size: For instance, "1" is used for changes between 10 and 20 KBytes including comment, "2" for patches between 20 and 30 KBytes; changes without a number are less than 10 KBytes, while patches marked "9" are 90 KBytes or more.
- [
- [
C N
] backlight: Add Cirrus EP93xx backlight driver - [
C N
] backlight: Add pcf50633 backlight driver - [
C
] backlight: adp8860: add support for ADP8861 & ADP8863 - [
- [
1
] drm/edid: Add secondary GTF curve support - [
- [
C 3
] drm/fbdev: rework output polling to be back in the core. (v4) - [
- [
2
] drm/i915: add power monitoring support - [
- [
- [
- [
3
] drm/i915: implement multifunction SDVO device support - [
N5
] drm/i915: introduce intel_ring_buffer structure (V2) - [
N3
] drm/i915: Move ringbuffer-related code to intel_ringbuffer.c. - [
- [
C
] drm/kms/fb: add polling support for when nothing is connected. - [
2
] drm/kms/fb: use slow work mechanism for normal hotplug also. - [
- [
N
] drm/nv50: support fractional feedback divider on newer chips - [
- [
- [
1
] drm/radeon/kms: add support for gui idle interrupts (v4) - [
- [
N1
] drm/radeon/kms/evergreen: add gart support - [
- [
- [
2
] drm/radeon/kms/evergreen: implement gfx init - [
2
] drm/radeon/kms: fence cleanup + more reliable GPU lockup detection V4 - [
1
] drm/radeon/kms: HDMI irq support - [
2
] drm/radeon/kms/pm: add additional asic callbacks - [
4
] drm/radeon/kms/pm: add asic specific callbacks for getting power state (v2) - [
1
] drm/radeon/kms/pm: add asic specific callbacks for setting power state (v2) - [
1
] drm/radeon/kms/pm: add support for no display power states - [
- [
5
] drm/radeon/kms: simplify & improve GPU reset V2 - [
N2
] drm/ttm: add pool wc/uc page allocator V3 - [
- [
N1
] drm/vmwgfx: Add kernel throttling support. Bump minor. - [
1
] drm/vmwgfx: Support older hardware. - [
- [
C N2
] OMAP: DSS2: Add ACX565AKM Panel Driver - [
- [
C N1
] viafb: add a driver for GPIO lines - [
- [
- [
- [
C
] viafb: make procfs entries optional - [
2
] viafb: rework the I2C support in the VIA framebuffer driver
Older Kernel Logs can be found in the archives or by using the search function at The H Open Source. New editions of Kernel Logs are also mentioned on Identi.ca and Twitter via "@kernellog2". The Kernel Log author also posts updates about various topics on Identi.ca and Twitter via "@kernellogauthor".
(crve)