Sunday 20 February 2011

State of the Kernel (git, master branch)

Just a blog to basically summarize the work that has been done since the last PowerDeveloper release of the kernel and the "January" Maverick image which ships on current systems. We are prepping an update to be released next week with a real package repository and 3D drivers for all. Stay tuned. In the meantime, here's the kernel work log.

(to be 2.6.31.14.20 - master branch)

Core
  • Operates on ALL Efika MX models (TO2, TO3, Smartbook) with a single kernel
  • The holy grail: merging of the two platforms is complete! One kernel will boot both systems. Much less is done on initialization for both platforms and boot is faster. Several redundant portions of code have been removed.
  • Serial driver updates (console polling and KGDB support)
  • A brand new battery driver
    • All properties are exported - GNOME battery display now works as expected
    • Notification of loss of conditioning and battery initialization data (batteries that report this need to be gently nudged to re-learn charge rates etc. for reliable operation)
  • Input subsystem rewritten to use real input handlers and events rather than gpio-keys which turns out not to be ideal. This improves:
    • Power key on Efika and Smartbook now provokes GNOME into asking if you want to shut down
    • Suspend and Resume are more reliable
    • Power, Wireless Switch and Lid events are watchable using "input-events" tool, as are battery insertion, low alarm and AC adapter detection (battery driver is hooked into this support)
    • Caps lock light on Smartbook is now a configurable LED trigger (if you don't care about caps lock, try using it for "mmc0" or "mmc1" status)

Display
  • A new and greatly improved HDMI driver on Smarttop.
    • More CEA modes supported
    • Reinstated culling of incompatible modes
    • For better compatibility with TVs and real HDMI monitors, the resolution selection is as follows:
      • Look for a mode matching a low field rate 1080p mode (24Hz or 30Hz progressive)
      • If not found, look for a mode matching 720p (any field rate)
      • If not found, selects resolution close to the 1st detailed timing in the EDID (native panel resolution), but this mode may have been culled because it is out of range
      • If there is no suitable mode, force 1280x720@60
      • Override "teneighty" and "seventwenty" modes with those switches to the siihdmi driver.
    • HDMI vs. DVI detection is more reliable
    • Export of EDID property in sysfs (/sys/class/graphics/fbN/edid)
    • Hotplug support and D3 power down
    • Configures SPDIF audio on Smarttop. You may need to reconfigure PulseAudio to get audio out on your TV or AV receiver.
  • Display code has been cleaned up, Smarttop platform code no longer interacts with the framebuffer clocking or display mode selection. IPU is no longer set up before a real screen mode is available.
  • 32-bit framebuffer on Smarttop (override with bpp=)
  • Backlight support on Smartbook has been improved to use fewer steps for the backlight brightness and when the backlight is at 0%, the backlight is powered down to support PixelQi screens better and save a little battery life on screen blanking.
  • Backlight keys on Smartbook now work

Updates from Mainline/Other kernel trees
  • ecryptfs and unionfs and securityfs and security key retention (for encrypted home dirs)
  • VPU and IPU updates from Freescale BSP 11.01.00 (stability)
  • Re-enabling DVFS and DVFS-PER power management
  • Audio driver now turns clocks off when it's not playing audio and has dual FIFOs for input and output. Kernel scheduling has been updated to enable rtkit to properly configure realtime process support for pulseaudio solving most audio playback issues
  • Redundant platform-specific code removed from core Linux parts (input, etc.)
  • Smarttop ethernet should now be a bit more reliable with VLAN tagging and no longer perform unaligned accesses
  • Scheduler updates to stop PulseAudio from complaining about SCHED_RESET_ON_FORK
  • Wireless driver updates
  • ARM core updates
Many many thanks go to Steve Klimaszewski and Saleem Adbulrasool for their hard work on kernel components (especially HDMI and Battery). Anyone willing may compile the kernel from the master branch on the proviso that they may not get a working system, we will be precompiling an optimized and fully packaged kernel very soon, along with all the userspace driver updates required for best performance.

Thanks for your patience!

2 comments:

  1. very excellent work!!! Thanks for you passion!

    ReplyDelete
  2. Excellent! In combination with price drop these are extremely good news!

    ReplyDelete