Kernel Log - Coming in 2.6.31 - Part 2: Graphics, audio and video
Thorsten Leemhuis
Linux 2.6.31 will offer Kernel-Based Mode-Setting for Radeon graphics cards up to model X1950. The developers have included new drivers for X-Fi sound cards and for Intel's "Next-Generation Graphics Device". Many further improvements affect the drivers for webcams and TV hardware.
Despite the summer holiday season in the northern hemisphere, the development of the kernel has continued without interruption, and the fifth release candidate of Linux 2.6.31 has already become available. This version contains the gspca/sn9c20x webcam driver, which still managed to sneak in although the merge window has long been closed. However, this is only one of many changes in the audio and video area of Linux 2.6.31.
For other articles on 2.6.31 and links to the rest of the "Coming in 2.6.31" series, see The H's Kernel Log - 2.6.31 Tracking page.
Flicker-free X startup for Radeon graphics chips
Having added the Intel-specific GEM (Graphics Execution Manager) to the kernel with Linux 2.6.28 and Kernel-Based Mode-Setting (KMS) support, which is based on GEM, with 2.6.29, the developers have now integrated KMS code for Radeon graphics chips by AMD/ATI. To benefit from the advantages of KMS – central graphics management in one place, improved suspend, and less complex graphics drivers – and get the X Server to work with KMS, it is necessary to update the X.org drivers, Libdrm, and Mesa3D. This involves considerable installation and tuning which is best left to the Linux distributor of your choice.
Masterminded by the programmers of the "radeon" X.org driver, the newly integrated KMS code supports Radeon GPUs up to series R5XX – this includes all Radeon models up to and including X1950. The development of KMS for the R6xx and R7xx GPUs of the Radeon HD series 2000, 3000 and 4000 is still in progress. However, even the Radeon KMS code integrated with 2.6.31 hasn't reached full maturity yet; as a result, the developers have marked it as a staging driver for now.
Instead of GEM, the Radeon KMS code uses another new addition, the TTM GPU memory manager, for managing the memory and for coordinating access to the processing units. While TTM was originally also intended to be used with the Intel KMS driver, the Intel developers weren't too happy with it and started GEM as an alternative. However, the TTM code has since been overhauled and can now also be used via a GEM API.
Drivers for next generation Intel GPUs
The developers extended the Intel KMS driver to support monitor control via DisplayPort (DP). In addition, they made numerous corrections to improve the existing KMS and GEM code – as a result, the recently released version 2.8 of the X.org driver reportedly works best with Linux 2.6.31.
The Intel crew also contributed further KMS code and other patches to support a series of graphics chips named IGDNG. This is probably short for "Intel Graphics Device Next-Generation" and refers to the graphics cores of the processors expected early next year.
Information about these and other changes concerning the kernel's graphics support can be found at the end of this article and in several of Dave Airlie's git pull requests (1, 2, 3, 4).
Audio drivers for X-Fi
Suitable for various sound cards of Creative's X-Fi series and mainly developed by Creative programmers, the snd-ctxfi driver has found its way into the kernel via the ALSA developers. This puts an end to a driver odyssey which had several mostly half-finished versions of both open source and proprietary drivers and gave us futile hopes for a half-way decent Linux driver for X-Fi sound chips in the past few years. However, the newly integrated driver is not fully mature yet; for instance, it doesn't support external I/O modules.
Also new is the lx6464es audio driver for various LX6464ES models by Digigram. In addition, the kernel now supports ESI's Maya44 as well as numerous PCs and notebooks – among them the MacBook 5.1 (Aluminium). As in every other new kernel version, the developers have also considerably extended the whitelists for automatically applying special hardware-specific settings ("quirks") – most of the relevant commits are appended in a list at the end of this article. One of the maintainers of the audio subsystem has summarised the most important new aspects of 2.6.31 in an email.
Video
As usual, hundreds of changes were made to the DVB/V4L subsystem. One new addition is the stv090x driver for addressing the Intersil DVB-S/S2/DSS chips found on cards like the TechnoTrend TT-budget S2-1600. Another addition is the gspca-sn9c20x driver for sn9c201 and sn9c202 USB chips, which are used in the webcams of various manufacturers. The new kernel will offer improved support for several webcams of Logitech's QuickCam Messenger series; the ov519 gspca driver now also works with the ov511 and ov518 chips. Further background information about the changes to the Linux 2.6.31 webcam and TV drivers can be found in the git pull requests made by the maintainer of the V4L/DVB subsystem, Mauro Carvalho Chehab (1, 2, 3).
Minor gems
Many additional minor, but by no means insignificant, changes can be found in the list below. Like many of the references in the text above, the links lead to the relevant commits in the web front end of the main Linux development branch, where the commit comments and the patches themselves provide extensive further information on the respective changes.
Audio:
- ALSA: Add missing description of lx6464es to ALSA-Configuration.txt
- ALSA: bt87x - Add a quirk entry for Askey Computer Corp. MagicTView'99
- ALSA: ctxfi - Add depends on X86
- ALSA: ctxfi - Add PM support
- ALSA: ctxfi - Allow unknown PCI SSIDs
- ALSA: ctxfi - Fix endian-dependent codes
- ALSA: ctxfi - Remove PAGE_SIZE limitation
- ALSA: hda - Acer Aspire 8930G support
- ALSA: hda - Acer Inspire 6530G model for Realtek ALC888
- ALSA: hda - Add 7.1 support for MSI GX620
- ALSA: hda - Add a quirk entry for Macbook Pro 5,1
- ALSA: hda - Add Creative CA0110-IBG support
- ALSA: hda - Add digital-mic support to ALC262 auto model
- ALSA: hda - Add GPIO1 control at muting with HP laptops
- ALSA: hda - Addition for HP dv4-1222nr laptop support
- ALSA: hda - Add missing initializations for ALC268 and ALC269
- ALSA: hda - Add missing models for Realtek codecs
- ALSA: hda - Add model=6530g option
- ALSA: hda - Add pci-quirk for MSI MS-7350 motherboard.
- ALSA: hda - Add pin-sense trigger when needed for Realtek codecs
- ALSA: hda - Add quirk for Acer Aspire 6935G
- ALSA: hda - Add quirk for Dell Studio 1555
- ALSA: hda - Add quirk for Gateway T6834c laptop
- ALSA: hda - Add quirk for HP 6930p
- ALSA: hda - Add quirk for Sony VAIO Z21MN
- ALSA: hda - add quirk for STAC92xx (SigmaTel STAC9205)
- ALSA: hda - Add support of Samsung NC10 mini notebook
- ALSA: hda - Avoid conflicts with snd-ctxfi driver
- ALSA: hda - Clean up Realtek auto-mute unsol routines
- ALSA: hda: Correct EAPD for Dell Inspiron 1525
- ALSA: hda - Fix acer-aspire-6530g model quirk
- ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecs
- ALSA: hda - Fix quirk for Toshiba Satellite A135-S4527
- ALSA: hda - Fix secondary SPDIF on VT1708S and VT1702 codecs
- ALSA: hda - Fix support for Samsung P50 with AD1986A codec
- ALSA: hda - Generalize the pin-detect quirk for Lenovo N100
- ALSA: hda - Get back Input Source for ALC262 toshiba-s06 model
- ALSA: hda - Improve ASUS eeePC 1000 mixer
- ALSA: hda - Improved MacBook 3,1 support
- ALSA: hda - Line In for Acer Inspire 6530G model
- ALSA: hda - Macbook[Pro 5 6ch support]
- ALSA: hda - Make jack-plug notification selectable
- ALSA: hda - More Aspire 8930G fixes
- ALSA: hda - Support NVIDIA 8 channel HDMI audio
- ALSA: hda - Use model=acer-aspire-6530g for Acer Aspire 6930G
- ALSA: hdsp - Add a comment about external firmwares for hdsp
- ALSA: hdsp: allow firmware loading from inside the kernel
- ALSA: lx6464es - support standard alsa module parameters
- ALSA: pcm - Add logging of hwptr updates and interrupt updates
- ALSA: sc6000: add support for SC-6600 and SC-7000
- ALSA: support Sony Vaio TT
- ALSA: usb - Add boot quirk for C-Media 6206 USB Audio
- ALSA: usb-audio - Add quirk for Roland/Edirol M-16DX
- ALSA: usb-audio - quirk for USB Aureon cards
- ALSA: usb-audio - Volume control quirk for QuickCam E 3500
- ALSA: via82xx: add option to disable 500ms delay in snd_via82xx_codec_wait
- sound: virtuoso: add another DX PCI ID
- sound: virtuoso: add Xonar Essence ST support
- sound: virtuoso: enable HDAV S/PDIF input
- sound: virtuoso: fix Xonar D1/DX silence after resume
Audio - Asoc:
- ASoC: AC97 driver for mpc5200
- ASoC: Add driver for s6000 I2S interface
- ASoC: Added OMAP3 EVM support in ASoC.
- ASoC: Add TXx9 AC link controller driver (v3)
- ASoC: Add WM8960 CODEC driver
- ASoC: Add WM8988 CODEC driver
- ASoC: AFEB9260 driver
- ASoC: em-x270: make the driver support also eXeda and CM-X300 machines
- ASoC: IMote2 ASoC Support
- ASoC: remove BROKEN from Efika and pcm030 fabric drivers
- ASoC: s6105 IP camera machine specific ASoC code
- ASoC: Support for AC97 on Phytec pmc030 base board.
- ASoC: WM8940 Driver
- ASoC: WM9081 mono DAC with integrated 2.6W class AB/D amplifier driver
Graphics:
- agp/intel: Add support for new chipsets
- agp: switch AGP to use page array instead of unsigned long array
- drm/i915: Add chipset/feature defines for for new chipsets
- drm/i915: Add Display Port register defines
- drm/i915: add FIFO watermark support
- drm/i915: Add HDMI support on IGDNG
- drm/i915: Add LVDS support for IGDNG
- drm/i915: Add new chipset register definitions
- drm/i915: add per-output hotplug callback for KMS
- drm/i915: enable error detection Commit: 63eeaf38251183ec2b1caee11e4a2c040cb5ce6c state collection
- drm/i915: enable GEM on PAE.
- drm/i915: Save/restore cursor state on suspend/resume.
- drm/radeon: add rv740 drm support.
- drm/radeon: add some missing pci ids
- drm/radeon: add some new r7xx pci ids
- drm/radeon: add support for RV790.
- drm/radeon: command stream checker for r3xx-r5xx hardware
- drm/radeon: fix mobility flags on new PCI IDs.
- drm/radeon/kms: add initial colortiling support.
- drm: Remove memory debugging infrastructure.
- fbdev: do not allow VESA modes without compiled-in drivers
- fb/intelfb: conflict with DRM_I915 and hide by default
- MAINTAINERS: fbdev is orphaned
- ps3av: Set 16:9 aspect ratio for 720p video modes
- s3c-fb: CPUFREQ frequency scaling support
V4L/DVB:
- V4L/DVB (11239): sdio: add cards ids for sms (Siano Mobile Silicon) MDTV receivers
- V4L/DVB (11394): cx88: Add support for stereo and sap detection for A2
- V4L/DVB (11442): saa7134: BZ#7524: Add AVerTV Studio 507UA support
- V4L/DVB (11483): gspca - mr97310a: Webcam 093a:010f added.
- V4L/DVB (11486): em28xx: Add EmpireTV board support
- V4L/DVB (11491): af9015: support for AverMedia AVerTV Volar GPS 805 (A805)
- V4L/DVB (11492): af9015: support for Conceptronic USB2.0 DVB-T CTVDIGRCU V3.0
- V4L/DVB (11535): gspca - m5602-po1030: Add experimental QVGA support
- V4L/DVB (11544): gspca - m5602-mt9m111: Add experimental QVGA support
- V4L/DVB (11559): Siano: add support for infra-red (IR) controllers
- V4L/DVB (11567): saa7134: Added support for AVerMedia Cardbus Plus
- V4L/DVB (11571): Add Elgato EyeTV DTT deluxe to dibcom driver
- V4L/DVB (11665): cx88: Add support for the Hauppauge IROnly board.
- V4L/DVB (11682): STV0900/STV0903: Add support for Silicon cut >= 3
- V4L/DVB (11684): gspca - m5602-s5k4aa: Add experimental SXGA support
- V4L/DVB (11691): gspca - m5602-ov9650: Add ASUS A6K vflip quirk
- V4L/DVB (11717): gspca - sonixj: Webcams with bridge sn9c128 added
- V4L/DVB (11720): gspca - sonixj: Webcam 06f8:3008 added
- V4L/DVB (11730): af9015: support for KWorld MC810
- V4L/DVB (11735): Enables the Winfast TV2000 XP Global TV IR
- V4L/DVB (11742): TI THS7303 video amplifier driver code
- V4L/DVB (11743): Analog Devices ADV7343 video encoder driver
- V4L/DVB (11767): cx23885: Add preliminary support for the HVR1270
- V4L/DVB (11768): cx23885: add ATSC/QAM tuning support for Hauppauge WinTV-HVR1270
- V4L/DVB (11769): cx23885: add ATSC/QAM tuning support for Hauppauge WinTV-HVR1275
- V4L/DVB (11770): cx23885: add ATSC/QAM tuning support for Hauppauge WinTV-HVR1255
- V4L/DVB (11771): cx23885: add DVB-T tuning support for Hauppauge WinTV-HVR1210
- V4L/DVB (11775): tuner: add support Philips MK5 tuner
- V4L/DVB (11798): xc5000: add "no_poweroff" module option
- V4L/DVB (11800): tuner-xc2028: show the proper module description for no_poweroff option
- V4L/DVB (11803): xc5000: add support for DVB-T tuning
- V4L/DVB (11825): em28xx: add Terratec Grabby
- V4L/DVB (11827): Add support for Terratec Grabster AV350
- V4L/DVB (11830): dib0700: add support for Leadtek WinFast DTV Dongle H
- V4L/DVB (11831): dib0700: added USB IDs for Terratec T3 and T5
- V4L/DVB (11838): uvcvideo: Add Lenovo Thinkpad SL400 to device list comments
- V4L/DVB (11861): saa7134: enable digital tv support for Hauppauge WinTV-HVR1110r3
- V4L/DVB (11864): cx18: Complete support for Sliced and Raw VBI for 625 line systems
- V4L/DVB (11879): Adds support for Leadtek WinFast DTV-1800H
- V4L/DVB (11880): cx23885: support for card Mygica X8506 DMB-TH
- V4L/DVB (11883): Siano: cards - add two additional (USB) devices
- V4L/DVB (11915): af9015: support for Genius TVGo DVB-T03
- V4L/DVB (11925): em28xx: Add support for the K-World 2800d
- V4L/DVB (11933): tuner-simple, tveeprom: Add Philips FQ1216LME MK3 analog tuner
- V4L/DVB (11940): gspca - m5602-s5k4aa: Add vflip quirk for the Lenovo Y300
- V4L/DVB (11941): gspca - m5602-ov9650: Add vflip quirk for the ASUS A6VA
- V4L/DVB (11942): gspca - m5602-ov9650: Reorder quirk list and add A7V quirk
- V4L/DVB (11946): uvcvideo: Add support for Aveo Technology webcams
- V4L/DVB (11947): uvcvideo: Add support for FSC V30S webcams
- V4L/DVB (11950): cx18: Split LeadTek PVR2100 and DVR3100 H into 2 separate card entries
- V4L/DVB (11951): cx18: Add DVB-T support for the Leadtek WinFast DVR3100 H
- V4L/DVB (11971): gspca - doc: Add the 05a9:a518 webcam to the Documentation.
- V4L/DVB (11977): em28xx: Add Kworld 315 entry
- V4L/DVB (11982): Add keymaps for TeVii and TBS USB DVB-S/S2 cards
- V4L/DVB (11983): Add support for DVBWorld DVB-C USB Cable card.
- V4L/DVB (11984): Add support for yet another SDMC DM1105 based DVB-S card.
- V4L/DVB (11996): saa7134: add support for AVerMedia M103 (f736)
- V4L/DVB (12010): cx88: Properly support Leadtek TV2000 XP Global
- V4L/DVB (12074): gspca_ov519: Add 320x240 and 160x120 support for cif sensor cams
- V4L/DVB (12084): ov511: mark as deprecated
- V4L/DVB (12087): gspca_sonixj: enable support for 0c45:613e camera
- V4L/DVB (12088): Mark the v4l1 uvcvideo quickcam messenger driver as deprecated
- V4L/DVB (12091): gspca_sonixj: Add light frequency control
- V4L/DVB (12101): em28xx: add support for EVGA inDtube
- V4L/DVB (12102): em28xx: add Remote control support for EVGA inDtube
- V4L/DVB (12128): v4l2: update framework documentation.
- V4L/DVB (12135): Add a driver for mt9v011 sensor
- V4L/DVB (12138): em28xx: add support for Silvercrest Webcam
- V4L/DVB (12139): em28xx: add other video formats
- V4L/DVB (12172): em28xx: Add autodetection code for Silvercrest 1.3 mpix
- V4L/DVB (12181): get_dvb_firmware: Add Yuan MPC718 MT352 DVB-T "firmware" extraction
- V4L/DVB (12182): cx18: Add DVB-T support for Yuan MPC-718 cards with an MT352 or ZL10353
- V4L/DVB (12206): get_dvb_firmware: Correct errors in MPC718 firmware extraction logic
- V4L/DVB (12245): em28xx: add support for mt9m001 webcams
- V4L/DVB (12260): em28xx: make support work for the Pinnacle Hybrid Pro (eb1a:2881)
- V4L/DVB (12263): em28xx: set demod profile for Pinnacle Hybrid Pro 320e
For other articles on 2.6.31 and links to the rest of the "Coming in 2.6.31" series, see The H's Kernel Log - 2.6.31 Tracking page.
(djwm)