From 2d6e093285347c397e778a4c53d6e86ea45f025b Mon Sep 17 00:00:00 2001 From: Corey O'Connor Date: Mon, 4 Oct 2010 16:04:10 -0700 Subject: [PATCH] rename kernel-power folder to kernel-bfs. --- build.sh | 3 +- kernel-bfs-2.6.28/debian/README.Debian | 50 + kernel-bfs-2.6.28/debian/blacklist | 1 + kernel-bfs-2.6.28/debian/changelog |14956 + kernel-bfs-2.6.28/debian/compat | 2 + kernel-bfs-2.6.28/debian/control | 149 + kernel-bfs-2.6.28/debian/copyright | 36 + kernel-bfs-2.6.28/debian/fbcon.diff | 16 + .../debian/joikuspot/JoikuSpot_Bouncer.c | 196 + kernel-bfs-2.6.28/debian/joikuspot/Makefile | 2 + kernel-bfs-2.6.28/debian/kernel-power-deinstall | 67 + .../debian/kernel-power-deinstall.desktop | 7 + .../debian/kernel-power-flasher.install | 3 + .../debian/kernel-power-flasher.postinst.in | 23 + .../debian/kernel-power-flasher.preinst | 27 + .../debian/kernel-power-flasher.prerm | 9 + .../debian/kernel-power-flasher.sudoers | 1 + .../debian/kernel-power-modules.install | 1 + .../debian/kernel-power-modules.postinst.in | 20 + .../debian/kernel-power-modules.postrm.in | 16 + kernel-bfs-2.6.28/debian/mmc.diff | 30 + kernel-bfs-2.6.28/debian/patches/2.6.28.10.diff |25050 ++ kernel-bfs-2.6.28/debian/patches/armthumb.diff | 53 + .../debian/patches/bfs-316-to-318.patch | 74 + .../debian/patches/bfs-318-to-330.patch | 581 + .../debian/patches/bfs-330-to-350.patch | 1031 + kernel-bfs-2.6.28/debian/patches/bfs.patch | 7814 + .../debian/patches/block2mtd-yoush.diff | 12 + .../debian/patches/bq24150-sniff.diff | 52 + kernel-bfs-2.6.28/debian/patches/bq_matan.diff | 33 + kernel-bfs-2.6.28/debian/patches/dm-loop.diff | 1070 + .../debian/patches/gentoo-fsfixes.diff | 388 + kernel-bfs-2.6.28/debian/patches/gethercharge.diff | 22 + kernel-bfs-2.6.28/debian/patches/iphb-matan.diff | 14 + .../debian/patches/issue_12309_0.diff | 195 + kernel-bfs-2.6.28/debian/patches/kexec.diff | 156 + .../debian/patches/led_dbrightness.diff | 97 + kernel-bfs-2.6.28/debian/patches/leds-lp5523.diff | 55 + kernel-bfs-2.6.28/debian/patches/maemo-build.diff | 39 + .../debian/patches/minstrel-aziwoqpa.diff | 11 + .../debian/patches/mmcnames-fanoush.diff | 34 + .../debian/patches/nilfs2-2.0.18.diff |22678 ++ .../debian/patches/nokia-20094803.3+0m5.diff |367908 ++++++++++++++++++++ .../debian/patches/nokia-20100903+0m5.diff |54538 +++ .../debian/patches/nokia-20101501+0m5-nosmart.diff | 15 + .../debian/patches/nokia-20101501+0m5.diff | 285 + kernel-bfs-2.6.28/debian/patches/nootg.diff | 115 + .../debian/patches/ondemand-avoid.diff | 189 + kernel-bfs-2.6.28/debian/patches/overclock.diff | 371 + .../debian/patches/ppp_async_matan.diff | 28 + .../debian/patches/sched_reset_on_fork.diff | 106 + kernel-bfs-2.6.28/debian/patches/series | 41 + kernel-bfs-2.6.28/debian/patches/squashfs.diff | 4192 + kernel-bfs-2.6.28/debian/patches/trig-keyb.diff | 93 + .../debian/patches/twl-scrollock.diff | 31 + .../debian/patches/unionfs-2.5.3.diff |11259 + kernel-bfs-2.6.28/debian/patches/usbhost.diff | 902 + kernel-bfs-2.6.28/debian/patches/usbhost2.diff | 30 + kernel-bfs-2.6.28/debian/patches/usbhost3.diff | 34 + kernel-bfs-2.6.28/debian/patches/usbhost4.diff | 77 + .../debian/patches/usbhost_egoshin.diff | 30 + kernel-bfs-2.6.28/debian/patches/usbhostmode.diff | 841 + kernel-bfs-2.6.28/debian/patches/usbignpower.diff | 28 + kernel-bfs-2.6.28/debian/patches/usbip.diff | 5684 + kernel-bfs-2.6.28/debian/patches/usbwhitelist.diff | 11 + .../debian/patches/voltage_scaling_0.diff | 59 + .../debian/patches/voltage_scaling_1.diff | 201 + .../debian/patches/wl1251-monitor-mode.diff | 265 + kernel-bfs-2.6.28/debian/rules | 244 + kernel-bfs-2.6.28/debian/rx51power_defconfig | 2328 + kernel-bfs-2.6.28/debian/usb.diff | 57 + kernel-bfs-2.6.28/debian/usbdbg.diff | 20 + kernel-bfs-2.6.28/debian/usbehci.diff | 12 + kernel-bfs-2.6.28/debian/usbhost.diff | 85 + kernel-power-2.6.28/debian/README.Debian | 50 - kernel-power-2.6.28/debian/blacklist | 1 - kernel-power-2.6.28/debian/changelog |14956 - kernel-power-2.6.28/debian/compat | 2 - kernel-power-2.6.28/debian/control | 149 - kernel-power-2.6.28/debian/copyright | 36 - kernel-power-2.6.28/debian/fbcon.diff | 16 - .../debian/joikuspot/JoikuSpot_Bouncer.c | 196 - kernel-power-2.6.28/debian/joikuspot/Makefile | 2 - kernel-power-2.6.28/debian/kernel-power-deinstall | 67 - .../debian/kernel-power-deinstall.desktop | 7 - .../debian/kernel-power-flasher.install | 3 - .../debian/kernel-power-flasher.postinst.in | 23 - .../debian/kernel-power-flasher.preinst | 27 - .../debian/kernel-power-flasher.prerm | 9 - .../debian/kernel-power-flasher.sudoers | 1 - .../debian/kernel-power-modules.install | 1 - .../debian/kernel-power-modules.postinst.in | 20 - .../debian/kernel-power-modules.postrm.in | 16 - kernel-power-2.6.28/debian/mmc.diff | 30 - kernel-power-2.6.28/debian/patches/2.6.28.10.diff |25050 -- kernel-power-2.6.28/debian/patches/armthumb.diff | 53 - .../debian/patches/bfs-316-to-318.patch | 74 - .../debian/patches/bfs-318-to-330.patch | 581 - .../debian/patches/bfs-330-to-350.patch | 1031 - kernel-power-2.6.28/debian/patches/bfs.patch | 7814 - .../debian/patches/block2mtd-yoush.diff | 12 - .../debian/patches/bq24150-sniff.diff | 52 - kernel-power-2.6.28/debian/patches/bq_matan.diff | 33 - kernel-power-2.6.28/debian/patches/dm-loop.diff | 1070 - .../debian/patches/gentoo-fsfixes.diff | 388 - .../debian/patches/gethercharge.diff | 22 - kernel-power-2.6.28/debian/patches/iphb-matan.diff | 14 - .../debian/patches/issue_12309_0.diff | 195 - kernel-power-2.6.28/debian/patches/kexec.diff | 156 - .../debian/patches/led_dbrightness.diff | 97 - .../debian/patches/leds-lp5523.diff | 55 - .../debian/patches/maemo-build.diff | 39 - .../debian/patches/minstrel-aziwoqpa.diff | 11 - .../debian/patches/mmcnames-fanoush.diff | 34 - .../debian/patches/nilfs2-2.0.18.diff |22678 -- .../debian/patches/nokia-20094803.3+0m5.diff |367908 -------------------- .../debian/patches/nokia-20100903+0m5.diff |54538 --- .../debian/patches/nokia-20101501+0m5-nosmart.diff | 15 - .../debian/patches/nokia-20101501+0m5.diff | 285 - kernel-power-2.6.28/debian/patches/nootg.diff | 115 - .../debian/patches/ondemand-avoid.diff | 189 - kernel-power-2.6.28/debian/patches/overclock.diff | 371 - .../debian/patches/ppp_async_matan.diff | 28 - .../debian/patches/sched_reset_on_fork.diff | 106 - kernel-power-2.6.28/debian/patches/series | 41 - kernel-power-2.6.28/debian/patches/squashfs.diff | 4192 - kernel-power-2.6.28/debian/patches/trig-keyb.diff | 93 - .../debian/patches/twl-scrollock.diff | 31 - .../debian/patches/unionfs-2.5.3.diff |11259 - kernel-power-2.6.28/debian/patches/usbhost.diff | 902 - kernel-power-2.6.28/debian/patches/usbhost2.diff | 30 - kernel-power-2.6.28/debian/patches/usbhost3.diff | 34 - kernel-power-2.6.28/debian/patches/usbhost4.diff | 77 - .../debian/patches/usbhost_egoshin.diff | 30 - .../debian/patches/usbhostmode.diff | 841 - .../debian/patches/usbignpower.diff | 28 - kernel-power-2.6.28/debian/patches/usbip.diff | 5684 - .../debian/patches/usbwhitelist.diff | 11 - .../debian/patches/voltage_scaling_0.diff | 59 - .../debian/patches/voltage_scaling_1.diff | 201 - .../debian/patches/wl1251-monitor-mode.diff | 265 - kernel-power-2.6.28/debian/rules | 244 - kernel-power-2.6.28/debian/rx51power_defconfig | 2328 - kernel-power-2.6.28/debian/usb.diff | 57 - kernel-power-2.6.28/debian/usbdbg.diff | 20 - kernel-power-2.6.28/debian/usbehci.diff | 12 - kernel-power-2.6.28/debian/usbhost.diff | 85 - 147 files changed, 525151 insertions(+), 525152 deletions(-) create mode 100644 kernel-bfs-2.6.28/debian/README.Debian create mode 100644 kernel-bfs-2.6.28/debian/blacklist create mode 100644 kernel-bfs-2.6.28/debian/changelog create mode 100644 kernel-bfs-2.6.28/debian/compat create mode 100644 kernel-bfs-2.6.28/debian/control create mode 100644 kernel-bfs-2.6.28/debian/copyright create mode 100644 kernel-bfs-2.6.28/debian/fbcon.diff create mode 100644 kernel-bfs-2.6.28/debian/joikuspot/JoikuSpot_Bouncer.c create mode 100644 kernel-bfs-2.6.28/debian/joikuspot/Makefile create mode 100755 kernel-bfs-2.6.28/debian/kernel-power-deinstall create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-deinstall.desktop create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-flasher.install create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-flasher.postinst.in create mode 100755 kernel-bfs-2.6.28/debian/kernel-power-flasher.preinst create mode 100755 kernel-bfs-2.6.28/debian/kernel-power-flasher.prerm create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-flasher.sudoers create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-modules.install create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-modules.postinst.in create mode 100644 kernel-bfs-2.6.28/debian/kernel-power-modules.postrm.in create mode 100644 kernel-bfs-2.6.28/debian/mmc.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/2.6.28.10.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/armthumb.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/bfs-316-to-318.patch create mode 100644 kernel-bfs-2.6.28/debian/patches/bfs-318-to-330.patch create mode 100644 kernel-bfs-2.6.28/debian/patches/bfs-330-to-350.patch create mode 100644 kernel-bfs-2.6.28/debian/patches/bfs.patch create mode 100644 kernel-bfs-2.6.28/debian/patches/block2mtd-yoush.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/bq24150-sniff.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/bq_matan.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/dm-loop.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/gentoo-fsfixes.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/gethercharge.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/iphb-matan.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/issue_12309_0.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/kexec.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/led_dbrightness.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/leds-lp5523.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/maemo-build.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/minstrel-aziwoqpa.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/mmcnames-fanoush.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/nilfs2-2.0.18.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/nokia-20094803.3+0m5.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/nokia-20100903+0m5.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/nokia-20101501+0m5-nosmart.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/nokia-20101501+0m5.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/nootg.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/ondemand-avoid.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/overclock.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/ppp_async_matan.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/sched_reset_on_fork.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/series create mode 100644 kernel-bfs-2.6.28/debian/patches/squashfs.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/trig-keyb.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/twl-scrollock.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/unionfs-2.5.3.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbhost.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbhost2.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbhost3.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbhost4.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbhost_egoshin.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbhostmode.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbignpower.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbip.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/usbwhitelist.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/voltage_scaling_0.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/voltage_scaling_1.diff create mode 100644 kernel-bfs-2.6.28/debian/patches/wl1251-monitor-mode.diff create mode 100644 kernel-bfs-2.6.28/debian/rules create mode 100644 kernel-bfs-2.6.28/debian/rx51power_defconfig create mode 100644 kernel-bfs-2.6.28/debian/usb.diff create mode 100644 kernel-bfs-2.6.28/debian/usbdbg.diff create mode 100644 kernel-bfs-2.6.28/debian/usbehci.diff create mode 100644 kernel-bfs-2.6.28/debian/usbhost.diff delete mode 100644 kernel-power-2.6.28/debian/README.Debian delete mode 100644 kernel-power-2.6.28/debian/blacklist delete mode 100644 kernel-power-2.6.28/debian/changelog delete mode 100644 kernel-power-2.6.28/debian/compat delete mode 100644 kernel-power-2.6.28/debian/control delete mode 100644 kernel-power-2.6.28/debian/copyright delete mode 100644 kernel-power-2.6.28/debian/fbcon.diff delete mode 100644 kernel-power-2.6.28/debian/joikuspot/JoikuSpot_Bouncer.c delete mode 100644 kernel-power-2.6.28/debian/joikuspot/Makefile delete mode 100755 kernel-power-2.6.28/debian/kernel-power-deinstall delete mode 100644 kernel-power-2.6.28/debian/kernel-power-deinstall.desktop delete mode 100644 kernel-power-2.6.28/debian/kernel-power-flasher.install delete mode 100644 kernel-power-2.6.28/debian/kernel-power-flasher.postinst.in delete mode 100755 kernel-power-2.6.28/debian/kernel-power-flasher.preinst delete mode 100755 kernel-power-2.6.28/debian/kernel-power-flasher.prerm delete mode 100644 kernel-power-2.6.28/debian/kernel-power-flasher.sudoers delete mode 100644 kernel-power-2.6.28/debian/kernel-power-modules.install delete mode 100644 kernel-power-2.6.28/debian/kernel-power-modules.postinst.in delete mode 100644 kernel-power-2.6.28/debian/kernel-power-modules.postrm.in delete mode 100644 kernel-power-2.6.28/debian/mmc.diff delete mode 100644 kernel-power-2.6.28/debian/patches/2.6.28.10.diff delete mode 100644 kernel-power-2.6.28/debian/patches/armthumb.diff delete mode 100644 kernel-power-2.6.28/debian/patches/bfs-316-to-318.patch delete mode 100644 kernel-power-2.6.28/debian/patches/bfs-318-to-330.patch delete mode 100644 kernel-power-2.6.28/debian/patches/bfs-330-to-350.patch delete mode 100644 kernel-power-2.6.28/debian/patches/bfs.patch delete mode 100644 kernel-power-2.6.28/debian/patches/block2mtd-yoush.diff delete mode 100644 kernel-power-2.6.28/debian/patches/bq24150-sniff.diff delete mode 100644 kernel-power-2.6.28/debian/patches/bq_matan.diff delete mode 100644 kernel-power-2.6.28/debian/patches/dm-loop.diff delete mode 100644 kernel-power-2.6.28/debian/patches/gentoo-fsfixes.diff delete mode 100644 kernel-power-2.6.28/debian/patches/gethercharge.diff delete mode 100644 kernel-power-2.6.28/debian/patches/iphb-matan.diff delete mode 100644 kernel-power-2.6.28/debian/patches/issue_12309_0.diff delete mode 100644 kernel-power-2.6.28/debian/patches/kexec.diff delete mode 100644 kernel-power-2.6.28/debian/patches/led_dbrightness.diff delete mode 100644 kernel-power-2.6.28/debian/patches/leds-lp5523.diff delete mode 100644 kernel-power-2.6.28/debian/patches/maemo-build.diff delete mode 100644 kernel-power-2.6.28/debian/patches/minstrel-aziwoqpa.diff delete mode 100644 kernel-power-2.6.28/debian/patches/mmcnames-fanoush.diff delete mode 100644 kernel-power-2.6.28/debian/patches/nilfs2-2.0.18.diff delete mode 100644 kernel-power-2.6.28/debian/patches/nokia-20094803.3+0m5.diff delete mode 100644 kernel-power-2.6.28/debian/patches/nokia-20100903+0m5.diff delete mode 100644 kernel-power-2.6.28/debian/patches/nokia-20101501+0m5-nosmart.diff delete mode 100644 kernel-power-2.6.28/debian/patches/nokia-20101501+0m5.diff delete mode 100644 kernel-power-2.6.28/debian/patches/nootg.diff delete mode 100644 kernel-power-2.6.28/debian/patches/ondemand-avoid.diff delete mode 100644 kernel-power-2.6.28/debian/patches/overclock.diff delete mode 100644 kernel-power-2.6.28/debian/patches/ppp_async_matan.diff delete mode 100644 kernel-power-2.6.28/debian/patches/sched_reset_on_fork.diff delete mode 100644 kernel-power-2.6.28/debian/patches/series delete mode 100644 kernel-power-2.6.28/debian/patches/squashfs.diff delete mode 100644 kernel-power-2.6.28/debian/patches/trig-keyb.diff delete mode 100644 kernel-power-2.6.28/debian/patches/twl-scrollock.diff delete mode 100644 kernel-power-2.6.28/debian/patches/unionfs-2.5.3.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbhost.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbhost2.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbhost3.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbhost4.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbhost_egoshin.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbhostmode.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbignpower.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbip.diff delete mode 100644 kernel-power-2.6.28/debian/patches/usbwhitelist.diff delete mode 100644 kernel-power-2.6.28/debian/patches/voltage_scaling_0.diff delete mode 100644 kernel-power-2.6.28/debian/patches/voltage_scaling_1.diff delete mode 100644 kernel-power-2.6.28/debian/patches/wl1251-monitor-mode.diff delete mode 100644 kernel-power-2.6.28/debian/rules delete mode 100644 kernel-power-2.6.28/debian/rx51power_defconfig delete mode 100644 kernel-power-2.6.28/debian/usb.diff delete mode 100644 kernel-power-2.6.28/debian/usbdbg.diff delete mode 100644 kernel-power-2.6.28/debian/usbehci.diff delete mode 100644 kernel-power-2.6.28/debian/usbhost.diff diff --git a/build.sh b/build.sh index 5b806f1..377f9cc 100644 --- a/build.sh +++ b/build.sh @@ -18,8 +18,7 @@ tar -jxf linux-2.6.28.tar.bz2 -C ../kernel-bfs-build/ git archive master | tar -x -C ../kernel-bfs-build/git_master/ cd ../kernel-bfs-build && ( - cp -r git_master/kernel-power-2.6.28/debian linux-2.6.28/ - exit; + cp -r git_master/kernel-bfs-2.6.28/debian linux-2.6.28/ /scratchbox/login < diff --git a/kernel-bfs-2.6.28/debian/blacklist b/kernel-bfs-2.6.28/debian/blacklist new file mode 100644 index 0000000..f1381e1 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/blacklist @@ -0,0 +1 @@ +blacklist mousedev diff --git a/kernel-bfs-2.6.28/debian/changelog b/kernel-bfs-2.6.28/debian/changelog new file mode 100644 index 0000000..8f50b22 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/changelog @@ -0,0 +1,14956 @@ +kernel-power (2.6.28-maemo40.bfs0) fremantle; urgency=low + + * BFS version of 2.6.28-maemo40 + + -- Corey O'Connor Tue, 04 Aug 2010 16:50:00 +0800 + +kernel-power (2.6.28-maemo40) fremantle; urgency=low + + * install build scripts properly in /usr/src/kernel-power-kbuild + + -- Thomas Tanner Mon, 9 Aug 2010 23:17:47 +0200 + +kernel-power (2.6.28-maemo39) fremantle; urgency=low + + * new kernel-power-bootimg package for the kernel zImage + + -- Thomas Tanner Tue, 3 Aug 2010 22:25:38 +0200 + +kernel-power (2.6.28-maemo38.bfs) fremantle; urgency=low + + * Apply BFS patches + + -- Corey O'Connor Tue, 10 Jul 2010 16:50:00 +0800 + +kernel-power (2.6.28-maemo38) fremantle; urgency=low + + * add missing linux headers to kernel-power-headers + * enable netfiler tcpmss+mac + * increase kernel log buffer to 64K + * add ARM thumb2 fix + + -- Thomas Tanner Tue, 3 Aug 2010 09:25:38 +0200 + +kernel-power (2.6.28-maemo37) fremantle; urgency=low + + * disable buitin extra network options+MMC bounce from v28 due to possible side-effects + * remove system-update flag due to HAM problems + + -- Thomas Tanner Tue, 25 May 2010 23:07:37 +0200 + +kernel-power (2.6.28-maemo36) fremantle; urgency=low + + * deinstall warning + * reupload due to autobuilder issue + + -- Thomas Tanner Tue, 25 May 2010 18:01:59 +0200 + +kernel-power (2.6.28-maemo35) fremantle; urgency=low + + * activate new wlan-monitor patch + * added system update flag to prevent deinstallation in Application manager + * upgrade to Nokia 20101501+0m5 (without disabling smartreflex): + fixes WLAN memory leaks and improves stability + + -- Thomas Tanner Tue, 25 May 2010 09:40:35 +0200 + +kernel-power (2.6.28-maemo34) fremantle; urgency=low + + * install blacklist properly + * control: remove OABI + + -- Thomas Tanner Wed, 19 May 2010 17:54:12 +0200 + +kernel-power (2.6.28-maemo33) fremantle; urgency=low + + * enable all v28 features again, except for OABI + (commenting out features in configuration had no effect) + * add extra Netfilter connection tracking+mark modules + * fix for touchscreen calibration: disable automatic loading of mousedev module + + -- Thomas Tanner Wed, 19 May 2010 17:13:39 +0200 + +kernel-power (2.6.28-maemo32) fremantle; urgency=low + + * copied config from v27 + * modules.post*: don't fix preinit (is this the bug?) + + -- Thomas Tanner Mon, 17 May 2010 21:27:36 +0200 + +kernel-power (2.6.28-maemo31) fremantle; urgency=low + + * reverted the remaining changes to v27 + + -- Thomas Tanner Mon, 17 May 2010 18:27:36 +0200 + +kernel-power (2.6.28-maemo30) fremantle; urgency=low + + * disable OABI too + + -- Thomas Tanner Mon, 17 May 2010 08:52:48 +0200 + +kernel-power (2.6.28-maemo29) fremantle; urgency=low + + * revert most changes to v27: disabled more QoS modules, IP multiple table+multipath, + MMC block bouncing, old wlan-monitor patch, remove USB OHCI,EHCI + * updated post-installation instructions + + -- Thomas Tanner Mon, 17 May 2010 07:45:30 +0200 + +kernel-power (2.6.28-maemo28) fremantle; urgency=low + + * enabled more QoS modules, IP multiple table+multipath, + MMC block bouncing, OABI support + * updated wlan-monitor patch + * kernel-power-modules: fix preinit MODULE_PATH to always load current kernel modules + * kernel-power-deinstall: improved script, msg boxes, error checking + + -- Thomas Tanner Sun, 16 May 2010 18:46:47 +0200 + +kernel-power (2.6.28-maemo27) fremantle; urgency=low + + * prerm: minor fix to warn check for HAM only during deinstallation, not on upgrades + + -- Thomas Tanner Sun, 9 May 2010 14:33:40 +0200 + +kernel-power (2.6.28-maemo26) fremantle; urgency=low + + * 599Mhz is now interpreted as 600MHz, keep ignoring 600MHz setting by telephone app + * changed extraversion to power$(version) + * added patch for correct mmc device naming by fanoush + * added wlan monitoring patch by David Gnedt + * added LED patch by Matan + * patch to enable charging with g_ether + * show confirmation dialog before installation + * don't allow deinstallation via HAM, add extra program for safe deinstallation + + -- Thomas Tanner Sun, 9 May 2010 12:53:18 +0200 + +kernel-power (2.6.28-maemo25) fremantle; urgency=low + + * control: new bugtracker, fix builddeps, set display name, mention reboot + * added ondemand-avoid patches by Matan Ziv-Av + * avoid frequency 125Mhz by default, change back 124999->125000 + + -- Thomas Tanner Thu, 15 Apr 2010 00:00:00 +0100 + +kernel-power (2.6.28-maemo24) fremantle; urgency=low + + * renamed package to kernel-power due to trademark issues + * control: updated (renamed to kernel-power*), new features in Provides + * DSP frequencies are specified as MHz + * enabled crypto seqiv and twofish modules + * added patches by Matan Ziv-Av: squashfs and led triggers and bugfixes + * squashfs is build as module + + -- Thomas Tanner Wed, 14 Apr 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo22) fremantle; urgency=low + + * support dsp rate customization via /sys/power/dsp_opps_rate + * voltage customization renamed to /sys/power/vdd1_opps_vsel + * replace 810MHz with 805MHz + * increase voltage for 1.1GHz + * increase DSP rate for 1.1/1.15GHz to 520MHz + + -- Thomas Tanner Tue, 13 Apr 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo21) fremantle; urgency=low + + * support voltage customization via /sys/power/sr_vdd1_opps_vsel (patch by Matan) + * replace invalid 800MHz with 810MHz + * increase voltage for 1.1/1.15GHz + * enable powersave and conservative CPUfreq governors + * ignore missing modules dir in postrm + * update /lib/modules/current + * control: moved kernel Provides to kernel-flasher + * enable PPP_ASYNC for PPTP/MPPE + * README.Debian: kernel instructions + + -- Thomas Tanner Mon, 12 Apr 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo20) fremantle; urgency=low + + * added underclocking (125MHz) support, set default min. to 250MHz + * workaround: ignore min=125MHz and max=600MHz requests form default pmconfig and telephone app + (accepted replacement values would be, e.g., 124999 and 599000) + * add Matan's bq27200 patch enable the module + + -- Thomas Tanner Fri, 09 Apr 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo19) fremantle; urgency=low + + * added overclocking (up to 1.2GHz) support, set default max to 600MHz + * added Joikuspot module and SLIP support + * control: added Provides for new features + + -- Thomas Tanner Sun, 04 Apr 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo18) fremantle; urgency=low + + * add kexec patches to enable kexec support on N900 + * control: TMO thread as bugtracker. mention new features + + -- Thomas Tanner Wed, 31 Mar 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo17) fremantle; urgency=low + + * set architecture for all packages to armel + + -- Thomas Tanner Wed, 24 Mar 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo16) fremantle; urgency=low + + * add ncurses-dev to builddeps + + -- Thomas Tanner Wed, 24 Mar 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo15) fremantle; urgency=low + + * upload to free section with sdk-fiasco-gen dependency + + -- Thomas Tanner Wed, 24 Mar 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo14) fremantle; urgency=low + + * upgrade to latest Nokia kernel 20100903+0m5 + * control: add note about touchscreen calibration bug + + -- Thomas Tanner Tue, 23 Mar 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo13) fremantle; urgency=low + + * control: rename kernel-module* to kernel-feature*, add qos + * change my email address + * update to 2.6.28.10 (minus existing Nokia patches) + * clean modules dir when uninstalling + * enable mtdblock, block2mtd, nandsim modules + * enable large file support for mounting standard ext4 + * disable NILFS2 (not useful for flash devices) + * patch block2mtd for mounting ubifs rootfs image (Nikita V. Youshchenko) + * add ext4 and jdb filesystem patches from gentoo + + -- Thomas Tanner Fri, 19 Mar 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo12) fremantle; urgency=low + + * enabled g_serial and usb ethernet gadget + * fix broken installation of modules + * add Matan's ppp_async patch + + -- Thomas Tanner Sun, 28 Feb 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo11) fremantle; urgency=low + + * enabled PPP module + * use indepedent, rx51maemo_defconfig, integrate original Nokia config in patch + * more efficient build process: don't copy source, use build tree (patched pvr Makefile) + + -- Thomas Tanner Sun, 28 Feb 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo10) fremantle; urgency=low + + * integrate mobile hotspot patches from + http://vcs.maemo.org/svn/mobilehotspot/trunk/patches/ + * enable QoS and more netfilter modules for hotspot + * specify Provides for different enhancements + * remove fiasco-gen dependency and download the package directly + + -- Thomas Tanner Wed, 17 Feb 2010 00:00:00 +0100 + +kernel-maemo (2.6.28-maemo9) fremantle; urgency=low + + * switch package name due to some other broken package in extras-devel + * migrate to quilt based patches + * split into subpatches + * disable framebuffer console and boot logo as it seems to causes reboots during shutdown + * enable /proc/config.gz + * increase kernel log buffer to 64K + + -- Thomas Tanner Tue, 16 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100211maemo8) fremantle; urgency=low + + * add NILFS2 2.0.18 + + -- Thomas Tanner Thu, 11 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100210maemo7) fremantle; urgency=low + + * add unionfs 2.5.3 + + -- Thomas Tanner Wed, 10 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100206maemo6) fremantle; urgency=low + + * control: modules depend on kernel + * enable optimize for size option to improve stability + + -- Thomas Tanner Tue, 09 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100206maemo5) fremantle; urgency=low + + * control: add icon, rename packages to *-maemo + * don't build source and debug packages + * disable modules/current link, use explicit version for depmod + * extra-version = maemo + + -- Thomas Tanner Sat, 06 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100206maemo4) fremantle; urgency=low + + * enable modules: advanced router, NAT, more netfiler modules, + kernel config, USB/IP, dmloop + * disable camera button + * copy usbip from staging to usb (otherwise menuconfig ignores it!?) + * apply dmloop patch + + -- Thomas Tanner Fri, 05 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100205maemo3) fremantle; urgency=low + + * enable modules: IPv6: privacy,router pref, packet filter, + wifi mesh, cryptd, SHA256+512,blowfish, + USB 1.1+2.0+generic drivers,USB hubs,USB video+serial + * updated extra-version and set maintainer + * fix MOUSEDEV resolution + + -- Thomas Tanner Fri, 05 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20100204maemo2) fremantle; urgency=low + + * enable modules: IPtables+connection tracking+IPv6+tunneling, + device mapper+crytoloop, ext4,XFS,reiserfs,NTFs read, ISO9660, UDF, CIFS, + automounter, UTF8 codepages, mouse+joystick input, EFI partitions + * enable ThumbEE and boot logo + * builtin ext3 + * optimize for speed + * fix menuconfig + + -- Thomas Tanner Thu, 04 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-2010maemo1) fremantle; urgency=low + + * first custom PR1.1 kernel + + -- Thomas Tanner Thu, 04 Feb 2010 00:00:00 +0100 + +kernel (2.6.28-20101501+0m5) unstable; urgency=low + + * This entry has been added by BIFH queue processor + version has been changed to 2.6.28-20101501+0m5 + + -- Lyubimkin Eugene Thu, 15 Apr 2010 09:13:02 +0300 + +kernel (2.6.28-20101501) unstable; urgency=low + + * Fixes: NB#162856 - Camera: Support alternative SSL3250A flash controller + + -- Eugene Lyubimkin Wed, 14 Apr 2010 09:06:17 +0300 + +kernel (2.6.28-20101103) unstable; urgency=low + + * Fixes: NB#159905 - Samsung eMMC chip 43470T9/KLMBG8EEGM support is + missing + + -- Eugene Lyubimkin Wed, 17 Mar 2010 17:13:46 +0200 + +kernel (2.6.28-20101102) unstable; urgency=low + + * Fixes: NB#160765 - remove sysfs interface that allows user to enable + Smartleflex + + -- Eugene Lyubimkin Tue, 16 Mar 2010 16:52:21 +0200 + +kernel (2.6.28-20101001) unstable; urgency=low + + * Fixes: NB#158654 - Memleak when raising wlan0 interface up + * Fixes: NB#158655 - Memleak after association request with iwconfig + * Fixes: NB#144089 - WLAN ad-hoc network leaks in kernel memory + + -- Eugene Lyubimkin Wed, 10 Mar 2010 13:52:15 +0200 + +kernel (2.6.28-20100904) unstable; urgency=low + + * Fixes: NB#145487 - Some devices are rebooting when the device is idle + * Fixes: NB#158605 - omapdss DISPC error: VID1_FIFO_UNDERFLOW + + -- Eugene Lyubimkin Fri, 05 Mar 2010 12:11:31 +0200 + +kernel (2.6.28-20100903+0m5) unstable; urgency=low + + * This entry has been added by BIFH queue processor + version has been changed to 2.6.28-20100903+0m5 + + -- Lyubimkin Eugene Wed, 03 Mar 2010 10:11:53 +0200 + +kernel (2.6.28-20100903) unstable; urgency=low + + * Fixes: NB#149006 - PVR: fix kernel crash due to freeing resource still in + use + + -- Eugene Lyubimkin Tue, 02 Mar 2010 11:57:38 +0200 + +kernel (2.6.28-20100902) unstable; urgency=low + + * Fixes: NB#154900 - WLAN connection not disconnected after + moving out of range + + -- Eugene Lyubimkin Fri, 26 Feb 2010 09:30:22 +0200 + +kernel (2.6.28-20100701) unstable; urgency=low + + * Fixes: NB#155821 - Support for new Gaia version ES2.0 + * Fixes: NB#152297 - N900 doesn't start charging + + -- Eugene Lyubimkin Wed, 17 Feb 2010 15:47:00 +0200 + +kernel (2.6.28-20100602) unstable; urgency=low + + * Fixes: NB#149752 - kernel oops after lots of IO + * Fixes: NB#154526 - Implement Wi-Fi Multimedia (WMM) support + * Fixes: NB#143075 - Reduce latency in WLAN VoIP calls without WMM Powersave + * Fixes: NB#147683 - Increase timeout for incoming BT connections + + -- Eugene Lyubimkin Fri, 12 Feb 2010 11:08:02 +0200 + +kernel (2.6.28-20100601) unstable; urgency=low + + * Fixes: NB#138218 - [REGF]Unable to answer incoming VoIP call via wired + headset + + -- Eugene Lyubimkin Tue, 09 Feb 2010 13:13:21 +0200 + +kernel (2.6.28-20100504) intrepid; urgency=low + + * Fixes: NB#145909 - remove thumb support from kernel + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 05 Feb 2010 16:15:24 +0200 + +kernel (2.6.28-20100503) intrepid; urgency=low + + * Fixes: NB#102554 - Unpaired clk_enable and clk_disable calls in + McSPI + + -- Yauheni Kaliuta Thu, 04 Feb 2010 17:07:49 +0200 + +kernel (2.6.28-20100502) intrepid; urgency=low + + * Video+fs build + * Fixes: NB#155441 - UBI security fix in volue creation + * Video/All: 585 lines changed. + + -- Yauheni Kaliuta Wed, 03 Feb 2010 16:37:55 +0200 + +kernel (2.6.28-20100501) intrepid; urgency=low + + * Video build + * Remove display glitches during certain transitions + * Increase stability by removing race conditions in the PVR driver + * Fixes: NB#134983 - Avoid visual glitches on the LCD when toggling + TV-out + * Fixes: NB#143321 - Fix DISPC functional clock calculations + * Fixes: NB#150134 - PVR: Fix races in the SGXOSTimer path + * Video/All: 585 lines changed. + + -- Yauheni Kaliuta Tue, 02 Feb 2010 17:28:09 +0200 + +kernel (2.6.28-20100303) intrepid; urgency=low + + * Net build + * Rate index processing fixes in mistrel algorithm. + * Fixes: NB#106780 - minstrel: rate_control_get_rate() NULL pointer + * Audio/All: 2 lines changed. + + -- Yauheni Kaliuta Wed, 20 Jan 2010 10:00:20 +0200 + +kernel (2.6.28-20100302) intrepid; urgency=low + + * Audio build + * Fixes: NB#152715 - Improve basic headset detection reliability + * Audio/All: 2 lines changed. + + -- Yauheni Kaliuta Tue, 19 Jan 2010 10:43:55 +0200 + +kernel (2.6.28-20100301) intrepid; urgency=low + + * Linux-fixes build + * Fixes: NB#138476 - optimization for copy_page() + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 18 Jan 2010 09:36:22 +0200 + +kernel (2.6.28-20100201) intrepid; urgency=low + + * Fixes: NB#152741 - Some devices are rebooting when the device is + idle + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 12 Jan 2010 13:08:02 +0200 + +kernel (2.6.28-20095104) intrepid; urgency=low + + * Camera+dspbridge+peripherals build + * Fixes: NB#140333 - Accelerometer module removal may cause hang + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 18 Dec 2009 14:17:05 +0200 + +kernel (2.6.28-20095103) intrepid; urgency=low + + * Net+USB+SSI+camera+dspbridge build + * Fixes: NB#149165 - DSPBRIDGE: fix infinite busy loop for video + recording + * Cellular/Common: 48 lines changed. + + -- Yauheni Kaliuta Thu, 17 Dec 2009 13:20:46 +0200 + +kernel (2.6.28-20095102) intrepid; urgency=low + + * Net+USB+SSI+camera build + * Fixes: NB#145807 - Device Reboot observed in certain scenario. + * Fixes: NB#150073 - SBL overflow for resizer is happening too often + * Fixes: NB#113978 - H3A statiscs for captured image are corrupted + * Fixes: NB#105590 - G_FMT returns wrong image width if it's not + divisible by 16. + * Cellular/Common: 48 lines changed. + + -- Yauheni Kaliuta Thu, 17 Dec 2009 09:55:40 +0200 + +kernel (2.6.28-20095101) intrepid; urgency=low + + * Net+USB+SSI build + * Fixes: NB#150485 - SSI driver returns wrong configuration + * Cellular/Common: 48 lines changed. + * Video/All: 31698 lines changed. + + -- Yauheni Kaliuta Tue, 15 Dec 2009 17:27:44 +0200 + +kernel (2.6.28-20095003) intrepid; urgency=low + + * Net+USB build + * fix enumeration problem + * Fixes: NB#150292 - Re-enumerate USB after rebooting the PC in + ACT_DEAD + * Fixes: NB#138844 - Kernel crash in bluetooth driver + * Fixes: NB#150471 - Free space disappears after PR1.0.1 to PR1.1 + upgrade + * Video/All: 31698 lines changed. + + -- Yauheni Kaliuta Mon, 14 Dec 2009 14:54:36 +0200 + +kernel (2.6.28-20095002) intrepid; urgency=low + + * Fs+net+video build + * Fixes: NB#140581 - PVR crashes kernel when flushing the Dcache + * Video/All: 31698 lines changed. + + -- Yauheni Kaliuta Wed, 09 Dec 2009 17:37:29 +0200 + +kernel (2.6.28-20095001) intrepid; urgency=low + + * FS+net build + * Fixes: NB#149337 - repeating kernel oopses in ieee80211_beacon_loss + * Fixes: NB#148525 - Free space disappears after PR1.0.1 to PR1.1 + upgrade + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 09 Dec 2009 09:50:07 +0200 + +kernel (2.6.28-20094803.3+0m5) intrepid; urgency=low + + * This entry has been added by BIFH queue processor + Suffix +0m5 added to package revision + + -- mika yrjola Thu, 17 Dec 2009 09:23:47 +0200 + +kernel (2.6.28-20094803.3) intrepid; urgency=low + + * Fixes: NB#145487 - Some devices are rebooting when the device is idle + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 16 Dec 2009 14:58:39 +0200 + +kernel (2.6.28-20094803.2) intrepid; urgency=low + + * fs+usb build + * fix enumeration problem + * Fixes: NB#150109 - Re-enumerate USB after rebooting the PC in + ACT_DEAD + * Fixes: NB#148525 - Free space disappears after PR1.0.1 to PR1.1 upgrade + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 14 Dec 2009 10:00:53 +0200 + +kernel (2.6.28-20094803.1) intrepid; urgency=low + + * Fixes: NB#150262 - repeating kernel oopses in ieee80211_beacon_loss + + -- Yauheni Kaliuta Fri, 11 Dec 2009 09:54:31 +0200 + +kernel (2.6.28-20094803) intrepid; urgency=low + + * packaging: clean up kernel package. + * Fixes: NB#148571 - /boot is not cleaned after kernel flashing during + SSU + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 27 Nov 2009 16:06:33 +0200 + +kernel (2.6.28-20094802) intrepid; urgency=low + + * Net build + * Fixes: NB#140075 - Rover is sometimes deauthenticated due to reason + 7 + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 25 Nov 2009 10:19:41 +0200 + +kernel (2.6.28-20094801) intrepid; urgency=low + + * Net+audio build + * Fixes: NB#141561 - Add protective audio measures + * Fixes: NB#146471 - Add audio protection thresholds + * Fixes: NB#137362 - WLAN does not notice out-of-coverage situation + * Audio/All: 56 lines changed. + + -- Yauheni Kaliuta Tue, 24 Nov 2009 09:54:30 +0200 + +kernel (2.6.28-20094707) intrepid; urgency=low + + * pm+camera+ssi+dspbridge+pm build + * Fix for broken padconfig save/restore + * Fixes: NB#135128 - PC USB/reboot holds rightmost keypad blink + * Fixes: NB#138638 - DSPBRIDGE: fix kernel crash under memory pressure + * Cellular/Common: 1567 lines changed. + + -- Yauheni Kaliuta Wed, 18 Nov 2009 17:34:25 +0200 + +kernel (2.6.28-20094706) intrepid; urgency=low + + * FS+pm+camera+dspbridge+ssi build + * Driver for user-space cellmo flashing + * Packaging updated to accomondate flashing changes + * Fixes: NB#144491 - sub-CR: kernel support for cmt flashing + * Cellular/Common: 1567 lines changed. + + -- Yauheni Kaliuta Wed, 18 Nov 2009 15:37:05 +0200 + +kernel (2.6.28-20094705) intrepid; urgency=low + + * FS+pm+camera build + * camera: VGA sensor stability fix + * Fixes: NB#142208 - fix vs6555 hang by resetting it when necessary + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 17 Nov 2009 16:48:46 +0200 + +kernel (2.6.28-20094704.1) intrepid; urgency=low + + * FS+net+pm build + * Fixes: NB#145487 - Some devices are rebooting when the device is + idle + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 17 Nov 2009 11:06:00 +0200 + +kernel (2.6.28-20094702) intrepid; urgency=low + + * FS+FS+net build + * Fixes: NB#144773 - Cover waggle causes kernel oopses and thread + lockups. + * Fixes: NB#144776 - Cover waggle trips sysfs duplicate entry BUG_ON + * Fixes: NB#137362 - WLAN gets stuck in some connection change + scenarios + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 16 Nov 2009 14:31:27 +0200 + +kernel (2.6.28-20094604) intrepid; urgency=low + + * FS build + * Fixes: NB#144092 - kernel oops in map_swap_page + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 13 Nov 2009 12:49:32 +0200 + +kernel (2.6.28-20094603) intrepid; urgency=low + + * Net build + * Fix one WLAN regression introduced in the previous pull-req + * Fixes: NB#140009 - wl1251: use disconnect command + * Fixes: NB#101403 - Fix BT Secure Simple Paring with Windows Vista + * Fixes: NB#140075 - Rover is sometimes deauthenticated from the WLAN + AP due to reason 7 + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 11 Nov 2009 14:55:23 +0200 + +kernel (2.6.28-20094602) intrepid; urgency=low + + * USB build + * Fixes: NB#136763 - fix incorrect data when reading immediately after + writing. + * Fixes: NB#143388 - detect USB charger when booting with dead battery + * Fixes: NB#144098 - don't enumerate USB with the dedicated charger + * Video/All: 9 lines changed. + + -- Yauheni Kaliuta Tue, 10 Nov 2009 17:09:30 +0200 + +kernel (2.6.28-20094601.1) intrepid; urgency=low + + * Video build + * Fixes: NB#141271 - Reduce MPU wakeups caused by SGX lockup + monitoring + * Video/All: 290 lines changed. + + -- Yauheni Kaliuta Mon, 09 Nov 2009 14:24:00 +0200 + +kernel (2.6.28-20094503) intrepid; urgency=low + + * Video build + * Fixes: NB#140010 - Fix PVR driver's cache flush IOCTL checking + * Video/All: 281 lines changed. + + -- Yauheni Kaliuta Thu, 05 Nov 2009 15:01:59 +0200 + +kernel (2.6.28-20094502) intrepid; urgency=low + + * Video build + * Fixes: NB#140591 - Fix PVR driver reading regs when the SGX HW is + off + * Fixes: NB#144114 - SGX HW locking up due to errors in PVR driver + memory mapping + * Video/All: 5434 lines changed. + + -- Yauheni Kaliuta Tue, 03 Nov 2009 15:07:14 +0200 + +kernel (2.6.28-20094501) intrepid; urgency=low + + * PM build + * Pmgmt fixes and optimizations + * Fixes: NB#142871 - GAIA issue in voltage scaling + * Fixes: NB#144827 - After flashing, device does not boot + * Fixes: NB#143860 - Up-to-date cpuidle parameters + * Video/All: 11 lines changed. + + -- Yauheni Kaliuta Tue, 03 Nov 2009 12:56:54 +0200 + +kernel (2.6.28-20094401) intrepid; urgency=low + + * FS+rover-fixes build + * Fixes: NB#143485 - panic info buffer driver + * Fixes: NB#139403 - eMMC data lines in wrong state when device + sleeping + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 30 Oct 2009 13:32:52 +0200 + +kernel (2.6.28-20094302) intrepid; urgency=low + + * Fixed power save problems with N900 + * Fixes: NB#138296 - Connectivity problems with Apple Time Capsule AP + * Fixes: NB#134462 - wl1251: TP-Link TL-WR941ND PSM problems + * Fixes: NB#140075 - Rover is sometimes deauthenticated from the WLAN + AP due to reason 7 + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 21 Oct 2009 13:52:57 +0300 + +kernel (2.6.28-20094301) intrepid; urgency=low + + * Camera build + * Fixes: NB#141000 - Statistic modules should inform when buffers have + new config + * Fixes: NB#113978 - Camera: H3A statistics for captured image are + corrupted + * Fixes: NB#139429 - Camera: invalid LSC configuration may crash + kernel + * Fixes: NB#115011 - Camera: blue shifted stripe on the left side of + images + * Fixes: NB#137666 - Camera: LSC is not working properly + * Fixes: NB#138936 - camera: LSC configuration is resetted + * Fixes: NB#124311 - Secondary camera doesn't support gain + configuration in EV units + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 16 Oct 2009 17:39:32 +0300 + +kernel (2.6.28-20094204) intrepid; urgency=low + + * Cgroups+net build + * Fixes: NB#140038 - Timers in the mac80211 stack increase power + consumption + * Fixes: NB#134732 - Receiving beacon frame consumes too much power + * Fixes: NB#140009 - wl1251: use disconnect command + * Fixes: NB#140407 - WLAN blocks BT while in idle + * Video/All: 212454 lines changed. + + -- Yauheni Kaliuta Wed, 14 Oct 2009 09:55:20 +0300 + +kernel (2.6.28-20094203) intrepid; urgency=low + + * Cgroups build + * Fixes: NB#139532 - please enable cgroups scheduling + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 13 Oct 2009 13:21:50 +0300 + +kernel (2.6.28-20094202) intrepid; urgency=low + + * Video build + * Fixes: NB#106381 - PVR kernel driver source incompatible with Linux + standards + * Video/All: 212454 lines changed. + + -- Yauheni Kaliuta Tue, 13 Oct 2009 09:32:31 +0300 + +kernel (2.6.28-20094201) intrepid; urgency=low + + * USB build + * Fixes: NB#140880 - allow USB to enumerate when device is sleeping + * Fixes: NB#137307 - detect USB charger after reboot + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 12 Oct 2009 11:50:17 +0300 + +kernel (2.6.28-20094102) intrepid; urgency=low + + * USB build + * Fixes: NB#135077 - work around problem on tty receive_buf + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 07 Oct 2009 15:33:23 +0300 + +kernel (2.6.28-20094101) intrepid; urgency=low + + * PM + FS build + * More reliable oops and panic reporting with mtdoops + * L2 AUX control register save and restore + * Fixes: NB#138865 - CPU deadlocks when running code which uses NEON + and cache preload instructions + * Fixes: NB#140649 - Device doesn't boot due to kernel panic + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 05 Oct 2009 14:02:47 +0300 + +kernel (2.6.28-20094008) intrepid; urgency=low + + * Video build + * Fixes: NB#133259 - fix incorrect mem free leading to rmmod segfault + * Video/All: 4 lines changed. + + -- Yauheni Kaliuta Fri, 02 Oct 2009 11:57:11 +0300 + +kernel (2.6.28-20094007) intrepid; urgency=low + + * PM build + * Fix vfp DPS support + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 01 Oct 2009 13:44:55 +0300 + +kernel (2.6.28-20094006) intrepid; urgency=low + + * PM build + * Add sysfs interface for OMAP IDCODE and efuse values + * Fix I2C4 which is in low state when there is no traffic + * Fixes: NB#122022 - Triton power consumption + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 30 Sep 2009 15:56:53 +0300 + +kernel (2.6.28-20094005) intrepid; urgency=low + + * PM build + * Fix SDRAM timings calculation + * Fixes: NB#136233 - Device hangs when changing DVFS OPPs randomly + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 30 Sep 2009 12:26:55 +0300 + +kernel (2.6.28-20094004) intrepid; urgency=low + + * Camera+net build + * Fixes: NB#134818 - After device goes to IDLE mode, WLAN dont work + nor scan work + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 29 Sep 2009 17:30:43 +0300 + +kernel (2.6.28-20094003) intrepid; urgency=low + + * Net+camera build + * Fixes: NB#137400 - Still image capturing hangs on "processing image" + screen + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 29 Sep 2009 12:46:27 +0300 + +kernel (2.6.28-20094002) intrepid; urgency=low + + * PM+net build + * Fixes: NB#134732 - Receiving WLAN beacon frame consumes too much + power + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 28 Sep 2009 16:53:55 +0300 + +kernel (2.6.28-20094001) intrepid; urgency=low + + * PM build + * Enable VFP before saving it's context + * Fixes: NB#138865 - CPU deadlocks when running code which uses NEON + and cache preload instructions + * Fixes: NB#140362 - Kernel crash in idle task / IRQ handler + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 28 Sep 2009 12:04:32 +0300 + +kernel (2.6.28-20093908) intrepid; urgency=low + + * net build + * wl1251: Fix regression in IRQ loop handling + * wl1251: Fix regression in multicast filter handling + * Fixes: NB#132894 - WLAN causes too many interrupts + + -- Henrik Saari Fri, 25 Sep 2009 10:40:54 +0300 + +kernel (2.6.28-20093907) intrepid; urgency=low + + * PM build + * Fix overlapping vmalloc space + * Fixes: NB#136233 - Occasional hangs + + -- Henrik Saari Fri, 25 Sep 2009 09:38:02 +0300 + +kernel (2.6.28-20093906) intrepid; urgency=low + + * PM build + * Fixes for DPLL1/2 configuration and voltage setup times + * Fixes: NB#136233 - Occasional hangs + + -- Henrik Saari Thu, 24 Sep 2009 09:45:47 +0300 + +kernel (2.6.28-20093905) intrepid; urgency=low + + * usb build + * Fixes: NB#138089 - Pass USB enumeration tests in PC-Suite mode + * Fixes: NB#139609 - Pass Mass-Storage tests in ACT_DEAD mode + + -- Henrik Saari Wed, 23 Sep 2009 11:47:02 +0300 + +kernel (2.6.28-20093904) intrepid; urgency=low + + * peripheral build + * Fixes: NB#140047 - Missed alarm when face down + * Fix wrong accelerometer values after sleeping + + -- Henrik Saari Tue, 22 Sep 2009 17:04:33 +0300 + +kernel (2.6.28-20093903) intrepid; urgency=low + + * Rover fixes build + * Fixes: NB#139271 - Attempt to execute data leads to 100% cpu usage + + -- Henrik Saari Mon, 21 Sep 2009 17:10:53 +0300 + +kernel (2.6.28-20093902) intrepid; urgency=low + + * USB build + * Fixes: NB#139676 - USB generates too many interrupts + * Fixes: NB#137307 - don't generate unwanted IRQs while detecting USB charger + * Fixes: NB#138066 - don't charge with USB to PS/2 adapters + * Fixes: NB#139697 - filter out fake USB vbus drops + + -- Henrik Saari Mon, 21 Sep 2009 12:52:26 +0300 + +kernel (2.6.28-20093901) intrepid; urgency=low + + * Net build + * Fixes: NB#132894 - WLAN causes too many interrupts + * Fixes: NB#134732 - Receiving WLAN beacon frame consumes too much power + * Fixes: NB#138137 - Reduce power consumption by disabling unused FM rx + * Fixes: NB#135168 - Avoid memory corruption in the networking stack + + -- Henrik Saari Mon, 21 Sep 2009 09:30:47 +0300 + +kernel (2.6.28-20093808) intrepid; urgency=low + + * Pm+pm2 build + * Fix domain autodep handling + * Fixes: NB#139207 - Display won't unblank after video with tklock + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 17 Sep 2009 17:59:42 +0300 + +kernel (2.6.28-20093807) intrepid; urgency=low + + * Video+net+pm build + * VFP OFF mode co-operation and Smartreflex fixes + * Fixes: NB#138934 - Device hangs when using keyboard while tklock is + on + * Fixes: NB#133793 - Fix Smartreflex driver to conform TI references + * Video/All: 150 lines changed. + + -- Yauheni Kaliuta Thu, 17 Sep 2009 14:23:24 +0300 + +kernel (2.6.28-20093806) intrepid; urgency=low + + * Video+net build + * Fixes: NB#137362 - WLAN gets stuck in some connection change + scenarios + * Fixes: NB#134468 - Fix 3D framebuffer mapping error due to memory + fragmentation + * Video/All: 150 lines changed. + + -- Yauheni Kaliuta Wed, 16 Sep 2009 18:26:47 +0300 + +kernel (2.6.28-20093805) intrepid; urgency=low + + * USB3 build + * Fixes: NB#135079 - USB looses setup packets when the host wakes up + from hibernation + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 16 Sep 2009 14:47:36 +0300 + +kernel (2.6.28-20093801.4) intrepid; urgency=low + + * Audio+USB packaging + * Fixes: NB#135166 - let N900 pass USB Mass Storage Test + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 15 Sep 2009 12:14:45 +0300 + +kernel (2.6.28-20093801.2) intrepid; urgency=low + + * USB+audio build + * Fixes: NB#122540 - Fix ECI headset detection + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 14 Sep 2009 11:51:29 +0300 + +kernel (2.6.28-20093801) intrepid; urgency=low + + * USB build + * Fixes: NB#138077 - make us pass Current Measurement tests + * Fixes: NB#138478 - don't draw excess current in any configuration + * Fixes: NB#135058 - workaround windows multiple usb configuration + limitation + * Fixes: NB#135166 - make n900 pass on USB MSC tests + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 14 Sep 2009 09:51:14 +0300 + +kernel (2.6.28-20093705) intrepid; urgency=low + + * Pm+usb build + * Fixes: NB#137475 - don't generate extra disconnect IRQ when removing + g_nokia + * Fixes: NB#137622 - report only USB configuration at a time + * Fixes: NB#135068 - let n900 pass Chapter9 certification test + * Fixes: NB#137356 - don't increase power consumption when USB charger + is connected + * Fixes: NB#135325 - Hangup does not work when connecting to the modem + through USB + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 10 Sep 2009 17:02:02 +0300 + +kernel (2.6.28-20093704.1) intrepid; urgency=low + + * Audio2+pm build + * Fix one possible source of reboots + * Fixes: NB#136233 - Occasional hangs + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 10 Sep 2009 11:40:23 +0300 + +kernel (2.6.28-20093704) intrepid; urgency=low + + * Audio2 build + * Fixes: NB#137773 - kernel spams syslog with X/Y/Z event messages + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 10 Sep 2009 09:17:17 +0300 + +kernel (2.6.28-20093703.1) intrepid; urgency=low + + * Audio2 build + * Fixes: NB#136913 - Add audio support for S4.0 macro + * Fixes: NB#129892 - Avoid call hangups on headset unplug + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 09 Sep 2009 11:24:56 +0300 + +kernel (2.6.28-20093702.1) intrepid; urgency=low + + * Net+periph+net+audio build + * Fixes: NB#133549 - Save 800uA when headset plugged in + * Fixes: NB#136913 - Add audio support for S4.0 macros + * Audio/All: 15 lines changed. + + -- Yauheni Kaliuta Mon, 07 Sep 2009 14:11:55 +0300 + +kernel (2.6.28-20093702) intrepid; urgency=low + + * Net+periph+net build + * Fixes: NB#132746 - Improve WLAN stability by reducing reassociations + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 07 Sep 2009 13:18:00 +0300 + +kernel (2.6.28-20093701) intrepid; urgency=low + + * Net+periph build + * Fixes: NB#137024 - Power saving optimization for leds + * Fixes: NB#125698 - Workaround for a bug in the new Bluetooth + firmware + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 07 Sep 2009 10:29:16 +0300 + +kernel (2.6.28-20093606) intrepid; urgency=low + + * i2c+audio build + * Fixes: NB#135026 - Save 5mA after a phone call + * Fixes: NB#135871 - Improve TV out detection reliability + * Fixes: NB#136836 - Audio takes 500uA after use + * Add vibra sysfs interface for specifying a pulse sequence + * Audio/All: 114 lines changed. + * Cellular/Common: 30 lines changed. + + -- Yauheni Kaliuta Fri, 04 Sep 2009 13:49:11 +0300 + +kernel (2.6.28-20093605.1) intrepid; urgency=low + + * Net+USB+SSI build + * Fixes: NB#135246 - incorrect GPIO initialization in SSI driver + * Fixes: NB#135129 - phone calls failing with SLUB debugging + * Cellular/Common: 30 lines changed. + + -- Yauheni Kaliuta Fri, 04 Sep 2009 09:26:03 +0300 + +kernel (2.6.28-20093605) intrepid; urgency=low + + * Net+USB build + * Fixes: NB#135058 - workaround windows multiple usb configuration + limitation + * Fixes: NB#135068 - make us pass USB chapter 9 tests behind full + speed hub + * Fixes: NB#135079 - let device enumerate a waking up pc from + hibernation + * Fixes: NB#136428 - use n900 as the name string on USB descriptors + * Fixes: NB#134732 - decrease bt coex beacon wakeup time to save power + * Video/All: 53 lines changed. + + -- Yauheni Kaliuta Thu, 03 Sep 2009 15:33:59 +0300 + +kernel (2.6.28-20093603.3) intrepid; urgency=low + + * Rebootfix+video-revert build + * Revert NB#134468 fix introduced in kernel package 2.6.28-20093602 + * Kernel 2.6.28-20093603.2 also reverted fix for NB#134732 + * Fixes: NB#136968 - Device goes into 'act brick'/Frozen desktop state + for abnornmal shutdown/reboots + * Video/All: 53 lines changed. + + -- Yauheni Kaliuta Thu, 03 Sep 2009 14:00:40 +0300 + +kernel (2.6.28-20093603.2) intrepid; urgency=low + + * Rebootfix build + * dramatically reduce amount of reboots for some devices + * Video/All: 5 lines changed. + + -- Yauheni Kaliuta Thu, 03 Sep 2009 10:17:06 +0300 + +kernel (2.6.28-20093603) intrepid; urgency=low + + * Video+net build + * Video/All: 48 lines changed. + + -- Yauheni Kaliuta Tue, 01 Sep 2009 16:35:55 +0300 + +kernel (2.6.28-20093602) intrepid; urgency=low + + * Pm2+video build + * Video/All: 48 lines changed. + + -- Yauheni Kaliuta Tue, 01 Sep 2009 12:37:12 +0300 + +kernel (2.6.28-20093601) intrepid; urgency=low + + * Pm2 build + * Fix reboot issue and improve power efficiency + * Fixes: NB#120655 - Device does not power up to act dead + * Fixes: NB#134682 - Decrease static leaks in TWL5030 + * Fixes: NB#135114 - Sleep state selection issue in cpuidle + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 31 Aug 2009 09:18:36 +0300 + +kernel (2.6.28-20093508) intrepid; urgency=low + + * ASoC revert build + * Revert "ASoC: OMAP: Disable streams properly" + * Fixes: NB#112456 - Fix video recording + + -- Henrik Saari Sun, 30 Aug 2009 09:18:48 +0300 + +kernel (2.6.28-20093506) intrepid; urgency=low + + * Slub(+cgroups) build + * ARM: increase L1_CACHE_SHIFT + * Disable cgroup scheduling + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 28 Aug 2009 09:14:33 +0300 + +kernel (2.6.28-20093505) intrepid; urgency=low + + * PM build + * Fixes to Smartreflex parameters + * Fixes: NB#133793 - Incorrect levels in OMAP supply voltages + * Video/All: 279 lines changed. + + -- Yauheni Kaliuta Thu, 27 Aug 2009 10:42:01 +0300 + +kernel (2.6.28-20093504.1) intrepid; urgency=low + + * i2c+net+misc build + * Fixes: NB#134001 - sockets: userspace can trigger kernel oops + * Fixes: NB#135139 - Using structure after freeing it + * Video/All: 279 lines changed. + + -- Yauheni Kaliuta Wed, 26 Aug 2009 16:47:07 +0300 + +kernel (2.6.28-20093504) intrepid; urgency=low + + * Video+i2c+net build + * Fixes: NB#133807 - Fix certification bug found in adhoc beacons + * Fixes: NB#135111 - incorrect twl4030-madc ioctl() status value + * Video/All: 279 lines changed. + + -- Yauheni Kaliuta Wed, 26 Aug 2009 14:35:56 +0300 + +kernel (2.6.28-20093503.2) intrepid; urgency=low + + * Camera+video build + * Fixes: NB#128470 - Reduce display power consumption + * Video/All: 279 lines changed. + + -- Yauheni Kaliuta Wed, 26 Aug 2009 09:55:02 +0300 + +kernel (2.6.28-20093503) intrepid; urgency=low + + * Camera build + * camera: lower led flash current limit + * camera: remedy video jerkiness a bit + * Fixes: NB#113978 - camera: fix corrupted H3A statistics + * Video/All: 4 lines changed. + + -- Yauheni Kaliuta Tue, 25 Aug 2009 16:11:44 +0300 + +kernel (2.6.28-20093502) intrepid; urgency=low + + * mmc+net build + * Fixes: NB#131329 - Force active power saving for bluetooth data + connections + * Fixes: NB#133799 - WFA: Roaming fails between Access Points + * Fixes: NB#133969 - MMC2 leaves functional clock active when entering + idle + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 25 Aug 2009 11:20:58 +0300 + +kernel (2.6.28-20093501.2) intrepid; urgency=low + + * dsp+dsp2 build + * Fixes: NB#110194 - coverity defects cleanup for dspbridge + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 24 Aug 2009 11:37:01 +0300 + +kernel (2.6.28-20093501) intrepid; urgency=low + + * dsp+libbridge build + * DSPBRIDGE: Mark pages locked to prevent from being swapped out + * DSPBRIDGE: call get_user_pages by 16 pages for efficiency + * DSPBRIDGE: performance optimization of WMD_BRD_MemMap + * DSPBRIDGE: cleanup for WMD_BRD_MemMap() + * DSPBRIDGE: fix wrong page number calculation + * DSPBRIDGE: allow user-space to call cache clean + * DSPBRIDGE: fix build warning uninitialized_var() + * DSPBRIDGE: SYNC_WaitOnMultipleEvents returns -ERESTARTSYS on interrupted sleep + * Fixes: NB#131721 - DSPBRIDGE: fix kernel crash at camera recording + + -- Henrik Saari Sat, 22 Aug 2009 14:00:48 +0300 + +kernel (2.6.28-20093408) intrepid; urgency=low + + * PM+periph+audio build + * Changelog: Get rid of pop noise after cell call + * Fixes: NB#133945 - Save up to 20mA in some audio cases + + -- Henrik Saari Sat, 22 Aug 2009 10:22:17 +0300 + +kernel (2.6.28-20093407) intrepid; urgency=low + + * PM+periph build + * Add ability to turn off proximity and other switch sensors + * Optimize CPUidle and DVFS + * Fixes: NB#122891 - CPU idle spends long time in shallow C state + after activity + * Fixes: NB#130769 - USB charger breaks PM + * Fixes: NB#120206 - Standby consumption increases when DPS is enabled + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 21 Aug 2009 18:08:42 +0300 + +kernel (2.6.28-20093405) intrepid; urgency=low + + * USB build + * Fixes: NB#130238 - wait a while when USB Serial ring buffer is full + * Fixes: NB#133584 - do not set pm constraints when USB cable is + detached + * Cellular/Common: 2 lines changed. + * Video/All: 8 lines changed. + + -- Yauheni Kaliuta Thu, 20 Aug 2009 10:21:56 +0300 + +kernel (2.6.28-20093404) intrepid; urgency=low + + * SSI build + * Fixes: NB#125629 - SSI resetted spuriously from OFF mode + * Cellular/Common: 2 lines changed. + * Video/All: 8 lines changed. + + -- Yauheni Kaliuta Wed, 19 Aug 2009 15:11:23 +0300 + +kernel (2.6.28-20093403.1) intrepid; urgency=low + + * Fs+net+camera build + * camera: lower led flash current limit + * Fixes: NB#113978 - camera: fix corrupted H3A statistics + * Video/All: 8 lines changed. + + -- Yauheni Kaliuta Wed, 19 Aug 2009 09:58:17 +0300 + +kernel (2.6.28-20093403) intrepid; urgency=low + + * Net build + * Fixes: NB#122010 - Fix disconnections with ZyXEL NBG-460N + * Video/All: 48 lines changed. + + -- Yauheni Kaliuta Tue, 18 Aug 2009 16:28:46 +0300 + +kernel (2.6.28-20093402.2) intrepid; urgency=low + + * Video+fs build + * Fixes: NB#129792 - Failure copying large files via USB mass storage + * Video/All: 48 lines changed. + + -- Yauheni Kaliuta Tue, 18 Aug 2009 09:53:31 +0300 + +kernel (2.6.28-20093402.1) intrepid; urgency=low + + * Video build + * Fixes: NB#133175 - Improve display panning performance + * Video/All: 48 lines changed. + + -- Yauheni Kaliuta Mon, 17 Aug 2009 18:38:19 +0300 + +kernel (2.6.28-20093401) intrepid; urgency=low + + * cgroup+usb+dsp build + * Fixes: NB#133058 - Fix kernel crash at playback after cam recording + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 17 Aug 2009 13:33:56 +0300 + +kernel (2.6.28-20093309.2) intrepid; urgency=low + + * Fixes: NB#132987 - ignore SRP completely on USB driver so we + don't spam console about it + + -- Yauheni Kaliuta Sat, 15 Aug 2009 13:23:28 +0300 + +kernel (2.6.28-20093308.2) intrepid; urgency=low + + * rx51_defconfig: enable cgroup scheduling + * Fixes: NB#133249 - enable cgroup scheduling + + -- Yauheni Kaliuta Fri, 14 Aug 2009 19:01:39 +0300 + +kernel (2.6.28-20093307.4) intrepid; urgency=low + + * Camera2+USB+audio build + * Fixes: NB#126975 - Save up to 100uA when audio off + * Fixes: NB#132349 - acm port for pnatd was not being added properly + * Fixes: NB#131277 - Remove USB debugging messages by default + * Audio/All: 77 lines changed. + * Video/All: 64 lines changed. + + -- Yauheni Kaliuta Thu, 13 Aug 2009 17:27:04 +0300 + +kernel (2.6.28-20093307.2) intrepid; urgency=low + + * Camera2 build + * Fixes: NB#113978 - camera: fix corrupted H3A statistics + * Fixes: NB#121713 - camera: fix kernel crash in interrupt handling + * Fixes: NB#94621 - camera: mode enumeration returns unsupported frame + sizes + * Fixes: NB#124419 - camera: prints while atomic + * Fixes: NB#105501 - camera: handle SBL overflows for statistics + * Fixes: NB#123578 - camera: add histogram driver + * Fixes: NB#121713 - camera: fix kernel crash in interrupt handling + * Fixes: NB#126299 - camera: fix oops with shared irq debugging + * Cellular/Common: 58 lines changed. + * Video/All: 62 lines changed. + + -- Yauheni Kaliuta Thu, 13 Aug 2009 13:57:58 +0300 + +kernel (2.6.28-20093306) intrepid; urgency=low + + * Video build + * Fixes: NB#129392 - fix object reference counting in the PVR video + driver + * Cellular/Common: 79 lines changed. + * Video/All: 511 lines changed. + + -- Yauheni Kaliuta Wed, 12 Aug 2009 17:29:25 +0300 + +kernel (2.6.28-20093305.2) intrepid; urgency=low + + * Video+periph+ssi build + * Fixes: NB#132263 - cellmo resetted multiple times during boot + * Cellular/Common: 79 lines changed. + * Video/All: 449 lines changed. + + -- Yauheni Kaliuta Wed, 12 Aug 2009 11:46:50 +0300 + +kernel (2.6.28-20093305.1) intrepid; urgency=low + + * Video+periph build + * Fixes: NB#132319 - Accelerometer self-test value tuning for + production + * Cellular/Common: 21 lines changed. + * Video/All: 449 lines changed. + + -- Yauheni Kaliuta Tue, 11 Aug 2009 17:52:45 +0300 + +kernel (2.6.28-20093305) intrepid; urgency=low + + * Video build + * Fixes: NB#132086 - Framebuffer resets are ignored by the PVR driver + * Fixes: NB#132177 - Display driver doesn't start if no LCD is + attached + * Fixes: NB#129494 - Remove unused DRM kernel modules + * Cellular/Common: 21 lines changed. + * Video/All: 449 lines changed. + + -- Yauheni Kaliuta Tue, 11 Aug 2009 17:47:59 +0300 + +kernel (2.6.28-20093303) intrepid; urgency=low + + * rx-51-2009-33-3 release + * Fixes: NB#131631 - posix-timers: userspace can trigger kernel oops + * Cellular/Common: 21 lines changed. + + -- Yauheni Kaliuta Tue, 11 Aug 2009 11:05:17 +0300 + +kernel (2.6.28-20093302) intrepid; urgency=low + + * rx-51-2009-33-2 release + * Fixes: NB#127095 - SSI wake-up work-around broke PM + * Fixes: NB#129918 - kernel/initrd not compatible with latest FIASCOs + * Cellular/Common: 21 lines changed. + + -- Yauheni Kaliuta Mon, 10 Aug 2009 17:59:30 +0300 + +kernel (2.6.28-20093301.1) intrepid; urgency=low + + * Video2+dspbridge+periph build + * Fixes: NB#131998 - Accelerometer in power off state prevents suspend + * Video/All: 914 lines changed. + + -- Yauheni Kaliuta Mon, 10 Aug 2009 09:53:08 +0300 + +kernel (2.6.28-20093205.1) intrepid; urgency=low + + * Video2+dspbridge build + * Fixes: NB#129926 - DSP bridgedriver silently stops working + * Fixes: NB#129924 - DSP bridgedriver fails to detect malfunction + * Video/All: 914 lines changed. + + -- Yauheni Kaliuta Fri, 07 Aug 2009 16:28:28 +0300 + +kernel (2.6.28-20093204.3) intrepid; urgency=low + + * Fixes+audio+video2 build + * Fixes: NB#127831 - Reducing VRFB physical memory interferes with SGX + * Fixes: NB#125102 - Framebuffer for graphics plane wastes too much SDRAM + * Fixes: NB#128805 - Reset the display hardware to recover from + serious errors + * Fixes: NB#129720 - TV-out test application breaks video playback + * Fixes: NB#130361 - TV-out is broken if used after waking from OFF + * Audio/All: 4 lines changed. + * Video/All: 914 lines changed. + + -- Yauheni Kaliuta Fri, 07 Aug 2009 11:24:12 +0300 + +kernel (2.6.28-20093204.2) intrepid; urgency=low + + * Fixes+audio+video build + * Preparation for a change in the SGX library + * Audio/All: 4 lines changed. + * Cellular/Common: 9 lines changed. + * Video/All: 65 lines changed. + + -- Yauheni Kaliuta Thu, 06 Aug 2009 15:35:07 +0300 + +kernel (2.6.28-20093204.1) intrepid; urgency=low + + * Fixes+audio build + * Fixes: NB#126868 - Boot time: FMTx takes too much time to probe + * Audio/All: 4 lines changed. + * Cellular/Common: 9 lines changed. + + -- Yauheni Kaliuta Thu, 06 Aug 2009 15:27:51 +0300 + +kernel (2.6.28-20093204) intrepid; urgency=low + + * Fixes build + * Fixes: NB#130760 - fix kernel oops when accessing HW RNG + * Cellular/Common: 9 lines changed. + + -- Yauheni Kaliuta Thu, 06 Aug 2009 15:20:28 +0300 + +kernel (2.6.28-20093203.4) intrepid; urgency=low + + * PM+FS+cellular build + * Fixes: NB#125629 - SSI errors caused loss of cellular network + * Audio/All: 10 lines changed. + * Cellular/Common: 9 lines changed. + * Video/All: 75 lines changed. + + -- Yauheni Kaliuta Wed, 05 Aug 2009 15:29:56 +0300 + +kernel (2.6.28-20093203.2) intrepid; urgency=low + + * PM+FS build + * Fixes: NB#131089 - Swap does not always write sequentially + * Fixes: NB#128473 - power consumption: VAUX1 regulator is always ON + * Audio/All: 10 lines changed. + * Video/All: 75 lines changed. + + -- Yauheni Kaliuta Wed, 05 Aug 2009 14:06:49 +0300 + +kernel (2.6.28-20093202.2) intrepid; urgency=low + + * Net+video build + * Fixes: NB#129389 - fix random PVR driver breakage + * Fixes: NB#128247 - fix size checking for PVR memory mapping requests + * Video/All: 64 lines changed. + + -- Yauheni Kaliuta Tue, 04 Aug 2009 16:55:42 +0300 + +kernel (2.6.28-20093202) intrepid; urgency=low + + * Net build + * Fixes: NB#116672 - Net timer waking up the device too often + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 04 Aug 2009 13:02:06 +0300 + +kernel (2.6.28-20093201.1) intrepid; urgency=low + + * Periph+USB build + * Fixes: NB#130862 - add necessary interface for softupd on f_raw + * Fixes: NB#123182 - Turn off accelerometer when not in use to save + power + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 03 Aug 2009 17:45:33 +0300 + +kernel (2.6.28-20093105.3) intrepid; urgency=low + + * PM+USB+fixes build + * Fixes: NB#130760 - fix kernel oops when accessing HW RNG + * Video/All: 65 lines changed. + + -- Yauheni Kaliuta Fri, 31 Jul 2009 16:21:31 +0300 + +kernel (2.6.28-20093105.2) intrepid; urgency=low + + * PM+USB build + * Fixes: NB#128345 - Delay on changing VDD2 OPP is too long + * Fixes: NB#130264 - reset USB transceiver to allow charger detection + to work on all cases + * Video/All: 65 lines changed. + + -- Yauheni Kaliuta Fri, 31 Jul 2009 13:14:21 +0300 + +kernel (2.6.28-20093104.2) intrepid; urgency=low + + * Video+dspridge build + * Fixes: NB#130538 - fix DSPBRIDGE memory allocation failure + + -- Yauheni Kaliuta Thu, 30 Jul 2009 14:02:51 +0300 + +kernel (2.6.28-20093104) intrepid; urgency=low + + * Video build + * Fixes: NB#129720 - TVOUT: get rid of sync lost and data underflow + errors + * Video/All: 59 lines changed. + + -- Yauheni Kaliuta Thu, 30 Jul 2009 13:26:27 +0300 + +kernel (2.6.28-20093103) intrepid; urgency=low + + * pm build + * Fixes: NB#128521 - PM: Gaia script timing is not optimal + * Fixes: NB#127621 - PM: Internal gaia regulators should be in sleep + mode + * Cellular/Common: 134 lines changed. + * Video/All: 10 lines changed. + + -- Yauheni Kaliuta Wed, 29 Jul 2009 17:42:11 +0300 + +kernel (2.6.28-20093102.1) intrepid; urgency=low + + * cmt build + * Fixes: NB#112514 - recover from cellmo reboot, do not loop + * Fixes: NB#125629 - fix loss of cellular function until APE reboot + * Fixes: NB#126409 - fix reboot loop that broke power management + + -- Yauheni Kaliuta Tue, 28 Jul 2009 18:36:44 +0300 + +kernel (2.6.28-20093101.1) intrepid; urgency=low + + * Camera+fixes build + * Fixes: NB#129601 - Allow device to enter power saving states if HW + RNG is used + * Video/All: 23 lines changed. + + -- Yauheni Kaliuta Mon, 27 Jul 2009 17:56:20 +0300 + +kernel (2.6.28-20093101) intrepid; urgency=low + + * rx-51-2009-31-1 release + * Fixes: NB#125157 - Camera sensor color channel is missing from photo + * Fixes: NB#121907 - Camera produces black pictures + * Fixes: NB#125170 - Some camera pictures have wrong colours + * Fixes: NB#120051 - Camera: vertical stripes observed in view finder + and resulting images + * Fixes: NB#115833 - Camera: still image capture hangs in VIDIOC_DQBUF + ioctl call + * Fixes: NB#111089 - Camera image's color scheme is not correct + * Fixes: NB#122621 - Camera statistic modules aren't correctly handled + on dynamic config + * Video/All: 23 lines changed. + + -- Yauheni Kaliuta Mon, 27 Jul 2009 13:48:24 +0300 + +kernel (2.6.28-20093007.1) intrepid; urgency=low + + * cgroups+usb+dsp build + * Fixes: NB#122160 - Fix kernel crash in dspbridge because of wrong pointer + from userland + * Fixes: NB#123286 - MMC performance has decreased + * Fixes: NB#127270 - keep processor in 500MHz when USB cable is attached + + -- Yauheni Kaliuta Fri, 24 Jul 2009 13:41:22 +0300 + +kernel (2.6.28-20093006) intrepid; urgency=low + + * Fixes: NB#128652 - enable cgropus support for the Maemo policy deamon + + -- Yauheni Kaliuta Thu, 23 Jul 2009 16:41:55 +0300 + +kernel (2.6.28-20093005) intrepid; urgency=low + + * cmt+net build + * Fixes: NB#121681 - Memory leak in WLAN (coverity id 10957) + * Fixes: NB#128737 - Reduce WLAN power consumption + * Fixes: NB#127373 - early packet from softupd discarded + * Fixes: NB#128570 - out-of-memory flashing large eMMC image + + -- Yauheni Kaliuta Wed, 22 Jul 2009 17:59:29 +0300 + +kernel (2.6.28-20093002.1) intrepid; urgency=low + + * pm build + * Fixes: NB#127536 - save more power by enabling autoidle in GP Timer + * Fixes: NB#127540 - save more power by enabling autoidle in the system control + + -- Yauheni Kaliuta Wed, 22 Jul 2009 11:55:46 +0300 + +kernel (2.6.28-20093001) intrepid; urgency=low + + * Improves DSP performance, reliability and use time. + * Fixes: NB#126861 - Fixes DSP bridge cpufreq breakage + * Fixes: NB#122011 - Fixes DSP bridge mailbox timeout issue + * Fixes: NB#127521 - Enables DSP bridge mailbox autoidle bit + * Fixes: NB#124985 - Fixes bounds errors and uninitialised pointers in DSP bridge + * Fixes: NB#127397 - Fixes DSP MMU faults in DSP bridge + + -- Yauheni Kaliuta Mon, 20 Jul 2009 12:07:37 +0300 + +kernel (2.6.28-20092904) intrepid; urgency=low + + * rx-51-2009-29-4 release + * Fixes: NB#128244 - Save more power when displays are blanked + + -- Yauheni Kaliuta Thu, 16 Jul 2009 16:08:19 +0300 + +kernel (2.6.28-20092903) intrepid; urgency=low + + * rx-51-2009-29-3 release + * Fixes: NB#126861 - Dspbridge breaks cpufreq + * Fixes: NB#122011 - Fixes DSB mailbox timeout issue + * Fixes: NB#127521 - Enables DSP mailbox autoidle bit + * Fixes: NB#124985 - Fixes DSP bounds errors and uninitialised + pointers + * Fixes: NB#127397 - Fixes DSP MMU faults + * Fixes: NB#121662 - address "NULL value forwarding" coverity warning + * Fixes: NB#107020 - Device stuck on reboot when booting from USER to ACT_DEAD mode + + -- Henrik Saari Thu, 16 Jul 2009 11:58:25 +0300 + +kernel (2.6.28-20092902) intrepid; urgency=low + + * rx-51-2009-29-2 release + * DSS2: Make functional clock check more proper + * DSS2: Remove useless checks from pan_display + * DSS2: Reject invalid color modes + * DSS2: Add RGB12U where appropriate + * DSS2: Add symbolic names for rotation angles + * DSS2: Advertise only the supported color modes + * DSS2: Add some OMAP2 checks + * DSS2: Implement overlay optimization + * DSS2: Add color_mode_to_bpp() helper + * Fixes: NB#128108 - make display driver transfer data faster + * Fixes: NB#121797 - don't restore context of old USB + + -- Henrik Saari Tue, 14 Jul 2009 13:34:04 +0300 + +kernel (2.6.28-20092901) intrepid; urgency=low + + * rx-51-2009-29-1 release + * usb: musb: set mpu wakeup latency + * usb: musb: do not save/restore old interrupts + * usb: musb: switch off regulators with dedicated charger + * Fixes: NB#127270 - decrease processor wakeup latency while USB cable is attached + * Fixes: NB#127379 - don't save USB interrupts to our context + * Fixes: NB#125055 - prevent USB mode selection dialog from appearing twice + * Fixes: NB#116837 - after detecting USB charger, switch off unused regulators + * Fixes: NB#124633 - send resume signal to USB bus after detecting charger + * Fixes: NB#116908 - Suspend failure sometimes + * Fixes: NB#126694 - cache-reap timer expires too often + * Fixes: NB#116102 - allow PC-Suite syncronization to finish cleanly + + -- Henrik Saari Mon, 13 Jul 2009 10:24:36 +0300 + +kernel (2.6.28-20092811) intrepid; urgency=low + + * rx-51-2009-28-11 release + * bluetooth: Fix rejected connection not disconnecting ACL. + * wl1251: remove unnecessary unlocking in wl1251_event_process() + * wl1251: pass the wl->vif to ieee80211_rssi_changed() + * mac80211: fixed circular lock dependency on ieee80211_rssi_changed() + * bluetooth: disable smart-idle during TX + * wl1251: fix deadlock with ieee80211 beacon filter calls + * mac80211: Remove beacon threshold check + * wl1251: allocate space for firmware with vmalloc() + * Fixes: NB#94724 - fix memory allocation for the WLAN firmware + * Fixes: NB#124381 - unable to turn bluetooth on (firmware upload error) + * Fixes: NB#125869 - possible WLAN driver deadlock when signal is weak + * Fixes: NB#117430 - BT headset is not fully disconnected in certain cases + + -- Henrik Saari Fri, 10 Jul 2009 10:59:38 +0300 + +kernel (2.6.28-20092810) intrepid; urgency=low + + * rx-51-2009-28-10 release + * Fixes: NB#126777 - PVR module can cause dead-lock at reboot time + + -- Yauheni Kaliuta Thu, 09 Jul 2009 16:30:58 +0300 + +kernel (2.6.28-20092809) intrepid; urgency=low + + * rx-51-2009-28-9 release + * Fixes: NB#116668 - kernel Oops while mounting EXT3 + * Fixes: NB#123286 - MMC performance has decreased + * random: align rekey_work's timer + * mm: SLUB fix reclaim_state + * slub: fix per cpu kmem_cache_cpu array memory leak + * slub: avoid leaking caches or refcounts on sysfs error + * slub: Add might_sleep_if() to slab_alloc() + * Fixes: NB#116676 - Random number generator timer optimized for PM + * memory allocator fixes back-ported from upstream + + -- Henrik Saari Thu, 09 Jul 2009 13:14:35 +0300 + +kernel (2.6.28-20092807) intrepid; urgency=low + + * rx-51-2009-28-7 release + * Increased clock event max_delta_ns from 32bit to 64bit + * timers: allow deferrable timers for intervals tv2-tv5 to be deferred + * TWL: Put VIO into SLEEP when retention and offmode + * TWL: optimization of sleep wakeup and warmreset sequence + * TWL: correcting SW_EVENT register setting + * TWL: add feature to overlap script sequences for memory optimization + * Fixes: NB#119025 - Key press doesn't wake-up the device + * Fixes: NB#126893 - Too high consumption from TWL VIO-regulator + * Fixes: NB#126767 - Check on all timers if they can be deferred + * Fixes: NB#126756 - Allow device to sleep longer than 2.5s + * Video/All: 4 lines changed. + + -- Henrik Saari Wed, 08 Jul 2009 10:18:53 +0300 + +kernel (2.6.28-20092806) intrepid; urgency=low + + * rx-51-2009-28-6 release + * CMT speech: fix inconsistent data channel lock state at startup + * Fixes: NB#125616 - inconsistent lock state starting CMT speech + * I2C: OMAP: RX-51: Drop I2C-1 speed to 2200 + * I2C: Fix HS scll/sclh calculations for RX-51 - HACK + * Fixes: NB#118501 - I2C-1 bus timings corrected + * usb: gadget: remove debugging options + * usb: musb: don't handle DPS in irq handler + * usb: musb: rx51: do not bug if we can't put musb to sleep + * Fixes: NB#126707 - remove debugging and make usb driver less noisy + * Fixes: NB#126523 - move sleeping functions out of irq context on usb driver + * Fixes: NB#126059 - rx51 is not unusable if USB cannot sleep + * Video/All: 23 lines changed + + -- Henrik Saari Tue, 07 Jul 2009 17:19:54 +0300 + +kernel (2.6.28-20092804) intrepid; urgency=low + + * rx-51-2009-28-4 release + * omap3isp: set CAM_MCLK to 172.8 MHz, allows exact 9.6 MHz for camera xclka/b + * OMAP3: CLOCK: Add capability to change rate of dpll4_m5_ck + * omap3hack: remove flush_cache_user_range in vbq_prepare + * omap3isp: isp.c: check and clear CSIB receiver interrupts while wait_hs_vs + * omap3isp: fix crop behaviour + * Fixes: NB#122581 - Camera zooming focus is not matching with pre and post capture view + * Fixes: NB#123670 - Camera image in viewfinder is bulged horizontally when zooming + * Fixes: NB#123964 - Camera crops part of image bottom compared to viewfinder view + * Fixes: NB#121682 - Camera-UI viewfinder is not keeping the aspect ratio + * Fixes: NB#125912 - Camera crash in previewer_vbq_prepare() + * Fixes: NB#122155 - Camera still image capture always generates CCP2 error messages + * Video/All: 73 lines changed. + + -- Henrik Saari Tue, 07 Jul 2009 11:43:42 +0300 + +kernel (2.6.28-20092803) intrepid; urgency=low + + * rx-51-2009-28-3 release + * SDRC optimization and fixes for pm debugging and gpio handling + * Fixes: NB#120993 - fix display problems + * Fixes: NB#125949 - fix crash in PM debug code + * Fixes: NB#124716 - FMTX IRQ line gets asserted early + * HACK: DSS2: Force VDD2 OPP3 + * Fixes: NB#120993 - FIFO underflow errors in video + * Audio/All: 91 lines changed. + * Video/All: 73 lines changed. + + -- Henrik Saari Mon, 06 Jul 2009 17:40:56 +0300 + +kernel (2.6.28-20092802) intrepid; urgency=low + + * rx-51-2009-28-2 release + * Fixes: NB#125756 - PVR triggers a lockdep warning + * Fixes: NB#111084 - SGX compilation warnings + * Audio/All: 91 lines changed. + * Video/All: 54 lines changed. + + -- Yauheni Kaliuta Mon, 06 Jul 2009 14:55:54 +0300 + +kernel (2.6.28-20092801) intrepid; urgency=low + + * rx-51-2009-28-1 release + * Fixes: NB#122052 - Audio: High power consumption + * Fixes: NB#124898 - fix dspbrige crash on module unload + * Audio/All: 91 lines changed. + + -- Yauheni Kaliuta Mon, 06 Jul 2009 09:20:14 +0300 + +kernel (2.6.28-20092713) intrepid; urgency=low + + * rx-51-2009-27-13 release + * Fixes: NB#103396 - USB does not expose bus suspend to userland + * Fixes: NB#113635 - enable missing eject support in USB + * Cellular/Common: 405 lines changed. + + -- Yauheni Kaliuta Thu, 02 Jul 2009 18:25:29 +0300 + +kernel (2.6.28-20092712) intrepid; urgency=low + + * rx-51-2009-27-12 release + * Fixes: NB#123299 - bluetooth: implement proper shutdown for SCO + socketѕ + * Fixes: NB#123819 - bluetooth: do not use sleeping function in + softirq context + * Cellular/Common: 405 lines changed. + + -- Yauheni Kaliuta Thu, 02 Jul 2009 18:19:46 +0300 + +kernel (2.6.28-20092711) intrepid; urgency=low + + * rx-51-2009-27-11 release + * Partially fixes dspbridge errors when enabling DPS + * Cellular/Common: 405 lines changed. + + -- Yauheni Kaliuta Thu, 02 Jul 2009 12:19:41 +0300 + +kernel (2.6.28-20092709) intrepid; urgency=low + + * rx-51-2009-27-9 release + * Fixes: NB#120976 - WLAN gets stuck and doesn't move to cellular + * Fixes: NB#123300 - Upstream patches fixing WLAN minstrel issues + * Cellular/Common: 405 lines changed. + + -- Yauheni Kaliuta Wed, 01 Jul 2009 17:39:23 +0300 + +kernel (2.6.28-20092707) intrepid; urgency=low + + * rx-51-2009-27-7 release + * Revert change causing video subsystem death + * Cellular/Common: 405 lines changed. + * Video/All: 70 lines changed. + + -- Yauheni Kaliuta Wed, 01 Jul 2009 12:50:27 +0300 + +kernel (2.6.28-20092706) intrepid; urgency=low + + * rx-51-2009-27-6 release + * Fixes: NB#106325 - unloading SSI hw driver module freeze the system + * Fixes: NB#122374 - SSI data transfers get stuck for too long + * Fixes: NB#122540 - Detect ECI headset + * Use deferrable timers in SSI improve PM + * Cellular/Common: 405 lines changed. + * Video/All: 70 lines changed. + + -- Yauheni Kaliuta Wed, 01 Jul 2009 10:55:50 +0300 + +kernel (2.6.28-20092705) intrepid; urgency=low + + * rx-51-2009-27-5 release + * Fixes: NB#107020 - fix stuck shut down problems + * Fixes: NB#123823 - Buffer overrun if HW gives a wrong interrupt + * Fixes: NB#121051 - use hardware random generator + * Added a driver for accessing the HW RNG on HS and EMU CPUs + * Video/All: 70 lines changed. + + -- Yauheni Kaliuta Tue, 30 Jun 2009 18:06:05 +0300 + +kernel (2.6.28-20092704.1) intrepid; urgency=low + + * rx-51-2009-27-4 release + * Fixes: NB#123122 - better throughput with DVFS + * Fixes: NB#94315 - isp1707 consumes power in off-mode + * Fixes: NB#123327 - Don't report otg if we're not + * Fixes: NB#124911 - Kernel shows corrupted partition list + * Fixes: NB#123320 - Do not report selfpowered if we're not + * A partial fix for NB#124631 - increase performance when writting to + eMMC + * Video/All: 70 lines changed. + + -- Yauheni Kaliuta Tue, 30 Jun 2009 10:54:25 +0300 + +kernel (2.6.28-20092703) intrepid; urgency=low + + * rx-51-2009-27-3 release + * Revert "HACK: PM: Disable VDD1 OPP1" + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 29 Jun 2009 15:41:44 +0300 + +kernel (2.6.28-20092701) intrepid; urgency=low + + * rx-51-2009-27-1 release + * Fixes: NB#124177 - camera white balance gains are not updated while + streaming + * Fixes: NB#113413 - fix ambient light sensor calibration + * Fixes: NB#119716 - power TSL2563 only when used, not all the time + * No changes in any certification category. + * Fixes: NB#117560 - bad call audio quality with cpufreq ondemand + governor (actually fixed since 2.6.28-20092601) + + -- Yauheni Kaliuta Mon, 29 Jun 2009 13:19:14 +0300 + +kernel (2.6.28-20092607.2) intrepid; urgency=low + + * rx-51-2009-26-7.2 release + * HACK: PM: Disable VDD1 OPP1 + * Video/All: 293 lines changed. + + -- Yauheni Kaliuta Fri, 26 Jun 2009 10:49:34 +0300 + +kernel (2.6.28-20092606) intrepid; urgency=low + + * rx-51-2009-26-6 release + * Fixes: NB#122294 - Performance regression in SGX operations caused + by DVFS + * Improve 3D performance by better DVFS interaction + * New omap pm interface and pm fixes + * Fixes: NB#124172 - Reboot doesn't work reliably + * Video/All: 293 lines changed. + + -- Yauheni Kaliuta Thu, 25 Jun 2009 13:38:43 +0300 + +kernel (2.6.28-20092605) intrepid; urgency=low + + * rx-51-2009-26-5 release + * Fixes: NB#120993 - Prevent display FIFO underflows + * Fixes: NB#98066 - disk statistics might be provided by mtd + * Fixes: NB#116674 - UBIFS write-buffer timer should be optimized + * Fixes: NB#116668 - improve write-back timer grouping + * Video/All: 126 lines changed. + + -- Yauheni Kaliuta Thu, 25 Jun 2009 08:36:50 +0300 + +kernel (2.6.28-20092604) intrepid; urgency=low + + * rx-51-2009-26-4 release + * Fixes: NB#118869 - WLAN driver wakes up OMAP too frequently + + -- Yauheni Kaliuta Wed, 24 Jun 2009 10:12:21 +0300 + +kernel (2.6.28-20092603) intrepid; urgency=low + + * rx-51-2009-26-3 release + * Fixes: NB#123074 - DSP crash during video recording + * SDRC configuration fixes and cpuidle optimizations + * Fixes: NB#120206 - Standby consumption increases when DPS is enabled + * No changes in any certification category. + * Fixes: NB#121714 - Core powerdomain hits OFF mode even if some other + powerdomain is in RETENTION + * (bug 121714 was really fixed in kernel rx-51-2009-24-6, this is just + to ensure bug state change being picked up) + + -- Yauheni Kaliuta Wed, 24 Jun 2009 09:14:53 +0300 + +kernel (2.6.28-20092602) intrepid; urgency=low + + * rx-51-2009-26-2 release + * Camera updates + * Fixes: NB#111089 - camera image color scheme is not correct + * Fixes: NB#121907 - camera produces black pictures + * Fixes: NB#113978 - camera H3A statiscs for captured image are + corrupted + * Fixes: NB#122809 - fix coverity warnings in camera code + * No changes in any certification category. + + -- Yauheni Kaliuta Tue, 23 Jun 2009 13:31:04 +0300 + +kernel (2.6.28-20092601) intrepid; urgency=low + + * rx-51-2009-26-1 release + * fix random DPS-related bluetooth failures + * miscellaneous fixes for static suspend, DPS and DVFS + * No changes in any certification category. + + -- Yauheni Kaliuta Mon, 22 Jun 2009 11:58:48 +0300 + +kernel (2.6.28-20092506) intrepid; urgency=low + + * rx-51-2009-25-6 release + * Power save tuning on LEDs + * Enable play/pause control buttons on Bluetooth headsets + * Fixes: NB#120537 - LP5523 is consuming way too much when not used + * Fixes: NB#118500 - Led: setting run mode and led muxes won't always + succeed + * Fixes: NB#115600 - TWL kbd. should behave as std. multimedia + keyboard + * Fixes: NB#119025 - HW key press doesn't wake-up the device + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 18 Jun 2009 09:23:46 +0300 + +kernel (2.6.28-20092505) intrepid; urgency=low + + * rx-51-2009-25-5 release + * WLAN driver cleanup for wl1251 chipset + * WLAN channel configuration improvements for wl1251 chipset + * Bluetooth improvements + * Fixes: NB#94452 - Do not reconfigure uart in BT while transferring + * Fixes: NB#116073 - Fix power management in BT device driver + * Audio/All: 115 lines changed. + + -- Yauheni Kaliuta Wed, 17 Jun 2009 11:53:20 +0300 + +kernel (2.6.28-20092504) intrepid; urgency=low + + * rx-51-2009-25-4 release + * Revert "usb: musb: Power Down ISP1707" + * Audio/All: 115 lines changed. + + -- Yauheni Kaliuta Wed, 17 Jun 2009 10:22:15 +0300 + +kernel (2.6.28-20092503) intrepid; urgency=low + + * rx-51-2009-25-3 release + * DPS fix for USB OTG controller + * Fixes: NB#109212 - usb-otg prevents dynamic idle after 170s of + idling + * Audio/All: 115 lines changed. + * Video/All: 159 lines changed. + + -- Yauheni Kaliuta Tue, 16 Jun 2009 14:49:37 +0300 + +kernel (2.6.28-20092502) intrepid; urgency=low + + * rx-51-2009-25-2 release + * Fixes: NB#122052 - High aic3x suspend current + * Fixes: NB#122220 - Fix possible access outside array + * Fixes: NB#120061 - NULL value is not forwarded anymore in aic3x + * Audio/All: 115 lines changed. + * Video/All: 159 lines changed. + + -- Yauheni Kaliuta Tue, 16 Jun 2009 12:20:45 +0300 + +kernel (2.6.28-20092501.1) intrepid; urgency=low + + * Removed a Fixes: claim for NB#108042 (bug reopened) + + -- Yauheni Kaliuta Mon, 15 Jun 2009 17:34:02 +0300 + +kernel (2.6.28-20092501) intrepid; urgency=low + + * rx-51-2009-25-1 release + * Fixes: NB#121668 - PVR: error returned by drm_ttm_create is ignored + * Fixes: NB#121947 - PVR: memory should not be released twice + * Fixes: NB#119655 - PVR: random allocation failure for sizes > 4k + * Introduce a patch related to NB#108042 - + PVR: wrapped memory space runs out (not a complete fix) + * Split WLAN driver for the wl1251 and wl1271 chipsets + * Cleaned style issues in WLAN code + * Scanning, open connection, WEP and ELP support on WLAN chipset + wl1271 + * Minor DSP bridge bugfixes and code cleanup + * Fixes: NB#113078 - Dump all threads in coredump + * Video/All: 159 lines changed. + + -- Yauheni Kaliuta Mon, 15 Jun 2009 15:29:22 +0300 + +kernel (2.6.28-20092408) intrepid; urgency=low + + * rx-51-2009-24-8 release + * PM fixes for SSI wake-up and Smartreflex problems + * Cellular/Common: 9 lines changed. + + -- Yauheni Kaliuta Fri, 12 Jun 2009 10:16:54 +0300 + +kernel (2.6.28-20092407) intrepid; urgency=low + + * rx-51-2009-24-7 release + * Fixes: NB#115217 - read errors make UBI switch to R/O mode + * Fixes: NB#119908 - fix GPRS TX deadlock + * Cellular/Common: 9 lines changed. + + -- Yauheni Kaliuta Fri, 12 Jun 2009 08:53:58 +0300 + +kernel (2.6.28-20092406) intrepid; urgency=low + + * rx-51-2009-24-6 release + * Fixes: NB#109773 - camera: correct resizer brightness + * Fixes: NB#105499 - camera: ccp2 / csi2 error handling + * Fixes: NB#111815 - camera: allow CFA table updates + * Fixes: NB#102261 - Widescreen (WVGA) video recording + * Fixes: NB#116201 - camera: colour bands in wvga image + * Fixes: NB#113978 - H3A statiscs for captured image are corrupted. + * Fixes: NB#116728 - camera: rewrite image size calculation + * No changes in any certification category. + + -- Yauheni Kaliuta Thu, 11 Jun 2009 15:09:39 +0300 + +kernel (2.6.28-20092405.1) intrepid; urgency=low + + * Fixed changelog (related to bug 118988 information) + + -- Yauheni Kaliuta Wed, 10 Jun 2009 15:42:32 +0300 + +kernel (2.6.28-20092405) intrepid; urgency=low + + * rx-51-2009-24-5 release + * Fixes: NB#94315 - ISP1707 consumes power in OFF-mode + * Audio/All: 57 lines changed. + * Cellular/Common: 58 lines changed. + + -- Yauheni Kaliuta Wed, 10 Jun 2009 13:49:03 +0300 + +kernel (2.6.28-20092404) intrepid; urgency=low + + * rx-51-2009-24-4 release + * Sidetone improvements + * Speakers can output louder + * Changes related to NB#118988 - variable sound level + * Audio/All: 57 lines changed. + * Cellular/Common: 58 lines changed. + + -- Yauheni Kaliuta Wed, 10 Jun 2009 09:23:28 +0300 + +kernel (2.6.28-20092403) intrepid; urgency=low + + * rx-51-2009-24-3 release + * Fixes: NB#118671 - internal MMC I/O error on B2 + * Cellular/Common: 58 lines changed. + + -- Yauheni Kaliuta Tue, 09 Jun 2009 17:42:58 +0300 + +kernel (2.6.28-20092402) intrepid; urgency=low + + * rx-51-2009-24-2 release + * DPS fixes for spi, ssi and suspend + * Fixes: NB#112949 - Suspend to off in tight loop hangs device + * Fixes: NB#114129 - Unable to receive call when DPS is enabled + * Fixes: NB#117747 - touchscreen reset with dynamic power switching + * Cellular/Common: 58 lines changed. + * Video/All: 315 lines changed. + + -- Yauheni Kaliuta Tue, 09 Jun 2009 10:47:41 +0300 + +kernel (2.6.28-20092401) intrepid; urgency=low + + * rx-51-2009-24-1 release + * Fixes: NB#119351 - Idle consumption in VSDI_CSI is too high + * Fixes: NB#99096 - Enable VDAC regulator only if TV-out is enabled + * Fixes: NB#119147 - Correctly determine if an interlaced display is + used + * Reduce idle power consumption for LCD / TV-out + * Fix overlay output when using interlaced source + * Video/All: 315 lines changed. + + -- Yauheni Kaliuta Mon, 08 Jun 2009 10:04:20 +0300 + +kernel (2.6.28-20092304) intrepid; urgency=low + + * rx-51-2009-23-4 release + * Fixes: NB#120623 - Enabling smartreflex when DVFS is enabled causes + hang + * No changes in any certification category. + + -- Yauheni Kaliuta Fri, 05 Jun 2009 09:59:58 +0300 + +kernel (2.6.28-20092303) intrepid; urgency=low + + * rx-51-2009-23-3 release + * Fixes: NB#112767 - Oprofile callgraph generation does not work + * Audio/All: 132 lines changed. + * Video/All: 1331 lines changed. + + -- Yauheni Kaliuta Wed, 03 Jun 2009 13:52:16 +0300 + +kernel (2.6.28-20092302.01) intrepid; urgency=low + + * Changelog modified to avoid problems with bug 119736 during build, + no functional changes + + -- Yauheni Kaliuta Wed, 03 Jun 2009 09:15:29 +0300 + +kernel (2.6.28-20092302) intrepid; urgency=low + + * rx-51-2009-23-2 release + * fix sporadic device reboot problem + * Audio/All: 132 lines changed. + * Video/All: 1331 lines changed. + * (re)introduce fix for NB#119736 - Device reboots when kept idle + (originally introduced in kernel 2.6.28-20092203.01, but not + present in in-between kernels) + + -- Yauheni Kaliuta Tue, 02 Jun 2009 11:45:28 +0300 + +kernel (2.6.28-20092301) intrepid; urgency=low + + * rx-51-2009-23-1 release + * Sidetone improvements + * Fixes: NB#118671 - internal MMC I/O error saw during the device + booting + * Fixes: NB#118319 - Kernel fails to build with + CONFIG_MMC_UNSAFE_RESUME not set + * Fixes: NB#119250 - omap_hsmmc fails to suspend + * Audio/All: 132 lines changed. + * Video/All: 1331 lines changed. + + -- Yauheni Kaliuta Mon, 01 Jun 2009 16:42:25 +0300 + +kernel (2.6.28-20092206r01) intrepid; urgency=low + + * Changelog fixed (initial fix for bug 115771 was already released, + confusing the bug status checker). + + -- Yauheni Kaliuta Fri, 29 May 2009 14:11:07 +0300 + +kernel (2.6.28-20092206) intrepid; urgency=low + + * rx-51-2009-22-6 release + * Fixes: NB#112118 - Fix PVR breakage when using DVFS + * Fix crashes due to power/clock state transitions in PVR + * Video/All: 1331 lines changed. + + -- Yauheni Kaliuta Thu, 28 May 2009 14:55:08 +0300 + +kernel (2.6.28-20092205) intrepid; urgency=low + + * rx-51-2009-22-5 release + * Fixes: NB#114070 - USB doesn't work with DPS. + * Video/All: 532 lines changed. + + -- Yauheni Kaliuta Thu, 28 May 2009 14:01:04 +0300 + +kernel (2.6.28-20092204) intrepid; urgency=low + + * rx-51-2009-22-4 release + * Fix for NB#115771 improved: Charger detection should now work all the time + * Added join support for WLAN driver wl1271 + * Fixes: NB#112152 - Fix TV-out field order + * Improve TV-out quality + * Video/All: 532 lines changed. + + -- Yauheni Kaliuta Thu, 28 May 2009 10:07:15 +0300 + +kernel (2.6.28-20092203) intrepid; urgency=low + + * rx-51-2009-22-3 release + * Fixes: NB#115771 - Charger detection can fail + * Fixes: NB#114070 - USB doesn't work with DPS + * PM related fixes for DVFS and dynamic sleep + * Fixes: NB#98018 - After call device consumes about 20mA more + * Fixes: NB#111715 - cellmo crash with power management + * Fixes: NB#115341 - cellmo crash with low battery + * Cellular/Common: 9 lines changed. + * Video/All: 2 lines changed. + + -- Yauheni Kaliuta Wed, 27 May 2009 14:19:20 +0300 + +kernel (2.6.28-20092202) intrepid; urgency=low + + * rx-51-2009-22-2 release + * Fixes: NB#116829 - SD card is not working correctly when battery + cover is removed + * Revert one camera-related change introduced in rx-51-2009-22-1 as it + caused some problems + * Video/All: 2 lines changed. + + -- Yauheni Kaliuta Tue, 26 May 2009 15:13:18 +0300 + +kernel (2.6.28-20092201) intrepid; urgency=low + + * rx-51-2009-22-1 release + * Fixes: NB#116898 - camera: fix "omap_previewer_hack" prefixes in + printk's + * Fixes: NB#110098 - camera: crash less in random places + * Fixes to twl4030 regulator handling + * Pmgmt fixes for DPS + * Fixes: NB#114472 - DMA hang with dynamic power switching + * Cellular/Common: 39 lines changed. + * Video/All: 153 lines changed. + + -- Yauheni Kaliuta Mon, 25 May 2009 15:17:29 +0300 + +kernel (2.6.28-20092105) intrepid; urgency=low + + * rx-51-2009-21-5 release + * Add an option to leave the wdt ticking in suspend. (Needed for power + consumption tests only) + * Cellular/Common: 39 lines changed. + * Video/All: 151 lines changed. + + -- Yauheni Kaliuta Fri, 22 May 2009 15:02:08 +0300 + +kernel (2.6.28-20092104r01) intrepid; urgency=low + + * Changelog fixed (reopened bug 116102 removed). + + -- Yauheni Kaliuta Fri, 22 May 2009 14:13:37 +0300 + +kernel (2.6.28-20092104) intrepid; urgency=low + + * rx-51-2009-21-4 release + * Fixes: NB#115396 - fix kernel crash because of video playback memory + corruption + * Fixes: NB#112317 - device can't sleep cause USB -core in wrong state + * Fixes: NB#113803 - fix concurrent ethernet rx and tx transfers + * Fixes: NB#115771 - reset the transceiver to prevent it from dying + * Fixes: NB#108358 - fix memory allocation issues + * Fixes: NB#114104 - fix g_zero test cases + * Finalized WLAN RX support for chip wl1271 + * Enabled WLAN ELP sleep + * Changed SPI mode for the WLAN chip in RX-51 + * Fixes: NB#97516 - Enable WLAN firmware sleep and save 19 mA in idle + * Fixes: NB#115573 - Fix regression in WLAN frame fragmentation + * Cellular/Common: 39 lines changed. + * Video/All: 151 lines changed. + + -- Yauheni Kaliuta Wed, 20 May 2009 16:58:34 +0300 + +kernel (2.6.28-20092103) intrepid; urgency=low + + * rx-51-2009-21-3 release + * Fixes: NB#99082 - MMC keeps voltage regulators always on + * Fixes: NB#92647 - kernel does not compile if PM is disabled + * Audio/All: 200 lines changed. + * Video/All: 151 lines changed. + + -- Yauheni Kaliuta Tue, 19 May 2009 15:44:02 +0300 + +kernel (2.6.28-20092102) intrepid; urgency=low + + * rx-51-2009-21-2 release + * support for per-overlay rotation + * Audio/All: 200 lines changed. + * Video/All: 151 lines changed. + + -- Yauheni Kaliuta Tue, 19 May 2009 09:40:03 +0300 + +kernel (2.6.28-20092101) intrepid; urgency=low + + * rx-51-2009-21-1 release + * camera: rewrite H3A + * Fixes: NB#113978 - camera: fix corrupted H3A statistics + * Fixes: NB#116148 - camera: do not crash in init if iommu isn't there + * Fixes: NB#93201 - camera: fix iommu faults resulting from h3a code + * Fixes: NB#108573 - camera: h3a writes data to wrong address + * Fixes: NB#109628 - camera: do not hang in still capture + * Fixes: NB#104877 - fix playlist scrolling hanging the device + * Fixes: NB#115702 - fix arbitrary VFP corruption due to pre-emption + * Fix instability issues in applications using floating point + * Fixes: NB#102650 - bix bluetooth/AIC3x audio concurrency issues + * Fixes: NB#116285 - twl watchdog node cannot be reopened + * Audio/All: 200 lines changed. + + -- Yauheni Kaliuta Mon, 18 May 2009 16:16:04 +0300 + +kernel (2.6.28-20092003) intrepid; urgency=low + + * rx-51-2009-20-3 release + * More Bluetooth patches from upstream + * Implemented TX path support for the WLAN wl1271 driver + * Fixes: NB#115555 - WLAN doesn't start up in local mode + * Fixes: NB#114324 - WLAN self test fails in S3 + * Fixes: NB#115539 - Fix Bluetooth security mode 3 incoming connection + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 13 May 2009 15:59:12 +0300 + +kernel (2.6.28-20092002) intrepid; urgency=low + + * rx-51-2009-20-2 release + * remove DSP BKL which makes audio playback smoother + * No changes in any certification category. + + -- Yauheni Kaliuta Wed, 13 May 2009 14:57:37 +0300 + +kernel (2.6.28-20092001) intrepid; urgency=low + + * rx-51-2009-20-1 release + * Increase stability of applications using floating point ops + * Revert "OMAP3: PM: idle: Remove fclk check for idle loop" + * SSI AUTOIDLE HACK + * Audio/All: 187 lines changed. + * Cellular/Common: 3 lines changed. + + -- Yauheni Kaliuta Tue, 12 May 2009 14:42:34 +0300 + +kernel (2.6.28-20091905r01) intrepid; urgency=low + + * Changelog fixed (reopened bug 110564 removed). + + -- Yauheni Kaliuta Fri, 08 May 2009 13:22:12 +0300 + +kernel (2.6.28-20091905) intrepid; urgency=low + + * rx-51-2009-19-5 release + * Fixes: NB#111265 - Dynamic Power Switching (DPS) was still not + always working with MMC + * Make sure CORE doesn't go off if display is on + * Fixes: NB#111150 - unlikely deadlock in SSI audio path + * Audio/All: 103 lines changed. + * Video/All: 638 lines changed. + + -- Yauheni Kaliuta Fri, 08 May 2009 12:40:05 +0300 + +kernel (2.6.28-20091904) intrepid; urgency=low + + * rx-51-2009-19-4 release + * FMRX is capable of HW assisted seeking + * DSS2: sync with linux-dss tree / minor fixes + * Fixes: NB#100480 - Fix bluetooth bootup + * Audio/All: 103 lines changed. + * Cellular/Common: 81 lines changed. + * Video/All: 668 lines changed. + + -- Yauheni Kaliuta Thu, 07 May 2009 13:27:50 +0300 + +kernel (2.6.28-20091903) intrepid; urgency=low + + * rx-51-2009-19-3 release + * Applied some Bluetooth patches from upstream + * Improved support for wl1271 WLAN driver + * Fixes: NB#107547 - set timeout for non ssp pairing (bluetooth) + * Fixes: NB#102185 - workaround for BCM eSCO connection bug + (bluetooth) + * Fixes: NB#113803 - Due to a hw problem RxPktRdy wasn't getting set + * Fixes: NB#109349 - Phonet packets were being dropped + * Fixes: NB#112744 - make keypad driver send EV_SYN after keys are + scanned + * Cellular/Common: 81 lines changed. + * Video/All: 30 lines changed. + + -- Yauheni Kaliuta Wed, 06 May 2009 11:02:04 +0300 + +kernel (2.6.28-20091902) intrepid; urgency=low + + * rx-51-2009-19-2 release + * camera: requires camera-firmware 0.0.18 + * Fixes: NB#88324 - camera: correct exposure time limits for 5 MP + sensor + * Fixes: NB#111532 - camera: allow using shared IRQs + * Fixes: NB#88667 - Bridge driver breaks power management + * Video/All: 1 lines changed. + + -- Yauheni Kaliuta Tue, 05 May 2009 12:11:17 +0300 + +kernel (2.6.28-20091901.1) intrepid; urgency=low + + * Setting ARCH for install-libc-headers. Fixes: NB#113812 + + -- Yauheni Kaliuta Mon, 04 May 2009 15:20:14 +0300 + +kernel (2.6.28-20091901) intrepid; urgency=low + + * rx-51-2009-19-1 release + * Fixes: NB#113603 - Display output breaks if off mode is enabled + * PM fixes + * Audio/All: 219 lines changed. + * Video/All: 50 lines changed. + + -- Yauheni Kaliuta Mon, 04 May 2009 13:43:58 +0300 + +kernel (2.6.28-20091803r01) intrepid; urgency=low + + * Changelog fixed (reopened bug 109732 removed). + + -- Yauheni Kaliuta Mon, 04 May 2009 12:46:28 +0300 + +kernel (2.6.28-20091803) intrepid; urgency=low + + * rx-51-2009-18-3 release + * Fixes: NB#109212 - Remove MUSB AUTOIDLE + * Fixes: NB#110978 - fix kernel crash when slab debugging is enabled + * WLAN and Bluetooth driver fixes + * Add off mode support in the Bluetooth driver + * Fixes: NB#108508 - Use random BSSID during ad-hoc WLAN network + creation + * Audio support for S3.1 boards + * Audio/All: 219 lines changed. + * Video/All: 49 lines changed. + + -- Yauheni Kaliuta Wed, 29 Apr 2009 15:27:45 +0300 + +kernel (2.6.28-20091802) intrepid; urgency=low + + * rx-51-2009-18-2 release + * Fixes: NB#111728, NB#111512 - PC Suite connection problems + * Video/All: 49 lines changed. + + -- Yauheni Kaliuta Mon, 27 Apr 2009 14:50:12 +0300 + +kernel (2.6.28-20091801) intrepid; urgency=low + + * rx-51-2009-18-1 release + * Fixes: NB#105829 - MMC does not work with suspend / resume + * Fixes: NB#111265 - MMC does not work with Dynamic Power Switching + * Video/All: 49 lines changed. + + -- Yauheni Kaliuta Mon, 27 Apr 2009 11:07:17 +0300 + +kernel (2.6.28-20091707) intrepid; urgency=low + + * rx-51-2009-17-7 release + * Workaround for USB host off mode problem + * Fix infinite loop in prcm interrupt handler + * Fixes: NB#106485 - Device reboots/shutdown during BT file receiving + * Fixes: NB#110835 - PVR: lock dependency bug + * Fixes: NB#111633 - Kernel fault while encoding high quality jpeg + image + * Fixes: NB#109980, NB#111270 - Kernel crash while video playback and + seek + * Fixes: NB#109628 - Kernel crash while capturing an image + * Audio/All: 396 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Thu, 23 Apr 2009 16:22:25 +0300 + +kernel (2.6.28-20091706) intrepid; urgency=low + + * rx-51-2009-17-6 release + * Fixes: NB#110660, NB#110132 - touchscreen kernel oops + * Fixes: NB#100059 - Led mux sysfs interface didn't read value + properly. + * Audio/All: 396 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Thu, 23 Apr 2009 11:15:34 +0300 + +kernel (2.6.28-20091705) intrepid; urgency=low + + * rx-51-2009-17-5 release + * fix the serial.h header and make it userspace-friendly + * Audio/All: 396 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Wed, 22 Apr 2009 13:48:38 +0300 + +kernel (2.6.28-20091704r01) intrepid; urgency=low + + * Changelog fixed (reopened bug removed). + + -- Yauheni Kaliuta Tue, 21 Apr 2009 17:56:57 +0300 + +kernel (2.6.28-20091704) intrepid; urgency=low + + * rx-51-2009-17-4 release + * DSS2: VRFB: clear the FB area through the physical region + * Audio/All: 396 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Tue, 21 Apr 2009 17:31:54 +0300 + +kernel (2.6.28-20091703) intrepid; urgency=low + + * rx-51-2009-17-3 release + * Implemented touchscreen selftest + * DSS2: Support for hardware rotation (VRFB) + * DSS2: Improving TV-out quality + * Fixes: NB#105366, NB#100858, NB#109342 - Charger not detected if + connecting slowly + * Added debugfs support to the WLAN driver + * Audio/All: 396 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Tue, 21 Apr 2009 17:19:09 +0300 + +kernel (2.6.28-20091702.1) intrepid; urgency=low + + * Build linux-kernel-headers for any arch + + -- Yauheni Kaliuta Tue, 21 Apr 2009 13:29:08 +0300 + +kernel (2.6.28-20091702) intrepid; urgency=low + + * rx-51-2009-17-2 release + * Revert problematic camera changes resulting to too dim viewfinder. + * Fix kernel oops introduced by recent USB changes. + * Audio/All: 396 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Tue, 21 Apr 2009 13:20:07 +0300 + +kernel (2.6.28-20091701) intrepid; urgency=low + + * rx-51-2009-17-1 release + * Fixes: NB#110373, NB#108358, NB#109090 - DMA support + rework + * Fixes: NB#107713 - remove usb debugging messages + * new dma support for musb: read ~20MB/sec, write ~23MB/sec + * Fixes: NB#109732 - ALSA driver does not report delays accurately + * Audio/All: 326 lines changed. + * Cellular/Common: 75 lines changed. + + -- Yauheni Kaliuta Mon, 20 Apr 2009 12:39:19 +0300 + +kernel (2.6.28-20091604) intrepid; urgency=low + + * rx-51-2009-16-4 release + * Fixes: NB#109717 - dspbridge doesn't clean up some resrouces when + client process dies + * FMTX internal chirp features are available + * Audio/All: 326 lines changed. + + -- Yauheni Kaliuta Fri, 17 Apr 2009 14:07:50 +0300 + +kernel (2.6.28-20091603r01) intrepid; urgency=low + + * Changelog fixed. + + -- Yauheni Kaliuta Thu, 16 Apr 2009 14:45:03 +0300 + +kernel (2.6.28-20091603) intrepid; urgency=low + + * rx-51-2009-16-3 release + * Fixes: NB#107480 - camera: fix sporadic crashes + * Fixes: NB#103397 - camera: fix rgb -> yuv colour space conversion + * Fixes: NB#105498 - camera: release resources in error conditions + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Thu, 16 Apr 2009 14:26:43 +0300 + +kernel (2.6.28-20091602) intrepid; urgency=low + + * rx-51-2009-16-2 release + * enable CPU and IVA to run at 600 and 430Mhz respectively (OPP5) + * Cellular/Common: 84 lines changed. + + -- Yauheni Kaliuta Wed, 15 Apr 2009 13:52:30 +0300 + +kernel (2.6.28-20091601r01) intrepid; urgency=low + + * Changelog fixed. + + -- Yauheni Kaliuta Tue, 14 Apr 2009 14:02:52 +0300 + +kernel (2.6.28-20091601) intrepid; urgency=low + + * rx-51-2009-16-1 release + * Fixes: NB#105483 - camera: add DVFS (power-management) support + * Fixes: NB#105312 - camera: fix error message prefixes + * Fixes: NB#109981 - camera: remove useless console print + * Cellular/Common: 84 lines changed. + + -- Yauheni Kaliuta Tue, 14 Apr 2009 12:52:14 +0300 + +kernel (2.6.28-20091503r01) intrepid; urgency=low + + * Changelog fixed. + + -- Yauheni Kaliuta Tue, 14 Apr 2009 12:39:59 +0300 + +kernel (2.6.28-20091503) intrepid; urgency=low + + * rx-51-2009-15-3 release + * Fixes: NB#109873 - ensure UBIFS does not get stuck 100% full + * fix DMA spurious interrupts + * Proc filesystem is now free of BKLs + * Fixes: NB#110053 - Sidetone routed only to left output using headset + mic + * DSS2: sync with the linux-dss tree + * DSS2: fixes for video scaling, rotation + * DSS2: support for 32bpp startup + * Fixes: NB#106295 - prevent potential kernel crash in the MMC driver + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Wed, 08 Apr 2009 17:04:34 +0300 + +kernel (2.6.28-20091502) intrepid; urgency=low + + * rx-51-2009-15-2 release + * Audio free of McBSP non-legacy interrupts + * Accessory detection improvements + * Fixes: NB#108050 - Fix TV-out detection on pre-B3 and later hardware + * Fixes: NB#109979 - supress excessive iommu messages + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Tue, 07 Apr 2009 14:52:29 +0300 + +kernel (2.6.28-20091501) intrepid; urgency=low + + * rx-51-2009-15-1 release + * Fix spurious interrupts from various GPIO-based HW + * added a limit to the transmit queue in the WLAN driver + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Mon, 06 Apr 2009 16:06:22 +0300 + +kernel (2.6.28-20091406) intrepid; urgency=low + + * rx-51-2009-14-6 release + * Fixes: NB#108723 - properly initialise TWL4030's MMC power lines + after warm reboot + * Fix off-mode instabilities on OMAP3 ES3.1 + * Fixes: NB#109033 - Prevent some mixer settings from turning ALSA PCM + clocks off + * Cellular/Common: 129 lines changed. + + -- Yauheni Kaliuta Fri, 03 Apr 2009 14:41:10 +0300 + +kernel (2.6.28-20091405) intrepid; urgency=low + + * rx-51-2009-14-5 release + * Fixes: NB#109255 - Section mismatch compilation warnings + * OMAP SSI and McSAAB fixes + * Fixes: NB#107848 - fix CMT resetting in case of bursts of small DMA + transfers + * Cellular/Common: 129 lines changed. + + -- Yauheni Kaliuta Thu, 02 Apr 2009 10:25:38 +0300 + +kernel (2.6.28-20091404r01) intrepid; urgency=low + + * Changelog fixed. + + -- Yauheni Kaliuta Wed, 01 Apr 2009 14:29:29 +0300 + +kernel (2.6.28-20091404) intrepid; urgency=low + + * rx-51-2009-14-4 release + * Touchscreen ESD watchdog implemented + * Implemented: NR#191331 - REQ: Touchscreen ESD watchdog + * Add possibility to write pre-emphasis setting for FMTX + * Make FMTX wait properly for TX commands to finish + * Make ALSA pcm pointer always report correct values + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Wed, 01 Apr 2009 13:05:06 +0300 + +kernel (2.6.28-20091403) intrepid; urgency=low + + * rx-51-2009-14-3 release + * Fixes: NB#107896 - fix battery type detection + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Tue, 31 Mar 2009 17:38:06 +0300 + +kernel (2.6.28-20091402) intrepid; urgency=low + + * rx-51-2009-14-2 release + * Camera: fix unwanted zoom + * Fixes: NB#106972 - camera: viewfinder image area matches captured + image + * Fixes: NB#102985 - Fix I2C latency problems occurring after OFF mode + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Tue, 31 Mar 2009 17:03:23 +0300 + +kernel (2.6.28-20091401) intrepid; urgency=low + + * rx-51-2009-14-1 release + * Fixes: NB#95702 - Workaround to missing reset line for usb + transceiver + * Fixes: NB#92370, NB#92676 - fix twl4030-usb-related compilation + issues + * Fixes: NB#103070 - Don't allow USB enumeration if no gadget driver + is loaded + * Synchronize USB driver with mainline + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Mon, 30 Mar 2009 13:00:40 +0300 + +kernel (2.6.28-20091305) intrepid; urgency=low + + * rx-51-2009-13-5 release + * Fixes: NB#94234 - camera: improved crop support + * Fixes: NB#107480 - camera: fix device crash + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Fri, 27 Mar 2009 12:32:48 +0200 + +kernel (2.6.28-20091304) intrepid; urgency=low + + * rx-51-2009-13-4 release + * Fixes: NB#101824 - fix MMC shutdown + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Thu, 26 Mar 2009 12:10:23 +0200 + +kernel (2.6.28-20091303) intrepid; urgency=low + + * rx-51-2009-13-3 release + * Fix dvfs issues + * Fix off mode stability issues with ES3 + * Fix non-working voltage autocompensation + * simple cleanups in the wl12xx driver + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Wed, 25 Mar 2009 10:50:15 +0200 + +kernel (2.6.28-20091302) intrepid; urgency=low + + * rx-51-2009-13-2 release + * Fixes: NB#103490 - add missing "disable_kp" sysfs interface + * ALSA configurations cannot hang the device anymore + * Cellular/Common: 0 lines changed. + + -- Yauheni Kaliuta Tue, 24 Mar 2009 15:23:21 +0200 + +kernel (2.6.28-20091301) intrepid; urgency=low + + * rx-51-2009-13-1 release + * Headphone muting no longer occurs after retention + * Fixes: NB#106714 - in odd way after settings modification headset + audio disappears + * Fixes: NB#105788 - Use initial backlight level as set by the + bootloader + * Cellular/Common: 124 lines changed. + + -- Yauheni Kaliuta Mon, 23 Mar 2009 16:40:29 +0200 + +kernel (2.6.28-20091206) intrepid; urgency=low + + * rx-51-2009-12-6 release + * Revert a change that caused lockdep warnings + + -- Yauheni Kaliuta Fri, 20 Mar 2009 13:41:56 +0200 + +kernel (2.6.28-20091205) intrepid; urgency=low + + * rx-51-2009-12-5 release + * Fixes: NB#94315 - fix too high isp1704/isp1707 power consumption + * Fixes: NB#104657 - make g_file_storage draw vbus + * Fixes: NB#104792 - bridgedriver modprobe kernel crash + + -- Yauheni Kaliuta Thu, 19 Mar 2009 17:18:40 +0200 + +kernel (2.6.28-20091204r02) intrepid; urgency=low + + * Fix a problem in changelog breaking build. + + -- Yauheni Kaliuta Thu, 19 Mar 2009 16:59:57 +0200 + +kernel (2.6.28-20091204r01) intrepid; urgency=low + + * Fix Lintian error (not-binnmuable-any-depends-any) + + -- Yauheni Kaliuta Thu, 19 Mar 2009 16:34:58 +0200 + +kernel (2.6.28-20091204) intrepid; urgency=low + + * rx-51-2009-12-4 release + * Fixes: NB#103378 - 'sys_shmdt' performance regression in 2.6.28 + kernel + * Fixes: NB#102970 - camera: fix noise lines in image + * Fixes: NB#92509 - camera: avoid module removal crash + * Fixes: NB#104172 - camera: limit flash current + * Fix FMTX timing issues with production line + * Force some alsa controls to report their changes + * Fix an audio DMA bug for recording after playback + + -- Yauheni Kaliuta Thu, 19 Mar 2009 15:02:30 +0200 + +kernel (2.6.28-20091203) intrepid; urgency=low + + * rx-51-2009-12-3 release + * Fixes: NB#104782 - Crash if number of applications reaches 6 + * Enable the new DSS2 display driver + * wl12xx implements CTS protection + * Fixes: NB#104904 - WLAN Packet corruption with high data rates + * Fixes: NB#104647 - improve kernel boot time by disabling + /bin/hotplug + + -- Yauheni Kaliuta Wed, 18 Mar 2009 12:19:59 +0200 + +kernel (2.6.28-20091202r01) intrepid; urgency=low + + * Fixed a problem in changelog breaking build. + + -- Yauheni Kaliuta Tue, 17 Mar 2009 16:32:04 +0200 + +kernel (2.6.28-20091202) intrepid; urgency=low + + * rx-51-2009-12-2 release + * Fix FMTX (radio) powering issues + * Make audio buffering more flexible and McBSP clocking safer + * improve image quality by handle SBL overflows + * Fixes: NB#97692 - fix kernel camera crashes while capturing photos + * Fixes: NB#104316 - make camera daemon recognise /dev/video1 + * Make camera actually take pictures in all video modes + * Fixes: NB#102530 - support more than one camera daemon at once + * Fixes: NB#104243 - improve camera images quality + + -- Yauheni Kaliuta Tue, 17 Mar 2009 15:30:51 +0200 + +kernel (2.6.28-20091201) intrepid; urgency=low + + * rx-51-2009-12-1 release + * Fix off mode stability issues + * Enable dynamic power management for SGX + * Fixes: NB#104723 - read-only pages are incorrectly marked as + executable + + -- Yauheni Kaliuta Tue, 17 Mar 2009 12:05:52 +0200 + +kernel (2.6.28-20091104r01) intrepid; urgency=low + + * rx-51-2009-11-4 release + * Fixes: NB#105537 - turning CABC to off turns the backlight off + * Make audio consume minimal amount of power + * I2C and twl4030-madc performance and reliability fixes + * Fixes: NB#104788 - device hangs when loading bridgedriver + * Fixes: NB#104459 - do not enable all GPIOs marked as output at boot + + -- Yauheni Kaliuta Thu, 12 Mar 2009 14:35:41 +0200 + +kernel (2.6.28-20091103) intrepid; urgency=low + + * rx-51-2009-11-3 release + * Improvements and bugs fixed + * Cleanups in wl12xx for upstream release + * Fixes: NB#98579 - wl12xx: add short slot support + * Fixes: NB#101619 - Multiple SSIDs are not working + * Fixes: NB#98578 - wl12xx: add short preamble support + * Suspend/resume works also when camera is in use now. + * LSC error handling improvements. + * Support daemon for more than one camera at once. + * Make aic34b play without noise + * Use automatic stereo and mono switching for FMRX + * Fix detection of WH-200 and WH-201 wired headsets + * Disable unused codec input pins for aic34a + * Fixes: NB#100430 - Poor FMRX sensitivity + * Fixes: NB#102187 - Some wired headsets are not recognized when + plugged in + + -- Yauheni Kaliuta Wed, 11 Mar 2009 11:11:04 +0200 + +kernel (2.6.28-20091102r01) intrepid; urgency=low + + * rx-51-2009-11-2 release + * Fixes: NB#88151 - WLAN transmission rate is always 1 Mbit/s + + -- Yauheni Kaliuta Tue, 10 Mar 2009 16:56:23 +0200 + +kernel (2.6.28-20091101) intrepid; urgency=low + + * rx-51-2009-11-1 release + * DSS2 bug fixes (DSS2 is still not enabled in Kconfig) + * Fix TV-OUT when changing its plane attributes + * upgrade to SGX 1.3 (fingers crossed) + * Fixes: NB#104671 - kernel debugging overhead is too high + * Fixes: NB#103310 - touches registered nowhere near where you pressed + * Touchscreen driver fixed to ignore duplicate samples + + -- Yauheni Kaliuta Mon, 09 Mar 2009 17:34:09 +0200 + +kernel (2.6.28-20091002) intrepid; urgency=low + + * rx-51-2009-10-2 release + * Fix phonet redirection + * Fixes: NB#102996 - fix CMT crashes when READY message is sent twice + + -- Yauheni Kaliuta Wed, 04 Mar 2009 14:49:03 +0200 + +kernel (2.6.28-20091001r01) intrepid; urgency=low + + * rx-51-2009-10-1 release + * Added support for disabling VUSB regulators. + * Fixes: NB#97317 - TWL5030 USB regulators are always active + * Simplify bluetooth pairing process + + -- Yauheni Kaliuta Mon, 02 Mar 2009 18:11:26 +0200 + +kernel (2.6.28-20090902) intrepid; urgency=low + + * rx-51-2009-09-2 release + * Partial fix for bug 94234 (crop doesn't work correctly in V4L2 API) + * a lot of cosmetic cleanups in camera code + * cmt_speech DMA transfers not aligned to cacheline size + * upgrade CMT speech driver to v0.2 + + -- Yauheni Kaliuta Fri, 27 Feb 2009 08:37:51 +0200 + +kernel (2.6.28-20090901) intrepid; urgency=low + + * rx-51-2009-09-1 release + * HACK: OMAP3: fix broken DVFS + * OMAP: McBSP: Retain McBSP FCLK clockactivity + * OMAP: tsc2005: Compatibility with both evdev and tslib + * HACK: omap iommu: temporary disable iommu for iva2 + + -- Yauheni Kaliuta Tue, 24 Feb 2009 09:08:01 +0200 + +kernel (2.6.28-20090802) intrepid; urgency=low + + * rx-51-2009-08-2 release + * TIDSPBRIDGE: PM compatible release + * Fixes: NB#101622, NB#102195 + * Fixed cloning for TVOUT. + * camera: update rx51_defconfig for smia_sensor driver + * OMAP: fix oprofile + * Fixes: NB#94793 + * HACK: omap iommu: temporary disable iommu for iva2 + + -- Yauheni Kaliuta Fri, 20 Feb 2009 14:45:04 +0200 + +kernel (2.6.28-20090801) intrepid; urgency=low + + * rx-51-2009-08-1 release + * TIDSPBRIDGE: Merged upstream PM patches + * Fixes: NB#101622 + * Detect removal of one MicroSD card and insertion of another. Fixes: + NB#100483. + * wl12xx: fix null frame template bssid + * wlan: Fixed bug that was causing 70-80% packet loss with power + saving enabled + * bluetooth: No changes in this release + * Fixes: NB#102001 + * lis302dl: power state was kept inconsistently, i2c communication + returns type-casted + * leds: lp5523: don't use uninitialized value + * Partly fixing the bug 94052: New LED-interface doesn't (always) work + * Fixes: NB#94052 + * RX51: Make accessory detection more tolerant to slow plug. + * RX51: Fix broken open cable connection detection. + * ASoC: TLV320AIC3X: Remove one extra line. + * ASoC: TLV320AIC3X: Fix volume ranges. + * ASoC: TLV320AIC3X: Add TLV information for volume controls. + * ASoC: RX51: Add TLV information for board amplifiers. + * ARM: OMAP: Allow I2C bus driver to be compiled as a module + * Fixes: NB#83357 + * SPI: tsc2005: fix - spurious pen-up events under preemptive kernel + * OMAPFB: Fix color mode handling when cloning planes + * OMAPFB: Retention / OFF mode support + * OMAPFB: Fix for module build + * rx51: Drop mt9p012t and tcm8330md sensors + * omap3: Fix ISP resources + * rx51: change board files for smia-sensor + * Do stuff. + + -- Yauheni Kaliuta Thu, 19 Feb 2009 14:39:00 +0200 + +kernel (2.6.28-20090702r01) intrepid; urgency=low + + * rx-51-2009-07-2 release + * Fixes: NB#98712 + * DSPBRIDGE: Add PM patches which will be replaced by the official + ones + * Set MMC slot_names to "internal" and external". + * Change kernel command line to select UBI MTD by name. + * Select mtdoops MTD by name. + * Fixes: NB#100165 + * Cellular: a bunch of Coverity issues fiexs + * Cellular: an OOPS in out-of-memory condition + * mac80211: unlock while canceling work task + * wl12xx: Fix scan deadlock + * wl12xx: Fixed debugging in irq_work + * wl12xx: Abstracted plt initialization code + * wl12xx: Abstracted wl12xx_hw_init() into chip-specific functions + * wl12xx: Moved hw init routines to a separate file + * wl12xx: Moved function declarations to the bottom of the acx.h file + * bluetooth: Increase timeout for chip detection + * bluetooth: ti1273: Add support for ti1273 + * bluetooth: Drop support for brf6150 bluetooth chip + * bluetooth: rx71: add bluetooth configuration for rx71 board + * Fixes: NB#99272 + * RX51: McBSP: Fix spinlocks to be irq safe + * OMAP: ASoC: Fix spinlock misuse in omap-pcm.c + * ALSA: ASoC: TLV320AIC3X: Update for proper functionality with 2.6.28 + * RX51 ASoC: Disable TPA6130 HP amplifier when fmtx is enabled + * rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + * rx51_defconfig: Enable vibra in defconfig + * twl4030-vibra: Unloading vibra modul fails + * OMAP McSPI: Fix context save/restore + * OMAP McSPI: spin_unlock_irq() missing + * OMAP: tsc2005 finetuning + * Fixes: NB#93760 + * OMAPFB: Workaround for boot time display init problem + * omap34xxcam: allow opening device without sensor + * omap34xcam: Power down slave in registration only if powerup + succeeded + * omap34xxcam: Make omap34xxcam_slave_power_suggest nop when delay is + zero + * et8ek8: Power up fixes + * vs6555: Power up fixes. + * ad5820: Power up changes. + * adp1653: Power up changes. + * et8ek8: add support for V4L2_CID_TEST_PATTERN + * V4L: add V4L2_CID_TEST_PATTERN + + -- Yauheni Kaliuta Fri, 13 Feb 2009 11:18:19 +0200 + +kernel (2.6.27-20090603) intrepid; urgency=low + + * rx-51-2009-06-3 release + * Add UBIFS patches queued for mainline. Fixes: NB#96915 + * usb: musb: big dma rewrite + * usb: musb: context save/restore for musb + * usb: gadget: enable second configuration on file_storage + * PVR: downgraded Updated to the Tungsten september code drop + * OMAPFB: Retention / OFF mode support + + -- Yauheni Kaliuta Wed, 04 Feb 2009 17:31:20 +0200 + +kernel (2.6.27-20090602) intrepid; urgency=low + + * rx-51-2009-06-2 release + * LIRC RX51: Enable lirc_rx51 modules in rx51_defconfig + * Add LIRC support for RX51 CIR + * Export dmtimer functions + * Merge lirc_dev from upstream + * Implemented: NR#190495, NR#191312, NR#190495 + * Two corrections needed for OFF mode testing: + * I2C: OMAP: Add missing wakeup events + * I2C: OMAP: Include OMAP_I2C_SYSC_REG in save and restore + * omap34xcam: Power down slave in registration only if powerup + succeeded + * omap34xxcam: Make omap34xxcam_slave_power_suggest nop when delay is + zero + * et8ek8: Power up fixes + * vs6555: Power up fixes. + * ad5820: Power up changes. + * adp1653: Power up changes. + * et8ek8: sensor i2c interface must be initialized before reading + EEPROM + * smiaregs: smiaregs.h is not meant for user space at all + * smiaregs: add magic to firmware to identify it and its version + * et8ek8: add support for V4L2_CID_TEST_PATTERN + * V4L: add V4L2_CID_TEST_PATTERN + * Fixes: NB#100074, NB#90371, NB#90280 + + -- Yauheni Kaliuta Wed, 04 Feb 2009 15:20:09 +0200 + +kernel (2.6.27-20090601) intrepid; urgency=low + + * rx-51-2009-06-1 release + * wl12xx: Fix scan deadlock + * bluetooth: Don't try to lock resources twice + * bluetooth: Update uart initialization + * Fixes: NB#99164 + * watchdog: fix kernel crash when probing omap_wdt + * Fixes: NB#83301 + * RX51: Accessory detection reliability improvements + * RX51: Report TV out and physical insert using the jack reporting API + * ALSA: Add support for video out to the jack reporting API + * ALSA: Reduce boilerplate for new jack types + * ALSA: Add support for mechanical jack insertion + + -- Yauheni Kaliuta Mon, 02 Feb 2009 15:56:26 +0200 + +kernel (2.6.27-20090504) unstable; urgency=low + + * rx-51-2009-05-4 release + * Set CONFIG_BRIDGE_DEBUG=n + * Fixes: NB#96913 + * rx51: Use KEY_F8 for volume down key + * Fixes: NB#94898 + * sunrpc: do not pin sunrpc module in the memory. Fixes: NB#88240 + + -- Yauheni Kaliuta Wed, 28 Jan 2009 16:35:13 +0200 + +kernel (2.6.27-20090503) unstable; urgency=low + + * rx-51-2009-05-3 release + * DSS: Increase delay before switching to LCD backlight control + + -- Yauheni Kaliuta Tue, 27 Jan 2009 20:00:21 +0200 + +kernel (2.6.27-20090502) unstable; urgency=low + + * rx-51-2009-05-2 release + * PVR: Updated to the Tungsten september code drop + * DSS: Added support to change TV standard + * PVR: Export header needed for user space + * PVR: Add support for LCD Content Adaptive Backlight Control + * Implemented: NR#192922 + + -- Yauheni Kaliuta Tue, 27 Jan 2009 17:58:23 +0200 + +kernel (2.6.27-20090501) unstable; urgency=low + + * rx-51-2009-05-1 release + * wl12xx: Align packets to 32-bit boundary + * Fixes: NB#98600 + + -- Yauheni Kaliuta Mon, 26 Jan 2009 19:42:48 +0200 + +kernel (2.6.27-20090402) unstable; urgency=low + + * rx-51-2009-04-2 release + * bluetooth: Don't try to lock resources twice + * bluetooth: Update uart initialization + * Bluetooth: Fix leak of uninitialized data to userspace + * Bluetooth: Fix warnings for bt_key_strings and bt_slock_key_strings + * Bluetooth: Send HCI Reset command by default on device + initialization + * Bluetooth: Enable per-module dynamic debug messages + * Bluetooth: Fix format arguments warning + * Bluetooth: Fix RFCOMM release oops when device is still in use + * Bluetooth: Fix issue with return value of rfcomm_sock_sendmsg() + * Bluetooth: Preparation for usage for SOL_BLUETOOTH + * Bluetooth: Add global deferred socket parameter + * Bluetooth: Add support for deferring RFCOMM connection setup + * Bluetooth: Add support for deferring L2CAP connection setup + * Bluetooth: Reject incoming SCO connections without listeners + * Bluetooth: Fix SCO state handling for incoming connections + * Bluetooth: Add enhanced security model for Simple Pairing + * Bluetooth: Replace L2CAP link mode with security level + * Bluetooth: Replace RFCOMM link mode with security level + * Bluetooth: Pause RFCOMM TX when encryption drops + * Bluetooth: Disconnect L2CAP connections without encryption + * Bluetooth: Restrict application of socket options + * Bluetooth: Update version numbers + * Fixes: NB#90538 + * ARM: OMAP: Remove experimental barriers from sidetone core + * ASoC: Use TDM mode instead of I2S + * ARM: OMAP: Add sidetone feature for OMAP34xx McBSP ports 2 and 3. + Implemented: NR#192024. + * omap3isp: Wait for submodules in isp_stop() + * rx51: more reliable powerup and detection + * omap34xxcam: allow opening device without sensor + * omap34xxcam: fix potential locking bug in vidioc_cropcap + * Fixes: NB#97692 + * Fixes: NB#88907 + + -- Yauheni Kaliuta Thu, 22 Jan 2009 16:14:56 +0200 + +kernel (2.6.27-20090401) unstable; urgency=low + + * rx-51-2009-04-1 release + * McBSP: Provide functions for ASoC frame syncronization + * ASoC: Always syncronize audio transfers on frames + * ARM: OMAP3: Enable writing to XCCR and RCCR McBSP registers for OMAP + 2430/34xx + * Revert "FMTX: Disable Transmit Audio Dynamic Range Control by + default" + * Revert "OMAP: Fix McBSP spin_lock deadlock" + * OMAP: Fix McBSP spin_lock deadlock + + -- Yauheni Kaliuta Mon, 19 Jan 2009 18:11:23 +0200 + +kernel (2.6.27-20090304) unstable; urgency=low + + * rx-51-2009-03-4 release + * Just changed the daemon ioctl numbers, once again... + * omap iommu: disable iva2 iommu temporary + * V4L: add flash light control ids + * adp1653: move header file to include/media, renumber controls + * rx51: update adp1653.h path + * Fixes: NB#97752 + + -- Yauheni Kaliuta Fri, 16 Jan 2009 15:59:55 +0200 + +kernel (2.6.27-20090303r01) unstable; urgency=low + + * Fixed changelog. + * Implemented: NR#192687. + * f_obex: Don't enable/disable each OBEX function more than once + + -- Yauheni Kaliuta Fri, 16 Jan 2009 14:26:54 +0200 + +kernel (2.6.27-20090303) unstable; urgency=low + + * rx-51-2009-03-3 release + * usb: musb: mA sysfs entry + * RX51: Give the single thread queue a name + * RX51: Improve accessory detection + * RX51: Detect accessories on module load + * RX51: Detect connection of an open cable + * RX51: Add support for basic headset button + * Implemented: NR#191262, NR#192937 + * FMTX: Do not let the tune measure run if the chip is not powered + * FMTX: Use proper default values. Fix a copy paste bug also. + * FMTX: Disable Transmit Audio Dynamic Range Control by default + * vs6555: Rework initialisation, use default xclk + * et8ek8: Rework initialisation + * rx51: Set wait_hs_vs 2 for acmelite + * omap3camd: Set maximum blob size 1 << 18 + * Fixes: NB#97358 + + -- Yauheni Kaliuta Fri, 16 Jan 2009 13:06:31 +0200 + +kernel (2.6.27-20090302) unstable; urgency=low + + * rx-51-2009-03-2 release + * Add UBI patches from mainline + * Add MMC patches from OMAP mailing list + * Add MMC cover detection + * wl12xx: fix hw scan to work with dma + * wl12xx: Fixed a few warnings on wl1271.c + * wl12xx: Fix hardware scan + * mac80211: Don't reassociate from the kernel space + * Ignore RESET_BSS event for now + * wl12xx: don't use Extreme Low Power mode + * Remove sleeping functions from __rfcomm_dlc_close + * wl12xx: Abstracted interrupt handling code + * wl12xx: Target enable interrupts functions is now chip-dependent + * patch "omap2_mcspi: disable DMA" was removed + * Fixes: NB#97315, NB#88968, NB#93545, NB#86551 + * Fixes: NB#90503 + * Implemented: NR#192636 + + -- Yauheni Kaliuta Wed, 14 Jan 2009 17:49:07 +0200 + +kernel (2.6.27-20090301) unstable; urgency=low + + * rx-51-2009-03-1 release + * Adds UBIFS patches from linux-next + * Fixes: NB#87571 + * Added FB cloning support + * omap3isp: Allow wait_hs_vs to be less than 1. + * omap3isp: Call isp_buf_init() also in isp_configure_interface() + * omap3hack: omap_previewer_hack.c call isp conf + * Fixes: NB#93833 + * omap34xxcam: Make delayed slave power off configurable + * omap34xxcam: Disable delayed slave poweroff + * omap3isp: Unblock statistics ioctls + * omap3camd: Redefine daemon ioctl numbers + * omap3isp: Cleanups + * ad5820: remove control id definitions and move to include/media + * rx51: update board files to new header file path + * V4L: add ad5820 focus specific custom controls + * Fixes: NB#93201, NB#89644 + * kint completed successfully, kint_result contains the merge outcome + + -- Yauheni Kaliuta Mon, 12 Jan 2009 13:14:13 +0200 + +kernel (2.6.27-20090202r03) unstable; urgency=low + + * Fixed bugfix set: remove 92605. + + -- Yauheni Kaliuta Fri, 09 Jan 2009 14:19:58 +0200 + +kernel (2.6.27-20090202r02) unstable; urgency=low + + * i2c: i2c-omap: Fix BUFSTAT_REG reading + * i2c: i2c-omap: Fix standard and fast mode prescalers + + -- Yauheni Kaliuta Thu, 08 Jan 2009 16:53:15 +0200 + +kernel (2.6.27-20090202r01) unstable; urgency=low + + * input: keyboard: twl4030 keypad Kconfig dependency fix + + -- Yauheni Kaliuta Thu, 08 Jan 2009 13:22:24 +0200 + +kernel (2.6.27-20090202) unstable; urgency=low + + * Aded missed patches. + - rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + - rx51_defconfig: add oprofile module + + -- Yauheni Kaliuta Thu, 08 Jan 2009 12:17:04 +0200 + +kernel (2.6.27-20090201) unstable; urgency=low + + [ Adrian Hunter ] + * Omits 2 patches reverted in rx-51-2009-01-1 + - omap-hsmmc: Implement scatter-gather emulation + - HSMMC: Limit internal MMC clock to 16 MHz + * Updates mmc_block patches + + [ Sakari Ailus ] + * omap iommu: Do proper vunmap() in vunmap_sg() + * omap34xxcam: Fix module author e-mail. + * omap34xxcam: Get rid of hw resources + * omap3isp: Add interface type ISP_NONE for preview / resizer only operation + * ad5820: Compile fix. + * vs6555: remove remains of built-in modelist and other unneeded lines + * vs6555: change exposure value units to microseconds + * ad5820: change focus control name to standard + * adp1653: remove unused definitions + * V4L: Create control class for sensor mode + * smiaregs: add support for mode information controls + * et8ek8: replace g_smia_mode with V4L2 controls + * mt9p012: remove g_smia_mode + * vs6555: VIDIOC_QUERYCTRL now returns proper value for exposure step + * vs6555: add mode information controls + * smiaregs: add sensitivity parameter + * tcm8330md: remove g_smia_mode + * ad5820: move header file to include/media due to public kernel interface + * rx51: update location of ad5820.h + * omap3isp: Fix error checking for isp_addr in isp_vbq_prepare + * omap3hack: omap-previewer-cleanup-code-and-character-device-creation + * omap3isp: corect applying of RGB2RGB, RGB2YUV and WBAL + * Revert "omap iommu: Do proper vunmap() in vunmap_sg()" + * omap iommu: upstream update-20081229 + * omap3isp: omap iommu upstream update-20081229 + * Fixes: NB#89932, NB#90572, NB#91100, NB#91546, NB#88700, NB#90156, NB#91499 + * Fixes: NB#92356, NB#88689 + + -- Yauheni Kaliuta Wed, 07 Jan 2009 14:24:29 +0200 + +kernel (2.6.27-20090102) unstable; urgency=low + + * rx51_defconfig: add console=tty0 to cmd_line + * bluetooth: don't set WAKEUPEN on CTS line + * Don't mask rtc-twl4030 alarm interrupts on shutdown + + [ Rémi Denis-Courmont ] + * Fix compilation + + [ Felipe Balbi ] + * Fixes: NB#92211 + * Fixes: NB#96353 + + [ Eero Nurkkala ] + * This patch fixes possibly several audio related odds. + * There's no single bug that may be pointed out. + + [ Sakari Ailus ] + * Fixed patch names, no other changes + + [ Imre Deak ] + * TSC2005: fix typo in disable ts call + * TSC2005: get irq number from spi->irq instead of platform_data + + -- Yauheni Kaliuta Tue, 30 Dec 2008 19:31:01 +0200 + +kernel (2.6.27-20090101) unstable; urgency=low + + * rx-51-2009-01-1 release. + * f_obex: Don't enable/disable each OBEX function more than once. + * usb: musb: fix busy field handling, fixes: NB#93569, NB#94576. + * usb: musb: remove charger sysfs entry on failure path. + + -- Yauheni Kaliuta Mon, 29 Dec 2008 13:35:40 +0200 + +kernel (2.6.27-20085103) unstable; urgency=low + + * rx-51-2008-51-3 release + * bluetooth: don't set WAKEUPEN on CTS line + + -- Yauheni Kaliuta Thu, 18 Dec 2008 17:09:17 +0200 + +kernel (2.6.27-20085102) unstable; urgency=low + + * rx-51-2008-51-2 release + * Fix some PM issues in bluetooth device driver + * vs6555: remove remains of built-in modelist and other unneeded lines + * vs6555: change exposure value units to microseconds + * Sync SSI DMA area before unmapping - Fixes: NB#95089 + + -- Yauheni Kaliuta Wed, 17 Dec 2008 11:54:22 +0200 + +kernel (2.6.27-20085101r01) unstable; urgency=low + + * Fixes bugfixing line + + -- Yauheni Kaliuta Mon, 15 Dec 2008 17:25:01 +0200 + +kernel (2.6.27-20085101) unstable; urgency=low + + * rx-51-2008-51-1 release + * Remove rx51_camera_btn driver + * ARM: OMAP: RX-51: Fix Fn/Shift keymap + * Revert "HSMMC: Limit internal MMC clock to 16 MHz" + * Revert "omap-hsmmc: Implement scatter-gather emulation" + * Enable leds_twl4030_vibra + * Fixes: NB#95651, NB#95173 + + -- Yauheni Kaliuta Mon, 15 Dec 2008 17:01:48 +0200 + +kernel (2.6.27-20085002r01) unstable; urgency=low + + * Fixes bugfixes list. + + -- Yauheni Kaliuta Wed, 10 Dec 2008 14:57:51 +0200 + +kernel (2.6.27-20085002) unstable; urgency=low + + * rx-51-2008-50-2 release + * rx51: peripheral: define +/- keycode + * dsp bridge updates / fixes + * Fixes: NB#94689, NB#94627, NB#94185, NB#94627, NB#94228 + + -- Yauheni Kaliuta Tue, 09 Dec 2008 16:07:35 +0200 + +kernel (2.6.27-20085001) unstable; urgency=low + + * rx-51-2008-50-1 release + * CAMERA: IOMMU update "no more multi-hit-fault" from Hiroshi Doyu + * CAMERA: White balance coefficient fixes from Gjorgji Rosikopulos + * CAMERA: Fix (some) daemon/app communication deadlocks + * CAMERA: Make omap34xxcam_daemon_daemon_req_sync() interruptible + * CAMERA: Make OMAP34XXCAM_DAEMON_REQ_HW_INIT only when powering on + the device + * CAMERA: The RAW capture fixes in the earlier tag also fix YUV + capture, apparently + * fix Xv bug where color conversion wasn't setup properly + * Fix a bug that caused xv to produce black image on the screen + * rx51_defconfig: add oprofile module + * g_phonet: variables naming fixes + * g_phonet: missing initializer + * g_phonet: use Phonet ARP type + * usb: gadget: don't wait for completion twice + * Fixes: NB#94794, NB#94495, NB#94794 + * Implements: none + + -- Yauheni Kaliuta Tue, 09 Dec 2008 13:36:23 +0200 + +kernel (2.6.27-20084904r01) unstable; urgency=low + + * Added kernel-modules-debug package + * Changelog cleanup after autocreation + + -- Yauheni Kaliuta Mon, 08 Dec 2008 15:13:49 +0200 + +kernel (2.6.27-20084904) unstable; urgency=low + + * rx-51-2008-49-4 release + * Camera: Pink YUV is gone, now it's largely green. Much better + * Remove cmt_speech protocol message debugging + * usb: gadget: phonet: fix ep_choose again + * usb: musb: fix up mode1 dma + * ASoC: OMAP: Apply channel constrains to RX51 machine driver + * RX51: CONFIG_NOKIA_AV_DETECT relocation + * RX51: rx51_defconfig: CONFIG_NOKIA_AV_DETECT relocation + * ASoC: RX51: Improve support for accessory detection and reporting + * ARM: OMAP: Add initial support for dynamically updating GPIO + switches + * RX51: Add headphone GPIO number into audio board file and nokia-av.h + * RX51: Report headphone and headset detection using jack reporting + API + * RX51: Add jack reporting API (SND_JACK) to rx51_defconfig + * ALSA: Add jack reporting API + * ALSA: Build jack detection + * ALSA: Handle NULL jacks in snd_jack_report() + * ALSA: jack: lineout support to jack abstraction layer + * Fixes: NB#94646 + + -- Yauheni Kaliuta Fri, 05 Dec 2008 15:50:24 +0200 + +kernel (2.6.27-20084903) unstable; urgency=low + + * rx-51-2008-49-3 release + * fix SDI breakage at suspend + * Screen wakes up after it is blanked + * OMAP3: PM: Uart clock handling fixes + * OMAP3: PM: Prevent PER from going OFF when CORE is going INA + * OMAP3: GPIO fixes for off-mode + * OMAP3: Fixes for suspend / resume GPIO wake-up handling + + -- Yauheni Kaliuta Thu, 04 Dec 2008 15:46:22 +0200 + +kernel (2.6.27-20084902r01) unstable; urgency=low + + * fixed changelog entries for bugfixes. + + -- Yauheni Kaliuta Thu, 04 Dec 2008 13:15:29 +0200 + +kernel (2.6.27-20084902) unstable; urgency=low + + * rx-51-2008-49-2 release + * usb: dma mode1 for RX working + * Fixes: NB#94003 + * Fixes: NB#92611 + * Fixes: NB#94119 + + -- Yauheni Kaliuta Wed, 03 Dec 2008 14:17:22 +0200 + +kernel (2.6.27-20084901r01) unstable; urgency=low + + * MADC Fix from Mikko Ylinen + * display goes blank w/o serial-console enabled (related: NB#88155) + * implements: NR#192889 + * Fixes: NB#92992 + * Fixes: NB#93275 + * omap iommu: temporary disable iva2 iommu + * rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + * input: keyboard: twl4030 keypad Kconfig dependency fix + * i2c: i2c-omap: Fix BUFSTAT_REG reading + * i2c: i2c-omap: Fix standard and fast mode prescalers + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * DRM-tungsten: Define __linux__ + * disable the DRM authentication so /dev/dri/card0 is accessible for + nonroot + * Update rx51_defconfig + * Import the Thungsten version of the DRM kernel modules + * Import Imagination PowerVR services kernel mode tree + * RX-51: enable TV-out in rx51_defconfig + * VENC: Introduce video encoder support + * DISPC: Interlacing support + * DISPC: Introduce digital_panel to omapfb_device + * DISPC: Add more IRQ error flags + * DISPC: Issue GOLCD or GODIGITAL after changing video settings + * OMAPFB: make it possible to build as module + * VM: export get_vm_area + * RX-51: OMAPFP: enable boot loader splash screen support in defconfig + * OMAPFB: bootloader splash screen support + * twl4030-madc + * board-rx51-peripheral: Use correct ARRAY_SIZE when registering i2c + bus + * I2C: tsl2563: Fix unlocking issue in adc sysfs entries + * RX51: defconfig update for lp5523 driver move + * leds: lp5523: move to drivers/leds + * RX51-Peripherals: Add platform data for lp5523 led driver + * I2C: LP5523: Register separate leds + * rx51: Add camera button to rx51_defconfig + * rx51-peripheral: Add camera button + * ARM: OMAP2: RX51 Camera Button Driver + * RX51: Add lis302dl to rx51_defconfig + * RX51-Peripherals: Add lis302dl driver + * I2C: add support for lis302dl accelerometer driver + * RX51-Peripherals: Add tsl2563 ambient light sensor driver + * RX51-Peripherals: Add LP5523 led driver + * I2C: add support for LP5523 LED driver + * iphb: Making memory allocation atomic in netfilter out hook. + * bluetooth: Disable incoming connection tracking in DUT mode + * DSPBRIDGE: Mapping sidetone registers + * DSPBRIDGE: Free resources when user fails to do so + * BRIDGE: Fix memory leak in PROC_Init() + * BRIDGE Save mailbox settings for suspend-resume + * BRIDGE: Fix bug in HW Mailbox messaging + * omap3isp: Simplify buffer flushing; just use flush_cache_all() + * omap3isp: Don't enable LSC in interrupt in LSC errors + * H3a Aewb first frame statistics fix + * Now using video port for RAW capture + * omap3isp: Select OMAP_IOMMU in Kconfig + * omap3isp: Wait for SBL to finish before dequeuing buffers. + * ISP: ispccdc.c: Fix output horizontal pixel count: + ISPCCDC_HORZ_INFO[NPH] + * omap3isp: Suppress dummy printks. + * preview hack: Adapt to iommu changes. + * omap isp: introduce omap iommu to replace camera ispmmu module + * Revert "omap3isp: Use iommu more directly. Cleanup still needed." + * omap3isp: Apply crop again. + * omap3isp: Ignore all interrupts before the first HS_VS. + * omap3isp: Use correct number of lines in preview + * omap3isp: Sensor pattern and VP fix for YUV capture + * omap3isp: Make PREV_DONE callback usable again. + * omap3isp: Fix isp_s_fmt_cap crop for raw capture + * omap3isp: Move irqstatus printing at the end of the handler. + * omap3isp: Wait for HS_VS interrupt before dequeueing buffers. + * omap3isp: Remove extra printks. + * ISP: ispccdc: Change ISPCCDC_VERT_LINES to height - 1 for RAW + Capture + * ISP: ispccdc: Change VDPOL == 0 in ISPCCDC_SYN_MODE for RAW capture + * omap3isp: Flush buffers also when queueing. + * rx51: Include iommu in default configuration. + * rx51: Add camera devices to defconfig. + * adjust ispmmu to iommu (preview wrapper hack) + * HACK: Add TI preview wrapper + * omap3camd: Enlarge maximum blob size. + * omap3camd: Fix vmalloc for large requests. + * omap3camd: Replace _FMT_BEGIN with _FMT and remove _FMT_END. Same + for CROP. + * OMAP34XXCAM: Use vmalloc for large requests + * OMAP34XXCAM: Add support to camera daemon + * rx51: adp1653.h moved + * adp1653: Move the include file under include/linux. + * omap34xxcam: isp updates + * omap34xxcam: Requeue faulty buffers. + * smiaregs: Depend on I2C + * camera: hsvs_syncdetect should be ISPCTRL_SYNC_DETECT_VSRISE + * et8ek8: change exposure units from rows to microseconds + * et8ek8: improve V4L2 control handling + * Revert "Remove __init and __initdata from camera base + initialisation." + * Remove __init and __initdata from camera base initialisation. + * RX51: Boards currently in use require separate VDIG + * RX51: Small delay for adp1653 power-up + * RX51: Init camera support + * TCM8330MD: window stuff + * TCM8330MD: Add driver + * MT9P012: window stuff + * MT9P012: Add driver + * ADP1653: Add driver + * VS6555: Maximum exposure hack + * VS6555: window stuff + * vs6555: add driver + * AD5820: Add driver + * ET8EK8: window stuff + * et8ek8: cosmetics + * ET8EK8: Expect sensor not to be streaming for s_fmt + * ET8EK8: Add driver + * OMAP34XXCAM: Add VIDIOC_G_SMIA_MODE + * SMIAREGS: window stuff + * SMIA: Generic i2c register writing + * Define more TWL4030 registers for setting voltages. + * omap34xxcam: Handle s_fmt from multiple sources properly. + * omap34xxcam: Get format from the sensor in the beginning and + configure ISP + * V4L: Add VIDIOC_G_SMIA_MODE + * V4L: Int if: Add ioctl for getting smia information + * OMAP34XXCAM: Implement VIDIOC_ENUM_SLAVES + * V4L: Query slave info + * OMAP34XXCAM: Power down sensor immediately + * OMAP34XXCAM: Add driver + * omap3isp: update resources for iommu + * omap3isp: Fix comments. + * omap3isp: Make buffer handling more simple. + * omap3isp: Make maximum ccdc idle wait 1000 instead of 100 us. + * omap3isp: Make isp_buf_process wait for CCDC idle, reformat. + * omap3isp: fix colors (bayer phase) in raw capture + * omap3isp: Mark right buffer faulty when CCDC start fails. + * omap3isp: Kill isp_temp_buf_lock and temp buffer state. + * omap3isp: fix ISPCCDC_SDOFST_FOFST clearing + * omap3isp: Get rid of isp_bufs.skip. + * omap3isp: Use iommu more directly. Cleanup still needed. + * omap3isp: Only disable interrupts we asked for. + * omap3isp: Large update, RAW and YUV capture fixes + * OMAP3ISP: Locking fix + * OMAP3ISP: Add configuration id counters + * OMAP3ISP: Fix crop + * Move csi2 initialisation to isp.c. + * ARM: OMAP: Add CSI2 register defines. + * Add TI ISP driver changes between 2008-10-03 and 2008-11-04. + * OMAP: CAM: Add MMS Kernel changes + * OMAP: CAM: Add LSC workaround to ISP driver + * OMAP: CAM: Add ISP gain tables + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * omap iommu: drop kmem cache argument from constructor + * omap iommu: entries for Kconfig and Makefile + * omap iommu: sysfs for userland interface + * omap iommu: simple virtual address space management + * omap iommu: omap2 architecture specific functions + * omap iommu: tlb and pagetable primitives + * V4L: Int if: Add vidioc_int_querycap + * v4l2-int-device: add support for VIDIOC_QUERYMENU + * V4L: Int if: Dummy slave + * V4L: Int if: v4l2_int_device_try_attach_all requires mutex + * V4L: Int if: Add enum_framesizes and enum_frameintervals ioctls. + * V4L: Int if: Export more interfaces to modules + * V4L: Int if: Define new power state changes + * V4L: Add 10-bit RAW Bayer formats + * V4L: Int if: Add cropcap, g_crop and s_crop commands. + * V4L: Int if: Add command to get slave private data. + * OMAP3: PM: MPU and CORE should stay awake if there is CAM domain + ACTIVE + * Add camera baseline files + Kconfig / Makefile changes. + * [MTD] [OneNAND] Add write-while-program support + * omap-hsmmc: Implement scatter-gather emulation + * RX-51: Enable 4-wire transfers for eMMC + * UBIFS: use bulk read and do not check data CRC + * config: remove unneeded MTD stuff v2 + * MMC: Accept EXT_CSD rev 1.3 assuming it is backwards compatible with + 1.2 + * OMAP: HSMMC: SDBP and missing clock enabled fixes + * OMAP: HSMMC: Use mod_timer from a single point for readability. + * OMAP: HSMMC: Fix SDVS values in omap_mmc_switch_opcond + * OMAP: HSMMC: Fix oops in omap_mmc_remove + * OMAP: HSMMC: Fix suspend/resume for MMCHS2 + * OMAP: HSMMC: Make fclk disable request driven. + * OMAP: HSMMC: Ensure fclk is running before accessing HSMMC registers + * mmc_block: ensure all sectors that do not have errors are read + * mmc_block: print better data error message after timeout + * ARM: OMAP: add missing parenthesis in hsmmc defines + * ARM: OMAP: calculate hsmmc data timeout accurately + * ARM: OMAP: hsmmc requires data reset after data timeout + * UBIFS: pre-allocate bulk-read buffer + * UBIFS: do not allocate too much + * UBIFS: do not print scary memory allocation warnings + * UBIFS: allow for gaps when dirtying the LPT + * UBIFS: fix compilation warnings + * MAINTAINERS: change UBI/UBIFS git tree URLs + * UBIFS: endian handling fixes and annotations + * UBIFS: remove printk + * UBIFS: fix ubifs_compress commentary + * UBIFS: amend printk + * UBIFS: do not read unnecessary bytes when unpacking bits + * UBIFS: check buffer length when scanning for LPT nodes + * UBIFS: correct condition to eliminate unecessary assignment + * UBIFS: add more debugging messages for LPT + * UBIFS: fix bulk-read handling uptodate pages + * UBIFS: improve garbage collection + * UBIFS: allow for sync_fs when read-only + * UBIFS: commit on sync_fs + * UBIFS: correct comment for commit_on_unmount + * UBIFS: update dbg_dump_inode + * UBIFS: fix commentary + * UBIFS: fix races in bit-fields + * UBIFS: ensure data read beyond i_size is zeroed out correctly + * UBIFS: correct key comparison + * UBIFS: use bit-fields when possible + * UBIFS: check data CRC when in error state + * UBIFS: improve znode splitting rules + * UBIFS: add no_chk_data_crc mount option + * UBIFS: add bulk-read facility + * UBIFS: use an IS_ERR test rather than a NULL test + * UBIFS: inline one-line functions + * UBIFS: remove unneeded unlikely() + * UBIFS: add a print, fix comments and more minor stuff + * MMC: RX51: Make hsmmc compile when selected as module + * MMC: RX51 hsmmc support + * Pass process information to userspace coredump + * spinlocks: make sure any oops is + * [MTD] mtdoops: Fix a bug where block may not be erased + * [MTD] mtdoops: Add a magic number to logged kernel oops + * [MTD] mtdoops: Fix an off by one error + * ASoC: OMAP: Apply channel constrains to RX51 machine driver + * ASoC: OMAP: Add support for mono audio links in McBSP DAI + * ASoC: OMAP: Fix preprocessor filled DAI name in McBSP DAI + * ASoC: OMAP: Add more supported sample rates into McBSP DAI driver + * ALSA: ASoC: OMAP: Continue fixing DSP DAI format in McBSP DAI driver + * ALSA: ASoC: OMAP: Fix DSP DAI format in McBSP DAI driver + * ALSA: ASoC: OMAP: Set DMA stream name at runtime in McBSP DAI driver + * ALSA: ASoC: OMAP: Add multilink support to McBSP DAI driver + * ALSA: ASoC: Add DSP DAI format support to the OMAP McBSP driver + * RX51: Add Nokia AV accessory detection to rx51_defconfig + * RX51: Nokia AV accessory detection + * ASoC: RX51: Add new ECI mode with MADC routing but no mic bias + * RX51: Add MODULE_ALIAS in nokia-av to enable module loading by udev. + * RX51: Add initial accessory detection driver to audio board file. + * RX51: Add production test support for accessory detection and ECI hw + * RX51: Pin config for switching ECI I/O between GPIO and McBSP + * RX51: Add support for platform device init in rx51 audio board file + * ASoC: RX51: Add sysfs interface for reading and writing ECI mode + * ASoC: RX51: Add "ECI Headset" function to jack connector + * FMRX: Cancel work at device removal + * FMTX: Properly power down the device upon device removal + * FMRX: Disable stereo mono signal blending + * FMRX: removed irq nulling + + -- Yauheni Kaliuta Tue, 02 Dec 2008 16:52:32 +0200 + +kernel (2.6.27-20084805r02) unstable; urgency=low + + * Fixed buglist. + + -- Yauheni Kaliuta Wed, 26 Nov 2008 18:12:20 +0200 + +kernel (2.6.27-20084805r01) unstable; urgency=low + + * Bugfix marks for the previous release. + * Fixes: NB#89017, NB#92464, NB#88968, NB#88151, NB#89327 + + -- Yauheni Kaliuta Wed, 26 Nov 2008 17:07:16 +0200 + +kernel (2.6.27-20084805) unstable; urgency=low + + * Revert "i2c: increase bus frequency to max" + * OMAP3: PM: Uart clock handling fixes + * rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + * input: keyboard: twl4030 keypad Kconfig dependency fix + * i2c: i2c-omap: Fix BUFSTAT_REG reading + * i2c: i2c-omap: Fix standard and fast mode prescalers + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * McSAAB: Flush RX/TX buffers when stuck bus detected + * OMAP SSI: Add FLUSH RX/TX buffer support + * McSAAB: Fix two READY in a row bug + * OMAP SSI: Cosmetic changes in debugfs support + * McSAAB: Change default TX queue len to 100 + * OMAP SSI: Fixes access to SSR TIMEOUT register + * OMAP SSI: Small debugfs fix + * OMAP SSI: Fix CEN field in GDD regs entry + * OMAP SSI: Move struct ssi_port_event defintion + * OMAP SSI: Fixes in ssi_driver.h + * McSAAB: Cosmetic changes + * McSAAB: Set default MTU to 4000 + * Phonet: fix oops in phonet_address_del() on non-Phonet device + * net: '&' redux + * phonet: fix compilation with gcc-3.4 + * ISP: ispccdc.c: Fix output horizontal pixel count: + ISPCCDC_HORZ_INFO[NPH] + * omap3isp: Suppress dummy printks. + * preview hack: Adapt to iommu changes. + * omap isp: introduce omap iommu to replace camera ispmmu module + * Revert "omap3isp: Use iommu more directly. Cleanup still needed." + * omap3isp: Apply crop again. + * omap3isp: Ignore all interrupts before the first HS_VS. + * omap3isp: Use correct number of lines in preview + * omap3isp: Sensor pattern and VP fix for YUV capture + * omap3isp: Make PREV_DONE callback usable again. + * omap3isp: Fix isp_s_fmt_cap crop for raw capture + * omap3isp: Move irqstatus printing at the end of the handler. + * omap3isp: Wait for HS_VS interrupt before dequeueing buffers. + * omap3isp: Remove extra printks. + * ISP: ispccdc: Change ISPCCDC_VERT_LINES to height - 1 for RAW + Capture + * ISP: ispccdc: Change VDPOL == 0 in ISPCCDC_SYN_MODE for RAW capture + * omap3isp: Flush buffers also when queueing. + * rx51: Include iommu in default configuration. + * rx51: Add camera devices to defconfig. + * adjust ispmmu to iommu (preview wrapper hack) + * HACK: Add TI preview wrapper + * omap3camd: Enlarge maximum blob size. + * omap3camd: Fix vmalloc for large requests. + * omap3camd: Replace _FMT_BEGIN with _FMT and remove _FMT_END. Same + for CROP. + * OMAP34XXCAM: Use vmalloc for large requests + * OMAP34XXCAM: Add support to camera daemon + * omap34xxcam: isp updates + * omap34xxcam: Requeue faulty buffers. + * smiaregs: Depend on I2C + * camera: hsvs_syncdetect should be ISPCTRL_SYNC_DETECT_VSRISE + * et8ek8: change exposure units from rows to microseconds + * et8ek8: improve V4L2 control handling + * Revert "Remove __init and __initdata from camera base + initialisation." + * Remove __init and __initdata from camera base initialisation. + * RX51: Boards currently in use require separate VDIG + * RX51: Small delay for adp1653 power-up + * RX51: Init camera support + * TCM8330MD: window stuff + * TCM8330MD: Add driver + * MT9P012: window stuff + * MT9P012: Add driver + * ADP1653: Add driver + * VS6555: Maximum exposure hack + * VS6555: window stuff + * vs6555: add driver + * AD5820: Add driver + * ET8EK8: window stuff + * et8ek8: cosmetics + * ET8EK8: Expect sensor not to be streaming for s_fmt + * ET8EK8: Add driver + * OMAP34XXCAM: Add VIDIOC_G_SMIA_MODE + * SMIAREGS: window stuff + * SMIA: Generic i2c register writing + * Define more TWL4030 registers for setting voltages. + * omap34xxcam: Handle s_fmt from multiple sources properly. + * omap34xxcam: Get format from the sensor in the beginning and + configure ISP + * V4L: Add VIDIOC_G_SMIA_MODE + * V4L: Int if: Add ioctl for getting smia information + * OMAP34XXCAM: Implement VIDIOC_ENUM_SLAVES + * V4L: Query slave info + * OMAP34XXCAM: Power down sensor immediately + * OMAP34XXCAM: Add driver + * omap3isp: update resources for iommu + * omap3isp: Fix comments. + * omap3isp: Make buffer handling more simple. + * omap3isp: Make maximum ccdc idle wait 1000 instead of 100 us. + * omap3isp: Make isp_buf_process wait for CCDC idle, reformat. + * omap3isp: fix colors (bayer phase) in raw capture + * omap3isp: Mark right buffer faulty when CCDC start fails. + * omap3isp: Kill isp_temp_buf_lock and temp buffer state. + * omap3isp: fix ISPCCDC_SDOFST_FOFST clearing + * omap3isp: Get rid of isp_bufs.skip. + * omap3isp: Use iommu more directly. Cleanup still needed. + * omap3isp: Only disable interrupts we asked for. + * omap3isp: Large update, RAW and YUV capture fixes + * OMAP3ISP: Locking fix + * OMAP3ISP: Add configuration id counters + * OMAP3ISP: Fix crop + * Move csi2 initialisation to isp.c. + * ARM: OMAP: Add CSI2 register defines. + * Add TI ISP driver changes between 2008-10-03 and 2008-11-04. + * OMAP: CAM: Add MMS Kernel changes + * OMAP: CAM: Add LSC workaround to ISP driver + * OMAP: CAM: Add ISP gain tables + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * omap iommu: drop kmem cache argument from constructor + * omap iommu: entries for Kconfig and Makefile + * omap iommu: sysfs for userland interface + * omap iommu: simple virtual address space management + * omap iommu: omap2 architecture specific functions + * omap iommu: tlb and pagetable primitives + * V4L: Int if: Add vidioc_int_querycap + * v4l2-int-device: add support for VIDIOC_QUERYMENU + * V4L: Int if: Dummy slave + * V4L: Int if: v4l2_int_device_try_attach_all requires mutex + * V4L: Int if: Add enum_framesizes and enum_frameintervals ioctls. + * V4L: Int if: Export more interfaces to modules + * V4L: Int if: Define new power state changes + * V4L: Add 10-bit RAW Bayer formats + * V4L: Int if: Add cropcap, g_crop and s_crop commands. + * V4L: Int if: Add command to get slave private data. + * Add camera baseline files + Kconfig / Makefile changes. + * wl12xx: use join commmand for tuning the channels + * wl12xx: improve mac80211 debug messages + * [MTD] [OneNAND] Add write-while-program support + * omap-hsmmc: Implement scatter-gather emulation + * RX-51: Enable 4-wire transfers for eMMC + * UBIFS: use bulk read and do not check data CRC + * config: remove unneeded MTD stuff v2 + * OMAP: HSMMC: SDBP and missing clock enabled fixes + * OMAP: HSMMC: Use mod_timer from a single point for readability. + * OMAP: HSMMC: Fix SDVS values in omap_mmc_switch_opcond + * OMAP: HSMMC: Fix oops in omap_mmc_remove + * OMAP: HSMMC: Fix suspend/resume for MMCHS2 + * OMAP: HSMMC: Make fclk disable request driven. + * OMAP: HSMMC: Ensure fclk is running before accessing HSMMC registers + * mmc_block: ensure all sectors that do not have errors are read + * mmc_block: print better data error message after timeout + * ARM: OMAP: add missing parenthesis in hsmmc defines + * ARM: OMAP: calculate hsmmc data timeout accurately + * ARM: OMAP: hsmmc requires data reset after data timeout + * UBIFS: pre-allocate bulk-read buffer + * UBIFS: do not allocate too much + * UBIFS: do not print scary memory allocation warnings + * UBIFS: allow for gaps when dirtying the LPT + * UBIFS: fix compilation warnings + * MAINTAINERS: change UBI/UBIFS git tree URLs + * UBIFS: endian handling fixes and annotations + * UBIFS: remove printk + * UBIFS: fix ubifs_compress commentary + * UBIFS: amend printk + * UBIFS: do not read unnecessary bytes when unpacking bits + * UBIFS: check buffer length when scanning for LPT nodes + * UBIFS: correct condition to eliminate unecessary assignment + * UBIFS: add more debugging messages for LPT + * UBIFS: fix bulk-read handling uptodate pages + * UBIFS: improve garbage collection + * UBIFS: allow for sync_fs when read-only + * UBIFS: commit on sync_fs + * UBIFS: correct comment for commit_on_unmount + * UBIFS: update dbg_dump_inode + * UBIFS: fix commentary + * UBIFS: fix races in bit-fields + * UBIFS: ensure data read beyond i_size is zeroed out correctly + * UBIFS: correct key comparison + * UBIFS: use bit-fields when possible + * UBIFS: check data CRC when in error state + * UBIFS: improve znode splitting rules + * UBIFS: add no_chk_data_crc mount option + * UBIFS: add bulk-read facility + * UBIFS: use an IS_ERR test rather than a NULL test + * UBIFS: inline one-line functions + * UBIFS: remove unneeded unlikely() + * UBIFS: add a print, fix comments and more minor stuff + * MMC: RX51: Make hsmmc compile when selected as module + * MMC: RX51 hsmmc support + * Pass process information to userspace coredump + * spinlocks: make sure any oops is + * [MTD] mtdoops: Fix a bug where block may not be erased + * [MTD] mtdoops: Add a magic number to logged kernel oops + * [MTD] mtdoops: Fix an off by one error + * Revert "usb: musb: use list_is_last" + + -- Yauheni Kaliuta Wed, 26 Nov 2008 16:59:16 +0200 + +kernel (2.6.27-20084804) unstable; urgency=low + + * Revert "i2c: increase bus frequency to max" + + -- Yauheni Kaliuta Tue, 25 Nov 2008 17:07:20 +0200 + +kernel (2.6.27-20084803) unstable; urgency=low + + * rx51_defconfig: disable cpu_idle for now + + -- Yauheni Kaliuta Tue, 25 Nov 2008 16:10:57 +0200 + +kernel (2.6.27-20084802) unstable; urgency=low + + * OMAP3: PM: Uart clock handling fixes + + -- Yauheni Kaliuta Tue, 25 Nov 2008 14:42:25 +0200 + +kernel (2.6.27-20084801) unstable; urgency=low + + * rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + * input: keyboard: twl4030 keypad Kconfig dependency fix + * i2c: i2c-omap: Fix BUFSTAT_REG reading + * i2c: i2c-omap: Fix standard and fast mode prescalers + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * TSC2005: fix typo in disable ts call + * TSC2005: get irq number from spi->irq instead of platform_data + * OMAP: MCSPI: Enable mcspi wake-up + * disable the DRM authentication so /dev/dri/card0 is accessible for + nonroot + * usb: musb: use list_is_last + * usb: musb: musbhsdma cleanup + * Revert "usb: musb: Fixes endpoint allocation logic" + * usb: defconfig changes + * move OTG Kconfig entry from gadget to core + * usb: otg: Make otg_get/set/put_transceiver() generic + * usb: otg: Introduce new otg.c code + * usb: otg: add otg_put_transceiver() + * musb: add back charger detection + * usb: musb: make g_ether work again + * usb: musb: use static inline functions to replace the macros in + Blackfin version + * usb: musb: Kill some compiling warning in musb Blackfin part + * usb: musb: Blackfin provides read/write I/O accessor in header files + * usb: musb: add Blackfin specific configuration to MUSB + * usb gadget rndis: send notifications + * usb gadget rndis: stop windows self-immolation + * usb: musb: stop using bus_id + * usb: gadget: g_nokia depends on phonet to work + * usb: gadget: prioritize phonet interface + * usb: musb: check if set_irq_wake succeded and remember it + + -- Yauheni Kaliuta Mon, 24 Nov 2008 17:49:35 +0200 + +kernel (2.6.27-20084704r01) unstable; urgency=low + + * rx-51-2008-47-4. Fixes: NB#91554. + * disabled the DRM authentication (so /dev/dri/card? can be accessed + as nonroot + * rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + * input: keyboard: twl4030 keypad Kconfig dependency fix + * i2c: i2c-omap: Fix BUFSTAT_REG reading + * i2c: i2c-omap: Fix standard and fast mode prescalers + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * rx51_defconfig: add CONFIG_KEYBOARD_TWL4030 + * input: keyboard: twl4030 keypad Kconfig dependency fix + * disabled the DRM authentication (so /dev/dri/card? can be accessed + as nonroot + * FMRX: Added stereo and mono mode switch + * board-rx51-peripheral: Use correct ARRAY_SIZE when registering i2c + bus + * TSC2005: fix typo in disable ts call + * TSC2005: get irq number from spi->irq instead of platform_data + * wl12xx: cleanup cmd.[c|h] and acx.[c|h] + * wl12xx: create cmd.[c|h] and acx.[c|h] + * wl12xx: add more debug messages + * wl12xx: cleanup DEBUG_TX and DEBUG_RX messages + * wl12xx: update MODULE_AUTHOR() + * wl12xx: implement tx power support + * mac80211: first version of dynamic power save + * mac80211: enable IEEE80211_CONF_PS only when associated + * wl12xx: implement elp wakeup using polling + * wl12xx: stop tx queue when buffers are full + * wl12xx: refactor code to wl12xx_tx_frame() + * wl12xx: use skb_queue in tx queue + * wl12xx: take mutex in wl12xx_tx_work() + * wl12xx: rename wl12xx_interrupt() to wl12xx_irq() + * wl12xx: remove cmd_complete and join_complete + * wl12xx: create read32 and write32 functions + * wl12xx: refactor power save code to ps.[c|h] + * wl12xx: do not clear wl->psm_requested in stop() + * wl12xx: use WARN() in wl12xx_error() + * wl12xx: wl12xx_debug() should use KERN_DEBUG level + * I2C: tsl2563: Fix unlocking issue in adc sysfs entries + * OMAP: MCSPI: Enable mcspi wake-up + + -- Yauheni Kaliuta Fri, 21 Nov 2008 17:26:31 +0200 + +kernel (2.6.27-20084703) unstable; urgency=low + + * maemo/2.6.27-20084702 + * i2c: i2c-omap: Fix BUFSTAT_REG reading + * i2c: i2c-omap: Fix standard and fast mode prescalers + * OMAP: MCSPI: Enable mcspi wake-up + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * Revert "BRIDGE Power Management cleanup" + * DSPBRIDGE: Mapping sidetone registers + * DSPBRIDGE: Free resources when user fails to do so + * OMAP3: I2C: Enable I2C wakeups + * OMAP2/3 I2C: reprogram OCP_SYSCONFIG register after reset + * OMAP: I2C: convert 'rev1' flag to generic 'rev' u8 + * BRIDGE: Fix memory leak in PROC_Init() + * BRIDGE Handle Node messaging when DSP crashed + * BRIDGE Save mailbox settings for suspend-resume + * BRIDGE: Fix bug in HW Mailbox messaging + * BRIDGE Power Management cleanup + + -- Yauheni Kaliuta Thu, 20 Nov 2008 16:48:13 +0200 + +kernel (2.6.27-20084702) unstable; urgency=low + + * 2.6.27-20084701r02 + * OMAP: MCSPI: Enable mcspi wake-up + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * Update rx51_defconfig + * Import the Thungsten version of the DRM kernel modules + * Import Imagination PowerVR services kernel mode tree + * omap-hsmmc: Implement scatter-gather emulation + * RX-51: Enable 4-wire transfers for eMMC + * UBIFS: use bulk read and do not check data CRC + * config: remove unneeded MTD stuff v2 + * OMAP: HSMMC: SDBP and missing clock enabled fixes + * OMAP: HSMMC: Use mod_timer from a single point for readability. + * OMAP: HSMMC: Fix SDVS values in omap_mmc_switch_opcond + * OMAP: HSMMC: Fix oops in omap_mmc_remove + * OMAP: HSMMC: Fix suspend/resume for MMCHS2 + * OMAP: HSMMC: Make fclk disable request driven. + * OMAP: HSMMC: Ensure fclk is running before accessing HSMMC registers + * mmc_block: ensure all sectors that do not have errors are read + * mmc_block: print better data error message after timeout + * ARM: OMAP: add missing parenthesis in hsmmc defines + * ARM: OMAP: calculate hsmmc data timeout accurately + * ARM: OMAP: hsmmc requires data reset after data timeout + * UBIFS: remove printk + * UBIFS: fix ubifs_compress commentary + * UBIFS: amend printk + * UBIFS: do not read unnecessary bytes when unpacking bits + * UBIFS: check buffer length when scanning for LPT nodes + * UBIFS: correct condition to eliminate unecessary assignment + * UBIFS: add more debugging messages for LPT + * UBIFS: fix bulk-read handling uptodate pages + * UBIFS: improve garbage collection + * UBIFS: allow for sync_fs when read-only + * UBIFS: commit on sync_fs + * UBIFS: correct comment for commit_on_unmount + * UBIFS: update dbg_dump_inode + * UBIFS: fix commentary + * UBIFS: fix races in bit-fields + * UBIFS: ensure data read beyond i_size is zeroed out correctly + * UBIFS: correct key comparison + * UBIFS: use bit-fields when possible + * UBIFS: check data CRC when in error state + * UBIFS: improve znode splitting rules + * UBIFS: add no_chk_data_crc mount option + * UBIFS: add bulk-read facility + * UBIFS: use an IS_ERR test rather than a NULL test + * UBIFS: inline one-line functions + * UBIFS: remove unneeded unlikely() + * UBIFS: add a print, fix comments and more minor stuff + * MMC: RX51: Make hsmmc compile when selected as module + * MMC: RX51 hsmmc support + * Pass process information to userspace coredump + * spinlocks: make sure any oops is + * [MTD] mtdoops: Fix a bug where block may not be erased + * [MTD] mtdoops: Add a magic number to logged kernel oops + * [MTD] mtdoops: Fix an off by one error + * RX51: set board config earlier + * RX51: board audio file finetuning + * RX51: Added condition to rx51 audio board file + * TPA6130A2: rx51_defconfig follow-up relocation + * TPA6130A2: Kconfig and Makefile relocated + * Revert "TPA6130A2: Kconfig and Makefile" + * FMTX: rx51_defconfig + * Revert "FMTX: revert rx51_defconfig" + * Revert "FMTX: rx51_defconfig" + * i2c: increase bus frequency to max + * TPA6130A2: rx51 audio board file cleanup + * ASoC: Add dummy aic34b to rx audio board file + * FMTX: board file changes + * FMTX: rx51_defconfig + * FMTX: revert rx51_defconfig + * FMRX: rx51_defconfig + * FMRX: rx51 audio board file + * FMRX: Kconfig and Makefile + * FMRX: Initial version + * FMTX: rx51_defconfig + * FMTX: rx51 board file + * FMTX: Makefile and Kconfig + * FMTX: Initial version + * ASoC: rx51_defconfig + * TPA6130A2: rx51_defconfig + * TPA6130A2: added missing include files + * TPA6130A2: board-rx51-audio changes + + -- Yauheni Kaliuta Thu, 20 Nov 2008 14:34:36 +0200 + +kernel (2.6.27-20084701r02) unstable; urgency=low + + * API is broken, increase maemo release + + -- Yauheni Kaliuta Wed, 19 Nov 2008 15:12:38 +0200 + +kernel (2.6.27-20084701r01) unstable; urgency=low + + * rx51_defconfig again + + -- Yauheni Kaliuta Wed, 19 Nov 2008 13:50:18 +0200 + +kernel (2.6.27-20084701) unstable; urgency=low + + * OMAP: MCSPI: Enable mcspi wake-up + * OMAP3: I2C: Enable I2C wakeups + * OMAP: I2C: convert 'rev1' flag to generic 'rev' u8 + * OMAP2/3 I2C: reprogram OCP_SYSCONFIG register after reset + * PM: Changed secure RAM storage size from 0x8000 to 0x803F + * Merge tag 'rx51-bl-200846-3@camera-1' of + git://ok.research.nokia.com/osso/git/trees/linux-camera into + kint_working + * Remove extra printks. + * Make maximum ccdc idle wait 1000 instead of 100 us. + * Reformat isp_buf_process and add 100 us delay for CCDC idle wait. + * ispccdc: fix colors (bayer phase) in raw capture + * Mark right buffer faulty when CCDC start fails at proper time. + * Kill isp_temp_buf_lock and temp buffer state. + * ispccdc: fix ISPCCDC_SDOFST_FOFST clearing + * Phonet: refuse to send bigger than MTU packets + * Get rid of isp_bufs.skip. + * BRIDGE Handle Node messaging when DSP crashed + * BRIDGE Memory leak fix + * BRIDGE Resource cleanup node delete fix + * Use iommu more directly. Cleanup still needed. + * Only disable interrupts we asked for (statistics are now left + untouched). + * Don't care about MMU faults anymore. + * No check ccdc check after initial transfer, cleanups. + * i2c: twl4030_usb: switch vbus reporting from on/off to 1/0 + * i2c: twl4030_madc: switch back to old name + * i2c: twl4030_usb: use twl4030's register, not omap's + * i2c: twl4030_usb: add init section to regulators init + * i2c: make hsmmc build again + * twl4030-core simplification + * twl4030-gpio debounce cleanup + * Don't start resizer too late. + * Don't request useless interrupts. + * Make reset happen faster. + * Make it work again. :-) + * Get rid of isp_bufs->active. Cleanups. + * Cleanups. + * omap34xxcam: isp updates + * Now that's better... + * omap34xxcam: Requeue faulty buffers. + * Clean up interrupt handling. + * Hack hack isr. + * Both raw and yuv capture work somehow, but lsc_prefetch_error is + common now. + * Raw capture working with busyloops. + * Help debugging. Add Tuukka's irq status printing. + * adjust ispmmu to iommu + * first import iommu + * Add RAW capture test code. + * Add printing from IRQ handler. + * Add camera devices to defconfig. + * OMAP SSI: ssi_debug_exit needed at init + * HACK: Add TI preview wrapper + * OMAP34XXCAM: Use vmalloc for large requests + * OMAP34XXCAM: Add support to camera daemon + * camera: hsvs_syncdetect should be ISPCTRL_SYNC_DETECT_VSRISE + * et8ek8: change exposure units from rows to microseconds + * et8ek8: improve V4L2 control handling + * Revert "Remove __init and __initdata from camera base + initialisation." + * Remove __init and __initdata from camera base initialisation. + * McSAAB: use Phonet ARP type + * Phonet: allocate a virtual ARP type + * OMAP3ISP: Locking fix + * OMAP3ISP: Add configuration id counters + * OMAP3ISP: Fix crop + * RX51: Boards currently in use require separate VDIG + * RX51: Small delay for adp1653 power-up + * RX51: Init camera support + * TCM8330MD: window stuff + * TCM8330MD: Add driver + * MT9P012: window stuff + * MT9P012: Add driver + * ADP1653: Add driver + * VS6555: Maximum exposure hack + * VS6555: window stuff + * vs6555: add driver + * AD5820: Add driver + * ET8EK8: window stuff + * et8ek8: cosmetics + * ET8EK8: Expect sensor not to be streaming for s_fmt + * ET8EK8: Add driver + * OMAP34XXCAM: Add VIDIOC_G_SMIA_MODE + * SMIAREGS: window stuff + * SMIA: Generic i2c register writing + * Define more TWL4030 registers for setting voltages. + * omap34xxcam: Handle s_fmt from multiple sources properly. + * omap34xxcam: Get format from the sensor in the beginning and + configure ISP + * V4L: Add VIDIOC_G_SMIA_MODE + * V4L: Int if: Add ioctl for getting smia information + * OMAP34XXCAM: Implement VIDIOC_ENUM_SLAVES + * V4L: Query slave info + * OMAP34XXCAM: Power down sensor immediately + * OMAP34XXCAM: Add driver + * Move csi2 initialisation to isp.c. + * ARM: OMAP: Add CSI2 register defines. + * Add TI ISP driver changes between 2008-10-03 and 2008-11-04. + * OMAP: CAM: Add MMS Kernel changes + * OMAP: CAM: Add LSC workaround to ISP driver + * OMAP: CAM: Add ISP gain tables + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * OMAP: CAM: Add ISP Modules + * V4L: Int if: Add vidioc_int_querycap + * v4l2-int-device: add support for VIDIOC_QUERYMENU + * V4L: Int if: Dummy slave + * V4L: Int if: v4l2_int_device_try_attach_all requires mutex + * V4L: Int if: Add enum_framesizes and enum_frameintervals ioctls. + * V4L: Int if: Export more interfaces to modules + * V4L: Int if: Define new power state changes + * V4L: Add 10-bit RAW Bayer formats + * V4L: Int if: Add cropcap, g_crop and s_crop commands. + * V4L: Int if: Add command to get slave private data. + * Add camera baseline files + Kconfig / Makefile changes. + * Enable iphb in rx51 defconfig + * Kconfig and makefile changes for iphb + * TCP keepalive queueing + * wl12xx: Enable wl12xx driver in rx51_defconfig + * Board specific initialization for bcm2048B0 + * RX51: defconfig update for lp5523 driver move + * leds: lp5523: move to drivers/leds + * RX51-Peripherals: Add platform data for lp5523 led driver + * I2C: LP5523: Register separate leds + * rx51: Add camera button to rx51_defconfig + * rx51-peripheral: Add camera button + * ARM: OMAP2: RX51 Camera Button Driver + * RX51: Add lis302dl to rx51_defconfig + * RX51-Peripherals: Add lis302dl driver + * I2C: add support for lis302dl accelerometer driver + * RX51-Peripherals: Add tsl2563 ambient light sensor driver + * RX51-Peripherals: Add LP5523 led driver + * I2C: add support for LP5523 LED driver + * RX-51: Enable 4-wire transfers for eMMC + * UBIFS: use bulk read and do not check data CRC + * config: remove unneeded MTD stuff v2 + * OMAP: HSMMC: Use mod_timer from a single point for readability. + * OMAP: HSMMC: Fix SDVS values in omap_mmc_switch_opcond + * OMAP: HSMMC: Fix oops in omap_mmc_remove + * OMAP: HSMMC: Fix suspend/resume for MMCHS2 + * OMAP: HSMMC: Make fclk disable request driven. + * OMAP: HSMMC: Ensure fclk is running before accessing HSMMC registers + * mmc_block: ensure all sectors that do not have errors are read + * mmc_block: print better data error message after timeout + * ARM: OMAP: add missing parenthesis in hsmmc defines + * ARM: OMAP: calculate hsmmc data timeout accurately + * ARM: OMAP: hsmmc requires data reset after data timeout + * UBIFS: remove printk + * UBIFS: fix ubifs_compress commentary + * UBIFS: amend printk + * UBIFS: do not read unnecessary bytes when unpacking bits + * UBIFS: check buffer length when scanning for LPT nodes + * UBIFS: correct condition to eliminate unecessary assignment + * UBIFS: add more debugging messages for LPT + * UBIFS: fix bulk-read handling uptodate pages + * UBIFS: improve garbage collection + * UBIFS: allow for sync_fs when read-only + * UBIFS: commit on sync_fs + * UBIFS: correct comment for commit_on_unmount + * UBIFS: update dbg_dump_inode + * UBIFS: fix commentary + * UBIFS: fix races in bit-fields + * UBIFS: ensure data read beyond i_size is zeroed out correctly + * UBIFS: correct key comparison + * UBIFS: use bit-fields when possible + * UBIFS: check data CRC when in error state + * UBIFS: improve znode splitting rules + * UBIFS: add no_chk_data_crc mount option + * UBIFS: add bulk-read facility + * UBIFS: use an IS_ERR test rather than a NULL test + * UBIFS: inline one-line functions + * UBIFS: remove unneeded unlikely() + * UBIFS: add a print, fix comments and more minor stuff + * MMC: RX51: Make hsmmc compile when selected as module + * MMC: RX51 hsmmc support + * Pass process information to userspace coredump + * spinlocks: make sure any oops is + * [MTD] mtdoops: Fix a bug where block may not be erased + * [MTD] mtdoops: Add a magic number to logged kernel oops + * [MTD] mtdoops: Fix an off by one error + * OMAP3 DSS: Fixed FIFO buffer register field sizes + * mac80211: temporarily disable filter work queue + * mac80211: clear ssid and bssid flags before deauthentication + * mac80211: Handle scan result IEs in one block + * wl12xx: implement locking for mac80211 ops + * wl12xx: power off chip if booting fails + * wl12xx: ELP mode support + * wl12xx: 802.11 power save mode + * mac80211: inform userspace of probe/auth/assoc timeout + * mac80211: notify the user space about low signal quality + * mac80211: add rssievents debugfs file + * wl12xx: fix signal strength reporting + * cfg80211: use EU as default regulatory domain + * wl12xx: fix rx interrupt handling + * wl1251: remove private tx headers before calling tx_status() + * rx-51: add wl1251 + * wl12xx: add Kconfig and Makefiles + * mac80211: increase authentication and scan timeouts + * omap2_mcspi: disable DMA + * wl12xx: add driver + * Support and fixes for BCM2048b0 + * ASoC: Makefile and Kconfig merging fixes + * TPA6130A2: Fix include paths on 2.6.27-rc kernels + * ASoC: RX51: Add "Mic" function to jack connector + * ASoC: OMAP: Fixes to aic34b_dummy driver + * ASoC: OMAP: Convert RX51 to use gpiolib instead of TWL4030 + primitives + * ASoC: OMAP: RX51: Adapt recent ASoC API changes + * ALSA: ASoC: Convert tlv320aic3x to a new-style i2c driver (v2) + * Revert: "ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI + driver" + * ASoC: RX51: Add more functions to jack connector + * ASoC: RX51: Use aic34b dummy driver for Nokia RX51 earpiece + * ASoC: RX51: Add dummy aic34b driver meant to Nokia RX51 only + * ASoC: RX51: Update for bulk DAPM registration APIs + * ASoC: Add digital mic configuration to RX51 machine driver + * ASoC: OMAP: Add audio endpoint and route to FM TX chip in Nokia RX51 + * Add simple headphone jack support for RX51 audio + * Add support for TPA6130A2 chip + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver + * TPA6130A2: Kconfig and Makefile + * RX51: Enable cellular adaptation + * RX51: include SSI board definition + * usb: gadget: re-enable phonet in gadget nokia + * usb: update rx51_defconfig for g_nokia and musb_procfs + * f_phonet: use the same netif for all USB configurations + * f_phonet: use the Phonet link layer + * f_phonet: use built-in statistics + * f_phonet cosmetic fixes + * usb: musb: fix musb_procfs.c + * usb: musb: switch over to mutex for set_mode + * usb: musb: fix musb_platform_set_mode for omap2430.c + * Revert "usb: musb: Fix for kernel panic with multiple bulk transfer" + * usb: musb: build fixes for DaVinci + * usb: gadget: Nokia modifications to file_storage gadget + * usb: gadget: introduce Nokia Composite Gadget + * USB: Fix unneeded endpoint check in pxa27x_udc + * usb/gadget: fix kernel-doc warning + * USB: Fix debugfs_create_file's error checking method for + usb/gadget/s3c2410_udc + * usb/fsl_qe_udc: clear data toggle on clear halt request + * usb/fsl_qe_udc: fix response to get status request + * fsl_usb2_udc: Fix oops on probe failure. + * fsl_usb2_udc: Add a wmb before priming endpoint. + * fsl_usb2_udc: Make fsl_queue_td return type void. + * fsl_usb2_udc: Uninline udc_reset_ep_queue. + * fsl_usb2_udc: Rename the arguments of the fsl_writel macro. + * fsl_usb2_udc: Initialize spinlock earlier. + * fsl_usb2_udc: Clean up whitespace in /proc debugging output. + * fsl_usb2_udc: Clean up whitespace in errors and warnings. + * fsl_usb2_udc: Fix some sparse warnings and remove redundant code. + * fsl_usb2_udc: Remove check for udc == NULL in dr_controller_setup. + * fsl_usb2_udc: Make dr_ep_setup function static. + * usb gadget: cdc ethernet notification bugfix + * USB: omap_udc: sync with OMAP tree + * USB: Fix s3c2410_udc usb speed handling + * usb gadget: USB_GADGET_VBUS_DRAW Kconfig option + * usb: gadget: workaround storage command size issues + * USB: g_printer: fix handling zero-length packet + * usb: add Freescale QE/CPM USB peripheral controller driver + * USB: remove unused #include + * usb gadget: defer obex enumeration + * usb gadget: cdc obex glue + * usb gadget: function activation/deactivation + * USB: gadget: net2280: implement set_wedge + * USB: gadget: dummy_hcd: implement set_wedge + * usb: gadget Kconfig cleanup + * usb gadget: link fixes for network gadget + * usb gadget: link fixes for cdc composite gadget + * usb gadget: link fixes for storage gadget + * usb gadget: link fixes for printer gadget + * usb gadget: link fixes for MIDI gadget + * usb gadget: link fixes for gadget zero + * usb gadget: link fixes for serial gadget + * device create: usb: convert device_create_drvdata to device_create + * musb: adding qh in_list and out_list in struct hw_ep + * musb: NAK timeout scheme on bulk reserved ep + * usb: musb: phase out otg_transceiver from struct musb + * usb: musb: fix bug in musb_schedule + * usb: musb: put back musb_hdrc procfs entry + * usb: musb: change debug name to musb_debug + * usb: musb: Removes compilation warning in gadget mode + * usb: musb: Fix for kernel panic with multiple bulk transfer + * usb: musb: tusb6010: kill compile warning + * usb: musb: add Blackfin Kconfig options and Makefile + * usb: musb: add Blackfin specific configuration to MUSB + * usb: musb: enable low level DMA operation for Blackfin + * usb: musb: add Blackfin version low level register accessing helper + functions + * usb: musb: Make sure we program the correct values in only when + necessary. + * usb: musb: add Blackfin driver to MUSB framework (v2) + * usb: musb: use new platform data interface of musb to replace old + one + * usb: musb: BULK request on different available endpoints + * usb: musb: Fixes endpoint allocation logic + * usb: musb: sysfs mode updates + * usb: musb: Support for high bandwidth isochronous transfer + * usb: musb: Fix for isochronous IN transfer + * usb: musb: remove dead code from procfs + * usb: musb: general cleanup to musbhsdma.c + * usb: musb_hdrc build fixes + * usb: musb: do not mess up count number and CSR0 register value + * OMAP:MUSB: Corrects urb unlink function path + * OMAP:MUSB: Fixes the TT programming. + * musb: io: only define read/write stubs if they're not defined yet + * MUSB: Add sanity check for maximum number of endpoints + * ARM: OMAP: OMAPFB: Adjust DMA FIFO thresholds for power save mode + * ARM: OMAP: OMAPFB: Set correct FB plane sizes + * ARM: OMAP: OMAPFB: update defconfig + * FB: OMAP: DISPC: Add helper function to change plane base address + * ARM: OMAP: FB: Disable Tahvo backlight setting + * ARM/OMAP/FB: Fix LCD panel identifiers and default name + * ARM/OMAP/FB: Add support for new LCD panel class ACX565AKM + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * BRIDGE: Fix uninitialized spinlock + * BRIDGE: use more detail name for interrupt claiming device + * BRIDGE: wake up dsp before accessing mmu + * DSPBRIDGE: Flush posted write when acking mailbox irq + * BRIDGE: update rx51_defconfig + * BRIDGE: enable dspbridge in omap_3430sdp_defconfig + * BRIDGE: fix build error + * BRIDGE Add preemption support to unprotected functions + * BRIDGE: Remove paths in header comment + * BRIDGE: removing unnecesary OMAP3430 checks + * BRIDGE: Sparse warnings cleanup + * BRIDGE: Chnl module cleanup + * BRIDGE: Fix incorrect pathname + * BRIDGE: Add 'dspbridge' dirname in header file inclusion + * BRIDGE: Fix header path name to "arch/arm/plat- + omap/include/dspbridge" + * BRIDGE: Rename header file location + * BRIDGE: set 0 for phys_mempool_* as default + * BRIDGE: PRCS wrappers removal + * BRIDGE: MMUfault infinite timeout fix + * BRIDGE: tiomap unmap fix + * BRIDGE: GT mask for DSP traces + * BRIDGE: Remove CDECL macro + * BRIDGE: Module ISR removed + * BRIDGE: OMAP CSL wrappers removed + * BRIDGE: OMAP PM Bug softlockup fix + * BRIDGE: Sync omapzoom bridge patches + * BRIDGE: Fix header path + * BRIDGE: Checkpatch Cleanup + * BRIDGE: Power management changes + * BRIDGE: Remove sparse warnings from wcd + * BRIDGE: Add wcd table end + * BRIDGE: Cosmetic changes reported from checkpatch + * BRIDGE: Clean up unusedvariables + * BRIDGE: Remove unused clk structs + * BRIDGE: Cleanup static declarations warnings + * BRIDGE: Ceanup GT sparse warnings + * BRIDGE: README + * BRIDGE: Mini driver + * BRIDGE: Services + * BRIDGE: Resource Manager + * BRIDGE: Platform Manager + * BRIDGE: Hardware Interfaces + * BRIDGE: Generic Utilities + * BRIDGE: Doff image dynamic loader + * BRIDGE: Header files + * BRIDGE: Kconfig Entry + * RX51: Enable SRF and cpu idle + * Phonet pipes: work-around NB#89327 + * Build the CMT speech driver + * CMT speech driver. + * McSAAB: Integration into misc drivers + * McSAAB: Add McSAAB code + * OMAP SSI: Add SSI board file + * OMAP SSI: Add debugfs support + * OMAP SSI API documentation + * OMAP SSI integration into misc drivers + * OMAP SSI driver code + * OMAP SSI driver interface + * OMAP SSI hardware interface definitions + * PM: OMAP3: Make sure clk_disable_unused() order is correct + * OMAP3: UART: Make sure that uart clocks are enabled when needed + * PM OMAP3: Security exploit to fix crashes with + save_secure_ram_context + * Phonet: use net_device built-in stats for GPRS + * OMAP: PM related system_rev -> omap_rev() + * RX51: Add board files for audio, camera, network + * RX51: Copy rx51_tiny_defconfig to rx51_defconfig + * OMAP3 flash: fix use of system_rev in board-3430sdp-flash.c + * OMAP: LCD: Use omap_rev check + * OMAP: Use omap_rev() instead of system_rev + * RX51: Change to subsys_initcall() for subsys files + * RX51: Split board files to subsystems + * OMAP: RX51: Add missing hsmmc.o and usb-musb.o to Makefile + * RX51: Add rx51_tiny_defconfig + * OMAP2: add retry after read timeout + * ARM: OMAP: OneNAND: panic_write may be in an interrupt context + * RX51: Add basic support for rx-51 + * Revert "OMAP3 clock: fix non-CORE DPLL rate assignment bugs" + * phonet: sparse annotations of protocol, remove forward declaration + * OMAP3: PM: decouple PER and CORE context save and restore + * OMAP3: PM: Fix wrong sequence in suspend. + * OMAP: SRF: Fixes to shared resource framework (Ver.3) + * OMAP3 SRF: OMAP PM srf implementation + * OMAP3 SRF: omap3 srf driver + * OMAP3 SRF: MPU/CORE/PD latency modeling + * OMAP3 SRF: Generic shared resource f/w + * OMAP3: PM: Always return value in pwrdms_setup + * OMAP3: PM: Do not set next states sw to control those is available + * OMAP3: Do not set mpu, core, neon states if cpuidle is used + * OMAP3: PM: Use pwrdm_set_next_pwrst instead of set_pwrdm_state in + idle loop + * OMAP: PM: Implement get_last_off_on_transaction_id() + * OMAP3: PM: SDRC auto-refresh workaround for off-mode + * OMAP: SDRC: Add new register definitions for SDRAM controller + * OMAP3: PM: Enable SDRAM auto-refresh during sleep + * OMAP3 PM: off-mode support for HS/EMU devices + * OMAP3: SRAM size fix for HS/EMU devices + * OMAP: PM: off-mode support for DMA on EMU/HS devices + * OMAP3: PM: Fix cpu idle init sequencing + * OMAP3: PM: CPUidle: restrict C-states on UART activity + * OMAP3: PM: CPUidle: obey enable_off_mode flag + * OMAP3: PM: CPUidle: Enable Kconfig option for OMAP + * OMAP3: PM: CPUidle: Safe-state on bm-activity + * OMAP3: PM: CPUidle: Enables C3 and C5 + * OMAP3: PM: CPUidle: Enables state C4 + * OMAP3: PM: CPUidle: Basic support for C1-C2 + * OMAP: PM: DMA context save / restore + * OMAP: PM: sysfs interface for enabling voltage off in idle + * OMAP3: 3430SDP minimal kernel defconfig + * OMAP3: PM: allow runtime enable/disable of OFF mode + * OMAP3: PM: CORE domain off-mode support + * OMAP3: PM: MPU off-mode support + * OMAP3: PM: Restore MMU table entry + * OMAP3: PM: handle PER/NEON/CORE in idle + * OMAP3: PM: SRAM restore function + * OMAP3: PM: SCM context save/restore + * OMAP3: PM: Populate scratchpad contents + * OMAP3: PM: PRCM context save/restore + * OMAP3: PM: INTC context save/restore + * OMAP3: PM: I2C context save/restore + * OMAP3: PM: GPIO context save/restore + * OMAP3: PM: GPMC context save/restore + * OMAP: Add debug observablity (debobs) Kconfig item + * OMAP: Debug observability and ETK padconf implementation + * OMAP: PM: Add definitions for ETK pads and observability registers + * OMAP: PM debug: Add PRCM register dump support + * OMAP: PM debug: do not print out status for meta powerdomains + (dpll*) + * OMAP: PM debug: make powerdomains use PM-debug counters + * OMAP: PM: Add pm-debug counters + * OMAP: PM: Add closures to clkdm_for_each and pwrdm_for_each. + * OMAP: PM: Hook into PM counters + * OMAP: PM counter infrastructure. + * HSMMC: Make driver support dynamic idle + * OMAP: PM: Typo fix for clock_allow_idle + * OMAP2/3: HSMMC: Ensure HSMMC is fully reset on boot + * OMAP2/3 omapdev: add code to walk the omapdev records + * OMAP3xxx omapdev: add OMAP3xxx omapdev records + * OMAP243x omapdev: add OMAP243x omapdev records + * OMAP242x omapdev: add OMAP242x omapdev records + * OMAP2/3 omapdev: add basic omapdev structure + * OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM + no-op layer. + * OMAP3: PM: UART save/restore support for OFF-mode + * OMAP3: PM: UART: Add 8250 UART PM hook for suspend/resume + * 8250: when waking, PM hook should be called before accessing port + * 8250: Allow platform to register PM hook + * OMAP3: PM: Allow UARTs to be unclocked when inactive + * OMAP3: PM: Add wake-up bit defintiions for CONTROL_PADCONF_X + * Phonet: do not reply to indication reset packets + * Phonet: include generic link-layer header size in MAX_PHONET_HEADER + * Phonet: Simple doc fix. + * Phonet: pipe end-point protocol documentation + * Phonet: implement GPRS virtual interface over PEP socket + * Phonet: receive pipe control requests as out-of-band data + * Phonet: Pipe End Point for Phonet Pipes protocol + * Phonet: connected sockets glue + * Phonet: modules auto-loading support + * phonet: Protect if_phonet.h against multiple inclusions. + * Phonet: declare headers + * Phonet: improve documentation + * Phonet: Netlink factorization and cleanup + * Phonet: kernel documentation + * Phonet: emit errors when a packet cannot be delivered locally + * Phonet: proc interface for port range + * Phonet: provide MAC header operations + * Phonet: Phonet datagram transport protocol + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: network device and address handling + * Phonet: add CONFIG_PHONET + * Phonet: PF_PHONET protocol family support + * Phonet: global definitions + * ISDN sockets: add missing lockdep strings + * omap3 evm, beagle and overo use the generic twl4030 script + * Generic twl4030 power script for 3430 based boards. + * 3430sdp and ldp use custom twl4030 power scripts. + * Hook twl4030 power code into twl4030 core. + * Move existing TWL4030 code to drivers/mfd + * Add defines and data types for twl4030. + * OMAPFB: fix printing of reserved memory + * OMAP3 DSS: Fixed FIFO buffer register field sizes + * OMAP3: Remove CONFIG_OMAP_SYSOFFMODE flag + * alsa: add Beagleboard SoC configuration. + * omap: Add basic support for Pandora handheld console + * ARM: OMAP3: Fix get_irqnr_and_base to clear spurious interrupt bits + * Revert "OMAP3: ack spurious IRQs in get_irqnr_and_base" + + -- Yauheni Kaliuta Wed, 19 Nov 2008 13:25:02 +0200 + +kernel (2.6.27-20084602r00) unstable; urgency=low + + * rx51: enable camera button in rx51_medium_defconfig + * board-rx51: Add camera button + * ARM: OMAP2: RX51 Camera Button Driver + + -- Yauheni Kaliuta Mon, 17 Nov 2008 16:18:12 +0200 + +kernel (2.6.27-20084601r01) unstable; urgency=low + + * rx-51-2008-46-1. Fixes: NB#86677 + * RX51: Enable leds-twl4030-vibra and led-triggers in + rx51_medium_defconfig + * leds_twl4030_vibra: Fix random crashes when module was loaded + * leds: move twl4030 vibrator driver to drivers/leds + * i2c: twl4030-vibra: move to LED framework + + -- Yauheni Kaliuta Tue, 11 Nov 2008 16:35:48 +0200 + +kernel (2.6.27-20084503r03) unstable; urgency=low + + * RX51: Disable XTI for now + * OMAP: HSMMC: Use mod_timer from a single point for readability. + * OMAP: HSMMC: Fix SDVS values in omap_mmc_switch_opcond + * OMAP: HSMMC: Fix oops in omap_mmc_remove + + -- Yauheni Kaliuta Tue, 11 Nov 2008 16:00:51 +0200 + +kernel (2.6.27-20084503r02) unstable; urgency=low + + * RX51: enable the CMT speech driver + * config: remove unneeded MTD stuff + * UBIFS: use bulk read and do not check data CRC + + -- Yauheni Kaliuta Fri, 07 Nov 2008 11:48:31 +0200 + +kernel (2.6.27-20084503r01) unstable; urgency=low + + * rx51: add KEYBOARD_TWL4030 to rx51_medium_defconfig + * rx51: twl4030 keypad Kconfig dependency fix + + -- Yauheni Kaliuta Thu, 06 Nov 2008 12:41:23 +0200 + +kernel (2.6.27-20084502r01) unstable; urgency=low + + * rx-51-2008-45-2 + * Fixed bugfix record. + * i2c: madc: change misc device name to old one + + -- Yauheni Kaliuta Wed, 05 Nov 2008 15:54:48 +0200 + +kernel (2.6.27-20084501r01) unstable; urgency=low + + * rx-51-2008-45-1. + * Implemented: NR#191262,NR#190497 + * Fixes: NB#88968, NB#90088, NB#88151, NB#84194, NB#84094, NB#89384 + * ARM: OMAP: RX51: Add headphone to gpio-switch + * BRIDGE: wake up dsp before accessing MMU + * Build the CMT speech driver + * CMT speech driver. + * Phonet: do not reply to indication reset packets + * Phonet: include generic link-layer header size in MAX_PHONET_HEADER + * usb: musb: fix typo on procfs interface + + -- Yauheni Kaliuta Wed, 05 Nov 2008 13:57:51 +0200 + +kernel (2.6.27-20084401r02) unstable; urgency=low + + * ASoC: RX51: Add "Mic" function to jack connector + * usb: musb: put back musb_hdrc procfs entry + * i2c: twl4030-usb: fall back to showing 0/1 instead of off/on + * Nokia USB gadget: Enable Phonet support + * Support DEB_BUILD_OPTIONS parallel + + -- Yauheni Kaliuta Mon, 03 Nov 2008 17:26:58 +0200 + +kernel (2.6.27-20084401r01) unstable; urgency=low + + * rx-51-2008-44-1. Fixes: NB#83736 + + -- Yauheni Kaliuta Tue, 28 Oct 2008 17:09:10 +0200 + +kernel (2.6.27-20084201r05) unstable; urgency=low + + * The next one + + -- Yauheni Kaliuta Tue, 28 Oct 2008 16:48:58 +0200 + +kernel (2.6.27-20084201r04) unstable; urgency=low + + * New release + + -- Yauheni Kaliuta Mon, 27 Oct 2008 18:26:17 +0200 + +kernel (2.6.27~rc7-20084201r03) unstable; urgency=low + + * The last change was bad, just ignore the result code now + + -- Yauheni Kaliuta Fri, 17 Oct 2008 17:15:52 +0300 + +kernel (2.6.27~rc7-20084201r02) unstable; urgency=low + + * Move oprofile modules only if they exist + * Put oprofile kernel module to kernel-debug package + + -- Yauheni Kaliuta Fri, 17 Oct 2008 16:21:04 +0300 + +kernel (2.6.27~rc7-20084201r01) unstable; urgency=low + + * rx-51-2008-42-1. + * i2c-omap: fix I2C timeouts due to recursive omap_i2c_{un,}idle() + + -- Yauheni Kaliuta Mon, 13 Oct 2008 17:02:33 +0300 + +kernel (2.6.27~rc7-20084102r01) unstable; urgency=low + + * rx-51-2008-41-2. Fixes: NB#88151 + * New upstream release + * Update debian/rules to the new upstream release + * usb: musb: fix a few merge conflicts + + -- Yauheni Kaliuta Fri, 10 Oct 2008 17:08:54 +0300 + +kernel (2.6.26+repack-20084001r01) unstable; urgency=low + + * rx-51-2008-40-1. Fixes: NB#88693, NB#87659, NB#87619 + * Unregister the device when removing hci device + * mac80211: increase authentication and scan timeouts + * wl1251: add basic locking + * wl1251: depend on SPI_MASTER + * wl1251: disable hardware scanning + * wl1251: enable radio even without ssid + * wl1251: use mac80211 filters + + -- Yauheni Kaliuta Tue, 30 Sep 2008 15:40:21 +0300 + +kernel (2.6.26+repack-20083901r01) unstable; urgency=low + + * Removed unneeded - from extraversion + * Fixed version, the last should be 20083901 + + -- Yauheni Kaliuta Wed, 24 Sep 2008 20:22:46 +0300 + +kernel (2.6.26+repack-20083801r05) unstable; urgency=low + + * rx-51-2008-39-1 + * Implemented: NR#191262, NR#190497, NR#191312 + * ARM: OMAP: RX51: Add headphone to gpio-switch + * ARM: OMAP: RX51: Change I2C1 f_SCL to 2600kHz + * usb: gadget: workaround storage command size issues. Fixes: NB#87769 + + -- Yauheni Kaliuta Wed, 24 Sep 2008 13:25:40 +0300 + +kernel (2.6.26+repack-20083801r04) unstable; urgency=low + + * Make EXTRAVERSION more stable + + -- Yauheni Kaliuta Thu, 18 Sep 2008 16:23:11 +0300 + +kernel (2.6.26+repack-20083801r03) unstable; urgency=low + + * Add linux-kernel-headers package. Fixes: NB#87340 + + -- Yauheni Kaliuta Thu, 18 Sep 2008 14:51:09 +0300 + +kernel (2.6.26+repack-20083801r02) unstable; urgency=low + + * Updated bugfix list + + -- Yauheni Kaliuta Wed, 17 Sep 2008 12:50:41 +0300 + +kernel (2.6.26+repack-20083801r01) unstable; urgency=low + + * rx-51-2008-38-1. Fixes: NB#87928, NB#87899 + * Implemented: NR#191312 + * Fix SSI spinlock deadlock. + * McSAAB: Downgrade KERN_ERR logs to KERN_DEBUG + * McSAAB: Fix TX stuck bug due a TX race condition + * McSAAB: implement network interface directly + * OMAP2: add retry after read timeout + * OMAP3: add delay for GPIO + * PEP GPRS fixes + * PEP: fix non-blocking accept + * Phonet: Use link-layer infrastructure, use NET_RX_SUCCESS. + * Phonet: provide MAC header operations + * Put the camera stuff back. + * RX51 config: remove n_phonet and ssi_pn_tty + * RX51: Enable NETFILTER in rx51_defconfig + * Remove SSI Phonet TTY driver from build system + * Remove n_phonet from build system + * Remove n_phonet: Phonet line discipline support + * Remove ssi_pn_tty: SSI Phonet TTY driver + * Revert "Add missing camera stuff." + * Revert "Add some camera-related stuff." + * SSI cosmetic fix + * Security: Kernel OOM-killer and allocation denial use different rules + * lowmem: Add lowmem module to the rx51_defconfig + * lowmem: Security modules can no longer be removed. + * lowmem: add compatibility code + * lowmem: get rid of the percentages + * lowmem: remove an unecessary local variable + * lowmem: remove unecessary usage of proc_dointvec_minmax() + * lowmem: sysfs has changed + * lowmem: update memory management functions for the new kernel + + -- Yauheni Kaliuta Wed, 17 Sep 2008 12:16:57 +0300 + +kernel (2.6.26+repack-20083701r01) unstable; urgency=low + + * rx-51-2008-37-1. Fixes: NB#88085, NB#87106, NB#87572, NB#86681. + * ASoC: RX51: Add dummy aic34b driver meant to Nokia RX51 only + * ASoC: RX51: Add more functions to jack connector + * ASoC: RX51: Use aic34b dummy driver for Nokia RX51 earpiece + * Enable uart clocks while shutting down + * Move frame receiving to another place + * OMAP/FB/BACKLIGHT: Implemented display backlight support. + * RX51: Fix rx51_defconfig permissions + * UBIFS: add forgotten gc_idx_lebs component + * UBIFS: allow for racing between GC and TNC + * UBIFS: always read hashed-key nodes under TNC mutex + * UBIFS: always set i_generation to 0 + * UBIFS: amend f_fsid + * UBIFS: do not update min_idx_lebs in stafs + * UBIFS: few commentary fixes + * UBIFS: fill f_fsid + * UBIFS: fix assertion + * UBIFS: fix budgeting request alignment in xattr code + * UBIFS: fix division by zero + * UBIFS: fix zero-length truncations + * UBIFS: improve arguments checking in debugging messages + * UBIFS: improve statfs reporting + * UBIFS: improve statfs reporting even more + * UBIFS: introduce LEB overhead + * UBIFS: make minimum fanout 3 + * UBIFS: push empty flash hack down + * UBIFS: remove incorrect index space check + * UBIFS: remove unneeded check + * UBIFS: xattr bugfixes + * cfg80211: use EU as default regulatory domain + * fix vbus reporting to userland + * mac80211: Handle scan result IEs in one block + * wl1251: add SET_PLT_MODE netlink command + * wl1251: add sysfs file to set tx management frame rate + * wl1251: add wl1251_notice() + * wl1251: do not free nvs or firmware after firmware boot error + * wl1251: enable BT coexistance + * wl1251: make firmware bootup messages more compact + + -- Yauheni Kaliuta Wed, 10 Sep 2008 13:31:32 +0300 + +kernel (2.6.26+repack-20083601r03) unstable; urgency=low + + * Run depmod in postinst + * Use full KVER for filenames, not only REVISION + + -- Yauheni Kaliuta Fri, 05 Sep 2008 16:07:34 +0300 + +kernel (2.6.26+repack-20083601r02) unstable; urgency=low + + * rx-51-2008-36-1. Fixes: NB#86679 + * input: rx51_camera_btn change keycode KEY_FN_F12 to KEY_F10 + * Remove another double kfree_skb + * ARM: OMAP: RX-51: Change Fn keycode + * wl1251: fix firmware register reading via netlink + * input: move rx51_camera_btn to platform_driver + * Remove double kfree_skb + + -- Yauheni Kaliuta Wed, 03 Sep 2008 16:59:33 +0300 + +kernel (2.6.26+repack-20083601r01) unstable; urgency=low + + * Repack the kernel, produce everything from one source package + + -- Yauheni Kaliuta Tue, 02 Sep 2008 18:17:28 +0300 + +kernel-source (2.6.26-osso9) unstable; urgency=low + + * rx-51-2008-35-2 + * Revert "i2c context save/restore". Fixes: NB#87907 + * Enable OMAP3 temperature driver + + -- Yauheni Kaliuta Fri, 29 Aug 2008 14:24:12 +0300 + +kernel-source (2.6.26-osso8) unstable; urgency=low + + * rx-51-2008-35-1 + * ARM: OMAP: Enable Camera button driver in rx51_defconfig + * ARM: OMAP: RX-51: Disable fbcon + * ARM: OMAP2: RX51 Camera Button Driver + * ARM: OMAP: RX-51: Bring keymap into line with B1 + * FB: OMAP: DISPC: Add helper function to change plane base address + * ARM: OMAP3: RX-51: Bump base fb size + * FB: OMAP: DISPC: Allow multiple external IRQ handlers + * ARM: OMAP2: Fix definition of SGX clock register bits + * Phonet: kernel documentation + * PEP: receive control request as out-of-band data + * Phonet: various PEP protocol fixes + * Add missing camera stuff. + * Add some camera-related stuff. + * Remove some camera stuff. + * Revert "Update camera stuff." + * TI DSP BRIDGE: Update rx51_defconfig + * TI DSP BRIDGE: Use likely/unlikely for status checking for all + * TI DSP BRIDGE: Revert device_create() update + * TI DSP BRIDGE: Kconfig entry + * TI DSP BRIDGE: mini driver + * TI DSP BRIDGE: service + * TI DSP BRIDGE: Resource manager + * TI DSP BRIDGE: Platform manager + * TI DSP BRIDGE: Hardware + * TI DSP BRIDGE: Generic utilities + * TI DSP BRIDGE: Dynamic doff binary loader + * TI DSP BRIDGE: header files + * TI DSP BRIDGE: README + * Revert "DSP Bridge" + * Revert "DSP Bridge config options" + + -- Yauheni Kaliuta Wed, 27 Aug 2008 16:00:02 +0300 + +kernel-source (2.6.26-osso7) unstable; urgency=low + + * Removed forbidden words from debian/changelog + + -- Yauheni Kaliuta Wed, 27 Aug 2008 13:06:53 +0300 + +kernel-source (2.6.26-osso6) unstable; urgency=low + + * rx-51-2008-34-2 + * usb: core: fix NULL pointer dereference when removing gadget driver + * twl3040-gpio: fix task softlockup warning + * Workaround for UART dynamic idle timer + + -- Yauheni Kaliuta Thu, 21 Aug 2008 11:13:08 +0300 + +kernel-source (2.6.26-osso5) unstable; urgency=low + + * rx-51-2008-34-1 + * RX51: build CMT speech module + * OMAP SSI CMT speech: fix prototypes + * Introducing CMT speech driver + * Phonet PEP: fix error code for send() + * Phonet PEP: fix non-blocking accept() + * Phonet: cosmetic fixes + * Phonet: pull pipe data header early enough + * Phonet: support GPRS interface over PEP socket + * Phonet: unaligned TX support + * n_phonet: fragmented TX support + * n_phonet: unaligned TX support + * n_phonet: locking fix + * Phonet End Point protocol cleanup + * Phonet: warn on unaligned socket buffer + * SSI: Set driver dependency more precisely + * Add SDTI EPM pin multiplexing. + * Update camera stuff. + * Revert "OMAP34XXCAM: Fix initialisation order in slave registration" + + -- Yauheni Kaliuta Wed, 20 Aug 2008 17:34:33 +0300 + +kernel-source (2.6.26-osso4) unstable; urgency=low + + * rx-51-2008-33-2 + * Fixed PM debug for 34xxx + + -- Yauheni Kaliuta Wed, 13 Aug 2008 13:20:52 +0300 + +kernel-source (2.6.26-osso3) unstable; urgency=low + + * rx-51-2008-33-1 + + -- Yauheni Kaliuta Tue, 12 Aug 2008 15:53:21 +0300 + +kernel-source (2.6.26-osso2) unstable; urgency=low + + * rx-51-2008-32-1 + + -- Yauheni Kaliuta Wed, 06 Aug 2008 15:29:59 +0300 + +kernel-source (2.6.26-osso1) unstable; urgency=low + + * rx-51-2008-30-1 + + -- Yauheni Kaliuta Fri, 25 Jul 2008 14:31:59 +0300 + +kernel-source (2.6.26~rc4-osso7) unstable; urgency=low + + * week200829-1 release + * OMAP3ISP: Disable lsc (temporarily) + * RX51: Camera: make machine code module + * OMAP34XXCAM: Add support to camera daemon + * debuggauspätsi + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * V4L: Int if: Add vidioc_int_querycap + * OMAP34XXCAM: Fix suspend/resume + * OMAP34XXCAM: Compile as modules + * V4L: Int if: Export symbols to ease building as modules + * V4L: Int if: Allow initiating device initialisation anywhere + * OMAP3ISP: Calculate sizeimage correctly + * OMAP3ISP: Simplify isp_stop() + * OMAP34XXCAM: Fix error handling in open + * OMAP34XXCAM: Do streamoff in proper cases only + * OMAP34XXCAM: vidioc_default locking changes + * ARM: OMAP: Camera: Camera and ISP changes to support auto focus. + * ISP user headers + * OMAP34XXCAM: Fix error handling in open() + * OMAP34XXCAM: Fix locking + * OMAP34XXCAM: Fix private ioctl handler + * OMAP34XXCAM: Don't issue vidioc_int_init at streamon + * ARM: OMAP: OMAP34XXCAM: Abstraction layer changes. + * ARM: OMAP: OMAP34XXCAM: Private IOCTLs fix. + * ARM: OMAP: OMAP34XXCAM: 3430 SDP Board changes for mt9p012 sensor + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Fix video buffer leak for mmap buffers + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Fixing LSC Prefetch error seen after first image capture. + * Changing to private IOCTLs instead of private controls. + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * Pass process information to userspace coredump + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * usb: gadget: cdc2.c + * usb: gadget: Fixes to obex function driver + * usb: composite: several changes to composite layer + * wl1251: Support for MAC setting + * wl1251: don't overwrite wl1251_rates[] values + * wl1251: some error message cleanup + * wl1251: tx frame index reset + * wl1251: channel switch + * wl1251: Fix TX path memory leak + * wl1251: fix free_irq() + * Add support for "audio -" (KEY_F8) and "audio +" (KEY_F7) keys. + * ASoC: RX51: Update for bulk DAPM registration APIs + * ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter + * ARM/OMAP/FB: Fix LCD panel identifiers and default name + * ARM/OMAP/FB: Add support for new LCD panel class ACX565AKM + * usb: musb: add back musb_hset tool + * mmc: make mmc probe again + * Update Bluetooth core version number + * Add support for TIOCOUTQ and TIOCINQ ioctls + * Add timestamp support to L2CAP, RFCOMM and SCO + * Signal user-space for HIDP and BNEP socket errors + * Move pending packets from RFCOMM socket to TTY + * Store remote modem status for RFCOMM TTY + * Use non-canonical TTY by default for RFCOMM + * Support the case when headset falls back to SCO link + * Initiate authentication during connection establishment + * Export details about authentication requirements + * Disconnect when encryption gets disabled + * Introduce the different bonding types + * Limit packet type change on incoming connections + * Update class of device value whenever possible + * Export remote Simple Pairing mode via sysfs + * Use ACL config stage to retrieve remote features + * Some cleanups for HCI event handling + * Make use of the default link policy settings + * Track status of remote Simple Pairing mode + * Track status of Simple Pairing mode + * Disable disconnect timer during Simple Pairing + * ASoC: Add digital mic configuration to RX51 machine driver + * ASoC: TLV320AIC3X: Add support for digital microphone input + * ASoC: TLV320AIC3X: Modify only interface related bits in + aic3x_set_dai_fmt + * ASoC: TLV320AIC3X: Use register modifier widget for mic bias + * ASoC: Add support for generic DAPM register modifier widget + * ASoC: Tweak tlv320aicx reg_cache_size + * ASoC: Clarify API for bias configuration + * soc - tlv320aic3x - Convert to use bulk registration APIs + * soc - DAPM - Bulk route registration + * soc - Add bulk DAPM control registration + * soc - tlv320aic3x - add GPIO support + * soc - tlv320aic3x - revisit clock setup + * wl1251: use 48 MHz SPI clock + * wl1251: power off cleanups + * wl1251: Ad-Hoc mode support + * wl1251: WPA support + * wl1251: WEP support + * Move fw sending to interrupt context + * Fix hci_h4p sysfs removing + * ASoC: OMAP: Add audio endpoint and route to FM TX chip in Nokia RX51 + * i2c: add MODULE_ALIAS to twl4030 drivers + * usb: musb: allow usb to be built as module + * usb: hub: add check for unsupported bus topology + * usb: musb: musb on omap3 has 32 endpoints + * Add simple headphone jack support for RX51 audio + * Add TPA6130A2 support to board-rx51.c + * Add support for TPA6130A2 chip + * I2C: lis302dl: Add selftest functionality + * WL1251: disable BT-WLAN PTA code + * USB: MUSB: Charger detection is deferred to next wake-up 3rd. + * i2c: twl4030-vibra: fix use of delayed_work + * usb: otg: match with == instead of & + * usb: serial: Fix PID for rx51 + * usb: otg: tpl: Support storage and hid devices + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver + * I2C: LP5523: Add LED selftest functionality, update to new i2c + driver model + * omap: rx51: section mismatch fix + * usb: musb: charger detection fix + * si4713: Fix set region function to change frequency only when needed + * si4713: Fix set frequency ioctl to proper check power level + * MMC: RX51: Add sysfs file cover_switch + * MMC: RX51: Add card detection irq + * MMC: OMAP: Add slot_name entry to sysfs + * MMC: OMAP: Re-organizing some goto at hsmmc probe + * MMC: OMAP: Readable output for IRQ status register + * MMC: PM: Reset controllers without CONFIG_MMC_OMAP_HS + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: Initial MMC support for RX51 + * Add TWL4030 RTC support to board-rx51.c + * RX51: Add cmt_apesleepx gpio-switch + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * musb: there's no need to sysfs notify + * usb: musb: get vbus status for omap2430 and omap3 + * usb charger detection prototype + * si4713: Fix driver probe sequence by adding device id table + * si4713: Change power_level range + * si4713: Remove double range checking when setting power_level + * si4713: Add region selection feature + * si4713: Add antenna tuning value property + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + * I2C: TWL4030 Vibra driver + * I2C: TWL4030: Add get device helper function + * I2C: TWL4030: Fix error handling in MADC driver + * I2C: TWL4030: Remove msleep(1) from MADC driver + * HS OMAP3430 L2 invalidate + * I2C: lis302dl: Add .id_table to i2c_driver struct + * wl1251: implement join ssid command + * wl1251: implement rx path + * wl1251: implement hardware scan + * wl1251: implement tx path + * wl1251: implement mailbox event handling + * wl1251: implement interrupt handling + * wl1251: implement hw initialisation sequence + * I2C: add support for lis302dl accelometer driver + * Add H4+ support for BCM2048b0 bluetooth chip + * rx-51: add wl1251 + * wl1251: add Kconfig and Makefile files + * wl1251: port to mac80211 bands API + * Add wl1251 driver + * ARCH: OMAP: RX51: USB: Do not block sleep + * USB: SERIAL GADGET: Add nokia strings + * USB: GADGET: Add nokia ids to file_storage.c + * USB: SERIAL GADGET: Start using obex function + * USB: COMPOSITE: Support 16 interfaces by default + * OBEX: Introduce f_obex function driver. + * usb serial gadget: use updated framework + * usb serial gadget: generic serial function driver + * usb serial gadget: cdc acm function driver + * usb gadget zero: use updated framework + * usb gadget zero: loopback function driver + * usb gadget zero: sourcesink config driver + * usb gadget: composite gadget framework + * usb gadget support descriptor copying + * usb serial gadget: use new tty glue + * usb serial gadget: modular tty glue + * TSC2005 gpio setup is made by driver. + * si4713: Improve probe function + * si4713: Moved irq field from platform_data to i2c_board_info + * warm reboot detection + * LP5523: Change kconfig from bool to tristate + * si4713: Fix the boot up timeout value + * si4713: Disabled pilot tone feature by default + * si4713: Remove DEFAULT_*_ENABLED macro definitions + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * I2C: add support for lp5523 LED driver + * Add support for Taos tsl2563 ambient light sensor + * si4713: Fix i2c bus address + * rx51: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * USB: OTG: Make otg_tpl come from platform_data + * USB: OTG: Add check for roothub initialization + * USB: OTG: Start using new otg tpl. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * UBIFS: fix TNC old_idx recording + * UBIFS: fix kernel-doc warnings + * UBIFS: fix sparse warnings + * UBIFS: fix checkpatch.pl warnings + * UBIFS: fix a comment + * UBIFS: switch to ro mode if GC fails + * UBIFS: fix GC error path + * UBIFS: add ubi_leb_map to failure mode + * UBIFS: stop failing after failure mode switched off + * UBIFS: fix xattr size checks + * UBIFS: fix comment + * UBIFS: use 32-bit size for xattr_size + * UBIFS: fix bug igetting xattrs + * UBIFS: fix bugs and store xattr flag on media + * UBIFS: fix bug in ubifs_jnl_delete_xattr + * UBIFS: implement fast-path for ubifs_write_begin + * UBIFS: try more in budgeting + * UBIFS: fix error path in ubifs_write_end + * UBIFS: more preparations for the comint split + * UBIFS: prepare to write_end split + * UBIFS: introduce one more budgeting request flag + * UBIFS: introduce fast budgeting flag + * UBIFS: add splice_read + * UBIFS: tweak sync_wbufs_by_inode fn + * UBIFS: leave i_size alone in rmdir + * UBIFS: do not lock pages when holding ui_mutex + * UBIFS: we now consider size errors fatal + * UBIFS: fix an assert + * UBIFS: fix 80-column violations + * UBIFS: tidy multi-lock fns + * UBIFS: use ui_size in getattr + * UBIFS: fix fdatasync() + * UBIFS: fix O_SYNC + * UBIFS: unbrake lpt initialization + * UBIFS: fix lock_3_inodes + * UBIFS: fixes for tiny FSes + * UBIFS: print less on mount + * UBIFS: fix nospc flag + * UBIFS: check sqnum and ino as well + * UBIFS: fix inode locking + * UBIFS: fix error patch + * UBIFS: rename synced_i_size_lock as well + * UBIFS: rename wb_mutex + * UBIFS: amend and add comments + * UBIFS: introduce shadow field for i_size + * UBIFS: return to old WB protection method + * UBIFS: do not use time values that may be too old + * UBIFS: minor changes to nospace flag + * UBIFS: fix nospace flag + * UBIFS: remove redundant ubifs_write() + * UBIFS: move some fns to eliminate a fn prototype + * UBIFS: ensure LPT has space in big model + * UBIFS: make bdi per-superblock + * UBIFS: add assert + * UBIFS: remove unnecessary i_size_read()s + * UBIFS: remove unnecessary kernel lock + * UBIFS: introduce nospace flag + * UBIFS: fix Zoltan's bug + * UBIFS: fix 64-bit calculations + * UBIFS: fix inconcistency problem for xattr as well + * UBIFS: get rid of sync argument in xattr jnl funcs + * UBIFS: tweak ubifs_jnl_write_2_inodes + * UBIFS: fix compilation warning + * UBIFS: do not use i_lock + * UBIFS: fix i_size and i_nlink consistency issues + * UBIFS: rename synced_lock + * UBIFS: introduce wb_i_size and wb_i_nlink + * UBIFS: journal changes + * UBIFS: lessen wb_mutex contention + * UBIFS: tweak inode synchronization + * UBIFS: do not forget to flush write-buffer when truncating + * UBIFS: tweak synced_i_size check + * UBIFS: remove sync argument from ubifs_jnl_write_inode + * UBIFS: remove sync argument from ubifs_jnl_update + * UBIFS: add a comment + * UBIFS: fix inode synchronization in ubifs_rename + * UBIFS: fix inode cleaning in ubifs_rename + * UBIFS: remove dirty_ino_cnt + * UBIFS: rename ui_mutex to wb_mutex + * UBIFS: remove leftovers + * UBIFS: fix ubifs_rename + * UBIFS: mark inodes clean + * UBIFS: get rid of ubifs_budget_inode_op + * UBIFS: introduce one more budgeting helper + * UBIFS: symplify sync operations budgeting + * UBIFS: remove some budgeting debugging stuff + * UBIFS: lessen amount of assertions in budget.c + * UBIFS: amend a comment + * UBIFS: rename budg_mutex + * UBIFS: fix a very stupid bug + * UBIFS: improve ro_media checking + * UBIFS: adjust lprops check slightly + * UBIFS: few spelling fixes + * UBIFS: split ubifs_setattr + * UBIFS: minor tweaks in truncation + * UBIFS: nlink is unsigned + * UBIFS: fix budgeting calculations + * UBIFS: improve budgeting in ubifs_rename + * UBIFS: improve budgeting debugging + * UBIFS: fix incorrect budgeting changes + * UBIFS: unlock page on error path + * UBIFS: check node type first to prevent buffer misuse + * UBIFS: add fs check to documentation + * UBIFS: i_size synchronization adjustments + * UBIFS: remove incorrect assertions + * UBIFS: fix inode count on error path + * UBIFS: fix dangling links again + * UBIFS: fix rename error path too + * UBIFS: fix link count for directory renames + * UBIFS: fix master leak on error path + * UBIFS: fix mctime + * UBIFS: review and fix budgeting in dir.c + * UBIFS: fix deadlock + * UBIFS: when inode size is change, set I_DIRTY_DATASYNC + * UBIFS: never write beyond inode size + * UBIFS: write inode when truncating + * UBIFS: introduce synced_i_size + * UBIFS: UBIFS_TRUN_NODE_SZ is already aligned + * UBIFS: amend ubifs_jnl_truncate interface + * UBIFS: remove assertion + * UBIFS: do not return negative available space + * UBIFS: rename key_ino to key_inum + * UBIFS: rename NC to LPROPS_NC + * UBIFS: make dbg_check_dir_size check nlink as well + * UBIFS: partially get rid of truncation key + * UBIFS: remove format version 2 support + * UBIFS: fix orphan leak on error path + * UBIFS: fix lpt leaks on error path + * UBIFS: add a UUID to super block + * UBIFS: fix extended attributes size + * UBIFS: add file-system checking function + * UBIFS: clean up resource freeing + * UBIFS: remove debugging stuff from tnc.c + * UBIFS: better error message in read_znode + * UBIFS: another gc_lnum recovery fix + * UBIFS: make dbg_tnc_walk non-recursive + * UBIFS: fix Kconfig + * UBIFS: dump creat_sqnum as well + * UBIFS: remove incorrect cond_resched + * UBIFS: add dbg_dump_index + * UBIFS: tweak scan_for_dirty and asserts + * UBIFS: define change_lp() 'no-change' value + * UBIFS: always commit after recovery + * UBIFS: add a comment + * UBIFS: kill orphans in ro mount also + * UBIFS: ubifs-v0.7 + * UBIFS: amend dbg_dump_node + * UBIFS: minor debugging print fix + * UBIFS: fix false assertion allarm in budgeting + * UBIFS: print dead direntry name + * UBIFS: print format version + * UBIFS: do not use -1 offsets + * UBIFS: temporary hack for backward compatibility + * UBIFS: fix bad hash mask bug + * UBIFS: minor print tweaks + * UBIFS: get rid of cpu_to_le64(0) + * UBIFS: rename fmt_vers to fmt_version + * UBIFS: tweak asserts and gc_lnum fix + * UBIFS: move ubifs_validate_entry + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove unnecessary 'if' in bg thread + * UBIFS: fix flags + * UBIFS: rework flags inheritance + * UBIFS: fix gc_lnum recovery + * UBIFS: split out ubifs_fill_super + * UBIFS: mount_ubifs now cleans up its own errors + * UBIFS: get rid of scary lockup warnings + * UBIFS: tweak bg thread + * UBIFS: remove unnecessary cond_resched() + * UBIFS: do not set nice level in bg thread + * UBIFS: use __clear_bit and __set_bit in LPT + * UBIFS: remove unnecessary kzalloc + * UBIFS: use __clear_bit and __set_bit + * UBIFS: use memory barriers in dbg_tnc_check + * UBIFS: comment why we use barriers + * UBIFS: use unlikely in come core TNC functions + * UBIFS: do not use kzalloc unnecesarily + * UBIFS: fix compilation error + * UBIFS: be consistent when comparing pointers with NULL + * UBIFS: cleanup, fix, and improve tnc + * UBIFS: use is_hash_key + * UBIFS: do not validate what is in LNC + * UBIFS: add xentries to LNC + * UBIFS: rename bg thread + * UBIFS: rename JRN to JNL as well + * UBIFS: remove redundant check + * UBIFS: finally remove build.c + * UBIFS: use jnl instead of jrn + * UBIFS: get rid of build.c + * UBIFS: allow multiple blocks per page + * UBIFS: admit that we do not support NFS + * UBIFS: minor renaming + * UBIFS: fix dangling branch handling + * UBIFS: add comment + * UBIFS: ensure readahead is disabled + * UBIFS: comment why 'commit_on_unmount()' is in kill_sb + * UBIFS: make reservation before allocating sequence numbers + * UBIFS: fix misplaced code + * UBIFS: avoid 'dbg_check_key_order()' during replay + * UBIFS: fix telldir and seekdir + * UBIFS: do not forget about mnt_want_write + * UBIFS: change few bits in readdir + * UBIFS: fix memory corruption + * UBIFS: fix bogus assertions + * UBIFS: do not fail in case of bad seeks + * UBIFS: fix hash calculation + * UBIFS: maximum inode size is defined by current key format + * UBIFS: introduce macros for key constants + * UBIFS: limit inode data to block size + * UBIFS: fix returned error code + * UBIFS: fix ia64 compilation warning + * UBIFS: add a comment + * UBIFS: fix collision resolution + * UBIFS: add warning for mmapped file + * UBIFS: page is dirtied only if trunc smaller + * UBIFS: don't forget to release page + * UBIFS: fix printk warnings + * UBIFS: make UBIFS compile on system with non-4KiB pages + * UBIFS: fix "CONFIG_UBIFS_FS_DEBUG_CHKS" is not defined warning + * UBIFS: minor amendments + * UBIFS: default is already n in Kconfig + * UBIFS: get rid of Kconfig.debug + * UBIFS: no need to initialize r->key + * UBIFS: remove unneeded key comparison + * UBIFS: remove memleak and mempressure checks + * UBIFS: add module params to documentation + * UBIFS: do not assume inode size may not be changed meanwhile + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove some amount of assertion + * UBIFS: remove VFS interface checking assertions + * UBIFS: remove module param pretty print + * UBIFS: fix module params + * UBIFS: fix white space + * UBIFS: change check level to bool + * UBIFS: reinstate recovery messages + * UBIFS: add missing check flag checks + * UBIFS: remove 'key' message macros + * UBIFS: fix mmap budgeting + * UBIFS: optimize budgeting a bit + * UBIFS: fix inode budgeting + * UBIFS: making ubifs compile with gcc-3.4 + * UBIFS: fix error path in ubifs_write_end + * UBIFS: change debug control from config to module param + * UBIFS: update cmtime for mmapped writes + * UBIFS: budget for mmapped writes + * UBIFS: tweak min_idx_lebs calculation + * UBIFS: fix error path in ubifs_write_begin() + * UBIFS: add ubifs.txt to Documentation directory + * UBIFS: remove unnecessary locking + * UBIFS: fix device node files + * UBIFS: fix journal size for small partitions + * UBIFS: minor debugging print amendment + * UBIFS: fix warning + * UBIFS: fix comparisons + * UBIFS: rest of dangling branch patch + * UBIFS: fix compilation error + * UBIFS: remove unneeded check + * UBIFS: remove excessive unlikely() + * UBIFS: amend comments + * UBIFS: print error codes + * UBIFS: improve dangling branch detection + * UBIFS: bugfix in TNC + * UBIFS: tweak TNC debugging messages + * UBIFS: ubifs-v0.6 + * UBIFS: keep colliding keys sorted + * UBIFS: print error code before switching to RO mode + * UBIFS: minor change in readdir + * UBIFS: minor TNC clarification + * UBIFS: fix minor inconsistency with free space + * UBIFS: force empty FS to report zero used + * UBIFS: fix free space + * UBIFS: fix bug on error path + * UBIFS: add a TNC comment + * UBIFS: tidy LPT defines + * UBIFS: be more conservative about worst-case compression + * UBIFS: tree height can exceed 64 + * UBIFS: more clarifications for TNC + * UBIFS: random nicifications in tnc + * UBIFS: zap -ENOENT return code from resolve_collision series + * UBIFS: one more TODO for ahunter + * UBIFS: improve znode_lookup comment + * UBIFS: fix freaking TNC bug + * UBIFS: move MIN_COMPR_LEN to ubifs-media.h + * UBIFS: add TODOs for ahunter + * UBIFS: turn znode flags into enum and document them + * UBIFS: improve debugging prints some more + * UBIFS: move dbg_check_idx_size to debug.c + * UBIFS: add force in-the-gap facility + * UBIFS: do not trust znode->iip in dbg_check_znode + * UBIFS: lessen size of tnc.c + * UBIFS: nicify commentaries + * UBIFS: tweak TNC debugging messages + * UBIFS: fix dbg_check_znode() fake alarm + * UBIFS: ubifs-v0.5 + * UBIFS: revise directory size calculation + * UBIFS: add time_gran to dump_node + * UBIFS: allow for dates beyond 2038 + * UBIFS: put time granularity on super block node + * UBIFS: use time granularity consistently + * UBIFS: tweak lprops check + * UBIFS: introduce constants for matches_name() + * UBIFS: do not forget to free LNC on error path + * UBIFS: clean-up and amend matches_name() + * UBIFS: unify variable names in tnc + * UBIFS: remove bogus error + * UBIFS: amend ubifs_tnc_next_ent + * UBIFS: fix and amend debugging stuff + * UBIFS: add a TODO + * UBIFS: get rid of loop in keys_cmp + * UBIFS: optimize TNC + * UBIFS: fix TNC bug + * UBIFS: few minor cleanups + * UBIFS: add TNC dump function + * UBIFS: fix minor bug + * UBIFS: ubifs-v0.4 + * UBIFS: remove xattr_msize + * UBIFS: tweak div64.h inclusion + * UBIFS: tweak debugging + * UBIFS: use clear_nlink() in ubifs_rmdir() + * UBIFS: do not use long long with do_div + * UBIFS: remove padding field from indexing node + * UBIFS: store nanoseconds in inode time stamps + * UBIFS: ubifs-v0.3 + * UBIFS: zero out unused fileds + * UBIFS: fix bud race + * UBIFS: fix minor leak on error path + * UBIFS: fix bad lprops bug + * UBIFS: fix lsave_cnt validation + * UBIFS: add missing debug message + * UBIFS: report f_bavail correctly + * UBIFS: fix statfs reporting + * UBIFS: remove compatibility stuff + * UBIFS: don't wbuf_add_ino on error path, it overruns the buffer + * UBIFS: fix leb write wrapper + * UBIFS: split lpt.c + * UBIFS: intorduce leb write and unmap wrappers + * UBIFS: move dbg_dump_pnode to debug.c + * UBIFS: minor cleanup in lpt.c + * UBIFS: fix kernel-doc warnings + * UBIFS: fix my name + * UBIFS: remove check_volume_empty() + * UBIFS: turn recovery messages into mount messages + * UBIFS: remove xattr debugging messages + * UBIFS: fix lprops mismatch + * UBIFS: fix compolation error + * UBIFS: dump stack when switching to RO mode + * UBIFS: calc lpt_hght correctly + * UBIFS: add some ro_media checks + * UBIFS: fix checkpatch.pl warnings + * UBIFS: minor renames + * UBIFS: add some comments + * UBIFS: fix some spelling + * UBIFS: sparse fixes + * UBIFS: do ubifs.h TODOs + * UBIFS: remove budget TODOs + * UBIFS: do journal TODOs + * UBIFS: use kfree via debug function in debug.c + * UBIFS: fix minor TNC bug + * UBIFS: do build TODOs + * UBIFS: do/remove super TODOs + * UBIFS: remove gc TODOs + * UBIFS: do io.c TODOs + * UBIFS: do ioctl TODO + * UBIFS: do sb.c TODO + * UBIFS: do replay TODO + * UBIFS: do dir.c TODOs + * UBIFS: make sure inode is directory before checking size + * UBIFS: fix new ubifs_tnc_next_ent call + * UBIFS: remove TODOs in file.c + * UBIFS: remove msize + * UBIFS: last tnc TODOs + * UBIFS: tnc TODOs + * UBIFS: do some more tnc TODOs + * UBIFS: add directory i_size check function + * UBIFS: remove fast_umount sb flag + * UBIFS: make reported block size 4K again + * UBIFS: fix the code for 2.6.21 + * UBIFS: do some TODOs in tnc + * UBIFS: do some TODO's, remove others + * UBIFS: report 512 as block size + * UBIFS: directory inodes do not have any attached data + * UBIFS: fix screwed budgeting + * UBIFS: rework stat() reports + * UBIFS: fix directory size calculation + * UBIFS: msize is not used + * UBIFS: let it compile + * UBIFS: remove incorrect msize validation + * UBIFS: fix incorrect error returning + * UBIFS: be more verbose when printing errors + * UBIFS: amend Kconfig + * UBIFS: fix compatibility stuff + * UBIFS: add crypto dependency to Kconfig + * UBIFS: implement TODO in io.c + * UBIFS: make min_io_size at least 8 + * UBIFS: remove extra argument + * UBIFS: remove a TODO + * UBIFS: fix a bug in check_namespace() + * UBIFS: fix WARNING: modpost: Found 1 section mismatch(es) + * UBIFS: fix missing orphan bug + * UBIFS: do not support ACLs + * UBIFS: ubifs-v0.2 + * UBIFS: implement xattr handlers + * UBIFS: support xattrs in TNC + * UBIFS: support xattrs in journal + * UBIFS: enlarge compression threshold + * UBIFS: remove bad code + * UBIFS: introduce xentry + * UBIFS: add dummy xattr calls + * UBIFS: break on-media format + * UBIFS: tiny clean up + * UBIFS: cleanup direntry validation + * UBIFS: add a TODO + * UBIFS: add helper function for inode rmoval + * UBIFS: use __func__ instead of __FUNCTION__ + * UBIFS: use ino_t instead of unsigned long + * UBIFS: fix dirty_ino_cnt + * UBIFS: remove excessive code + * UBIFS: remove ubifs.h from include/linux/Kbuild + * UBIFS: fix new struct inode object initialization + * UBIFS: fix compilation warning + * UBIFS: improve operations in dir.c + * UBIFS: remove redundant check + * UBIFS: tweak debugging messages + * UBIFS: make some pointers const + * UBIFS: introduce xattr-related fields to inode + * UBIFS: implement a bunch of TODOs + * UBIFS: tweak journal interface + * UBIFS: make ubifs_set_i_bytes non-inline + * UBIFS: make new_ubifs_inode global + * UBIFS: rename and make macro global + * UBIFS: add a couple of TODOs + * UBIFS: fix debugging macro + * UBIFS: clean up key.h some more + * UBIFS: minor key func cleanup + * UBIFS: unify replay entries names + * UBIFS: cleanup qstr names + * UBIFS: clean up ino_t usage + * UBIFS: minor amendments in budgeting + * UBIFS: Kconfig nicifications + * UBIFS: amend copyright headers + * UBIFS: switch to new VFS interface + * UBIFS: fix default comprssor + * UBIFS: stop using iget() + * UBIFS: optimize fastpath budgeting + * UBIFS: add assertion + * UBIFS: fix budgeting + * UBIFS: do not retry in write_page() + * UBIFS: fix budgeting holes + * UBIFS: clean-up compat stuff a bit + * UBIFS: use DIV_ROUND_UP + * UBIFS: rename protecting macros + * UBIFS: remove sysfs hack + * UBIFS: print a message when fail to open UBI volume + * UBIFS: set default fanout to 8 + * UBIFS: remove leftovers + * UBIFS: remove fanout mount option + * UBIFS: rename header files + * UBIFS: store big_lpt in sup->flags + * UBIFS: store fast/norm unmount in superblock + * UBIFS: add default reserved pool size (5%, max 5 MiB) + * UBIFS: update dbg_dump_node() to support reserved pool + * UBIFS: add reserved pool support + * UBIFS: add a check for creat_sqnum + * UBIFS: reduce index node size + * UBIFS: add comment + * UBIFS: record inode creation sequence number + * UBIFS: switch to little-endian + * UBIFS: add on-flash format version + * UBIFS: use qstr for name / length pairs + * UBIFS: correct directory size calculation + * UBIFS: tidy scan slightly + * UBIFS: remove compression and key hash mount options + * UBIFS: call bdi_init + * UBIFS: initial commit + * do_mounts: allow UBI root device name + * VFS: export sync_sb_inodes + * VFS: move inode_lock into sync_sb_inodes + * OMAP3ISP: Disable lsc (temporarily) + * RX51: Camera: make machine code module + * OMAP34XXCAM: Add support to camera daemon + * debuggauspätsi + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * V4L: Int if: Add vidioc_int_querycap + * OMAP34XXCAM: Fix suspend/resume + * OMAP34XXCAM: Compile as modules + * V4L: Int if: Export symbols to ease building as modules + * V4L: Int if: Allow initiating device initialisation anywhere + * OMAP3ISP: Calculate sizeimage correctly + * OMAP3ISP: Simplify isp_stop() + * OMAP34XXCAM: Fix error handling in open + * OMAP34XXCAM: Do streamoff in proper cases only + * OMAP34XXCAM: vidioc_default locking changes + * ARM: OMAP: Camera: Camera and ISP changes to support auto focus. + * ISP user headers + * OMAP34XXCAM: Fix error handling in open() + * OMAP34XXCAM: Fix locking + * OMAP34XXCAM: Fix private ioctl handler + * OMAP34XXCAM: Don't issue vidioc_int_init at streamon + * ARM: OMAP: OMAP34XXCAM: Abstraction layer changes. + * ARM: OMAP: OMAP34XXCAM: Private IOCTLs fix. + * ARM: OMAP: OMAP34XXCAM: 3430 SDP Board changes for mt9p012 sensor + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Fix video buffer leak for mmap buffers + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Fixing LSC Prefetch error seen after first image capture. + * Changing to private IOCTLs instead of private controls. + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * usb: gadget: cdc2.c + * usb: gadget: Fixes to obex function driver + * usb: composite: several changes to composite layer + * Cleanup rebase screwup + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * Disabled CPU_IDLE from default rx51 config + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * rx51: Added information about si4713 on board file. + * wl1251: Support for MAC setting + * wl1251: don't overwrite wl1251_rates[] values + * wl1251: some error message cleanup + * wl1251: tx frame index reset + * wl1251: channel switch + * wl1251: Fix TX path memory leak + * wl1251: fix free_irq() + * Add support for "audio -" (KEY_F8) and "audio +" (KEY_F7) keys. + * ASoC: RX51: Update for bulk DAPM registration APIs + * ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter + * ARM/OMAP/FB: Fix LCD panel identifiers and default name + * ARM/OMAP/FB: Add support for new LCD panel class ACX565AKM + * usb: musb: add back musb_hset tool + * mmc: make mmc probe again + * Update Bluetooth core version number + * Add support for TIOCOUTQ and TIOCINQ ioctls + * Add timestamp support to L2CAP, RFCOMM and SCO + * Signal user-space for HIDP and BNEP socket errors + * Move pending packets from RFCOMM socket to TTY + * Store remote modem status for RFCOMM TTY + * Use non-canonical TTY by default for RFCOMM + * Support the case when headset falls back to SCO link + * Initiate authentication during connection establishment + * Export details about authentication requirements + * Disconnect when encryption gets disabled + * Introduce the different bonding types + * Limit packet type change on incoming connections + * Update class of device value whenever possible + * Export remote Simple Pairing mode via sysfs + * Use ACL config stage to retrieve remote features + * Some cleanups for HCI event handling + * Make use of the default link policy settings + * Track status of remote Simple Pairing mode + * Track status of Simple Pairing mode + * Disable disconnect timer during Simple Pairing + * ASoC: Add digital mic configuration to RX51 machine driver + * ASoC: TLV320AIC3X: Add support for digital microphone input + * ASoC: TLV320AIC3X: Modify only interface related bits in + aic3x_set_dai_fmt + * ASoC: TLV320AIC3X: Use register modifier widget for mic bias + * ASoC: Add support for generic DAPM register modifier widget + * ASoC: Tweak tlv320aicx reg_cache_size + * ASoC: Clarify API for bias configuration + * soc - tlv320aic3x - Convert to use bulk registration APIs + * soc - DAPM - Bulk route registration + * soc - Add bulk DAPM control registration + * soc - tlv320aic3x - add GPIO support + * soc - tlv320aic3x - revisit clock setup + * wl1251: use 48 MHz SPI clock + * wl1251: power off cleanups + * wl1251: Ad-Hoc mode support + * wl1251: WPA support + * wl1251: WEP support + * Move fw sending to interrupt context + * Fix hci_h4p sysfs removing + * ASoC: OMAP: Add audio endpoint and route to FM TX chip in Nokia RX51 + * i2c: add MODULE_ALIAS to twl4030 drivers + * usb: musb: allow usb to be built as module + * usb: hub: add check for unsupported bus topology + * usb: musb: musb on omap3 has 32 endpoints + * Add simple headphone jack support for RX51 audio + * Add TPA6130A2 support to board-rx51.c + * Add support for TPA6130A2 chip + * I2C: lis302dl: Add selftest functionality + * WL1251: disable BT-WLAN PTA code + * USB: MUSB: Charger detection is deferred to next wake-up 3rd. + * i2c: twl4030-vibra: fix use of delayed_work + * usb: otg: match with == instead of & + * usb: serial: Fix PID for rx51 + * usb: otg: tpl: Support storage and hid devices + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver + * I2C: LP5523: Add LED selftest functionality, update to new i2c + driver model + * omap: rx51: section mismatch fix + * usb: musb: charger detection fix + * si4713: Fix set region function to change frequency only when needed + * si4713: Fix set frequency ioctl to proper check power level + * MMC: RX51: Add sysfs file cover_switch + * MMC: RX51: Add card detection irq + * MMC: OMAP: Add slot_name entry to sysfs + * MMC: OMAP: Re-organizing some goto at hsmmc probe + * MMC: OMAP: Readable output for IRQ status register + * MMC: PM: Reset controllers without CONFIG_MMC_OMAP_HS + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: Initial MMC support for RX51 + * Add TWL4030 RTC support to board-rx51.c + * RX51: Add cmt_apesleepx gpio-switch + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * musb: there's no need to sysfs notify + * usb: musb: get vbus status for omap2430 and omap3 + * usb charger detection prototype + * si4713: Fix driver probe sequence by adding device id table + * si4713: Change power_level range + * si4713: Remove double range checking when setting power_level + * si4713: Add region selection feature + * si4713: Add antenna tuning value property + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + * I2C: TWL4030 Vibra driver + * I2C: TWL4030: Add get device helper function + * I2C: TWL4030: Fix error handling in MADC driver + * I2C: TWL4030: Remove msleep(1) from MADC driver + * HS OMAP3430 L2 invalidate + * I2C: lis302dl: Add .id_table to i2c_driver struct + * wl1251: implement join ssid command + * wl1251: implement rx path + * wl1251: implement hardware scan + * wl1251: implement tx path + * wl1251: implement mailbox event handling + * wl1251: implement interrupt handling + * wl1251: implement hw initialisation sequence + * I2C: add support for lis302dl accelometer driver + * Add H4+ support for BCM2048b0 bluetooth chip + * rx-51: add wl1251 + * wl1251: add Kconfig and Makefile files + * wl1251: port to mac80211 bands API + * Add wl1251 driver + * ARCH: OMAP: RX51: USB: Do not block sleep + * USB: SERIAL GADGET: Add nokia strings + * USB: GADGET: Add nokia ids to file_storage.c + * USB: SERIAL GADGET: Start using obex function + * USB: COMPOSITE: Support 16 interfaces by default + * OBEX: Introduce f_obex function driver. + * usb serial gadget: use updated framework + * usb serial gadget: generic serial function driver + * usb serial gadget: cdc acm function driver + * usb gadget zero: use updated framework + * usb gadget zero: loopback function driver + * usb gadget zero: sourcesink config driver + * usb gadget: composite gadget framework + * usb gadget support descriptor copying + * usb serial gadget: use new tty glue + * usb serial gadget: modular tty glue + * TSC2005 gpio setup is made by driver. + * si4713: Improve probe function + * si4713: Moved irq field from platform_data to i2c_board_info + * warm reboot detection + * LP5523: Change kconfig from bool to tristate + * si4713: Fix the boot up timeout value + * si4713: Disabled pilot tone feature by default + * si4713: Remove DEFAULT_*_ENABLED macro definitions + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * I2C: add support for lp5523 LED driver + * Add support for Taos tsl2563 ambient light sensor + * si4713: Fix i2c bus address + * rx51: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * USB: OTG: Make otg_tpl come from platform_data + * USB: OTG: Add check for roothub initialization + * USB: OTG: Start using new otg tpl. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * UBIFS: remove assertion + * UBIFS: do not return negative available space + * UBIFS: rename key_ino to key_inum + * UBIFS: rename NC to LPROPS_NC + * UBIFS: make dbg_check_dir_size check nlink as well + * UBIFS: partially get rid of truncation key + * UBIFS: remove format version 2 support + * UBIFS: fix orphan leak on error path + * UBIFS: fix lpt leaks on error path + * UBIFS: add a UUID to super block + * UBIFS: fix extended attributes size + * UBIFS: add file-system checking function + * UBIFS: clean up resource freeing + * UBIFS: remove debugging stuff from tnc.c + * UBIFS: better error message in read_znode + * UBIFS: another gc_lnum recovery fix + * UBIFS: make dbg_tnc_walk non-recursive + * UBIFS: fix Kconfig + * UBIFS: dump creat_sqnum as well + * UBIFS: remove incorrect cond_resched + * UBIFS: add dbg_dump_index + * UBIFS: tweak scan_for_dirty and asserts + * UBIFS: define change_lp() 'no-change' value + * UBIFS: always commit after recovery + * UBIFS: add a comment + * UBIFS: kill orphans in ro mount also + * UBIFS: ubifs-v0.7 + * UBIFS: amend dbg_dump_node + * UBIFS: minor debugging print fix + * UBIFS: fix false assertion allarm in budgeting + * UBIFS: print dead direntry name + * UBIFS: print format version + * UBIFS: do not use -1 offsets + * UBIFS: temporary hack for backward compatibility + * UBIFS: fix bad hash mask bug + * UBIFS: minor print tweaks + * UBIFS: get rid of cpu_to_le64(0) + * UBIFS: rename fmt_vers to fmt_version + * UBIFS: tweak asserts and gc_lnum fix + * UBIFS: move ubifs_validate_entry + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove unnecessary 'if' in bg thread + * UBIFS: fix flags + * UBIFS: rework flags inheritance + * UBIFS: fix gc_lnum recovery + * UBIFS: split out ubifs_fill_super + * UBIFS: mount_ubifs now cleans up its own errors + * UBIFS: get rid of scary lockup warnings + * UBIFS: tweak bg thread + * UBIFS: remove unnecessary cond_resched() + * UBIFS: do not set nice level in bg thread + * UBIFS: use __clear_bit and __set_bit in LPT + * UBIFS: remove unnecessary kzalloc + * UBIFS: use __clear_bit and __set_bit + * UBIFS: use memory barriers in dbg_tnc_check + * UBIFS: comment why we use barriers + * UBIFS: use unlikely in come core TNC functions + * UBIFS: do not use kzalloc unnecesarily + * UBIFS: fix compilation error + * UBIFS: be consistent when comparing pointers with NULL + * UBIFS: cleanup, fix, and improve tnc + * UBIFS: use is_hash_key + * UBIFS: do not validate what is in LNC + * UBIFS: add xentries to LNC + * UBIFS: rename bg thread + * UBIFS: rename JRN to JNL as well + * UBIFS: remove redundant check + * UBIFS: finally remove build.c + * UBIFS: use jnl instead of jrn + * UBIFS: get rid of build.c + * UBIFS: allow multiple blocks per page + * UBIFS: admit that we do not support NFS + * UBIFS: minor renaming + * UBIFS: fix dangling branch handling + * UBIFS: add comment + * UBIFS: ensure readahead is disabled + * UBIFS: comment why 'commit_on_unmount()' is in kill_sb + * UBIFS: make reservation before allocating sequence numbers + * UBIFS: fix misplaced code + * UBIFS: avoid 'dbg_check_key_order()' during replay + * UBIFS: fix telldir and seekdir + * UBIFS: do not forget about mnt_want_write + * UBIFS: change few bits in readdir + * UBIFS: fix memory corruption + * UBIFS: fix bogus assertions + * UBIFS: do not fail in case of bad seeks + * UBIFS: fix hash calculation + * UBIFS: maximum inode size is defined by current key format + * UBIFS: introduce macros for key constants + * UBIFS: limit inode data to block size + * UBIFS: fix returned error code + * UBIFS: fix ia64 compilation warning + * UBIFS: add a comment + * UBIFS: fix collision resolution + * UBIFS: add warning for mmapped file + * UBIFS: page is dirtied only if trunc smaller + * UBIFS: don't forget to release page + * UBIFS: fix printk warnings + * UBIFS: make UBIFS compile on system with non-4KiB pages + * UBIFS: fix "CONFIG_UBIFS_FS_DEBUG_CHKS" is not defined warning + * UBIFS: minor amendments + * UBIFS: default is already n in Kconfig + * UBIFS: get rid of Kconfig.debug + * UBIFS: no need to initialize r->key + * UBIFS: remove unneeded key comparison + * UBIFS: remove memleak and mempressure checks + * UBIFS: add module params to documentation + * UBIFS: do not assume inode size may not be changed meanwhile + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove some amount of assertion + * UBIFS: remove VFS interface checking assertions + * UBIFS: remove module param pretty print + * UBIFS: fix module params + * UBIFS: fix white space + * UBIFS: change check level to bool + * UBIFS: reinstate recovery messages + * UBIFS: add missing check flag checks + * UBIFS: remove 'key' message macros + * UBIFS: fix mmap budgeting + * UBIFS: optimize budgeting a bit + * UBIFS: fix inode budgeting + * UBIFS: making ubifs compile with gcc-3.4 + * UBIFS: fix error path in ubifs_write_end + * UBIFS: change debug control from config to module param + * UBIFS: update cmtime for mmapped writes + * UBIFS: budget for mmapped writes + * UBIFS: tweak min_idx_lebs calculation + * UBIFS: fix error path in ubifs_write_begin() + * UBIFS: add ubifs.txt to Documentation directory + * UBIFS: remove unnecessary locking + * UBIFS: fix device node files + * UBIFS: fix journal size for small partitions + * UBIFS: minor debugging print amendment + * UBIFS: fix warning + * UBIFS: fix comparisons + * UBIFS: rest of dangling branch patch + * UBIFS: fix compilation error + * UBIFS: remove unneeded check + * UBIFS: remove excessive unlikely() + * UBIFS: amend comments + * UBIFS: print error codes + * UBIFS: improve dangling branch detection + * UBIFS: bugfix in TNC + * UBIFS: tweak TNC debugging messages + * UBIFS: ubifs-v0.6 + * UBIFS: keep colliding keys sorted + * UBIFS: print error code before switching to RO mode + * UBIFS: minor change in readdir + * UBIFS: minor TNC clarification + * UBIFS: fix minor inconsistency with free space + * UBIFS: force empty FS to report zero used + * UBIFS: fix free space + * UBIFS: fix bug on error path + * UBIFS: add a TNC comment + * UBIFS: tidy LPT defines + * UBIFS: be more conservative about worst-case compression + * UBIFS: tree height can exceed 64 + * UBIFS: more clarifications for TNC + * UBIFS: random nicifications in tnc + * UBIFS: zap -ENOENT return code from resolve_collision series + * UBIFS: one more TODO for ahunter + * UBIFS: improve znode_lookup comment + * UBIFS: fix freaking TNC bug + * UBIFS: move MIN_COMPR_LEN to ubifs-media.h + * UBIFS: add TODOs for ahunter + * UBIFS: turn znode flags into enum and document them + * UBIFS: improve debugging prints some more + * UBIFS: move dbg_check_idx_size to debug.c + * UBIFS: add force in-the-gap facility + * UBIFS: do not trust znode->iip in dbg_check_znode + * UBIFS: lessen size of tnc.c + * UBIFS: nicify commentaries + * UBIFS: tweak TNC debugging messages + * UBIFS: fix dbg_check_znode() fake alarm + * UBIFS: ubifs-v0.5 + * UBIFS: revise directory size calculation + * UBIFS: add time_gran to dump_node + * UBIFS: allow for dates beyond 2038 + * UBIFS: put time granularity on super block node + * UBIFS: use time granularity consistently + * UBIFS: tweak lprops check + * UBIFS: introduce constants for matches_name() + * UBIFS: do not forget to free LNC on error path + * UBIFS: clean-up and amend matches_name() + * UBIFS: unify variable names in tnc + * UBIFS: remove bogus error + * UBIFS: amend ubifs_tnc_next_ent + * UBIFS: fix and amend debugging stuff + * UBIFS: add a TODO + * UBIFS: get rid of loop in keys_cmp + * UBIFS: optimize TNC + * UBIFS: fix TNC bug + * UBIFS: few minor cleanups + * UBIFS: add TNC dump function + * UBIFS: fix minor bug + * UBIFS: ubifs-v0.4 + * UBIFS: remove xattr_msize + * UBIFS: tweak div64.h inclusion + * UBIFS: tweak debugging + * UBIFS: use clear_nlink() in ubifs_rmdir() + * UBIFS: do not use long long with do_div + * UBIFS: remove padding field from indexing node + * UBIFS: store nanoseconds in inode time stamps + * UBIFS: ubifs-v0.3 + * UBIFS: zero out unused fileds + * UBIFS: fix bud race + * UBIFS: fix minor leak on error path + * UBIFS: fix bad lprops bug + * UBIFS: fix lsave_cnt validation + * UBIFS: add missing debug message + * UBIFS: report f_bavail correctly + * UBIFS: fix statfs reporting + * UBIFS: remove compatibility stuff + * UBIFS: don't wbuf_add_ino on error path, it overruns the buffer + * UBIFS: fix leb write wrapper + * UBIFS: split lpt.c + * UBIFS: intorduce leb write and unmap wrappers + * UBIFS: move dbg_dump_pnode to debug.c + * UBIFS: minor cleanup in lpt.c + * UBIFS: fix kernel-doc warnings + * UBIFS: fix my name + * UBIFS: remove check_volume_empty() + * UBIFS: turn recovery messages into mount messages + * UBIFS: remove xattr debugging messages + * UBIFS: fix lprops mismatch + * UBIFS: fix compolation error + * UBIFS: dump stack when switching to RO mode + * UBIFS: calc lpt_hght correctly + * UBIFS: add some ro_media checks + * UBIFS: fix checkpatch.pl warnings + * UBIFS: minor renames + * UBIFS: add some comments + * UBIFS: fix some spelling + * UBIFS: sparse fixes + * UBIFS: do ubifs.h TODOs + * UBIFS: remove budget TODOs + * UBIFS: do journal TODOs + * UBIFS: use kfree via debug function in debug.c + * UBIFS: fix minor TNC bug + * UBIFS: do build TODOs + * UBIFS: do/remove super TODOs + * UBIFS: remove gc TODOs + * UBIFS: do io.c TODOs + * UBIFS: do ioctl TODO + * UBIFS: do sb.c TODO + * UBIFS: do replay TODO + * UBIFS: do dir.c TODOs + * UBIFS: make sure inode is directory before checking size + * UBIFS: fix new ubifs_tnc_next_ent call + * UBIFS: remove TODOs in file.c + * UBIFS: remove msize + * UBIFS: last tnc TODOs + * UBIFS: tnc TODOs + * UBIFS: do some more tnc TODOs + * UBIFS: add directory i_size check function + * UBIFS: remove fast_umount sb flag + * UBIFS: make reported block size 4K again + * UBIFS: fix the code for 2.6.21 + * UBIFS: do some TODOs in tnc + * UBIFS: do some TODO's, remove others + * UBIFS: report 512 as block size + * UBIFS: directory inodes do not have any attached data + * UBIFS: fix screwed budgeting + * UBIFS: rework stat() reports + * UBIFS: fix directory size calculation + * UBIFS: msize is not used + * UBIFS: let it compile + * UBIFS: remove incorrect msize validation + * UBIFS: fix incorrect error returning + * UBIFS: be more verbose when printing errors + * UBIFS: amend Kconfig + * UBIFS: fix compatibility stuff + * UBIFS: add crypto dependency to Kconfig + * UBIFS: implement TODO in io.c + * UBIFS: make min_io_size at least 8 + * UBIFS: remove extra argument + * UBIFS: remove a TODO + * UBIFS: fix a bug in check_namespace() + * UBIFS: fix WARNING: modpost: Found 1 section mismatch(es) + * UBIFS: fix missing orphan bug + * UBIFS: do not support ACLs + * UBIFS: ubifs-v0.2 + * UBIFS: implement xattr handlers + * UBIFS: support xattrs in TNC + * UBIFS: support xattrs in journal + * UBIFS: enlarge compression threshold + * UBIFS: remove bad code + * UBIFS: introduce xentry + * UBIFS: add dummy xattr calls + * UBIFS: break on-media format + * UBIFS: tiny clean up + * UBIFS: cleanup direntry validation + * UBIFS: add a TODO + * UBIFS: add helper function for inode rmoval + * UBIFS: use __func__ instead of __FUNCTION__ + * UBIFS: use ino_t instead of unsigned long + * UBIFS: fix dirty_ino_cnt + * UBIFS: remove excessive code + * UBIFS: remove ubifs.h from include/linux/Kbuild + * UBIFS: fix new struct inode object initialization + * UBIFS: fix compilation warning + * UBIFS: improve operations in dir.c + * UBIFS: remove redundant check + * UBIFS: tweak debugging messages + * UBIFS: make some pointers const + * UBIFS: introduce xattr-related fields to inode + * UBIFS: implement a bunch of TODOs + * UBIFS: tweak journal interface + * UBIFS: make ubifs_set_i_bytes non-inline + * UBIFS: make new_ubifs_inode global + * UBIFS: rename and make macro global + * UBIFS: add a couple of TODOs + * UBIFS: fix debugging macro + * UBIFS: clean up key.h some more + * UBIFS: minor key func cleanup + * UBIFS: unify replay entries names + * UBIFS: cleanup qstr names + * UBIFS: clean up ino_t usage + * UBIFS: minor amendments in budgeting + * UBIFS: Kconfig nicifications + * UBIFS: amend copyright headers + * UBIFS: switch to new VFS interface + * UBIFS: fix default comprssor + * UBIFS: stop using iget() + * UBIFS: optimize fastpath budgeting + * UBIFS: add assertion + * UBIFS: fix budgeting + * UBIFS: do not retry in write_page() + * UBIFS: fix budgeting holes + * UBIFS: clean-up compat stuff a bit + * UBIFS: use DIV_ROUND_UP + * UBIFS: rename protecting macros + * UBIFS: remove sysfs hack + * UBIFS: print a message when fail to open UBI volume + * UBIFS: set default fanout to 8 + * UBIFS: remove leftovers + * UBIFS: remove fanout mount option + * UBIFS: rename header files + * UBIFS: store big_lpt in sup->flags + * UBIFS: store fast/norm unmount in superblock + * UBIFS: add default reserved pool size (5%, max 5 MiB) + * UBIFS: update dbg_dump_node() to support reserved pool + * UBIFS: add reserved pool support + * UBIFS: add a check for creat_sqnum + * UBIFS: reduce index node size + * UBIFS: add comment + * UBIFS: record inode creation sequence number + * UBIFS: switch to little-endian + * UBIFS: add on-flash format version + * UBIFS: use qstr for name / length pairs + * UBIFS: correct directory size calculation + * UBIFS: tidy scan slightly + * UBIFS: remove compression and key hash mount options + * UBIFS: call bdi_init + * UBIFS: initial commit + * do_mounts: allow UBI root device name + * VFS: export sync_sb_inodes + * VFS: move inode_lock into sync_sb_inodes + * RX51: Add new board specific init function for rx51 specific PM + initializations + * Off-mode led control + * Sysfs interface for controlling suspend states + set_pwrdm_state fix + * Added state tracking to omap_sram_idle + * PM debug support for 34xx + * OMAP34xx suspend + dynamic idle fixed for chip off-mode + * CORE context save/restore + * i2c context save/restore + * gpio context save/restore + * serial context save/restore + * gpmc context save/restore + * mpu off state enabled + * scratchpad contents + * sdrc register defs + * menuconfig updates for cpuidle + * per/neon and core handling in idle + * Basic cpuidle driver + * Revert "PM debug support for 34xx" + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * wl1251: Support for MAC setting + * wl1251: don't overwrite wl1251_rates[] values + * wl1251: some error message cleanup + * wl1251: tx frame index reset + * wl1251: channel switch + * wl1251: Fix TX path memory leak + * wl1251: fix free_irq() + * Add support for "audio -" (KEY_F8) and "audio +" (KEY_F7) keys. + * ASoC: RX51: Update for bulk DAPM registration APIs + * ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter + * ARM/OMAP/FB: Fix LCD panel identifiers and default name + * ARM/OMAP/FB: Add support for new LCD panel class ACX565AKM + * usb: musb: add back musb_hset tool + * mmc: make mmc probe again + * Update Bluetooth core version number + * Add support for TIOCOUTQ and TIOCINQ ioctls + * Add timestamp support to L2CAP, RFCOMM and SCO + * Signal user-space for HIDP and BNEP socket errors + * Move pending packets from RFCOMM socket to TTY + * Store remote modem status for RFCOMM TTY + * Use non-canonical TTY by default for RFCOMM + * Support the case when headset falls back to SCO link + * Initiate authentication during connection establishment + * Export details about authentication requirements + * Disconnect when encryption gets disabled + * Introduce the different bonding types + * Limit packet type change on incoming connections + * Update class of device value whenever possible + * Export remote Simple Pairing mode via sysfs + * Use ACL config stage to retrieve remote features + * Some cleanups for HCI event handling + * Make use of the default link policy settings + * Track status of remote Simple Pairing mode + * Track status of Simple Pairing mode + * Disable disconnect timer during Simple Pairing + * ASoC: Add digital mic configuration to RX51 machine driver + * ASoC: TLV320AIC3X: Add support for digital microphone input + * ASoC: TLV320AIC3X: Modify only interface related bits in + aic3x_set_dai_fmt + * ASoC: TLV320AIC3X: Use register modifier widget for mic bias + * ASoC: Add support for generic DAPM register modifier widget + * ASoC: Tweak tlv320aicx reg_cache_size + * ASoC: Clarify API for bias configuration + * soc - tlv320aic3x - Convert to use bulk registration APIs + * soc - DAPM - Bulk route registration + * soc - Add bulk DAPM control registration + * soc - tlv320aic3x - add GPIO support + * soc - tlv320aic3x - revisit clock setup + * wl1251: use 48 MHz SPI clock + * wl1251: power off cleanups + * wl1251: Ad-Hoc mode support + * wl1251: WPA support + * wl1251: WEP support + * Move fw sending to interrupt context + * Fix hci_h4p sysfs removing + * ASoC: OMAP: Add audio endpoint and route to FM TX chip in Nokia RX51 + * i2c: add MODULE_ALIAS to twl4030 drivers + * usb: musb: allow usb to be built as module + * usb: hub: add check for unsupported bus topology + * usb: musb: musb on omap3 has 32 endpoints + * Add simple headphone jack support for RX51 audio + * Add TPA6130A2 support to board-rx51.c + * Add support for TPA6130A2 chip + * I2C: lis302dl: Add selftest functionality + * WL1251: disable BT-WLAN PTA code + * USB: MUSB: Charger detection is deferred to next wake-up 3rd. + * i2c: twl4030-vibra: fix use of delayed_work + * usb: otg: match with == instead of & + * usb: serial: Fix PID for rx51 + * usb: otg: tpl: Support storage and hid devices + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver + * I2C: LP5523: Add LED selftest functionality, update to new i2c + driver model + * omap: rx51: section mismatch fix + * usb: musb: charger detection fix + * si4713: Fix set region function to change frequency only when needed + * si4713: Fix set frequency ioctl to proper check power level + * MMC: RX51: Add sysfs file cover_switch + * MMC: RX51: Add card detection irq + * MMC: OMAP: Add slot_name entry to sysfs + * MMC: OMAP: Re-organizing some goto at hsmmc probe + * MMC: OMAP: Readable output for IRQ status register + * MMC: PM: Reset controllers without CONFIG_MMC_OMAP_HS + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: Initial MMC support for RX51 + * Add TWL4030 RTC support to board-rx51.c + * RX51: Add cmt_apesleepx gpio-switch + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * musb: there's no need to sysfs notify + * usb: musb: get vbus status for omap2430 and omap3 + * usb charger detection prototype + * si4713: Fix driver probe sequence by adding device id table + * si4713: Change power_level range + * si4713: Remove double range checking when setting power_level + * si4713: Add region selection feature + * si4713: Add antenna tuning value property + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + * I2C: TWL4030 Vibra driver + * I2C: TWL4030: Add get device helper function + * I2C: TWL4030: Fix error handling in MADC driver + * I2C: TWL4030: Remove msleep(1) from MADC driver + * HS OMAP3430 L2 invalidate + * I2C: lis302dl: Add .id_table to i2c_driver struct + * wl1251: implement join ssid command + * wl1251: implement rx path + * wl1251: implement hardware scan + * wl1251: implement tx path + * wl1251: implement mailbox event handling + * wl1251: implement interrupt handling + * wl1251: implement hw initialisation sequence + * I2C: add support for lis302dl accelometer driver + * Add H4+ support for BCM2048b0 bluetooth chip + * rx-51: add wl1251 + * wl1251: add Kconfig and Makefile files + * wl1251: port to mac80211 bands API + * Add wl1251 driver + * ARCH: OMAP: RX51: USB: Do not block sleep + * USB: SERIAL GADGET: Add nokia strings + * USB: GADGET: Add nokia ids to file_storage.c + * USB: SERIAL GADGET: Start using obex function + * USB: COMPOSITE: Support 16 interfaces by default + * OBEX: Introduce f_obex function driver. + * usb serial gadget: use updated framework + * usb serial gadget: generic serial function driver + * usb serial gadget: cdc acm function driver + * usb gadget zero: use updated framework + * usb gadget zero: loopback function driver + * usb gadget zero: sourcesink config driver + * usb gadget: composite gadget framework + * usb gadget support descriptor copying + * usb serial gadget: use new tty glue + * usb serial gadget: modular tty glue + * TSC2005 gpio setup is made by driver. + * si4713: Improve probe function + * si4713: Moved irq field from platform_data to i2c_board_info + * warm reboot detection + * LP5523: Change kconfig from bool to tristate + * si4713: Fix the boot up timeout value + * si4713: Disabled pilot tone feature by default + * si4713: Remove DEFAULT_*_ENABLED macro definitions + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * I2C: add support for lp5523 LED driver + * Add support for Taos tsl2563 ambient light sensor + * si4713: Fix i2c bus address + * rx51: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * USB: OTG: Make otg_tpl come from platform_data + * USB: OTG: Add check for roothub initialization + * USB: OTG: Start using new otg tpl. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * UBIFS: remove assertion + * UBIFS: do not return negative available space + * UBIFS: rename key_ino to key_inum + * UBIFS: rename NC to LPROPS_NC + * UBIFS: make dbg_check_dir_size check nlink as well + * UBIFS: partially get rid of truncation key + * UBIFS: remove format version 2 support + * UBIFS: fix orphan leak on error path + * UBIFS: fix lpt leaks on error path + * UBIFS: add a UUID to super block + * UBIFS: fix extended attributes size + * UBIFS: add file-system checking function + * UBIFS: clean up resource freeing + * UBIFS: remove debugging stuff from tnc.c + * UBIFS: better error message in read_znode + * UBIFS: another gc_lnum recovery fix + * UBIFS: make dbg_tnc_walk non-recursive + * UBIFS: fix Kconfig + * UBIFS: dump creat_sqnum as well + * UBIFS: remove incorrect cond_resched + * UBIFS: add dbg_dump_index + * UBIFS: tweak scan_for_dirty and asserts + * UBIFS: define change_lp() 'no-change' value + * UBIFS: always commit after recovery + * UBIFS: add a comment + * UBIFS: kill orphans in ro mount also + * UBIFS: ubifs-v0.7 + * UBIFS: amend dbg_dump_node + * UBIFS: minor debugging print fix + * UBIFS: fix false assertion allarm in budgeting + * UBIFS: print dead direntry name + * UBIFS: print format version + * UBIFS: do not use -1 offsets + * UBIFS: temporary hack for backward compatibility + * UBIFS: fix bad hash mask bug + * UBIFS: minor print tweaks + * UBIFS: get rid of cpu_to_le64(0) + * UBIFS: rename fmt_vers to fmt_version + * UBIFS: tweak asserts and gc_lnum fix + * UBIFS: move ubifs_validate_entry + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove unnecessary 'if' in bg thread + * UBIFS: fix flags + * UBIFS: rework flags inheritance + * UBIFS: fix gc_lnum recovery + * UBIFS: split out ubifs_fill_super + * UBIFS: mount_ubifs now cleans up its own errors + * UBIFS: get rid of scary lockup warnings + * UBIFS: tweak bg thread + * UBIFS: remove unnecessary cond_resched() + * UBIFS: do not set nice level in bg thread + * UBIFS: use __clear_bit and __set_bit in LPT + * UBIFS: remove unnecessary kzalloc + * UBIFS: use __clear_bit and __set_bit + * UBIFS: use memory barriers in dbg_tnc_check + * UBIFS: comment why we use barriers + * UBIFS: use unlikely in come core TNC functions + * UBIFS: do not use kzalloc unnecesarily + * UBIFS: fix compilation error + * UBIFS: be consistent when comparing pointers with NULL + * UBIFS: cleanup, fix, and improve tnc + * UBIFS: use is_hash_key + * UBIFS: do not validate what is in LNC + * UBIFS: add xentries to LNC + * UBIFS: rename bg thread + * UBIFS: rename JRN to JNL as well + * UBIFS: remove redundant check + * UBIFS: finally remove build.c + * UBIFS: use jnl instead of jrn + * UBIFS: get rid of build.c + * UBIFS: allow multiple blocks per page + * UBIFS: admit that we do not support NFS + * UBIFS: minor renaming + * UBIFS: fix dangling branch handling + * UBIFS: add comment + * UBIFS: ensure readahead is disabled + * UBIFS: comment why 'commit_on_unmount()' is in kill_sb + * UBIFS: make reservation before allocating sequence numbers + * UBIFS: fix misplaced code + * UBIFS: avoid 'dbg_check_key_order()' during replay + * UBIFS: fix telldir and seekdir + * UBIFS: do not forget about mnt_want_write + * UBIFS: change few bits in readdir + * UBIFS: fix memory corruption + * UBIFS: fix bogus assertions + * UBIFS: do not fail in case of bad seeks + * UBIFS: fix hash calculation + * UBIFS: maximum inode size is defined by current key format + * UBIFS: introduce macros for key constants + * UBIFS: limit inode data to block size + * UBIFS: fix returned error code + * UBIFS: fix ia64 compilation warning + * UBIFS: add a comment + * UBIFS: fix collision resolution + * UBIFS: add warning for mmapped file + * UBIFS: page is dirtied only if trunc smaller + * UBIFS: don't forget to release page + * UBIFS: fix printk warnings + * UBIFS: make UBIFS compile on system with non-4KiB pages + * UBIFS: fix "CONFIG_UBIFS_FS_DEBUG_CHKS" is not defined warning + * UBIFS: minor amendments + * UBIFS: default is already n in Kconfig + * UBIFS: get rid of Kconfig.debug + * UBIFS: no need to initialize r->key + * UBIFS: remove unneeded key comparison + * UBIFS: remove memleak and mempressure checks + * UBIFS: add module params to documentation + * UBIFS: do not assume inode size may not be changed meanwhile + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove some amount of assertion + * UBIFS: remove VFS interface checking assertions + * UBIFS: remove module param pretty print + * UBIFS: fix module params + * UBIFS: fix white space + * UBIFS: change check level to bool + * UBIFS: reinstate recovery messages + * UBIFS: add missing check flag checks + * UBIFS: remove 'key' message macros + * UBIFS: fix mmap budgeting + * UBIFS: optimize budgeting a bit + * UBIFS: fix inode budgeting + * UBIFS: making ubifs compile with gcc-3.4 + * UBIFS: fix error path in ubifs_write_end + * UBIFS: change debug control from config to module param + * UBIFS: update cmtime for mmapped writes + * UBIFS: budget for mmapped writes + * UBIFS: tweak min_idx_lebs calculation + * UBIFS: fix error path in ubifs_write_begin() + * UBIFS: add ubifs.txt to Documentation directory + * UBIFS: remove unnecessary locking + * UBIFS: fix device node files + * UBIFS: fix journal size for small partitions + * UBIFS: minor debugging print amendment + * UBIFS: fix warning + * UBIFS: fix comparisons + * UBIFS: rest of dangling branch patch + * UBIFS: fix compilation error + * UBIFS: remove unneeded check + * UBIFS: remove excessive unlikely() + * UBIFS: amend comments + * UBIFS: print error codes + * UBIFS: improve dangling branch detection + * UBIFS: bugfix in TNC + * UBIFS: tweak TNC debugging messages + * UBIFS: ubifs-v0.6 + * UBIFS: keep colliding keys sorted + * UBIFS: print error code before switching to RO mode + * UBIFS: minor change in readdir + * UBIFS: minor TNC clarification + * UBIFS: fix minor inconsistency with free space + * UBIFS: force empty FS to report zero used + * UBIFS: fix free space + * UBIFS: fix bug on error path + * UBIFS: add a TNC comment + * UBIFS: tidy LPT defines + * UBIFS: be more conservative about worst-case compression + * UBIFS: tree height can exceed 64 + * UBIFS: more clarifications for TNC + * UBIFS: random nicifications in tnc + * UBIFS: zap -ENOENT return code from resolve_collision series + * UBIFS: one more TODO for ahunter + * UBIFS: improve znode_lookup comment + * UBIFS: fix freaking TNC bug + * UBIFS: move MIN_COMPR_LEN to ubifs-media.h + * UBIFS: add TODOs for ahunter + * UBIFS: turn znode flags into enum and document them + * UBIFS: improve debugging prints some more + * UBIFS: move dbg_check_idx_size to debug.c + * UBIFS: add force in-the-gap facility + * UBIFS: do not trust znode->iip in dbg_check_znode + * UBIFS: lessen size of tnc.c + * UBIFS: nicify commentaries + * UBIFS: tweak TNC debugging messages + * UBIFS: fix dbg_check_znode() fake alarm + * UBIFS: ubifs-v0.5 + * UBIFS: revise directory size calculation + * UBIFS: add time_gran to dump_node + * UBIFS: allow for dates beyond 2038 + * UBIFS: put time granularity on super block node + * UBIFS: use time granularity consistently + * UBIFS: tweak lprops check + * UBIFS: introduce constants for matches_name() + * UBIFS: do not forget to free LNC on error path + * UBIFS: clean-up and amend matches_name() + * UBIFS: unify variable names in tnc + * UBIFS: remove bogus error + * UBIFS: amend ubifs_tnc_next_ent + * UBIFS: fix and amend debugging stuff + * UBIFS: add a TODO + * UBIFS: get rid of loop in keys_cmp + * UBIFS: optimize TNC + * UBIFS: fix TNC bug + * UBIFS: few minor cleanups + * UBIFS: add TNC dump function + * UBIFS: fix minor bug + * UBIFS: ubifs-v0.4 + * UBIFS: remove xattr_msize + * UBIFS: tweak div64.h inclusion + * UBIFS: tweak debugging + * UBIFS: use clear_nlink() in ubifs_rmdir() + * UBIFS: do not use long long with do_div + * UBIFS: remove padding field from indexing node + * UBIFS: store nanoseconds in inode time stamps + * UBIFS: ubifs-v0.3 + * UBIFS: zero out unused fileds + * UBIFS: fix bud race + * UBIFS: fix minor leak on error path + * UBIFS: fix bad lprops bug + * UBIFS: fix lsave_cnt validation + * UBIFS: add missing debug message + * UBIFS: report f_bavail correctly + * UBIFS: fix statfs reporting + * UBIFS: remove compatibility stuff + * UBIFS: don't wbuf_add_ino on error path, it overruns the buffer + * UBIFS: fix leb write wrapper + * UBIFS: split lpt.c + * UBIFS: intorduce leb write and unmap wrappers + * UBIFS: move dbg_dump_pnode to debug.c + * UBIFS: minor cleanup in lpt.c + * UBIFS: fix kernel-doc warnings + * UBIFS: fix my name + * UBIFS: remove check_volume_empty() + * UBIFS: turn recovery messages into mount messages + * UBIFS: remove xattr debugging messages + * UBIFS: fix lprops mismatch + * UBIFS: fix compolation error + * UBIFS: dump stack when switching to RO mode + * UBIFS: calc lpt_hght correctly + * UBIFS: add some ro_media checks + * UBIFS: fix checkpatch.pl warnings + * UBIFS: minor renames + * UBIFS: add some comments + * UBIFS: fix some spelling + * UBIFS: sparse fixes + * UBIFS: do ubifs.h TODOs + * UBIFS: remove budget TODOs + * UBIFS: do journal TODOs + * UBIFS: use kfree via debug function in debug.c + * UBIFS: fix minor TNC bug + * UBIFS: do build TODOs + * UBIFS: do/remove super TODOs + * UBIFS: remove gc TODOs + * UBIFS: do io.c TODOs + * UBIFS: do ioctl TODO + * UBIFS: do sb.c TODO + * UBIFS: do replay TODO + * UBIFS: do dir.c TODOs + * UBIFS: make sure inode is directory before checking size + * UBIFS: fix new ubifs_tnc_next_ent call + * UBIFS: remove TODOs in file.c + * UBIFS: remove msize + * UBIFS: last tnc TODOs + * UBIFS: tnc TODOs + * UBIFS: do some more tnc TODOs + * UBIFS: add directory i_size check function + * UBIFS: remove fast_umount sb flag + * UBIFS: make reported block size 4K again + * UBIFS: fix the code for 2.6.21 + * UBIFS: do some TODOs in tnc + * UBIFS: do some TODO's, remove others + * UBIFS: report 512 as block size + * UBIFS: directory inodes do not have any attached data + * UBIFS: fix screwed budgeting + * UBIFS: rework stat() reports + * UBIFS: fix directory size calculation + * UBIFS: msize is not used + * UBIFS: let it compile + * UBIFS: remove incorrect msize validation + * UBIFS: fix incorrect error returning + * UBIFS: be more verbose when printing errors + * UBIFS: amend Kconfig + * UBIFS: fix compatibility stuff + * UBIFS: add crypto dependency to Kconfig + * UBIFS: implement TODO in io.c + * UBIFS: make min_io_size at least 8 + * UBIFS: remove extra argument + * UBIFS: remove a TODO + * UBIFS: fix a bug in check_namespace() + * UBIFS: fix WARNING: modpost: Found 1 section mismatch(es) + * UBIFS: fix missing orphan bug + * UBIFS: do not support ACLs + * UBIFS: ubifs-v0.2 + * UBIFS: implement xattr handlers + * UBIFS: support xattrs in TNC + * UBIFS: support xattrs in journal + * UBIFS: enlarge compression threshold + * UBIFS: remove bad code + * UBIFS: introduce xentry + * UBIFS: add dummy xattr calls + * UBIFS: break on-media format + * UBIFS: tiny clean up + * UBIFS: cleanup direntry validation + * UBIFS: add a TODO + * UBIFS: add helper function for inode rmoval + * UBIFS: use __func__ instead of __FUNCTION__ + * UBIFS: use ino_t instead of unsigned long + * UBIFS: fix dirty_ino_cnt + * UBIFS: remove excessive code + * UBIFS: remove ubifs.h from include/linux/Kbuild + * UBIFS: fix new struct inode object initialization + * UBIFS: fix compilation warning + * UBIFS: improve operations in dir.c + * UBIFS: remove redundant check + * UBIFS: tweak debugging messages + * UBIFS: make some pointers const + * UBIFS: introduce xattr-related fields to inode + * UBIFS: implement a bunch of TODOs + * UBIFS: tweak journal interface + * UBIFS: make ubifs_set_i_bytes non-inline + * UBIFS: make new_ubifs_inode global + * UBIFS: rename and make macro global + * UBIFS: add a couple of TODOs + * UBIFS: fix debugging macro + * UBIFS: clean up key.h some more + * UBIFS: minor key func cleanup + * UBIFS: unify replay entries names + * UBIFS: cleanup qstr names + * UBIFS: clean up ino_t usage + * UBIFS: minor amendments in budgeting + * UBIFS: Kconfig nicifications + * UBIFS: amend copyright headers + * UBIFS: switch to new VFS interface + * UBIFS: fix default comprssor + * UBIFS: stop using iget() + * UBIFS: optimize fastpath budgeting + * UBIFS: add assertion + * UBIFS: fix budgeting + * UBIFS: do not retry in write_page() + * UBIFS: fix budgeting holes + * UBIFS: clean-up compat stuff a bit + * UBIFS: use DIV_ROUND_UP + * UBIFS: rename protecting macros + * UBIFS: remove sysfs hack + * UBIFS: print a message when fail to open UBI volume + * UBIFS: set default fanout to 8 + * UBIFS: remove leftovers + * UBIFS: remove fanout mount option + * UBIFS: rename header files + * UBIFS: store big_lpt in sup->flags + * UBIFS: store fast/norm unmount in superblock + * UBIFS: add default reserved pool size (5%, max 5 MiB) + * UBIFS: update dbg_dump_node() to support reserved pool + * UBIFS: add reserved pool support + * UBIFS: add a check for creat_sqnum + * UBIFS: reduce index node size + * UBIFS: add comment + * UBIFS: record inode creation sequence number + * UBIFS: switch to little-endian + * UBIFS: add on-flash format version + * UBIFS: use qstr for name / length pairs + * UBIFS: correct directory size calculation + * UBIFS: tidy scan slightly + * UBIFS: remove compression and key hash mount options + * UBIFS: call bdi_init + * UBIFS: initial commit + * do_mounts: allow UBI root device name + * VFS: export sync_sb_inodes + * VFS: move inode_lock into sync_sb_inodes + * PM debug support for 34xx + * 34XX: PM: Workaround to enable autoidle for clocks and plls + * Added sleep support to UART + * 34XX: PM: Workaround for taking care of gpio clocks + * 34XX: PM: Workaround to check wether any fck is active before + entering sleep + * ARM: OMAP: OneNAND: fix wrong variable + * ARM: OMAP: OneNAND: machine_is_nokia_rx51 is not always a constant + * ARM: OMAP: OneNAND: Enable interrupt use (pre-B1 and later only) + * ARM: OMAP: OneNAND: Use DMA on OMAP3 + * ARM: OMAP: OneNAND: Print address information for ECC errors + * ARM: OMAP: OneNAND: Add synchronous write timings + * ARM: OMAP: OneNAND: Allow for high frequency (>66MHz) + * Allow for controller errors when reading + * ARM: OMAP: OneNAND: Disable wait-monitoring for OMAP3 + * RX51: Remove TWL4030 IRQ definitions from board-rx51.h + * ARM: OMAP: OneNAND for rx51-base branch + * RX51: Basic support for Nokia RX-51 + * OMAP3: ack spurious IRQs in get_irqnr_and_base + * Revert "Separate out 3430 LCD panel support from 2430 file" + * Linux 2.6.26-rc9 + * Fix pagemap_read() use of struct mm_walk + * Move _RET_IP_ and _THIS_IP_ to include/linux/kernel.h + * Fix clear_refs_write() use of struct mm_walk + * ahci: give another shot at clearing all bits in irq_stat + * ide: ide_unregister() locking bugfix + * ide: ide_unregister() warm-plug bugfix + * ide: fix hwif->gendev refcounting + * softlockup: print a module list on being stuck + * x86 ACPI: fix resume from suspend to RAM on uniprocessor x86-64 + * x86 ACPI: normalize segment descriptor register on resume + * mempolicy: mask off internal flags for userspace API + * mmc: don't use DMA on newer ENE controllers + * doc: document the relax_domain_level kernel boot argument + * devcgroup: fix odd behaviour when writing 'a' to devices.allow + * Update MAINTAINERS file for the TPM device driver + * mm: switch node meminfo Active & Inactive pages to Kbytes + * cpumask: introduce new APIs + * olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout + * olpc: sdhci: add quirk for the Marvell CaFe's vdd/powerup issue + * cciss: read config to obtain max outstanding commands per controller + * MAINTAINERS: update the email address of Andreas Dilger + * cpusets: document proc status cpus and mems allowed lists + * Alpha Linux kernel fails with inconsistent kallsyms data + * security: filesystem capabilities: fix CAP_SETPCAP handling + * security: filesystem capabilities: fix fragile setuid fixup code + * doc: doc maintainers + * spi: fix the read path in spidev + * cgroups: document the effect of attaching PID 0 to a cgroup + * MFD maintainer + * w100fb: add 80 MHz modeline + * w100fb: do not depend on SHARPSL + * add kernel-doc for simple_read_from_buffer and + memory_read_from_buffer + * ntfs: update help text + * man-pages is supported + * Introduce rculist.h + * mn10300: provide __ucmpdi2() for MN10300 + * mn10300: export certain arch symbols required to build allmodconfig + * hdaps: add support for various newer Lenovo thinkpads + * Doc*/kernel-parameters.txt: fix stale references + * delay accounting: maintainer update + * cciss: fix regression that no device nodes are created if no logical + drives are configured. + * Update taskstats-struct document for scaled time accounting + * fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings + * gpio: pca953x (i2c) handles max7310 too + * lib: taint kernel in common report_bug() WARN path. + * ecryptfs: remove unnecessary mux from + ecryptfs_init_ecryptfs_miscdev() + * reiserfs: add missing unlock to an error path in + reiserfs_quota_write() + * ext4: add missing unlock to an error path in ext4_quota_write() + * ext3: add missing unlock to error path in ext3_quota_write() + * Miguel Ojeda has moved + * pci: VT3336 can't do MSI either + * rtc: fix CMOS time error after writing /proc/acpi/alarm + * rtc-x1205: Fix alarm set + * get_user_pages(): fix possible page leak on oom + * serial: fix serial_match_port() for dynamic major tty-device numbers + * firmware: fix the request_firmware() dummy + * rtc: rtc_read_alarm() handles wraparound + * mm: dirty page accounting vs VM_MIXEDMAP + * Christoph has moved + * Update maintainers for powerpc + * sata_mv: safer logic for limit_warnings + * libata-sff: improve HSM violation reporting + * ahci: always clear all bits in irq_stat + * sata_sil24: add DID for another adaptec flavor + * xen: fix address truncation in pte mfn<->pfn conversion + * [MIPS] Fix bug in atomic_sub_if_positive. + * USB: adding comment for ipaq forcing number of ports + * USB: fix Oops on loading ipaq module since 2.6.26 + * USB: add a pl2303 device id + * USB: another option device id + * USB: don't lose disconnections during suspend + * USB: fix interrupt disabling for HCDs with shared interrupt handlers + * USB: New device ID for ftdi_sio driver + * sisusbvga: Fix oops on disconnect. + * USB: mass storage: new id for US_SC_CYP_ATACB + * USB: ohci - record data toggle after unlink + * USB: ehci - fix timer regression + * USB: fix cdc-acm resume() + * OHCI: Fix problem if SM501 and another platform driver is selected + * svcrpc: fix handling of garbage args + * hrtimer: prevent migration for raising softirq + * [MIPS] cevt-txx9: Reset timer counter on initialization + * [MIPS] IP22: Fix crashes due to wrong L1_CACHE_BYTES + * [MIPS] IP32: Fix unexpected irq 71 + * Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr + * slub: Do not use 192 byte sized cache if minimum alignment is 128 + byte + * 9p: fix O_APPEND in legacy mode + * Revert "OMAP: DISPC: Fix to disable also interface clocks. 2nd." + * OMAP: DISPC: Fix to disable also interface clocks. 2nd. + * ARM: OMAP3: Fix warnings in clock34xx.h + * OMAP3: EVM: KEYPAD: Add twl4030 keypad to defconfig + * OMAP3: EVM: KEYPAD: Fix Kconfig dependency + * OMAP3: EVM: KEYPAD: Add twl4030 keypad driver support + * OMAP: PM: Add new sysfs option for disabling clocks when entering + idle + * 34XX: PM: Workaround to reset all wkdeps + * Separate out 3430 LCD panel support from 2430 file + * This patch adds backlight control for omap3evm + * ARM: OMAP: Add support to Nokia N810 WiMAX + * Added ethernet driver support in defconfig + * net:smc911x Modify driver to also work with omap24xx + * OMAP2EVM: Adding ethernet support + * omap: hsmmc: Avoid NULL pointer dereference + * OMAP: Store switch state for OUTPUT gpio-switches + * CBUS: A workaround for ADC S/H HW bug: always keep ch 8 selected + when S/H is used + * arch/x86/mm/init_64.c: early_memtest(): fix types + * x86: fix Intel Mac booting with EFI + * tty: Fix inverted logic in send_break + * DRM/i915: only use tiled blits on 965+ + * drivers/input/ff-core.c needs + * PCI: acpiphp: cleanup notify handler on all root bridges + * PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. + * V4L/DVB (8178): uvc: Fix compilation breakage for the other drivers, + if uvc is selected + * dm crypt: use cond_resched + * net: fib_rules: fix error code for unsupported families + * netdevice: Fix wrong string handle in kernel command line parsing + * net: Tyop of sk_filter() comment + * netlink: Unneeded local variable + * net-sched: fix filter destruction in atm/hfsc qdisc destruction + * net-sched: change tcf_destroy_chain() to clear start of filter list + * ipv4: fix sysctl documentation of time related values + * powerpc/mpc5200: Fix lite5200b suspend/resume + * powerpc/legacy_serial: Bail if reg-offset/shift properties are + present + * i2c: Fix bad hint about irqs in i2c.h + * i2c: Documentation: fix device matching description + * powerpc/bootwrapper: update for initrd with simpleImage + * PCI: Restrict VPD read permission to root + * I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device. + * I2C: S3C2410: Fixup error codes returned rom a transfer. + * I2C: S3C2410: Check ACK on byte transmission + * rcu: fix hotplug vs rcu race + * Properly notify block layer of sync writes + * block: Fix the starving writes bug in the anticipatory IO scheduler + * x86: fix NODES_SHIFT Kconfig range + * sched: fix divide error when trying to configure rt_period to zero + * [IA64] export account_system_vtime + * [IA64] Bugfix for system with 32 cpus + * V4L/DVB (8145a): USB Video Class driver + * mac80211: don't accept WEP keys other than WEP40 and WEP104 + * hostap: fix sparse warnings + * hostap: don't report useless WDS frames by default + * textsearch: fix Boyer-Moore text search bug + * netfilter: nf_conntrack_tcp: fixing to check the lower bound of + valid ACK + * ide: fix /proc/ide/ide?/mate reporting + * Revert "BAST: Remove old IDE driver" + * [ARM] 5131/1: Annotate platform_secondary_init with + trace_hardirqs_off + * Input: fix locking in force-feedback core + * Input: add KEY_MEDIA_REPEAT definition + * ptrace GET/SET FPXREGS broken + * x86: fix cpu hotplug crash + * Fix and clean top .gitignore + * sched: fix cpu hotplug + * ipv6 route: Convert rt6_device_match() to use RT6_LOOKUP_F_xxx + flags. + * netlabel: Fix a problem when dumping the default IPv6 static labels + * net/inet_lro: remove setting skb->ip_summed when not LRO-able + * inet fragments: fix race between inet_frag_find and + inet_frag_secret_rebuild + * CONNECTOR: add a proc entry to list connectors + * netlink: Fix some doc comments in net/netlink/attr.c + * tcp: /proc/net/tcp rto,ato values not scaled properly (v2) + * include/linux/netdevice.h: don't export MAX_HEADER to userspace + * pkt_sched: Remove CONFIG_NET_SCH_RR + * pkt_sched: ERR_PTR() ususally encodes an negative errno, not + positive. + * netdevice: Fix typo of dev_unicast_add() comment + * af_unix: fix 'poll for write'/connected DGRAM sockets + * tcp: fix for splice receive when used with software LRO + * tcp: calculate tcp_mem based on low memory instead of all memory + * hamradio: remove unused variable + * Fix error paths if md_probe fails. + * Don't acknowlege that stripe-expand is complete until it really is. + * Ensure interrupted recovery completed properly (v1 metadata plus + bitmap) + * kbuild: fix a.out.h export to userspace with O= build. + * firewire: fw-sbp2: fix parsing of logical unit directories + * mac80211: fix an oops in several failure paths in key allocation + * prism: islpci_eth.c endianness fix + * rt2x00: Fix lock dependency errror + * sata_uli: hardreset is broken + * Hold RTNL while calling dev_close() + * qla3xxx: Hold RTNL while calling dev_close() + * [netdrvr] Fix IOMMU overflow checking in s2io.c + * e1000: only enable TSO6 via ethtool when using correct hardware + * e100: Do pci_dma_sync after skb_alloc for proper operation on ixp4xx + * [netdrvr] netxen: fix netxen_pci_tbl[] breakage + * [netdrvr] 3c59x: remove irqs_disabled warning from local_bh_enable + * ipg: use NULL, not zero, for pointers + * ipg: fix jumbo frame compilation + * drivers/net/r6040.c: Eliminate double sizeof + * pcnet_cs, axnet_cs: clear bogus interrupt before request_irq + * e1000e: fix EEH recovery during reset on PPC + * igb: fix EEH recovery during reset on PPC + * ixgbe: fix EEH recovery during reset on PPC + * tc35815: Fix receiver hangup on Rx FIFO overflow + * tc35815: Mark carrier-off before starting PHY + * s2io: fix documentation about intr_type + * V4L/DVB (8108): Fix open/close race in saa7134 + * V4L/DVB (8100): V4L/vivi: fix possible memory leak in vivi_fillbuff + * V4L/DVB (8097): xc5000: check device hardware state to determine if + firmware download is needed + * V4L/DVB (8096): au8522: prevent false-positive lock status + * V4L/DVB (8092): videodev: simplify and fix standard enumeration + * V4L/DVB (8075): stv0299: Uncorrected block count and bit error rate + fixed + * V4L/DVB (8074): av7110: OSD transfers should not be interrupted + * V4L/DVB (8073): av7110: Catch another type of ARM crash + * V4L/DVB (8071): tda10023: Fix possible kernel oops during + initialisation + * V4L/DVB (8069): cx18: Fix S-Video and Compsite inputs for the Yuan + MPC718 and enable card entry + * V4L/DVB (8068): cx18: Add I2C slave reset via GPIO upon + initialization + * V4L/DVB (8067): cx18: Fix firmware load for case when digital + capture happens first + * V4L/DVB (8066): cx18: Fix audio mux input definitions for HVR-1600 + Line In 2 and FM radio + * V4L/DVB (8063): cx18: Fix unintended auto configurations in cx18-av- + core + * V4L/DVB (8061): cx18: only select tuner / frontend modules if + !DVB_FE_CUSTOMISE + * V4L/DVB (8048): saa7134: Fix entries for Avermedia A16d and + Avermedia E506 + * V4L/DVB (8044): au8522: tuning optimizations + * V4L/DVB (8043): au0828: add support for additional USB device id's + * V4L/DVB (8042): DVB-USB UMT-010 channel scan oops + * V4L/DVB (8040): soc-camera: remove soc_camera_host_class class + * V4L/DVB (8039): pxa-camera: fix platform_get_irq() error handling. + * V4L/DVB (8037): tda18271: ensure that the thermometer is off during + channel configuration + * V4L/DVB (8036): tda18271: toggle rf agc speed mode on TDA18271HD/C2 + only + * V4L/DVB (8035): tda18271: dont touch EB14 if rf_cal lookup is out of + range + * V4L/DVB (8034): tda18271: fix IF notch frequency handling + * V4L/DVB (8029): Improve error message at tda1004x_attach + * V4L/DVB (8028): Improve error messages for tda1004x attach + * V4L/DVB (8027): saa7134: Avermedia A700: only s-video and composite + input are working + * V4L/DVB (8026): Avoids an OOPS if dev struct can't be successfully + recovered + * V4L/DVB (8022): saa7134: fix race between opening and closing the + device + * V4L/DVB (8020): Fix callbacks functions of saa7134_empress + * V4L/DVB (8018): Add em2860 chip ID + * V4L/DVB (8017): Ensure em28xx extensions only get run against devs + that support them + * V4L/DVB (8015): gl861: replace non critical msleep(0) with msleep(1) + to be on the safe side + * V4L/DVB (8013): gl861: remove useless identify_state + * V4L/DVB (8012): gl861: sleep a little to avoid I2C errors + * V4L/DVB (8011): em28xx: enable DVB for HVR-900 + * V4L/DVB (8010): em28xx: Properly register extensions for already + attached devices + * V4L/DVB (8008): cx18: remove duplicate audio and video input enums + * V4L/DVB (8007): cx18/cx25840: the S-Video LUMA input can use all + In1-In8 inputs + * V4L/DVB (8005): Fix OOPS if frontend is null + * V4L/DVB (8004): Fix INPUT dependency at budget-ci + * x86: section/warning fixes + * x86: shift bits the right way in native_read_tscp + * dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled. + * ACPI: don't walk tables if ACPI was disabled + * thermal: Create CONFIG_THERMAL_HWMON=n + * [ARM] 5117/1: pxafb: fix __devinit/exit annotations + * [SCSI] esp: tidy up target reference counting + * iwlwifi: improve scanning band selection management + * rt2x00: Fix unbalanced mutex locking + * b43legacy: Fix possible NULL pointer dereference in DMA code + * b43: Fix possible MMIO access while device is down + * b43legacy: Do not return TX_BUSY from op_tx + * b43: Do not return TX_BUSY from op_tx + * mac80211: implement EU regulatory domain + * Blackfin arch: fix up section mismatch warning + * Blackfin arch: fix bug - kernel boot fails when Spinlock and rw-lock + debugging enabled + * [PATCH] remove useless argument type in audit_filter_user() + * [PATCH] audit: fix kernel-doc parameter notation + * [PATCH] kernel/audit.c: nlh->nlmsg_type is gotten more than once + * [SCSI] esp: Fix OOPS in esp_reset_cleanup(). + * netfilter: ip6table_mangle: don't reroute in LOCAL_IN + * [SCSI] ses: Fix timeout + * udf: Fix regression in UDF anchor block detection + * [patch 2/3] vfs: dcache cleanups + * [patch 1/3] vfs: dcache sparse fixes + * [patch 3/3] vfs: make d_path() consistent across mount operations + * [patch 4/4] flock: remove unused fields from file_lock_operations + * [patch 3/4] vfs: fix ERR_PTR abuse in generic_readlink + * [patch 2/4] fs: make struct file arg to d_path const + * [patch 1/4] vfs: path_{get,put}() cleanups + * [patch for 2.6.26 4/4] vfs: utimensat(): fix write access check for + futimens() + * [patch for 2.6.26 3/4] vfs: utimensat(): fix error checking for + {UTIME_NOW,UTIME_OMIT} case + * [patch for 2.6.26 1/4] vfs: utimensat(): ignore tv_sec if tv_nsec == + UTIME_OMIT or UTIME_NOW + * [patch for 2.6.26 2/4] vfs: utimensat(): be consistent with utime() + for immutable and append-only files + * [PATCH] fix cgroup-inflicted breakage in block_dev.c + * [ARM] Export dma_sync_sg_for_device() + * [ARM] 5109/1: Mark rtc sa1100 driver as wakeup source before + registering it + * [ARM] 5116/1: pxafb: cleanup and fix order of failure handling + * [ARM] 5115/1: pxafb: fix ifdef for command line option handling + * debugobjects: fix lockdep warning + * ARM: OMAP: Correcting the gpmc prefetch control register address + * ARM: OMAP: DMA: Don't mark channel active in omap_enable_channel_irq + + -- mathias nyman Thu, 17 Jul 2008 15:30:54 +0300 + +kernel-source (2.6.26~rc4-osso6) unstable; urgency=low + + * week200828-1 release + * RX51: Enable SmartReflex driver in rx51 defconfig + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * wl1251: Support for MAC setting + * wl1251: don't overwrite wl1251_rates[] values + * wl1251: some error message cleanup + * wl1251: tx frame index reset + * wl1251: channel switch + * wl1251: Fix TX path memory leak + * wl1251: fix free_irq() + * RX51: Enable CONFIG_PM_DEBUG, CONFIG_DEBUG_FS + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * omap: hsmmc: Avoid NULL pointer dereference + * Add support for "audio -" (KEY_F8) and "audio +" (KEY_F7) keys. + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * ASoC: RX51: Update for bulk DAPM registration APIs + * ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter + * ARM/OMAP/FB: Fix LCD panel identifiers and default name + * ARM/OMAP/FB: Add support for new LCD panel class ACX565AKM + * usb: musb: add back musb_hset tool + * mmc: make mmc probe again + * Update Bluetooth core version number + * Add support for TIOCOUTQ and TIOCINQ ioctls + * Add timestamp support to L2CAP, RFCOMM and SCO + * Signal user-space for HIDP and BNEP socket errors + * Move pending packets from RFCOMM socket to TTY + * Store remote modem status for RFCOMM TTY + * Use non-canonical TTY by default for RFCOMM + * Support the case when headset falls back to SCO link + * Initiate authentication during connection establishment + * Export details about authentication requirements + * Disconnect when encryption gets disabled + * Introduce the different bonding types + * Limit packet type change on incoming connections + * Update class of device value whenever possible + * Export remote Simple Pairing mode via sysfs + * Use ACL config stage to retrieve remote features + * Some cleanups for HCI event handling + * Make use of the default link policy settings + * Track status of remote Simple Pairing mode + * Track status of Simple Pairing mode + * Disable disconnect timer during Simple Pairing + * ASoC: Add digital mic configuration to RX51 machine driver + * ASoC: TLV320AIC3X: Add support for digital microphone input + * ASoC: TLV320AIC3X: Modify only interface related bits in + aic3x_set_dai_fmt + * ASoC: TLV320AIC3X: Use register modifier widget for mic bias + * ASoC: Add support for generic DAPM register modifier widget + * ASoC: Tweak tlv320aicx reg_cache_size + * ASoC: Clarify API for bias configuration + * soc - tlv320aic3x - Convert to use bulk registration APIs + * soc - DAPM - Bulk route registration + * soc - Add bulk DAPM control registration + * soc - tlv320aic3x - add GPIO support + * soc - tlv320aic3x - revisit clock setup + * wl1251: use 48 MHz SPI clock + * wl1251: power off cleanups + * wl1251: Ad-Hoc mode support + * wl1251: WPA support + * wl1251: WEP support + * Move fw sending to interrupt context + * Fix hci_h4p sysfs removing + * ASoC: OMAP: Add audio endpoint and route to FM TX chip in Nokia RX51 + * i2c: add MODULE_ALIAS to twl4030 drivers + * usb: musb: allow usb to be built as module + * usb: hub: add check for unsupported bus topology + * usb: musb: musb on omap3 has 32 endpoints + * Add simple headphone jack support for RX51 audio + * Add TPA6130A2 support to board-rx51.c + * Add support for TPA6130A2 chip + * I2C: lis302dl: Add selftest functionality + * WL1251: disable BT-WLAN PTA code + * USB: MUSB: Charger detection is deferred to next wake-up 3rd. + * i2c: twl4030-vibra: fix use of delayed_work + * usb: otg: match with == instead of & + * usb: serial: Fix PID for rx51 + * usb: otg: tpl: Support storage and hid devices + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver + * I2C: LP5523: Add LED selftest functionality, update to new i2c + driver model + * omap: rx51: section mismatch fix + * usb: musb: charger detection fix + * si4713: Fix set region function to change frequency only when needed + * si4713: Fix set frequency ioctl to proper check power level + * MMC: RX51: Add sysfs file cover_switch + * MMC: RX51: Add card detection irq + * MMC: OMAP: Add slot_name entry to sysfs + * MMC: OMAP: Re-organizing some goto at hsmmc probe + * MMC: OMAP: Readable output for IRQ status register + * MMC: PM: Reset controllers without CONFIG_MMC_OMAP_HS + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: Initial MMC support for RX51 + * Add TWL4030 RTC support to board-rx51.c + * RX51: Add cmt_apesleepx gpio-switch + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * musb: there's no need to sysfs notify + * usb: musb: get vbus status for omap2430 and omap3 + * usb charger detection prototype + * si4713: Fix driver probe sequence by adding device id table + * si4713: Change power_level range + * si4713: Remove double range checking when setting power_level + * si4713: Add region selection feature + * si4713: Add antenna tuning value property + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + * I2C: TWL4030 Vibra driver + * I2C: TWL4030: Add get device helper function + * I2C: TWL4030: Fix error handling in MADC driver + * I2C: TWL4030: Remove msleep(1) from MADC driver + * HS OMAP3430 L2 invalidate + * I2C: lis302dl: Add .id_table to i2c_driver struct + * wl1251: implement join ssid command + * wl1251: implement rx path + * wl1251: implement hardware scan + * wl1251: implement tx path + * wl1251: implement mailbox event handling + * wl1251: implement interrupt handling + * wl1251: implement hw initialisation sequence + * I2C: add support for lis302dl accelometer driver + * Add H4+ support for BCM2048b0 bluetooth chip + * rx-51: add wl1251 + * wl1251: add Kconfig and Makefile files + * wl1251: port to mac80211 bands API + * Add wl1251 driver + * ARCH: OMAP: RX51: USB: Do not block sleep + * USB: SERIAL GADGET: Add nokia strings + * USB: GADGET: Add nokia ids to file_storage.c + * USB: SERIAL GADGET: Start using obex function + * USB: COMPOSITE: Support 16 interfaces by default + * OBEX: Introduce f_obex function driver. + * usb serial gadget: use updated framework + * usb serial gadget: generic serial function driver + * usb serial gadget: cdc acm function driver + * usb gadget zero: use updated framework + * usb gadget zero: loopback function driver + * usb gadget zero: sourcesink config driver + * usb gadget: composite gadget framework + * usb gadget support descriptor copying + * usb serial gadget: use new tty glue + * usb serial gadget: modular tty glue + * TSC2005 gpio setup is made by driver. + * si4713: Improve probe function + * si4713: Moved irq field from platform_data to i2c_board_info + * warm reboot detection + * LP5523: Change kconfig from bool to tristate + * si4713: Fix the boot up timeout value + * si4713: Disabled pilot tone feature by default + * si4713: Remove DEFAULT_*_ENABLED macro definitions + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * I2C: add support for lp5523 LED driver + * Add support for Taos tsl2563 ambient light sensor + * si4713: Fix i2c bus address + * rx51: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * USB: OTG: Make otg_tpl come from platform_data + * USB: OTG: Add check for roothub initialization + * USB: OTG: Start using new otg tpl. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * UBIFS: remove assertion + * UBIFS: do not return negative available space + * UBIFS: rename key_ino to key_inum + * UBIFS: rename NC to LPROPS_NC + * UBIFS: make dbg_check_dir_size check nlink as well + * UBIFS: partially get rid of truncation key + * UBIFS: remove format version 2 support + * UBIFS: fix orphan leak on error path + * UBIFS: fix lpt leaks on error path + * UBIFS: add a UUID to super block + * UBIFS: fix extended attributes size + * UBIFS: add file-system checking function + * UBIFS: clean up resource freeing + * UBIFS: remove debugging stuff from tnc.c + * UBIFS: better error message in read_znode + * UBIFS: another gc_lnum recovery fix + * UBIFS: make dbg_tnc_walk non-recursive + * UBIFS: fix Kconfig + * UBIFS: dump creat_sqnum as well + * UBIFS: remove incorrect cond_resched + * UBIFS: add dbg_dump_index + * UBIFS: tweak scan_for_dirty and asserts + * UBIFS: define change_lp() 'no-change' value + * UBIFS: always commit after recovery + * UBIFS: add a comment + * UBIFS: kill orphans in ro mount also + * UBIFS: ubifs-v0.7 + * UBIFS: amend dbg_dump_node + * UBIFS: minor debugging print fix + * UBIFS: fix false assertion allarm in budgeting + * UBIFS: print dead direntry name + * UBIFS: print format version + * UBIFS: do not use -1 offsets + * UBIFS: temporary hack for backward compatibility + * UBIFS: fix bad hash mask bug + * UBIFS: minor print tweaks + * UBIFS: get rid of cpu_to_le64(0) + * UBIFS: rename fmt_vers to fmt_version + * UBIFS: tweak asserts and gc_lnum fix + * UBIFS: move ubifs_validate_entry + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove unnecessary 'if' in bg thread + * UBIFS: fix flags + * UBIFS: rework flags inheritance + * UBIFS: fix gc_lnum recovery + * UBIFS: split out ubifs_fill_super + * UBIFS: mount_ubifs now cleans up its own errors + * UBIFS: get rid of scary lockup warnings + * UBIFS: tweak bg thread + * UBIFS: remove unnecessary cond_resched() + * UBIFS: do not set nice level in bg thread + * UBIFS: use __clear_bit and __set_bit in LPT + * UBIFS: remove unnecessary kzalloc + * UBIFS: use __clear_bit and __set_bit + * UBIFS: use memory barriers in dbg_tnc_check + * UBIFS: comment why we use barriers + * UBIFS: use unlikely in come core TNC functions + * UBIFS: do not use kzalloc unnecesarily + * UBIFS: fix compilation error + * UBIFS: be consistent when comparing pointers with NULL + * UBIFS: cleanup, fix, and improve tnc + * UBIFS: use is_hash_key + * UBIFS: do not validate what is in LNC + * UBIFS: add xentries to LNC + * UBIFS: rename bg thread + * UBIFS: rename JRN to JNL as well + * UBIFS: remove redundant check + * UBIFS: finally remove build.c + * UBIFS: use jnl instead of jrn + * UBIFS: get rid of build.c + * UBIFS: allow multiple blocks per page + * UBIFS: admit that we do not support NFS + * UBIFS: minor renaming + * UBIFS: fix dangling branch handling + * UBIFS: add comment + * UBIFS: ensure readahead is disabled + * UBIFS: comment why 'commit_on_unmount()' is in kill_sb + * UBIFS: make reservation before allocating sequence numbers + * UBIFS: fix misplaced code + * UBIFS: avoid 'dbg_check_key_order()' during replay + * UBIFS: fix telldir and seekdir + * UBIFS: do not forget about mnt_want_write + * UBIFS: change few bits in readdir + * UBIFS: fix memory corruption + * UBIFS: fix bogus assertions + * UBIFS: do not fail in case of bad seeks + * UBIFS: fix hash calculation + * UBIFS: maximum inode size is defined by current key format + * UBIFS: introduce macros for key constants + * UBIFS: limit inode data to block size + * UBIFS: fix returned error code + * UBIFS: fix ia64 compilation warning + * UBIFS: add a comment + * UBIFS: fix collision resolution + * UBIFS: add warning for mmapped file + * UBIFS: page is dirtied only if trunc smaller + * UBIFS: don't forget to release page + * UBIFS: fix printk warnings + * UBIFS: make UBIFS compile on system with non-4KiB pages + * UBIFS: fix "CONFIG_UBIFS_FS_DEBUG_CHKS" is not defined warning + * UBIFS: minor amendments + * UBIFS: default is already n in Kconfig + * UBIFS: get rid of Kconfig.debug + * UBIFS: no need to initialize r->key + * UBIFS: remove unneeded key comparison + * UBIFS: remove memleak and mempressure checks + * UBIFS: add module params to documentation + * UBIFS: do not assume inode size may not be changed meanwhile + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove some amount of assertion + * UBIFS: remove VFS interface checking assertions + * UBIFS: remove module param pretty print + * UBIFS: fix module params + * UBIFS: fix white space + * UBIFS: change check level to bool + * UBIFS: reinstate recovery messages + * UBIFS: add missing check flag checks + * UBIFS: remove 'key' message macros + * UBIFS: fix mmap budgeting + * UBIFS: optimize budgeting a bit + * UBIFS: fix inode budgeting + * UBIFS: making ubifs compile with gcc-3.4 + * UBIFS: fix error path in ubifs_write_end + * UBIFS: change debug control from config to module param + * UBIFS: update cmtime for mmapped writes + * UBIFS: budget for mmapped writes + * UBIFS: tweak min_idx_lebs calculation + * UBIFS: fix error path in ubifs_write_begin() + * UBIFS: add ubifs.txt to Documentation directory + * UBIFS: remove unnecessary locking + * UBIFS: fix device node files + * UBIFS: fix journal size for small partitions + * UBIFS: minor debugging print amendment + * UBIFS: fix warning + * UBIFS: fix comparisons + * UBIFS: rest of dangling branch patch + * UBIFS: fix compilation error + * UBIFS: remove unneeded check + * UBIFS: remove excessive unlikely() + * UBIFS: amend comments + * UBIFS: print error codes + * UBIFS: improve dangling branch detection + * UBIFS: bugfix in TNC + * UBIFS: tweak TNC debugging messages + * UBIFS: ubifs-v0.6 + * UBIFS: keep colliding keys sorted + * UBIFS: print error code before switching to RO mode + * UBIFS: minor change in readdir + * UBIFS: minor TNC clarification + * UBIFS: fix minor inconsistency with free space + * UBIFS: force empty FS to report zero used + * UBIFS: fix free space + * UBIFS: fix bug on error path + * UBIFS: add a TNC comment + * UBIFS: tidy LPT defines + * UBIFS: be more conservative about worst-case compression + * UBIFS: tree height can exceed 64 + * UBIFS: more clarifications for TNC + * UBIFS: random nicifications in tnc + * UBIFS: zap -ENOENT return code from resolve_collision series + * UBIFS: one more TODO for ahunter + * UBIFS: improve znode_lookup comment + * UBIFS: fix freaking TNC bug + * UBIFS: move MIN_COMPR_LEN to ubifs-media.h + * UBIFS: add TODOs for ahunter + * UBIFS: turn znode flags into enum and document them + * UBIFS: improve debugging prints some more + * UBIFS: move dbg_check_idx_size to debug.c + * UBIFS: add force in-the-gap facility + * UBIFS: do not trust znode->iip in dbg_check_znode + * UBIFS: lessen size of tnc.c + * UBIFS: nicify commentaries + * UBIFS: tweak TNC debugging messages + * UBIFS: fix dbg_check_znode() fake alarm + * UBIFS: ubifs-v0.5 + * UBIFS: revise directory size calculation + * UBIFS: add time_gran to dump_node + * UBIFS: allow for dates beyond 2038 + * UBIFS: put time granularity on super block node + * UBIFS: use time granularity consistently + * UBIFS: tweak lprops check + * UBIFS: introduce constants for matches_name() + * UBIFS: do not forget to free LNC on error path + * UBIFS: clean-up and amend matches_name() + * UBIFS: unify variable names in tnc + * UBIFS: remove bogus error + * UBIFS: amend ubifs_tnc_next_ent + * UBIFS: fix and amend debugging stuff + * UBIFS: add a TODO + * UBIFS: get rid of loop in keys_cmp + * UBIFS: optimize TNC + * UBIFS: fix TNC bug + * UBIFS: few minor cleanups + * UBIFS: add TNC dump function + * UBIFS: fix minor bug + * UBIFS: ubifs-v0.4 + * UBIFS: remove xattr_msize + * UBIFS: tweak div64.h inclusion + * UBIFS: tweak debugging + * UBIFS: use clear_nlink() in ubifs_rmdir() + * UBIFS: do not use long long with do_div + * UBIFS: remove padding field from indexing node + * UBIFS: store nanoseconds in inode time stamps + * UBIFS: ubifs-v0.3 + * UBIFS: zero out unused fileds + * UBIFS: fix bud race + * UBIFS: fix minor leak on error path + * UBIFS: fix bad lprops bug + * UBIFS: fix lsave_cnt validation + * UBIFS: add missing debug message + * UBIFS: report f_bavail correctly + * UBIFS: fix statfs reporting + * UBIFS: remove compatibility stuff + * UBIFS: don't wbuf_add_ino on error path, it overruns the buffer + * UBIFS: fix leb write wrapper + * UBIFS: split lpt.c + * UBIFS: intorduce leb write and unmap wrappers + * UBIFS: move dbg_dump_pnode to debug.c + * UBIFS: minor cleanup in lpt.c + * UBIFS: fix kernel-doc warnings + * UBIFS: fix my name + * UBIFS: remove check_volume_empty() + * UBIFS: turn recovery messages into mount messages + * UBIFS: remove xattr debugging messages + * UBIFS: fix lprops mismatch + * UBIFS: fix compolation error + * UBIFS: dump stack when switching to RO mode + * UBIFS: calc lpt_hght correctly + * UBIFS: add some ro_media checks + * UBIFS: fix checkpatch.pl warnings + * UBIFS: minor renames + * UBIFS: add some comments + * UBIFS: fix some spelling + * UBIFS: sparse fixes + * UBIFS: do ubifs.h TODOs + * UBIFS: remove budget TODOs + * UBIFS: do journal TODOs + * UBIFS: use kfree via debug function in debug.c + * UBIFS: fix minor TNC bug + * UBIFS: do build TODOs + * UBIFS: do/remove super TODOs + * UBIFS: remove gc TODOs + * UBIFS: do io.c TODOs + * UBIFS: do ioctl TODO + * UBIFS: do sb.c TODO + * UBIFS: do replay TODO + * UBIFS: do dir.c TODOs + * UBIFS: make sure inode is directory before checking size + * UBIFS: fix new ubifs_tnc_next_ent call + * UBIFS: remove TODOs in file.c + * UBIFS: remove msize + * UBIFS: last tnc TODOs + * UBIFS: tnc TODOs + * UBIFS: do some more tnc TODOs + * UBIFS: add directory i_size check function + * UBIFS: remove fast_umount sb flag + * UBIFS: make reported block size 4K again + * UBIFS: fix the code for 2.6.21 + * UBIFS: do some TODOs in tnc + * UBIFS: do some TODO's, remove others + * UBIFS: report 512 as block size + * UBIFS: directory inodes do not have any attached data + * UBIFS: fix screwed budgeting + * UBIFS: rework stat() reports + * UBIFS: fix directory size calculation + * UBIFS: msize is not used + * UBIFS: let it compile + * UBIFS: remove incorrect msize validation + * UBIFS: fix incorrect error returning + * UBIFS: be more verbose when printing errors + * UBIFS: amend Kconfig + * UBIFS: fix compatibility stuff + * UBIFS: add crypto dependency to Kconfig + * UBIFS: implement TODO in io.c + * UBIFS: make min_io_size at least 8 + * UBIFS: remove extra argument + * UBIFS: remove a TODO + * UBIFS: fix a bug in check_namespace() + * UBIFS: fix WARNING: modpost: Found 1 section mismatch(es) + * UBIFS: fix missing orphan bug + * UBIFS: do not support ACLs + * UBIFS: ubifs-v0.2 + * UBIFS: implement xattr handlers + * UBIFS: support xattrs in TNC + * UBIFS: support xattrs in journal + * UBIFS: enlarge compression threshold + * UBIFS: remove bad code + * UBIFS: introduce xentry + * UBIFS: add dummy xattr calls + * UBIFS: break on-media format + * UBIFS: tiny clean up + * UBIFS: cleanup direntry validation + * UBIFS: add a TODO + * UBIFS: add helper function for inode rmoval + * UBIFS: use __func__ instead of __FUNCTION__ + * UBIFS: use ino_t instead of unsigned long + * UBIFS: fix dirty_ino_cnt + * UBIFS: remove excessive code + * UBIFS: remove ubifs.h from include/linux/Kbuild + * UBIFS: fix new struct inode object initialization + * UBIFS: fix compilation warning + * UBIFS: improve operations in dir.c + * UBIFS: remove redundant check + * UBIFS: tweak debugging messages + * UBIFS: make some pointers const + * UBIFS: introduce xattr-related fields to inode + * UBIFS: implement a bunch of TODOs + * UBIFS: tweak journal interface + * UBIFS: make ubifs_set_i_bytes non-inline + * UBIFS: make new_ubifs_inode global + * UBIFS: rename and make macro global + * UBIFS: add a couple of TODOs + * UBIFS: fix debugging macro + * UBIFS: clean up key.h some more + * UBIFS: minor key func cleanup + * UBIFS: unify replay entries names + * UBIFS: cleanup qstr names + * UBIFS: clean up ino_t usage + * UBIFS: minor amendments in budgeting + * UBIFS: Kconfig nicifications + * UBIFS: amend copyright headers + * UBIFS: switch to new VFS interface + * UBIFS: fix default comprssor + * UBIFS: stop using iget() + * UBIFS: optimize fastpath budgeting + * UBIFS: add assertion + * UBIFS: fix budgeting + * UBIFS: do not retry in write_page() + * UBIFS: fix budgeting holes + * UBIFS: clean-up compat stuff a bit + * UBIFS: use DIV_ROUND_UP + * UBIFS: rename protecting macros + * UBIFS: remove sysfs hack + * UBIFS: print a message when fail to open UBI volume + * UBIFS: set default fanout to 8 + * UBIFS: remove leftovers + * UBIFS: remove fanout mount option + * UBIFS: rename header files + * UBIFS: store big_lpt in sup->flags + * UBIFS: store fast/norm unmount in superblock + * UBIFS: add default reserved pool size (5%, max 5 MiB) + * UBIFS: update dbg_dump_node() to support reserved pool + * UBIFS: add reserved pool support + * UBIFS: add a check for creat_sqnum + * UBIFS: reduce index node size + * UBIFS: add comment + * UBIFS: record inode creation sequence number + * UBIFS: switch to little-endian + * UBIFS: add on-flash format version + * UBIFS: use qstr for name / length pairs + * UBIFS: correct directory size calculation + * UBIFS: tidy scan slightly + * UBIFS: remove compression and key hash mount options + * UBIFS: call bdi_init + * UBIFS: initial commit + * do_mounts: allow UBI root device name + * VFS: export sync_sb_inodes + * VFS: move inode_lock into sync_sb_inodes + * PM debug support for 34xx + * 34XX: PM: Workaround to enable autoidle for clocks and plls + * Added sleep support to UART + * 34XX: PM: Workaround for taking care of gpio clocks + * OMAP: PM: Add new sysfs option for disabling clocks when entering + idle + * 34XX: PM: Workaround to check wether any fck is active before + entering sleep + * 34XX: PM: Workaround to reset all wkdeps + * DSP: Reserve 6MB at the end of ram for DSP + * ARM: OMAP: OneNAND: fix wrong variable + * ARM: OMAP: OneNAND: machine_is_nokia_rx51 is not always a constant + * ARM: OMAP: OneNAND: Enable interrupt use (pre-B1 and later only) + * ARM: OMAP: OneNAND: Use DMA on OMAP3 + * ARM: OMAP: OneNAND: Print address information for ECC errors + * ARM: OMAP: OneNAND: Add synchronous write timings + * ARM: OMAP: OneNAND: Allow for high frequency (>66MHz) + * Allow for controller errors when reading + * ARM: OMAP: OneNAND: Disable wait-monitoring for OMAP3 + * RX51: Remove TWL4030 IRQ definitions from board-rx51.h + * ARM: OMAP: OneNAND for rx51-base branch + * RX51: Basic support for Nokia RX-51 + * OMAP3: ack spurious IRQs in get_irqnr_and_base + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP Bridge config options + * DSP Bridge + * debuggauspätsi + * OMAP34XXCAM: Add support to camera daemon + * RX51: Init camera support + * AD5820: Add driver + * ET8EK8: Add driver + * V4L: New sensor controls + * OMAP34XXCAM: Get ISP clocks correctly + * OMAP34XXCAM: Set the ISP settings from machine-specific code instead + * OMAP34XXCAM: Add CCP2 support + * Add V4L2_PIX_FMT_SGRBG10DPCM8 to videodev2.h + * OMAP34XXCAM: Fix vidioc_s_fmt_cap for raw sensors + * OMAP34XXCAM: Multi-device support + * Description: Align with videobuf-dma-sg to generic DMA API patch. + * OMAP34XXCAM: Set ISPCTRL_SYNC_DETECT correctly + * Description: Fixes enum fmt return values in ISP. + * Description: Update to set idle mode for ISP when enabling sensor + * Description: Fixes Q/DQBUF errors found in testing. + * Adding support for unlocked ioctls + * Adapting camera file for V4L2 power changes. + * OMAP34XXCAM: Fix xclk B setting, print xclk in decimal + * V4L: Int if: define new power states + * OMAP34XXCAM: Stop streaming on suspend, start it on resume + * OMAP34XXCAM: Remove omap24xxcam reset hack + * V4L: Add VIDIOC_G_PRIV_MEM + * OMAP 3 ISP Preview and Resizer wrappers. + * OMAP 3 ISP driver: Preview block, Resizer block, + * OMAP 3 ISP tables for Lens Shading Compensator and Preview + * OMAP 3 Camera Driver with basic components of + * Adding OMAP 3 camera platform device. + * Adding OMAP 3 Camera registers base address. + * Adding Compact Camera Port (CCP) 2 class structures. + * Adding 10-bit RAW Bayer format. + * Adding IOCTL command to get slave private data. + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Phonet: use netif_rx_ni() only when not in interrupt + * OMAP SSI: Remove inline declaration in clock functions. + * OMAP SSI: Fixes ssi device channel clean up. + * SSI:McSAAB: Fix on SSI clock management. + * SSI:PNTTY: Add MODULE_ALIAS() + * Adds MODALIAS support in SSI bus. + * SSI:PNTTY: Disable BH on probe/resume. + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * ASoC: RX51: Update for bulk DAPM registration APIs + * ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter + * ARM/OMAP/FB: Fix LCD panel identifiers and default name + * ARM/OMAP/FB: Add support for new LCD panel class ACX565AKM + * usb: musb: add back musb_hset tool + * mmc: make mmc probe again + * Update Bluetooth core version number + * Add support for TIOCOUTQ and TIOCINQ ioctls + * Add timestamp support to L2CAP, RFCOMM and SCO + * Signal user-space for HIDP and BNEP socket errors + * Move pending packets from RFCOMM socket to TTY + * Store remote modem status for RFCOMM TTY + * Use non-canonical TTY by default for RFCOMM + * Support the case when headset falls back to SCO link + * Initiate authentication during connection establishment + * Export details about authentication requirements + * Disconnect when encryption gets disabled + * Introduce the different bonding types + * Limit packet type change on incoming connections + * Update class of device value whenever possible + * Export remote Simple Pairing mode via sysfs + * Use ACL config stage to retrieve remote features + * Some cleanups for HCI event handling + * Make use of the default link policy settings + * Track status of remote Simple Pairing mode + * Track status of Simple Pairing mode + * Disable disconnect timer during Simple Pairing + * ASoC: Add digital mic configuration to RX51 machine driver + * ASoC: TLV320AIC3X: Add support for digital microphone input + * ASoC: TLV320AIC3X: Modify only interface related bits in + aic3x_set_dai_fmt + * ASoC: TLV320AIC3X: Use register modifier widget for mic bias + * ASoC: Add support for generic DAPM register modifier widget + * ASoC: Tweak tlv320aicx reg_cache_size + * ASoC: Clarify API for bias configuration + * soc - tlv320aic3x - Convert to use bulk registration APIs + * soc - DAPM - Bulk route registration + * soc - Add bulk DAPM control registration + * soc - tlv320aic3x - add GPIO support + * soc - tlv320aic3x - revisit clock setup + * wl1251: use 48 MHz SPI clock + * wl1251: power off cleanups + * wl1251: Ad-Hoc mode support + * wl1251: WPA support + * wl1251: WEP support + * OMAP3 clock: DPLL{1,2}_FCLK clksel can divide by 4 + * OMAP3 clock: fix DPLL jitter correction and rate programming + * OMAP2 clock: check register address in omap2_clk_wait_ready() + * OMAP3 clock: OMAP3430ES2+ has SSI target idlest bit + * OMAP3 clock: fix omap2_clk_wait_ready() for OMAP3430ES2+ DSS + * OMAP2/3 clock: clean up omap2_clk_wait_ready() + * OMAP3 PM: enable hardware SAR for USBHOST, USBTLL modules + * OMAP3 pwrdm: add CORE SAR handling (for USBTLL module) + * OMAP3: move USBHOST SAR handling from clock framework to powerdomain + layer + * OMAP3 pwrdm: add hardware save-and-restore (SAR) support + * PRCM: 34XX: Fix wrong shift value used in dpll4_m4x2_ck enable bit + * ARM: OMAP: SmartReflex driver: enable in omap_3430sdp_defconfig + * 34XX: PM: Workaround to build omap hsmmc as a module + * Revert "radio-tea5761: Update driver" + * Linux 2.6.26-rc8 + * enable bus mastering on i915 at resume time + * KVM: Remove now unused structs from kvm_para.h + * x86: KVM guest: Use the paravirt clocksource structs and functions + * KVM: Make kvm host use the paravirt clocksource structs + * x86: Make xen use the paravirt clocksource structs and functions + * x86: Add structs and functions for paravirt clocksource + * [GFS2] fix gfs2 block allocation (cleaned up) + * [IA64] Eliminate NULL test after alloc_bootmem in + iosapic_alloc_rte() + * [IA64] Handle count==0 in sn2_ptc_proc_write() + * [IA64] Fix boot failure on ia64/sn2 + * kgdb: sparse fix + * kgdb: documentation update - remove kgdboe + * xen: remove support for non-PAE 32-bit + * [GFS2] BUG: unable to handle kernel paging request at + ffff81002690e000 + * Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working" + * KVM: VMX: Fix host msr corruption with preemption enabled + * KVM: ioapic: fix lost interrupt when changing a device's irq + * KVM: MMU: Fix oops on guest userspace access to guest pagetable + * KVM: MMU: large page update_pte issue with non-PAE 32-bit guests + (resend) + * KVM: MMU: Fix rmap_write_protect() hugepage iteration bug + * KVM: close timer injection race window in __vcpu_run + * KVM: Fix race between timer migration and vcpu migration + * alpha: fix compile error in arch/alpha/mm/init.c + * NFS: nfs_updatepage(): don't mark page as dirty if an error occurred + * NFS: Fix filehandle size comparisons in the mount code + * NFS: Reduce the NFS mount code stack usage. + * mm: fix race in COW logic + * Fix ZERO_PAGE breakage with vmware + * removed unused var real_tty on n_tty_ioctl() + * tty_driver: Update required method documentation + * IB/mthca: Clear ICM pages before handing to FW + * i2c: twl4030: warning: mixed declarations and code + * futexes: fix fault handling in futex_lock_pi + * This patch completes the name change from 2430osk to OMAP2EVM + * Adding basic compile support for OMAP2EVM + * Renaming files to reflect name change from 2430OSK to OMAP2EVM + * usb: musb: ignore disconnect on suspend + * i2c: add MODULE_ALIAS to twl4030 drivers + * i2c: allow twl modules to be built as modules + * usb: musb: add MODULE_ALIAS for udev module loading + * ARM: OMAP: SmartReflex driver integration + * ARM: OMAP: SmartReflex driver: added required register and bit + definitions. + * The fix prevents kernel crash caused by twl4030 power button + malfunction. + * radio-tea5761: Update driver + * tea5761 tuner: fix registers utilization + * tea5761: Add init and sleep callbacks on tea5761 tuner + * ARM:OMAP: fix driver MODULE_ALIAS() + * ARM: OMAP: Allocate McBSP devices dynamically + * ALSA: sb - Fix wrong assertions + * ALSA: aw2 - Fix Oops at initialization + * Fix performance regression on lmbench select benchmark + * Slab: Fix memory leak in fallback_alloc() + * Add return value to reserve_bootmem_node() + * netns: Don't receive new packets in a dead network namespace. + * sctp: Make sure N * sizeof(union sctp_addr) does not overflow. + * pppoe: warning fix + * alpha: resurrect Cypress IDE quirk + * alpha: fix compile failures with gcc-4.3 (bug #10438) + * alpha: link failure fix + * alpha: fix module load failures on smp (bug #10926) + * Linux 2.6.26-rc7 + * [watchdog] hpwdt: fix use of inline assembly + * [IA64] SN2: security hole in sn2_ptc_proc_write + * BAST: Remove old IDE driver + * pcmcia ide kingston compactflash's have a new manufacturer id + * pcmcia: add another pata/ide ID + * pcmcia: add an pata/ide ID + * ide: increase timeout in wait_drive_not_busy() + * palm_bk3710: fix resource management + * Reinstate ZERO_PAGE optimization in 'get_user_pages()' and fix XIP + * Ext4: Fix online resize block group descriptor corruption + * sched: refactor wait_for_completion_timeout() + * xen: don't drop NX bit + * xen: mask unwanted pte bits in __supported_pte_mask + * xen: Use wmb instead of rmb in xen_evtchn_do_upcall(). + * x86: fix NULL pointer deref in __switch_to + * sched: fix wait_for_completion_timeout() spurious failure under + heavy load + * sched: rt: dont stop the period timer when there are tasks wanting + to run + * drm: only trust core drm ioctls - driver ioctls are a mess. + * drm/i915: add support for Intel series 4 chipsets. + * [agp]: fixup chipset flush for new Intel G4x. + * ipv6: Drop packets for loopback address from outside of the box. + * ipv6: Remove options header when setsockopt's optlen is 0 + * x86, geode: add a VSA2 ID for General Software + * sched, delay accounting: fix incorrect delay time when constantly + waiting on runqueue + * hwmon: (lm75) sensor reading bugfix + * hwmon: (abituguru3) update driver detection + * hwmon: (w83791d) new maintainer + * hwmon: (abituguru3) Identify Abit AW8D board as such + * hwmon: Update the sysfs interface documentation + * hwmon: (adt7473) Initialize max_duty_at_overheat before use + * hwmon: (lm85) Fix function RANGE_TO_REG() + * Blackfin Serial Driver: Use timer to poll CTS PIN instead of + workqueue. + * Blackfin arch: fix typo error in bf548 serial header file + * x86: use BOOTMEM_EXCLUSIVE on 32-bit + * x86, 32-bit: fix boot failure on TSC-less processors + * x86: fix NULL pointer deref in __switch_to + * x86: set PAE PHYSICAL_MASK_SHIFT to 44 bits. + * softlockup: fix NMI hangs due to lock race - 2.6.26-rc regression + * rcupreempt: remove export of rcu_batches_completed_bh + * cpuset: limit the input of cpuset.sched_relax_domain_level + * sched: CPU hotplug events must not destroy scheduler domains created + by the cpusets + * sched: rt-group: fix RR buglet + * sched: rt-group: heirarchy aware throttle + * sched: rt-group: fix hierarchy + * sched: NULL pointer dereference while setting sched_rt_period_us + * agp: brown paper bag patch - put back two lines that got lost + * agp: brown paper bag patch - put back the two lines it took out. + * agp/intel: cleanup some serious whitespace badness + * [AGP] intel_agp: Add support for Intel 4 series chipsets + * [AGP] intel_agp: extra stolen mem size available for IGD_GM chipset + * drm/radeon: add hier-z registers for r300 and r500 chipsets + * drm/radeon: use DSTCACHE_CTLSTAT rather than RB2D_DSTCACHE_CTLSTAT + * drm/radeon: switch IGP gart to use radeon_write_agp_base() + * drm/radeon: Restore sw interrupt on resume + * drm/r500: add support for AGP based cards. + * drm/radeon: fix texture uploads with large 3d textures (bug 13980) + * drm/radeon: add initial r500 support. + * drm/radeon: init pipe setup in kernel code. + * drm/radeon: fixup radeon_do_engine_reset + * drm/radeon: fix pixcache and purge/cache flushing registers + * drm/radeon: write AGP_BASE_2 on chips that support it. + * drm/radeon: merge IGP chip setup and fixup RS400 vs RS480 support + * drm/radeon: IGP clean up register and magic numbers. + * drm/rs690: set base 2 to 0. + * drm/rs690: set all of gart base address. + * radeon: add production microcode from AMD + * drm: pcigart use proper pci map interfaces. + * ahci: sis can't do PMP + * agp: more boolean conversions. + * ata_piix: add TECRA M4 to broken suspend list + * LIBATA: Add HAVE_PATA_PLATFORM to select PATA_PLATFORM driver + * sata_mv: warn on PIO with multiple DRQs + * sata_mv: enable async_notify for 60x1 Rev.C0 and higher + * libata: don't check whether to use DMA or not for no data commands + * ahci: jmb361 has only one port + * drivers/char/agp - use bool + * agp: two-stage page destruction issue + * agp/via: fixup pci ids + * mac80211: detect driver tx bugs + * IB/uverbs: Fix check of is_closed flag check in + ib_uverbs_async_handler() + * ieee1394: Kconfig menu touch-up + * firewire: Kconfig menu touch-up + * firewire: deadline for PHY config transmission + * firewire: fw-ohci: unify printk prefixes + * firewire: fill_bus_reset_event needs lock protection + * firewire: fw-ohci: write selfIDBufferPtr before + LinkControl.rcvSelfID + * firewire: fw-ohci: disable PHY packet reception into AR context + * firewire: fw-ohci: use of uninitialized data in AR handler + * firewire: don't panic on invalid AR request buffer + * Revert "[WATCHDOG] hpwdt: Fix NMI handling." + * [POWERPC] Clear sub-page HPTE present bits when demoting page size + * [POWERPC] 4xx: Clear new TLB cache attribute bits in Data Storage + vector + * netlink: genl: fix circular locking + * Revert "mac80211: Use skb_header_cloned() on TX path." + * af_unix: fix 'poll for write'/ connected DGRAM sockets + * tun: Proper handling of IPv6 header in tun driver when TUN_NO_PI is + set + * atl1: relax eeprom mac address error check + * net/enc28j60: low power mode + * net/enc28j60: section fix + * sky2: 88E8040T pci device id + * netxen: download firmware in pci probe + * netxen: cleanup debug messages + * netxen: remove global physical_port array + * netxen: fix portnum for hp mezz cards + * ibm_newemac: select CRC32 in Kconfig + * fuse: fix thinko in max I/O size calucation + * Unignore vmlinux.lds.h from Git. + * x86-64: Fix "bytes left to copy" return value for copy_from_user() + * xfrm: fix fragmentation for ipv4 xfrm tunnel + * netfilter: nf_conntrack_h323: fix module unload crash + * netfilter: nf_conntrack_h323: fix memory leak in module + initialization error path + * netfilter: nf_nat: fix RCU races + * [WATCHDOG] hpwdt: Add CFLAGS to get driver working + * Revert "[WATCHDOG] make watchdog/hpwdt.c:asminline_call() static" + * Input: appletouch - implement reset-resume logic + * Input: i8042 - retry failed CTR writes when resuming + * ARM: OMAP: Define interrupt register locally + * ARM: OMAP: Misc clean-up to sync with upstream patches + * sched: fix defined-but-unused warning + * atm: [he] send idle cells instead of unassigned when in SDH mode + * atm: [he] limit queries to the device's register space + * atm: [br2864] fix routed vcmux support + * atm: [he] only support suni driver on multimode interfaces + * atm: [iphase] doesn't call phy->start due to a bogus #ifndef + * atm: [iphase] set drvdata before enabling interrupts + * atm: [br2684] Fix oops due to skb->dev being NULL + * ipv4: Remove unused definitions in net/ipv4/tcp_ipv4.c. + * raw: Restore /proc/net/raw correct behavior + * net: Fix test for VLAN TX checksum offload capability + * sctp: Correclty set changeover_active for SFR-CACC + * sctp: Correctly cleanup procfs entries upon failure. + * tcp: Revert reset of deferred accept changes in 2.6.26 + * ipv6 sit: Avoid extra need for compat layer in PRL management. + * pkt_sched: Change HTB_HYSTERESIS to a runtime parameter + htb_hysteresis. + * pkt_sched: HTB scheduler, change default hysteresis mode to off. + * ocfs2: Remove ->hangup() from stack glue operations. + * ocfs2: Move the call of ocfs2_hb_ctl into the stack glue. + * ocfs2: Move the hb_ctl_path sysctl into the stack glue. + * Export to userspace again. + * Remove #ifdef CONFIG_ARCH_SUPPORTS_AOUT from + * Remove last traces of a.out support from ELF loader. + * Include in fs/exec.c only for Alpha. + * MN10300: Kill linux/a.out.h inclusions + * [IA64] Fix CONFIG_IA64_SGI_UV build error + * [MIPS] Au1200: MMC resource size off by one + * [MIPS] TANBAC: Update defconfig + * [MIPS] Vr41xx: Initialize PCI io_map_base + * [MIPS] Malta: Always compile MTD platform device registration code. + * [MIPS] Malta: Fix build errors for 64-bit kernels + * [MIPS] Lasat: sysctl fixup + * [MIPS] Fix buggy use of kmap_coherent. + * [MIPS] Lasat: bring back from the dead + * [MIPS] vpe_id is required for VSMP and SMTC builds + * [MIPS] Export smp_call_function and smp_call_function_single. + * [MIPS] Bring the SWARM defconfig up to date + * [MIPS] Sibyte: Build RTC support as an object + * [MIPS] Fix the fix for divide by zero error in + build_{clear,copy}_page + * [MIPS] Fix build for PNX platforms. + * [MIPS] Add RM200 with R5000 CPU to known ARC machines + * [MIPS] Better load address for big endian SNI RM + * [MIPS] SB1250: Initialize io_map_base + * [MIPS] Alchemy: Add au1500 reserved interrupt + * [MIPS] Export empty_zero_page for sake of the ext4 module. + * sound: oxygen: fix NULL pointer dereference when loading snd-oxygen + * udf: restore UDFFS_DEBUG to being undefined by default + * [POWERPC] Turn on ATA_SFF so we get SATA_SVW back in defconfigs + * [POWERPC] Remove ppc32's export of console_drivers + * [POWERPC] Fix -Os kernel builds with newer gcc versions + * [POWERPC] Fix bootwrapper builds with newer gcc versions + * [POWERPC] Build fix for drivers/macintosh/mediabay.c + * [POWERPC] Fix warning in pseries/eeh_driver.c + * [POWERPC] Add missing of_node_put in + drivers/macintosh/therm_adt746x.c + * [POWERPC] Add missing of_node_put in drivers/macintosh/smu.c + * [POWERPC] Add missing of_node_put in pseries/nvram.c + * [POWERPC] Fix return value check logic in debugfs virq_mapping setup + * [POWERPC] Fix rmb to order cacheable vs. noncacheable + * powerpc/spufs: fix missed stop-and-signal event + * powerpc/spufs: synchronize interaction between spu exception + handling and time slicing + * powerpc/spufs: remove class_0_dsisr from spu exception handling + * powerpc/spufs: wait for stable spu status in spu_stopped() + * virtio: Complete feature negotation before updating status + * ide-generic: don't probe all legacy ISA IDE ports by default + * ide-cs: fix releasing I/O resources + * ide-cs: fix probing and add warm-plug support + * ide-pmac: remove bogus comment about pmac_ide_setup_device() + * ide-pmac: add ->cable_detect method + * ide-pmac: bugfix for media-bay support rework + * opti621: add PIO 4 support + * opti621: use pre-calculated PIO timings + * opti621: program devices timings separately in ->set_pio_mode + * opti621: use PCI clock value provided by controller + * opti621: remove DMA support + * opti621: disable read prefetch + * [SCSI] dpt_i2o: Add PROC_IA64 define + * [SCSI] scsi_host regression: fix scsi host leak + * ACPI: no AC status notification + * ACPI Exception (video-1721): UNKNOWN_STATUS_CODE, Cant attach device + * rt2x00: Add D-link DWA111 support + * mac80211: add missing new line in debug print HT_DEBUG + * mac80211 : fix for iwconfig in ad-hoc mode + * ssb: Fix coherent DMA mask for PCI devices + * rt2x00: LEDS build failure + * rt2x00: INPUT build failure + * b43: Fix noise calculation WARN_ON + * b43: Fix possible NULL pointer dereference in DMA code + * rt2x00: Restrict DMA to 32-bit addresses. + * rt2x00: Don't kill guardian_urb when it wasn't created + * parisc: update my email address + * parisc: fix miscompilation of ip_fast_csum with gcc >= 4.3 + * parisc: fix off by one in setup_sigcontext32 + * parisc: export empty_zero_page + * parisc: export copy_user_page_asm + * parisc: move head.S to head.text section + * Revert "parisc: fix trivial section name warnings" + * ahci: Workaround HW bug for SB600/700 SATA controller PMP support + * ahci: workarounds for mcp65 + * drm: the sg alloc ioctl should write back the handle to userspace + * drm: use drms ioctl cmd not what we get passed from userspace. + * rtc: Ramtron FM3130 RTC support + * rtc: make HPET_RTC_IRQ track HPET_EMULATE_RTC + * provide rtc_cmos platform device + * radix-tree: fix small lockless radix-tree bug + * console keyboard mapping broken by 04c71976 + * /proc/sysvipc/shm: fix 32-bit truncation of segment sizes + * pagemap: fix large pages in pagemap + * pagemap: pass mm into pagewalkers + * driver/char/generic_nvram: fix banner + * drivers/video/cirrusfb: fix RAM address printk + * intel_rng: make device not found a warning + * drivers/isdn/sc/ioctl.c: add missing kfree + * mmc: wbsd: initialize tasklets before requesting interrupt + * MAINTAINERS: update maintainership of pxa2xx/pxa3xx + * uml: work around broken host PTRACE_SYSEMU + * uml: remove include of asm/user.h + * rtc-at32ap700x: fix bug in at32_rtc_readalarm() + * m68knommu: init coldfire timer TRR with n - 1, not n + * kprobes: fix error checking of batch registration + * cciss: add new hardware support + * capabilities: add (back) dummy support for KEEPCAPS + * proc_fs.h: move struct mm_struct forward-declaration + * cpusets: provide another web page URL in MAINTAINERS file + * hgafb: resource management fix + * m68k: Add ext2_find_{first,next}_bit() for ext4 + * fat: relax the permission check of fat_setattr() + * mm: fix incorrect variable type in do_try_to_free_pages() + * agp: add support for Radeon Mobility 9000 chipset + * tcp: Revert 'process defer accept as established' changes. + * ipv6: Fix duplicate initialization of rawv6_prot.destroy + * bnx2x: Updating the Maintainer + * Linux 2.6.26-rc6 + * PCI: fixup write combine comment in pci_mmap_resource + * [ARM] 5091/1: Add missing bitfield include to regs-lcd.h + * x86: fix pointer type warning in arch/x86/mm/init_64.c:early_memtest + * x86, lockdep: fix "WARNING: at kernel/lockdep.c:2658 + check_flags+0x4c/0x128()" + * x86: fix an incompatible pointer type warning on 64-bit compilations + * x86: fix lockdep warning during suspend-to-ram + * x86: fix unused variable 'loops' warning in arch/x86/boot/a20.c + * Revert "x86: fix ioapic bug again" + * x86: fix asm warning in head_32.S + * x86: fix endless page faults in mount_block_root for Linux 2.6 + * geode: fix modular build + * block: disable IRQs until data is written to relay channel + * nommu: Correct kobjsize() page validity checks. + * fsl-diu-db: compile fix + * kbuild: ignore powerpc specific symbols in modpost + * sched: 64-bit: fix arithmetics overflow + * sched: fair group: fix overflow(was: fix divide by zero) + * net: Eliminate flush_scheduled_work() calls while RTNL is held. + * always_inline timespec_add_ns + * add an inlined version of iter_div_u64_rem + * common implementation of iterative div/mod + * x86: PAT export resource_wc in pci sysfs + * drivers/net/r6040.c: correct bad use of round_jiffies() + * fec_mpc52xx: MPC52xx_MESSAGES_DEFAULT: 2nd NETIF_MSG_IFDOWN => IFUP + * ipg: fix receivemode IPG_RM_RECEIVEMULTICAST{,HASH} in + ipg_nic_set_multicast_list() + * netfilter: nf_conntrack: fix ctnetlink related crash in + nf_nat_setup_info() + * netfilter: Make nflog quiet when no one listen in userspace. + * ipv6: Fail with appropriate error code when setting not-applicable + sockopt. + * ipv6: Check IPV6_MULTICAST_LOOP option value. + * ipv6: Check the hop limit setting in ancillary data. + * ipv6 route: Fix route lifetime in netlink message. + * ipv6 mcast: Check address family of gf_group in + getsockopt(MS_FILTER). + * USB: don't use reset-resume if drivers don't support it + * USB: isp1760: Assign resource fields before adding hcd + * isight_firmware: Avoid crash on loading invalid firmware + * USB: fix build bug in USB_ISIGHTFW + * kobject: Documentation Spelling Patch + * dev_set_name: fix missing kernel-doc + * [IA64] Update check_sal_cache_flush to use platform_send_ipi() + * ACPICA: fix stray va_end() caused by mis-merge + * ACPI: Reject below-freezing temperatures as invalid critical + temperatures + * ACPICA: Fix for access to deleted object + * ACPICA: Fix to make _SST method optional + * ACPICA: Fix for Load operator, load table at the namespace root + * ACPICA: Ignore ACPI table signature for Load() operator + * ACPICA: Fix to allow zero-length ASL field declarations + * ACPI: use memory_read_from_buffer() + * bay: exit if notify handler cannot be installed + * dock.c remove trailing printk whitespace + * proper prototype for acpi_processor_tstate_has_changed() + * ACPI: handle invalid ACPI SLIT table + * PNPACPI: use _CRS IRQ descriptor length for _SRS + * pnpacpi: fix shareable IRQ encode/decode + * pnpacpi: fix IRQ flag decoding + * MAINTAINERS: update ACPI homepage + * ACPI 2.6.26-rc2: Add missing newline to DSDT/SSDT warning message + * ACPI: EC: Use msleep instead of udelay while waiting for event. + * thinkpad-acpi: fix LED handling on older ThinkPads + * thinkpad-acpi: fix initialization error paths + * thinkpad-acpi: SW_RADIO to SW_RFKILL_ALL rename + * cpuidle acpi driver: fix oops on AC<->DC + * ACPI: Disable Fixed_RTC event when installing RTC handler + * [ARM] 5090/1: Correct pxafb palette typo error + * [ARM] 5077/1: spi: fix list scan success verification in PXA ssp + driver + * [IA64] perfmon: fix async exit bug + * ARM: OMAP2: Fix build errors in pm24xx.c caused by recent PRM + patches + * smc91x: fix build error from the SMC_GET_MAC_ADDR API change + * [POWERPC] bootwrapper: add simpleImage* to list of boot targets + * dccp: Bug in initial acknowledgment number assignment + * dccp ccid-3: X truncated due to type conversion + * dccp ccid-3: TFRC reverse-lookup Bug-Fix + * dccp ccid-2: Bug-Fix - Ack Vectors need to be ignored on request + sockets + * dccp: Fix sparse warnings + * dccp ccid-3: Bug-Fix - Zero RTT is possible + * ARM: OMAP2: Combine some PRM registers and fix CONFIG_DEBUG_PM + * net: Fix routing tables with id > 255 for legacy software + * sky2: Hold RTNL while calling dev_close() + * s2io iomem annotations + * atl1: fix suspend regression + * qeth: start dev queue after tx drop error + * qeth: Prepare-function to call s390dbf was wrong + * qeth: reduce number of kernel messages + * qeth: Use ccw_device_get_id(). + * qeth: layer 3 Oops in ip event handler + * virtio: use callback on empty in virtio_net + * virtio: virtio_net free transmit skbs in a timer + * virtio: Fix typo in virtio_net_hdr comments + * virtio_net: Fix skb->csum_start computation + * ehea: set mac address fix + * sfc: Recover from RX queue flush failure + * add missing lance_* exports + * ixgbe: fix typo + * forcedeth: msi interrupts + * ARM: OMAP: Add OMAP34xx pin multiplexing into I2C bus registration + helper + * ARM: OMAP2: Add pin multiplexing configuration for OMAP34xx I2C pins + * omap3beagle: add a platform device to hook up the GPIO leds to the + leds-gpio driver + * [CIFS] cifs: fix oops on mount when CONFIG_CIFS_DFS_UPCALL is + enabled + * ipsec: pfkey should ignore events when no listeners + * [CIFS] Fix hang in mount when negprot causes server to kill tcp + session + * Fix for the i2c initialization error on 2430sdp + * sparc: get leo framebuffer working + * pppoe: Unshare skb before anything else + * net pppoe: Check packet length on all receive paths + * This patch fixes "scheduling while atomic" bug when driver is + unloaded. + * isdn: use simple_read_from_buffer() + * isdn divas: fix proc creation + * drivers/atm/eni.h: remove unused macro KERNEL_OFFSET + * inet{6}_request_sock: Init ->opt and ->pktopts in the constructor + * ipv4: Remove unused declaration from include/net/tcp.h. + * l2tp: Fix potential memory corruption in pppol2tp_recvmsg() + * RDMA/nes: Fix off-by-one in nes_reg_user_mr() error path + * fix BLK_DEV_HD_ONLY on ARM dependencies + * ide: export ide_doubler + * palm_bk3710: add warm-plug support + * delkin_cb: add missing __init/__exit tags + * delkin_cb: add warm-plug support + * delkin_cb: use struct ide_port_info + * delkin_cb: set proper hwif->gendev.parent value + * ide: fix host drivers missing hwif->chipset initialization + * ide-generic: add missing hwif->chipset setup + * sis5513: add missing pci_enable_device() call + * MAINTAINERS: remove SIS 5513 IDE entry + * ide: remove the ide_etrax100 chipset type + * PRCM: OMAP3: Fix to wrongly modified omap2_clk_wait_ready + * [SCSI] sr: fix corrupt CD data after media change and delay + * shm: Remove silly double assignment + * [POWERPC] 83xx: MPC837xRDB's VSC7385 ethernet switch isn't on the + MDIO bus + * x86, pci-dma.c: don't always add __GFP_NORETRY to gfp + * sched: fix TASK_WAKEKILL vs SIGKILL race + * [S390] tape_3590.c: introduce missing kfree + * [S390] Fix __ctl_load/__ctl_store inline assembly constraints + * [S390] Fix build failure in __cpu_up() + * [S390] vt220 console, initialize list head before use + * [S390] cio: Fix inverted isc priorities. + * [S390] vmemmap: fix off-by-one bug. + * [S390] cio: Fix sparse warnings in blacklist.c. + * [S390] sparsemem: use SPARSEMEM_STATIC if !64BIT. + * MAINTAINERS: update PPPoE maintainer address + * ipv6 netns: init net is used to set bindv6only for new sock + * irda: net/irda build fix: mcs7780 + * tg3: Update version to 3.92.1 + * tg3: Fix 5761 WOL + * tg3: Fix a flags typo + * tg3: Fix 5714S / 5715S / 5780S link failures + * power_supply: Fix race in power_supply_uevent + * iwlwifi: fix oops in iwl3945_led_brightness_set + * include/linux/ssb/ssb_driver_gige.h typo fix + * mac80211: Checking IBSS support while changing channel in ad-hoc + mode + * mac80211: decrease IBSS creation latency + * zd1211rw: Fix data padding for QoS + * mac80211: Fixing slow IBSS rejoin + * libertas: fix sleep confirmation + * mac80211: send association event on IBSS create + * ipw2200: queue direct scans + * [CPUFREQ] Fix format string bug. + * mm: Minor clean-up of page flags in mm/page_alloc.c + * Fix invalid access errors in blk_lookup_devt + * IB/core: Remove IB_DEVICE_SEND_W_INV capability flag + * [ALSA] hda - Fix "alc262_sony_unsol[]" hda_verb array + * [POWERPC] Updated Freescale PPC defconfigs + * [POWERPC] 8610: Update defconfig for MPC8610 HPCD + * [POWERPC] 85xx: MPC8548CDS - Fix size of PCIe IO space + * [POWERPC] 85xx: MPC85xx MDS - Unconditionally select PHYLIB for + board fixups + * sh: Add -mno-fdpic to default flags. + * sh: add resource of USB host for SH7723 + * usb: r8a66597-hcd: Add support for SH7723 USB host + * sh: Fix compile error SH7763 setup code + * sh: Add SH7723 SCIF support + * [POWERPC] ehea: Remove dependency on MEMORY_HOTPLUG + * [POWERPC] Make walk_memory_resource available with MEMORY_HOTPLUG=n + * [POWERPC] Use dev_set_name in pci_64.c + * [POWERPC] Fix incorrect enabling of VMX when building signal or user + context + * [POWERPC] boot/Makefile CONFIG_ variable fixes + * fat_valid_media() isn't for userspace + * Blackfin serial driver: fix up tty core set_ldisc API change + breakage bug + * Blackfin arch: protect only the SPI bus controller with + CONFIG_SPI_BFIN + * IB/umem: Avoid sign problems when demoting npages to integer + * ARM: OMAP: Misc cosmetic clean-up for checkpatch.pl warnings + * ARM: OMAP: Change GPMC code to use __raw_read/write + * ARM: OMAP2: Make io.c safe for multi-omap + * ARM: OMAP: Use __raw_read/write in irq.c + * KVM: MMU: Fix is_empty_shadow_page() check + * uml: activate_mm: remove the dead PF_BORROWED_MM check + * KVM: MMU: Fix printk() format string + * KVM: IOAPIC: only set remote_irr if interrupt was injected + * KVM: MMU: reschedule during shadow teardown + * ipwireless: Fix blocked sending + * KVM: VMX: Clear CR4.VMXE in hardware_disable + * vm: add kzalloc_node() inline + * pagemap: add documentation for pagemap + * pagemap: return EINVAL, not EIO, for unaligned reads of kpagecount + or kpageflags + * pagemap: return map count, not reference count, in /proc/kpagecount + * hdaps: fix module loading on Thinkpad T61P + * proc: calculate the correct /proc/ link count + * rtc: class driver for ppc_md RTC functions + * asm-m32r/uaccess.h must #include + * ext3: fix online resize bug + * nommu: fix ksize() abuse + * doc: document the kernel-doc conventions for kernel hackers + * fbdev: export symbol fb_mode_option + * MAINTAINERS: reiserfs entry is out of date + * v850: fix typo in header guard + * h8300: fix typo in header guard + * atmel_serial: filter out FP during baud rate detection + * vt: fix vc_resize locking + * ipc: only output msgmni value at boot time + * ipc: restore MSGPOOL original value + * vt: fix background color on line feed, DEC invert + * cpufreq: fix null object access on Transmeta CPU + * fbcon: fix wrong vmode bits copied on console switch + * keys: remove unused key_alloc_sem + * cpusets: fix bug when adding nonexistent cpu or mem + * pagemap: fix bug in add_to_pagemap, require aligned-length reads of + /proc/pid/pagemap + * devscgroup: make white list more compact in some cases + * devscgroup: check for device permissions at mount time + * devscgroup: relax task to dev_cgroup conversion + * devcgroup: make a helper to convert cgroup_subsys_state to + devs_cgroup + * introduce memory_read_from_buffer() + * lib: export bitrev16 + * rtc-ds1374: rename device to just "ds1374" + * Fix various old email addresses for dwmw2 + * uml: PATH_MAX needs limits.h + * uml: stub needs to tolerate SIGWINCH + * uml: memcpy export needs to follow host declaration + * uml: deal with inaccessible address space start + * uml: remove a duplicate include + * uml: deal with host time going backwards + * doc: update to URL and status of kernel-docs.txt entry + * fujitsu-laptop: autoload module on Lifebook P1510D + * nommu: fix kobjsize() for SLOB and SLUB + * m68k: enable CONFIG_COMPAT_BRK by default + * brk: make sys_brk() honor COMPAT_BRK when computing lower bound + * drivers/char/ip2: fix Kconfig after ip2/ip2main merge + * edd: fix incorrect return of 1 from module_init + * eCryptfs: remove unnecessary page decrypt call + * update checkpatch.pl to version 0.19 + * serial: fix driver_name conflicts + * hugetlb: fix lockdep error + * modedb: fix incorrect sync and vmode flags for CVT modes + * frv: don't offer BINFMT_FLAT + * cpusets: fix and update Documentation + * md: do not compute parity unless it is on a failed drive + * md: fix uninitialized use of mddev->recovery_wait + * md: fix prexor vs sync_request race + * spi: fix refcount-related spidev oops-on-rmmod + * KVM: migrate PIT timer + * IB/ipath: Fix SM trap forwarding + * KVM: ppc: Report bad GFNs + * KVM: ppc: Use a read lock around MMU operations, and release it on + error + * KVM: ppc: Remove unmatched kunmap() call + * KVM: ppc: add lwzx/stwz emulation + * KVM: ppc: Remove duplicate function + * IB/ehca: Reject send WRs only for RESET, INIT and RTR state + * KVM: s390: Fix race condition in kvm_s390_handle_wait + * KVM: s390: Send program check on access error + * KVM: s390: fix interrupt delivery + * KVM: s390: handle machine checks when guest is running + * KVM: s390: fix locking order problem in enable_sie + * KVM: s390: use yield instead of schedule to implement diag 0x44 + * KVM: x86 emulator: fix hypercall return value on AMD + * KVM: ia64: fix zero extending for mmio ld1/2/4 emulation in KVM + * [MTD] m25p80.c mutex unlock fix + * sound: emu10k1 - fix system hang with Audigy2 ZS Notebook PCMCIA + card + * Input: i8042 - add Fujitsu-Siemens Amilo Pro V2030 to nomux table + * Input: pcspkr - remove negative dependency on snd-pcsp + * mmc: Fix crash in mmc_block on 64-bit + * x86/PCI: add workaround for bug in ASUS A7V600 BIOS (rev 1005) + * ARM: OMAP2: Clean-up CONFIG_PM in Makefile + * PCI/x86: fix up PCI stuff so that PCI_GOANY supports OLPC + * doc: add suggestions about good practises for maintainers + * asn1: additional sanity checking during BER decoding + * Add 'rd' alias to new brd ramdisk driver + * x86: fix CONFIG_NONPROMISC_DEVMEM prompt and help text + * FRV: ip_fast_csum() requires a memory clobber on its inline asm + * PNP: skip UNSET MEM resources as well as DISABLED ones + * Fix divide by zero error in build_clear_page() and build_copy_page() + * [MIPS] Fix typo in header guard + * [MIPS] Fix build error - Delete debugging crap that crept in with + CMP + * [MIPS] Add accessors for random register. + * [MIPS] IP27: misc fixes + * [MIPS] IP27: Fix clockevent setup + * [MIPS] IP27: Fix bootmem memory setup + * [MIPS] remove CONFIG_CPU_R4000 line from Makefile + * [MIPS] Fix check for valid stack pointer during backtrace + * [MIPS] Add missing braces to pte_mkyoung + * [MIPS] R4700: Fix build_tlb_probe_entry + * [MIPS] Alchemy: dbdma: add API to delete custom DDMA device ids. + * [MIPS] Alchemy: export get_au1x00_speed for modules + * libata: fix G5 SATA broken on -rc5 + * V4L/DVB (8001): dib0070: fix dib0070_attach when + !CONFIG_DVB_TUNER_DIB0070 + * V4L/DVB (8000): tda827x: fix NULL pointer in tda827xa_lna_gain + * V4L/DVB (7990): Fix entry for PowerColor RA 330 and make it run with + firmware version 2.7 + * V4L/DVB (7983): tda18271_calc_rf_cal must return the return value of + tda18271_lookup_map + * V4L/DVB (7978): cx18: explicitly test for XC2028 tuner + * V4L/DVB (7977): cx18: fix init order and remove duplicate + open_on_first_use. + * V4L/DVB (7975): saa7134_empress + * V4L/DVB (7974): fix MEDIA_TUNER && FW_LOADER build error + * V4L/DVB (7972): or51132.c: unaligned + * V4L/DVB (7971): usb: unaligned + * V4L/DVB (7970): mix trivial endianness annotations + * V4L/DVB (7969): m920x: unaligned access + * V4L/DVB (7968): zoran: endianness annotations + * V4L/DVB (7967): bt8xx: unaligned access + * V4L/DVB (7966): cx18: direct dereferencing of iomem + * V4L/DVB (7965): annotate bcx_riscmem + * V4L/DVB (7964): cx18 iomem annotations + * V4L/DVB (7963): ivtv: trivial annotations + * V4L/DVB (7962): ttusb endianness annotations and fixes + * V4L/DVB (7961): fix endianness bug in dib0700_devices.c + * V4L/DVB (7960): net: endianness annotations + * V4L/DVB (7959): endianness fix in flexcop-usb.c + * V4L/DVB (7958): fix unaligned access in av7110.c + * V4L/DVB (7957): fix the roothole in av7110_av.c + * V4L/DVB (7956): cinergyT2: endianness annotations, endianness and + race fixes + * V4L/DVB (7166): [v4l] Add new user class controls and deprecate + others + * V4L/DVB (7944): tuner-xc2028: use hybrid_tuner_request_state + * V4L/DVB (7943): tuner: add macro, hybrid_tuner_report_instance_count + * V4L/DVB (7934): cx18: move gpio_dir/val statics to the cx18 struct. + * V4L/DVB (7932): cx18: mark Compro H900 as fully supported. + * V4L/DVB (7931): cx18: allow for simultaneous digital and analog + capture + * V4L/DVB (7930): ivtv: bump version to 1.3.0. + * V4L/DVB (7928): cx18: fix audio registers 808 and 80c + * V4L/DVB (7925): cx18: ensure that the xceive pin is always asserted + on init. + * V4L/DVB (7922): tuner-simple: fix tuner_warn() induced kernel oops + in simple_tuner_attach() + * V4L/DVB (7919): VIDEO_AU0828 does not depend on VIDEO_DEV + * V4L/DVB (7918): au0828: remove irrelevent analog tuner standby code + * V4L/DVB (7916): dib7000p: fix dib7000p_attach when + !CONFIG_DVB_DIB7000P + * V4L/DVB (7911): Remove v4l2_video_std_fps prototype declaration + * V4L/DVB (7910): usb: input layer dependency fixes + * V4L/DVB (7908): always enter drivers/media/video/ + * V4L/DVB (7906): tuners/mxl5005s.c: don't define variables for enums + * V4L/DVB (7905): check_v4l2 should return -EINVAL on error + * V4L/DVB (7904): v4l/tuner-core: consistent handling of return values + * V4L/DVB (7903): gp8psk_power_ctrl should return negative errors + * V4L/DVB (7902): fix handling of tea5761_autodetection return value + * V4L/DVB (7901): zoran: use correct type for CPU flags + * V4L/DVB (7885): ivtv/cx18: add compat_ioctl entries + * [MTD] [MAPS] Fix cmdlineparse handling in mapping files + * Linux 2.6.26-rc5 + * l2tp: Fix possible oops if transmitting or receiving when tunnel + goes down + * tcp: Fix for race due to temporary drop of the socket lock in + skb_splice_bits. + * tcp: Increment OUTRSTS in tcp_send_active_reset() + * raw: Raw socket leak. + * lt2p: Fix possible WARN_ON from socket code when UDP socket is + closed + * USB ID for Philips CPWUA054/00 Wireless USB Adapter 11g + * ssb: Fix context assertion in ssb_pcicore_dev_irqvecs_enable + * libertas: fix command size for CMD_802_11_SUBSCRIBE_EVENT + * ipw2200: expire and use oldest BSS on adhoc create + * airo warning fix + * b43legacy: Fix controller restart crash + * sctp: Fix ECN markings for IPv6 + * sctp: Flush the queue only once during fast retransmit. + * sctp: Start T3-RTX timer when fast retransmitting lowest TSN + * sctp: Correctly implement Fast Recovery cwnd manipulations. + * sctp: Move sctp_v4_dst_saddr out of loop + * sctp: retran_path update bug fix + * ARM: OMAP: Remove duplicate PRM defines, use + prm_read/write_mod_reg() + * tcp: fix skb vs fack_count out-of-sync condition + * sunhme: Cleanup use of deprecated calls to save_and_cli and + restore_flags. + * xfrm: xfrm_algo: correct usage of RIPEMD-160 + * ARM: OMAP: Remove unused duplicate 3430 PRM defines, make some local + * [IPV6]: Do not change protocol for UDPv6 sockets with pending sent + data. + * [IPV6]: inet_sk(sk)->cork.opt leak + * [IPV6]: Do not change protocol for raw IPv6 sockets. + * [IPV6] NETNS: Handle ancillary data in appropriate namespace. + * [IPV6]: Check outgoing interface even if source address is + unspecified. + * [IPV6]: Fix the data length of get destination options with short + length + * [IPV6]: Fix the return value of get destination options with NULL + data pointer + * [IPV6] ADDRCONF: Allow longer lifetime on 64bit archs. + * [IPV4] TUNNEL4: Fix incoming packet length check for inter-protocol + tunnel. + * [IPV6] TUNNEL6: Fix incoming packet length check for inter-protocol + tunnel. + * [IPV6] ADDRCONF: Check range of prefix length + * [IPV6] UDP: Possible dst leak in udpv6_sendmsg. + * [SCTP]: Fix NULL dereference of asoc. + * ARM: OMAP: Remove cm_rmw_reg_bits() + * tcp: Fix inconsistency source (CA_Open only when !tcp_left_out(tp)) + * ARM: OMAP: No functions in headers, make them inline + * ARM: OMAP: Remove __atribute__(unused), use inline instead of + __inline__ + * Fix uart_set_ldisc() function type + * netfilter: nf_conntrack_ipv6: fix inconsistent lock state in + nf_ct_frag6_gather() + * netfilter: xt_connlimit: fix accouning when receive RST packet in + ESTABLISHED state + * [MTD] [NAND] pxa: fix incorrect calling of pxa3xx_nand_config() on + resume path + * Smack: fuse mount hang fix + * bogus format in ip6mr + * celleb_scc_pciex endianness misannotations + * mpc52xx_gpio iomem annotations + * s2io iomem annotations + * cifs endianness fixes + * isp1760-if iomem annotations + * cdc-wdm endianness fixes + * usb/c67x00 endianness annotations + * ibmaem endianness annotations + * x86, fpu: fix CONFIG_PREEMPT=y corruption of application's FPU stack + * suspend-vs-iommu: prevent suspend if we could not resume + * x86: section mismatch fix + * x86: fix Xorg crash with xf86MapVidMem error + * x86: fix pointer type warning in arch/x86/mm/init_64.c:early_memtest + * x86: fix bad pmd ffff810000207xxx(9090909090909090) + * x86: ioremap fix failing nesting check + * x86: fix broken math-emu with lazy allocation of fpu area + * x86: enable preemption in delay + * x86: disable preemption in native_smp_prepare_cpus + * x86: fix APIC warning on 32bit v2 + * libata-sff: Fix oops reported in kerneloops.org for pnp devices with + no ctl + * libata: kill unused constants + * sata_mv: PHY_MODE4 cleanups + * [libata] ata_piix: more acer short cable quirks + * [libata] ACPI: Properly handle bay devices in dock stations + * [ALSA] hda - COMPAL IFL90/JFL-92 laptop quirk + * ARM: OMAP: Do not mark function prototypes as __init + * ARM: OMAP: Remove trailing white space from id.c + * route: Remove unused ifa_anycast field + * netlink: Improve returned error codes + * route: Mark unused routing attributes as such + * route: Mark unused route cache flags as such. + * ARM: OMAP: Remove space before tab in clock34xx.c + * net_dma: remove duplicate assignment in dma_skb_copy_datagram_iovec + * net: neighbour table ABI problem + * ARM: OMAP: Remove unnecessary include from clock.c + * bridge: update URL + * sparc: switch /proc/led to seq_file + * irda: Sock leak on error path in irda_create. + * ax25: Fix NULL pointer dereference and lockup. + * bluetooth: rfcomm_dev_state_change deadlock fix + * ARM: OMAP: Rename DMA end_type to be omap specific + * serial_core: uart_set_ldisc infrastructure + * [ALSA] hda - Fix resume of auto-config mode with Realtek codecs + * sh: Add defconfig for RSK7203. + * sh: Update SE7206 defconfig. + * Blackfin arch: fixup warnings with the new cplb saved values + * Blackfin Serial Driver: Clean up BF54x macro in blackfin UART + driver. + * PNP: mark resources that conflict with PCI devices "disabled" + * mmc_spi: mmc_spi.h should include linux/interrupts.h + * [ARM] pxa: fix tosa.c build error + * [ARM] 5067/1: _raw_write_can_lock macro bugfix + * [ARM] 5070/1: pxa: add GPIO104_PSKTSEL to pxa27x MFP configuration + * [ARM] 5068/1: PXA2xx Additional gpio definitions + * [ARM] 5066/2: EM-X270: Fix DM9000 IRQ flags initialisation + * [ARM] 5065/2: CM-X270: Fix DM9000 IRQ flags initialisation + * suspend-vs-iommu: prevent suspend if we could not resume + * x86: pci-dma.c: use __GFP_NO_OOM instead of __GFP_NORETRY + * pci, x86: add workaround for bug in ASUS A7V600 BIOS (rev 1005) + * [CRYPTO] cts: Init SG tables + * sh: Disable 4KSTACKS on nommu. + * sh: fix miscompilation of ip_fast_csum with gcc >= 4.3 + * sh: module.c use kernel unaligned helpers + * sh/kernel/cpu/irq/intc-sh5.c build fix + * [ARM] 5062/1: pxa: remove unused definition of + CONFIG_ARCH_COTULLA_IDP + * [ARM] 5060/1: remove unnecessary include of asm/io.h + * [ARM] fix AT91 include loops + * capabilities: remain source compatible with 32-bit raw legacy + capability support. + * kbuild: fix $(src) assignmnet with external modules + * 8250 Serial Driver: revert extra IRQ flag definition patch + * Blackfin arch: update anomaly headers from toolchain trunk + * Blackfin arch: Remove bad and usless code + * Blackfin arch: Fix bug - set corret SSEL and IRQ to enable AD7877 on + BF527 + * [POWERPC] Fix DMA nodes in the MPC8610 HPCD device tree + * [POWERPC] Export empty_zero_page and copy_page in arch/ppc + * [POWERPC] Add "memory" clobber to MMIO accessors + * [netdrvr] tulip: oops in tulip_interrupt when hibernating with + swsusp/suspend2 + * atl1: fix 4G memory corruption bug + * ucc_geth_ethtool: Add a missing HW stats counter + * ucc_geth_ethtool: Fix typo + * virtio: fix delayed xmit of packet and freeing of old packets. + * virtio: fix virtio_net xmit of freed skb bug + * myri10ge: update driver version + * sc92031: remove bogus unlikely() + * [netdrvr] CS89X0: Add cleanup for dma after fail + * [netdrvr] sfc: Report XAUI link down at default log level + * [PATCH 3/3] ocfs2/net: Silence build warnings + * [PATCH 2/3] ocfs2/dlm: Silence build warnings + * [PATCH 1/3] ocfs2/net: Silence build warnings + * ocfs2: Rename 'user_stack' plugin structure to 'ocfs2_user_plugin' + * Mark 'scripts/decodecode' executable + * [SCSI] qla2xxx: Update version number to 8.02.01-k4. + * [SCSI] qla2xxx: Correct handling of AENs postings for vports. + * [SCSI] qla2xxx: Revert "qla2xxx: Use proper HA during asynchronous + event handling." + * drivers/watchdog/geodewdt.c: build fix + * PCI: fix rpadlpar pci hotplug driver sysfs usage + * ahci: change the Device IDs of nvidia MCP7B AHCI controller in + ahci.c + * [libata] sata_fsl: Fix broken driver, add port multiplier (PMP) + support + * libata: SRST can't be trusted on PMP sil3726 + * libata: fix libata-scsi kernel-doc notation + * ata: Convert to static DEFINE_SPINLOCK(lock) + * ata_piix: fix macbook ich8m problems + * sata_mv: implement SoC guideline SATA_S11 + * sata_mv: workaround for 60x1 errata sata13 + * sata_mv: nuke unreleased GenIIe revisions + * sata_mv: PHY_MODEx errata fixes + * sata_mv: move SOC_FLAG to hpriv + * [ALSA] hda - Fix model for LG LS75 laptop + * acpi: fix sparse const errors + * Input: rename SW_RADIO to SW_RFKILL_ALL + * Input: gtco - fix double kfree in error handling path + * [ALSA] hda - Fix mic input on HP2133 + * [ALSA] ac97 - Fix ASUS A9T laptop output + * llc: Fix double accounting of received packets + * sparc64: IO accessors fix + * [S390] Update default configuration. + * [S390] disassembler: fix idte instruction format. + * [S390] tape: fix race with stack local wait_queue_head_t. + * [S390] 3270: fix race with stack local wait_queue_head_t. + * [S390] dasd: use a generic wait_queue for sleep_on + * [S390] sclp_vt220: fix scheduling while atomic bug. + * [S390] showmem: Only walk spanned pages. + * [S390] appldata: prevent cpu hotplug when walking cpu_online_map. + * [S390] Fix section mismatch warnings. + * [S390] s390 types: make dma_addr_t 64 bit capable + * [S390] tape: Fix race condition in tape block device driver + * [S390] fix sparsemem related compile error with allnoconfig on s390 + * lguest: notify on empty + * virtio: force callback on empty. + * virtio_blk: fix endianess annotations + * virtio_config: fix len calculation of config elements + * virtio_net: another race with virtio_net and enable_cb + * virtio: An entropy device, as suggested by hpa. + * virtio_blk: allow read-only disks + * lguest: fix ugly in /proc/interrupts + * virtio: set device index in common code. + * virtio: virtio_pci should not set bus_id. + * virtio: bus_id for devices should contain 'virtio' + * Fix crash in virtio_blk during modprobe ; rmmod ; modprobe + * lguest: use ioremap_cache, not ioremap + * driver-core: prepare for 2.6.27 api change by adding dev_set_name + * Revert "USB: EHCI: fix performance regression" + * USB: fsl_usb2_udc: fix recursive lock + * USB: usb-serial: option: Don't match Huawei driver CD images + * USB: pl2303: another product ID + * USB: add another scanner quirk + * USB: Add support for ROKR W5 in unusual_devs.h + * USB: Fix M600i unusual_devs entry + * USB: usb-storage: unusual_devs update for Cypress ATACB + * USB: EHCI: fix performance regression + * USB: EHCI: fix bug in Iso scheduling + * USB: EHCI: fix remote-wakeup regression + * USB: EHCI: suppress unwanted error messages + * USB: EHCI: fix up root-hub TT mess + * USB: add all configs to the "descriptors" attribute + * USB: fix possible deadlock involving sysfs attributes + * USB: Firmware loader driver for USB Apple iSight camera + * USB: FTDI_SIO : Add support for Matrix Orbital PID Range + * [CPUFREQ] fix double unlock of cpu_policy_rwsem in + drivers/cpufreq/cpufreq.c + * sched: re-tune NUMA topologies + * netfilter: nf_conntrack_expect: fix error path unwind in + nf_conntrack_expect_init() + * sched: stop wake_affine from causing serious imbalance + * sched: fix sched_clock_cpu() + * revert ("sched: fair-group: SMP-nice for group scheduling") + * sched: cleanup + * show_schedstat(): fix memleak + * sched: unite unlikely pairs in rt_policy() and schedule_debug() + * revert ("sched: fair: weight calculations") + * bluetooth: fix locking bug in the rfcomm socket cleanup handling + * mac80211: fix alignment issue with compare_ether_addr() + * mac80211: Fix for NULL pointer dereference in sta_info_get() + * mac80211: fix a typo in ieee80211_handle_filtered_frame comment + * rndis_wlan: add missing range check for power_output modparam + * iwlwifi: fix rate scale TLC column selection bug + * iwlwifi: fix exit from stay_in_table state + * rndis_wlan: Make connections to TKIP PSK networks work + * mac80211 : Fixes the status message for iwconfig + * rt2x00: Use atomic interface iteration in irq context + * rt2x00: Reset antenna RSSI after switch + * rt2x00: Don't count retries as failure + * rt2x00: Fix memleak in tx() path + * mac80211: reorder channel and freq reporting in wext scan report + * b43: Fix controller restart crash + * mac80211: fix ieee80211_rx_bss_put/get imbalance + * net/mac80211: always true conditionals + * b43: Upload both beacon templates on initial load + * rtl8180: fix wrong parameter in grf5101_rf_set_channel + * rtl8180: fix wrong parameter in max2820_rf_set_channel + * rtl8180: fix wrong parameter in sa2400_rf_set_channel + * rtl8180: avoid NULL dereference in max2820_rf_set_channel + * Input: pxa27x_keypad - miscellaneous fixes + * kgdbts: Use HW breakpoints with CONFIG_DEBUG_RODATA + * kgdb: use common ascii helpers and put_unaligned_be32 helper + * Fix FRV minimum slab/kmalloc alignment + * FRV: Specify the minimum slab/kmalloc alignment + * MN10300: Fix typo in header guard + * cfq-iosched: fix RCU problem in cfq_cic_lookup() + * block: make blktrace use per-cpu buffers for message notes + * Added in elevator switch message to blktrace stream + * Added in MESSAGE notes for blktraces + * block: reorder cfq_queue to save space on 64bit builds + * block: Move the second call to get_request to the end of the loop + * splice: handle try_to_release_page() failure + * splice: fix sendfile() issue with relay + * Input: atkbd - mark keyboard as disabled when suspending/unloading + * pciehp: add message about pciehp_slot_with_bus option + * pci hotplug core: add check of duplicate slot name + * pciehp: move msleep after power off + * pciehp: poll cmd completion if hotplug interrupt is disabled + * pciehp: fix slow probing + * pciehp: fix NULL dereference in interrupt handler + * shpchp: add message about shpchp_slot_with_bus option + * [POWERPC] pasemi: update pasemi_defconfig, enable electra_cf + * electra_cf: Add MODULE_DEVICE_TABLE() + * [IA64] Workaround for RSE issue + * LSM: remove stale web site from MAINTAINERS + * [SCSI] ibmvscsi: Non SCSI error status fixup + * [SCSI] fusion mpt: fix target missing after resetting external raid + * ck804rom: fix driver_data in probe table. + * dccp ccid-3: Fix "t_ipi explosion" bug + * dccp: Fix to handle short sequence numbers packet correctly + * avr32: Fix cpufreq oops when ondemand governor is default + * Input: apanel - remove duplicate include + * Input: wm9713 - support five wire panels + * Input: wm97xx-core - fix race on PHY init + * Input: wm97xx-core - fix driver name + * Input: wm97xx-core - report a phys for WM97xx touchscreens + * Input: i8042 - make sure Dritek quirk is invoked at resume + * MAINTAINERS: Update NetEffect (iw_nes) entry + * IB/ipath: Fix device capability flags + * IB/ipath: Avoid test_bit() on u64 SDMA status value + * ext4: enable barriers by default + * jbd2: Fix barrier fallback code to re-lock the buffer head + * ext4: Display the journal_async_commit mount option in /proc/mounts + * jbd2: If a journal checksum error is detected, propagate the error + to ext4 + * jbd2: Fix memory leak when verifying checksums in the journal + * ext4: fix online resize bug + * ext4: Fix uninit block group initialization with FLEX_BG + * ext4: Fix use of uninitialized data with debug enabled. + * avr32: Update defconfigs + * avr32: export strnlen_user + * avr32: export copy_page + * disable most mode changes on non-unix/non-cifsacl mounts + * PCI: use dev_to_node in pci_call_probe + * [SCSI] fix intermittent oops in scsi_bus_uevent + * [CIFS] Correct incorrect obscure open flag + * [CIFS] warn if both dynperm and cifsacl mount options specified + * silently ignore ownership changes unless unix extensions are enabled + or we're faking uid changes + * [CIFS] remove trailing whitespace + * when creating new inodes, use file_mode/dir_mode exclusively on + mount without unix extensions + * on non-posix shares, clear write bits in mode when ATTR_READONLY is + set + * [CIFS] remove unused variables + * PCI: Correct last two HP entries in the bfsort whitelist + * PCI: don't enable ASPM on devices with mixed PCIe/PCI functions + * Input: i8042 - add Dritek quirk for Acer TravelMate 660 + * Blackfin arch: Fix typo. it should be _outsw_8 + * Blackfin arch: Cleanup no functional changes + * [SCSI] qla2xxx: Update version number to 8.02.01-k3. + * [SCSI] qla2xxx: Revert "qla2xxx: Validate mid-layer 'underflow' + during check-condition handling." + * [SCSI] qla2xxx: Disable local-interrupts while polling for RISC + status. + * [SCSI] qla2xxx: Extend the 'fw_dump' SYSFS node the ability to + initiate a firmware dump. + * [SCSI] qla2xxx: Don't depend on mailbox return values while enabling + FCE tracing. + * [SCSI] qla2xxx: Convert vport_sem to a mutex + * [SCSI] qla2xxx: firmware semaphore to mutex + * [SCSI] qla2xxx: Correct locking within MSI-X interrupt handlers. + * [SCSI] qla2xxx: Display driver version at module init-time. + * [SCSI] qla2xxx: Return correct port_type to FC-transport for Vports. + + -- mathias nyman Wed, 09 Jul 2008 11:25:40 +0300 + +kernel-source (2.6.26~rc4-osso5) unstable; urgency=low + + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Fixes reset when CMT boot loader kicks in. + * Phonet: fix init/cleanup + * OMAP SSI: Add MODULE_ALIAS() declaration. + * OMAP SSI: Fixes in init section declarations. + * SSI:MCSAAB: Improve use of init/exit sections. + * Declare ssi_pdriver static. + * Remove dead code. + + -- Yauheni Kaliuta Tue, 17 Jun 2008 11:28:34 +0300 + +kernel-source (2.6.26~rc4-osso4) unstable; urgency=low + + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * Move fw sending to interrupt context + + -- Yauheni Kaliuta Mon, 16 Jun 2008 16:52:40 +0300 + +kernel-source (2.6.26~rc4-osso3) unstable; urgency=low + + * New version + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * Fix hci_h4p sysfs removing + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Remove dead PM related code. + * Fixes SSI clocks race condition in McSAAB handshake. + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * ASoC: OMAP: Add audio endpoint and route to FM TX chip in Nokia RX51 + * i2c: add MODULE_ALIAS to twl4030 drivers + * i2c: allow twl modules to be built as modules + * usb: musb: allow usb to be built as module + * usb: musb: add MODULE_ALIAS for udev module loading + * usb: hub: add check for unsupported bus topology + * usb: musb: musb on omap3 has 32 endpoints + * Add simple headphone jack support for RX51 audio + * Add TPA6130A2 support to board-rx51.c + * Add support for TPA6130A2 chip + * I2C: lis302dl: Add selftest functionality + + -- Yauheni Kaliuta Mon, 16 Jun 2008 11:10:59 +0300 + +kernel-source (2.6.26~rc4-osso2) unstable; urgency=low + + * week200824-1 release + + -- Yauheni Kaliuta Thu, 12 Jun 2008 16:16:26 +0300 + +kernel-source (2.6.26~rc4-osso1) unstable; urgency=low + + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Fixes SSI clocks race condition in McSAAB handshake. + * RX51: CONFIG_PHONET=m + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Phonet: fix sysctl when linking statically + * Phonet: add missing __init and __exit to sysctl + * OMAP SSI: remove dead code + * McSAAB: put cmt_cawake_init() to init section + * OMAP SSI: enable ERROR and BREAK detection on open + * OMAP SSI: associates I/O memory to the device + * OMAP SSI: put ssi_release to the exit section + * OMAP SSI: fix clock bug + * Phonet: fix skb kernel panic + * RX51: Enable ASoC audio for RX51 + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * SSI: MCSAAB: Change __REG32() to inl(io_p2v()) + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * ASoC: OMAP: Add machine driver for Nokia RX51 + * ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver + + -- Yauheni Kaliuta Mon, 09 Jun 2008 18:26:06 +0300 + +kernel-source (2.6.26~rc3-osso4) unstable; urgency=low + + * New version + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * SSI: MCSAAB: Change __REG32() to __raw_readl(phys_to_virt()) + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAP SSI device for board-rx51 + * SSI: MCSAAB: Change __REG32() to __raw_readl(phys_to_virt()) + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * I2C: LP5523: Add LED selftest functionality, update to new i2c + driver model + * omap: rx51: section mismatch fix + * usb: musb: charger detection fix + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * SSI: MCSAAB: Change __REG32() to __raw_readl(phys_to_virt()) + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * si4713: Fix set region function to change frequency only when needed + * si4713: Fix set frequency ioctl to proper check power level + * MMC: RX51: Add sysfs file cover_switch + * MMC: RX51: Add card detection irq + * MMC: OMAP: Add slot_name entry to sysfs + * MMC: OMAP: Re-organizing some goto at hsmmc probe + * MMC: OMAP: Readable output for IRQ status register + * MMC: PM: Reset controllers without CONFIG_MMC_OMAP_HS + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: Initial MMC support for RX51 + * Add TWL4030 RTC support to board-rx51.c + * RX51: Add cmt_apesleepx gpio-switch + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * musb: there's no need to sysfs notify + * usb: musb: get vbus status for omap2430 and omap3 + * usb charger detection prototype + * si4713: Fix driver probe sequence by adding device id table + * si4713: Change power_level range + * si4713: Remove double range checking when setting power_level + * si4713: Add region selection feature + * si4713: Add antenna tuning value property + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + * I2C: TWL4030 Vibra driver + * I2C: TWL4030: Add get device helper function + * I2C: TWL4030: Fix error handling in MADC driver + * I2C: TWL4030: Remove msleep(1) from MADC driver + * HS OMAP3430 L2 invalidate + * I2C: lis302dl: Add .id_table to i2c_driver struct + * wl1251: implement join ssid command + * wl1251: implement rx path + * wl1251: implement hardware scan + * wl1251: implement tx path + * wl1251: implement mailbox event handling + * wl1251: implement interrupt handling + * wl1251: implement hw initialisation sequence + * I2C: add support for lis302dl accelometer driver + * Add H4+ support for BCM2048b0 bluetooth chip + * rx-51: add wl1251 + * wl1251: add Kconfig and Makefile files + * wl1251: port to mac80211 bands API + * Add wl1251 driver + * ARCH: OMAP: RX51: USB: Do not block sleep + * USB: SERIAL GADGET: Add nokia strings + * USB: GADGET: Add nokia ids to file_storage.c + * USB: SERIAL GADGET: Start using obex function + * USB: COMPOSITE: Support 16 interfaces by default + * OBEX: Introduce f_obex function driver. + * usb serial gadget: use updated framework + * usb serial gadget: generic serial function driver + * usb serial gadget: cdc acm function driver + * usb gadget zero: use updated framework + * usb gadget zero: loopback function driver + * usb gadget zero: sourcesink config driver + * usb gadget: composite gadget framework + * usb gadget support descriptor copying + * usb serial gadget: use new tty glue + * usb serial gadget: modular tty glue + * TSC2005 gpio setup is made by driver. + * si4713: Improve probe function + * si4713: Moved irq field from platform_data to i2c_board_info + * warm reboot detection + * LP5523: Change kconfig from bool to tristate + * si4713: Fix the boot up timeout value + * si4713: Disabled pilot tone feature by default + * si4713: Remove DEFAULT_*_ENABLED macro definitions + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * I2C: add support for lp5523 LED driver + * Add support for Taos tsl2563 ambient light sensor + * si4713: Fix i2c bus address + * rx51: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * USB: OTG: Make otg_tpl come from platform_data + * USB: OTG: Add check for roothub initialization + * USB: OTG: Start using new otg tpl. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * UBIFS: remove assertion + * UBIFS: do not return negative available space + * UBIFS: rename key_ino to key_inum + * UBIFS: rename NC to LPROPS_NC + * UBIFS: make dbg_check_dir_size check nlink as well + * UBIFS: partially get rid of truncation key + * UBIFS: remove format version 2 support + * UBIFS: fix orphan leak on error path + * UBIFS: fix lpt leaks on error path + * UBIFS: add a UUID to super block + * UBIFS: fix extended attributes size + * UBIFS: add file-system checking function + * UBIFS: clean up resource freeing + * UBIFS: remove debugging stuff from tnc.c + * UBIFS: better error message in read_znode + * UBIFS: another gc_lnum recovery fix + * UBIFS: make dbg_tnc_walk non-recursive + * UBIFS: fix Kconfig + * UBIFS: dump creat_sqnum as well + * UBIFS: remove incorrect cond_resched + * UBIFS: add dbg_dump_index + * UBIFS: tweak scan_for_dirty and asserts + * UBIFS: define change_lp() 'no-change' value + * UBIFS: always commit after recovery + * UBIFS: add a comment + * UBIFS: kill orphans in ro mount also + * UBIFS: ubifs-v0.7 + * UBIFS: amend dbg_dump_node + * UBIFS: minor debugging print fix + * UBIFS: fix false assertion allarm in budgeting + * UBIFS: print dead direntry name + * UBIFS: print format version + * UBIFS: do not use -1 offsets + * UBIFS: temporary hack for backward compatibility + * UBIFS: fix bad hash mask bug + * UBIFS: minor print tweaks + * UBIFS: get rid of cpu_to_le64(0) + * UBIFS: rename fmt_vers to fmt_version + * UBIFS: tweak asserts and gc_lnum fix + * UBIFS: move ubifs_validate_entry + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove unnecessary 'if' in bg thread + * UBIFS: fix flags + * UBIFS: rework flags inheritance + * UBIFS: fix gc_lnum recovery + * UBIFS: split out ubifs_fill_super + * UBIFS: mount_ubifs now cleans up its own errors + * UBIFS: get rid of scary lockup warnings + * UBIFS: tweak bg thread + * UBIFS: remove unnecessary cond_resched() + * UBIFS: do not set nice level in bg thread + * UBIFS: use __clear_bit and __set_bit in LPT + * UBIFS: remove unnecessary kzalloc + * UBIFS: use __clear_bit and __set_bit + * UBIFS: use memory barriers in dbg_tnc_check + * UBIFS: comment why we use barriers + * UBIFS: use unlikely in come core TNC functions + * UBIFS: do not use kzalloc unnecesarily + * UBIFS: fix compilation error + * UBIFS: be consistent when comparing pointers with NULL + * UBIFS: cleanup, fix, and improve tnc + * UBIFS: use is_hash_key + * UBIFS: do not validate what is in LNC + * UBIFS: add xentries to LNC + * UBIFS: rename bg thread + * UBIFS: rename JRN to JNL as well + * UBIFS: remove redundant check + * UBIFS: finally remove build.c + * UBIFS: use jnl instead of jrn + * UBIFS: get rid of build.c + * UBIFS: allow multiple blocks per page + * UBIFS: admit that we do not support NFS + * UBIFS: minor renaming + * UBIFS: fix dangling branch handling + * UBIFS: add comment + * UBIFS: ensure readahead is disabled + * UBIFS: comment why 'commit_on_unmount()' is in kill_sb + * UBIFS: make reservation before allocating sequence numbers + * UBIFS: fix misplaced code + * UBIFS: avoid 'dbg_check_key_order()' during replay + * UBIFS: fix telldir and seekdir + * UBIFS: do not forget about mnt_want_write + * UBIFS: change few bits in readdir + * UBIFS: fix memory corruption + * UBIFS: fix bogus assertions + * UBIFS: do not fail in case of bad seeks + * UBIFS: fix hash calculation + * UBIFS: maximum inode size is defined by current key format + * UBIFS: introduce macros for key constants + * UBIFS: limit inode data to block size + * UBIFS: fix returned error code + * UBIFS: fix ia64 compilation warning + * UBIFS: add a comment + * UBIFS: fix collision resolution + * UBIFS: add warning for mmapped file + * UBIFS: page is dirtied only if trunc smaller + * UBIFS: don't forget to release page + * UBIFS: fix printk warnings + * UBIFS: make UBIFS compile on system with non-4KiB pages + * UBIFS: fix "CONFIG_UBIFS_FS_DEBUG_CHKS" is not defined warning + * UBIFS: minor amendments + * UBIFS: default is already n in Kconfig + * UBIFS: get rid of Kconfig.debug + * UBIFS: no need to initialize r->key + * UBIFS: remove unneeded key comparison + * UBIFS: remove memleak and mempressure checks + * UBIFS: add module params to documentation + * UBIFS: do not assume inode size may not be changed meanwhile + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove some amount of assertion + * UBIFS: remove VFS interface checking assertions + * UBIFS: remove module param pretty print + * UBIFS: fix module params + * UBIFS: fix white space + * UBIFS: change check level to bool + * UBIFS: reinstate recovery messages + * UBIFS: add missing check flag checks + * UBIFS: remove 'key' message macros + * UBIFS: fix mmap budgeting + * UBIFS: optimize budgeting a bit + * UBIFS: fix inode budgeting + * UBIFS: making ubifs compile with gcc-3.4 + * UBIFS: fix error path in ubifs_write_end + * UBIFS: change debug control from config to module param + * UBIFS: update cmtime for mmapped writes + * UBIFS: budget for mmapped writes + * UBIFS: tweak min_idx_lebs calculation + * UBIFS: fix error path in ubifs_write_begin() + * UBIFS: add ubifs.txt to Documentation directory + * UBIFS: remove unnecessary locking + * UBIFS: fix device node files + * UBIFS: fix journal size for small partitions + * UBIFS: minor debugging print amendment + * UBIFS: fix warning + * UBIFS: fix comparisons + * UBIFS: rest of dangling branch patch + * UBIFS: fix compilation error + * UBIFS: remove unneeded check + * UBIFS: remove excessive unlikely() + * UBIFS: amend comments + * UBIFS: print error codes + * UBIFS: improve dangling branch detection + * UBIFS: bugfix in TNC + * UBIFS: tweak TNC debugging messages + * UBIFS: ubifs-v0.6 + * UBIFS: keep colliding keys sorted + * UBIFS: print error code before switching to RO mode + * UBIFS: minor change in readdir + * UBIFS: minor TNC clarification + * UBIFS: fix minor inconsistency with free space + * UBIFS: force empty FS to report zero used + * UBIFS: fix free space + * UBIFS: fix bug on error path + * UBIFS: add a TNC comment + * UBIFS: tidy LPT defines + * UBIFS: be more conservative about worst-case compression + * UBIFS: tree height can exceed 64 + * UBIFS: more clarifications for TNC + * UBIFS: random nicifications in tnc + * UBIFS: zap -ENOENT return code from resolve_collision series + * UBIFS: one more TODO for ahunter + * UBIFS: improve znode_lookup comment + * UBIFS: fix freaking TNC bug + * UBIFS: move MIN_COMPR_LEN to ubifs-media.h + * UBIFS: add TODOs for ahunter + * UBIFS: turn znode flags into enum and document them + * UBIFS: improve debugging prints some more + * UBIFS: move dbg_check_idx_size to debug.c + * UBIFS: add force in-the-gap facility + * UBIFS: do not trust znode->iip in dbg_check_znode + * UBIFS: lessen size of tnc.c + * UBIFS: nicify commentaries + * UBIFS: tweak TNC debugging messages + * UBIFS: fix dbg_check_znode() fake alarm + * UBIFS: ubifs-v0.5 + * UBIFS: revise directory size calculation + * UBIFS: add time_gran to dump_node + * UBIFS: allow for dates beyond 2038 + * UBIFS: put time granularity on super block node + * UBIFS: use time granularity consistently + * UBIFS: tweak lprops check + * UBIFS: introduce constants for matches_name() + * UBIFS: do not forget to free LNC on error path + * UBIFS: clean-up and amend matches_name() + * UBIFS: unify variable names in tnc + * UBIFS: remove bogus error + * UBIFS: amend ubifs_tnc_next_ent + * UBIFS: fix and amend debugging stuff + * UBIFS: add a TODO + * UBIFS: get rid of loop in keys_cmp + * UBIFS: optimize TNC + * UBIFS: fix TNC bug + * UBIFS: few minor cleanups + * UBIFS: add TNC dump function + * UBIFS: fix minor bug + * UBIFS: ubifs-v0.4 + * UBIFS: remove xattr_msize + * UBIFS: tweak div64.h inclusion + * UBIFS: tweak debugging + * UBIFS: use clear_nlink() in ubifs_rmdir() + * UBIFS: do not use long long with do_div + * UBIFS: remove padding field from indexing node + * UBIFS: store nanoseconds in inode time stamps + * UBIFS: ubifs-v0.3 + * UBIFS: zero out unused fileds + * UBIFS: fix bud race + * UBIFS: fix minor leak on error path + * UBIFS: fix bad lprops bug + * UBIFS: fix lsave_cnt validation + * UBIFS: add missing debug message + * UBIFS: report f_bavail correctly + * UBIFS: fix statfs reporting + * UBIFS: remove compatibility stuff + * UBIFS: don't wbuf_add_ino on error path, it overruns the buffer + * UBIFS: fix leb write wrapper + * UBIFS: split lpt.c + * UBIFS: intorduce leb write and unmap wrappers + * UBIFS: move dbg_dump_pnode to debug.c + * UBIFS: minor cleanup in lpt.c + * UBIFS: fix kernel-doc warnings + * UBIFS: fix my name + * UBIFS: remove check_volume_empty() + * UBIFS: turn recovery messages into mount messages + * UBIFS: remove xattr debugging messages + * UBIFS: fix lprops mismatch + * UBIFS: fix compolation error + * UBIFS: dump stack when switching to RO mode + * UBIFS: calc lpt_hght correctly + * UBIFS: add some ro_media checks + * UBIFS: fix checkpatch.pl warnings + * UBIFS: minor renames + * UBIFS: add some comments + * UBIFS: fix some spelling + * UBIFS: sparse fixes + * UBIFS: do ubifs.h TODOs + * UBIFS: remove budget TODOs + * UBIFS: do journal TODOs + * UBIFS: use kfree via debug function in debug.c + * UBIFS: fix minor TNC bug + * UBIFS: do build TODOs + * UBIFS: do/remove super TODOs + * UBIFS: remove gc TODOs + * UBIFS: do io.c TODOs + * UBIFS: do ioctl TODO + * UBIFS: do sb.c TODO + * UBIFS: do replay TODO + * UBIFS: do dir.c TODOs + * UBIFS: make sure inode is directory before checking size + * UBIFS: fix new ubifs_tnc_next_ent call + * UBIFS: remove TODOs in file.c + * UBIFS: remove msize + * UBIFS: last tnc TODOs + * UBIFS: tnc TODOs + * UBIFS: do some more tnc TODOs + * UBIFS: add directory i_size check function + * UBIFS: remove fast_umount sb flag + * UBIFS: make reported block size 4K again + * UBIFS: fix the code for 2.6.21 + * UBIFS: do some TODOs in tnc + * UBIFS: do some TODO's, remove others + * UBIFS: report 512 as block size + * UBIFS: directory inodes do not have any attached data + * UBIFS: fix screwed budgeting + * UBIFS: rework stat() reports + * UBIFS: fix directory size calculation + * UBIFS: msize is not used + * UBIFS: let it compile + * UBIFS: remove incorrect msize validation + * UBIFS: fix incorrect error returning + * UBIFS: be more verbose when printing errors + * UBIFS: amend Kconfig + * UBIFS: fix compatibility stuff + * UBIFS: add crypto dependency to Kconfig + * UBIFS: implement TODO in io.c + * UBIFS: make min_io_size at least 8 + * UBIFS: remove extra argument + * UBIFS: remove a TODO + * UBIFS: fix a bug in check_namespace() + * UBIFS: fix WARNING: modpost: Found 1 section mismatch(es) + * UBIFS: fix missing orphan bug + * UBIFS: do not support ACLs + * UBIFS: ubifs-v0.2 + * UBIFS: implement xattr handlers + * UBIFS: support xattrs in TNC + * UBIFS: support xattrs in journal + * UBIFS: enlarge compression threshold + * UBIFS: remove bad code + * UBIFS: introduce xentry + * UBIFS: add dummy xattr calls + * UBIFS: break on-media format + * UBIFS: tiny clean up + * UBIFS: cleanup direntry validation + * UBIFS: add a TODO + * UBIFS: add helper function for inode rmoval + * UBIFS: use __func__ instead of __FUNCTION__ + * UBIFS: use ino_t instead of unsigned long + * UBIFS: fix dirty_ino_cnt + * UBIFS: remove excessive code + * UBIFS: remove ubifs.h from include/linux/Kbuild + * UBIFS: fix new struct inode object initialization + * UBIFS: fix compilation warning + * UBIFS: improve operations in dir.c + * UBIFS: remove redundant check + * UBIFS: tweak debugging messages + * UBIFS: make some pointers const + * UBIFS: introduce xattr-related fields to inode + * UBIFS: implement a bunch of TODOs + * UBIFS: tweak journal interface + * UBIFS: make ubifs_set_i_bytes non-inline + * UBIFS: make new_ubifs_inode global + * UBIFS: rename and make macro global + * UBIFS: add a couple of TODOs + * UBIFS: fix debugging macro + * UBIFS: clean up key.h some more + * UBIFS: minor key func cleanup + * UBIFS: unify replay entries names + * UBIFS: cleanup qstr names + * UBIFS: clean up ino_t usage + * UBIFS: minor amendments in budgeting + * UBIFS: Kconfig nicifications + * UBIFS: amend copyright headers + * UBIFS: switch to new VFS interface + * UBIFS: fix default comprssor + * UBIFS: stop using iget() + * UBIFS: optimize fastpath budgeting + * UBIFS: add assertion + * UBIFS: fix budgeting + * UBIFS: do not retry in write_page() + * UBIFS: fix budgeting holes + * UBIFS: clean-up compat stuff a bit + * UBIFS: use DIV_ROUND_UP + * UBIFS: rename protecting macros + * UBIFS: remove sysfs hack + * UBIFS: print a message when fail to open UBI volume + * UBIFS: set default fanout to 8 + * UBIFS: remove leftovers + * UBIFS: remove fanout mount option + * UBIFS: rename header files + * UBIFS: store big_lpt in sup->flags + * UBIFS: store fast/norm unmount in superblock + * UBIFS: add default reserved pool size (5%, max 5 MiB) + * UBIFS: update dbg_dump_node() to support reserved pool + * UBIFS: add reserved pool support + * UBIFS: add a check for creat_sqnum + * UBIFS: reduce index node size + * UBIFS: add comment + * UBIFS: record inode creation sequence number + * UBIFS: switch to little-endian + * UBIFS: add on-flash format version + * UBIFS: use qstr for name / length pairs + * UBIFS: correct directory size calculation + * UBIFS: tidy scan slightly + * UBIFS: remove compression and key hash mount options + * UBIFS: call bdi_init + * UBIFS: initial commit + * do_mounts: allow UBI root device name + * VFS: export sync_sb_inodes + * VFS: move inode_lock into sync_sb_inodes + * RX51: Enable mcsaab + rtc + * Added support for PM debug filesystem entries + * Made serial awake time user programmable + * Added sleep support to UART + * 34XX: PM: Workaround for mmc + * 34XX: PM: Workaround to mask uart clocks when checking active clocks + * 34XX: PM: Workaround for non-existing usb clockdomain + * 34XX: PM: Workaround to disable mmc + * 34XX: PM: Workaround to check wether any fck is active before + entering sleep + * 34XX: PM: Workaround to reset all wkdeps + * 34XX: PM: Workaround to enable autoidle for clocks and plls + * PRCM: Workaround for pwrdn_x control + * 34XX: PM: Workaround for missing smartreflex driver + * 34XX: PM: Workaround for uart clocks + * 34XX: PM: Workaround for taking care of gpio clocks + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * si4713: Fix set region function to change frequency only when needed + * si4713: Fix set frequency ioctl to proper check power level + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * MMC: RX51: Add sysfs file cover_switch + * MMC: RX51: Add card detection irq + * MMC: OMAP: Add slot_name entry to sysfs + * MMC: OMAP: Re-organizing some goto at hsmmc probe + * MMC: OMAP: Readable output for IRQ status register + * MMC: PM: Reset controllers without CONFIG_MMC_OMAP_HS + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: Initial MMC support for RX51 + * Add TWL4030 RTC support to board-rx51.c + * ARM: OMAP: OneNAND: machine_is_nokia_rx51 is not always a constant + * ARM: OMAP: OneNAND: Enable interrupt use (pre-B1 and later only) + * ARM: OMAP: OneNAND: Use DMA on OMAP3 + * ARM: OMAP: OneNAND: Print address information for ECC errors + * ARM: OMAP: OneNAND: Add synchronous write timings + * ARM: OMAP: OneNAND: Allow for high frequency (>66MHz) + * Allow for controller errors when reading + * ARM: OMAP: OneNAND: Disable wait-monitoring for OMAP3 + * RX51: Remove TWL4030 IRQ definitions from board-rx51.h + * ARM: OMAP: OneNAND for rx51-base branch + * RX51: Basic support for Nokia RX-51 + * OMAP3: ack spurious IRQs in get_irqnr_and_base + * MACH-OMAP2: MCBSP: Add support for mcbsp on mach-omap2 + * Fix mcbsp clock definition on clock34xx.h + * ARM: OMAP: Fix 24xx mcbsp clocks + * MACH-OMAP1: MCBSP: Add support for mcbsp on mach-omap1 + * PLAT-OMAP: MCBSP: Transform into platform driver + * ARM: OMAP: Use omap_globals for CPU detection for multi-omap + * ARM: OMAP: Change to use CM offsets for clocks for multi-omap + * ARM: OMAP: Remove OMAP_CM_REGADDR for multi-boot + * ARM: OMAP: Remove OMAP_PRM_REGADDR + * ARM: OMAP: Introduce omap_globals and prcm access functions for + multi-omap + * ARM: OMAP: Remove __REG access for multi-omap + * musb_hdrc: Change __REG access to omap_read/write for multi-boot + * ARM: OMAP: Change __REG access to omap/read write for traffic + controller + * USB: Change omap USB code to use omap_read/write instead of __REG + for multi-omap + * CF: Change omap_cf.c to use omap_readw/writew instead of __REG for + multi-omap + * ARM: OMAP: Remove omap_sram_patch_va + * ARM: OMAP: Split sram24xx.S into sram242x.S and sram243x.S + * ARM: OMAP: Split sleep24xx.S into sleep242x.S and sleep243x.S + * ARM: OMAP: Enable framebuffer for omap_3430sdp_defconfig + * ARM: OMAP: Update omap_3430sdp_defconfig + * ARM: OMAP: beagleboard defconfig: increase FB DMA size to 4MB so the + 1024x768x24 default fits + * OMAP3 clockdomains: include D2D clockdomain on 34xx ES2+ + * OMAP3 PM: convert open-coded iterator to use pwrdm_for_each_clkdm() + * DSP Gateway: remove manual clockdomain/powerdomain tweaking + * 24xx PM: convert pm24xx.c code to use pwrdm/clkdm interfaces + * clockdomain: add clkdm_get_pwrdm() + * powerdomain: add pwrdm_get_mem_bank_count() + * 24xx clock: add missing SSI L4 interface clock + * 24xx clock: associate clocks with clockdomains + * Driver for omap34xx temperature sensor. second version. + * Add SDTI device for OMAP3 and unify address definitions for OMAP1 + and OMAP2. + * Remove config conditional tcm825x_regs_* declarations + * OMAP3 Beagle: enable fb in defconfig + * OMAP3 Beagle: enable usb in defconfig + * OMAP3 Beagle: enable rtc in defconfig + * OMAP3 Beagle: enable mmc in defconfig + * ARM: OMAP: Fix USB peripheral DMA for omap1 + * ARM: OMAP: Misc compile fixes + * Linux 2.6.26-rc4 + * posix timers: discard SI_TIMER signals on exec + * posix timers: sigqueue_free: don't free sigqueue if it is queued + * i2c: Align i2c_device_id + * tuner: Do not alter i2c_client.name + * sparc64: global_reg_snapshot is not for userspace + * sh: Drop broken URAM support on SH7723. + * Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST + * .gitignore: match ncscope.out + * scripts/ver_linux use 'gcc -dumpversion' + * [ALSA] hda - Fix capture mute Widget for stac9250/9251 + * [ALSA] snd-pcsp - fix pcsp_treble_info() to honour an item number + * [WATCHDOG] Add ICH9DO into the iTCO_wdt.c driver + * [WATCHDOG] Fix booke_wdt.c on MPC85xx SMP system's + * [WATCHDOG] Add a watchdog driver based on the CS5535/CS5536 MFGPT + timers + * [WATCHDOG] hpwdt: Fix NMI handling. + * [WATCHDOG] Blackfin Watchdog Driver: split platform device/driver + * [WATCHDOG] Add w83697h_wdt early_disable option + * [WATCHDOG] Make w83697h_wdt timeout option string similar to others + * [WATCHDOG] Make w83697h_wdt void-like functions void + * spi: remove some spidev oops-on-rmmod paths + * cgroups: remove node_ prefix_from ns subsystem + * for_each_online_pgdat(): kerneldoc fix + * frv: export empty_zero_page + * sys_prctl(): fix return of uninitialized value + * edac: mpc85xx: fix building as a module + * gpio: build fixes + * S3C2410: fix driver MODULE_ALIAS() + * S3C2410: clean out changelog header and tidy + * S3C2410: add error print if we cannot add attribute + * S3C2410: ensure that FB_BLANK_POWERDOWN shuts down the controller + * SM501: reverse FPEN/VBIASEN flags behaviour + * memory hotplug: fix early allocation handling + * zonelists: handle a node zonelist with no applicable entries + * serial: fix enable_irq_wake/disable_irq_wake imbalance in + serial_core.c + * proc: proc_get_inode() should get module only once + * brd: don't show ramdisks in /proc/partitions + * ip2: fix crashes on load/unload + * gpiolib: fix off by one errors + * gpio: mcp23s08 debug fix + * gpio: pca953x driver handles pca9554 too + * signals: fix sigqueue_free() vs __exit_signal() race + * md: restart recovery cleanly after device failure. + * md: allow parallel resync of md-devices. + * md: notify userspace on 'stop' events + * md: notify userspace on 'write-pending' changes to array_state + * md: raid1: Fix restoration of bio between failed read and write. + * md: md: raid5 rate limit error printk + * md: kill file_path wrapper + * md: proper extern for mdp_major + * md: fix possible oops when removing a bitmap from an active array + * mm: fix atomic_t overflow in vm + * types.h: don't expose struct ustat to userspace + * serial: support for InstaShield IS-400 four port RS-232 PCI card + * fix parenthesis in include/asm-mips/mach-au1x00/au1000.h + * fix parenthesis in include/asm-mips/gic.h + * ibmaem: new driver for power/energy/temp meters in IBM System X + hardware + * i5k_amb: support Intel 5400 chipset + * hdaps: invert the axes for HDAPS on Lenovo R61i ThinkPads + * ntfs: le*_add_cpu conversion + * mm: don't drop a partial page in a zone's memory map size + * MAINTAINERS: add util-linux-ng package + * ecryptfs: fix missed mutex_unlock + * fuse: fix bdi naming conflict + * mm: allow pfnmap ->fault()s + * [ALSA] hda - Added support for Foxconn P35AX-S mainboard + * [ALSA] hda - Fix COEF and EAPD in ALC889 auto-configuration mode + * [ALSA] hda - Fix noise on VT1708 codec + * [ALSA] hda - Add model for ASUS P5K-E/WIFI-AP + * [ARM] integrator: fix build warnings and errors + * IB/mad: Fix kernel crash when .process_mad() returns + SUCCESS|CONSUMED + * x86: prevent PGE flush from interruption/preemption + * remove debug printk from DRM suspend path + * fbdev: fix integer as NULL pointer warning + * scsi: fix integer as NULL pointer warning + * isdn: fix integer as NULL pointer warning + * acpi: fix integer as NULL pointer warning + * x86: fix integer as NULL pointer warning + * [ARM] fix OMAP include loops + * Revert "[ARM] pxa: spitz wants PXA27x UDC definitions" + * [ARM] 5053/1: define before use of processor_id + * [ARM] 5052/1: export clock functions for the at91x40 + * [ARM] 5051/1: define pgtable_t for the !CONFIG_MMU case too + * x86: use explicit copy in vdso_gettimeofday() + * namespacecheck: automated fixes + * x86/xen: fix arbitrary_virt_to_machine() + * x86: don't read maxlvt before checking if APIC is mapped + * x86: disable TSC for sched_clock() when calibration failed + * x86: distangle user disabled TSC from unstable + * x86: fix setup of cyc2ns in tsc_64.c + * [XFS] Fix memory corruption with small buffer reads + * vlan: Use bitmask of feature flags instead of seperate feature bits + * [POWERPC] iSeries: Remove unused mail address + * [POWERPC] mpic: Fix use of uninitialized variable + * [POWERPC] Add kernstart_addr to list of allowed symbols in prom_init + * [POWERPC] Fix __set_fixmap() for STRICT_MM_TYPECHECKS + * [POWERPC] PS3: Fix memory hotplug + * [XFS] Fix inode list allocation size in writeback. + * [XFS] Don't allow memory reclaim to wait on the filesystem in inode + * [XFS] Fix fsync() b0rkage. + * stop_machine: make stop_machine_run more virtualization friendly + * doc: add a chapter about trylock functions [Bug 9011] + * modules: proper cleanup of kobject without CONFIG_SYSFS + * module loading ELF handling: use SELFMAG instead of numeric constant + * sh: update Migo-R defconfig + * sh: use sm501 8250 mfd support on r2d boards + * sh: add probe support for new sh7723 cut + * sh: fix VPU interrupt vector for sh7723 + * sh: fix USBF resource for sh7722 + * [CPUFREQ] clarify license of freq_table.c + * ARM: OMAP: Fix compiler error at pm-debug + * ARM: OMAP: Simplify OMAP2 mask_irq/unmask_irq code + * fmvj18x_cs: add NextCom NC5310 rev B support + * xirc2ps_cs: re-initialize the multicast address in do_reset + * 3C509: rx_bytes should not be increased when alloc_skb failed + * NETFRONT: Use __skb_queue_purge() + * VIRTIO: Use __skb_queue_purge() + * phylib: do EXPORT_SYMBOL on get_phy_id + * netlink: Fix nla_parse_nested_compat() to call nla_parse() directly + * slub: ksize() abuse checks + * [ARM] omap: fix omap clk support build errors + * [CIFS] Fix reversed memset arguments + * Adds username in the upcall key for unattended mounts with keytab + * [ARM] 5039/1: S3C244X: Rename SDI device if running on S3C244X. + * [ARM] 5043/1: pxafb: remove unused mode variable in + pxafb_init_fbinfo + * [ARM] 5041/1: VR1000: Fix DM9000 IRQ flags initialisation + * [ARM] 5040/1: BAST: Fix DM9000 IRQ flags initialisation + * [ARM] 5038/1: ARM: OMAP: Remove tsc2102 references from board- + palmte.c + * [ARM] 5025/2: fix collie cpu initialisation + * WAN: protect HDLC proto list while insmod/rmmod + * drivers/net/fs_enet: remove null pointer dereference + * S2io: Version update for napi and MSI-X patches + * S2io: Added napi support when MSIX is enabled. + * S2io: Move all the transmit completions to a single msi-x (alarm) + vector + * drivers/net/ehea - remove unnecessary memset after kzalloc + * au1000_eth: remove useless check + * Blackfin EMAC Driver: Removed duplicated include + * cpmac bugfixes and enhancements + * e1000e: use resource_size_t, not unsigned long, for phys addrs + * net/usb: add support for Apple USB Ethernet Adapter + * uli526x: add support for netpoll + * ucc_geth: Fix arguments to dma map/unmap functions + * PHYLIB: Kconfig: Fix the dependency on S390 + * [SC92031] Using padto turned driver into an IPv6-only interface + * sb1250: use netdev_alloc_skb + * [netdrvr] forcedeth: Restore multicast settings on resume + * WAN: protect Cisco HDLC state changes with a spinlock. + * make myri10ge_get_firmware_capabilities() static + * s2io: add missing block braces to multistatement if statement + * hamradio/scc: add missing block braces to multi-statement if + * ehea: Fix use after free on reboot + * rndis_host: increase delay in command response loop + * drivers/net/tokenring/olympic.c: fix warning + * drivers/net/tokenring/3c359.c: squish a warning + * pcnet32: fix warning + * [netdrvr] dm9000: use delayed work to update mii phy state fix + * sky2: restore vlan acceleration on reset + * sfc: Remove sub-minor component from driver version + * sfc: Added checks for heap allocation failure + * sfc: Remove redundant casts to and from void * + * sfc: Change type of efx_nic::nic_data to struct falcon_nic_data * + * sfc: Use __packed macro + * sfc: Do not define inline macro + * sfc: Use DMA_BIT_MASK() instead of our own DMA mask macros + * sfc: Correct and expand some comments + * sfc: Use resource_size_t for PCI bus address + * sfc: Merged efx_page_offset() into efx_rx_buf_offset() + * sfc: Replaced various macros with inline functions + * sfc: Added and removed braces to comply with kernel style + * sfc: Removed unncesssary UL suffixes on 0 literals + * sfc: Simplified efx_rx_calc_buffer_size() using get_order() + * sfc: Removed casts to void + * sfc: Use mod_timer() to set expiry and add_timer() together + * sparc64: Prevent stack backtrace false positives on trap frames. + * [CIFS] Remove redundant NULL check + * sparc64: Fix stack tracing through trap frames. + * sparc64: Fix kernel thread stack termination. + * irda: Fix direct DMA register access for omap-ir + * ARM: OMAP: Remove broken DMA function omap_get_dma_src_addr_counter + * ARM: OMAP: Fix omap1 dma + * net: The world is not perfect patch. + * tcp: Make prior_ssthresh a u32 + * xfrm_user: Remove zero length key checks. + * net/ipv4/arp.c: Use common hex_asc helpers + * cassini: Only use chip checksum for ipv4 packets. + * HTC_EGPIO is ARM-only + * provide out-of-line strcat() for m68k + * caiaq endianness fix + * MODULE_LICENSE expects "GPL v2", not "GPLv2" + * msnd_* is ISA-only + * missing dependencies on HAS_DMA + * ocfs2 endianness fixes + * irda-usb endianness annotations and fixes + * sbus bpp: instances missed in s/dev_name/bpp_dev_name/ + * ecryptfs fixes + * misc drivers/net endianness noise + * thanks to net/mac80211 we need to pull drivers/leds/Kconfig on uml + * missing export of csum_partial() on uml/amd64 + * uml: add missing exports for UML_RANDOM=m + * fix hppfs Makefile breakage + * fix include order in sys-i386/registers.c + * missed kmalloc() in pcap_user.c + * tcp: TCP connection times out if ICMP frag needed is delayed + * netfilter: Move linux/types.h inclusions outside of #ifdef + __KERNEL__ + * af_key: Fix selector family initialization. + * MUSB: Real fix bug 4 usb bugs found on Blackfin + * MUSB: fix bug - since 2.6.24 urb API changed, giveback function + return wrong status + * MMC: Performance improvement for CONFIG_MMC_BLOCK_BOUNCE + * sunhv: Fix locking in non-paged I/O case. + * [CIFS] Remove debug statement + * Fix possible access to undefined memory region. + * libertas: Fix ethtool statistics + * mac80211: fix NULL pointer dereference in ieee80211_compatible_rates + * [CPUFREQ] Remove documentation of removed ondemand tunable. + * IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish() + * ARM: OMAP: Remove calls for timer_dyn_reprogram() + * pktgen: make sure that pktgen_thread_worker has been executed + * mac80211: don't claim iwspy support + * orinoco_cs: add ID for SpeedStream wireless adapters + * hostap_cs: add ID for Conceptronic CON11CPro + * rtl8187: resource leak in error case + * [VLAN]: Propagate selected feature bits to VLAN devices + * [CIFS] Enable DFS support for Windows query path info + * drivers/atm/: remove CVS keywords + * ath5k: Fix loop variable initializations + * vlan: Correctly handle device notifications for layered VLAN devices + * net: Fix call to ->change_rx_flags(dev, IFF_MULTICAST) in + dev_change_flags() + * net_sched: cls_api: fix return value for non-existant classifiers + * ipsec: Use the correct ip_local_out function + * USB: CDC WDM driver + * USB: ehci-orion: the Orion EHCI root hub does have a Transaction + Translator + * USB: serial: ch341: New VID/PID for CH341 USB-serial + * USB: build fix + * USB: pxa27x_udc - Fix Oops + * USB: OPTION: fix name of Onda MSA501HS HSDPA modem + * USB: add TELIT HDSPA UC864-E modem to option driver + * usb-serial: Use ftdi_sio driver for RATOC REX-USB60F + * MAINTAINERS: Add cxgb3 and iw_cxgb3 NIC and iWARP driver entries + * IB/mlx4: Fix creation of kernel QP with max number of send s/g + entries + * iop-adma: fixup some kzalloc/memset confusions + * fsldma: update the fsldma driver MAINTAINERS info + * SCSI: fix race in device_create + * USB: Core: fix race in device_create + * USB: Phidget: fix race in device_create + * s390: fix race in device_create + * SOUND: fix race in device_create + * UIO: fix race in device_create + * Power Supply: fix race in device_create + * LEDS: fix race in device_create + * IB: fix race in device_create + * ide: fix race in device_create + * fbdev: fix race in device_create + * mm: bdi: fix race in bdi_class device creation + * Driver core: add device_create_vargs and device_create_drvdata + * [CIFS] Enable DFS support for Unix query path info + * OMAP3430SDP: Enable config options CONFIG_OMAP_RESET_CLOCKS and + CONFIG_SUSPEND + * 34XX: PM: Initial version of suspend and dynamic retention + * 34XX: Add miscellaneous definitions related to 34xx + * 34XX: Suspend: Use same naming convention in sleep34xx.S as in + sleep24XX.S + * 34XX: Suspend: Take suspend sram code from ti cdp kernel + * OMAP: Add new function to check wether there is irq pending + * PM: Add pm.c file for omap2 and omap3 common code + * 24XX: PM: Move debugging related code to pm-debug.c + * 24XX: PM: Move pm.c to pm24xx.c and sleep.S to sleep24xx.S + * Fix a deadlock in the bttv driver + * firewire: prevent userspace from accessing shut down devices + * ieee1394: sbp2: use correct size of command descriptor block + * x86: strengthen 64-bit p?d_bad() + * xen: use PTE_MASK in pte_mfn() + * x86: use PTE_MASK rather than ad-hoc mask + * x86: clarify use of _PAGE_CHG_MASK + * x86: use PTE_MASK in pgtable_32.h + * x86: use PTE_MASK in 32-bit PAE + * x86: rearrange __(VIRTUAL|PHYSICAL)_MASK + * x86: fix warning on 32-bit non-PAE + * x86: define PTE_MASK in a universally useful way + * HID: remove CVS keywords + * HID: Add iMON LCDs to blacklist + * HID: add Microchip PICKit 1 and PICkit 2 to blacklist + * HID: split Numlock emulation quirk from HID_QUIRK_APPLE_HAS_FN. + * [POWERPC] Update defconfigs for desktop/server systems + * [ALSA] hda - Fix ASUS P5GD1 model + * [ALSA] hda - Fix ALC262 fujitsu model + * snd-pcsp: use HRTIMER_CB_SOFTIRQ + * sparc64: Add global register dumping facility. + * sparc: remove CVS keywords + * sparc64: remove CVS keywords + * [POWERPC] Fix mpc8377_mds.dts DMA nodes to match spec + * [POWERPC] Update arch/powerpc/boot/.gitignore + * [POWERPC] Remove generated files on make clean + * ipv6 addrconf: Allow infinite prefix lifetime. + * ipv6 route: Fix lifetime in netlink. + * ipv6 addrconf: Fix route lifetime setting in corner case. + * Add maintainers for myri10ge driver + * MAINTAINERS needs further order fixing + * [POWERPC] powerpc/mm/hash_low_32.S: Remove CVS keyword + * ndisc: Add missing strategies for per-device retrans timer/reachable + time settings. + * [POWERPC] Update Cell MAINTAINERS entry, add spufs entry + * PCI: correct mailing list address + * [CIFS] add missing seq_printf to cifs_show_options for hard mount + option + * [CPUFREQ] Crusoe: longrun cpufreq module reports false min freq + * [CPUFREQ] powernow-k8: improve error messages + * drivers/ata: trim trailing whitespace + * Fixups to ATA ACPI hotplug + * libata: ignore SIMG4726 config pseudo device + * sata_sil24: don't use NCQ if marvell 4140 PMP is attached + * libata: don't schedule LPM action seperately during probing + * libata: make sure PMP notification is turned off during recovery + * libata: increase PMP register access timeout to 3s + * libata: ignore recovered PHY errors + * libata: kill hotplug related race condition + * libata: move reset freeze/thaw handling into ata_eh_reset() + * libata: reorganize ata_eh_reset() no reset method path + * libata: fix sata_link_hardreset() @online out parameter handling + * sata_promise: other cleanups + * sata_promise: mmio access cleanups + * sata_promise: fix irq clearing buglets + * ata: remove FIT() macro + * sata_mv: ensure empty request queue for FBS-NCQ EH + * sata_mv: cache main_irq_mask register in hpriv + * sata_mv: disregard masked irqs + * sata_mv: fix pmp drives not found + * sata_mv: consolidate main_irq_mask updates + * sata_mv: don't blindly enable IRQs + * sata_mv: async notify for genIIe only + * sata_mv: group genIIe flags + * sata_mv: fis irq register fixes + * sata_mv: always do softreset + * avr32/pata: avoid unnecessary memset (updated after comments) + * pata-bf54x: Set ATAPI HSM to control IDE device terminate sequence. + * ipv6: Move from header-y to unifdef-y. + * l2tp: avoid skb truesize bug if headroom is increased + * dlm: should be "unifdef"ed. + * dlm: fix plock dev_write return value + * dlm: tcp_connect_to_sock should check for -EINVAL, not EINVAL + * dlm: section mismatch warning fix + * dlm: convert connections_lock in a mutex + * PCI: Correct last two HP entries in the bfsort whitelist + * Don't clean bounds.h and asm-offsets.h + * kconfig: incorrect 'len' field initialisation ? + * kernel-doc: allow unnamed bit-fields + * kbuild: filter away debug symbols from kernel symbols + * slob: Fix to return wrong pointer + * [POWERPC] 4xx: Workaround for CHIP_11 Errata + * svcrdma: Verify read-list fits within RPCSVC_MAXPAGES + * svcrdma: Change svc_rdma_send_error return type to void + * svcrdma: Copy transport address and arm CQ before calling + rdma_accept + * svcrdma: Set rqstp transport address in rdma_read_complete function + * svcrdma: Use ib verbs version of dma_unmap + * svcrdma: Cleanup queued, but unprocessed I/O in svc_rdma_free + * svcrdma: Move the QP and cm_id destruction to svc_rdma_free + * svcrdma: Add reference for each SQ/RQ WR + * svcrdma: Move destroy to kernel thread + * svcrdma: Shrink scope of spinlock on RQ CQ + * svcrdma: Use standard Linux lists for context cache + * svcrdma: Simplify RDMA_READ deferral buffer management + * svcrdma: Remove unused READ_DONE context flags bit + * svcrdma: Return error from rdma_read_xdr so caller knows to free + context + * svcrdma: Fix error handling during listening endpoint creation + * svcrdma: Free context on post_recv error in send_reply + * svcrdma: Free context on ib_post_recv error + * svcrdma: Add put of connection ESTABLISHED reference in + rdma_cma_handler + * svcrdma: Fix return value in svc_rdma_send + * svcrdma: Fix race with dto_tasklet in svc_rdma_send + * svcrdma: Simplify receive buffer posting + * svc: Remove unused header files from svc_xprt.c + * svc: Remove extra check for XPT_DEAD bit in svc_xprt_enqueue + * sh: Fix up restorer in debug_trap exception return path. + * sh: Make is_valid_bugaddr() more intelligent on nommu. + * snd-pcsp: silent misleading warning + * snd-pcsp: depend on CONFIG_EXPERIMENTAL + * snd-pcsp: put back the compatibility code for the older alsa-libs + * snd-pcsp: adjust help texts to frighten users + * lmb: Fix compile warning + * svcrpc: fix proc/net/rpc/auth.unix.ip/content display + * nfsd: reorder printk in do_probe_callback to avoid use-after-free + * SUNRPC: AUTH_SYS "machine creds" shouldn't use negative valued + uid/gid + * KVM: LAPIC: ignore pending timers if LVTT is disabled + * KVM: Update MAINTAINERS for new mailing lists + * KVM: Fix kvm_vcpu_block() task state race + * KVM: ia64: Set KVM_IOAPIC_NUM_PINS to 48 + * KVM: ia64: fix GVMM module including position-dependent objects + * KVM: ia64: Define new kvm_fpreg struture to replace ia64_fpreg + * KVM: PIT: take inject_pending into account when emulating hlt + * s390: KVM guest: fix compile error + * KVM: x86 emulator: fix writes to registers with modrm encodings + * at91_mci: minor cleanup + * Blackfin SPORTS UART Driver: converting BFIN->BLACKFIN + * Blackfin serial driver: add extra IRQ flag for 8250 serial driver + * 8250 Serial Driver: Added support for 8250-class UARTs in HV + Sistemas H8606 board + * Blackfin arch: Fix bug - USB fails to build for BF524/BF526 + * Blackfin arch: update boards defconfig files + * Blackfin arch: IO Port functions to read/write unalligned memory + * Blackfin arch: enable a choice to provide 4M DMA memory + * Blackfin arch: cleanup the icplb/dcplb multiple hit checks + * Blackfin arch: Add workaround to read edge triggered GPIOs + * Blackfin arch: Sync channel defines with struct dma_register + dma_io_base_addr. + * Blackfin arch: Check for Anomaly 05000182 + * [PATCH] list_for_each_rcu must die: audit + * [patch 1/1] audit_send_reply(): fix error-path memory leak + * [PATCH] open sessionid permissions + * [CIFS] add more complete mount options to cifs_show_options + * IB/mthca: Fix max_sge value returned by query_device + * RDMA/cxgb3: Fix uninitialized variable warning in iwch_post_send() + * IB/mlx4: Fix uninitialized-var warning in mlx4_ib_post_send() + * [PATCH] return to old errno choice in mkdir() et.al. + * [Patch] fs/binfmt_elf.c: fix wrong return values + * [PATCH] get rid of leak in compat_execve() + * [Patch] fs/binfmt_elf.c: fix a wrong free + * [PATCH] avoid multiplication overflows and signedness issues for + max_fds + * [PATCH] dup_fd() part 4 - race fix + * [PATCH] dup_fd() - part 3 + * [PATCH] dup_fd() part 2 + * [PATCH] dup_fd() fixes, part 1 + * [PATCH] take init_files to fs/file.c + * wireless: Create 'device' symlink in sysfs + * wireless, airo: waitbusy() won't delay + * libertas: fix command timeout after firmware failure + * mac80211: Add RTNL version of ieee80211_iterate_active_interfaces + * mac80211 : Association with 11n hidden ssid ap. + * [CIFS] Add missing defines for DFS + * CIFSGetDFSRefer cleanup + dfs_referral_level_3 fixed to conform + REFERRAL_V3 the MS-DFSC spec. + * nfs: make nfs4_drop_state_owner() static + * nfs: path_{get,put}() cleanups + * nfs: replace remaining __FUNCTION__ occurrences + * nfs/lsm: make NFSv4 set LSM mount options + * NFSv4: Check the return value of decode_compound_hdr_arg() + * nfs: fix race in nfs_dirty_request + * NFS: Ensure that 'noac' and/or 'actimeo=0' turn off attribute + caching + * Fixed DFS code to work with new 'build_path_from_dentry', that + returns full path if share in the dfs, now. + * sh: use the common ascii hex helpers + * sh: fix sh7785 master clock value + * sh: Fix up thread info pointer in syscall_badsys resume path. + * sh: Fix up optimized SH-4 memcpy on big endian. + * sh: disable initrd defaults in .empty_zero_page. + * sh: display boot params by default on entry. + * IB/ipath: Fix UC receive completion opcode for RDMA WRITE with + immediate + * IB/ipath: Fix printk format for ipath_sdma_status + * hostap: fix "registers" registration in procfs + * [CIFS] enable parsing for transport encryption mount parm + * isdn/capi: Return proper errnos on module init. + * iphase: Fix 64bit warning. + * hysdn: No longer broken on SMP. + * hysdn: Remove cli()/sti() calls. + * atm: Cleanup atm_tcp.h and atm.h for userspace. + * [CIFS] Finishup DFS code + * [CIFS] BKL-removal: convert CIFS over to unlocked_ioctl + * [CIFS] suppress duplicate warning + * bonding: handle case of device named bonding_master + * sysfs: remove error messages for -EEXIST case + * net: handle errors from device_rename + * [CIFS] Fix paths when share is in DFS to include proper prefix + * mmc: mmc host test driver + * mmc: Fix omap compile by replacing dev_name with dma_dev_name + * add function to convert access flags to legacy open mode + * clarify return value of cifs_convert_flags() + * [CIFS] don't explicitly do a FindClose on rewind when directory + search has ended + * [CIFS] cleanup old checkpatch warnings + * [Blackfin] arch: rename bf5xx-flash to bfin-async-flash + * [CIFS] CIFSSMBPosixLock should return -EINVAL on error + * fix memory leak in CIFSFindNext + * [CIFS] CIFS currently allows for permissions to be changed on files, + even + * [GFS2] Prefer strlcpy() over snprintf() + * [GFS2] Fix cast from unsigned int to s64 + * [GFS2] filesystem consistency error from do_strip + * [Blackfin] arch: Blackfin checksum annotations + * Remove *.rej pattern from .gitignore + * MAINTAINERS: document names of new kbuild trees + * kbuild: disable modpost warnings for linkonce sections + * kbuild: escape meta characters in regular expression in make TAGS + * drm/i915: save and restore dsparb and d_state registers. + * drm/i915: fix off by one in VGA save/restore of AR & CR regs. + * drm: disable tasklets not IRQs when taking the drm lock spinlock + * Revert "drm/vbl rework: rework how the drm deals with vblank." + * [XFS] Include linux/random.h in all builds, not just debug builds. + + -- Yauheni Kaliuta Thu, 05 Jun 2008 18:45:15 +0300 + +kernel-source (2.6.26~rc3-osso3) unstable; urgency=low + + * Merge commit 'rx-51-2008-23-2' into packaging + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * RX51: Add cmt_apesleepx gpio-switch + * RX51: Enable CONFIG_MODULE_FORCE_LOAD=y + * RX51: build g_phonet.ko + * RX51: build SSI hardware driver + * RX51: build the Phonet line discipline + * RX51: include the Phonet stack + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * DSP: Workaround for build error + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAP SSI device for board-rx51 + * g_phonet: add CONFIG_G_PHONET + * g_phonet: provisional CDC Phonet + CDC ACM gadget driver + * Build the SSI Phonet TTY driver + * SSI Phonet TTY driver + * Build the McSAAB improved protocol + * McSAAB improved protocol + * OMAP SSI platform device + * Build the SSI hardware driver + * OMAP SSI hardware driver + * OMAP SSI registers definition + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet: register the ISI protocol + * Phonet: ISI datagram transport protocol + * Phonet: emit ISI errors when a packet cannot be delivered locally + * Phonet: allocate and initialize new sockets + * Phonet: receive path socket lookup + * Phonet: common socket glue + * Phonet: Netlink interface + * Phonet: proc interface for port range + * Phonet: network device and address handling + * Phonet: PF_PHONET protocol family support + * Phonet: build the net/phonet/ directory + * Phonet: add CONFIG_PHONET + * Phonet global definitions + * RX51: Fix omapfb config + * ARM: OMAP: FB: Disable Tahvo backlight setting + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * ARM: OMAP: FB: Add Caucasus support + * ARM: OMAP: FB: Add SDI support + * RX51: Enable some i2c peripherals + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * musb: there's no need to sysfs notify + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * usb: musb: get vbus status for omap2430 and omap3 + * usb charger detection prototype + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * si4713: Fix driver probe sequence by adding device id table + * si4713: Change power_level range + * si4713: Remove double range checking when setting power_level + * si4713: Add region selection feature + * si4713: Add antenna tuning value property + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + * I2C: TWL4030 Vibra driver + * I2C: TWL4030: Add get device helper function + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * I2C: TWL4030: Fix error handling in MADC driver + + -- Yauheni Kaliuta Tue, 03 Jun 2008 17:28:04 +0300 + +kernel-source (2.6.26~rc3-osso2) unstable; urgency=low + + * Merge branch 'master' into packaging + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * HS OMAP3430 L2 invalidate + * I2C: lis302dl: Add .id_table to i2c_driver struct + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * wl1251: implement join ssid command + * wl1251: implement rx path + * wl1251: implement hardware scan + * wl1251: implement tx path + * wl1251: implement mailbox event handling + * wl1251: implement interrupt handling + * wl1251: implement hw initialisation sequence + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * I2C: add support for lis302dl accelometer driver + * Add H4+ support for BCM2048b0 bluetooth chip + * ARM: OMAP: OneNAND: machine_is_nokia_rx51 is not always a constant + * ARM: OMAP: OneNAND: Enable interrupt use (pre-B1 and later only) + * ARM: OMAP: OneNAND: Use DMA on OMAP3 + * ARM: OMAP: OneNAND: Print address information for ECC errors + * ARM: OMAP: OneNAND: Add synchronous write timings + * ARM: OMAP: OneNAND: Allow for high frequency (>66MHz) + * ARM: OMAP: OneNAND: Disable wait-monitoring for OMAP3 + * Allow for controller errors when reading + * rx-51: add wl1251 + * wl1251: add Kconfig and Makefile files + * wl1251: port to mac80211 bands API + * Add wl1251 driver + * ARCH: OMAP: RX51: USB: Do not block sleep + * USB: SERIAL GADGET: Add nokia strings + * USB: GADGET: Add nokia ids to file_storage.c + * USB: SERIAL GADGET: Start using obex function + * USB: COMPOSITE: Support 16 interfaces by default + * OBEX: Introduce f_obex function driver. + * usb serial gadget: use updated framework + * usb serial gadget: generic serial function driver + * usb serial gadget: cdc acm function driver + * usb gadget zero: use updated framework + * usb gadget zero: loopback function driver + * usb gadget zero: sourcesink config driver + * usb gadget: composite gadget framework + * usb gadget support descriptor copying + * usb serial gadget: use new tty glue + * usb serial gadget: modular tty glue + * TSC2005 gpio setup is made by driver. + * si4713: Improve probe function + * si4713: Moved irq field from platform_data to i2c_board_info + * warm reboot detection + * LP5523: Change kconfig from bool to tristate + * si4713: Fix the boot up timeout value + * si4713: Disabled pilot tone feature by default + * si4713: Remove DEFAULT_*_ENABLED macro definitions + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * I2C: add support for lp5523 LED driver + * Add support for Taos tsl2563 ambient light sensor + * si4713: Fix i2c bus address + * rx51: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * USB: OTG: Make otg_tpl come from platform_data + * USB: OTG: Add check for roothub initialization + * USB: OTG: Start using new otg tpl. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * UBIFS: print format version + * UBIFS: do not use -1 offsets + * UBIFS: temporary hack for backward compatibility + * UBIFS: fix bad hash mask bug + * UBIFS: minor print tweaks + * UBIFS: get rid of cpu_to_le64(0) + * UBIFS: rename fmt_vers to fmt_version + * UBIFS: tweak asserts and gc_lnum fix + * UBIFS: move ubifs_validate_entry + * UBIFS: fix checkpatch.pl errors + * UBIFS: remove unnecessary 'if' in bg thread + * UBIFS: fix flags + * UBIFS: rework flags inheritance + * UBIFS: fix gc_lnum recovery + * UBIFS: split out ubifs_fill_super + * UBIFS: mount_ubifs now cleans up its own errors + * UBIFS: get rid of scary lockup warnings + * UBIFS: tweak bg thread + * UBIFS: remove unnecessary cond_resched() + * UBIFS: do not set nice level in bg thread + * UBIFS: use __clear_bit and __set_bit in LPT + * UBIFS: remove unnecessary kzalloc + * UBIFS: use __clear_bit and __set_bit + * UBIFS: use memory barriers in dbg_tnc_check + * UBIFS: comment why we use barriers + * UBIFS: use unlikely in come core TNC functions + * UBIFS: do not use kzalloc unnecesarily + * UBIFS: fix compilation error + * UBIFS: be consistent when comparing pointers with NULL + * UBIFS: cleanup, fix, and improve tnc + * UBIFS: use is_hash_key + * UBIFS: do not validate what is in LNC + * UBIFS: add xentries to LNC + * UBIFS: rename bg thread + * UBIFS: rename JRN to JNL as well + * UBIFS: remove redundant check + * UBIFS: finally remove build.c + * UBIFS: use jnl instead of jrn + * UBIFS: get rid of build.c + * UBIFS: allow multiple blocks per page + * UBIFS: admit that we do not support NFS + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * I2C: add support for lis302dl accelometer driver + * RX51: Change back to 4 runtime uarts + * rx51: enable wl1251 + * omap2_mcspi: disable DMA + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Add H4+ support for BCM2048b0 bluetooth chip + * RX51: Disable OneNAND write-verify + * n_phonet: Add CONFIG_N_PHONET + * n_phonet: Phonet line discipline support + * n_phonet: allocate line discipline number + * Phonet global definitions + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * ARM: OMAP: IVA2: dsp bridge mpu driver + * ARM: OMAP: OneNAND: machine_is_nokia_rx51 is not always a constant + * ARM: OMAP: OneNAND: Enable interrupt use (pre-B1 and later only) + * ARM: OMAP: OneNAND: Use DMA on OMAP3 + * ARM: OMAP: OneNAND: Print address information for ECC errors + * ARM: OMAP: OneNAND: Add synchronous write timings + * ARM: OMAP: OneNAND: Allow for high frequency (>66MHz) + * ARM: OMAP: OneNAND: Disable wait-monitoring for OMAP3 + * Allow for controller errors when reading + + -- Yauheni Kaliuta Thu, 29 May 2008 16:14:18 +0300 + +kernel-source (2.6.26~rc3-osso1) unstable; urgency=low + + * merged master branch after b1 + * skipped a very long changelog + + -- Yauheni Kaliuta Thu, 22 May 2008 20:23:11 +0300 + +kernel-source (2.6.25~rc8-osso8) unstable; urgency=low + + * RX51: Add cmt_apesleepx gpio-switch + + -- Yauheni Kaliuta Mon, 28 Apr 2008 12:08:46 +0300 + +kernel-source (2.6.25~rc8-osso7) unstable; urgency=low + + * Merge branch 'rx51-b1' into packaging + * RX%!: CONFIG_CMT_POWERON=n + + -- Yauheni Kaliuta Tue, 22 Apr 2008 16:43:52 +0300 + +kernel-source (2.6.25~rc8-osso6) unstable; urgency=low + + * Merge branch 'rx51-b1' into packaging + * rx51-b1: SSI hack to support Phoenix local/normal mode switching + * si4713: Fix the boot up timeout value + * si4713: Disable pilot tone by default + * si4713: Fix Preemphasis sysfs property convertion + * Add CMT GPIOs + * MMC: OMAP: Disable smartidle mode while suspending (workaround) + * OMAP: HSMMC: Check wether board specific suspend / resume exists + + -- Yauheni Kaliuta Mon, 21 Apr 2008 14:27:17 +0300 + +kernel-source (2.6.25~rc8-osso5) unstable; urgency=low + + * Merge branch 'rx51-b1' into packaging + * MMC: OMAP: Moving MMC reset from pm34xx.c to board-rx51-hsmmc.c + * MMC: OMAP: MMC support for RX51 + * si4713: Remove build warning when CONFIG_I2C_SI4713=n + + -- Yauheni Kaliuta Thu, 17 Apr 2008 18:39:18 +0300 + +kernel-source (2.6.25~rc8-osso4) unstable; urgency=low + + * Merge commit 'rx-51-2008-16-1' into packaging + * rx51: Fix omapfb config options in rx51_defconfig + * OMAPDISPC: Fix to suspend and resume functions + * 34XX: PM: Workaround for ssi clocks + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * Fixes clock handling problems. + * Removed manual clock handling from + * USB Phonet gadget driver + * phonet ldisc + * phonet protocol + * phonet includes + * WL1251: Totally preliminary wl1251 driver + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Adds SSI and CMT functionality to the kernel tree. + * ARM: OMAP: USB: Fix potential resource overlap + + -- Yauheni Kaliuta Mon, 14 Apr 2008 17:27:16 +0300 + +kernel-source (2.6.25~rc8-osso3) unstable; urgency=low + + * Merge commit 'rx-51-2008-15-2' into packaging + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * Fixes clock handling problems. + * Removed manual clock handling from + * USB Phonet gadget driver + * phonet ldisc + * phonet protocol + * phonet includes + * WL1251: Totally preliminary wl1251 driver + * ARM: OMAP: IVA2: dsp bridge mpu driver + * Adds SSI and CMT functionality to the kernel tree. + * OMAP: RX51: Lower i2c frequency on bus 1 + * OneNAND patches in linux-rx51 + * rx51: enable bluetooth in rx51_defconfig + * DSP: Workaround for TI's bridge build + * DSP: Enable to set cross compile prefix by oneself + * rx51: usb phone gadget enabled for rx51_defconfig + * Fixes clock handling problems. + * Removed manual clock handling from + * USB Phonet gadget driver + * rx51: enable wl1251 in rx51_defconfig + + -- Yauheni Kaliuta Fri, 11 Apr 2008 16:32:17 +0300 + +kernel-source (2.6.25~rc8-osso2) unstable; urgency=low + + * ARM: OMAP: set GPIO interrupt value for OneNAND + * Temporary patch to enable serial display interface + * Adds SSI and CMT functionality to the kernel tree. + * ARM: OMAP: IVA2: dsp bridge mpu driver + * OMAPFB: Build rfbi.o for OMAP3 as well + * rx51: Enable LCD stuff in rx51_defconfig + * WL1251: Totally preliminary wl1251 driver + * Adds SSI and CMT functionality to the kernel tree. + * ARM: OMAP: IVA2: dsp bridge mpu driver + * rx51: Increase contiguous FB memory to 6MB, dspbridge needs it + * rx51: Enable CONFIG_CMT_TASKLET, CONFIG_CMT_POWERON + * WL1251: Totally preliminary wl1251 driver + * phonet ldisc + * phonet protocol + * phonet includes + * rx51: Enable PHONET related stuff for rx51_defconfig + * PM: Fix broken pm-debug.c + * Initial rx51 support + * OMAP3: ack spurious IRQs in get_irqnr_and_base + * OMAP: Add serial driver for OMAP UARTs + * Serial omap: Fix clock usecount + * Serial omap: Fix suspend + * RX-51: Cleanup unneeded hacks from omap34xx.h + * RX-51: Initialize global register bases + * ARM: OMAP: Continuing RX-51 support + * RX51: Make SMC91X work on RX51 + * rx51: Clear namespace collision with SDP3430 + * fix arch_init confusion for i2c + * Added support for Serial Debug Trace Interface (XTIv2 protocol). + * ARM: OMAP: try OneNAND sync timings and fail back to async + * ARM: OMAP: temporary async timings for onenand + * tsc2005: Move tsc2005 to drivers/input/touchscreen + * Add TSC2005 to RX51 board file + * Merge upstream changes to other touchscreen drivers + * Remove OMAP specific GPIO handling in driver + * USB: OTG: Introduce new otg.c code + * USB: Use TPL instead of WHITELIST. + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() + generic + * USB: OTG: Start using new otg tpl. + * USB: OTG: Add check for roothub initialization + * ARM: OMAP: RX51: Start using board-rx-51-usb.c features. + * ARCH: OMAP: Introduce board-rx51-usb.c + * USB: OTG: Make otg_tpl come from platform_data + * I2C: add support for lp5523 LED driver + * RX-51: Set I2C2 bus speed to 100kHz + * RX51: Add support for twl4030 keypad to rx51 + * si4713: Added information about si4713 on board file. + * si4713: Added Makefile and Kconfig entries + * si4713: Added the v4l2 driver for the si4713 radio transmitter. + * si4713: Added functions to manipulate si4713 i2c protocol + * ARCH: OMAP2: Let board-rx51-usb.c pass the clock to musb_core.c + * Add H4+ support for BCM2048b0 bluetooth chip + * I2C: TWL4030: Introduce twl4030 madc driver + * si4713: Fix i2c bus address + * ARM: OMAP: set GPIO interrupt value for OneNAND + * Add support for Taos tsl2563 ambient light sensor + * I2C: TWL4030: Kconfig and Makefile changes + * rx51: Add power irq definitions to board-rx51.h + * ARM: OMAP: set GPIO interrupt value for OneNAND + * Temporary patch to enable serial display interface + * OMAPFB: Build rfbi.o for OMAP3 as well + * Adds SSI and CMT functionality to the kernel tree. + * ARM: OMAP: IVA2: dsp bridge mpu driver + * WL1251: Totally preliminary wl1251 driver + * phonet ldisc + * phonet protocol + * phonet includes + + -- Yauheni Kaliuta Thu, 10 Apr 2008 18:17:46 +0300 + +kernel-source (2.6.25~rc8-osso1) unstable; urgency=low + + * Updated upstream, 2.6.25-rc8 + + -- Yauheni Kaliuta Thu, 10 Apr 2008 13:21:37 +0300 + +kernel-source (2.6.25~rc7-osso2) unstable; urgency=low + + * merging b1 branch + + -- Yauheni Kaliuta Wed, 09 Apr 2008 18:24:08 +0300 + +kernel-source (2.6.25~rc7-osso1) unstable; urgency=low + + * week200815-1 release + * power management added + + -- Yauheni Kaliuta Mon, 07 Apr 2008 14:12:56 +0300 + +kernel-source (2.6.25~rc6-osso4) unstable; urgency=low + + * rx-51 release + + -- Yauheni Kaliuta Fri, 04 Apr 2008 11:28:49 +0300 + +kernel-source (2.6.25~rc6-osso3) unstable; urgency=low + + * merged dspbridge + + -- Yauheni Kaliuta Tue, 01 Apr 2008 19:47:16 +0300 + +kernel-source (2.6.25~rc6-osso2) unstable; urgency=low + + * rx-51 release + + -- Yauheni Kaliuta Tue, 01 Apr 2008 14:47:08 +0300 + +kernel-source (2.6.25~rc6-osso1) unstable; urgency=low + + * rx-51 release + * 2.6.25~rc6 + + -- Yauheni Kaliuta Mon, 31 Mar 2008 16:55:10 +0300 + +kernel-source (2.6.25~rc4-osso2) unstable; urgency=low + + * Second rx-51 release + + -- Yauheni Kaliuta Wed, 19 Mar 2008 13:20:34 +0200 + +kernel-source (2.6.25~rc4-osso1) unstable; urgency=low + + * First rx-51 kernel source release + * Renamed to kernel-source + + -- Yauheni Kaliuta Mon, 17 Mar 2008 18:00:15 +0200 + +kernel-source-rx-34 (2.6.21.0-osso71) unstable; urgency=low + + * week200749-2 release. Fixes: NB#78085 + * Fix tsc2005 & tsc2301 lockup in disable + + -- Yauheni Kaliuta Fri, 7 Dec 2007 10:37:14 +0200 + +kernel-source-rx-34 (2.6.21.0-osso70) unstable; urgency=low + + * week200749-1 release. Fixes: NB#73908 + * Fix tsc2301, tsc2005 touchscreen locking + * tsc2301 - fix keyboard lockup issue + + -- Yauheni Kaliuta Wed, 5 Dec 2007 15:57:19 +0200 + +kernel-source-rx-34 (2.6.21.0-osso69) unstable; urgency=low + + * week200748-1 release. Fixes: NB#76738, NB#73908 + * Fix for n800 keyboard stuck problem + * fat: don't use free_clusters for fat32 + + -- Yauheni Kaliuta Tue, 27 Nov 2007 15:40:45 +0200 + +kernel-source-rx-34 (2.6.21.0-osso68) unstable; urgency=low + + * week200747-3 release. Fixes: NB#73908, NB#73999 + * FB: OMAP: Mipid: Init esd_work as a deferrable delayed work + * Fix SPI confusion in TSC2005 driver + * Fix for n800 keyboard stuck problem + * TSC2005 cleanup. + * USB: MUSB: Allow non-root users to start SRP + + -- Yauheni Kaliuta Fri, 23 Nov 2007 16:41:25 +0200 + +kernel-source-rx-34 (2.6.21.0-osso67) unstable; urgency=low + + * week200747-1 release + * Fixes: NB#75876, NB#75823, NB#74723, NB#75935, NB#75648 + * ARM:MM: Fix cache coherency issue on ARM based on patch from + bitshrine.org. + * DSPGW: Fix "BUG at arch/arm/plat-omap/dsp/task.c:1330!" + * DSPGW: Fix incorrect comparison of dsp dynamic task state + * MMC: OMAP: Ban open-ended multiblock access in N810 internal slot + * MMC: OMAP: Lazy clock shutdown + * MMC: cull sg list to match mmc request size + + -- Yauheni Kaliuta Mon, 19 Nov 2007 16:19:50 +0200 + +kernel-source-rx-34 (2.6.21.0-osso66) unstable; urgency=low + + * week200746-1 release. + Fixes: NB#74493, NB#74369, NB#75500, NB#66609, NB#75557 + * ALSA: Call aic33_power_ctrl only for changed input gain control in AIC33 + * ALSA: Cleanup AIC33 by removing aic33_setreg and aic33_getreg functions + * ALSA: Do not expose struct aic33 outside of AIC33 driver + * ALSA: Implement aic33_enable_adcs function in AIC33 + * ALSA: Minor coding style cleanups to AIC33 + * ALSA: Remove DAC power down delay from AIC33 + * ALSA: Shorten PLL delay and regroup PLL and DAC control functions in AIC33 + * CBUS: Do not BUG_ON in retu-headset in case of spurious release event + * Change tsc2005 config symbol + * Fix TSC2301 keyboard and touchscreen + * LED: OMAP PWM: Turn regulator power off in omap_pwm_led_probe() + * MMC: OMAP: Fix Vdcdc3 and slot 2 enable misconfiguration in Menelaus + * MMC: OMAP: Use correct power source for slot 2 and fix init order + * N810: Update board-n810 to use correct tsc2005 config option + * tsc2005: Move tsc2005 to drivers/input/touchscreen + * tsc2005: fix disabling the driver and initialize pnd to 1 + + -- Yauheni Kaliuta Tue, 13 Nov 2007 12:42:51 +0200 + +kernel-source-rx-34 (2.6.21.0-osso65) unstable; urgency=low + + * week200745-1 release. Fixes: NB#72580, NB#73122 + * ARM: OMAP2: Adjust OneNAND GPMC timings for 166MHz L3 + * ARM: OMAP2: OneNAND 66MHz timings + * ARM: OMAP: Use eac_fck clock in board-n800-audio to keep sys_clkout2 stable + * DSPGW: Fix for kernel BUG at arch/arm/plat-omap/dsp/task.c:281! + * Only 3 INTC_PENDING_IRQ registers + * Revert "ARM: OMAP: Add extra delay to EAC ext clock activation in board-n800-audio" + * musb_hdrc: Clean up after OPT cert test fixes + + -- Yauheni Kaliuta Tue, 6 Nov 2007 16:51:04 +0200 + +kernel-source-rx-34 (2.6.21.0-osso64) unstable; urgency=low + + * week200744-1 release. + Fixes: NB#74319 + * N800 1.1 USB Pre-certification tests fails + + -- Yauheni Kaliuta Tue, 30 Oct 2007 15:48:46 +0200 + +kernel-source-rx-34 (2.6.21.0-osso63) unstable; urgency=low + + * week200743-1 release. Fixes: NB#73077 + * mmc mounts messed up and load of other weirdness + + -- Yauheni Kaliuta Tue, 23 Oct 2007 17:47:25 +0300 + +kernel-source-rx-34 (2.6.21.0-osso62) unstable; urgency=low + + * Bugfix back. Fixes: NB#68077 + + -- Yauheni Kaliuta Fri, 19 Oct 2007 17:04:21 +0300 + +kernel-source-rx-34 (2.6.21.0-osso61) unstable; urgency=low + + * Removed bugfix 68077. + + -- Yauheni Kaliuta Fri, 19 Oct 2007 16:36:22 +0300 + +kernel-source-rx-34 (2.6.21.0-osso59) unstable; urgency=low + + * week200742-4 release. + * Revert "Reduce dirty ratio granularity to 0.1%." + * USB: FSG: Do not use DELAYED_STATUS for SET_CONFIGURATION + * musb_hdrc: OPT PM fixes for tusb, take 3 + + -- Yauheni Kaliuta Fri, 19 Oct 2007 16:15:04 +0300 + +kernel-source-rx-34 (2.6.21.0-osso58) unstable; urgency=low + + * week200742-3 release. Fixes: NB#72047, NB#70546 + * FB: OMAP: Mipid: Enter Sleep In before asserting RESETX + * ARM: OMAP: Add extra delay to EAC ext clock activation inboard-n800-audio + * ALSA: Keep OMAP24xx EAC functional clock active over external clock + * FB: OMAP: Mipid: Add SPI shutdown hook + * USB: MUSB: Do not notify sysfs if vbus_error is less than 3 + + -- Yauheni Kaliuta Wed, 17 Oct 2007 17:16:34 +0300 + +kernel-source-rx-34 (2.6.21.0-osso57) unstable; urgency=low + + * week200742-2 release. Fixes: NB#66365 + * MMC: OMAP: Add host shutdown code + * ALSA: Implement workaround to AIC33 for avoiding extra current consumption + + -- Yauheni Kaliuta Tue, 16 Oct 2007 15:21:32 +0300 + +kernel-source-rx-34 (2.6.21.0-osso56) unstable; urgency=low + + * week200742-1 release. Fixes: NB#73033, NB#71923, NB#72859 + * misc musb tweaks + * USB: MUSB: HSET: Fix HSET tool when running host mode tests + * DVFS: Workaround for "Unhandled fault: external abort on linefetch" + * musb_hdrc: Allow suspend if host is already suspended + * musb_hdrc: Fix stall handling as OTG peripheral + * USB: OTG: Fix compile when CONFIG_USB_OTG is not set + + -- Yauheni Kaliuta Mon, 15 Oct 2007 11:21:19 +0300 + +kernel-source-rx-34 (2.6.21.0-osso55) unstable; urgency=low + + * week200741-2 release + * Fixes: NB#72086, NB#72075 + * Revert "JFFS2: Reduce time for which erase_free_sem is held during erase." + * USB: OTG: Disable autosuspend for whitelisted nokia devices + * USB: MUSB: Add missing otg_set_error when device draws too much current + * Reduce dirty ratio granularity to 0.1%. + * MMC: OMAP: Cleanups and fixes for mmc clock management. + + -- Yauheni Kaliuta Tue, 9 Oct 2007 19:01:56 +0300 + +kernel-source-rx-34 (2.6.21.0-osso54) unstable; urgency=low + + * Updated bugfixes. Fixes: NB#71677, NB#72396 + + -- Yauheni Kaliuta Mon, 8 Oct 2007 18:33:31 +0300 + +kernel-source-rx-34 (2.6.21.0-osso53) unstable; urgency=low + + * week200741-1 release + * MTD: OneNAND: Ensure reset operation is successful + * OMAP2: OneNAND: Return only negative error codes + * MTD: OneNAND: Return only negative error codes + * MTD: OneNAND: Synchronize block locking operations + * USB: MUSB: Make vbus sysfs entry report current Vbus status + * USB: OTG: Add "Hub is not supported" message + * DVFS: Move mutex_lock earlier to keep consistency of original state + * MMC: OMAP: Disable SD and MMC high speed modes. + * MMC: OMAP: Remove 2.8v from Vmmc regulator + * Fix: DSP crash after copying files from internal to external memory card + * TSL2563: Save power while reading the sensor + * Revert "ARM: N800: TCM825x: Decrease maximum ALC gain." + * Hid large payload support + + -- Yauheni Kaliuta Mon, 8 Oct 2007 17:21:59 +0300 + +kernel-source-rx-34 (2.6.21.0-osso52) unstable; urgency=low + + * USB: GADGET: Fix file_storage strings with official RX-44 name + + -- Yauheni Kaliuta Thu, 4 Oct 2007 20:19:54 +0300 + +kernel-source-rx-34 (2.6.21.0-osso51) unstable; urgency=low + + * week200740-2 release. Fixes: NB#70695, NB#71353, NB#71800 + * ARM: OMAP: Move board-rx44*.c to board-n810*.c + * DVFS: MBOX: Use its own workqueues for robustness during PM operation + * USB: Check that NOR flash in TUS6010 is accessible in irq handler. + + -- Yauheni Kaliuta Thu, 04 Oct 2007 18:28:41 +0300 + +kernel-source-rx-34 (2.6.21.0-osso50) unstable; urgency=low + + * Clear .orig.tar.gz rebuild + + -- Yauheni Kaliuta Wed, 03 Oct 2007 16:45:42 +0300 + +kernel-source-rx-34 (2.6.21.0-osso49) unstable; urgency=low + + * week200740-1 release + * Enable CONFIG_RADIO_TEA5761 in nokia_2420_defconfig + * ARM: OMAP2: Camera: Retry sensor initialisation in error cases + * TCM825x: Retry I2C accesses in error cases + * MMC: OMAP: Remove unneeded clock divisor increase + * MMC: OMAP: Power up and down Movinand properly + * MMC: Use tasklet instead of workqueue for cover switch notification + * Fix build error without DVFS + * DVFS: Fix bug for counting dynamically loaded task number + * DVFS: FB: Refrain from printing noisy "setting update mode" + * musb_hdrc: Make HNP more reliable + * musb_hdrc: Fix vbus error notification + * USB: OTG: Continue enumeration of unsupported device if HNP fails + * musb_hdrc: Add timer for returning to host mode from HNP + * USB: MUSB: Set OTG_ERR_DEVICE_NOT_SUPPORTED for devices drawing too much power + * USB: OTG: OTG TPL finalization + * USB: OTG: USB Root Hub should be always targeted + + -- Yauheni Kaliuta Tue, 02 Oct 2007 18:48:25 +0300 + +kernel-source-rx-34 (2.6.21.0-osso48) unstable; urgency=low + + * week200739-4 release. + * USB: OTG: Fix RX44 ProductID + + -- Yauheni Kaliuta Thu, 27 Sep 2007 16:42:46 +0300 + +kernel-source-rx-34 (2.6.21.0-osso47) unstable; urgency=low + + * week200739-3 release. Fixes: NB#69588, NB#62847 + * MMC: OMAP: Put host into a standby only after the cards are idle. + * FB: OMAP: Blizzard: Coalesce redundant window update requests + + -- Yauheni Kaliuta Thu, 27 Sep 2007 15:40:29 +0300 + +kernel-source-rx-34 (2.6.21.0-osso46) unstable; urgency=low + + * week200739-2 release. Fixes: NB#66133, NB#59608 + * USB: MUSB: Do not retry on Vbus error + * USB: OTG: Remove Lynn and SanDisk reader from whitelist + * musb_hdrc: Fix idling as b-device broken by earlier a-host idle patch + * I2C: LM8323: Allow interrupts while executing lm8323_work + + -- Yauheni Kaliuta Thu, 27 Sep 2007 12:57:27 +0300 + +kernel-source-rx-34 (2.6.21.0-osso45) unstable; urgency=low + + * week200739-1 release. + Fixes: NB#68385, NB#70521, NB#68790, NB#70272 + * musb_hdrc: Fix HNP again + * MTD: OneNAND: fix numerous races + * USB: OTG: Nokia customizations on OTG Whitelist + * MMC: Enable explicit control of menelaus regulator low power mode + * Menelaus: Cleanup of the regulator control + * Fix menelaus voltage handling + * DSPGW: Fix lockup of MM system in opening dsp device file + * DVFS: DSPGW: Make DSP_PAUSE and DSP_CONTINUE paired + * DVFS: Workaround for sleep under spinlock for RFBI + * DVFS: Workaround for sleep under spinlock for MMC + * ARM: OMAP: Fix build warning for menelaus + * DVFS: Avoid unnecessary call for "cpufreq_op_policy()" for stability + + -- Yauheni Kaliuta Tue, 25 Sep 2007 18:56:10 +0300 + +kernel-source-rx-34 (2.6.21.0-osso44) unstable; urgency=low + + * week200738-1 release. Fixes: NB#61743, NB#65391, NB#65830 + * ARM: OMAP: Reduce Nokia RX-44 headset port start-up pop in + board-n800-audio + * ARM: OMAP: Remove Nokia RX-44 amplifier start-up delays in board-n800-audio + * ARM: OMAP2: Camera: Tell DVFS about camera status + * CBUS: A workaround for ADC S/H HW bug: always keep ch 8 selected when S/H is used + * Disable automatic VSim1 powersaving + * DVFS: CPUFreq null-governor now ignore policy changes + * I2C: LM8323: Read whole key event fifo buffer at key events + * LZO1X: fix lzo1x_worst_compress + + -- Yauheni Kaliuta Tue, 18 Sep 2007 16:42:59 +0300 + +kernel-source-rx-34 (2.6.21.0-osso43+nondvfs1) unstable; urgency=low + + * week200737-1-no-dvfs release + + -- Yauheni Kaliuta Wed, 12 Sep 2007 19:13:44 +0300 + +kernel-source-rx-34 (2.6.21.0-osso43) unstable; urgency=low + + * week200737-1 release + * Making correct .orig.tar.gz + * tsc2005: sensitivity and fudge fix + * USB: OTG: Add check for roothub initialization + * musb_hdrc: Fix HNP for OPT quirks, take 2 + * musb_hdrc: Add support for USB OPT HS A TD.5.7 error device not responding + * USB: OTG: Nokia customizations on OTG Whitelist + * USB: OTG: Add OPT HS A electrical test devices to supported list + * USB: OTG: Add support for enabling and disabling whitelist via sys + * USB: OTG: Make whitelist scan use the new list + * USB: OTG: Add functions to support dynamic OTG whitelist, remove otg_whitelist.h + * USB: OTG: Make otg_get_transceiver() and otg_set_transceiver() generic + * USB: OTG: Introduce new otg.c code + * USB: Fix apparent typo CONFIG_USB_CDCETHER. + * Revert "OTG WHITELIST" + * musb_hdrc: Start using otg_set_transceiver() + * musb_hdrc: Fix tusb3.1 revsision check again + * ALSA: Update file description and contact information in AIC33 files + * ALSA: Move AIC33 header file to more appropriate include directory + * ALSA: Rename AIC33 source file as tlv320aic33.c + * LM8323: Ensure proper synchronisation of kp_enabled. + * LM8323: Try to set keys_down correctly. + * musb_hdrc: Fix tusb3.1 detection for newer chips + * musb_hdrc: Change tusb DMA log level to be less verbose + * musb_hdrc: Fix tusb DMA corruption + * musb_hdrc: Standardize to use tbase for tusb specific registers + * musb_hdrc, CamelCase begone (rest of CPPI) + * musb_hdrc, CamelCase begone (cppi struct, locals ...) + * musb_hdrc, CamelCase begone (cppi descriptors, ...) + * MUSB: Kill compile warnings at drivers/usb/musb/tusb6010.c + * usb: Nokia changes for file_storage gadget + * DVFS: API for generic OP policy setting + * FB: OMAP: Check if rfbi is initialized before pausing/continuing + * Menelaus: remove unnecessary delay + + -- Yauheni Kaliuta Tue, 11 Sep 2007 17:19:40 +0300 + +kernel-source-rx-34 (2.6.21-osso42) unstable; urgency=low + + * week200736-2 release. Fixes: NB#66706 + * dvfs-v2 applied on top of w36-1 + * I2C: LM8323: Fix PM suspend and resume functionality + * I2C: LM8323: Remove two useless flags from chip structure + + -- Yauheni Kaliuta Wed, 05 Sep 2007 17:15:25 +0300 + +kernel-source-rx-34 (2.6.21-osso41) unstable; urgency=low + + * week200736-1 release. Fixes: NB#65163, NB#56025 + * ARM: OMAP2: Nokia 2420: Increase fb reserved regions again + * I2C: LM8323: Fix configuration sequence + * I2C: LM8323: Remove unused variables + * Disable CPU_FREQ from nokia_2420_defconfig + * DSPGW: Fix broken suspend()/resume() operations + * ARM: OMAP: Fix sleep under spinlock for cpufreq + * ARM: OMAP: Fix EAC dynamic pin multiplexing in board-n800-audio + * ARM: OMAP: Fix RX-44 audio clock specific design flaw in board-n800-audio + * ALSA: Combine two AIC33 source files into one + * ARM: OMAP: Update AIC33 config name in board-n800-audio + * ARM: OMAP: Update AIC33 config name in nokia_2420_defconfig + * CBUS: Cleanup retu-headset driver + * CBUS: Manage bias voltage in retu-headset suspend/resume code + * I2C: TSL2563 Light sensor integration time fix + * ARM: OMAP2: Camera: Reset camera a bit more civilised way. + * Add quirk for SU-8W + + -- Yauheni Kaliuta Tue, 04 Sep 2007 19:34:02 +0300 + +kernel-source-rx-34 (2.6.21-osso40) unstable; urgency=low + + * week200735-3 release + * dvfs-v2 on top of rx-44-2007-35-2 tag. + + -- Yauheni Kaliuta Thu, 30 Aug 2007 17:33:10 +0300 + +kernel-source-rx-34 (2.6.21-osso39) unstable; urgency=low + + * week200735-2 release. + Non-DVFS release. Fixes: NB#66705. + * MUSB: Coding style cleanup, kill all CPP style comments + * musb_hdrc: Some more cleanup + * musb_hdrc: Cannot stall an endpoint 0 control transfer from + a data stage cal lback function + * tusb6010 timings + * musb_hdrc cleanup -- comments, dates + * musb_hdrc cleanup -- cppi and sparse + * LM8323: Add reset and clear interrupts on initialization + * I2C: TSL2563 Use different gain modes depending on brightness. + * musb_hdrc: Remove nasty temporary hack that's no longer needed + * musb_hdrc: Make tusb use musb_set_vbus() to turn on VBUS + * musb_hdrc: Fix OPT A error "B-OPT Did not detect reset after connecting" + * musb_hdrc: Add sysfs notification to mode, only show changes + * musb_hdrc: Clean-up patch to sync with linux-omap tree + + -- Yauheni Kaliuta Tue, 28 Aug 2007 17:00:12 +0300 + +kernel-source-rx-34 (2.6.21-osso38) unstable; urgency=low + + * week200735-1 release. Fixes: NB#65325, NB#66400 + * Tweak STEP_PER bits to lower voltage stabilisation time and busy loop + * DVFS: Make DVS delay shorter based on TRM + * MUSB: Coding style cleanup, kill all CPP style comments + * musb_hdrc: Some more cleanup + * musb_hdrc: Cannot stall an endpoint 0 control transfer from a data stage callback function + * tusb6010 timings + * Enable DVFS in nokia_2420_defconfig + * DVFS: Drop Notifications + * DVFS: Framebuffer: Remove notification + * DVFS: Tusb : Remove DVFS + * DVFS: DMA : Remove explicit support + * DVFS: Camera : Drop notifications + * DVFS: SPI : Remove notifications + * DVFS: tsc2005 : Remove notifications + * DVFS: DSP GW : Change DVFS into Pause/Continue + * OMAP2: OneNAND: Support for adjusting the timing. + * OMAP2: MCSPI: Pause spi dma + * OMAP2: MMC: Pause mmc dma + * OMAP2: DMA: Drain DMA FIFOs + * OMAP2: RFBI: Pause DMA to external framebuffer. + * ARM: OMAP2: Mask / Unmask FIQ & IRQ + * DVFS: Remove locking on get-OP functionality + * MENELAUS: Convert printk to dev_* macros + * DVFS: Fix for dividers scaling down case never detected + * DVFS: Version 2 - dvfs.c : Replace notifications + * OMAP2 DVFS: dsp audio policy + * Revert "OMAP2 DVFS: dsp audio policy" + * DVFS: Menelaus: Disable traces of VCore changes + * DVFS: Merge voltage and frequency change (1) + * DVFS: Merge voltage and frequency change (2) + * I2C: TSL2563 Use different gain modes depending on brightness. + * musb_hdrc: Remove nasty temporary hack that's no longer needed + * musb_hdrc: Make tusb use musb_set_vbus() to turn on VBUS + * musb_hdrc: Fix OPT A error "B-OPT Did not detect reset after connecting" + + -- Yauheni Kaliuta Mon, 27 Aug 2007 16:58:54 +0300 + +kernel-source-rx-34 (2.6.21-osso37) unstable; urgency=low + + * week200734-3 release + * Disable DVFS from nokia_2420_defconfig + + -- Yauheni Kaliuta Fri, 24 Aug 2007 16:26:46 +0300 + +kernel-source-rx-34 (2.6.21-osso36.1) unstable; urgency=low + + * week200734-2 release + * DVFSv2 release + * Tweak STEP_PER bits to lower voltage stabilisation time and busy loop + * DVFS: Make DVS delay shorter based on TRM + * DVFS: Drop Notifications + * DVFS: Framebuffer: Remove notification + * DVFS: Tusb : Remove DVFS + * DVFS: DMA : Remove explicit support + * DVFS: Camera : Drop notifications + * DVFS: SPI : Remove notifications + * DVFS: tsc2005 : Remove notifications + * DVFS: DSP GW : Change DVFS into Pause/Continue + * OMAP2: OneNAND: Support for adjusting the timing. + * OMAP2: MCSPI: Pause spi dma + * OMAP2: MMC: Pause mmc dma + * OMAP2: DMA: Drain DMA FIFOs + * OMAP2: RFBI: Pause DMA to external framebuffer. + * ARM: OMAP2: Mask / Unmask FIQ & IRQ + * DVFS: Remove locking on get-OP functionality + * MENELAUS: Convert printk to dev_* macros + * DVFS: Fix for dividers scaling down case never detected + * DVFS: Version 2 - dvfs.c : Replace notifications + * OMAP2 DVFS: dsp audio policy + * DVFS: Merge voltage and frequency change (1) + * DVFS: Merge voltage and frequency change (2) + * musb_hdrc: Make tusb do a_idle, make OPT A tests more reliable + + -- Yauheni Kaliuta Thu, 23 Aug 2007 18:10:19 +0300 + +kernel-source-rx-34 (2.6.21-osso36) unstable; urgency=low + + * week200734-1 release + Fixes: NB#65271, NB#66180, NB#64046, NB#64101, NB#65635, NB#64942 + * I2C: Remove useless ioctl like callback from AIC33 driver + * musb_hdrc: Remove old unused delay_port_power_off + * ARM: OMAP: MUSB: IRQ reset: babble handling is host only + * musb_hdrc: Fix various build warnings for peripheral + * musb: Search and replace USB_INVENTRA_FIFO with MUSB_PIO_ONLY + * musb: Search and replace USB_INVENTRA_HCD_LOGGING with USB_MUSB_LOGLEVEL + * musb: Rename plat_uds.c to musb_core.c, plat_arc.h to musb_io.h + * musb: Rename musbhdrc.h to musb_regs.h + * musb: Rename musbdefs.h to musb_core.h + * musb_hdrc: Update tusb non-standard loopback test for changed file name + * musb: Rename g_ep0.c musb_gadget_ep0.c + * musb: Rename virthub.c musb_virthub.c + * musb: Rename dma.h to musb_dma.h + * musb: Rename debug.h to musb_debug.h + * Update RX-44 config for renamed musb options + * musb_hdrc: Optimize g_ether with NET_IP_ALIGN to align buffers + * musb_hdrc: Fix musb_hnp_stop() to return to device mode + * MMC: Merge with Langdale's SDHC code + * MMC: Use sector addressing only for mmc cards bigger than 2GB. + * TCM825x: Don't export camera orientation. + * ARM: OMAP2: Camera: reset camera block every five seconds. + + -- Yauheni Kaliuta Wed, 22 Aug 2007 16:49:24 +0300 + +kernel-source-rx-34 (2.6.21-osso35) unstable; urgency=low + + * week200733-3 release + * Mount initfs RO + * JFFS2: add reserved pool feature + * JFFS2: fix buffer sise calculations in jffs2_get_inode_nodes() + * JFFS2: Fix buffer length calculations in jffs2_get_inode_nodes() + * JFFS2: Improve failure mode if inode checking leaves unchecked space. + * JFFS2: Improve read_inode memory usage, v2. + * JFFS2: Handle inodes with only a single metadata node with non-zero isize + * JFFS2: Remember to calculate overlap on nodes which replace older nodes + * JFFS2: Remove broken insert_point optimisation in jffs2_add_tn_to_tree() + * JFFS2: Remove another bogus optimisation in jffs2_add_tn_to_tree() + * JFFS2: Simplify and clean up jffs2_add_tn_to_tree() some more. + * JFFS2: Fix obsoletion of metadata nodes in jffs2_add_tn_to_tree() + * JFFS2: Fix suspend failure with JFFS2 GC thread. + * JFFS2: Deletion dirents should be REF_NORMAL, not REF_PRISTINE. + * JFFS2: Fix readinode failure when read_dnode() detects CRC failure. + * JFFS2: Correct cleanmarker checks -- we should use only 8 bytes + * JFFS2: Print correct node offset when complaining about broken data CRC + * JFFS2: Whitespace cleanups. + * Revert "musb_hdrc: Stop VBUS draw on usb_gadget_unregister_driver" + * ARM: OMAP: Fix inconsistency of completion in retu-rtc + * JFFS2: Better fix for all-zero node headers + * JFFS2: Fix hanging close for /dev/mtd character device. + * JFFS2: Prevent oops after 'node added in wrong place' debug check + * JFFS2: Reduce time for which erase_free_sem is held during erase. + * ARM: OMAP: MUSB: fix compile for non-OTG modes + * JFFS2: switch jffs2 compression to priority mode + * musb_hdrc: Stop VBUS draw on usb_gadget_unregister_driver + * musb_hdrc: Fix ambiguous else warning + * musb_hdrc: Keep tusb host clock on when VBUS is on + * musb_hdrc: Search and replace MGC_O_HDRC_ with MUSB_ + * musb_hdrc: Search and replace MGC_M_ with MUSB_ + * musb_hdrc: Search and replace MGC_S_XXX with MUSB_XXX_SHIFT + * musb_hdrc: Search and replace MGC_END0_FIFOSIZE with + MUSB_EP0_FIFOSIZE, remove MGC_MAX_USB_ENDS + * musb_hdrc: Search and replace _bOffset with _offset + * musb_hdrc: Search and replace MGC_XXX_OFFSET with MUSB_XXX_OFFSET + * musb_hdrc: Remove old unsed MGC_TYPE_SPEED_XXX + * musb_hdrc: Tabify and clean-up musbhdrc.h + * musb_hdrc: Fix TUSB loopback test for changed variable names + * musb_hdrc: Add Nokia copyright, make GPLv2 license generic + * musb_hdrc: Search and replace wCsr with csr + * musb_hdrc: Search and replace bIntrUSB with int_usb + * musb_hdrc: Search and replace bIntr with int_hsdma + * musb_hdrc: Search and replace bTransmit with transmit + * musb_hdrc: Search and replace pUrb with urb + * musb_hdrc: Search and replace pBuffer with buf + * musb_hdrc: Search and replace dwLength with len + * musb_hdrc: Search and replace wEndMask with epmask + * musb_hdrc: Search and replace pDmaChannel with dma_channel + * musb_hdrc: Search and replace wRxCount with rx_count + * musb_hdrc: Search and replace bDone with done + * musb_hdrc: Search and replace nPipe with pipe + * musb_hdrc: Search and replace wLoadCount with load_count + * musb_hdrc: Search and replace bDmaOk with dma_ok + * musb_hdrc: Search and replace pFifoDest with fifo_dest + * musb_hdrc: Search and replace pFifoSource with fifo_src + * musb_hdrc: Search and replace bIsochError with iso_err + * musb_hdrc: Search and replace wVal with val, except for wValue + * musb_hdrc: Search and replace wBestDiff with best_diff + * musb_hdrc: Search and replace nBestEnd with best_end + * musb_hdrc: Search and replace nEnd with epnum + * musb_hdrc: Search and replace wFrame with frame + * musb_hdrc: Search and replace wRelease with hwvers + * musb_hdrc: Search and replace wRelMajor with rev_major + * musb_hdrc: Search and replace wRelMinor with rev_minor + * musb_hdrc: Search and replace dwData with data + * musb_hdrc: Search and replace pController with controller + * musb_hdrc: Search and replace wType with musb_type + * musb_hdrc: Search and replace bReg with reg + * musb_hdrc: Search and replace bMore with more + * musb_hdrc: Search and replace bComplete with complete + * musb_hdrc: Get rid of unnecessary DMA typedef & fix a comment typo + * musb_hdrc: Search and replace MGC_DMA with MUSB_DMA + * musb_hdrc: Search and replace MGC_END0 with MUSB_EP0 + * musb_hdrc: Search and replace MGC_END_OFFSET with MUSB_EP_OFFSET + * musb_hdrc: Search and replace MGC_O_HSDMA with MUSB_HSDMA + * musb_hdrc: Search and replace MGC_HSDMA with MUSB_HSDMA + * musb_hdrc: Fix SRP locking + * musb_hdrc: Keep state as b_idle if disconnected as b_idle + * musb_hdrc: Fix doing HNP multiple times + + -- Yauheni Kaliuta Fri, 17 Aug 2007 15:08:05 +0300 + +kernel-source-rx-34 (2.6.21-osso34) unstable; urgency=low + + * week200733-2 release. + Fixes: NB#62740, NB#57306, NB#57268, NB#61915, NB#61215, NB#52619, NB#58673 + * Remove noisy printk messages + * I2C: LM8323: Whitespace cleanup + * I2C: LM8323: Keep chip active while keys down + * Enable JFFS2_CMODE_FAVOURLZO in nokia_2420_defconfig + * DSPGW: Fix Unbalanced enable for IRQ in DSP MMU + * Make GPL licensing legal dept. compliant + * Make GPL licensing legal dept. compliant + * DSPGW: PM: Workaround for testserver suspend + * ALSA: Cleanup AIC33 header file + * ALSA: Add more AIC33 configuration options via platform data + * ARM: OMAP: Update Nokia RX-44 AIC33 configuration in board-n800-audio + * ALSA: Add OMAP24xx EAC internal DMA path volume controls + * Ignore stolen time in the softlockup watchdog + * add touch_all_softlockup_watchdogs() + * lib: add LZO1X compression support to the kernel + * crypto: Add LZO compression support to the crypto interface + * JFFS2: Add LZO compression support to jffs2 + * JFFS2: Allow selection of compression mode via a sysfs attribute + * JFFS2: Add a "favourlzo" compression mode to jffs2 + * musb_hdrc: Search and replace pThis with musb + * musb_hdrc: Search and replace pEndPt with hw_ep + * musb_hdrc: Search and replace pEnd with musb_ep when struct musb_ep + * musb_hdrc: Search and replace pEnd with musb_ep when struct musb_hw_ep + * musb_hdrc: Search and replace pRegs with mregs + * musb_hdrc: Search and replace pBase with mbase + * musb_hdrc: Search and replace pSource with src + * musb_hdrc: Search and replace pDest with dst + * musb_hdrc: Search and replace dwCount with len + * musb_hdrc: Search and replace wFifoCount with fifo_count + * musb_hdrc: Search and replace wCount with len + * musb_hdrc: Search and replace bLocalEnd with epnum + * musb_hdrc: Search and replace aLocalEnd with endpoints + * musb_hdrc: Search and replace bEndCount with nr_endpoints + * musb_hdrc: Search and replace bEndNumber with current_epnum + * musb_hdrc: Search and replace bEnd0Stage with ep0_stage + * musb_hdrc: Search and replace bEnd with epnum + * musb_hdrc: Search and replace Lock with lock + * musb_hdrc: Search and replace MGC_SelectEnd with musb_ep_select + * musb_hdrc: Search and replace _pthis with _musb + * musb_hdrc: Search and replace bIsHost with is_host + * musb_hdrc: Get rid of old unused MUSB_EpFifoDescriptor + * musb_hdrc: Search and replace bIsSharedFifo with is_shared_fifo + * musb_hdrc: Search and replace wMaxPacketSizeTx with max_packet_sz_tx + * musb_hdrc: Search and replace wMaxPacketSizeRx with max_packet_sz_rx + * musb_hdrc: Search and replace pDmaController with dma_controller + * musb_hdrc: Search and replace bIsMultipoint with is_multipoint + * musb_hdrc: Search and replace bIgnoreDisconnect with ignore_disconnect + * musb_hdrc: Search and replace bBulkSplit with bulk_split + * musb_hdrc: Search and replace bBulkCombine with bulk_combine + * musb_hdrc: Search and replace bAddress with address + * musb_hdrc: Search and replace bTestModeValue with test_mode_nr + * musb_hdrc: Search and replace bTestMode with test_mode + * musb_hdrc: Search and replace pGadgetDriver with gadget_driver + * musb_hdrc: Search and replace bDelayPortPowerOff with delay_port_power_off + * musb_hdrc: Search and replace pProcEntry with proc_entry + * musb_hdrc: Search and replace pPrivateData with private_data + * musb_hdrc: Search and replace dwMaxLength with max_len + * musb_hdrc: Search and replace dwActualLength with actual_len + * musb_hdrc: Search and replace bStatus with status + * musb_hdrc: Search and replace bDesiredMode with desired_mode + * musb_hdrc: Search and replace bMode with mode + * musb_hdrc: Search and replace MGC_pfDmaProgramChannel with dma_program_channel + * musb_hdrc: Search and replace pControlRequest with ctrlrequest + * musb_hdrc: Search and replace bResult with result + * musb_hdrc: Search and replace bSetAddress with set_address + * musb_hdrc: Search and replace bRecip with recip + * musb_hdrc: Search and replace pRequest with request + * musb_hdrc: Search and replace wCsrVal with csr + * musb_hdrc: Search and replace bTx with tx + * musb_hdrc: Search and replace wPacketSize with packet_sz + * musb_hdrc: Search and replace channelNum with chnum + * musb_hdrc: Search and replace pThis with musb for looptest + * musb_hdrc: Fix revision check for tusb3.1 + * musb_hdrc: Keep tusb osc_ck enabled during idle even in OTG mode + * BLUETOOTH: HCI_H4P: Don't touch the configuration registers while in init + * musb_hdrc: Stop VBUS draw on usb_gadget_unregister_driver + + -- Yauheni Kaliuta Tue, 14 Aug 2007 17:32:56 +0300 + +kernel-source-rx-34 (2.6.21-osso33) unstable; urgency=low + + * week200732-2 release + * ARM: OMAP: Fix misconfigured Nokia N800 EAC codec port configuration + * musb_hdrc: Set tusb host max VBUS to 100mA + + -- Yauheni Kaliuta Fri, 10 Aug 2007 15:31:35 +0300 + +kernel-source-rx-34 (2.6.21-osso32) unstable; urgency=low + + * week200732-1 release + * musb_hdrc: Fixes for OPT HS A tests + * ARM: OMAP: Warn on disabling clocks with no users + * musb_hdrc: Fix clock usage for suspend + * Serial omap: Fix suspend + * USB: gadgetfs: use queue for setup requests for userspace + * Serial omap: Fix clock usecount + + -- Yauheni Kaliuta Wed, 8 Aug 2007 17:57:35 +0300 + +kernel-source-rx-34 (2.6.21-osso31) unstable; urgency=low + + * week200731-1 release + * Enable usb gadgetfs in nokia_2420_defconfig + * ARM: OMAP2: Camera: Fix DVFS state transition. + * ARM: N800: TCM825x: Decrease maximum ALC gain. + * ARM: N800: Camera: Wait only 1 ms for retu voltage stabilisation. + * Make GPL licensing legal dept. compliant + * MTD: oops and panic message logging to MTD + + -- Yauheni Kaliuta Tue, 31 Jul 2007 17:38:29 +0300 + +kernel-source-rx-34 (2.6.21-osso30) unstable; urgency=low + + * 2007 w28-1 release. + * Input: evdev: Allow non-exclusive grabs + * Revert "Revert "Menelaus - Turn off annoying voltage scale messages"" + * Revert "Turn off Menelaus debug" + * ARM: OMAP: RX-44: Camera: Turn image 180 degrees. + * ARM: OMAP2: DVFS: Fix omap24xx_scale_freq cache preloading + * ARM: OMAP: RX-44: Introduce Nokia RX-44 specific TSL2563 power control + * I2C: Add platform specific power control into TSL2563 driver + * I2C: Harmonize parameter passing and variable names in TSL2563 + * ARM: OMAP: RX-44: Introduce tsl2563 platform device + * ARM: OMAP: Rename field irq in struct tsl2563_config as irq_gpio + * I2C: Add tsl2563 platfrom driver in TSL2563 + * I2C: Clean-ups and coding style fixes to TSL2563 + * JFFS2: check error code + * TUSB6010: Add sysfs notify event to mode attribute + + -- Daniel Stone Fri, 13 Jul 2007 00:52:15 +0300 + +kernel-source-rx-34 (2.6.21-osso29) unstable; urgency=low + + * 2007 w27-1 release. + * Revert "Menelaus - Turn off annoying voltage scale messages" + * Turn off Menelaus debug + * ALSA: Remove hard-coded gain for right ADC in AIC33 + * ALSA: Miscellaneous minor fixes to AIC33 + * ALSA: Keep AIC33 HP outputs in weak common-mode voltage while power-down + * ARM: OMAP2: Camera: tiny cleanups and a compile fix. + * musb_hdrc: Fix tusb phy_otg_ctrl register access + * musb_hdrc: Get rid of sysfs HNP interface, make HNP automatic + * musb_hdrc: Keep tusb in reset for OPT + * musb_hdrc: Add support for VBUS timeout, clean-up host-idling + * musb_hdrc: Clean-up SRP + * musb_hdrc: Make SRP reliable and fix timer value + + -- Daniel Stone Tue, 3 Jul 2007 14:07:08 +0000 + +kernel-source-rx-34 (2.6.21-osso28) unstable; urgency=low + + * week200726-1 release + * DMA: Get rid of sysfs warning + * Menelaus - Turn off annoying voltage scale messages + * ARM: OMAP: RX-44: Invert Home and Escape mapping + * musb_hdrc: Change SRP function to use existing musb_gadget_wakeup code + * ALSA: Fix DAC and audio output deactivation order in AIC33 + * ALSA: Fix audio output path activation/deactivation order in AIC33 + * ARM: OMAP2: DVFS: Change dma DVFS notification timeout to 1 second. + * I2C: LP5521 RGB LED: Correct channels are now used in hw. + * Revert "USB: Fix OTG HNP for hub.c" + * USB: Skip port reset for OTG ports + * musb_hdrc: Add support for host mode idling + * musb_hdrc: Allow BABBLE for non-HS host + * musb_hdrc: Fix peripheral SRP by blocking idle for 1s + * musb_hdrc: Fix HNP for OPT FS A tests + * musb_hdrc: Fix OPT A tests for most part + + -- Yauheni Kaliuta Tue, 26 Jun 2007 15:45:45 +0300 + +kernel-source-rx-34 (2.6.21-osso27) unstable; urgency=low + + * week200725-2 release + * DVFS: tsc2005: Add missing unlock_irq on one exit path + + -- Yauheni Kaliuta Tue, 19 Jun 2007 18:56:59 +0300 + +kernel-source-rx-34 (2.6.21-osso26) unstable; urgency=low + + * week200725-1 release. Fixes: NB#59197, NB#57267 + * MTD: OneNAND: Revert "OneNAND: Respond faster to DVFS" + * MTD: OneNAND: Simplify DVFS handling + * DVFS: Fix DSP timeout problem when loading dynamic codecs + * DVFS: Fix obsolete function argument type + * ARM: OMAP2: Dynamic Idle: avoid managing scratch registers + * DVFS: Convert to_dvfs_notif() to DVFS_NOTIF() + * ARM: OMAP2: DVFS: Change notifications timeout unit + * ARM: OMAP2: N800: Fix misleading error notification. + * DVFS: tsc2005: Fix reaction to dvfs notifications + * ALSA: Remove one needless assumed HW bug workaround in AIC33 + * ALSA: Remove DAC muting/unmuting from AIC33 DAC enable/disable functions + * NF: IDLETIMER module didn't set the IPv4 protocol when registering callback + * DVFS: cpufreq_set_policy() is removed from upstream kernel + * Remove a race condition from dispc interrupt handler. + * ALSA: Tweak bluetooth port settings in EAC + + -- Yauheni Kaliuta Tue, 19 Jun 2007 16:09:44 +0300 + +kernel-source-rx-34 (2.6.21-osso25) unstable; urgency=low + + * week200724-2 release + * DVFS: make DVFS header compile when DVFS is disabled. + * ARM: OMAP: DMA: Make DMA code compile with DVFS disabled. + * V4L: Add sensor interface proposal. + * TCM825x: use new interface and other updates. + * ARM: OMAP2: Camera: update to new interface, other fixes. + + -- Yauheni Kaliuta Thu, 14 Jun 2007 16:49:57 +0300 + +kernel-source-rx-34 (2.6.21-osso24) unstable; urgency=low + + * week200724-1 release. Fixes: NB#59657, NB#59823 + * OneNAND: Respond faster to DVFS + * Enable Voltage scaling with workaround for VMODE bug + * ARM: OMAP: RX-44: Swap Enter and KP_Enter + * ARM: OMAP: RX-44: Fix LED PWM definitions + * I2C: LM8323: Re-enable PWM3 + * I2C: LM8323: Add disable_kp interface + * ARM: OMAP: Fix warning in tusb6010_omap.c + * MUSB_HDRC: Fix usb production test issues + * Revert "musb_hdrc: Implement workaround for tusb3.0 wbus bug rev2" + * DVFS: Add printk to check DSP PRE_NOTIFICATION timeout on console + * DVFS: DSPGW: Fix to eliminate the possibility of DSP status change + * DVFS: Fix missing update along with DVFS FW + * DVFS: Fix trivial typo + * DVFS: Fix error when dsp is not used yet during DVFS + * DVFS: DSP: Add error recovery for PRE_NOTIFICATION failing + * DVFS: Add return value check for (pre)notification + * ARM: OMAP2: DVFS: Fix frequency scaling function + * ARM: OMAP2: DVFS: disable DVS and OP3 + * ARM: OMAP2: DVFS: Header and internal structures. + * ARM: OMAP2: DVFS: Notifications helper functions + * ARM: OMAP2: DVFS: Add/remove drivers to notification + * ARM: OMAP2: DVFS: Send notifications + * ARM: OMAP2: DVFS: USB registration fix. + * ARM: OMAP2: DVFS: DMA registration fix. + * ARM: OMAP2: DVFS: DSP registration fix. + * ARM: OMAP2: DVFS: Cam registration fix. + * ARM: OMAP2: DVFS: OneNAND registration fix. + * ARM: OMAP2: DVFS: MCSPI registration fix. + * ARM: OMAP2: DVFS: tsc2005 registration fix. + * ARM: OMAP2: DVFS: framebuffer registration fix. + * ARM: OMAP2: DVFS: Notifications, cleanup + * MTD: ONENAND: Whitespaces cleanup + * ARM: OMAP2: DVFS: Fix min notification timeout cap + * ARM: OMAP2: DVFS: Cosmetic fix to messages to syslog + * ARM: OMAP2: DVFS: Improve comments upon driver reg/unreg + * ARM: OMAP2: DVFS: Improve error tracking for notifications + * ALSA: Hack to prevent strong audiple pop in AIC33 + * ALSA: Do not cache reserved and unused registers in AIC33 + * ALSA: Synchronize AIC33 register cache with the chip during initialization + * ALSA: Remove forced write hack from AIC33 put callbacks + * ARM: OMAP2: DVFS: Re-enable OP3 + * ARM: OMAP: Support for HS-USB on 2430SDP + * Fixed dsp_state_updated to properly restore frequency + * Increase DVFS transition latency + * Add type parameter to dsp_state_updated() + * tsc2301-ts: update to use median + avg filtering + * Use in-kernel sockets API + * Fix L2CAP configuration parameter handling + * ARM: OMAP2: Camera: invert lclk polarity. + * ARM: OMAP: TCM825x: invert dclk polarity. + * musb_hdrc: PM & interrupt fixes for tusb6010 + * Revert "HSET tool for the MUSB Controler" + * Revert "musb_hdrc: PM & interrupt fixes for tusb6010" + * musb_hdrc: Improve tusb revision checking + * musb_hdrc: Workaround for tusb spontaneous wake-up issue + * musb_hdrc: Mask tusb interrupts while being handled + * musb_hdrc: Fixes to improve mode switching and VBUS detection for tusb + * Revert "Fix mis-reporting USB Mode on sysfs" + * musb_hdrc: Sync up tusb6010.c with linux-omap + * musb_hdrc: Minor fixes to changing tusb role via sysfs + * musb_hdrc: Fix non-standard loopback test to support ID pin + * DVFS: Don't change tusb to use internal clock + * musb_hdrc: Fix non-standard loopback test + * Add support for deferrable timers + * Add a new deferrable delayed work init + * musb_hdrc: MUSB HOST support on 2430SDP + * musb_hdrc: MUSB plat_uds.c fix + * Enable uart clocks while shutting down dev + * BLUETOOTH: Use cpu_to_le{16,32}() where appropriate. + + -- Yauheni Kaliuta Wed, 13 Jun 2007 15:19:31 +0300 + +kernel-source-rx-34 (2.6.21-osso23) unstable; urgency=low + + * week200723-2 release + * Keep rfcomm_dev in list until it is freed + + -- Yauheni Kaliuta Wed, 6 Jun 2007 14:21:31 +0300 + +kernel-source-rx-34 (2.6.21-osso22) unstable; urgency=low + + * week200723-1 release. Fixes: NB#56874, NB#58953 + * Removed debian changelog entries + * Recalculate SDRAM refresh timer upon OP change + * Input: TSC2301: Add optional keypad name via platform data + * I2C: LM8323: Add device name via platform data + * ARM: OMAP: N800: Give internal keypad a sensible name + * ARM: OMAP: RX-44: Give internal keyboard a sensible name + * MUSB_HDRC: Put the production in better shape + * ARM: OMAP2: DVFS: Remove all the write memory barriers + * ARM: OMAP2: DVFS: Fix notifications timeout + * Expose streaming state to sysfs + * MMC: Avoid using a null pointer when preparing a request + * MMC: Abort stuck commands + * TSC2301 Mixer: GPIO restore fix + * ALSA: Enable AIC33 output state power control with switch controls as well + * ALSA: Keep AIC33 outputs muted by default and let the user space active them + * ALSA: Redefine Digital Mic control in AIC33 + * ALSA: Redefine Digital Mic control rules in AIC33 + * ALSA: Change output state powering and unmuting order in AIC33 + * I2C: LP5521 RGB LED: Add sysfs entry for modifying led current + + -- Yauheni Kaliuta Tue, 5 Jun 2007 17:09:37 +0300 + +kernel-source-rx-34 (2.6.21-osso21) unstable; urgency=low + + * Fixed bugfixes in changelog. Fixes: NB#57858, NB#55241, NB#57582, + NB#56403. + + -- Yauheni Kaliuta Tue, 29 May 2007 17:24:40 +0300 + +kernel-source-rx-34 (2.6.21-osso20) unstable; urgency=low + + * week200722-3 release + * OneNAND: Fix timings for DVFS + * Remove duplicate DVFS notification callback + * musb_hdrc: Add SRP Interface and control it through sysfs + * Add Sysfs Interface to Control Vbus states + * Add more Test Modes + * HSET tool for the MUSB Controler + * Leave GPIO[7:6] pullups enabled. + * Remove unnecessary state machine sysfs entry + * Make SRP pass in all Electrical Tests + * Security: Kernel OOM-killer and allocation denial use different rules + * Fix blizzard to not enable osc_ck on every DVFS notify (second try, no ws) + * Pass process information to userspace coredump helper + * USB: Disable file_storage USB_CONFIG_ATT_WAKEUP + * musb_hdrc: Implement workaround for tusb3.0 wbus bug rev2 + * musb_hdrc: Make HNP work + * USB: Fix OTG HNP for hub.c + + -- Yauheni Kaliuta Tue, 29 May 2007 17:18:58 +0300 + +kernel-source-rx-34 (2.6.21-osso19) unstable; urgency=low + + * week200722-2 release + * ARM: OMAP2: DVFS: remove all the temporary code + * ARM: OMAP2: DVFS: OMAP2 DVFS driver interface + * ARM: OMAP2: DVFS: Processor driver internal data. + * ARM: OMAP2: DVFS: OP packing + * ARM: OMAP2: DVFS: Creation of transition table. + * ARM: OMAP2: DVFS: Create sorted list of frequencies. + * ARM: OMAP2: DVFS: Add interface to load OP configurations + * ARM: OMAP2: DVFS: Add get/set OP functionality + * ARM: OMAP2: DVFS: Debug interface for get/set OP + * ARM: OMAP2: DVFS: DVFS Initialisation function. + * ARM: OMAP2: DVFS: Fix initialization of DVFS + * ARM: OMAP2: DVFS: Configuration of supported OPs + * ARM: OMAP2: CPUFREQ: Update hardcoded OP. + + -- Yauheni Kaliuta Fri, 25 May 2007 15:48:58 +0300 + +kernel-source-rx-34 (2.6.21-osso18) unstable; urgency=low + + * week200722-1 release + * OMAP2 DVFS support for McSPI + * Fix threaded DVFS notification logic and corresponding drivers + * ALSA: Trivial fix to AIC33 input gain get function + * ALSA: Hack: Force register write always in AIC33 put callbacks + * I2C: LM8323: Fix keyboard and keypad LED illuminatium issues + * Hot fix. For lcd_omap_selftest. + + -- Yauheni Kaliuta Fri, 25 May 2007 15:15:08 +0300 + +kernel-source-rx-34 (2.6.21-osso17) unstable; urgency=low + + * week200721-1 release + * OneNAND: DVFS workaround + * OMAP2 DVFS support for TUSB6010 + * LED: OMAP PWM: Use work queue for brightness + * Fix mis-reporting USB Mode on sysfs + * Sysfs USB OTG State Machine Interface + * Re-enable DMA on TUSB6010. + * OMAP: MMC: Add error recovery in ISR when a command/data error + * ARM: OMAP2: RX-34/RX-44: Revised Operating points + * RX-44: tsc2005: DVFS support + * ARM: OMAP2: PM: Remove duplicated code. + * ARM: OMAP2: DVFS: TSC2005: Cleanup notifications handling. + * OMAP: MMC: Fix timeout calculation + * MMC: Use 1.8V correctly on slots 0 and 1 + * MMC: Enable highspeed MMC and SD capability + * I2C: LM8323: Coding style update + * ARM: OMAP: Remove support for TLV320AIC33 from Nokia N800 defconfig + * ALSA: Gradual update patch to AIC33. Code removal for re-implementation + * ALSA: Gradual update patch to AIC33. Add support to digital microphone + * ARM: OMAP: Add digital microphone into Nokia RX-44 AIC33 configuration + * ALSA: Clean-up AIC33 + * ARM: OMAP: RX-44: Remove unused rx44_devices array + * ARM: OMAP: RX-44: Call tsl2563_dev_init in board-rx44.c + * ALSA: Add one missing register into AIC33 header file + * ALSA: Rename DOUBLE control build macros in AIC33 to DOUBLE_R + * ALSA: Add build macros for input gain controls in AIC33 + * ALSA: Implement AIC33_IGAIN_DOUBLE_R control functions in AIC33 + * ALSA: Hack-add Nokia RX-44 specific Mic1 input gain controls into AIC33 + * I2C: LP5521: Set current to 4,7mA for RGB LEDs + + -- Yauheni Kaliuta Tue, 22 May 2007 16:45:58 +0300 + +kernel-source-rx-34 (2.6.21-osso16) unstable; urgency=low + + * week200720-1 release. Fixes: NB#55509 + * ARM: OMAP: Enable support for retu-headset driver in Nokia N800 and RX-44 + + -- Yauheni Kaliuta Tue, 15 May 2007 13:40:10 +0300 + +kernel-source-rx-34 (2.6.21-osso15) unstable; urgency=low + + * Changelog cleanup + + -- Yauheni Kaliuta Fri, 11 May 2007 15:58:22 +0300 + +kernel-source-rx-34 (2.6.21-osso14) unstable; urgency=low + + * week200719-4 release + * I2C: LM8323: Use work queue for PWM writes + * ARM: OMAP2: RX-34/RX-44: Fix plat description of retu-rtc + * ARM: OMAP2: RX-34/RX-44: Fix plat description of tahvo + * ARM: OMAP2: RX-34/RX-44: Fix plat description of tahvo-usb + * Add tsl2563 to hwmon class + * ALSA: Add bypass path controls from input PGA to output stages in AIC33 + * ALSA: Add some register definitions into AIC33 header file + * ALSA: Gradual update patch to AIC33. Removal of OMAP GPIO dependencies + * ARM: OMAP: Update board-n800-audio with AIC33 changes + * ALSA: Miscellaneous clean-ups to AIC33 + * ALSA: Rename function tlv320aic33_write_value to tlv320aic33_write in AIC33 + * ALSA: HACK: Activate high-power and line outputs by default in AIC33 + * ALSA: Two fixes to AIC33 "Capture Volume" control + * Add and enable new CPUFREQ null govenor + * Add support for CPUFREQ + * Add interface to track DSP state change + * I2C: LP5521: Enable automatic power save mode for RGB LED + * Check that device is in rfcomm_dev_list before deleting + * Disconnect l2cap connection after last dlc + + -- Yauheni Kaliuta Fri, 11 May 2007 15:31:07 +0300 + +kernel-source-rx-34 (2.6.21-osso13) unstable; urgency=low + + * week200719-2 release + * 8250: fix possible deadlock between serial8250_handle_port() and serial8250_interrupt() + * ALSA: Fix OMAP24xx EAC codec port I2S master/slave support + * ARM: OMAP2: Force APLLs always active + * ARM: OMAP2: Place SMS and SDRC into smart idle mode + * ARM: OMAP: /sys/kernel/debug/omap_gpio + * ARM: OMAP: 2430SDP support for omap2 OneNAND driver + * ARM: OMAP: 243x: Add mappings for SDRC and SMS + * ARM: OMAP: 24xx pinmux updates + * ARM: OMAP: Add DMA IRQ sanity checks + * ARM: OMAP: Add DSP common code + * ARM: OMAP: Add apollon gpio keys using gpio-keys input + * ARM: OMAP: Add function to print clock usecounts + * ARM: OMAP: Add mailbox support for IVA + * ARM: OMAP: Add minimal OMAP2430 support + * ARM: OMAP: Add omap osk defconfig + * ARM: OMAP: Add omap2430 watchdog IO mapping + * ARM: OMAP: Add support for Amstrad Delta keypad + * ARM: OMAP: Add support for high-speed I2C init + * ARM: OMAP: Avoid updating system time for sub-jiffy interrupts + * ARM: OMAP: Basic support for siemens sx1 + * ARM: OMAP: Board Apollon update, fix boot + * ARM: OMAP: Device init for OMAP24xx Enhanced Audio Controller + * ARM: OMAP: Enable 24xx GPIO autoidling + * ARM: OMAP: Enable DSP clocks for McBSP on omap310 + * ARM: OMAP: Enable serial idling and wakeup features + * ARM: OMAP: FB sync with N800 tree (support for dynamic SRAM allocations) + * ARM: OMAP: FB: add controller platform data + * ARM: OMAP: Finish converting retu and retu-wdt to platform devices + * ARM: OMAP: Fix GCC-reported compile time bug + * ARM: OMAP: Fix PRCM base register usage for 243x + * ARM: OMAP: Fix gpmc header + * ARM: OMAP: Fix typo in board-h4.h + * ARM: OMAP: Fix warning in lcdc.c + * ARM: OMAP: Fix warning in timer32k.c + * ARM: OMAP: H2 lcd updates for SPI framework + * ARM: OMAP: H3 workqueue fixes + * ARM: OMAP: Implement workaround for GPIO wakeup bug in OMAP2420 silicon + * ARM: OMAP: MPUIO wake updates + * ARM: OMAP: Merge PM code from N800 tree + * ARM: OMAP: Merge board specific files from N800 tree + * ARM: OMAP: Merge driver headers from N800 tree + * ARM: OMAP: Merge gpmc changes from N800 tree + * ARM: OMAP: Mostly cosmetic to sync up with linux-omap tree + * ARM: OMAP: N770: add missing LCD, LCD controller, touchscreen device registration + * ARM: OMAP: OSK led fixes + * ARM: OMAP: Optimize INTC register accesses and enable autoidling + * ARM: OMAP: Palm Tungsten E board update + * ARM: OMAP: Palm Tungsten|T support + * ARM: OMAP: Palm T|E board definition update + * ARM: OMAP: PalmZ71 support + * ARM: OMAP: Register tsc2102 on Palm Tungsten E + * ARM: OMAP: Replace mach-omap/omap2 with mach-omap2 + * ARM: OMAP: Sync H4 board init with linux-omap + * ARM: OMAP: Sync board specific files with linux-omap + * ARM: OMAP: Sync core code with linux-omap + * ARM: OMAP: Sync framebuffer headers with N800 tree + * ARM: OMAP: Sync headers with linux-omap + * ARM: OMAP: TSC2101: add platform init / registration to board files + * ARM: OMAP: TUSB EVM init + * ARM: OMAP: Tabify mux.c + * ARM: OMAP: USB peripheral support on H4 + * ARM: OMAP: Update EAC codec port mode in board-n800-audio.c + * ARM: OMAP: Update Nokia N800 defconfig + * ARM: OMAP: Update omap h2 defconfig + * ARM: OMAP: Update timer32k.c to compile + * ARM: OMAP: abstract debug card setup (smc, leds) + * ARM: OMAP: add 24xx GPIO debounce support + * ARM: OMAP: add SoSSI clock + * ARM: OMAP: add SoSSI clock (call propagate_rate for childrens) + * ARM: OMAP: add SoSSI clock (remove manual checking of SoSSI state from idle) + * ARM: OMAP: cleanup apollon board + * ARM: OMAP: fix OMAP1 dmtimer build warning + * ARM: OMAP: fix OMAP1 mpuio suspend/resume oops + * ARM: OMAP: gpio init section cleanups + * ARM: OMAP: gpio object shrinkage, cleanup + * ARM: OMAP: h4 must have blinky leds!! + * ARM: OMAP: omap camera builds again; Mistral init and mux + * ARM: OMAP: omap2/gpmc updates + * ARM: OMAP: omap2/memory.c compile fixes + * ARM: OMAP: osk+mistral backlight, power, board specific + * ARM: OMAP: partial LED fixes + * ARM: OMAP: plat-omap changes for 2430 SDP + * ARM: OMAP: restore CONFIG_GENERIC_TIME + * ARM: OMAP: rx-44 depends on n800, remove duplicate linking + * ARM: OMAP: speed up gpio irq handling + * ARM:OMAP: Add initial TWL support for non-MPU MMU framework + * Add Nokia CBUS support + * Add mbuesch to .mailmap + * Add missing USRobotics Wireless Adapter (Model 5423) id into zd1211rw + * Allow reading tainted flag as user + * Char: icom, mark __init as __devinit + * Char: mxser, fix TIOCMIWAIT + * Char: mxser_new, fix TIOCMIWAIT + * Char: mxser_new, fix recursive locking + * Fix possible NULL pointer access in 8250 serial driver + * Fix spelling in drivers/video/Kconfig + * Fixed booting omap2 again + * Formating changes for Basic OMAP2430 High speed I2C + * Get TSC2101 and TSC2102 drivers in sync with new ALSA struct naming + * I2C: Add high-speed support to omap-i2c + * IB/mthca: Fix data corruption after FMR unmap on Sinai + * IPv6: fix Routing Header Type 0 handling thinko + * KVM: Fix off-by-one when writing to a nonpae guest pde + * Linux 2.6.21 + * Longhaul - Revert ACPI C3 on Longhaul ver. 2 + * MAINTAINERS: use lists.linux-foundation.org + * MTD: Add onenand support for omap24xx + * Minor bug fixes to i2c-pasemi + * NF: Add iptables IDLETIMER target + * NFS: Don't clear PG_writeback until after we've processed unstable writes + * NFS: Fix race in nfs_set_page_dirty + * NFS: Fix the 'desynchronized value of nfs_i.ncommit' error + * NFS: clean up the unstable write code + * RPC: Fix the TCP resend semantics for NFSv4 + * Revert "adjust legacy IDE resource setting (v2)" + * Revert "e1000: fix NAPI performance on 4-port adapters" + * SPI: Add TSC2102 main SPI driver + * SPI: Add an SPI master driver for the OMAP2 McSPI controller + * SPI: Add support for TSC2101 + * SPI: Add support for TSC2301 protocol driver + * SPI: TSC2046 touchscreen support + * Taskstats fix the structure members alignment issue + * USB: Allow transfer_buffer with transfer_dma + * WATCHDOG: use base address from platform resources and make 2430 boot again + * [ARM] 4313/1: S3C24XX: Update s3c2410 defconfig to 2.6.21-rc6 + * [ARM] Update mach-types + * [BNX2]: Fix occasional NETDEV WATCHDOG on 5709. + * [BRIDGE]: Unaligned access when comparing ethernet addresses + * [IPSEC] af_key: Fix thinko in pfkey_xfrm_policy2msg() + * [IPV6]: Disallow RH0 by default. + * [IrDA]: Correctly handling socket error + * [KEY]: Fix conversion between IPSEC_MODE_xxx and XFRM_MODE_xxx. + * [MIPS] Add missing silicon revisions for BCM112x + * [MIPS] Disallow CpU exception in kernel again. + * [MIPS] Fix BUG(), BUG_ON() handling + * [MIPS] Fix oprofile logic to physical counter remapping + * [MIPS] Fix wrong checksum for split TCP packets on 64-bit MIPS + * [MIPS] Retry {save,restore}_fp_context if failed in atomic context. + * [NETLINK]: Don't attach callback to a going-away netlink socket + * [NETLINK]: Infinite recursion in netlink. + * [NET]: Fix UDP checksum issue in net poll mode. + * [NET]: Get rid of alloc_skb_from_cache + * [NET]: Set a separate lockdep class for neighbour table's proxy_queue + * [PARPORT] SUNBPP: Fix OOPS when debugging is enabled. + * [PPP]: Fix skbuff.c:BUG due incorrect logic in process_input_packet() + * [SBUS] vfc_dev.c: kzalloc + * [SCTP]: Do not interleave non-fragments when in partial delivery + * [SCTP]: Fix assertion (!atomic_read(&sk->sk_rmem_alloc)) failed message + * [SCTP]: Unmap v4mapped addresses during SCTP_BINDX_REM_ADDR operation. + * [SPARC] openprom: Switch to ref counting PCI API + * [SUNHME]: Fix module unload. + * [SUNLANCE]: Fix module unload. + * [SUNQE]: Fix MAC address assignment. + * [TCP]: Congestion control initialization. + * [XFRM]: beet: fix pseudo header length value + * [netdrvr] depca: handle platform_device_add() failure + * acpi-thermal: fix mod_timer() interval + * allow vmsplice to work in 32-bit mode on ppc64 + * alpha: build fixes - force architecture + * alpha: fixes for specific machine types + * alpha: more fixes for specific machine types + * cache_k8_northbridges() overflows beyond allocation + * cfq-iosched: fix alias + front merge bug + * cfq-iosched: fix sequential write regression + * check node crc before doing anything else + * check node crc before doing anything else + * check node crc before doing anything else + * cxgb3 - Fix low memory conditions + * cxgb3 - PHY interrupts and GPIO pins. + * do not truncate irq number for icom adapter + * drivers/macintosh/smu.c: fix locking snafu + * drivers/net/hamradio/baycom_ser_fdx build fix + * exec.c: fix coredump to pipe problem and obscure "security hole" + * fault injection: add entry to MAINTAINERS + * fix OOM killing processes wrongly thought MPOL_BIND + * fix bogon in /dev/mem mmap'ing on nommu + * gianfar needs crc32 lib dependency + * hpt366: fix kernel oops with HPT302N + * hwmon/w83627ehf: Don't redefine REGION_OFFSET + * hwmon/w83627ehf: Fix the fan5 clock divider write + * i2c-pasemi: Depend on PPC_PASEMI again + * i2c: Merge omap i2c drivers from omap-historic + * i386: Fix some warnings added by earlier patch + * ide/Kconfig: add missing range check for IDE_MAX_HWIFS + * ide/pci/delkin_cb.c: add new PCI ID + * ieee1394: update MAINTAINERS database + * kernel-doc: fix plist.h comments + * knfsd: use a spinlock to protect sk_info_authunix + * musb_hdrc: Allow tusb dma to transfer various data sizes + * musb_hdrc: Avoid host babble by checking tx fifo + * musb_hdrc: Clean-up TUSB fifo access + * musb_hdrc: DMA RX workaround for tusb6010 + * musb_hdrc: Enable host DMA for tusb6010 + * musb_hdrc: Stop host session on BABBLE + * musb_hdrc: Transfer remaining bytes with PIO + * omap2: fix clock.h rate_offset whitespace + * omap2: merge CONTROL_STATUS defines + * omap2: standardize clock.h enable_reg/enable_bit order + * omap2: use symbolic constant to mark parent-controlled clocks in clock.[ch] + * oom: kill all threads that share mm with killed task + * packet: fix error handling + * page migration: fix NR_FILE_PAGES accounting + * paride drivers: initialize spinlocks + * pata_sis: Fix oops on boot + * reiserfs: fix xattr root locking/refcount bug + * serial: 8250 changes for omap + * sis900: Allocate rx replacement buffer before rx operation + * sky2: EC-U performance and jumbo support + * sky2: disable ASF on all chip types + * sky2: disable support for 88E8056 + * sky2: handle descriptor errors + * sky2: no jumbo on Yukon FE + * sky2: version 1.14 + * smc91x: Add code to detect errors caused by bad memory timings + * smc91x: Clean up omap machine type handling + * spi: fix use of set_cs in spi_s3c24xx driver + * spidernet: Fix problem sending IP fragments + * ufs proper handling of zero link case + * usb-net/pegasus: fix pegasus carrier detection + * v9fs: don't use primary fid when removing file + * x86-64: Always flush all pages in change_page_attr + * x86-64: make GART PTEs uncacheable + * x86: Fix gcc 4.2 _proxy_pda workaround + * x86: Fix potential overflow in perfctr reservation + * x86: Remove noreplacement option + + -- Yauheni Kaliuta Tue, 8 May 2007 16:59:49 +0300 + +kernel-source-rx-34 (2.6.21-osso12) unstable; urgency=low + + * week200719-2 preprerelease, waiting for changelog + + -- Yauheni Kaliuta Sun, 6 May 2007 17:21:28 +0300 + +kernel-source-rx-34 (2.6.21-osso11) unstable; urgency=low + + * week200718-1 release + * ARM: OMAP2: Camera: Properly set video_device's parent device + * ARM: OMAP2: Camera: update: mostly DVFS and reset related issues. + * ARM: OMAP2: DVFS notification registration checks for end-of-transition + * ARM: OMAP2: RX-34/RX-44: Add DVS to DFS + * ARM: OMAP2: RX-34/RX-44: Dynamic Voltage Scaling support for OMAP2 + * ARM: OMAP: Build USB Gadget Support as modules for nokia 2420 + * ARM: OMAP: DVFS: Add DSS1 clock scaling + * ARM: OMAP: Fix to make omap_mbox_send_sync() independently + * ARM: OMAP: MMC: Use sys_notify for userland event monitor + * ARM: OMAP: RX-44: Add cover as third PWM + * ARM: OMAP: RX-44: Add slide and lock GPIOs + * ARM: OMAP: Raise bootloader tag size + * ARM: OMAP: Remove rx44_defconfig + * ARM: OMAP: Rename nokia 2420 defconfig + * ARM: OMAP: update nokia 2420 defconfig + * ARM: OMAP: update nokia 2420 defconfig + * Added missing CONFIG_SCSI_MULTI_LUN to nokia_2420_defconfig + * DVFS: Add support DSP with DSP side S/W assistant + * DVFS: Add timeout to wait DSP reply for reliability + * DVFS: Fix notifier kernel thread problem when suspending + * DVFS: Re-enabled DVFS kernel thread for DSP + * Disable summary after wbuf recovery + * FB: OMAP: Add Blizzard DVFS support + * FB: OMAP: Add DVFS handling + * FB: OMAP: Be a little more verbose in RFBI error situations + * I2C: Add LP5521 LED driver + * I2C: LM8323: Fix author annotation + * MUSB_HDRC: Allow selecting OTG, peripheral or host mode via sysfs + * OMAP: Store switch state for OUTPUT gpio-switches + * OTG WHITELIST + * Prevent list corruption when handling write errors + * TUSB6010 Loopback Test + * check node crc before doing anything else + * fix deadlock on error path + + -- Yauheni Kaliuta Fri, 27 Apr 2007 17:55:40 +0300 + +kernel-source-rx-34 (2.6.21-osso10) unstable; urgency=low + + * week200717-2 release + * mmc: Add high capacity mmc card support + * ARM: OMAP2: Camera: driver update. + * ARM: OMAP2: Camera: Add initial DVFS support. + + -- Yauheni Kaliuta Tue, 24 Apr 2007 14:37:20 +0300 + +kernel-source-rx-34 (2.6.21-osso9) unstable; urgency=low + + * Fixed changelog (added skipped records) + * DVFS: Fix incorrect event use of DVFS event variables + * DVFS: Fix incorrect use of daemonize + * DVFS: Initial DVFS support for DSPGW + * ARM: OMAP: Add resume/suspend interface for OMAP mailbox FW + * DSP: Add sysfs entry to monitor DSP KFUNC device state + * DVFS: Enable DVFS in nokia_internet_tablet_2420_defconfig + * DVFS: Add dvfs_notify_pid check for notify callback in ONENAND + * DVFS: Add dvfs_notify_pid in DSP to use kernel_thread for Notifier + * ARM: OMAP: Add mbox_send_sync interface for omap mailbox + * ARM: OMAP: Add mbox_send_sync interface for omap mailbox + * ARM: OMAP: N800: Fix build warning in board-n800-pm.c + * DVFS: Fix incorrect function pointer set in omap DMA + * DVFS: Converted semaphore to mutex + * ARM: OMAP: Fix dma.c compilation for non-dvfs configs + * ARM: OMAP: Fix dma.c compilation for non-dvfs configs + * ARM: Enable TMP105 on OMAP2420 based Nokia Internet Tablets + * ARM: OMAP2: Camera: Fix crash in omap24xxcam_sensor_init. + + -- Yauheni Kaliuta Mon, 23 Apr 2007 15:36:06 +0300 + +kernel-source-rx-34 (2.6.21-osso8) unstable; urgency=low + + * week200717-1 release + * DVFS: Workaround for kernel_thread problem + * mmc: OMAP: Use R6 with SD_SEND_RELATIVE_ADDR + * mmc: OMAP: Add multislot support + * MMC: Enable MMC support on Omap + * HWMON: Add TMP105 temperature sensor driver + * HWMON: Add TMP105 temperature sensor to Kconfig and Makefile + * ARM: Enable TMP105 on OMAP2420 based Nokia Internet Tablets + + -- Yauheni Kaliuta Mon, 23 Apr 2007 14:46:26 +0300 + +kernel-source-rx-34 (2.6.21-osso7) unstable; urgency=low + + * week200716-2 release + * ARM: OMAP: Enable bluetooth in nokia combo config + * Revert "ARM: OMAP2: Add hardware configuration for camera block and camera sensor." + * ARM: OMAP2: Camera: Add generic OMAP camera platform_device. + * N800, RX44: Add hardware-dependent configuration for camera sensor. + * RX44: Add camera and sensor drivers to default configuration. + * N800: Fix default configuration. + * ALSA: Add bluetooth port support and audio path controls into OMAP24xx EAC + + -- Yauheni Kaliuta Tue, 17 Apr 2007 18:10:34 +0300 + +kernel-source-rx-34 (2.6.21-osso6) unstable; urgency=low + + * debian/rules: changed defconfig name + * ARM: Add defconfig for OMAP2420 based Nokia Internet Tablets + * ARM: OMAP: DVFS cleanup + * DVFS: Add DFS support for OneNAND driver + * DSPGW: Remove unused mailbox memeber + * ARM: OMAP: ONENAND: Whitespace cleanup: drivers/mtd/onenand/omap2.c + * DVFS: Fix build error with DVFS disabled in kernel config + * ARM: OMAP: ONENAND: Add space in error message + + -- Yauheni Kaliuta Mon, 16 Apr 2007 18:25:17 +0300 + +kernel-source-rx-34 (2.6.21-osso5) unstable; urgency=low + + * Forbidden words cleanup + + -- Yauheni Kaliuta Wed, 11 Apr 2007 13:01:50 +0300 + +kernel-source-rx-34 (2.6.21-osso4) unstable; urgency=low + + * week200715-2 release + * ARM: OMAP: RX-44: Enable omap uart driver in defconfig + * N800: Fix default configuration. + * RX44: Add camera and sensor drivers to default configuration. + * N800, RX44: Add hardware-dependent configuration for camera sensor. + * ARM: OMAP2: Camera: Add generic OMAP camera platform_device. + * Revert "ARM: OMAP2: Add hardware configuration for camera block and camera sensor." + * ARM: OMAP: DVFS cleanups + * ARM: OMAP: DVFS for n800 + * ARM: OMAP: Transparently queue dma requests during DVFS transitions + * ARM: OMAP: Send pre & post notifications for dvfs + * ARM: OMAP: Sync clk fw state with current HW settings + * ARM: OMAP: Takes a snapshot of a set of memory locations + * ARM: OMAP: Peek'nPoke 8, 16 & 32 bit words + * ARM: OMAP: Enables Observability Modes + * ARM: OMAP: Debug Mode + * OMAP: Add serial driver for OMAP UARTs + * ARM: OMAP2: Add hardware configuration for camera block and camera sensor. + * ARM: OMAP: Camera if: Modify camera/sensor interface. + * ARM: OMAP2: Camera, TCM825x: Add entries to Makefile and Kconfig. + * ARM: OMAP: TCM825x: Add driver. + * ARM: OMAP2: Camera: Add driver. + * ALSA: Remove include statement for non-existing header file in AIC33 driver + * ALSA: Remove non-global AIC33 header file + * ARM: OMAP: FB: Properly initialise struct in full-screen update + * I2C: LM8323: Fix debugging + * ARM: OMAP: RX-44: Minor keymap updates + * ARM: Activate audio support in rx44_defconfig + * ARM: OMAP: Add audio support to Nokia RX-44 + * Add driver for TLV320AIC23 audio codec + * ALSA: Fix OMAP24xx EAC codec port I2S master/slave support + * Add TSL2563 to rx44_defconfig + * Add TSL2563 driver + * ARM: OMAP2: RX-44: Add LM8323 to defconfig + * ARM: OMAP2: RX-44: Add support for new LM8323 driver + * I2C: Add NSC LM8323 driver + * ARM: OMAP: RX-44: Remove old LM8323 code + * Add TSC2005 touchscreen support + * ARM: OMAP: Dummy fix to make board-rx44.o linkable along with board-n800.o + * ARM: Add board rx44_defconfig + * ARM: OMAP: Add basic support for Nokia RX-44 board + * ARM: Hack add machine type for Nokia RX-44 + * ARM: OMAP: N800 mach type + * RX-44:DVFS: Rename dvfs_op to dvfs_init_op + + -- Yauheni Kaliuta Tue, 10 Apr 2007 21:07:04 +0300 + +kernel-source-rx-34 (2.6.21-osso3) unstable; urgency=low + + * Package name back + + -- Yauheni Kaliuta Tue, 3 Apr 2007 18:16:38 +0300 + +kernel-source-rx-44 (2.6.21-osso3) unstable; urgency=low + + * real rx-44-2007-14-1 release + * Oulu's blizzard.c reverted + + -- Yauheni Kaliuta Tue, 3 Apr 2007 16:49:09 +0300 + +kernel-source-rx-44 (2.6.21-osso2) unstable; urgency=low + + * Oulu's blizzard.c. + + -- Yauheni Kaliuta Mon, 2 Apr 2007 18:56:29 +0300 + +kernel-source-rx-44 (2.6.21-osso1) unstable; urgency=low + + * week200714-1 release + * First RX-44 release + * Updated upstream sources + + -- Yauheni Kaliuta Mon, 2 Apr 2007 18:53:47 +0300 + +kernel-source-rx-34 (2.6.18-osso42) unstable; urgency=low + + * week200713-1 release + * MMC: Add support for mmc v4 high speed mode + * mmc: Support for high speed SD cards + * mmc: Add support for SDHC cards + * mmc: Graceful fallback for fancy features + * mmc: MMC sector based cards + + -- Yauheni Kaliuta Tue, 27 Mar 2007 15:15:01 +0300 + +kernel-source-rx-34 (2.6.18-osso41) unstable; urgency=low + + * week200712-1 release + * Correct partition failed erase address + * Use yield() between GC passes in background thread. + * JFFS2: fix deadlock on error path + * Support piping into commands in /proc/sys/kernel/core_pattern + * Pass process information to userspace coredump helper + * Kernel OOM-killer and allocation denial use different rules + + -- Yauheni Kaliuta Tue, 20 Mar 2007 17:50:42 +0200 + +kernel-source-rx-34 (2.6.18-osso40) unstable; urgency=low + + * blizzard: fix lame full screen update bug + + -- Yauheni Kaliuta Wed, 7 Mar 2007 14:56:12 +0200 + +kernel-source-rx-34 (2.6.18-osso39) unstable; urgency=low + + * week200710-1 release + * OMAP2: Enable limp state (no sys_clkreq) even when osc_ck is enabled + + -- Yauheni Kaliuta Wed, 7 Mar 2007 12:09:34 +0200 + +kernel-source-rx-34 (2.6.18-osso38.2) unstable; urgency=low + + * Fixed config for the last change + + -- Yauheni Kaliuta Fri, 2 Mar 2007 15:47:47 +0200 + +kernel-source-rx-34 (2.6.18-osso38.1) unstable; urgency=low + + * Production release with a fixed UART + + -- Yauheni Kaliuta Fri, 2 Mar 2007 14:39:14 +0200 + +kernel-source-rx-34 (2.6.18-osso38) unstable; urgency=low + + * week200709-1 release + * Tahvo: Only mask MeasReady interrupt when suspending + * TSC2301 Mixer: Lazy fix to GPIO restore + * Use official machine id for N800 + * blizzard: more robust suspend / resume + + -- Yauheni Kaliuta Tue, 27 Feb 2007 16:29:44 +0200 + +kernel-source-rx-34 (2.6.18-osso37) unstable; urgency=low + + * week200707-1 release + * N800: Remove needless codec PLL startup delay from + board-n800-audio.c + * TSC2301 keypad: workaround the keypad scanner stuck HW bug + * [JFFS2] Reschedule in loops + * OneNAND: leave watchdog alone + * TSC2301 Mixer: Update notes text + * TSC2301 Mixer: Update power control rules + * TSC2301 Mixer: Slightly updated power control rules + * DSP: Fixed Spinlocks in DSP mailbox + * N800: Separate EAC and sys_clkout2 pin multiplexing in + board-n800-audio.c + * ARM: VM: fix user page protection macros + * TSC2301 Mixer: Implement delayed power-down + * ARM: OMAP2: Camera: More robust reset sequence. + * ARM: OMAP2: Camera: Add frame_check to sensor interface + * ARM: OMAP2: Camera: Call sensor frame_check + * ARM: OMAP2: Camera: Make omap24xxcam_reset_work more public + * ARM: OMAP2: Camera: Add sensor jamming detection code. + + -- Yauheni Kaliuta Tue, 13 Feb 2007 15:35:00 +0200 + +kernel-source-rx-34 (2.6.18-osso36) unstable; urgency=low + + * week200705-2 release + * ARM: OMAP2: Camera: Fix videobuf_buffer memory leak. + * TUSB: Save and restore TUSB_PRCM_CONF reg during loopback test + * PM: Force UART clocks off during software suspend + * n800_defconfig: Link Bauhaus in-kernel again + * Tahvo: Mask all IRQs when suspending the chip + + -- Yauheni Kaliuta Fri, 2 Feb 2007 16:20:27 +0200 + +kernel-source-rx-34 (2.6.18-osso35) unstable; urgency=low + + * week200705-1 release + * ARM: OMAP: Remove include statement from N800 board file + * ARM: OMAP2: Camera: Clear mmapped pages. + * ARM: OMAP2: Camera: Don't include linux/config.h. + * ARM: OMAP: EAC: Fix bug in eac_enable_clocks function + * [PATCH] MUSB HDRC: RMMOD Fail-fixing + * PM: Adds EXPORT_SYMBOL for omap2_allow_sleep and omap2_block_sleep + * n800_defconfig: compile musb_hdrc as module + * DSP: Added locks for request_queue protection + * DSP: Added locks for preemption + * DSP: Moved lock points along with the previous change + * Bluetooth: Shutdown the BT chip after probing. + * DSP: Get rid of DSP for production release + * Fix typo in drivers/bluetooth/hci_h4p/core.c + + -- Yauheni Kaliuta Wed, 31 Jan 2007 14:37:30 +0200 + +kernel-source-rx-34 (2.6.18-osso34) unstable; urgency=low + + * Removed forbidden words from changelog + + -- Yauheni Kaliuta Tue, 9 Jan 2007 16:27:53 +0200 + +kernel-source-rx-34 (2.6.18-osso33) unstable; urgency=low + + * week200702-1 release + * blizzard: Partial updates for YUV422 planes + * TSC2301 Mixer: Clarify a comment about PLL shutdown when input clock is off + * DSP: Added reset operation for omap mmu framework + * DSP: Added IPI initialization for ioctl(MMUINIT) + * DSP: Modified to monitor longer response time for dsp message + * DSP: Fixed potential sleep under spinlock + * DSP: Fixed potential soft lockup in mailbox + * ARM: OMAP: N800: Increase third fb plane size + * ARM: OMAP2: Camera: Make DMA source burst size 32 + * OneNAND: report about single-bit errors + * OneNAND: bugfix: return error codes + * OneNAND: Always print error messages + * OneNAND: Correctly catch ECC and other onenand_wait errors + * OneNAND: Make read-word function calls consistent + * OneNAND: Check gpio errors and timeouts in onenand_wait + + -- Yauheni Kaliuta Tue, 9 Jan 2007 16:17:33 +0200 + +kernel-source-rx-34 (2.6.18-osso31) unstable; urgency=low + + * week200701-1 release + * OneNAND: Disable DMA read for now + * ARM: OMAP: I2C: fix tansaction timeout checking + * TSC2301: shut down PLL when external clock is off + * n800: EAC: fix calling order in clock disable + * ARM: OMAP: FB: support for per window HW acceleration + * blizzard: add support for various accelearion options + * ARM: OMAP2: FB: fix frequency lookup in tearing sync setup + * ARM: OMAP: FB: fix locking for mode changes + * ARM: OMAP: FB: support for dynamic SRAM allocations + * ARM: OMAP: FB: support for dynamic memory reconfiguration + * n800: FB: move video plane to SRAM + * ARM: OMAP: FB: add new capability infos + * n800: blizzard: add new capability infos + * ARM: OMAP: FB: Fix cropping for output window + * ARM: OMAP: FB: fix OMAPFB_IOCTL return type + * TSC2301 Mixer: cleanup include statements + * PM: Enable MPU retention + * ARM: OMAP: FB: fix update_first_pixel to use the new update_window IOCTL + + -- Yauheni Kaliuta Wed, 3 Jan 2007 16:13:24 +0200 + +kernel-source-rx-34 (2.6.18-osso30) unstable; urgency=low + + * week200651-3 release + * [JFFS2] add cond_resched() when garbage collecting deletion dirent + * OneNAND: workaround for boot ROM chip detection bug + * Wait until last fw byte is sent in fw uploading + + -- Yauheni Kaliuta Thu, 21 Dec 2006 13:47:43 +0200 + +kernel-source-rx-34 (2.6.18-osso29) unstable; urgency=low + + * week200651-2 release + * BT fixed + + -- Yauheni Kaliuta Tue, 19 Dec 2006 18:08:54 +0200 + +kernel-source-rx-34 (2.6.18-osso28) unstable; urgency=low + + * week200651-1 release + * Bauhaus: Block sleep when USB cable is connected + * Bluetooth: Fix spinlocks and clocks in PM functions. Fixes: NB#49841 + + -- Yauheni Kaliuta Tue, 19 Dec 2006 11:43:07 +0200 + +kernel-source-rx-34 (2.6.18-osso27) unstable; urgency=low + + * week200650-1 release + * Bluetooth: Block sleep when transfer in progress + * MMC: Specify number of blocks in advance for multi-block ops + * PM: Take sleep_block into account when deciding about MPU retention + * PM: Disable MPU retention for now + * DSP: Fixed previous commit for dsp_task_mmap_open/close + + -- Yauheni Kaliuta Mon, 11 Dec 2006 18:06:34 +0200 + +kernel-source-rx-34 (2.6.18-osso26) unstable; urgency=low + + * week200649-1 release + * ARM: OMAP: Add prototypes for omap2_{allow,block}_sleep + * TCM825x: Update XCLK calculation rules to return 24.57 MHz instead of 24 MHz + * ARM: OMAP: Change write burst size in OMAP2 Camera DMA + * DSP: Used to unified devstate lock interface + * DSP: Added notification to userland when failed to delete dsp task + * DSP: Added missed MEM_IOCTL_MMUINIT in dsp_mem ioctl + * DSP: Added POLLERR when devstate is not suitable + * DSP: Removed BUG() for restarting dsp system again + * DSP: Set timeout for waiting devstate transition in open + * PM: Prevent MPU retention in special conditions + + -- Yauheni Kaliuta Tue, 5 Dec 2006 14:51:14 +0200 + +kernel-source-rx-34 (2.6.18-osso25) unstable; urgency=low + + * week200648-1 release + * PM: Reprogram dyntick when entering MPU retention + * OneNAND: Block sleep when reading from bufferram to maximize speed + * TCM825x: Register initialization table cleanup + * TCM825X: Update XCLK calculation rules + * TCM825x: Change register initialization order + * TCM825x: Code readability update + + -- Yauheni Kaliuta Wed, 29 Nov 2006 17:27:09 +0200 + +kernel-source-rx-34 (2.6.18-osso24) unstable; urgency=low + + * week200647-5 release + * MMC: OMAP: Guard against NULL dereference + * PM: Make MPU always try to enter retention + * OMAP: MMC: Enable multi-block write for MMC + + -- Yauheni Kaliuta Fri, 24 Nov 2006 19:53:51 +0200 + +kernel-source-rx-34 (2.6.18-osso23) unstable; urgency=low + + * week200647-4 release + * Revert "Revert "Revert "PM: Make MPU always try to enter retention""" + + -- Yauheni Kaliuta Fri, 24 Nov 2006 11:37:49 +0200 + +kernel-source-rx-34 (2.6.18-osso22) unstable; urgency=low + + * week200647-3 release + * PM: Make MPU always try to enter retention + * Bluetooth: Send GET_REPORT and SET_REPORT aftern connecting + + -- Yauheni Kaliuta Fri, 24 Nov 2006 10:17:35 +0200 + +kernel-source-rx-34 (2.6.18-osso21) unstable; urgency=low + + * Revert "PM: Make MPU always try to enter retention" + + -- Yauheni Kaliuta Thu, 23 Nov 2006 14:44:11 +0200 + +kernel-source-rx-34 (2.6.18-osso20) unstable; urgency=low + + * week200647-1 release + * USB: Rename NXXX to N800 + * PM: Fix Menelaus VCORE scaling + * N800: Update board-n800-audio.c license + * ARM: OMAP: EAC: Update license + * TSC2301 Mixer: Update license and notes text + * PM: Remove clearing of PRCM_IRQSTATUS_MPU + * PM: Make MPU always try to enter retention + * ARM: OMAP: Pass right access permissions to remap_pfn_range in OMAP2 camera + * DSP: Enabled to notify mailbox illegal sequence bit to userland daemon + * DSP: Cleaned up dsptask locking + * DSP: Rename function name for readibility + * DSP: Macro function used to trace dsp taskdev state change + * DSP: Changed printk(KERN_INFO..), to pr_info() + * N800: Removed DEBUG definition + + -- Yauheni Kaliuta Thu, 23 Nov 2006 12:50:11 +0200 + +kernel-source-rx-34 (2.6.18-osso19) unstable; urgency=low + + * week200646-1 release + * PM: Multiplex EAC pins to protected mode when EAC is not used + * Remove leftover debug code from board-n800.c + * omap-rng: Clock rng_ick dynamically + * PM: Set Blizzard POWERDOWN line when powering down + * DSP: Fixed irq state inconsistency + * DSP: Fixed the wrong return value when timeout occured + * TSC2301 keypad: filter out ghost keys + * PM: Merge a couple of forgotten changes + * ARM: OMAP: Manage itself buffers to be mmap'ed in OMAP2 camera + * PM: Disable VCORE scaling for now + * Bluetooth: Send MTU in positive L2CAP config response + * Bluetooth: Don't respond to L2CAP config request if disconnecting + + -- Yauheni Kaliuta Thu, 16 Nov 2006 11:21:22 +0200 + +kernel-source-rx-34 (2.6.18-osso18) unstable; urgency=low + + * Updated defconfig name + + -- Yauheni Kaliuta Thu, 9 Nov 2006 15:54:28 +0200 + +kernel-source-rx-34 (2.6.18-osso17) unstable; urgency=low + + * Updated orig.tar.gz + + -- Yauheni Kaliuta Thu, 9 Nov 2006 15:38:23 +0200 + +kernel-source-rx-34 (2.6.18-osso16) unstable; urgency=low + + * week200645-2 release + * Rename RX-34 to N800 + * Allowing user processes to rise their oom_adj value + * Reduce dirty ratio granularity to 0.1% + * Bluetooth L2CAP: Send right response to unknown option request + * Bluetooth: Update H4+ driver license + * Menelaus: Support for setting regulator sleep and VCORE + * N800: Add a separate file for board-specific PM code + * PM: Increase voltage setup delay + * PM: Enable DC2 sleep and increase floor voltage for more stability + * DSP: Update mailbox driver license + * DSP: Update N800 DSP driver license + + -- Yauheni Kaliuta Thu, 9 Nov 2006 14:15:06 +0200 + +kernel-source-rx-34 (2.6.18-osso15) unstable; urgency=low + + * week200645-1 release + * Change x86 keymapping for KEY_PHONE + * And now the proper keymapping for KEY_PHONE + * PM: Removed unnecessary DSP kill code + * Menelaus: Add support for setting platform data + + -- Yauheni Kaliuta Thu, 9 Nov 2006 10:26:38 +0200 + +kernel-source-rx-34 (2.6.18-osso14) unstable; urgency=low + + * Wrong kernel build because of non-fetched tag + + -- Yauheni Kaliuta Thu, 9 Nov 2006 10:23:51 +0200 + +kernel-source-rx-34 (2.6.18-osso13) unstable; urgency=low + + * week200644-1 release + * Add hid patches from -mh patch set + * bluetooth-hid: keycode range workaround for SU-8W + * Revert "Bauhaus: Disable TUSB idle if cable is connected" + * Revert "musb_hdrc: Workaround for incomplete SETUP packet with USB HSHET + * musb_hdrc: Sync relevant code with public linux-omap tree + * musb_hdrc: TUSB EVM support + * musb_hdrc: Start using common TUSB GPMC init and dynamic GPMC timings + * musb_hdrc: Fix TEST_PACKET again + * musb_hdrc: Clear txcsr and enable tusb doublebuffering + * musb_hdrc: Fix USB SUSPEND on VBUS + * musb_hdrc: Fix TUSB sync DMA burst access + * musb_hdrc: Backport include/linux/usb/otg.h from mainline + * musb_hdrc: Fix warning on pt_regs + * Compile ext2 and ext3 as modules + * Reserve pool for selected users + * MMC: Allow value 3 in CSD struct version + + -- Yauheni Kaliuta Wed, 1 Nov 2006 18:17:14 +0200 + +kernel-source-rx-34 (2.6.18-osso12) unstable; urgency=low + + * week200643-1 release + * DSPGW: Add mutex_unlock for usecount in error return path + * DSPGW: Use remap_pfn_range not remap_page_range in message + * DSPGW: Removed unused memeber in struct taskdev + * DSPGW: Fixed incorrect return value and return checking + * DSPGW: Change return code of devstate_read_lock_and_test() + * DSPGW: Fix error return path in omap_dsp_init() + * MMC: Exclude bad cards from clock calculation + * DSPGW: Error checking for proc_list_add() + * Moved "ioctl.h" to "include/asm/arch/dsp.h" for userland + application to make use of this file. + * ARM: OMAP: omap-pwm-led: Start blinking with on period + * DSPGW: Kernel APIs to sync with dsp during DVFS + * DSPGW: Added sysfs file to sync with dsp during DVFS + * DSPGW: Added a function to get dsp status + * DSPGW: Check return values of __must_check functions + * DSPGW: Return value checks for dsp_ctl.c + * MBOX: Error return path checks for omap_mbox_init() + * ARM: OMAP: omap-pwm-led: Keep power enabled when driver is loaded + * LED: Allow tuning of timer trigger brightness + * Enable LED triggers in default config + + -- Yauheni Kaliuta Wed, 25 Oct 2006 16:03:57 +0300 + +kernel-source-rx-34 (2.6.18-osso11) unstable; urgency=low + + * week200642-1 release + * ARM: OMAP1: clock: add SoSSI clock + * ARM: OMAP: clock: call propagate_rate for childrens + * ARM: OMAP: FB: support for tearing synchronization + * ARM: OMAP1: PM: remove manual checking of SoSSI state from idle + * HWA742: add support for tearing synchronization + * Blizzard: add support for tearing synchronization + + -- Yauheni Kaliuta Tue, 17 Oct 2006 17:27:23 +0300 + +kernel-source-rx-34 (2.6.18-osso10) unstable; urgency=low + + * fixed defconfig name + + -- Yauheni Kaliuta Fri, 13 Oct 2006 22:00:04 +0300 + +kernel-source-rx-34 (2.6.18-osso9) unstable; urgency=low + + * use our sources as orig.tar.gz + + -- Yauheni Kaliuta Fri, 13 Oct 2006 21:48:36 +0300 + +kernel-source-rx-34 (2.6.18-osso8) unstable; urgency=low + + * use .orig.tar.gz from ftp.kernel.org + + -- Yauheni Kaliuta Fri, 13 Oct 2006 15:07:47 +0300 + +kernel-source-rx-34 (2.6.18-osso7) unstable; urgency=low + + * week200641-2 release + * Remove ROMFS from defconfig + * OneNAND: Enable DMA with both reads and writes + * MMC: Do not set unsupported bits in OCR response + * MMC: When rescanning cards check existing cards after mmc_setup() + * DSPGW: Cleaned up dspgw header files to avoid redefine warnings and whitespace alignements + * Remove references to forbidden words + * retu-headset: add support for headset button detection + * TSC2301 Mixer: Power down mic bias output along with the ADC power down + * ARM: OMAP: Keep CAM.XCLK low when powering down sensor in OMAP2 camera + + -- Yauheni Kaliuta Fri, 13 Oct 2006 14:22:38 +0300 + +kernel-source-rx-34 (2.6.18-osso6) unstable; urgency=low + + * renamed defconfig in orig.tar.gz + + -- Yauheni Kaliuta Wed, 11 Oct 2006 19:05:19 +0300 + +kernel-source-rx-34 (2.6.18-osso5) unstable; urgency=low + + * some fdwords cleanups + + -- Yauheni Kaliuta Wed, 11 Oct 2006 18:17:52 +0300 + +kernel-source-rx-34 (2.6.18-osso4) unstable; urgency=low + + * week200641-1 release + * ARM: OMAP: Make oprofile work for ARM11 + * Blizzard: Fix newline bug + * Bauhaus: Disable TUSB idle if cable is connected + * ARM: OMAP: Make OMAP1 work again + * ARM: OMAP: Re: Fix warning in clock.c + * ARM: OMAP: Implement workaround for GPIO wakeup bug in OMAP2420 silicon + * Sanitize camera power-up and -down code + * MMC: Fix "command gets stuck" problem + * TSC2301: audio: move clock handling to correct place + * TSC2301: call suspend / resume also for the touchscreen and keypad + * TSC2301: keypad: workaround for key scan HW bugs + * ARM: OMAP: I2C: Do not use interruptible wait call in omap_i2c_xfer_msg + * MMC: Select only one voltage bit in OCR response + * Add multi block-write capability + * OMAP: MMC: Fix oops when we get a command/data CRC error + * mmc: multi sector write transfers + * DSPGW: Removed EAC workaround patch for dsp s/w (rx-34-specific) + * DSPGW: Cleaned up namespace and indentation for dspgw and mailbox + * DSPGW: MBOX: Added kfunc power message print on mailbox log + * DSPGW: MBOX: Created mailbox workqueue for performance and robustness + * ARM: OMAP: Common MMU management framework + * ARM: OMAP: Common MMU management framework (omap1 specific parts) + * ARM: OMAP: Common MMU management framework (omap2 specific parts) + * DSPGW: mapped EAC and STI for dsp (rx-34-specific) + * DSPGW: MBOX: Deferred mailbox initialization + * DSPGW: MBOX: introduced request_queue for mailbox message handling + * Disable all I/O schedulers except the NOOP scheduler + * ARM: OMAP: DISPC: ignore FIFO underflow + * DSPGW: fix wrong kconfig dependency + * TSC2301: keypad: mask keys when disabled + + -- Yauheni Kaliuta Wed, 11 Oct 2006 17:12:10 +0300 + +kernel-source-rx-34 (2.6.18-osso3) unstable; urgency=low + + * week200640-1 + * CBUS: Tahvo: add atomic set and clear register bits function + * BUS: Retu: Combine set / clear register bits into one function + * CBUS: retu-headset: update set / clear register function + * blizzard: move PM code to board specific file + * Camera: Setting DOUT_BUF to 8mA + * Camera: Fixing bit offsets for the boolean video controls + * musb_hdrc: Workaround for incomplete SETUP packet with USB HSHET + + -- Yauheni Kaliuta Wed, 4 Oct 2006 17:02:13 +0300 + +kernel-source-rx-34 (2.6.18-osso2) unstable; urgency=low + + * week200639-3 release + * OneNAND: Always use CPU to read the buffer RAM + * ARM: OMAP: Camera sensor power management added into OMAP2 camera + * Add iptables support to default config + * omapfb: Enable DISPC and DSS autoidling + * ARM: OMAP: Enable 24xx GPIO autoidling + * TSC2301: Add suspend, resume and wakeup functionality + * CBUS: Enable suspend wakeup for Retu IRQ + * ARM: OMAP: Add function to print clock usecounts + * ARM: OMAP2: Enable serial idling and wakeup features + * ARM: OMAP2: Optimize INTC register accesses and enable autoidling + * ARM: OMAP: Replace clock framework debug functions + * New PM code + * ARM: OMAP: Avoid updating system time for sub-jiffy interrupts + * ARM: OMAP: Optimize idle for dyntick + * ARM: OMAP: FB: add controller platform data + + -- Yauheni Kaliuta Fri, 29 Sep 2006 18:07:55 +0300 + +kernel-source-rx-34 (2.6.18-osso1) unstable; urgency=low + + * week200639-1 release + * new upstream release + * ARM: OMAP2: Add support for forcing osc_ck on + * ARM: OMAP: DSPGW: Remove workaround for dsp s/w pm + * Audio: Do not enable the codec by default + * RM: OMAP: Clock use change for OMAP2 camera + * Revert "Audio: Do not enable the codec by default + * genirq: fix typo in resend + * ARM: OMAP2: fb: clock refcounting for dynamic sleep mode + * ARM: OMAP: OMAP2 dmtimer power management support + * Updated PM patch from Amit + * Typo fix for previous commit + * fb: blizzard: enable dynamic sleep + * MUSB: More TUSB OTG support + * MUSB: TUSB peripheral connection bugfix + * Bluetooth: Dynamic clock usage H4+ driver + * blizzard: fix rev1 suspend + * ARM: OMAP2: PM: remove oscillator clock reference when going idle + * camera: don't disable DSS1 interface clock at suspend + * ARM: OMAP: Avoid sleeping function being called + * MUSB: Enable/disable osc_ck for TUSB + * Fix wrong file path mmc + * ARM: OMAP: DSPGW: Use device model + * ARM: OMAP: DSPGW: Fix deadlock + * ARM: OMAP: Disable keypad repeating + * OneNAND: Enable wait pin monitoring + * ARM: OMAP2: PM: don't put APLLs into auto idle mode + * Blizzard: check line buffer status before starting transfer + * TEA5761: Fix mute control query + * ARM: OMAP: DSPGW: Peripheral (kfunc) control + * ARM: OMAP: DSPGW: Peripheral (kfunc) control, + * ARM: OMAP: DSPGW: make mbox a member of struct omap_dsp + * DSPGW: Fix compilation error + * Bauhaus: Add check for osc_ck handling + * DSPGW: Allow DSP GW to be removed from Kconfig + * ARM: OMAP: DSPGW: DSPGW driver 3.3.1 public release (merge) + * Menelaus: Fix voltage values for VMEM + * Camera: Fix sensor power-on sequence + * ARM: OMAP: DSPGW: fix bug in kfunc device list operation + * Camera: Turn off sensor power if the sensor was not detected + * ARM: OMAP: Add support for forcing osc_ck on + * ARM: OMAP2: Make sure peripherals can be accessed after clk_enable + * ARM: OMAP2: Keep both APLLs active during bootup + * ARM: OMAP: Add sanity check to clk_disable + * ARM: OMAP2: Make McSPI clocking more fine-grained + * Disable cam_turn GPIO IRQ when camera is not popped out + * PM: Don't kill STI clocks + * ARM: OMAP: DSPGW: mailbox build fix + * ARM: OMAP: DSPGW: fix build warning + * ARM: OMAP: DSPGW: Deferred dsp initializtion + * ARM: OMAP: MAILBOX: add member "ick" in struct omap_mbox + * ARM: OMAP: DSPGW: another workaround for eac access from dsp s/w + * ARM: OMAP: DSPGW: remove kfunc to handle mailbox + * Revert "ARM: OMAP: MAILBOX: add member "ick" in struct omap_mbox" + * DSPGW: Fix compilation error in previous commit + + -- Yauheni Kaliuta Wed, 27 Sep 2006 15:54:30 +0300 + +kernel-source-rx-34 (2.6.17-osso9) unstable; urgency=low + + * week200637-1 release + * changed package name to kernel-source-rx-34 + * MUSB: PM cleanup + * MUSB: Enable the TUSB irq signal as a wake event source + * MUSB: Add back irq_work for cable events + * ARM: OMAP: Fix spinlock recursion for dyntick + * ARM: OMAP: Fix omap_set_dma_callback spinlock release + * MUSB: Additional checks for TUSB DMA + * MUSB: Add more TUSB endpoints + * lcd_mipid: add SPI Kconfig dependency + * ARM: OMAP: DSPGW: bugfix: added missing return + * MUSB: PM cleanup + * ARM: OMAP: GPIO: IRQSTATUS2 workaround for retention state + * ARM: OMAP: DSP: Fix shared memory synchronization + * ARM: OMAP: EAC: Clock use change + * ARM: OMAP: DSPGW: Remove compilation warnings + * ARM: OMAP: Fix typo for 24xx GPIO resume + * Set correct mass storage bMaxPower value + * ARM: OMAP: DSPGW: fix build error + * Implement multi-block MMC writes to improve write performance + * MUSB: Miscellaneous updates + * Revert "Fix double deleting rfcomm device" + * Bluetooth: Check if rfcomm device is already deleted + * MUSB: Update TUSB looptest + * MMC: Remove support WP switch + * OMAP: MMC: Fix typo in mmc_omap_resume() + * MUSB: Fix TUSB DMA for short tx packets + * Revert "Implement multi-block MMC writes to improve write performance" + + -- Yauheni Kaliuta Wed, 13 Sep 2006 17:47:42 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso8) unstable; urgency=low + + * ARM: OMAP: DSPGW: bugfix: added missing return + * Merge ../linux-omap + + -- Yauheni Kaliuta Fri, 8 Sep 2006 16:15:21 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso7) unstable; urgency=low + + * week200636-1 + * MUSB: Fix TUSB register access + * OMAP: Menelaus: Add support for controlling Vaux + * Add driver for TMP105 temperature sensor chip + * OMAP: Menelaus: Add prototype for menelaus_set_vaux() + * usb gadget: g_ether spinlock recursion fix + * MUSB: Fix TUSB DMA register access + * MUSB: Optimize g_ether with NET_IP_ALIGN to align buffers + * MUSB: tusb updates 1/2 -- host side test support + * MUSB: tusb patches 2/2 -- whitespace etc + * MUSB: tusb multipoint fixes + * MUSB: Make TUSB DMA debug less verbose + * tell the Mentor HDRC controller driver to avoid ZLPs. + * MUSB: Update defconfig for changed Kconfig names + * MUSB: Update register access based on new HDRC core spec + * Add missing tmp105.c file + * Enable TMP105 + * ARM: OMAP: cleanup init device + * OMAP: Menelaus: Add a stabilization delay of 1 ms after setting voltage + * ARM: OMAP: Add write memory barriers to OMAP2 clock code + * ARM: OMAP: cleanup init device + * ARM: OMAP: omap-pwm-led: Disable GPT when not used + * JFFS2: Use all fragments of nand_ecclayout->oobfree + * OneNAND: Update OOB free table + * MUSB: Clean up TUSB DMA handling + * MUSB: TUSB PM cleanup + * MUSB: Clean up cable status sysfs_notify() events + * MUSB: MiniAB + * IDLETIMER: Update license text + * ARM: OMAP: Remove Remove superfluous/recursive locking for GPIO + * MUSB: Workarounds for TUSB PLL + * MUSB: Minor cleanups + * [PATCH] MUSB: Fix TUSB compilation if CONFIG_USB_TUSB6010_TEST is not set + * ARM: OMAP: F10 spec changed + + -- Yauheni Kaliuta Thu, 7 Sep 2006 17:44:36 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso6) unstable; urgency=low + + * week200635-2 release + * ARM: OMAP: DSPGW: re-add workaround for dsp s/w pm"" + * Remove kernel debugging options from defconfig + * ARM: OMAP: DMA source and destination addresses are unsigned + * MUSB: Update to MUSB snapshot 0825 + * MUSB: Fix USB high-speed electrical test TEST_PACKET mode + * usb gadget: g_ether spinlock recursion fix + * MUSB: Clean up TUSB ep0 register configuration + * MUSB: Clean up TUSB looptest + * MUSB: Disable TUSB looptest debug mode + * Fix double deleting rfcomm device + * ARM: OMAP: Camera scrolling bug fix + * MUSB: Change TUSB DMA log level to be less verbose + * retu-headset: Brown paperbag fix + * MMC: Add sysfs attributes for the WP switch + * ARM: OMAP: Add GPIO irq startup and shutdown functions + * ARM: OMAP: Remove IVA IRQ bank + * RTC: Add rtc-omap + * ARM: OMAP: DISPC scale down in one direction + * ARM: OMAP: DSPGW: bugfix for dynamic dsptask deletion + * ARM: OMAP: Reset timer for OMAP2 camera + * Revert "ARM: OMAP: Add GPIO irq startup and shutdown functions" + * Revert "ARM: OMAP: DSPGW: workaround for dsp s/w pm" + * TSC2301 Mixer: Audio output activation delay added + * ARM: OMAP: Reset GPIO irq state after free_irq() + * Revert "ARM: OMAP: Add GPIO irq startup and shutdown functions" + * GPIO: Re-add top-secret PM voodoo that got lost in previous merge + * BT: Disable driver if no valid address supplied + + -- Yauheni Kaliuta Thu, 31 Aug 2006 15:02:29 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso5) unstable; urgency=low + + * week200634-1 release + * ARM: OMAP: Fix OMAP2 clock.c typo + * ARM: OMAP: Fix GPMC_CS_CONFIG1 writing and typos + * Revert "FIXME: Keep 48M clock enabled until drivers are fixed" + * ARM: OMAP: Use GPT iclk only when needed + * TSC2301 keypad: add disable sysfs entry + * OMAP: MMC: Fix timeout calculation + * MMC: Fix typo + * BT: Fix driver for new skb_pad API + * TSC2301 Mixer: Power control for additional GPIO mixer controls + * audio: Enable audio amplifier's power-down + * ARM: OMAP: Camera compilation fixes for OMAP2 + * ARM: OMAP: Use 32kHz clock source in omap-pwm-led + * TEA5761: update after mainline merge + * ARM: OMAP: Sensor query_control should return -EINVAL when ID is wrong + * ARM: OMAP: ov9640 fixes + * ARM: OMAP: DSPGW: workaround for dsp s/w pm + * Update defconfig + + -- Yauheni Kaliuta Wed, 23 Aug 2006 15:59:33 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso4) unstable; urgency=low + + * week200633-1 release + * CBUS: Add functions for setting/clearing Retu register bits + * Add first version of Retu/Vilma headset detection driver + * Add support for Vilma headset detection + * ARM: OMAP: Camera: DMA setting prevents OMAP sleep + * blizzard: put the device to power save mode during suspend + * ARM: OMAP: EAC: Use resources to pass the base address + * Do not tie headphone indicator to headset detection + * CBUS: Add enable attribute for headset detection + * CBUS: Move the retu-headset device registration to board-specific code + * Add Retu headset device initialization to audio + * TSC2301 Mixer: Fix to PLL configuration + * audio: Add author and activate power down code + * Enable CONFIG_CBUS_RETU_HEADSET and CONFIG_OMAP_RESET_CLOCKS + * ARM: OMAP: DSPGW: fix power management functions + * CBUS: remove unused function from retu-headset + * MUSB: Fix problem with rmmod g_file_storage after unplug + * Introduce OMAP_PM_DEBUG for all debugging code in PM + * Allows Clock FW Refcounting to debug drivers in PM code + * ARM: OMAP: EAC: Locking change and fixes to clock use and + powering sequence + * ARM: OMAP: DSP: dsp powerdomain should be handled in dsp code + * ARM: OMAP: DSP: Fix typo + * Enable suspend-resume on OMAP2, fix GPIO wakeup + * ARM: OMAP: Use McSPI clocks only when needed + * ARM: OMAP: TSC2301 Mixer: Locking added, improved power-up/-down + polling and cleanup + * FIXME: Keep 48M clock enabled until drivers are fixed + + -- Yauheni Kaliuta Thu, 17 Aug 2006 15:58:56 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso3) unstable; urgency=low + + * week200632-1 release + * ARM: OMAP: Remove sys_ck and sys_clkout from McBSP for 24xx + * ARM: OMAP: Fix missing channel parameter in omapfb_main.c + * [PATCH] ARM: OMAP: 2420 boot BUG(): failure to map SRAM + * ARM: OMAP: Sleep is prevented when no LCD is attached + * CBUS: turn off tahvo-usb OTG idle mode during enabling + * Fix typo in MMC driver + * ARM: OMAP: Check STI channel value before registering console driver + * MMC: Do not poll when cover is open and no cards are inserted + * ARM: OMAP: Update gpio-switch framework + * Implement support internal MMC slot cover + * TCM825x: power on/off callback fix + + -- Yauheni Kaliuta Tue, 8 Aug 2006 17:35:57 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso2) unstable; urgency=low + + * week200631-1 release + * ARM: OMAP: omapfb: lcd_mipid ESD is blocking keventd + * OMAP: MMC: Add support for limiting the maximum bus frequency + * ARM: OMAP: Remove non-static declaration of clocks + * If MMC is not enabled in Kconfig, do nothing in mmc + * OMAP: MMC: Fix suspend and resume + * Enable Retu RTC + * Add the lowmem module + * Enable lowmem module + * TEA5761: add support for the chip with V4L2 API + * Enable FM radio in defconfig + * TEA5761: missing init of the video_dev->dev field + * Always use a block size of 512 regardless of MMC/SD capacity + * ARM: OMAP: Camera: get / use DISPC clocks properly + * ARM: OMAP: omapfb: fix error path + * Backport patch-sysrq-deadlock until kernel is updated + * ARM: OMAP: Avoid sleeping during arch_reset + * ARM: OMAP: Fix CONFIG_OMAP_RESET_CLOCKS + * ARM: OMAP: make McBSP support a Kconfig option + * ARM: OMAP: Make GPIO switch framework sysfs usage more sensible + * Remove unneeded #warning from audio + * Enable CONFIG_PM in defconfig + * Update defconfig, disable CONFIG_OMAP_MCBSP + * ARM: OMAP remove McBSP from statically built objects + + -- Yauheni Kaliuta Thu, 3 Aug 2006 18:26:24 +0300 + +kernel-source-rx-34-2.6.17 (2.6.17-osso1) unstable; urgency=low + + * week200630-1 release + * First merged release + * Changed maintaner name + * changed package name + + -- Yauheni Kaliuta Mon, 31 Jul 2006 11:53:32 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso23) unstable; urgency=low + + * week200626-1 release + * ARM: OMAP: DSPGW: MAILBOX: cleanup: unused files + * ARM: OMAP: Generic Mailbox API + * ARM: OMAP: DSPGW: autoidle mailbox + * ARM: OMAP: DSPGW: set autoidle for dsp and mailbox + * ARM: OMAP: DSPGW: power management idle framework + * ARM: OMAP: DSPGW pm idle specific parts + * ARM: OMAP: DSPGW: DVFS blocking + * use the platform resource field for allocating McSPI IO range. + * DMA support for McSPI + + -- Yauheni Kaliuta Wed, 28 Jun 2006 17:03:58 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso22) unstable; urgency=low + + * week200625-1 release + * ARM: OMAP: Fix DMA channel irq handling for omap24xx + * Avoid infinite interrupt loops with zero size packets + * TSC2301 Mixer: Fix compile error + * omapfb: missing return value in omapfb_update_full_screen + + -- Yauheni Kaliuta Tue, 20 Jun 2006 18:37:24 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso21) unstable; urgency=low + + * week200624-1 release + * ARM: OMAP: omap2_mcspi: prevent debug message flood + * dspfs: New simplistic virtual file system for dsp resource management. + * ARM: OMAP: Simple IVA1 co-processor access through dspfs. + * [PATCH] ARM: OMAP: OMAP2 DMA burst support + * ARM: OMAP: Additional 24xx DMA fixes and functions + + -- Yauheni Kaliuta Wed, 14 Jun 2006 16:23:14 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso20) unstable; urgency=low + + * week200623-1 release + * TSC2301 Mixer: Some cleanups and fixes to initialization & exit sequence + * ARM: OMAP: Fixup EAC initializers for gcc 4.1. + * SPI: Kill duplicate TSC2301_MCLK_256xFS definition. + * TSC2301 Mixer: Interface changes + * ARM: OMAP: EAC: Added ALSA sound card instance + * ARM: OMAP: TSC2301 callbacks added into EAC platform_data + * Disable CONFIG_SPI_TSC2301_AUDIO_SELF_REGISTRATION. + * Add bauhaus PM support + * lcd_lph8923: set LCD data lines correctly + * TSC2301 Mixer: Changes to control "Mic Volume" + * lph8923: ESD check and recovery for Ural displays + * retu-led: Initialize blinking PWM (works now also with B3) + * disable CONFIG_SPI_DEBUG + + -- Yauheni Kaliuta Wed, 7 Jun 2006 19:18:58 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso19) unstable; urgency=low + + * week200621-2 release + * Lame try to boot bt chip many times + Some cases bt chip is not started when initialized. In this case + try again, max 4 times. + + -- Yauheni Kaliuta Fri, 26 May 2006 16:56:17 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso18) unstable; urgency=low + + * week200621-1 release + * SPI: add per transfer wordsize and speed parameter + * SPI: rename bitbang_transfer_setup + * ARM: OMAP: omap2_mcspi: use the per transfer wordsize and speedi overrides + * lcd_lph8923: use SPI per transfer parameters + * ARM: OMAP: EAC: Configuration structures added into EAC header file. + * ARM: OMAP: EAC device added + * ARM: OMAP: EAC: Driver made platform independent. + * ARM: OMAP: MMC: bugfix for cover switch event + * TSC2301 Mixer: Minimum register value defined for volume registers. + * ARM: OMAP: DSPGW: memmap for STI + * Merged bt driver + - Use probe(). This is allready one selftest. + - Use 12byte negotiation message + - disable uart while changin speed + - add gpl information and license + - enable power saving + - enable clock framework usage + + -- Yauheni Kaliuta Thu, 25 May 2006 12:34:14 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso17) unstable; urgency=low + + * week200620-1 release + * We also want to use aapcs-linux if the compiler supports it. + * USB: Add g_file_storage product ID for new hardware + * We don't want 8 bits enum optimisations. This should fix some issues with + userspace. + * USB: musb: add pollable sysfs events for TUSB6010 cable + * Enable 32KHz timer and dyntick + * Enable CBUS_RETU_LED + * retu-led: support for LEDs driven by retu + * ARM: OMAP: Build fixes for bogus .driver initialization. + * Merge with upstream + * ARM: OMAP: MMC: PM: fix mmc suspend problem + * ARM: OMAP: Sync gpio.c (GPIO IRQ lazy IRQ disable fix) + + -- Yauheni Kaliuta Wed, 17 May 2006 17:13:31 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso16) unstable; urgency=low + + * week200619-1 release + * tsc2301-kp: use x86 keycodes in raw mode + Post raw keyboard events using standard x86 keycodes, which enables the + simultaneous use of the keypad and an external (e.g. Bluetooth) keyboard + when using raw mode. + * keyboard: enable raw mode on ARM + * This patch adds beginnings of suspend support for 24xx. + Please note the following: + - Some drivers still oops while suspending, such as MMC + - To see suspend errors, you must comment out .suspend and .resume + in drivers/serial/8250.c as the serial port gets suspended before + other drivers. + - Wake-up events don't work if the MPU power domain goes into retention + * OMAP24xx EAC & TSC2301 Mixer: Default samplerate changed from 44.1 to 48 + kHz. + * This patch enables 32KHz timer wake-up events as needed by + dyntick + * This patch fixes some dyntick locking issues on ARM + * Fix CONFIG_PRINTK_TIME hangs on systems where sched_clock() does + not work before timer is initialized. + * This patch is a backport to fix sys_nanosleep() with dyntick timer. + It broke with recent hrtimer updates. + * security: Add updated version of lowmem LSM module. + + -- Yauheni Kaliuta Wed, 10 May 2006 17:51:53 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso15) unstable; urgency=low + + * week200618-2 release + * Found another way to solve this problem. thank god + Revert "adding __attribute__((packed)) to one structure on asound.h" + + -- Yauheni Kaliuta Fri, 5 May 2006 17:28:09 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso14) unstable; urgency=low + + * week200618-1 release + * adding __attribute__((packed)) to one structure on asound.h + This should be solved on another way + * key repeat support to the TSC2301 keypad driver. Fixes: NB#24084. + * spi: Fix modular master driver remove and device suspend/remove + * Fix two problems in the spi subsystem: + 1) spi subsystem core dumps when modular spi master is unloaded. + 2) spi subsystem core dumps when spi slave device is suspended/resumed and + module slave driver is not loaded. + * OMAP24xx EAC: Space-to-tab cleanups to EAC header file. + + -- Yauheni Kaliuta Thu, 4 May 2006 16:38:50 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso13) unstable; urgency=low + + * week200617-1 + * Add missing definition + * ARM: OMAP: Add EAC I/O area mapping for DSP + * OMAP24xx EAC: one trivial bug corrected in eac_hw_init + * enable CONFIG_SND_OMAP24XX_EAC + * Revert DSP mailbox changes + * Add bt address writing and non working dma skeleton + * OMAP24xx EAC: low-level support functions + - These will contain basic initialization and clock management code. + * Header file for OMAP24xx Enhanced Audio Controller. + * DSPGW: mailbox: set clock autoidle + * DSPGW: memmap for STI + * DSPGW: memmap for EAC + * MMC: add slot number in card info which it resides. Fixes: NB#27006. + * dspgw: mailbox autoidle temporary disabled. it does not work. + * Revert "Ural panel detection based on revision" + * dspgw: idle power management + - Add dsp clock autoidle(auto-control mode: spec 5.10.8.2) + - DSP_FCLK + - DSP_ICLK + - INT_D_FCLK + - INT_D_ICLK + The above clocks are controled together by auto-control mode. + - Add mailbox clock autoidle + * Enable component version display + * dspgw: idle power management + * ARM: OMAP: Generic Mailbox API. + * omapfb: include asm/types.h in omapfb.h + * Detect all Ural versions as type B except revision 82 + + -- Yauheni Kaliuta Thu, 27 Apr 2006 21:25:32 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso12) unstable; urgency=low + + * ls041y3_b display detection change + + -- Yauheni Kaliuta Wed, 19 Apr 2006 19:55:45 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso11) unstable; urgency=low + + * week200616-1 release + * defconfig + - Compile USB_ETHERNET and USB_FILESTORAGE as a module + Also added USB_SERIAL as a module + * This patch fixes USB loopback test on Darium. + * Detect new version + * omapfb: add get_color_key + * omapfb: include asm/ioctl.h in omapfb.h + * mmc: negotiable voltage + - dual voltage cards are supported. If both a higher voltage card + and a lower voltage card exists at once, higher voltage is + provided. + + -- Yauheni Kaliuta Wed, 19 Apr 2006 17:00:21 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso10) unstable; urgency=low + + * week200615-1 release + * sysfs: attribute + - For userland applications to migrate new pollable sysfs interface, + this is provided. This allows both notifications from pollable sysfs + attributes and kobject_uevent. + * kobject_uevent: attribute drivers + * kobject_uevent: attribute + - This is derived from s+ tree for backward compatibility + of sysfs attribute through kobject_uevent. + * sysfs: Allow sysfs attribute files to be pollable + - This is a backport from mm tree for the userland application + to migrate pollable sysfs attribute. + * ALSA Mixer control for headset mic select added and + name of headset power amplifier control changed. + * Add multiple plane support with scaling / color space conversion. + * Allocate 752kB frame buffer memory for each plane. + * Register a /dev/fb node for each plane. + * Change the FBMEM ATAG to support per plane memory configuarion. + * Move the window update kernel API from blizzard to omapfb_main. + * Add omapfb Kconfig option to increase the consistent DMA pool size. + Update defconfig to set this to 4MB. + * Handle multiple board config entries that have the same TAG properly. + So far this was done only during the boot tag table parsing. + * Set board configuration earlier, + since things like SRAM initializing earlier can call get_config. + * bugfix: correct cover switch handling + + -- Yauheni Kaliuta Tue, 11 Apr 2006 13:39:06 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso9) unstable; urgency=low + + * week200614-1 release + * USB: test pass in adapter using trick + * Change IOCTL enum parameters to ints, exported u8/16/32 parameters to + __u8/16/32. Fixes a bug with a new toolchain where sizeof(enum) is + different between user space and kernel space. + * Enabling EABI also modifications to + arch/arm/kernel/calls.S + arch/arm/kernel/sys_oabi-compat.c + to make this possible + * Remove extraneous alignment on x / width values of the update window. + This fixes a bug where a right stripe of the update window is not updated + properly. + * MUSB: Select EP0 again after reading EPx CSR register + * Enable OMAP watchdog + + -- Yauheni Kaliuta Wed, 5 Apr 2006 15:55:54 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso8) unstable; urgency=low + + * week200613-2 release + * Add Hailstorm support + * Correct exposure time implementation. + * Stupid bug: &, not &&... + + -- Yauheni Kaliuta Thu, 30 Mar 2006 16:39:25 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso7) unstable; urgency=low + + * week200613-1 release + * Tony's USB patches + * MMC: negotialble voltage for 2 slots + * Merge branch 'master' + * Upstream mmc/omap.c merge + + -- Yauheni Kaliuta Wed, 29 Mar 2006 16:16:34 +0300 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso6) unstable; urgency=low + + * week200612-1 release + * update defconfig + CONFIG_SOUND=y + CONFIG_SND=y + CONFIG_SPI_TSC2301_AUDIO=y + CONFIG_SPI_TSC2301_AUDIO_SELF_REGISTRATION=y + CONFIG_SND_OSSEMUL=y + CONFIG_SND_MIXER_OSS=y + * Revert "MMC NEGOTIALBLE VOLTAGE FOR 2 SLOTS" + * More sensible sysfs naming for the sensor entry. + * Camera sensor code cleanup, and sysfs entries addition + * MMC NEGOTIALBLE VOLTAGE FOR 2 SLOTS + * MMC HOTSWAP SUPPORT + * SD MULTIPLE SLOTS SUPPORT + * MMC MULTIPLE SLOTS SUPPORT UPDATES + - Basically reformatted. + - slots member moved into omap host structure. + * MMC BUGFIX TRIVIAL STUFFS + - kmalloc() & memset(0) was replaced by kzalloc() + - bugfix for incorrect pointer argument + * ARM: OMAP: omap2_mcspi: fix for channel configuration and CS + * That fixes a kernel oops when VIDIOC_STREAMOFF was called. + Now we can do streaming I/O with the camera. + * Corrects two bug in arch/arm/mach-omap2/clock.c. + * Extra TSC2301 Mixer controls are compiled + if CONFIG_SPI_TSC2301_AUDIO is defined. + * Merge branch 'master' + * Enable ppp in defconfig + * VGA capture seems to work fine now. + * Poll should work now. + * TSC2301 ALSA Mixer. + * TSC2301 touchscreen: mangle reported coordinates above max pressure + + -- Yauheni Kaliuta Wed, 22 Mar 2006 17:11:28 +0200 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso5) unstable; urgency=low + + * week200611-1 release + * TSC2301 touchscreen: increase x plate resistance for the lph8923 panel + * TSC2301 touchscreen: adjust maximum pressure for LS041Y3 panels + * Fix the previous fix. Damn, these untried patches never work out. + * ARM: OMAP: omapfb: workaround for alignment bug in window updates + * Updated camera driver. This is in sync with David's latest code. + * ARM: OMAP: Make McBSP selectable through Kconfig + + -- Yauheni Kaliuta Wed, 15 Mar 2006 16:00:15 +0200 + +kernel-source-rx-34-2.6.16 (2.6.16-rc2-osso4) unstable; urgency=low + + * week200610-1 release + * Changed packages name + * config: remove CONFIG_DEBUG_INFO + + -- Yauheni Kaliuta Wed, 8 Mar 2006 17:26:52 +0200 + +kernel-source-2.6.16 (2.6.16-rc2-osso3) unstable; urgency=low + + * TSC2301 touchscreen: set different parameters depending on panel type + + Different panel types require different setup for the touchscreen + controller. This includes the X plate resistance, the number of samples + for HW and SW averaging and samples to be ignored before pen up occurs. + Set this configuration in the board-* file depending on the panel name + passed from the bootloader. + + -- Ed Bartosh Fri, 3 Mar 2006 12:23:58 +0200 + +kernel-source-2.6.16 (2.6.16-rc2-osso2) unstable; urgency=low + + * ARM: OMAP: omapfb: set panel name correctly in lcd_lph8923 + Depending on the version set the panel name to either lph8923 or ls041y3. + + * TSC2301 touchscreen: add HW and SW averaging and pen up workaround + Some touch panels may generate rather unreliable readings even with + maximum HW averaging turned on. Implement SW averaging to improve the + readings. + Add a parameter to set the voltage settling time. + Workaround a problem where the pen up event may generate unreliable + reading. Ignore the last n samples from the average if required. + + -- Eduard Bartosh Thu, 2 Mar 2006 17:17:33 +0200 + +kernel-source-2.6.16 (2.6.16-rc2-osso1) unstable; urgency=low + + * First build for rx-34 product + + -- Ed Bartosh Mon, 27 Feb 2006 18:09:52 +0200 + +kernel-source-2.6.16 (2.6.16-rc4-osso1) unstable; urgency=low + + * Disable CONFIG_AEABI from N770 defconfig + It seems that some places in our drivers still need a bit of + work until we can enable EABI. + * Fix Bluetooth RFCOMM reference counting + This also fixes a problem with pairing getting stuck. + * ARM: OMAP: Add external LCD controller support for DSP Gateway + If an external LCD controller is in manual update mode, the DSP + must let the FB driver know when a frame should be send over the + remote framebuffer interface. + * ARM: OMAP: MMC driver interoperability updates + - Decreased the MMC max sectors count + Some MMC cards get stuck hard when the max sectors count is >= 128. + - Add a delay after enabling the MMC power regulators + Regulator voltages typically have a rising delay. We have to make sure + the voltage has stabilized before sending the MMC init sequence. + - Add MMC cover switch last state initialization + The default last state was left to value 0 (= cover closed). If the cover + switch was initially open and then closed, no kevent about it is sent, + because the state didn't change from the last seen state. + - Add MMC transfer timeout + Very rarely the controller itself gets stuck. It needs a really hard reset + to recover. Add a timeout to work around against this. + * ARM: OMAP: Update n770_defconfig + - Enable kernel preemption + - Enable EABI user-space support + - Disable dyntick for now + * ARM: OMAP: Fix uWire SPI driver CS deselect. + CS deselection didn't work as expected. Writing 0 to CSR isn't enough, + the given CS value with CS_CMD cleared has to be written. + * ARM: OMAP: Set serial 8250 ECB for TX fifo + Code to fix serial TX fifo by Richard Woodruff. + The extended capabilities bit is needed to write fcr, or else some + settings don't get set. That is what the OMAP-UART data sheet says. + The write water mark bits 4:5 are not accessible unless ECB is set. + The data sheet says it is TI16C750 compatible but it seems to share more + with what the code calls a TI16C752. The 750 has a DLAB to set 64bit + fifo and I don't believe that is the case for ours. + A minor note is we are still only using 32 bytes of the 64 byte TX fifo + for transmits in the current code. I'm not sure if there is an + application that this matters to. + Note that the current code id's OMAP serial ports as a 16654 which isn't + quite correct. + Also note that to use the actual TX watermark interrupt set at 32bytes + required too ugly of a hack to use (not use OMAP_SCR=0). + * [PATCH] ARM: OMAP: update flash timing on OMAP5912OSK + In linux-2.6.15-omap1 patch, in arch/arm/mach-omap1/board-osk.c, + EMIFS_CS3_VAL is set to 0x30003361. + This was introduced to fix flash timing error. + http://linux.omap.com/pipermail/linux-omap-open-source/2005-July/004717.html + On the other hand, in SectionE:Errata in EMIFS timing at: + http://omap.spectrumdigital.com/osk5912/osk5912_faq.html + EMIFS_CS3_VAL was set to 0x88013141, fixing write/read rate. + Reading from + http://focus.ti.com/lit/ug/spru742/spru742.pdf + 3.6 EMIFS Registers, + 0x30003361 will set read mode from "page mode, 4 word/page" to + "asynchronous read", and read from flash slowed down. + I tested with new value 0x88013141, and works good so far. + * ARM: OMAP: Support all four OMAP1610 GPIO trigger modes + * ARM: OMAP: Update usage of SA_SAMPLE_RANDOM flag + * [PATCH] ARM: OMAP: omap keypad H4 update + Move H4 Menelaus specific gpio settings to board-h4.c and fix + get_row_gpio_val function. + * [PATCH] ARM: OMAP: various whitespace cleanups + Please use 'let c_space_errors=1' in vim to see what this patch fixes. + While there, remove initilizers from variables which are by default + initialized to zero (to respect linux policy). No code changes. + * ARM: OMAP: lcd_lph8923: fix register read / write + A local variable hiding the one with the same name at an upper scope, + resulted in storing the register address instead of the desired value in + LCD registers. + In register writes there is no extra cycle after the command, so we use + only 9-bit word size. + * Linux v2.6.16-rc4 + * Fixes from mainstream + + -- Ed Bartosh Wed, 22 Feb 2006 19:35:25 +0200 + +kernel-source-2.6.16 (2.6.16-rc3-osso1) unstable; urgency=low + + * First 2.6.16 build. A lot of changes from kernel mainstream + amd from Nokia. + + -- Ed Bartosh Thu, 16 Feb 2006 14:46:03 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso25) unstable; urgency=low + + * Default PSM should be dynamic. Kiitos to Janne Ylalehto for + reviewing my trash. + We use PSM active whenever we lose the link. wlancond and + other supplicant can always overwrite that setting ig they + don't like it. + + * BUGFIX: #22941 + + * Bug 22388 seemed to be fixed according to production statistics, but + some people are having troubles booting the device with the new boot + sequence. We now take the Symbian way, seems to work fine. + + * BUGFIX: #22388 + + -- Ed Bartosh Wed, 15 Feb 2006 14:28:42 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso24) unstable; urgency=low + + * #22372 fix: Frame lifetime needs to be increased for some Netgear APs. + + -- Ed Bartosh Thu, 26 Jan 2006 15:36:43 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso23) unstable; urgency=low + + * week200603 release + * Toggling the START_HALTED bit in the boot sequence makes it more robust. + BUGFIX: #22388 + + -- Ed Bartosh Thu, 19 Jan 2006 15:51:00 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso22) unstable; urgency=low + + * week200550 release + * Tasklet latency is much better than workqueues. Also, we return jiffies + in microseconds instead of timeofday for UMAC timekeeping. + BUGFIX: #21747, #21145 + * arch/arm/mach-omap/dsp/proclist.h + DSP Gateway patch for bug 20342 fix. + It is changed so that the processes that uses DSP Gateway driver are + listed with their pid's, instead of the task_struct pointers which has + been caused this bug. + Patch from Toshihiro Kobayashi + + arch/arm/mach-omap/dsp/task.c + DSP Gateway patch for bug 20342 fix. + It is changed so that the processes that uses DSP Gateway driver are + listed with their pid's, instead of the task_struct pointers which has + been caused this bug. + Patch from Toshihiro Kobayashi + * Merge ok:/osso/linux-2.6 into + six.research.nokia.com:/osso/bitkeeper_osso/linux-2.6 + + -- Ed Bartosh Tue, 13 Dec 2005 14:56:07 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso21) unstable; urgency=low + + * week200547 release + * TX burst mode implementation and newest MTUM integration. + * BUGFIX: 19579, 21543. + * Patched UMAC: The PMKID cache is not reset when we find a new AP (Stupid + Windows requirement) + * BUGFIX: 19482 + * We need to give the possibility to run set_encryption with NET_ADMIN + capabilities. + + -- Ed Bartosh Thu, 24 Nov 2005 14:16:08 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso20) unstable; urgency=low + + * week200546 release + + * Fix bugs #20445 and #20446. Also the similar bugs was fixed + for g_ether module. + These are just a cosmetic changes. They do not modify module + behavior. The changes affect initfs only. + + * TX dropped and stupid spin_lock bug fixes. + + -- Ed Bartosh Sun, 20 Nov 2005 16:57:27 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso19) unstable; urgency=low + + * get rid of kpkg + + -- Ed Bartosh Thu, 17 Nov 2005 16:36:20 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso18) unstable; urgency=low + + * 'XBCS-Scratchbox-Architecture: uarm' added + + -- Ed Bartosh Wed, 16 Nov 2005 17:16:57 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso17) unstable; urgency=low + + * gettext support removed (now it's possible to build package in uclibc + toolchain) + + -- Ed Bartosh Wed, 16 Nov 2005 15:30:20 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso16) unstable; urgency=low + + * Fixed stupid warning... + * WPA fixes, stability improved, or so we claim... + * BUGFIX: 19241, 21003, 15947, 21033, 11618 + + -- Ed Bartosh Fri, 11 Nov 2005 16:48:31 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso15) unstable; urgency=low + + * We disable background scanning only when receiving a deauth trap. + * Cset exclude: samuel@irie.nokia.com|ChangeSet|20051026134204|36577 + * Several changes: + - Background scanning disabled. It is really bad. + - Removed the unused RX queues routines. + - Created our own work queue. + * Oops, one more OSMO reference to go.. + * STI: Export omap_sti_init() for early console init. + * sti-fifo.c: Don't double check the IRQ status. + * STI: Rework to use proper platform devices. + * STI: Move to own subdir. + * STI: Get rid of old OSMO code, consolidate relevant bits, and cleanup. + * omap: Drop the STI tasklet handler, do irqdesc walking in IRQ context. + tasklets work well for some of these other status bits that could trigger + the interrupt, but unfortunately aren't suitable for the RX FIFO case on + account of being too slow. So we do inline irqdesc walking and dispatch + in the sti_interrupt() handler instead, this may be a bit heavy, but is + the only thing that ends up working in practice when we are under heavy + interrupt load. + * sti-fifo: Fixup buffer pointer assignment. + * omap: STI RX FIFO support. + * omap: Move STI enums to sti.h and export sti_readl/writel(). + * sti-netlink.c: Adjust the skb tail based off of the payload size. + Handle netlink_unicast() retval properly. + * sm_drv_spi_io.c: Cleaner complete/wait_for_completion DMA transfers. + + -- Ed Bartosh Mon, 31 Oct 2005 10:12:41 +0200 + +kernel-source-2.6.12.3 (2.6.12.3-osso14) unstable; urgency=low + + * source cleanup + + -- Ed Bartosh Thu, 27 Oct 2005 18:25:10 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso13) unstable; urgency=low + + * STI: Export omap_sti_init() for early console init. + * Don't double check the IRQ status. + * STI: Rework to use proper platform devices. + * STI: Move to own subdir. + * STI: cleanup. + * omap: Drop the STI tasklet handler, do irqdesc walking in IRQ context. + * Cleaner complete/wait_for_completion DMA transfers. + + -- Ed Bartosh Wed, 26 Oct 2005 09:35:05 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso12) unstable; urgency=low + + * w200543 release + * When booting the WLAN chip, we have to wait a bit more for + workqueues to start. + * retu-rtc.c: Reinstate comments that were lamely removed by + people who have no place touching code. + Purposely obscure the comments to make this thing look + better than it actually is. + * Major WLAN driver cleanup and reorganisation for legal reasons. + * Prepare the CBUS and EM ASIC drivers for publishing + - add GPL license + copyrights + warranties to CBUS drives + - remove unnecessary #define's + - ack IRQs before enabling them in [retu|tahvo]_request_irq() functions + to avoid immediate interrups after requesting them + * 1 second SPI timer seems to be agressive and causes connection loses. + * We need to check the SPI bus more often since the UMAC BSS timeout can + be as low as 3 seconds. + * Ugly hack to support Nokia A032. + * Also we prevent the driver to send twice an IE event from the same state. + dsp_dld kills the wrong processes when rebooting DSP". + When a process opens a DSP device, the task_struct is put in the + dev->proc_list and when closing, it is removed from the list. + The problem was that when a process is killed while it is opening a DSP + device, the caller of close() won't be one which called open(), but the + parent of it. In this case the opener's task_struct is left in the + proc_list, which is not valid anymore and causes this bug. + + -- Ed Bartosh Tue, 25 Oct 2005 12:53:39 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso11) unstable; urgency=low + + * w200543 release + + -- Ed Bartosh Wed, 19 Oct 2005 16:40:51 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso10) unstable; urgency=low + + * w200542 release + + -- Ed Bartosh Sun, 16 Oct 2005 11:22:26 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso9) unstable; urgency=low + + * w200541 release + + -- Ed Bartosh Mon, 10 Oct 2005 11:00:36 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso8) unstable; urgency=low + + * w200540 release + + -- Ed Bartosh Mon, 3 Oct 2005 12:36:55 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso7) unstable; urgency=low + + * w200539 release + + -- Ed Bartosh Thu, 22 Sep 2005 17:30:56 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso6) unstable; urgency=low + + * w200538 release + + -- Ed Bartosh Sun, 18 Sep 2005 02:17:05 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso5) unstable; urgency=low + + * w200536 release + + -- Ed Bartosh Mon, 5 Sep 2005 15:36:31 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso4) unstable; urgency=low + + * bluetooth fix from Ville + + -- Ed Bartosh Fri, 2 Sep 2005 01:59:51 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso3) unstable; urgency=low + + * one more mmc patch applied + + -- Ed Bartosh Wed, 31 Aug 2005 19:09:45 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso2) unstable; urgency=low + + * mmc fixes applied + + -- Ed Bartosh Tue, 30 Aug 2005 19:09:22 +0300 + +kernel-source-2.6.12.3 (2.6.12.3-osso1) unstable; urgency=low + + * w200535 release + + -- Ed Bartosh Sun, 28 Aug 2005 15:05:56 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso10) unstable; urgency=low + + * w200533 release + + -- Ed Bartosh Sun, 14 Aug 2005 15:45:54 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso9) unstable; urgency=low + + * w200532 release + + -- Alexey Kotovich Mon, 8 Aug 2005 01:24:40 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso8) unstable; urgency=low + + * w200531 release + + -- Alexey Kotovich Mon, 1 Aug 2005 15:42:57 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso7) unstable; urgency=low + + * w200529 release + + -- Alexey Kotovich Sun, 17 Jul 2005 04:28:06 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso6) unstable; urgency=low + + * w200528 release + + -- Ed Bartosh Sun, 10 Jul 2005 20:11:10 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso5) unstable; urgency=low + + * w200527 release + + -- Ed Bartosh Wed, 6 Jul 2005 01:46:19 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso4) unstable; urgency=low + + * w200526 release + + -- Ed Bartosh Sat, 25 Jun 2005 11:52:00 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso3) unstable; urgency=low + + * w20025 release + + -- Ed Bartosh Sat, 25 Jun 2005 11:48:28 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso2) unstable; urgency=low + + * w200524 release + + -- Ed Bartosh Sun, 12 Jun 2005 22:35:57 +0300 + +kernel-source-2.6.12-rc2 (2.6.12-rc2-osso1) unstable; urgency=low + + * w200523 release + + -- Ed Bartosh Mon, 6 Jun 2005 22:11:46 +0300 + +kernel-source-2.6.12-rc2-200521 (2.6.12-rc2-osso1) unstable; urgency=low + + * w200521 release + + -- Ed Bartosh Sun, 22 May 2005 22:10:57 +0300 + +kernel-source-2.6.12-rc2-200520 (2.6.12-rc2-osso1) unstable; urgency=low + + * w200520 release + + -- Ed Bartosh Sun, 15 May 2005 21:48:39 +0300 + +kernel-source-2.6.12-rc2-200517 (2.6.12-rc2-osso7) unstable; urgency=low + + * w200517 release + + -- Ed Bartosh Fri, 29 Apr 2005 11:09:22 +0300 + +kernel-source-2.6.12-rc2-200516 (2.6.12-rc2-osso6) unstable; urgency=low + + * w200516 release + + -- Ed Bartosh Mon, 18 Apr 2005 10:20:12 +0300 + +kernel-source-2.6.12-rc2-200515 (2.6.12-rc2-osso5) unstable; urgency=low + + * w200515 release + + -- Ed Bartosh Mon, 11 Apr 2005 09:52:14 +0300 + +kernel-source-2.6.12-rc1-200514 (2.6.12-rc1-osso4) unstable; urgency=low + + * w200514 release + + -- Ed Bartosh Mon, 4 Apr 2005 10:15:13 +0300 + +kernel-source-2.6.11-200512 (2.6.11-osso3) unstable; urgency=low + + * w200512 release + + -- Ed Bartosh Sun, 20 Mar 2005 13:22:12 +0200 + +kernel-source-2.6.11-200511 (2.6.11-osso2) unstable; urgency=low + + * w200511 release + + -- Ed Bartosh Fri, 11 Mar 2005 14:02:26 +0200 + +kernel-source-2.6.11-rc5-200510 (2.6.11-osso1) unstable; urgency=low + + * w200510 release + + -- Ed Bartosh Mon, 7 Mar 2005 11:06:28 +0200 + +kernel-source-2.6.11-rc4-200509 (2.6.11-osso1) unstable; urgency=low + + * w200509 release + + -- Ed Bartosh Mon, 28 Feb 2005 09:40:36 +0200 + +kernel-source-2.6.11-rc3-200508 (2.6.11-osso1) unstable; urgency=low + + * w200508 release + + -- Ed Bartosh Sun, 20 Feb 2005 19:27:12 +0200 + +kernel-source-2.6.10-200507 (2.6.10-osso3) unstable; urgency=low + + * w200507 release + + -- Ed Bartosh Sun, 13 Feb 2005 09:49:37 +0200 + +kernel-source-2.6.10-200506 (2.6.10-osso2) unstable; urgency=low + + * fix for usb + + -- Ed Bartosh Tue, 8 Feb 2005 17:56:56 +0200 + +kernel-source-2.6.10-200506 (2.6.10-osso1) unstable; urgency=low + + * w200506 release + + -- Ed Bartosh Fri, 4 Feb 2005 14:46:47 +0200 + +kernel-source-2.6.10-200505 (2.6.10-osso1) unstable; urgency=low + + * w200505 release + + -- Ed Bartosh Thu, 27 Jan 2005 14:59:27 +0200 + +kernel-source-2.6.10.w200504 (2.6.10-osso.0.200504.1) unstable; urgency=low + + * w200504 release + + -- Ed Bartosh Mon, 24 Jan 2005 19:30:56 +0200 + +kernel-source-2.6.10 (2.6.10-osso.0.200503.1) unstable; urgency=low + + * w200503 release + + -- Ed Bartosh Mon, 17 Jan 2005 10:57:47 +0200 + +kernel-source-2.6.10-rc3 (2.6.10-rc3-osso.0.52.1) unstable; urgency=low + + * w52 fake release + + -- Ed Bartosh Wed, 12 Jan 2005 18:53:40 +0200 + +kernel-source-2.6.10-rc3 (2.6.10-rc3-osso.0.51.1) unstable; urgency=low + + * W51 release + + -- Ed Bartosh Sun, 12 Dec 2004 20:40:34 +0200 + +kernel-source-2.6.10-rc1 (2.6.10-rc1-osso.0.48.3) unstable; urgency=low + + * last minute WLAN fixes + + -- Ed Bartosh Thu, 25 Nov 2004 18:54:39 +0200 + +kernel-source-2.6.10-rc1 (2.6.10-rc1-osso.0.48.2) unstable; urgency=low + + * usb-serial support is turned on + + -- Ed Bartosh Wed, 24 Nov 2004 15:57:46 +0200 + +kernel-source-2.6.10-rc1 (2.6.10-rc1-osso.0.48.1) unstable; urgency=low + + * W48 core release + + -- Ed Bartosh Mon, 22 Nov 2004 13:32:32 +0200 + +kernel-source-2.6.10-rc1 (2.6.10-rc1-osso.0.46.1) unstable; urgency=low + + * W46 core release + + -- Ed Bartosh Tue, 9 Nov 2004 12:00:42 +0200 + +kernel-source-2.6.10 (2.6.10-rc1-osso.0.45.1) unstable; urgency=low + + * Initial release + + -- Ed Bartosh Sun, 31 Oct 2004 15:47:18 +0200 + diff --git a/kernel-bfs-2.6.28/debian/compat b/kernel-bfs-2.6.28/debian/compat new file mode 100644 index 0000000..733787e --- /dev/null +++ b/kernel-bfs-2.6.28/debian/compat @@ -0,0 +1,2 @@ +4 + diff --git a/kernel-bfs-2.6.28/debian/control b/kernel-bfs-2.6.28/debian/control new file mode 100644 index 0000000..d2aed3a --- /dev/null +++ b/kernel-bfs-2.6.28/debian/control @@ -0,0 +1,149 @@ +Source: kernel-power +Section: utils +Priority: optional +Maintainer: Thomas Tanner +XSBC-Bugtracker: https://garage.maemo.org/tracker/?group_id=1528 +Build-Depends: debhelper (>= 4.0.0), quilt, sdk-fiasco-gen, libncurses5-dev +Standards-Version: 3.8.0 + +Package: kernel-power-flasher +Section: user/system +Architecture: armel +Pre-Depends: kernel-power (= ${binary:Version}), kernel-power-modules (= ${binary:Version}), softupd (>= 0.4.0), maemo-installer-utils +Depends: sudo +Conflicts: kernel-flasher-maemo (<= 2.6.28-maemo22), kernel-maemo, kernel-modules-maemo, kernel-headers-maemo, linux-kernel-headers-maemo +Recommends: kernel-power-settings, usbip, iptables, mtd-utils, kexec-tools +Provides: kernel-feature-netfilter, kernel-feature-ipv6, kernel-feature-ext4, kernel-feature-xfs, kernel-feature-reiserfs, + kernel-feature-ntfs-read, kernel-feature-udf, kernel-feature-cifs, kernel-feature-automounter, kernel-feature-squashfs, + kernel-feature-unionfs, kernel-feature-crypto, kernel-feature-dmloop, kernel-feature-utf8, kernel-feature-mousejoy, + kernel-feature-usbip, kernel-feature-ppp, kernel-feature-qos, kernel-feature-block2mtd, kernel-feature-kexec, + kernel-feature-overclock, kernel-feature-joikuspot, kernel-feature-slip, kernel-feature-battery, kernel-feature-pptp, + kernel-feature-wlan-monitor +XB-Maemo-Display-Name: Enhanced Linux kernel for power users +Description: Linux kernel updater for an enhanced Maemo 5 kernel 2.6.28.10 + This package will flash the kernel image upon installation. + After the installation, you need to unplug the USB cable, + completely shutdown your device, and boot again to activate the kernel. + . + For more details and help please visit http://wiki.maemo.org/Kernel_Power + . + If you want to deinstall this kernel to revert to the original Nokia kernel, + you must run the "Deinstall kernel-power" application. Deinstallation in + the Application Manager is not possible. + . + This custom kernel contains additional modules for IPv6, packet filtering, + QoS, NAT, tunneling, kernel configuration, Wifi mesh networking, + builtin ext3 for booting from other media, ext4, XFS, reiserfs, + NTFS read support, ISO9660, UDF, CIFS, automounter, squashfs, + unionfs, device mapper and dm-loop, cryptography, cryptoloop, + EFI partitions, UTF8 codepages, mouse+joystick input, PPP, PPTP, + serial support, USB/IP and generic USB device drivers, battery info, + WLAN monitoring, overclocking and kexec support. + . + Warning: Overclocking voids your warranty, may damage your device and is at your own risk! + Overclocking is disabled by default and can be configured during runtime. + . +XB-Maemo-Icon-26: + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QAAAAA + AAD5Q7t/AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAwAAAAMADO + 7oxXAAAK60lEQVRo3sWZf2yU933HX997nnvuB2efz9g+E2M72IADxqAZI5IU + BiWzkrYRdbpNESyNupJGk1aVsZYt2qZJHVsbpZsR2ZooS0q7ZDTZJFdhVgLp + pk7NCq6CHZPMccAXjB3bwBkfPp/x/X6ez/7wHTmf7WB7TvlIH92P5/t9f9/v + z/fz/fnAZ2ONwA+ATmACsIBxoAP4O2DdZ9Tu/9v8wOuACUi+a5omfr9fdF1P + AT8CSu404VxzA91zEc96QUGBPPnkk7J7925xuVwCfAjcdaeJZ+3gp5EHxOPx + SE1NjXg8HrHZbNn/2wHtTpMH+OXtBMzjJvDAnSYPEALEZrNJUVGRaJo2i6xS + StasWSM+ny//2U+X2qhaJvIakPJ4PGrXrl2YpkkwGOT8+fOICD6fj3379lFV + VcXIyAi9vb2cOXOGeDyerT8MrAUSdyT0gA7I008/LZcuXZJQKCSHDx++NfO0 + t7dLJBKRQCAgkUhEjh8/njsGsmlUfqfIZ818+eWXZf369XLkyBF55513xOv1 + ypo1a8Q0TXnsscekrq5OWltbxTRNqa2tzRdQtpRGbcso4Obk5CQDAwN0nD2D + NvkrWu6P8MWmMaLX3ub999/n4sWLHDt2DMuycLvduXWTGV+0LdcYALh86NCh + uwv1Cerdx9m2Ae5eV8BAIE5xaYp3+3RePW3S/JXv0bD9ETZu3IhlWbn164C+ + ZeSzaOts3mLIYNsKsc4h0olId61Ipy7SaRN5t0Lk3bvEfMcm//1DQwx91nT6 + taU0umwppGuM/vmjSSqrplAKwA7W6DQ3bQ3YXFwfvUFXl0VDbRKHPl1PqVtJ + 8PAdFZA2Gf15l4fAh5BOA6RAJrHEzcjQGB+cv0QqGad+I/yqZz03EwqHw0FL + Swt1dXUopb4ArFpsu8u5hH9p1caHG92u9YQHL6HbLSYnIRhM4i1M4HJqBOPN + 3Cg4grv2AOfOnWNkZASv10tTUxOXL1+2x+NxC/jPOyHAAbTu2LmzaM8jf8yH + Q07S44OQtojHXQyF7ydW/j1qd/wFlWsbqaiooLy8nLa2NoaGhujr62NychJg + K3ASGF3GwN7WFNCqaZqcPHlSksmknD17Vl566SV58cUX5Y033pBAICDJZFJy + zTRNOXDgwFx7o27A85sU8C3AOnTokFiWJSIisVhMent7pbe3V27cuHHr/3z7 + 6KOPxOl0ziXiBL+hHeofAKn6+nqZmpqaFWHTNOXTzLIs2bt373y71O9+1uR3 + AlEye6DFWCqVklgsJvF4XE6fPi1KqbkEpIHHb0dCXyL5EuBfAVdxcTEOh4OB + gQGqqqqw2Wwkk0k+/vhjPB4Pfr//1lwfDofp7+9neHiYaDSKpmls376d++67 + j46ODpRSuauzBjwHfAB0LXf0X8hGraWlRbq7u2VycnJGrs+XPslkUkKhkFy4 + cEFOnTolr7zyirS1tYlhGFJZWSmrV6/O75Eepo+ry2YbbDZbsry8XIqLi6Wn + p2dR6ZNr6XRaAoGAnDp1Svbv3y+AeL1e8Xq9+en0t8sp4J/9fr94PB45duzY + ksnn2sTEhHR2dorT6ZSamhopKiqSlStX5gqIAtXLQb7EbrdPVVVVSVNTk8Ri + sWURkLWdO3feOo5u2rQp/9Dz3FyEFrsX+qMVK1a4Q6EQBw8exOl0zllIRJYU + nd27dxMOhzFNk0gkgsPhyH38Vea4R1qMgDLgYCqVQilFc3PzvAUHBweXJKCx + sfHW9/Hx8fzzggfYu1QBCvgHu91eUlFRQWNjI2Vlc58ARYSRkZElCSgqKpqB + k0ql8ovsWaqAPcA+TdNwOBxs3rw5dx8/w9Lp9JJTKBezsrJyLpy1SxWwA9AS + iQRKKVwu17wFTdOcV9xCTdd1EonEXAJmXbssaCVe6aX7zx6H7fXCCyc/Ihb7 + 7U8tv9QeuHr1Kn6/n8LCQq5du0Z1dTWGYaBpGhcuXAD4xaJBC1y4/vdH6qy8 + WyzSfbeY51zyV0+45JlnnpFUKjXn4nT27NlFTZ+p/u9IqmuT9L1eIW6nbda+ + qK6uTlp2282GWvWFRZF32tGe+xYvSpdX5L3fEnlvq8j5ejHP6XJgr5KHHnpI + hoeHZxEaHx9fMHkznZSpjnUi5zdK8E2/qDl2pk/u1UTO18uHP6u4mM9x1hhw + O3BuWk1dy73se+GbtP/h76snsPk+Kaqc2PRVHDsMN4ZO09jYSFtb24y0yZ1N + bpdql/sDhIKjkO5j7EqQR7aCkUlslwFffwB+cMgB5hDFhTFfPsaM0fZ7n+PR + 1u/wbLlflSkFygaa7gatBpSRU9KEdD/9QxGavgrhm4r9+/dz9OhRSktLF9zD + 8Xic/3rrDapCj7N5S5SJcbjYAwMfw2QUVpXBtns1Slf5QblJJOOJB75xZceZ + 963OOXtg51Yerqxyl9nddeiue9AcG0Bfl0ceQAOtkprVBs8/BQrhxIkT7Nix + g3A4vGABuq7jcBhMhMGywOuDzU3Q/CB85XfhgQeh9K4q0FaBzYvD6Xe8fqzm + 9J4m/dZ1/AwBoTEGkCRggHKDcjHvyU45Qavk0QdtPPHl6b8CgQCBQGDBAmw2 + G1dGhohOJkhlLhadbgNfqRNfsYHD5QWbd0adkmLvylPPb3jz6Ld93/cVKt+M + abRnkCEREyU3QfkWwKAIpJTWbwdxle5h266v09DQsGABHR0dfP9v/pLnv2Fi + WYAqAv1uQIGY0zk8RwANwzD+5PGap760M/jlGT1Q4sOulJ6J/ELDuJIVLjt/ + /VgPv7Orcd4NXq5Fo1FaW1tpbm7Go8Ks8IBu10AryxC2gbJzu3P9+ER6LNsD + CjB2b+fz0z8tpmewhayoGiid4hWj/Pr0wwSb/o2GLVtnrMYiQiQSoauri/b2 + dk6cOMH169cBWOsHTyFougOwL6A9i2vByes//PfrR599deLZrAADcG1vYBuk + IB34ZAwox3S+Y2SikjfzKg1QiECRvZ8//dq9XIrVUl1djdPpJBQKEQwGGR4e + JpGY/QKmthwMB5n7VDPvqYCkgTRmOkpfIBL8p9ciz738Vvr4zThjQELPMNIB + /XArR57az3fLfOm7dD2C3Yhgd4DDAXbDhm43ULZCUB5QOoiAhEHixKKQjEOl + z+TUe3309S3sprzYA8kExKbiuD3BzKDVgCSWOUXsZoz+S4nos69Zx199m59M + JRhj+l2CHUjpn0iFn73NW+1n6Kgs5p715TTW+LmndhXrqv1U+UutwuKSuFpZ + GsdTOIphKFCCWDB1E64MwbURuBYmBVwErgExpjdgsZzvGlDI9Cul6tAE1eNj + GA6nRWHROA5HGEsUNyMWo1fhrTP8+h/f5O+vTnA5gzEjr7M/DMCVcWfOpxNw + GhqeskJW11ew5XMb2Na4no2lJTidmbEenYKrI6R++ktee72bk2mLwcxAym9L + y8F1AI4da9l58It8s7gEm9MFmgbpFIxdJ/kvv+DH/3GeV02LaE4Q4pnPKJBQ + OeD2XNLZBjJuZJ7rgFbgpKBhNQ0Nq9mysoBVsQQTP++h7YMrdGeinABS2Z7N + 4NsyOLmYulLYGyvZum0N9xe6KQbMq2EG/6eP0wMhApl0SWSI53oCsPKnGS0D + bOQRv0U+QyRbTzKRNpm+SUtniCdz3MrUNXI8H1NlPItn5WDl4mWDk84GZ755 + MruC6Hlum0NA9i1j1lM5YrJplO2BXOL5AVFz4OUGJYs347Cx0KOTmsOzlm10 + FvgC8GwLwPtUzP8D2ZiyXz3Y3nwAAAAldEVYdGNyZWF0ZS1kYXRlADIwMTAt + MDItMDZUMTk6Mjk6MjMrMDE6MDBL9SgPAAAAJXRFWHRtb2RpZnktZGF0ZQAy + MDA5LTA5LTI3VDA5OjM1OjM0KzAyOjAwrPojkwAAAABJRU5ErkJggg== + +Package: kernel-power +Architecture: armel +Conflicts: kernel-maemo +Description: Flashable Linux kernel + This package provides a flashable kernel image. + Use the kernel-flasher-maemo package to automatically flash it. + +Package: kernel-power-bootimg +Architecture: armel +Description: Linux kernel boot image + This package provides a bootable and flashable kernel image for kexec and + flashing via USB cable in /boot. + This package is optional and only useful for multiboot or experts. + +Package: kernel-power-headers +Architecture: armel +Depends: ${shlibs:Depends} +Conflicts: kernel-headers-maemo +Description: Linux kernel headers + This package provides kernel headers. + +Package: linux-kernel-power-headers +Architecture: armel +Depends: ${shlibs:Depends} +Conflicts: linux-kernel-headers-maemo +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system libraries. + +Package: kernel-power-modules +Architecture: armel +Conflicts: kernel-modules-maemo +Depends: module-init-tools (>= 3.3), kernel-power (= ${binary:Version}) | kernel-power-bootimg (= ${binary:Version}) +Description: Linux kernel modules + This package provides kernel modules for the enhanced Maemo 5 kernel 2.6.28.10 diff --git a/kernel-bfs-2.6.28/debian/copyright b/kernel-bfs-2.6.28/debian/copyright new file mode 100644 index 0000000..a9c540f --- /dev/null +++ b/kernel-bfs-2.6.28/debian/copyright @@ -0,0 +1,36 @@ +This is the Debian GNU/Linux prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by Simon Shapiro , from +sources retrieved from directories under +ftp.cs.helsinki.fi:/pub/Software/Linux/Kernel/ +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package was then maintained by Sven Rudolph. + +This package was maintained by Herbert Xu +from March 1997 to May 2004. + +This package is currently maintained by the +Ed Bartosh + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. diff --git a/kernel-bfs-2.6.28/debian/fbcon.diff b/kernel-bfs-2.6.28/debian/fbcon.diff new file mode 100644 index 0000000..e1d78b0 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/fbcon.diff @@ -0,0 +1,16 @@ +--- rx51power_defconfig 2010-05-16 13:57:30.000000000 +0200 ++++ rx51power_defconfig.orig 2010-05-16 13:57:01.000000000 +0200 +@@ -1530,7 +1530,12 @@ + # + # CONFIG_VGA_CONSOLE is not set + CONFIG_DUMMY_CONSOLE=y +-# CONFIG_FRAMEBUFFER_CONSOLE is not set ++CONFIG_FRAMEBUFFER_CONSOLE=y ++# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set ++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set ++# CONFIG_FONTS is not set ++CONFIG_FONT_8x8=y ++CONFIG_FONT_8x16=y + # CONFIG_LOGO is not set + CONFIG_SOUND=y + # CONFIG_SOUND_OSS_CORE is not set diff --git a/kernel-bfs-2.6.28/debian/joikuspot/JoikuSpot_Bouncer.c b/kernel-bfs-2.6.28/debian/joikuspot/JoikuSpot_Bouncer.c new file mode 100644 index 0000000..8ff74a8 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/joikuspot/JoikuSpot_Bouncer.c @@ -0,0 +1,196 @@ +/* + * Implementation of JoikuSpotBouncer module + * JoikuSpot_Bouncer.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the license, or ( at your option ) any later version + */ + +#include /* needed by all kernel modules */ +#include /* needed for custom init/exit functions */ +#include /* needed for KERN_ALERT macro */ +#include /* Hook register/unregister */ +#include /* nf_hook_priorities */ +#include /* Ip header */ +#include /* Tcp Header */ +#include /* Udp Header */ +#include /* __inet_lookup() */ +#include /* struct inet_sock */ + + +/* Special macro to indicate license (to avoid tainting the kernel) */ + +MODULE_LICENSE( "Dual MIT/GPL" ); +MODULE_AUTHOR ( "JoikuSoft Oy Ltd " ); + +extern struct inet_hashinfo tcp_hashinfo; +extern struct proto udp_prot; +extern struct rwlock_t udp_hash_lock; + +static struct sock *__udp4_lib_lookup( struct net *net , + unsigned long int saddr , + unsigned short int sport , + unsigned long int daddr , + unsigned short int dport , + int dif , + struct hlist_head udptable[] ) + { + struct sock *sk , *result = NULL; + struct hlist_node *node; + unsigned short int hnum = ntohs( dport ); + int badness = -1; + + read_lock( &udp_hash_lock ); + + sk_for_each ( sk , node , &udptable[ udp_hashfn ( net , hnum ) ] ) + { + struct inet_sock *inet = inet_sk( sk ); + + if ( net_eq ( sock_net( sk ) , net ) && sk->sk_hash == hnum && + !ipv6_only_sock( sk ) ) + { + + int score = ( sk->sk_family == PF_INET ? 1 : 0 ); + + if ( inet->rcv_saddr ) + { + if ( inet->rcv_saddr != daddr ) + { + continue; + } + score += 2; + } + if ( inet->daddr ) + { + if ( inet->daddr != saddr ) + { + continue; + } + score += 2; + } + if ( inet->dport ) + { + if ( inet->dport != sport ) + { + continue; + } + score += 2; + } + if ( sk->sk_bound_dev_if ) + { + if ( sk->sk_bound_dev_if != dif ) + { + continue; + } + score += 2; + } + if ( score == 9 ) + { + result = sk; + break; + } + else if ( score > badness ) + { + result = sk; + badness = score; + } + } + } + if ( result ) + { + sock_hold ( result ); + } + read_unlock ( &udp_hash_lock ); + return result; + } + + +static unsigned int joikuspot_nf_hook ( unsigned int hook , + struct sk_buff *pskb , + const struct net_device *in , + const struct net_device *out , + int ( *okfn ) ( struct sk_buff * ) ) + { + struct sock *sk; + struct iphdr *iph = ipip_hdr ( pskb ); + + if ( iph->protocol == 6 ) + { + struct tcphdr *th, tcph; + + th = skb_header_pointer ( + pskb , iph->ihl << 2 , sizeof( tcph ) , &tcph ); + + sk = __inet_lookup( dev_net ( pskb->dst->dev ) , &tcp_hashinfo , + iph->saddr , th->source , iph->daddr , th->dest , inet_iif ( pskb ) ); + + if( !sk ) + { + return NF_DROP; + } + else + { + return NF_ACCEPT; + } + } + + if ( iph->protocol == 17 ) + { + struct udphdr *uh, udph; + + uh = skb_header_pointer ( + pskb , iph->ihl << 2 , sizeof( udph ) , &udph ); + + sk = __udp4_lib_lookup( dev_net ( pskb->dst->dev ) , iph->saddr , uh->source , + iph->daddr , uh->dest , inet_iif ( pskb ) , udp_prot.h.udp_hash ); + + if ( sk != NULL ) + { + return NF_ACCEPT; + } + else + { + return NF_DROP; + } + } + + return NF_ACCEPT; + } + + +static struct nf_hook_ops joikuspot_ops = + { + .hook = joikuspot_nf_hook, + .owner = THIS_MODULE, + .pf = PF_INET, + .hooknum = NF_INET_LOCAL_IN, + .priority = NF_IP_PRI_FIRST + }; + +static int joikuspot_init( void ) + { + int retval = 0; + + printk( KERN_DEBUG "JoikuSpot Bouncer Kernel Module init\n" ); + + retval = nf_register_hook( &joikuspot_ops ); + + if ( retval < 0 ) + { + return retval; + } + + return retval; + } + +static void joikuspot_exit( void ) + { + nf_unregister_hook ( &joikuspot_ops ); + printk( KERN_DEBUG "JoikuSpot Bouncer Kernel Module exit\n" ); + } + +module_init( joikuspot_init ); +module_exit( joikuspot_exit ); + diff --git a/kernel-bfs-2.6.28/debian/joikuspot/Makefile b/kernel-bfs-2.6.28/debian/joikuspot/Makefile new file mode 100644 index 0000000..4e53dd3 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/joikuspot/Makefile @@ -0,0 +1,2 @@ + +obj-m := JoikuSpot_Bouncer.o diff --git a/kernel-bfs-2.6.28/debian/kernel-power-deinstall b/kernel-bfs-2.6.28/debian/kernel-power-deinstall new file mode 100755 index 0000000..f4f89aa --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-deinstall @@ -0,0 +1,67 @@ +#!/bin/sh +tmp=/tmp/kernel-deinstall +cat > $tmp < /dev/null; then + dbusbox "Error: Application Manager is running. Please close it before deinstallation." + exit 1 +fi +if pgrep -f apt-worker > /dev/null; then + dbusbox "Error: apt is running. Please wait and try again later." + exit 1 +fi + +dbusmsg "Please wait while restoring Nokia kernel..." + +apt-get install --reinstall -y kernel kernel-flasher > $tmp +ok=$? +cat $tmp +if grep -qE "(Could not resolve host|cannot be downloaded)" $tmp; then + dbusbox "Error during deinstallation: Could not download Nokia kernel. Please make sure the internet connection is working." + rm $tmp + exit 1 +fi +if test $ok = 0 && grep -q "Image flashed successfully" $tmp; then : +else + dbusbox "Error during deinstallation: Could not install Nokia kernel." + rm $tmp + exit 1 +fi +dbusmsg "Nokia kernel was restored. Removing enhanced kernel packages..." +apt-get remove -y kernel-power kernel-power-modules > $tmp +ok=$? +cat $tmp +if test $ok = 0; then + dbusbox "Kernel sucessfully deinstalled. Nokia kernel was restored." +else + dbusbox "Warning: Nokia kernel was restored but could not remove enhanced kernel." +fi +rm $tmp +exit $ok diff --git a/kernel-bfs-2.6.28/debian/kernel-power-deinstall.desktop b/kernel-bfs-2.6.28/debian/kernel-power-deinstall.desktop new file mode 100644 index 0000000..92f81a8 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-deinstall.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Version=0.1 +Type=Application +Name=Deinstall Kernel-Power +Exec=sudo /usr/sbin/kernel-power-deinstall +X-Osso-Type=application/x-executable +Terminal=false diff --git a/kernel-bfs-2.6.28/debian/kernel-power-flasher.install b/kernel-bfs-2.6.28/debian/kernel-power-flasher.install new file mode 100644 index 0000000..a2c6f00 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-flasher.install @@ -0,0 +1,3 @@ +debian/kernel-power-deinstall /usr/sbin +debian/kernel-power-deinstall.desktop /usr/share/applications/hildon +debian/kernel-power-flasher.sudoers /etc/sudoers.d diff --git a/kernel-bfs-2.6.28/debian/kernel-power-flasher.postinst.in b/kernel-bfs-2.6.28/debian/kernel-power-flasher.postinst.in new file mode 100644 index 0000000..8e25f17 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-flasher.postinst.in @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +KERNEL=/boot/zImage-@VERSION@.fiasco + +FLASHER=/sbin/fiasco-image-update + +# they say this is The Right Way (tm) to check for +# scratchbox environment +if [ -L /targets/links/scratchbox.config ]; then + # hehe + true +else + if [ -f $KERNEL -a -x $FLASHER ]; then + $FLASHER $KERNEL + fi +fi + +update-sudoers + +#DEBHELPER# + diff --git a/kernel-bfs-2.6.28/debian/kernel-power-flasher.preinst b/kernel-bfs-2.6.28/debian/kernel-power-flasher.preinst new file mode 100755 index 0000000..6ce9d6e --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-flasher.preinst @@ -0,0 +1,27 @@ +#!/bin/sh + +test "$1" = install || exit 0 # upgrades are fine +f=/tmp/kernel-power-msg +cat > $f < /dev/null; then + $dbusmsg string:"This package can only be deinstalled with the application 'Deinstall Kernel-Power'." + exit 1 +fi diff --git a/kernel-bfs-2.6.28/debian/kernel-power-flasher.sudoers b/kernel-bfs-2.6.28/debian/kernel-power-flasher.sudoers new file mode 100644 index 0000000..67a1914 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-flasher.sudoers @@ -0,0 +1 @@ +user ALL = NOPASSWD: /usr/sbin/kernel-power-deinstall diff --git a/kernel-bfs-2.6.28/debian/kernel-power-modules.install b/kernel-bfs-2.6.28/debian/kernel-power-modules.install new file mode 100644 index 0000000..3bf3837 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-modules.install @@ -0,0 +1 @@ +debian/blacklist /etc/modprobe.d diff --git a/kernel-bfs-2.6.28/debian/kernel-power-modules.postinst.in b/kernel-bfs-2.6.28/debian/kernel-power-modules.postinst.in new file mode 100644 index 0000000..8264cc2 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-modules.postinst.in @@ -0,0 +1,20 @@ +#!/bin/sh + +set -e + +cd /lib/modules + +rm -f /lib/modules/current +ls -1d * | grep -v current | while read i; do + /sbin/depmod $i || : +done +ln -s @KVER@ /lib/modules/current + +if grep -q "MODULE_PATH=/lib/modules/current" /sbin/preinit; then + sed 's%MODULE_PATH=/lib/modules/current%MODULE_PATH=/lib/modules/`uname -r` #fixed by kernel-power%' /sbin/preinit > /sbin/preinit.tmp && \ + chmod +x /sbin/preinit.tmp && \ + mv /sbin/preinit.tmp /sbin/preinit +fi + +#DEBHELPER# + diff --git a/kernel-bfs-2.6.28/debian/kernel-power-modules.postrm.in b/kernel-bfs-2.6.28/debian/kernel-power-modules.postrm.in new file mode 100644 index 0000000..ed1e2cb --- /dev/null +++ b/kernel-bfs-2.6.28/debian/kernel-power-modules.postrm.in @@ -0,0 +1,16 @@ +#!/bin/sh + +#set -e + +test -d /lib/modules/@KVER@ && rm -f /lib/modules/@KVER@/modules.* +rm -f /lib/modules/current +ln -s 2.6.28-omap1 /lib/modules/current + +if test "$1" != upgrade && grep -q 'MODULE_PATH=/lib/modules/`uname -r`' /sbin/preinit; then + sed 's%MODULE_PATH=/lib/modules/`uname -r` #fixed by kernel-power%MODULE_PATH=/lib/modules/current%' /sbin/preinit > /sbin/preinit.tmp && \ + chmod +x /sbin/preinit.tmp && \ + mv /sbin/preinit.tmp /sbin/preinit +fi + +#DEBHELPER# + diff --git a/kernel-bfs-2.6.28/debian/mmc.diff b/kernel-bfs-2.6.28/debian/mmc.diff new file mode 100644 index 0000000..01476d0 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/mmc.diff @@ -0,0 +1,30 @@ +--- rx51power_defconfig 2010-05-16 13:59:55.000000000 +0200 ++++ rx51power_defconfig.orig 2010-05-13 13:52:17.000000000 +0200 +@@ -1813,15 +1835,15 @@ + CONFIG_USB_IP_COMMON=m + CONFIG_USB_IP_VHCI_HCD=m + # CONFIG_USB_IP_HOST is not set +-CONFIG_MMC=m ++CONFIG_MMC=y + # CONFIG_MMC_DEBUG is not set + CONFIG_MMC_UNSAFE_RESUME=y + + # + # MMC/SD/SDIO Card Drivers + # +-CONFIG_MMC_BLOCK=m +-#CONFIG_MMC_BLOCK_BOUNCE=y ++CONFIG_MMC_BLOCK=y ++CONFIG_MMC_BLOCK_BOUNCE=y + # CONFIG_SDIO_UART is not set + # CONFIG_MMC_TEST is not set + +@@ -1829,7 +1851,7 @@ + # MMC/SD/SDIO Host Controller Drivers + # + # CONFIG_MMC_SDHCI is not set +-CONFIG_MMC_OMAP_HS=m ++CONFIG_MMC_OMAP_HS=y + # CONFIG_MMC_SPI is not set + # CONFIG_MEMSTICK is not set + # CONFIG_ACCESSIBILITY is not set diff --git a/kernel-bfs-2.6.28/debian/patches/2.6.28.10.diff b/kernel-bfs-2.6.28/debian/patches/2.6.28.10.diff new file mode 100644 index 0000000..a1459b6 --- /dev/null +++ b/kernel-bfs-2.6.28/debian/patches/2.6.28.10.diff @@ -0,0 +1,25050 @@ +--- kernel-power-2.6.28.orig/Documentation/filesystems/sysfs-pci.txt ++++ kernel-power-2.6.28/Documentation/filesystems/sysfs-pci.txt +@@ -9,6 +9,7 @@ + | |-- class + | |-- config + | |-- device ++ | |-- enable + | |-- irq + | |-- local_cpus + | |-- resource +@@ -32,6 +33,7 @@ + class PCI class (ascii, ro) + config PCI config space (binary, rw) + device PCI device (ascii, ro) ++ enable Whether the device is enabled (ascii, rw) + irq IRQ number (ascii, ro) + local_cpus nearby CPU mask (cpumask, ro) + resource PCI resource host addresses (ascii, ro) +@@ -57,10 +59,19 @@ + don't support mmapping of certain resources, so be sure to check the return + value from any attempted mmap. + ++The 'enable' file provides a counter that indicates how many times the device ++has been enabled. If the 'enable' file currently returns '4', and a '1' is ++echoed into it, it will then return '5'. Echoing a '0' into it will decrease ++the count. Even when it returns to 0, though, some of the initialisation ++may not be reversed. ++ + The 'rom' file is special in that it provides read-only access to the device's + ROM file, if available. It's disabled by default, however, so applications + should write the string "1" to the file to enable it before attempting a read +-call, and disable it following the access by writing "0" to the file. ++call, and disable it following the access by writing "0" to the file. Note ++that the device must be enabled for a rom read to return data succesfully. ++In the event a driver is not bound to the device, it can be enabled using the ++'enable' file, documented above. + + Accessing legacy resources through sysfs + ---------------------------------------- +--- kernel-power-2.6.28.orig/Documentation/sound/alsa/ALSA-Configuration.txt ++++ kernel-power-2.6.28/Documentation/sound/alsa/ALSA-Configuration.txt +@@ -979,9 +979,10 @@ + 6stack 6-jack, separate surrounds (default) + 3stack 3-stack, shared surrounds + laptop 2-channel only (FSC V2060, Samsung M50) +- laptop-eapd 2-channel with EAPD (Samsung R65, ASUS A6J) ++ laptop-eapd 2-channel with EAPD (ASUS A6J) + laptop-automute 2-channel with EAPD and HP-automute (Lenovo N100) + ultra 2-channel with EAPD (Samsung Ultra tablet PC) ++ samsung 2-channel with EAPD (Samsung R65) + + AD1988/AD1988B/AD1989A/AD1989B + 6stack 6-jack +--- kernel-power-2.6.28.orig/Makefile ++++ kernel-power-2.6.28/Makefile +@@ -1,7 +1,7 @@ + VERSION = 2 + PATCHLEVEL = 6 + SUBLEVEL = 28 +-EXTRAVERSION = power-bfs ++EXTRAVERSION = .10power-bfs + NAME = Erotic Pickled Herring + + # *DOCUMENTATION* +@@ -560,6 +560,9 @@ + # disable pointer signed / unsigned warnings in gcc 4.0 + KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) + ++# disable invalid "can't wrap" optimzations for signed / pointers ++KBUILD_CFLAGS += $(call cc-option,-fwrapv) ++ + # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments + # But warn user when we do so + warn-assign = \ +--- kernel-power-2.6.28.orig/arch/Kconfig ++++ kernel-power-2.6.28/arch/Kconfig +@@ -60,6 +60,9 @@ + See Documentation/unaligned-memory-access.txt for more + information on the topic of unaligned memory accesses. + ++config HAVE_SYSCALL_WRAPPERS ++ bool ++ + config KRETPROBES + def_bool y + depends on KPROBES && HAVE_KRETPROBES +--- kernel-power-2.6.28.orig/arch/alpha/kernel/entry.S ++++ kernel-power-2.6.28/arch/alpha/kernel/entry.S +@@ -894,9 +894,9 @@ + .end sys_getxpid + + .align 4 +- .globl sys_pipe +- .ent sys_pipe +-sys_pipe: ++ .globl sys_alpha_pipe ++ .ent sys_alpha_pipe ++sys_alpha_pipe: + lda $sp, -16($sp) + stq $26, 0($sp) + .prologue 0 +@@ -914,7 +914,7 @@ + stq $1, 80+16($sp) + 1: lda $sp, 16($sp) + ret +-.end sys_pipe ++.end sys_alpha_pipe + + .align 4 + .globl sys_execve +--- kernel-power-2.6.28.orig/arch/alpha/kernel/irq_srm.c ++++ kernel-power-2.6.28/arch/alpha/kernel/irq_srm.c +@@ -63,6 +63,8 @@ + { + long i; + ++ if (NR_IRQS <= 16) ++ return; + for (i = 16; i < max; ++i) { + if (i < 64 && ((ignore_mask >> i) & 1)) + continue; +--- kernel-power-2.6.28.orig/arch/alpha/kernel/systbls.S ++++ kernel-power-2.6.28/arch/alpha/kernel/systbls.S +@@ -52,7 +52,7 @@ + .quad sys_setpgid + .quad alpha_ni_syscall /* 40 */ + .quad sys_dup +- .quad sys_pipe ++ .quad sys_alpha_pipe + .quad osf_set_program_attributes + .quad alpha_ni_syscall + .quad sys_open /* 45 */ +--- kernel-power-2.6.28.orig/arch/arm/kernel/calls.S ++++ kernel-power-2.6.28/arch/arm/kernel/calls.S +@@ -98,7 +98,7 @@ + CALL(sys_uselib) + CALL(sys_swapon) + CALL(sys_reboot) +- CALL(OBSOLETE(old_readdir)) /* used by libc4 */ ++ CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */ + /* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */ + CALL(sys_munmap) + CALL(sys_truncate) +--- kernel-power-2.6.28.orig/arch/arm/mach-rpc/riscpc.c ++++ kernel-power-2.6.28/arch/arm/mach-rpc/riscpc.c +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -201,8 +202,13 @@ + &pata_device, + }; + ++static struct i2c_board_info i2c_rtc = { ++ I2C_BOARD_INFO("pcf8583", 0x50) ++}; ++ + static int __init rpc_init(void) + { ++ i2c_register_board_info(0, &i2c_rtc, 1); + return platform_add_devices(devs, ARRAY_SIZE(devs)); + } + +--- kernel-power-2.6.28.orig/arch/cris/arch-v10/kernel/entry.S ++++ kernel-power-2.6.28/arch/cris/arch-v10/kernel/entry.S +@@ -691,7 +691,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/cris/arch-v32/kernel/entry.S ++++ kernel-power-2.6.28/arch/cris/arch-v32/kernel/entry.S +@@ -614,7 +614,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/h8300/kernel/syscalls.S ++++ kernel-power-2.6.28/arch/h8300/kernel/syscalls.S +@@ -103,7 +103,7 @@ + .long SYMBOL_NAME(sys_uselib) + .long SYMBOL_NAME(sys_swapon) + .long SYMBOL_NAME(sys_reboot) +- .long SYMBOL_NAME(old_readdir) ++ .long SYMBOL_NAME(sys_old_readdir) + .long SYMBOL_NAME(old_mmap) /* 90 */ + .long SYMBOL_NAME(sys_munmap) + .long SYMBOL_NAME(sys_truncate) +--- kernel-power-2.6.28.orig/arch/ia64/Kconfig ++++ kernel-power-2.6.28/arch/ia64/Kconfig +@@ -17,6 +17,7 @@ + select ACPI if (!IA64_HP_SIM) + select PM if (!IA64_HP_SIM) + select ARCH_SUPPORTS_MSI ++ select HAVE_UNSTABLE_SCHED_CLOCK + select HAVE_IDE + select HAVE_OPROFILE + select HAVE_KPROBES +@@ -478,8 +479,7 @@ + default y if VIRTUAL_MEM_MAP + + config HAVE_ARCH_EARLY_PFN_TO_NID +- def_bool y +- depends on NEED_MULTIPLE_NODES ++ def_bool NUMA && SPARSEMEM + + config HAVE_ARCH_NODEDATA_EXTENSION + def_bool y +--- kernel-power-2.6.28.orig/arch/ia64/ia32/ia32_entry.S ++++ kernel-power-2.6.28/arch/ia64/ia32/ia32_entry.S +@@ -220,7 +220,7 @@ + data8 sys_mkdir + data8 sys_rmdir /* 40 */ + data8 sys_dup +- data8 sys_pipe ++ data8 sys_ia64_pipe + data8 compat_sys_times + data8 sys_ni_syscall /* old prof syscall holder */ + data8 sys32_brk /* 45 */ +--- kernel-power-2.6.28.orig/arch/ia64/include/asm/mmzone.h ++++ kernel-power-2.6.28/arch/ia64/include/asm/mmzone.h +@@ -31,10 +31,6 @@ + #endif + } + +-#ifdef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID +-extern int early_pfn_to_nid(unsigned long pfn); +-#endif +- + #ifdef CONFIG_IA64_DIG /* DIG systems are small */ + # define MAX_PHYSNODE_ID 8 + # define NR_NODE_MEMBLKS (MAX_NUMNODES * 8) +--- kernel-power-2.6.28.orig/arch/ia64/include/asm/unistd.h ++++ kernel-power-2.6.28/arch/ia64/include/asm/unistd.h +@@ -364,7 +364,7 @@ + struct sigaction; + long sys_execve(char __user *filename, char __user * __user *argv, + char __user * __user *envp, struct pt_regs *regs); +-asmlinkage long sys_pipe(void); ++asmlinkage long sys_ia64_pipe(void); + asmlinkage long sys_rt_sigaction(int sig, + const struct sigaction __user *act, + struct sigaction __user *oact, +--- kernel-power-2.6.28.orig/arch/ia64/kernel/entry.S ++++ kernel-power-2.6.28/arch/ia64/kernel/entry.S +@@ -1442,7 +1442,7 @@ + data8 sys_mkdir // 1055 + data8 sys_rmdir + data8 sys_dup +- data8 sys_pipe ++ data8 sys_ia64_pipe + data8 sys_times + data8 ia64_brk // 1060 + data8 sys_setgid +--- kernel-power-2.6.28.orig/arch/ia64/kernel/sys_ia64.c ++++ kernel-power-2.6.28/arch/ia64/kernel/sys_ia64.c +@@ -154,7 +154,7 @@ + * and r9) as this is faster than doing a copy_to_user(). + */ + asmlinkage long +-sys_pipe (void) ++sys_ia64_pipe (void) + { + struct pt_regs *regs = task_pt_regs(current); + int fd[2]; +--- kernel-power-2.6.28.orig/arch/ia64/mm/numa.c ++++ kernel-power-2.6.28/arch/ia64/mm/numa.c +@@ -58,7 +58,7 @@ + * SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where + * the section resides. + */ +-int early_pfn_to_nid(unsigned long pfn) ++int __meminit __early_pfn_to_nid(unsigned long pfn) + { + int i, section = pfn >> PFN_SECTION_SHIFT, ssec, esec; + +@@ -70,7 +70,7 @@ + return node_memblk[i].nid; + } + +- return 0; ++ return -1; + } + + #ifdef CONFIG_MEMORY_HOTPLUG +--- kernel-power-2.6.28.orig/arch/ia64/sn/kernel/io_acpi_init.c ++++ kernel-power-2.6.28/arch/ia64/sn/kernel/io_acpi_init.c +@@ -434,7 +434,7 @@ + size = pci_resource_len(dev, PCI_ROM_RESOURCE); + addr = ioremap(pcidev_info->pdi_pio_mapped_addr[PCI_ROM_RESOURCE], + size); +- image_size = pci_get_rom_size(addr, size); ++ image_size = pci_get_rom_size(dev, addr, size); + dev->resource[PCI_ROM_RESOURCE].start = (unsigned long) addr; + dev->resource[PCI_ROM_RESOURCE].end = + (unsigned long) addr + image_size - 1; +--- kernel-power-2.6.28.orig/arch/ia64/sn/kernel/io_init.c ++++ kernel-power-2.6.28/arch/ia64/sn/kernel/io_init.c +@@ -269,7 +269,7 @@ + + rom = ioremap(pci_resource_start(dev, PCI_ROM_RESOURCE), + size + 1); +- image_size = pci_get_rom_size(rom, size + 1); ++ image_size = pci_get_rom_size(dev, rom, size + 1); + dev->resource[PCI_ROM_RESOURCE].end = + dev->resource[PCI_ROM_RESOURCE].start + + image_size - 1; +--- kernel-power-2.6.28.orig/arch/m68k/kernel/entry.S ++++ kernel-power-2.6.28/arch/m68k/kernel/entry.S +@@ -513,7 +513,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/m68knommu/Kconfig ++++ kernel-power-2.6.28/arch/m68knommu/Kconfig +@@ -14,6 +14,10 @@ + bool + default n + ++config NO_DMA ++ bool ++ default y ++ + config FPU + bool + default n +--- kernel-power-2.6.28.orig/arch/m68knommu/kernel/syscalltable.S ++++ kernel-power-2.6.28/arch/m68knommu/kernel/syscalltable.S +@@ -107,7 +107,7 @@ + .long sys_uselib + .long sys_ni_syscall /* sys_swapon */ + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/mips/include/asm/compat.h ++++ kernel-power-2.6.28/arch/mips/include/asm/compat.h +@@ -3,6 +3,8 @@ + /* + * Architecture specific compatibility types + */ ++#include ++#include + #include + #include + #include +@@ -218,4 +220,9 @@ + compat_ulong_t __unused2; + }; + ++static inline int is_compat_task(void) ++{ ++ return test_thread_flag(TIF_32BIT); ++} ++ + #endif /* _ASM_COMPAT_H */ +--- kernel-power-2.6.28.orig/arch/mips/include/asm/seccomp.h ++++ kernel-power-2.6.28/arch/mips/include/asm/seccomp.h +@@ -1,6 +1,5 @@ + #ifndef __ASM_SECCOMP_H + +-#include + #include + + #define __NR_seccomp_read __NR_read +--- kernel-power-2.6.28.orig/arch/mips/kernel/scall32-o32.S ++++ kernel-power-2.6.28/arch/mips/kernel/scall32-o32.S +@@ -398,7 +398,7 @@ + sys sys_uselib 1 + sys sys_swapon 2 + sys sys_reboot 3 +- sys old_readdir 3 ++ sys sys_old_readdir 3 + sys old_mmap 6 /* 4090 */ + sys sys_munmap 2 + sys sys_truncate 2 +--- kernel-power-2.6.28.orig/arch/mn10300/kernel/entry.S ++++ kernel-power-2.6.28/arch/mn10300/kernel/entry.S +@@ -478,7 +478,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/powerpc/Kconfig ++++ kernel-power-2.6.28/arch/powerpc/Kconfig +@@ -121,6 +121,7 @@ + select HAVE_DMA_ATTRS if PPC64 + select USE_GENERIC_SMP_HELPERS if SMP + select HAVE_OPROFILE ++ select HAVE_SYSCALL_WRAPPERS if PPC64 + + config EARLY_PRINTK + bool +--- kernel-power-2.6.28.orig/arch/powerpc/include/asm/compat.h ++++ kernel-power-2.6.28/arch/powerpc/include/asm/compat.h +@@ -210,5 +210,10 @@ + compat_ulong_t __unused6; + }; + ++static inline int is_compat_task(void) ++{ ++ return test_thread_flag(TIF_32BIT); ++} ++ + #endif /* __KERNEL__ */ + #endif /* _ASM_POWERPC_COMPAT_H */ +--- kernel-power-2.6.28.orig/arch/powerpc/include/asm/futex.h ++++ kernel-power-2.6.28/arch/powerpc/include/asm/futex.h +@@ -27,7 +27,7 @@ + PPC_LONG "1b,4b,2b,4b\n" \ + ".previous" \ + : "=&r" (oldval), "=&r" (ret) \ +- : "b" (uaddr), "i" (-EFAULT), "1" (oparg) \ ++ : "b" (uaddr), "i" (-EFAULT), "r" (oparg) \ + : "cr0", "memory") + + static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr) +@@ -47,19 +47,19 @@ + + switch (op) { + case FUTEX_OP_SET: +- __futex_atomic_op("", ret, oldval, uaddr, oparg); ++ __futex_atomic_op("mr %1,%4\n", ret, oldval, uaddr, oparg); + break; + case FUTEX_OP_ADD: +- __futex_atomic_op("add %1,%0,%1\n", ret, oldval, uaddr, oparg); ++ __futex_atomic_op("add %1,%0,%4\n", ret, oldval, uaddr, oparg); + break; + case FUTEX_OP_OR: +- __futex_atomic_op("or %1,%0,%1\n", ret, oldval, uaddr, oparg); ++ __futex_atomic_op("or %1,%0,%4\n", ret, oldval, uaddr, oparg); + break; + case FUTEX_OP_ANDN: +- __futex_atomic_op("andc %1,%0,%1\n", ret, oldval, uaddr, oparg); ++ __futex_atomic_op("andc %1,%0,%4\n", ret, oldval, uaddr, oparg); + break; + case FUTEX_OP_XOR: +- __futex_atomic_op("xor %1,%0,%1\n", ret, oldval, uaddr, oparg); ++ __futex_atomic_op("xor %1,%0,%4\n", ret, oldval, uaddr, oparg); + break; + default: + ret = -ENOSYS; +--- kernel-power-2.6.28.orig/arch/powerpc/include/asm/processor.h ++++ kernel-power-2.6.28/arch/powerpc/include/asm/processor.h +@@ -309,6 +309,25 @@ + #define HAVE_ARCH_PICK_MMAP_LAYOUT + #endif + ++#ifdef CONFIG_PPC64 ++static inline unsigned long get_clean_sp(struct pt_regs *regs, int is_32) ++{ ++ unsigned long sp; ++ ++ if (is_32) ++ sp = regs->gpr[1] & 0x0ffffffffUL; ++ else ++ sp = regs->gpr[1]; ++ ++ return sp; ++} ++#else ++static inline unsigned long get_clean_sp(struct pt_regs *regs, int is_32) ++{ ++ return regs->gpr[1]; ++} ++#endif ++ + #endif /* __KERNEL__ */ + #endif /* __ASSEMBLY__ */ + #endif /* _ASM_POWERPC_PROCESSOR_H */ +--- kernel-power-2.6.28.orig/arch/powerpc/include/asm/seccomp.h ++++ kernel-power-2.6.28/arch/powerpc/include/asm/seccomp.h +@@ -1,10 +1,6 @@ + #ifndef _ASM_POWERPC_SECCOMP_H + #define _ASM_POWERPC_SECCOMP_H + +-#ifdef __KERNEL__ +-#include +-#endif +- + #include + + #define __NR_seccomp_read __NR_read +--- kernel-power-2.6.28.orig/arch/powerpc/include/asm/systbl.h ++++ kernel-power-2.6.28/arch/powerpc/include/asm/systbl.h +@@ -92,7 +92,7 @@ + SYSCALL(uselib) + SYSCALL(swapon) + SYSCALL(reboot) +-SYSX(sys_ni_syscall,compat_sys_old_readdir,old_readdir) ++SYSX(sys_ni_syscall,compat_sys_old_readdir,sys_old_readdir) + SYSCALL_SPU(mmap) + SYSCALL_SPU(munmap) + SYSCALL_SPU(truncate) +--- kernel-power-2.6.28.orig/arch/powerpc/kernel/align.c ++++ kernel-power-2.6.28/arch/powerpc/kernel/align.c +@@ -367,27 +367,24 @@ + static int emulate_fp_pair(unsigned char __user *addr, unsigned int reg, + unsigned int flags) + { +- char *ptr = (char *) ¤t->thread.TS_FPR(reg); +- int i, ret; ++ char *ptr0 = (char *) ¤t->thread.TS_FPR(reg); ++ char *ptr1 = (char *) ¤t->thread.TS_FPR(reg+1); ++ int i, ret, sw = 0; + + if (!(flags & F)) + return 0; + if (reg & 1) + return 0; /* invalid form: FRS/FRT must be even */ +- if (!(flags & SW)) { +- /* not byte-swapped - easy */ +- if (!(flags & ST)) +- ret = __copy_from_user(ptr, addr, 16); +- else +- ret = __copy_to_user(addr, ptr, 16); +- } else { +- /* each FPR value is byte-swapped separately */ +- ret = 0; +- for (i = 0; i < 16; ++i) { +- if (!(flags & ST)) +- ret |= __get_user(ptr[i^7], addr + i); +- else +- ret |= __put_user(ptr[i^7], addr + i); ++ if (flags & SW) ++ sw = 7; ++ ret = 0; ++ for (i = 0; i < 8; ++i) { ++ if (!(flags & ST)) { ++ ret |= __get_user(ptr0[i^sw], addr + i); ++ ret |= __get_user(ptr1[i^sw], addr + i + 8); ++ } else { ++ ret |= __put_user(ptr0[i^sw], addr + i); ++ ret |= __put_user(ptr1[i^sw], addr + i + 8); + } + } + if (ret) +@@ -646,11 +643,16 @@ + unsigned int areg, struct pt_regs *regs, + unsigned int flags, unsigned int length) + { +- char *ptr = (char *) ¤t->thread.TS_FPR(reg); ++ char *ptr; + int ret = 0; + + flush_vsx_to_thread(current); + ++ if (reg < 32) ++ ptr = (char *) ¤t->thread.TS_FPR(reg); ++ else ++ ptr = (char *) ¤t->thread.vr[reg - 32]; ++ + if (flags & ST) + ret = __copy_to_user(addr, ptr, length); + else { +--- kernel-power-2.6.28.orig/arch/powerpc/kernel/signal.c ++++ kernel-power-2.6.28/arch/powerpc/kernel/signal.c +@@ -26,12 +26,12 @@ + * Allocate space for the signal frame + */ + void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, +- size_t frame_size) ++ size_t frame_size, int is_32) + { + unsigned long oldsp, newsp; + + /* Default to using normal stack */ +- oldsp = regs->gpr[1]; ++ oldsp = get_clean_sp(regs, is_32); + + /* Check for alt stack */ + if ((ka->sa.sa_flags & SA_ONSTACK) && +--- kernel-power-2.6.28.orig/arch/powerpc/kernel/signal.h ++++ kernel-power-2.6.28/arch/powerpc/kernel/signal.h +@@ -15,7 +15,7 @@ + extern void do_signal(struct pt_regs *regs, unsigned long thread_info_flags); + + extern void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, +- size_t frame_size); ++ size_t frame_size, int is_32); + extern void restore_sigmask(sigset_t *set); + + extern int handle_signal32(unsigned long sig, struct k_sigaction *ka, +--- kernel-power-2.6.28.orig/arch/powerpc/kernel/signal_32.c ++++ kernel-power-2.6.28/arch/powerpc/kernel/signal_32.c +@@ -836,7 +836,7 @@ + + /* Set up Signal Frame */ + /* Put a Real Time Context onto stack */ +- rt_sf = get_sigframe(ka, regs, sizeof(*rt_sf)); ++ rt_sf = get_sigframe(ka, regs, sizeof(*rt_sf), 1); + addr = rt_sf; + if (unlikely(rt_sf == NULL)) + goto badframe; +@@ -1182,7 +1182,7 @@ + unsigned long newsp = 0; + + /* Set up Signal Frame */ +- frame = get_sigframe(ka, regs, sizeof(*frame)); ++ frame = get_sigframe(ka, regs, sizeof(*frame), 1); + if (unlikely(frame == NULL)) + goto badframe; + sc = (struct sigcontext __user *) &frame->sctx; +--- kernel-power-2.6.28.orig/arch/powerpc/kernel/signal_64.c ++++ kernel-power-2.6.28/arch/powerpc/kernel/signal_64.c +@@ -402,7 +402,7 @@ + unsigned long newsp = 0; + long err = 0; + +- frame = get_sigframe(ka, regs, sizeof(*frame)); ++ frame = get_sigframe(ka, regs, sizeof(*frame), 0); + if (unlikely(frame == NULL)) + goto badframe; + +--- kernel-power-2.6.28.orig/arch/powerpc/mm/fsl_booke_mmu.c ++++ kernel-power-2.6.28/arch/powerpc/mm/fsl_booke_mmu.c +@@ -80,7 +80,7 @@ + /* + * Return PA for this VA if it is mapped by a CAM, or 0 + */ +-unsigned long v_mapped_by_tlbcam(unsigned long va) ++phys_addr_t v_mapped_by_tlbcam(unsigned long va) + { + int b; + for (b = 0; b < tlbcam_index; ++b) +@@ -92,7 +92,7 @@ + /* + * Return VA for a given PA or 0 if not mapped + */ +-unsigned long p_mapped_by_tlbcam(unsigned long pa) ++unsigned long p_mapped_by_tlbcam(phys_addr_t pa) + { + int b; + for (b = 0; b < tlbcam_index; ++b) +--- kernel-power-2.6.28.orig/arch/powerpc/mm/pgtable_32.c ++++ kernel-power-2.6.28/arch/powerpc/mm/pgtable_32.c +@@ -65,8 +65,8 @@ + + #ifdef HAVE_TLBCAM + extern unsigned int tlbcam_index; +-extern unsigned long v_mapped_by_tlbcam(unsigned long va); +-extern unsigned long p_mapped_by_tlbcam(unsigned long pa); ++extern phys_addr_t v_mapped_by_tlbcam(unsigned long va); ++extern unsigned long p_mapped_by_tlbcam(phys_addr_t pa); + #else /* !HAVE_TLBCAM */ + #define v_mapped_by_tlbcam(x) (0UL) + #define p_mapped_by_tlbcam(x) (0UL) +--- kernel-power-2.6.28.orig/arch/powerpc/mm/slice.c ++++ kernel-power-2.6.28/arch/powerpc/mm/slice.c +@@ -710,9 +710,18 @@ + unsigned long len) + { + struct slice_mask mask, available; ++ unsigned int psize = mm->context.user_psize; + + mask = slice_range_to_mask(addr, len); +- available = slice_mask_for_size(mm, mm->context.user_psize); ++ available = slice_mask_for_size(mm, psize); ++#ifdef CONFIG_PPC_64K_PAGES ++ /* We need to account for 4k slices too */ ++ if (psize == MMU_PAGE_64K) { ++ struct slice_mask compat_mask; ++ compat_mask = slice_mask_for_size(mm, MMU_PAGE_4K); ++ or_mask(available, compat_mask); ++ } ++#endif + + #if 0 /* too verbose */ + slice_dbg("is_hugepage_only_range(mm=%p, addr=%lx, len=%lx)\n", +--- kernel-power-2.6.28.orig/arch/powerpc/platforms/pseries/Kconfig ++++ kernel-power-2.6.28/arch/powerpc/platforms/pseries/Kconfig +@@ -54,7 +54,7 @@ + + config CMM + tristate "Collaborative memory management" +- depends on PPC_SMLPAR ++ depends on PPC_SMLPAR && !CRASH_DUMP + default y + help + Select this option, if you want to enable the kernel interface +--- kernel-power-2.6.28.orig/arch/powerpc/sysdev/fsl_soc.c ++++ kernel-power-2.6.28/arch/powerpc/sysdev/fsl_soc.c +@@ -257,7 +257,7 @@ + gfar_mdio_of_init_one(np); + + /* try the deprecated version */ +- for_each_compatible_node(np, "mdio", "gianfar"); ++ for_each_compatible_node(np, "mdio", "gianfar") + gfar_mdio_of_init_one(np); + + return 0; +--- kernel-power-2.6.28.orig/arch/s390/Kconfig ++++ kernel-power-2.6.28/arch/s390/Kconfig +@@ -70,6 +70,7 @@ + + config S390 + def_bool y ++ select HAVE_SYSCALL_WRAPPERS + select HAVE_OPROFILE + select HAVE_KPROBES + select HAVE_KRETPROBES +--- kernel-power-2.6.28.orig/arch/s390/kernel/compat_wrapper.S ++++ kernel-power-2.6.28/arch/s390/kernel/compat_wrapper.S +@@ -547,7 +547,7 @@ + .globl sys32_newuname_wrapper + sys32_newuname_wrapper: + llgtr %r2,%r2 # struct new_utsname * +- jg s390x_newuname # branch to system call ++ jg sys_s390_newuname # branch to system call + + .globl compat_sys_adjtimex_wrapper + compat_sys_adjtimex_wrapper: +@@ -615,7 +615,7 @@ + .globl sys32_personality_wrapper + sys32_personality_wrapper: + llgfr %r2,%r2 # unsigned long +- jg s390x_personality # branch to system call ++ jg sys_s390_personality # branch to system call + + .globl sys32_setfsuid16_wrapper + sys32_setfsuid16_wrapper: +--- kernel-power-2.6.28.orig/arch/s390/kernel/entry.h ++++ kernel-power-2.6.28/arch/s390/kernel/entry.h +@@ -30,23 +30,23 @@ + struct old_sigaction; + struct sel_arg_struct; + +-long sys_pipe(unsigned long __user *fildes); + long sys_mmap2(struct mmap_arg_struct __user *arg); +-long old_mmap(struct mmap_arg_struct __user *arg); ++long sys_s390_old_mmap(struct mmap_arg_struct __user *arg); + long sys_ipc(uint call, int first, unsigned long second, + unsigned long third, void __user *ptr); +-long s390x_newuname(struct new_utsname __user *name); +-long s390x_personality(unsigned long personality); +-long s390_fadvise64(int fd, u32 offset_high, u32 offset_low, ++long sys_s390_newuname(struct new_utsname __user *name); ++long sys_s390_personality(unsigned long personality); ++long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low, + size_t len, int advice); +-long s390_fadvise64_64(struct fadvise64_64_args __user *args); +-long s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, u32 len_low); ++long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args); ++long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, ++ u32 len_low); + long sys_fork(void); + long sys_clone(void); + long sys_vfork(void); + void execve_tail(void); + long sys_execve(void); +-int sys_sigsuspend(int history0, int history1, old_sigset_t mask); ++long sys_sigsuspend(int history0, int history1, old_sigset_t mask); + long sys_sigaction(int sig, const struct old_sigaction __user *act, + struct old_sigaction __user *oact); + long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss); +--- kernel-power-2.6.28.orig/arch/s390/kernel/process.c ++++ kernel-power-2.6.28/arch/s390/kernel/process.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -260,13 +261,13 @@ + return 0; + } + +-asmlinkage long sys_fork(void) ++SYSCALL_DEFINE0(fork) + { + struct pt_regs *regs = task_pt_regs(current); + return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL); + } + +-asmlinkage long sys_clone(void) ++SYSCALL_DEFINE0(clone) + { + struct pt_regs *regs = task_pt_regs(current); + unsigned long clone_flags; +@@ -293,7 +294,7 @@ + * do not have enough call-clobbered registers to hold all + * the information you need. + */ +-asmlinkage long sys_vfork(void) ++SYSCALL_DEFINE0(vfork) + { + struct pt_regs *regs = task_pt_regs(current); + return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, +@@ -313,7 +314,7 @@ + /* + * sys_execve() executes a new program. + */ +-asmlinkage long sys_execve(void) ++SYSCALL_DEFINE0(execve) + { + struct pt_regs *regs = task_pt_regs(current); + char *filename; +--- kernel-power-2.6.28.orig/arch/s390/kernel/signal.c ++++ kernel-power-2.6.28/arch/s390/kernel/signal.c +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -53,8 +54,7 @@ + /* + * Atomically swap in the new signal mask, and wait for a signal. + */ +-asmlinkage int +-sys_sigsuspend(int history0, int history1, old_sigset_t mask) ++SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask) + { + mask &= _BLOCKABLE; + spin_lock_irq(¤t->sighand->siglock); +@@ -70,9 +70,8 @@ + return -ERESTARTNOHAND; + } + +-asmlinkage long +-sys_sigaction(int sig, const struct old_sigaction __user *act, +- struct old_sigaction __user *oact) ++SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act, ++ struct old_sigaction __user *, oact) + { + struct k_sigaction new_ka, old_ka; + int ret; +@@ -102,15 +101,13 @@ + return ret; + } + +-asmlinkage long +-sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) ++SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss, ++ stack_t __user *, uoss) + { + struct pt_regs *regs = task_pt_regs(current); + return do_sigaltstack(uss, uoss, regs->gprs[15]); + } + +- +- + /* Returns non-zero on fault. */ + static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs) + { +@@ -164,7 +161,7 @@ + return 0; + } + +-asmlinkage long sys_sigreturn(void) ++SYSCALL_DEFINE0(sigreturn) + { + struct pt_regs *regs = task_pt_regs(current); + sigframe __user *frame = (sigframe __user *)regs->gprs[15]; +@@ -191,7 +188,7 @@ + return 0; + } + +-asmlinkage long sys_rt_sigreturn(void) ++SYSCALL_DEFINE0(rt_sigreturn) + { + struct pt_regs *regs = task_pt_regs(current); + rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15]; +--- kernel-power-2.6.28.orig/arch/s390/kernel/sys_s390.c ++++ kernel-power-2.6.28/arch/s390/kernel/sys_s390.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include "entry.h" + +@@ -74,7 +75,7 @@ + unsigned long offset; + }; + +-asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg) ++SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg) + { + struct mmap_arg_struct a; + int error = -EFAULT; +@@ -86,7 +87,7 @@ + return error; + } + +-asmlinkage long old_mmap(struct mmap_arg_struct __user *arg) ++SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg) + { + struct mmap_arg_struct a; + long error = -EFAULT; +@@ -127,8 +128,8 @@ + * + * This is really horribly ugly. + */ +-asmlinkage long sys_ipc(uint call, int first, unsigned long second, +- unsigned long third, void __user *ptr) ++SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second, ++ unsigned long, third, void __user *, ptr) + { + struct ipc_kludge tmp; + int ret; +@@ -194,7 +195,7 @@ + } + + #ifdef CONFIG_64BIT +-asmlinkage long s390x_newuname(struct new_utsname __user *name) ++SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name) + { + int ret = sys_newuname(name); + +@@ -205,7 +206,7 @@ + return ret; + } + +-asmlinkage long s390x_personality(unsigned long personality) ++SYSCALL_DEFINE1(s390_personality, unsigned long, personality) + { + int ret; + +@@ -224,15 +225,13 @@ + */ + #ifndef CONFIG_64BIT + +-asmlinkage long +-s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice) ++SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, offset_high, u32, offset_low, ++ size_t, len, int, advice) + { + return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low, + len, advice); + } + +-#endif +- + struct fadvise64_64_args { + int fd; + long long offset; +@@ -240,8 +239,7 @@ + int advice; + }; + +-asmlinkage long +-s390_fadvise64_64(struct fadvise64_64_args __user *args) ++SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args) + { + struct fadvise64_64_args a; + +@@ -250,7 +248,6 @@ + return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice); + } + +-#ifndef CONFIG_64BIT + /* + * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last + * 64 bit argument "len" is split into the upper and lower 32 bits. The +@@ -263,9 +260,19 @@ + * to + * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len + */ +-asmlinkage long s390_fallocate(int fd, int mode, loff_t offset, ++SYSCALL_DEFINE(s390_fallocate)(int fd, int mode, loff_t offset, + u32 len_high, u32 len_low) + { + return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low); + } ++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS ++asmlinkage long SyS_s390_fallocate(long fd, long mode, loff_t offset, ++ long len_high, long len_low) ++{ ++ return SYSC_s390_fallocate((int) fd, (int) mode, offset, ++ (u32) len_high, (u32) len_low); ++} ++SYSCALL_ALIAS(sys_s390_fallocate, SyS_s390_fallocate); ++#endif ++ + #endif +--- kernel-power-2.6.28.orig/arch/s390/kernel/syscalls.S ++++ kernel-power-2.6.28/arch/s390/kernel/syscalls.S +@@ -98,7 +98,7 @@ + SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) + SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) + SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ +-SYSCALL(old_mmap,old_mmap,old32_mmap_wrapper) /* 90 */ ++SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */ + SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) + SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) + SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper) +@@ -130,7 +130,7 @@ + SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) + SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */ + SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) +-SYSCALL(sys_newuname,s390x_newuname,sys32_newuname_wrapper) ++SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper) + NI_SYSCALL /* modify_ldt for i386 */ + SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) + SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ +@@ -144,7 +144,7 @@ + SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper) + SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper) + SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */ +-SYSCALL(sys_personality,s390x_personality,sys32_personality_wrapper) ++SYSCALL(sys_personality,sys_s390_personality,sys32_personality_wrapper) + NI_SYSCALL /* for afs_syscall */ + SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */ + SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */ +@@ -261,7 +261,7 @@ + SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ + SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) + SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) +-SYSCALL(s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) ++SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) + SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) + SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ + SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper) +@@ -272,7 +272,7 @@ + SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) + SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) + NI_SYSCALL /* reserved for vserver */ +-SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) ++SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) + SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) + SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) + SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper) +@@ -322,7 +322,7 @@ + SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) + SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) + SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) +-SYSCALL(s390_fallocate,sys_fallocate,sys_fallocate_wrapper) ++SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper) + SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ + SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) + NI_SYSCALL /* 317 old sys_timer_fd */ +--- kernel-power-2.6.28.orig/arch/s390/lib/div64.c ++++ kernel-power-2.6.28/arch/s390/lib/div64.c +@@ -61,7 +61,7 @@ + " clr %0,%3\n" + " jl 0f\n" + " slr %0,%3\n" +- " alr %1,%2\n" ++ " ahi %1,1\n" + "0:\n" + : "+d" (reg2), "+d" (reg3), "=d" (tmp) + : "d" (base), "2" (1UL) : "cc" ); +--- kernel-power-2.6.28.orig/arch/sh/include/asm/syscalls_32.h ++++ kernel-power-2.6.28/arch/sh/include/asm/syscalls_32.h +@@ -36,9 +36,9 @@ + asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7, + struct pt_regs __regs); +-asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, +- unsigned long r6, unsigned long r7, +- struct pt_regs __regs); ++asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5, ++ unsigned long r6, unsigned long r7, ++ struct pt_regs __regs); + asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf, + size_t count, long dummy, loff_t pos); + asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf, +--- kernel-power-2.6.28.orig/arch/sh/kernel/sys_sh32.c ++++ kernel-power-2.6.28/arch/sh/kernel/sys_sh32.c +@@ -22,7 +22,7 @@ + * sys_pipe() is the normal C calling standard for creating + * a pipe. It's not the way Unix traditionally does this, though. + */ +-asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, ++asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5, + unsigned long r6, unsigned long r7, + struct pt_regs __regs) + { +--- kernel-power-2.6.28.orig/arch/sh/kernel/syscalls_32.S ++++ kernel-power-2.6.28/arch/sh/kernel/syscalls_32.S +@@ -58,7 +58,7 @@ + .long sys_mkdir + .long sys_rmdir /* 40 */ + .long sys_dup +- .long sys_pipe ++ .long sys_sh_pipe + .long sys_times + .long sys_ni_syscall /* old prof syscall holder */ + .long sys_brk /* 45 */ +@@ -105,7 +105,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/sh/kernel/syscalls_64.S ++++ kernel-power-2.6.28/arch/sh/kernel/syscalls_64.S +@@ -109,7 +109,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/sparc/include/asm/compat.h ++++ kernel-power-2.6.28/arch/sparc/include/asm/compat.h +@@ -240,4 +240,9 @@ + unsigned int __unused2; + }; + ++static inline int is_compat_task(void) ++{ ++ return test_thread_flag(TIF_32BIT); ++} ++ + #endif /* _ASM_SPARC64_COMPAT_H */ +--- kernel-power-2.6.28.orig/arch/sparc/include/asm/seccomp.h ++++ kernel-power-2.6.28/arch/sparc/include/asm/seccomp.h +@@ -1,11 +1,5 @@ + #ifndef _ASM_SECCOMP_H + +-#include /* already defines TIF_32BIT */ +- +-#ifndef TIF_32BIT +-#error "unexpected TIF_32BIT on sparc64" +-#endif +- + #include + + #define __NR_seccomp_read __NR_read +--- kernel-power-2.6.28.orig/arch/sparc/kernel/entry.S ++++ kernel-power-2.6.28/arch/sparc/kernel/entry.S +@@ -1088,8 +1088,8 @@ + ld [%sp + STACKFRAME_SZ + PT_I0], %o0 + + .align 4 +- .globl sys_pipe +-sys_pipe: ++ .globl sys_sparc_pipe ++sys_sparc_pipe: + mov %o7, %l5 + add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg + call sparc_pipe +--- kernel-power-2.6.28.orig/arch/sparc/kernel/systbls.S ++++ kernel-power-2.6.28/arch/sparc/kernel/systbls.S +@@ -24,7 +24,7 @@ + /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause + /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice + /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile +-/*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid ++/*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid + /*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16 + /*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl + /*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve +@@ -56,7 +56,7 @@ + /*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname + /*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl + /*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask +-/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, old_readdir ++/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir + /*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 + /*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo + /*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex +--- kernel-power-2.6.28.orig/arch/sparc64/Kconfig ++++ kernel-power-2.6.28/arch/sparc64/Kconfig +@@ -14,6 +14,7 @@ + select HAVE_FUNCTION_TRACER + select HAVE_IDE + select HAVE_LMB ++ select HAVE_SYSCALL_WRAPPERS + select HAVE_ARCH_KGDB + select USE_GENERIC_SMP_HELPERS if SMP + select HAVE_ARCH_TRACEHOOK +--- kernel-power-2.6.28.orig/arch/sparc64/kernel/chmc.c ++++ kernel-power-2.6.28/arch/sparc64/kernel/chmc.c +@@ -306,6 +306,7 @@ + buf[1] = '?'; + buf[2] = '?'; + buf[3] = '\0'; ++ return 0; + } + p = dp->controller; + prop = &p->layout; +--- kernel-power-2.6.28.orig/arch/sparc64/kernel/sys_sparc.c ++++ kernel-power-2.6.28/arch/sparc64/kernel/sys_sparc.c +@@ -397,7 +397,7 @@ + } + } + +-asmlinkage unsigned long sparc_brk(unsigned long brk) ++SYSCALL_DEFINE1(sparc_brk, unsigned long, brk) + { + /* People could try to be nasty and use ta 0x6d in 32bit programs */ + if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32) +@@ -413,7 +413,7 @@ + * sys_pipe() is the normal C calling standard for creating + * a pipe. It's not the way unix traditionally does this, though. + */ +-asmlinkage long sparc_pipe(struct pt_regs *regs) ++SYSCALL_DEFINE1(sparc_pipe_real, struct pt_regs *, regs) + { + int fd[2]; + int error; +@@ -433,8 +433,8 @@ + * This is really horribly ugly. + */ + +-asmlinkage long sys_ipc(unsigned int call, int first, unsigned long second, +- unsigned long third, void __user *ptr, long fifth) ++SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, unsigned long, second, ++ unsigned long, third, void __user *, ptr, long, fifth) + { + long err; + +@@ -517,7 +517,7 @@ + return err; + } + +-asmlinkage long sparc64_newuname(struct new_utsname __user *name) ++SYSCALL_DEFINE1(sparc64_newuname, struct new_utsname __user *, name) + { + int ret = sys_newuname(name); + +@@ -528,7 +528,7 @@ + return ret; + } + +-asmlinkage long sparc64_personality(unsigned long personality) ++SYSCALL_DEFINE1(sparc64_personality, unsigned long, personality) + { + int ret; + +@@ -562,9 +562,9 @@ + } + + /* Linux version of mmap */ +-asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, +- unsigned long prot, unsigned long flags, unsigned long fd, +- unsigned long off) ++SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len, ++ unsigned long, prot, unsigned long, flags, unsigned long, fd, ++ unsigned long, off) + { + struct file * file = NULL; + unsigned long retval = -EBADF; +@@ -587,7 +587,7 @@ + return retval; + } + +-asmlinkage long sys64_munmap(unsigned long addr, size_t len) ++SYSCALL_DEFINE2(64_munmap, unsigned long, addr, size_t, len) + { + long ret; + +@@ -604,9 +604,9 @@ + unsigned long old_len, unsigned long new_len, + unsigned long flags, unsigned long new_addr); + +-asmlinkage unsigned long sys64_mremap(unsigned long addr, +- unsigned long old_len, unsigned long new_len, +- unsigned long flags, unsigned long new_addr) ++SYSCALL_DEFINE5(64_mremap, unsigned long, addr, unsigned long, old_len, ++ unsigned long, new_len, unsigned long, flags, ++ unsigned long, new_addr) + { + unsigned long ret = -EINVAL; + +@@ -669,7 +669,7 @@ + + extern void check_pending(int signum); + +-asmlinkage long sys_getdomainname(char __user *name, int len) ++SYSCALL_DEFINE2(getdomainname, char __user *, name, int, len) + { + int nlen, err; + +@@ -692,11 +692,10 @@ + return err; + } + +-asmlinkage long sys_utrap_install(utrap_entry_t type, +- utrap_handler_t new_p, +- utrap_handler_t new_d, +- utrap_handler_t __user *old_p, +- utrap_handler_t __user *old_d) ++SYSCALL_DEFINE5(utrap_install, utrap_entry_t, type, ++ utrap_handler_t, new_p, utrap_handler_t, new_d, ++ utrap_handler_t __user *, old_p, ++ utrap_handler_t __user *, old_d) + { + if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31) + return -EINVAL; +@@ -762,11 +761,9 @@ + return 0; + } + +-asmlinkage long sys_rt_sigaction(int sig, +- const struct sigaction __user *act, +- struct sigaction __user *oact, +- void __user *restorer, +- size_t sigsetsize) ++SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act, ++ struct sigaction __user *, oact, void __user *, restorer, ++ size_t, sigsetsize) + { + struct k_sigaction new_ka, old_ka; + int ret; +@@ -806,7 +803,8 @@ + reset_pic(); + } + +-asmlinkage long sys_perfctr(int opcode, unsigned long arg0, unsigned long arg1, unsigned long arg2) ++SYSCALL_DEFINE4(perfctr, int, opcode, unsigned long, arg0, ++ unsigned long, arg1, unsigned long, arg2) + { + int err = 0; + +--- kernel-power-2.6.28.orig/arch/sparc64/kernel/syscalls.S ++++ kernel-power-2.6.28/arch/sparc64/kernel/syscalls.S +@@ -20,8 +20,8 @@ + add %sp, PTREGS_OFF, %o0 + + .align 32 +-sys_pipe: +- ba,pt %xcc, sparc_pipe ++sys_sparc_pipe: ++ ba,pt %xcc, sys_sparc_pipe_real + add %sp, PTREGS_OFF, %o0 + sys_nis_syscall: + ba,pt %xcc, c_sys_nis_syscall +--- kernel-power-2.6.28.orig/arch/sparc64/kernel/systbls.S ++++ kernel-power-2.6.28/arch/sparc64/kernel/systbls.S +@@ -21,12 +21,12 @@ + /*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write + /*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link + /*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys_chown16, sys32_mknod +-/*15*/ .word sys_chmod, sys_lchown16, sparc_brk, sys32_perfctr, sys32_lseek ++/*15*/ .word sys_chmod, sys_lchown16, sys_sparc_brk, sys32_perfctr, sys32_lseek + /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid16, sys_getuid16 + /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause + /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice + .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile +-/*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid ++/*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid + .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16 + /*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl + .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve +@@ -55,8 +55,8 @@ + /*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents + .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr + /*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall +- .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sparc64_newuname +-/*190*/ .word sys32_init_module, sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl ++ .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sys_sparc64_newuname ++/*190*/ .word sys32_init_module, sys_sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl + .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask + /*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir + .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64 +@@ -95,18 +95,18 @@ + /*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write + /*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link + /*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod +-/*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek ++/*15*/ .word sys_chmod, sys_lchown, sys_sparc_brk, sys_perfctr, sys_lseek + /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid + /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall + /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice + .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 +-/*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall ++/*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall + .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid + /*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl + .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve + /*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize + .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall +-/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect ++/*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys_64_munmap, sys_mprotect + .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups + /*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall + .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall +@@ -129,8 +129,8 @@ + /*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents + .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr + /*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall +- .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sparc64_newuname +-/*190*/ .word sys_init_module, sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl ++ .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_sparc64_newuname ++/*190*/ .word sys_init_module, sys_sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl + .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask + /*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall + .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 +@@ -142,7 +142,7 @@ + .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall + /*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler + .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep +-/*250*/ .word sys64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl ++/*250*/ .word sys_64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl + .word sys_sync_file_range, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep + /*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun + .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy +--- kernel-power-2.6.28.orig/arch/sparc64/kernel/systbls.h ++++ kernel-power-2.6.28/arch/sparc64/kernel/systbls.h +@@ -16,9 +16,6 @@ + void __user *ptr, long fifth); + extern asmlinkage long sparc64_newuname(struct new_utsname __user *name); + extern asmlinkage long sparc64_personality(unsigned long personality); +-extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len, +- unsigned long prot, unsigned long flags, +- unsigned long fd, unsigned long off); + extern asmlinkage long sys64_munmap(unsigned long addr, size_t len); + extern asmlinkage unsigned long sys64_mremap(unsigned long addr, + unsigned long old_len, +--- kernel-power-2.6.28.orig/arch/sparc64/kernel/traps.c ++++ kernel-power-2.6.28/arch/sparc64/kernel/traps.c +@@ -1,6 +1,6 @@ + /* arch/sparc64/kernel/traps.c + * +- * Copyright (C) 1995,1997,2008 David S. Miller (davem@davemloft.net) ++ * Copyright (C) 1995,1997,2008,2009 David S. Miller (davem@davemloft.net) + * Copyright (C) 1997,1999,2000 Jakub Jelinek (jakub@redhat.com) + */ + +@@ -313,6 +313,21 @@ + return; + + if (regs->tstate & TSTATE_PRIV) { ++ /* Test if this comes from uaccess places. */ ++ const struct exception_table_entry *entry; ++ ++ entry = search_exception_tables(regs->tpc); ++ if (entry) { ++ /* Ouch, somebody is trying VM hole tricks on us... */ ++#ifdef DEBUG_EXCEPTIONS ++ printk("Exception: PC<%016lx> faddr\n", regs->tpc); ++ printk("EX_TABLE: insn<%016lx> fixup<%016lx>\n", ++ regs->tpc, entry->fixup); ++#endif ++ regs->tpc = entry->fixup; ++ regs->tnpc = regs->tpc + 4; ++ return; ++ } + printk("sun4v_data_access_exception: ADDR[%016lx] " + "CTX[%04x] TYPE[%04x], going.\n", + addr, ctx, type); +--- kernel-power-2.6.28.orig/arch/x86/Kconfig ++++ kernel-power-2.6.28/arch/x86/Kconfig +@@ -569,7 +569,7 @@ + + # need this always selected by IOMMU for the VIA workaround + config SWIOTLB +- bool ++ def_bool y if X86_64 + help + Support for software bounce buffers used on x86-64 systems + which don't have a hardware IOMMU (e.g. the current generation +--- kernel-power-2.6.28.orig/arch/x86/boot/memory.c ++++ kernel-power-2.6.28/arch/x86/boot/memory.c +@@ -27,13 +27,14 @@ + do { + size = sizeof(struct e820entry); + +- /* Important: %edx is clobbered by some BIOSes, +- so it must be either used for the error output ++ /* Important: %edx and %esi are clobbered by some BIOSes, ++ so they must be either used for the error output + or explicitly marked clobbered. */ + asm("int $0x15; setc %0" + : "=d" (err), "+b" (next), "=a" (id), "+c" (size), + "=m" (*desc) +- : "D" (desc), "d" (SMAP), "a" (0xe820)); ++ : "D" (desc), "d" (SMAP), "a" (0xe820) ++ : "esi"); + + /* BIOSes which terminate the chain with CF = 1 as opposed + to %ebx = 0 don't always report the SMAP signature on +--- kernel-power-2.6.28.orig/arch/x86/ia32/ia32entry.S ++++ kernel-power-2.6.28/arch/x86/ia32/ia32entry.S +@@ -418,9 +418,9 @@ + orl $TS_COMPAT,TI_status(%r10) + testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10) + jnz ia32_tracesys +-ia32_do_syscall: + cmpl $(IA32_NR_syscalls-1),%eax +- ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */ ++ ja ia32_badsys ++ia32_do_call: + IA32_ARG_FIXUP + call *ia32_sys_call_table(,%rax,8) # xxx: rip relative + ia32_sysret: +@@ -435,7 +435,9 @@ + call syscall_trace_enter + LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ + RESTORE_REST +- jmp ia32_do_syscall ++ cmpl $(IA32_NR_syscalls-1),%eax ++ ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */ ++ jmp ia32_do_call + END(ia32_syscall) + + ia32_badsys: +--- kernel-power-2.6.28.orig/arch/x86/include/asm/kvm_host.h ++++ kernel-power-2.6.28/arch/x86/include/asm/kvm_host.h +@@ -190,9 +190,11 @@ + u64 *spt; + /* hold the gfn of each spte inside spt */ + gfn_t *gfns; +- unsigned long slot_bitmap; /* One bit set per slot which has memory +- * in this shadow page. +- */ ++ /* ++ * One bit set per slot which has memory ++ * in this shadow page. ++ */ ++ DECLARE_BITMAP(slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS); + int multimapped; /* More than one parent_pte? */ + int root_count; /* Currently serving as active root */ + bool unsync; +@@ -607,6 +609,8 @@ + int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3); + int complete_pio(struct kvm_vcpu *vcpu); + ++struct kvm_memory_slot *gfn_to_memslot_unaliased(struct kvm *kvm, gfn_t gfn); ++ + static inline struct kvm_mmu_page *page_header(hpa_t shadow_page) + { + struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT); +--- kernel-power-2.6.28.orig/arch/x86/include/asm/math_emu.h ++++ kernel-power-2.6.28/arch/x86/include/asm/math_emu.h +@@ -1,31 +1,18 @@ + #ifndef _ASM_X86_MATH_EMU_H + #define _ASM_X86_MATH_EMU_H + ++#include ++#include ++ + /* This structure matches the layout of the data saved to the stack + following a device-not-present interrupt, part of it saved + automatically by the 80386/80486. + */ +-struct info { ++struct math_emu_info { + long ___orig_eip; +- long ___ebx; +- long ___ecx; +- long ___edx; +- long ___esi; +- long ___edi; +- long ___ebp; +- long ___eax; +- long ___ds; +- long ___es; +- long ___fs; +- long ___orig_eax; +- long ___eip; +- long ___cs; +- long ___eflags; +- long ___esp; +- long ___ss; +- long ___vm86_es; /* This and the following only in vm86 mode */ +- long ___vm86_ds; +- long ___vm86_fs; +- long ___vm86_gs; ++ union { ++ struct pt_regs *regs; ++ struct kernel_vm86_regs *vm86; ++ }; + }; + #endif /* _ASM_X86_MATH_EMU_H */ +--- kernel-power-2.6.28.orig/arch/x86/include/asm/mmzone_32.h ++++ kernel-power-2.6.28/arch/x86/include/asm/mmzone_32.h +@@ -32,8 +32,6 @@ + get_memcfg_numa_flat(); + } + +-extern int early_pfn_to_nid(unsigned long pfn); +- + extern void resume_map_numa_kva(pgd_t *pgd); + + #else /* !CONFIG_NUMA */ +--- kernel-power-2.6.28.orig/arch/x86/include/asm/mmzone_64.h ++++ kernel-power-2.6.28/arch/x86/include/asm/mmzone_64.h +@@ -40,8 +40,6 @@ + #define node_end_pfn(nid) (NODE_DATA(nid)->node_start_pfn + \ + NODE_DATA(nid)->node_spanned_pages) + +-extern int early_pfn_to_nid(unsigned long pfn); +- + #ifdef CONFIG_NUMA_EMU + #define FAKE_NODE_MIN_SIZE (64 * 1024 * 1024) + #define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL)) +--- kernel-power-2.6.28.orig/arch/x86/include/asm/msr-index.h ++++ kernel-power-2.6.28/arch/x86/include/asm/msr-index.h +@@ -200,6 +200,35 @@ + #define MSR_IA32_THERM_STATUS 0x0000019c + #define MSR_IA32_MISC_ENABLE 0x000001a0 + ++/* MISC_ENABLE bits: architectural */ ++#define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0) ++#define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1) ++#define MSR_IA32_MISC_ENABLE_EMON (1ULL << 7) ++#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1ULL << 11) ++#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1ULL << 12) ++#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP (1ULL << 16) ++#define MSR_IA32_MISC_ENABLE_MWAIT (1ULL << 18) ++#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID (1ULL << 22) ++#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE (1ULL << 23) ++#define MSR_IA32_MISC_ENABLE_XD_DISABLE (1ULL << 34) ++ ++/* MISC_ENABLE bits: model-specific, meaning may vary from core to core */ ++#define MSR_IA32_MISC_ENABLE_X87_COMPAT (1ULL << 2) ++#define MSR_IA32_MISC_ENABLE_TM1 (1ULL << 3) ++#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE (1ULL << 4) ++#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE (1ULL << 6) ++#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK (1ULL << 8) ++#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE (1ULL << 9) ++#define MSR_IA32_MISC_ENABLE_FERR (1ULL << 10) ++#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX (1ULL << 10) ++#define MSR_IA32_MISC_ENABLE_TM2 (1ULL << 13) ++#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE (1ULL << 19) ++#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK (1ULL << 20) ++#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT (1ULL << 24) ++#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE (1ULL << 37) ++#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE (1ULL << 38) ++#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE (1ULL << 39) ++ + /* Intel Model 6 */ + #define MSR_P6_EVNTSEL0 0x00000186 + #define MSR_P6_EVNTSEL1 0x00000187 +--- kernel-power-2.6.28.orig/arch/x86/include/asm/paravirt.h ++++ kernel-power-2.6.28/arch/x86/include/asm/paravirt.h +@@ -1352,14 +1352,7 @@ + PVOP_VCALL0(pv_cpu_ops.lazy_mode.leave); + } + +-static inline void arch_flush_lazy_cpu_mode(void) +-{ +- if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU)) { +- arch_leave_lazy_cpu_mode(); +- arch_enter_lazy_cpu_mode(); +- } +-} +- ++void arch_flush_lazy_cpu_mode(void); + + #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE + static inline void arch_enter_lazy_mmu_mode(void) +@@ -1372,13 +1365,7 @@ + PVOP_VCALL0(pv_mmu_ops.lazy_mode.leave); + } + +-static inline void arch_flush_lazy_mmu_mode(void) +-{ +- if (unlikely(paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU)) { +- arch_leave_lazy_mmu_mode(); +- arch_enter_lazy_mmu_mode(); +- } +-} ++void arch_flush_lazy_mmu_mode(void); + + static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, + unsigned long phys, pgprot_t flags) +--- kernel-power-2.6.28.orig/arch/x86/include/asm/pgalloc.h ++++ kernel-power-2.6.28/arch/x86/include/asm/pgalloc.h +@@ -42,6 +42,7 @@ + + static inline void pte_free(struct mm_struct *mm, struct page *pte) + { ++ pgtable_page_dtor(pte); + __free_page(pte); + } + +--- kernel-power-2.6.28.orig/arch/x86/include/asm/processor.h ++++ kernel-power-2.6.28/arch/x86/include/asm/processor.h +@@ -349,7 +349,7 @@ + u8 no_update; + u8 rm; + u8 alimit; +- struct info *info; ++ struct math_emu_info *info; + u32 entry_eip; + }; + +--- kernel-power-2.6.28.orig/arch/x86/include/asm/seccomp_32.h ++++ kernel-power-2.6.28/arch/x86/include/asm/seccomp_32.h +@@ -1,12 +1,6 @@ + #ifndef _ASM_X86_SECCOMP_32_H + #define _ASM_X86_SECCOMP_32_H + +-#include +- +-#ifdef TIF_32BIT +-#error "unexpected TIF_32BIT on i386" +-#endif +- + #include + + #define __NR_seccomp_read __NR_read +--- kernel-power-2.6.28.orig/arch/x86/include/asm/seccomp_64.h ++++ kernel-power-2.6.28/arch/x86/include/asm/seccomp_64.h +@@ -1,14 +1,6 @@ + #ifndef _ASM_X86_SECCOMP_64_H + #define _ASM_X86_SECCOMP_64_H + +-#include +- +-#ifdef TIF_32BIT +-#error "unexpected TIF_32BIT on x86_64" +-#else +-#define TIF_32BIT TIF_IA32 +-#endif +- + #include + #include + +--- kernel-power-2.6.28.orig/arch/x86/include/asm/traps.h ++++ kernel-power-2.6.28/arch/x86/include/asm/traps.h +@@ -41,7 +41,7 @@ + dotraplinkage void do_overflow(struct pt_regs *, long); + dotraplinkage void do_bounds(struct pt_regs *, long); + dotraplinkage void do_invalid_op(struct pt_regs *, long); +-dotraplinkage void do_device_not_available(struct pt_regs *, long); ++dotraplinkage void do_device_not_available(struct pt_regs); + dotraplinkage void do_coprocessor_segment_overrun(struct pt_regs *, long); + dotraplinkage void do_invalid_TSS(struct pt_regs *, long); + dotraplinkage void do_segment_not_present(struct pt_regs *, long); +@@ -74,8 +74,8 @@ + + #ifdef CONFIG_X86_32 + void math_error(void __user *); ++void math_emulate(struct math_emu_info *); + unsigned long patch_espfix_desc(unsigned long, unsigned long); +-asmlinkage void math_emulate(long); + #endif + + #endif /* _ASM_X86_TRAPS_H */ +--- kernel-power-2.6.28.orig/arch/x86/kernel/acpi/cstate.c ++++ kernel-power-2.6.28/arch/x86/kernel/acpi/cstate.c +@@ -56,6 +56,7 @@ + static short mwait_supported[ACPI_PROCESSOR_MAX_POWER]; + + #define MWAIT_SUBSTATE_MASK (0xf) ++#define MWAIT_CSTATE_MASK (0xf) + #define MWAIT_SUBSTATE_SIZE (4) + + #define CPUID_MWAIT_LEAF (5) +@@ -98,7 +99,8 @@ + cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx); + + /* Check whether this particular cx_type (in CST) is supported or not */ +- cstate_type = (cx->address >> MWAIT_SUBSTATE_SIZE) + 1; ++ cstate_type = ((cx->address >> MWAIT_SUBSTATE_SIZE) & ++ MWAIT_CSTATE_MASK) + 1; + edx_part = edx >> (cstate_type * MWAIT_SUBSTATE_SIZE); + num_cstate_subtype = edx_part & MWAIT_SUBSTATE_MASK; + +--- kernel-power-2.6.28.orig/arch/x86/kernel/apic.c ++++ kernel-power-2.6.28/arch/x86/kernel/apic.c +@@ -1451,7 +1451,7 @@ + switch (boot_cpu_data.x86_vendor) { + case X86_VENDOR_AMD: + if ((boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model > 1) || +- (boot_cpu_data.x86 == 15)) ++ (boot_cpu_data.x86 >= 15)) + break; + goto no_apic; + case X86_VENDOR_INTEL: +--- kernel-power-2.6.28.orig/arch/x86/kernel/cpu/addon_cpuid_features.c ++++ kernel-power-2.6.28/arch/x86/kernel/cpu/addon_cpuid_features.c +@@ -120,9 +120,17 @@ + c->cpu_core_id = phys_pkg_id(c->initial_apicid, ht_mask_width) + & core_select_mask; + c->phys_proc_id = phys_pkg_id(c->initial_apicid, core_plus_mask_width); ++ /* ++ * Reinit the apicid, now that we have extended initial_apicid. ++ */ ++ c->apicid = phys_pkg_id(c->initial_apicid, 0); + #else + c->cpu_core_id = phys_pkg_id(ht_mask_width) & core_select_mask; + c->phys_proc_id = phys_pkg_id(core_plus_mask_width); ++ /* ++ * Reinit the apicid, now that we have extended initial_apicid. ++ */ ++ c->apicid = phys_pkg_id(0); + #endif + c->x86_max_cores = (core_level_siblings / smp_num_siblings); + +--- kernel-power-2.6.28.orig/arch/x86/kernel/cpu/intel.c ++++ kernel-power-2.6.28/arch/x86/kernel/cpu/intel.c +@@ -30,6 +30,19 @@ + + static void __cpuinit early_init_intel(struct cpuinfo_x86 *c) + { ++ /* Unmask CPUID levels if masked: */ ++ if (c->x86 == 6 && c->x86_model >= 15) { ++ u64 misc_enable; ++ ++ rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable); ++ ++ if (misc_enable & MSR_IA32_MISC_ENABLE_LIMIT_CPUID) { ++ misc_enable &= ~MSR_IA32_MISC_ENABLE_LIMIT_CPUID; ++ wrmsrl(MSR_IA32_MISC_ENABLE, misc_enable); ++ c->cpuid_level = cpuid_eax(0); ++ } ++ } ++ + if ((c->x86 == 0xf && c->x86_model >= 0x03) || + (c->x86 == 0x6 && c->x86_model >= 0x0e)) + set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); +@@ -242,6 +255,13 @@ + + intel_workarounds(c); + ++ /* ++ * Detect the extended topology information if available. This ++ * will reinitialise the initial_apicid which will be used ++ * in init_intel_cacheinfo() ++ */ ++ detect_extended_topology(c); ++ + l2 = init_intel_cacheinfo(c); + if (c->cpuid_level > 9) { + unsigned eax = cpuid_eax(10); +@@ -313,7 +333,6 @@ + + #endif + +- detect_extended_topology(c); + if (!cpu_has(c, X86_FEATURE_XTOPOLOGY)) { + /* + * let's use the legacy cpuid vector 0x1 and 0x4 for topology +--- kernel-power-2.6.28.orig/arch/x86/kernel/cpu/mtrr/generic.c ++++ kernel-power-2.6.28/arch/x86/kernel/cpu/mtrr/generic.c +@@ -45,6 +45,32 @@ + static int mtrr_show; + module_param_named(show, mtrr_show, bool, 0); + ++/** ++ * BIOS is expected to clear MtrrFixDramModEn bit, see for example ++ * "BIOS and Kernel Developer's Guide for the AMD Athlon 64 and AMD ++ * Opteron Processors" (26094 Rev. 3.30 February 2006), section ++ * "13.2.1.2 SYSCFG Register": "The MtrrFixDramModEn bit should be set ++ * to 1 during BIOS initalization of the fixed MTRRs, then cleared to ++ * 0 for operation." ++ */ ++static inline void k8_check_syscfg_dram_mod_en(void) ++{ ++ u32 lo, hi; ++ ++ if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && ++ (boot_cpu_data.x86 >= 0x0f))) ++ return; ++ ++ rdmsr(MSR_K8_SYSCFG, lo, hi); ++ if (lo & K8_MTRRFIXRANGE_DRAM_MODIFY) { ++ printk(KERN_ERR FW_WARN "MTRR: CPU %u: SYSCFG[MtrrFixDramModEn]" ++ " not cleared by BIOS, clearing this bit\n", ++ smp_processor_id()); ++ lo &= ~K8_MTRRFIXRANGE_DRAM_MODIFY; ++ mtrr_wrmsr(MSR_K8_SYSCFG, lo, hi); ++ } ++} ++ + /* + * Returns the effective MTRR type for the region + * Error returns: +@@ -178,6 +204,8 @@ + unsigned int *p = (unsigned int *) frs; + int i; + ++ k8_check_syscfg_dram_mod_en(); ++ + rdmsr(MTRRfix64K_00000_MSR, p[0], p[1]); + + for (i = 0; i < 2; i++) +@@ -312,27 +340,10 @@ + } + + /** +- * Enable and allow read/write of extended fixed-range MTRR bits on K8 CPUs +- * see AMD publication no. 24593, chapter 3.2.1 for more information +- */ +-static inline void k8_enable_fixed_iorrs(void) +-{ +- unsigned lo, hi; +- +- rdmsr(MSR_K8_SYSCFG, lo, hi); +- mtrr_wrmsr(MSR_K8_SYSCFG, lo +- | K8_MTRRFIXRANGE_DRAM_ENABLE +- | K8_MTRRFIXRANGE_DRAM_MODIFY, hi); +-} +- +-/** + * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have + * @msr: MSR address of the MTTR which should be checked and updated + * @changed: pointer which indicates whether the MTRR needed to be changed + * @msrwords: pointer to the MSR values which the MSR should have +- * +- * If K8 extentions are wanted, update the K8 SYSCFG MSR also. +- * See AMD publication no. 24593, chapter 7.8.1, page 233 for more information. + */ + static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords) + { +@@ -341,10 +352,6 @@ + rdmsr(msr, lo, hi); + + if (lo != msrwords[0] || hi != msrwords[1]) { +- if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD && +- (boot_cpu_data.x86 >= 0x0f && boot_cpu_data.x86 <= 0x11) && +- ((msrwords[0] | msrwords[1]) & K8_MTRR_RDMEM_WRMEM_MASK)) +- k8_enable_fixed_iorrs(); + mtrr_wrmsr(msr, msrwords[0], msrwords[1]); + *changed = true; + } +@@ -423,6 +430,8 @@ + bool changed = false; + int block=-1, range; + ++ k8_check_syscfg_dram_mod_en(); ++ + while (fixed_range_blocks[++block].ranges) + for (range=0; range < fixed_range_blocks[block].ranges; range++) + set_fixed_range(fixed_range_blocks[block].base_msr + range, +--- kernel-power-2.6.28.orig/arch/x86/kernel/cpu/mtrr/main.c ++++ kernel-power-2.6.28/arch/x86/kernel/cpu/mtrr/main.c +@@ -1600,8 +1600,7 @@ + + /* kvm/qemu doesn't have mtrr set right, don't trim them all */ + if (!highest_pfn) { +- WARN(!kvm_para_available(), KERN_WARNING +- "WARNING: strange, CPU MTRRs all blank?\n"); ++ printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n"); + return 0; + } + +--- kernel-power-2.6.28.orig/arch/x86/kernel/head64.c ++++ kernel-power-2.6.28/arch/x86/kernel/head64.c +@@ -26,7 +26,7 @@ + #include + + /* boot cpu pda */ +-static struct x8664_pda _boot_cpu_pda __read_mostly; ++static struct x8664_pda _boot_cpu_pda; + + #ifdef CONFIG_SMP + /* +--- kernel-power-2.6.28.orig/arch/x86/kernel/head_64.S ++++ kernel-power-2.6.28/arch/x86/kernel/head_64.S +@@ -305,7 +305,7 @@ + call dump_stack + #ifdef CONFIG_KALLSYMS + leaq early_idt_ripmsg(%rip),%rdi +- movq 8(%rsp),%rsi # get rip again ++ movq 0(%rsp),%rsi # get rip again + call __print_symbol + #endif + #endif /* EARLY_PRINTK */ +--- kernel-power-2.6.28.orig/arch/x86/kernel/hpet.c ++++ kernel-power-2.6.28/arch/x86/kernel/hpet.c +@@ -267,6 +267,8 @@ + now = hpet_readl(HPET_COUNTER); + cmp = now + (unsigned long) delta; + cfg = hpet_readl(HPET_Tn_CFG(timer)); ++ /* Make sure we use edge triggered interrupts */ ++ cfg &= ~HPET_TN_LEVEL; + cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC | + HPET_TN_SETVAL | HPET_TN_32BIT; + hpet_writel(cfg, HPET_Tn_CFG(timer)); +--- kernel-power-2.6.28.orig/arch/x86/kernel/microcode_amd.c ++++ kernel-power-2.6.28/arch/x86/kernel/microcode_amd.c +@@ -62,7 +62,7 @@ + unsigned int mc_patch_data_checksum; + unsigned int nb_dev_id; + unsigned int sb_dev_id; +- unsigned char processor_rev_id[2]; ++ u16 processor_rev_id; + unsigned char nb_rev_id; + unsigned char sb_rev_id; + unsigned char bios_api_rev; +@@ -125,7 +125,7 @@ + + while (equiv_cpu_table[i].installed_cpu != 0) { + if (current_cpu_id == equiv_cpu_table[i].installed_cpu) { +- equiv_cpu_id = equiv_cpu_table[i].equiv_cpu; ++ equiv_cpu_id = equiv_cpu_table[i].equiv_cpu & 0xffff; + break; + } + i++; +@@ -137,21 +137,10 @@ + return 0; + } + +- if ((mc_header->processor_rev_id[0]) != (equiv_cpu_id & 0xff)) { +- printk(KERN_ERR +- "microcode: CPU%d patch does not match " +- "(patch is %x, cpu extended is %x) \n", +- cpu, mc_header->processor_rev_id[0], +- (equiv_cpu_id & 0xff)); +- return 0; +- } +- +- if ((mc_header->processor_rev_id[1]) != ((equiv_cpu_id >> 16) & 0xff)) { +- printk(KERN_ERR "microcode: CPU%d patch does not match " +- "(patch is %x, cpu base id is %x) \n", +- cpu, mc_header->processor_rev_id[1], +- ((equiv_cpu_id >> 16) & 0xff)); +- ++ if (mc_header->processor_rev_id != equiv_cpu_id) { ++ printk(KERN_ERR "microcode: CPU%d patch does not match " ++ "(processor_rev_id: %x, eqiv_cpu_id: %x)\n", ++ cpu, mc_header->processor_rev_id, equiv_cpu_id); + return 0; + } + +--- kernel-power-2.6.28.orig/arch/x86/kernel/paravirt.c ++++ kernel-power-2.6.28/arch/x86/kernel/paravirt.c +@@ -268,6 +268,30 @@ + return __get_cpu_var(paravirt_lazy_mode); + } + ++void arch_flush_lazy_mmu_mode(void) ++{ ++ preempt_disable(); ++ ++ if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_MMU) { ++ arch_leave_lazy_mmu_mode(); ++ arch_enter_lazy_mmu_mode(); ++ } ++ ++ preempt_enable(); ++} ++ ++void arch_flush_lazy_cpu_mode(void) ++{ ++ preempt_disable(); ++ ++ if (paravirt_get_lazy_mode() == PARAVIRT_LAZY_CPU) { ++ arch_leave_lazy_cpu_mode(); ++ arch_enter_lazy_cpu_mode(); ++ } ++ ++ preempt_enable(); ++} ++ + struct pv_info pv_info = { + .name = "bare hardware", + .paravirt_enabled = 0, +--- kernel-power-2.6.28.orig/arch/x86/kernel/ptrace.c ++++ kernel-power-2.6.28/arch/x86/kernel/ptrace.c +@@ -1512,7 +1512,7 @@ + #ifdef CONFIG_X86_32 + # define IS_IA32 1 + #elif defined CONFIG_IA32_EMULATION +-# define IS_IA32 test_thread_flag(TIF_IA32) ++# define IS_IA32 is_compat_task() + #else + # define IS_IA32 0 + #endif +--- kernel-power-2.6.28.orig/arch/x86/kernel/reboot.c ++++ kernel-power-2.6.28/arch/x86/kernel/reboot.c +@@ -202,6 +202,14 @@ + DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq"), + }, + }, ++ { /* Handle problems with rebooting on Dell XPS710 */ ++ .callback = set_bios_reboot, ++ .ident = "Dell XPS710", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Dell XPS710"), ++ }, ++ }, + { } + }; + +--- kernel-power-2.6.28.orig/arch/x86/kernel/syscall_table_32.S ++++ kernel-power-2.6.28/arch/x86/kernel/syscall_table_32.S +@@ -88,7 +88,7 @@ + .long sys_uselib + .long sys_swapon + .long sys_reboot +- .long old_readdir ++ .long sys_old_readdir + .long old_mmap /* 90 */ + .long sys_munmap + .long sys_truncate +--- kernel-power-2.6.28.orig/arch/x86/kernel/tlb_uv.c ++++ kernel-power-2.6.28/arch/x86/kernel/tlb_uv.c +@@ -586,7 +586,6 @@ + static struct bau_control * __init uv_table_bases_init(int blade, int node) + { + int i; +- int *ip; + struct bau_msg_status *msp; + struct bau_control *bau_tabp; + +@@ -603,13 +602,6 @@ + bau_cpubits_clear(&msp->seen_by, (int) + uv_blade_nr_possible_cpus(blade)); + +- bau_tabp->watching = +- kmalloc_node(sizeof(int) * DEST_NUM_RESOURCES, GFP_KERNEL, node); +- BUG_ON(!bau_tabp->watching); +- +- for (i = 0, ip = bau_tabp->watching; i < DEST_Q_SIZE; i++, ip++) +- *ip = 0; +- + uv_bau_table_bases[blade] = bau_tabp; + + return bau_tabp; +@@ -632,7 +624,6 @@ + bcp->bau_msg_head = bau_tablesp->va_queue_first; + bcp->va_queue_first = bau_tablesp->va_queue_first; + bcp->va_queue_last = bau_tablesp->va_queue_last; +- bcp->watching = bau_tablesp->watching; + bcp->msg_statuses = bau_tablesp->msg_statuses; + bcp->descriptor_base = adp; + } +--- kernel-power-2.6.28.orig/arch/x86/kernel/traps.c ++++ kernel-power-2.6.28/arch/x86/kernel/traps.c +@@ -104,6 +104,12 @@ + local_irq_enable(); + } + ++static inline void conditional_cli(struct pt_regs *regs) ++{ ++ if (regs->flags & X86_EFLAGS_IF) ++ local_irq_disable(); ++} ++ + static inline void preempt_conditional_cli(struct pt_regs *regs) + { + if (regs->flags & X86_EFLAGS_IF) +@@ -629,8 +635,10 @@ + + #ifdef CONFIG_X86_32 + debug_vm86: ++ /* reenable preemption: handle_vm86_trap() might sleep */ ++ dec_preempt_count(); + handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 1); +- preempt_conditional_cli(regs); ++ conditional_cli(regs); + return; + #endif + +@@ -904,7 +912,7 @@ + EXPORT_SYMBOL_GPL(math_state_restore); + + #ifndef CONFIG_MATH_EMULATION +-asmlinkage void math_emulate(long arg) ++void math_emulate(struct math_emu_info *info) + { + printk(KERN_EMERG + "math-emulation not enabled and no coprocessor found.\n"); +@@ -914,16 +922,19 @@ + } + #endif /* CONFIG_MATH_EMULATION */ + +-dotraplinkage void __kprobes +-do_device_not_available(struct pt_regs *regs, long error) ++dotraplinkage void __kprobes do_device_not_available(struct pt_regs regs) + { + #ifdef CONFIG_X86_32 + if (read_cr0() & X86_CR0_EM) { +- conditional_sti(regs); +- math_emulate(0); ++ struct math_emu_info info = { }; ++ ++ conditional_sti(®s); ++ ++ info.regs = ®s; ++ math_emulate(&info); + } else { + math_state_restore(); /* interrupts still off */ +- conditional_sti(regs); ++ conditional_sti(®s); + } + #else + math_state_restore(); +--- kernel-power-2.6.28.orig/arch/x86/kernel/vmi_32.c ++++ kernel-power-2.6.28/arch/x86/kernel/vmi_32.c +@@ -430,6 +430,16 @@ + } + + /* ++ * We use the pgd_free hook for releasing the pgd page: ++ */ ++static void vmi_pgd_free(struct mm_struct *mm, pgd_t *pgd) ++{ ++ unsigned long pfn = __pa(pgd) >> PAGE_SHIFT; ++ ++ vmi_ops.release_page(pfn, VMI_PAGE_L2); ++} ++ ++/* + * Helper macros for MMU update flags. We can defer updates until a flush + * or page invalidation only if the update is to the current address space + * (otherwise, there is no flush). We must check against init_mm, since +@@ -881,6 +891,7 @@ + if (vmi_ops.release_page) { + pv_mmu_ops.release_pte = vmi_release_pte; + pv_mmu_ops.release_pmd = vmi_release_pmd; ++ pv_mmu_ops.pgd_free = vmi_pgd_free; + } + + /* Set linear is needed in all cases */ +--- kernel-power-2.6.28.orig/arch/x86/kernel/vmiclock_32.c ++++ kernel-power-2.6.28/arch/x86/kernel/vmiclock_32.c +@@ -283,10 +283,13 @@ + #endif + + /** vmi clocksource */ ++static struct clocksource clocksource_vmi; + + static cycle_t read_real_cycles(void) + { +- return vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL); ++ cycle_t ret = (cycle_t)vmi_timer_ops.get_cycle_counter(VMI_CYCLES_REAL); ++ return ret >= clocksource_vmi.cycle_last ? ++ ret : clocksource_vmi.cycle_last; + } + + static struct clocksource clocksource_vmi = { +--- kernel-power-2.6.28.orig/arch/x86/kvm/i8254.c ++++ kernel-power-2.6.28/arch/x86/kvm/i8254.c +@@ -207,7 +207,7 @@ + hrtimer_add_expires_ns(&pt->timer, pt->period); + pt->scheduled = hrtimer_get_expires_ns(&pt->timer); + if (pt->period) +- ps->channels[0].count_load_time = hrtimer_get_expires(&pt->timer); ++ ps->channels[0].count_load_time = ktime_get(); + + return (pt->period == 0 ? 0 : 1); + } +--- kernel-power-2.6.28.orig/arch/x86/kvm/irq.c ++++ kernel-power-2.6.28/arch/x86/kvm/irq.c +@@ -87,13 +87,6 @@ + } + EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs); + +-void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec) +-{ +- kvm_apic_timer_intr_post(vcpu, vec); +- /* TODO: PIT, RTC etc. */ +-} +-EXPORT_SYMBOL_GPL(kvm_timer_intr_post); +- + void __kvm_migrate_timers(struct kvm_vcpu *vcpu) + { + __kvm_migrate_apic_timer(vcpu); +--- kernel-power-2.6.28.orig/arch/x86/kvm/irq.h ++++ kernel-power-2.6.28/arch/x86/kvm/irq.h +@@ -84,7 +84,6 @@ + + void kvm_pic_reset(struct kvm_kpic_state *s); + +-void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec); + void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu); + void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu); + void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu); +--- kernel-power-2.6.28.orig/arch/x86/kvm/lapic.c ++++ kernel-power-2.6.28/arch/x86/kvm/lapic.c +@@ -35,6 +35,12 @@ + #include "kvm_cache_regs.h" + #include "irq.h" + ++#ifndef CONFIG_X86_64 ++#define mod_64(x, y) ((x) - (y) * div64_u64(x, y)) ++#else ++#define mod_64(x, y) ((x) % (y)) ++#endif ++ + #define PRId64 "d" + #define PRIx64 "llx" + #define PRIu64 "u" +@@ -497,52 +503,22 @@ + + static u32 apic_get_tmcct(struct kvm_lapic *apic) + { +- u64 counter_passed; +- ktime_t passed, now; ++ ktime_t remaining; ++ s64 ns; + u32 tmcct; + + ASSERT(apic != NULL); + +- now = apic->timer.dev.base->get_time(); +- tmcct = apic_get_reg(apic, APIC_TMICT); +- + /* if initial count is 0, current count should also be 0 */ +- if (tmcct == 0) ++ if (apic_get_reg(apic, APIC_TMICT) == 0) + return 0; + +- if (unlikely(ktime_to_ns(now) <= +- ktime_to_ns(apic->timer.last_update))) { +- /* Wrap around */ +- passed = ktime_add(( { +- (ktime_t) { +- .tv64 = KTIME_MAX - +- (apic->timer.last_update).tv64}; } +- ), now); +- apic_debug("time elapsed\n"); +- } else +- passed = ktime_sub(now, apic->timer.last_update); +- +- counter_passed = div64_u64(ktime_to_ns(passed), +- (APIC_BUS_CYCLE_NS * apic->timer.divide_count)); +- +- if (counter_passed > tmcct) { +- if (unlikely(!apic_lvtt_period(apic))) { +- /* one-shot timers stick at 0 until reset */ +- tmcct = 0; +- } else { +- /* +- * periodic timers reset to APIC_TMICT when they +- * hit 0. The while loop simulates this happening N +- * times. (counter_passed %= tmcct) would also work, +- * but might be slower or not work on 32-bit?? +- */ +- while (counter_passed > tmcct) +- counter_passed -= tmcct; +- tmcct -= counter_passed; +- } +- } else { +- tmcct -= counter_passed; +- } ++ remaining = hrtimer_expires_remaining(&apic->timer.dev); ++ if (ktime_to_ns(remaining) < 0) ++ remaining = ktime_set(0, 0); ++ ++ ns = mod_64(ktime_to_ns(remaining), apic->timer.period); ++ tmcct = div64_u64(ns, (APIC_BUS_CYCLE_NS * apic->timer.divide_count)); + + return tmcct; + } +@@ -639,8 +615,6 @@ + { + ktime_t now = apic->timer.dev.base->get_time(); + +- apic->timer.last_update = now; +- + apic->timer.period = apic_get_reg(apic, APIC_TMICT) * + APIC_BUS_CYCLE_NS * apic->timer.divide_count; + atomic_set(&apic->timer.pending, 0); +@@ -1068,16 +1042,6 @@ + } + } + +-void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec) +-{ +- struct kvm_lapic *apic = vcpu->arch.apic; +- +- if (apic && apic_lvt_vector(apic, APIC_LVTT) == vec) +- apic->timer.last_update = ktime_add_ns( +- apic->timer.last_update, +- apic->timer.period); +-} +- + int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu) + { + int vector = kvm_apic_has_interrupt(vcpu); +--- kernel-power-2.6.28.orig/arch/x86/kvm/lapic.h ++++ kernel-power-2.6.28/arch/x86/kvm/lapic.h +@@ -12,7 +12,6 @@ + atomic_t pending; + s64 period; /* unit: ns */ + u32 divide_count; +- ktime_t last_update; + struct hrtimer dev; + } timer; + struct kvm_vcpu *vcpu; +@@ -42,7 +41,6 @@ + void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu); + int kvm_lapic_enabled(struct kvm_vcpu *vcpu); + int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu); +-void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec); + + void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr); + void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu); +--- kernel-power-2.6.28.orig/arch/x86/kvm/mmu.c ++++ kernel-power-2.6.28/arch/x86/kvm/mmu.c +@@ -384,7 +384,9 @@ + { + int *write_count; + +- write_count = slot_largepage_idx(gfn, gfn_to_memslot(kvm, gfn)); ++ gfn = unalias_gfn(kvm, gfn); ++ write_count = slot_largepage_idx(gfn, ++ gfn_to_memslot_unaliased(kvm, gfn)); + *write_count += 1; + } + +@@ -392,16 +394,20 @@ + { + int *write_count; + +- write_count = slot_largepage_idx(gfn, gfn_to_memslot(kvm, gfn)); ++ gfn = unalias_gfn(kvm, gfn); ++ write_count = slot_largepage_idx(gfn, ++ gfn_to_memslot_unaliased(kvm, gfn)); + *write_count -= 1; + WARN_ON(*write_count < 0); + } + + static int has_wrprotected_page(struct kvm *kvm, gfn_t gfn) + { +- struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); ++ struct kvm_memory_slot *slot; + int *largepage_idx; + ++ gfn = unalias_gfn(kvm, gfn); ++ slot = gfn_to_memslot_unaliased(kvm, gfn); + if (slot) { + largepage_idx = slot_largepage_idx(gfn, slot); + return *largepage_idx; +@@ -787,7 +793,7 @@ + set_page_private(virt_to_page(sp->spt), (unsigned long)sp); + list_add(&sp->link, &vcpu->kvm->arch.active_mmu_pages); + ASSERT(is_empty_shadow_page(sp->spt)); +- sp->slot_bitmap = 0; ++ bitmap_zero(sp->slot_bitmap, KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS); + sp->multimapped = 0; + sp->parent_pte = parent_pte; + --vcpu->kvm->arch.n_free_mmu_pages; +@@ -975,7 +981,7 @@ + for_each_unsync_children(sp->unsync_child_bitmap, i) { + u64 ent = sp->spt[i]; + +- if (is_shadow_present_pte(ent)) { ++ if (is_shadow_present_pte(ent) && !is_large_pte(ent)) { + struct kvm_mmu_page *child; + child = page_header(ent & PT64_BASE_ADDR_MASK); + +@@ -1153,6 +1159,8 @@ + if (level == PT32E_ROOT_LEVEL) { + shadow_addr = vcpu->arch.mmu.pae_root[(addr >> 30) & 3]; + shadow_addr &= PT64_BASE_ADDR_MASK; ++ if (!shadow_addr) ++ return 1; + --level; + } + +@@ -1362,7 +1370,7 @@ + int slot = memslot_id(kvm, gfn_to_memslot(kvm, gfn)); + struct kvm_mmu_page *sp = page_header(__pa(pte)); + +- __set_bit(slot, &sp->slot_bitmap); ++ __set_bit(slot, sp->slot_bitmap); + } + + static void mmu_convert_notrap(struct kvm_mmu_page *sp) +@@ -2451,7 +2459,7 @@ + int i; + u64 *pt; + +- if (!test_bit(slot, &sp->slot_bitmap)) ++ if (!test_bit(slot, sp->slot_bitmap)) + continue; + + pt = sp->spt; +@@ -2860,8 +2868,8 @@ + if (sp->role.metaphysical) + continue; + +- slot = gfn_to_memslot(vcpu->kvm, sp->gfn); + gfn = unalias_gfn(vcpu->kvm, sp->gfn); ++ slot = gfn_to_memslot_unaliased(vcpu->kvm, sp->gfn); + rmapp = &slot->rmap[gfn - slot->base_gfn]; + if (*rmapp) + printk(KERN_ERR "%s: (%s) shadow page has writable" +--- kernel-power-2.6.28.orig/arch/x86/kvm/paging_tmpl.h ++++ kernel-power-2.6.28/arch/x86/kvm/paging_tmpl.h +@@ -467,9 +467,13 @@ + u64 *sptep, int level) + { + +- if (level == PT_PAGE_TABLE_LEVEL) { +- if (is_shadow_present_pte(*sptep)) ++ if (level == PT_PAGE_TABLE_LEVEL || ++ ((level == PT_DIRECTORY_LEVEL) && is_large_pte(*sptep))) { ++ if (is_shadow_present_pte(*sptep)) { + rmap_remove(vcpu->kvm, sptep); ++ if (is_large_pte(*sptep)) ++ --vcpu->kvm->stat.lpages; ++ } + set_shadow_pte(sptep, shadow_trap_nonpresent_pte); + return 1; + } +--- kernel-power-2.6.28.orig/arch/x86/kvm/svm.c ++++ kernel-power-2.6.28/arch/x86/kvm/svm.c +@@ -772,6 +772,22 @@ + var->l = (s->attrib >> SVM_SELECTOR_L_SHIFT) & 1; + var->db = (s->attrib >> SVM_SELECTOR_DB_SHIFT) & 1; + var->g = (s->attrib >> SVM_SELECTOR_G_SHIFT) & 1; ++ ++ /* ++ * SVM always stores 0 for the 'G' bit in the CS selector in ++ * the VMCB on a VMEXIT. This hurts cross-vendor migration: ++ * Intel's VMENTRY has a check on the 'G' bit. ++ */ ++ if (seg == VCPU_SREG_CS) ++ var->g = s->limit > 0xfffff; ++ ++ /* ++ * Work around a bug where the busy flag in the tr selector ++ * isn't exposed ++ */ ++ if (seg == VCPU_SREG_TR) ++ var->type |= 0x2; ++ + var->unusable = !var->present; + } + +@@ -1596,7 +1612,6 @@ + /* Okay, we can deliver the interrupt: grab it and update PIC state. */ + intr_vector = kvm_cpu_get_interrupt(vcpu); + svm_inject_irq(svm, intr_vector); +- kvm_timer_intr_post(vcpu, intr_vector); + out: + update_cr8_intercept(vcpu); + } +--- kernel-power-2.6.28.orig/arch/x86/kvm/vmx.c ++++ kernel-power-2.6.28/arch/x86/kvm/vmx.c +@@ -897,6 +897,7 @@ + data = vmcs_readl(GUEST_SYSENTER_ESP); + break; + default: ++ vmx_load_host_state(to_vmx(vcpu)); + msr = find_msr_entry(to_vmx(vcpu), msr_index); + if (msr) { + data = msr->data; +@@ -2407,7 +2408,7 @@ + { + int ret; + struct kvm_userspace_memory_region tss_mem = { +- .slot = 8, ++ .slot = TSS_PRIVATE_MEMSLOT, + .guest_phys_addr = addr, + .memory_size = PAGE_SIZE * 3, + .flags = 0, +@@ -3171,10 +3172,8 @@ + else + enable_irq_window(vcpu); + } +- if (vcpu->arch.interrupt.pending) { ++ if (vcpu->arch.interrupt.pending) + vmx_inject_irq(vcpu, vcpu->arch.interrupt.nr); +- kvm_timer_intr_post(vcpu, vcpu->arch.interrupt.nr); +- } + } + + /* +--- kernel-power-2.6.28.orig/arch/x86/kvm/vmx.h ++++ kernel-power-2.6.28/arch/x86/kvm/vmx.h +@@ -331,8 +331,9 @@ + + #define AR_RESERVD_MASK 0xfffe0f00 + +-#define APIC_ACCESS_PAGE_PRIVATE_MEMSLOT 9 +-#define IDENTITY_PAGETABLE_PRIVATE_MEMSLOT 10 ++#define TSS_PRIVATE_MEMSLOT (KVM_MEMORY_SLOTS + 0) ++#define APIC_ACCESS_PAGE_PRIVATE_MEMSLOT (KVM_MEMORY_SLOTS + 1) ++#define IDENTITY_PAGETABLE_PRIVATE_MEMSLOT (KVM_MEMORY_SLOTS + 2) + + #define VMX_NR_VPIDS (1 << 16) + #define VMX_VPID_EXTENT_SINGLE_CONTEXT 1 +--- kernel-power-2.6.28.orig/arch/x86/kvm/x86.c ++++ kernel-power-2.6.28/arch/x86/kvm/x86.c +@@ -906,7 +906,6 @@ + case KVM_CAP_USER_MEMORY: + case KVM_CAP_SET_TSS_ADDR: + case KVM_CAP_EXT_CPUID: +- case KVM_CAP_CLOCKSOURCE: + case KVM_CAP_PIT: + case KVM_CAP_NOP_IO_DELAY: + case KVM_CAP_MP_STATE: +@@ -931,6 +930,9 @@ + case KVM_CAP_IOMMU: + r = intel_iommu_found(); + break; ++ case KVM_CAP_CLOCKSOURCE: ++ r = boot_cpu_has(X86_FEATURE_CONSTANT_TSC); ++ break; + default: + r = 0; + break; +@@ -1188,6 +1190,7 @@ + int t, times = entry->eax & 0xff; + + entry->flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; ++ entry->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; + for (t = 1; t < times && *nent < maxnent; ++t) { + do_cpuid_1_ent(&entry[t], function, 0); + entry[t].flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; +@@ -1218,7 +1221,7 @@ + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + /* read more entries until level_type is zero */ + for (i = 1; *nent < maxnent; ++i) { +- level_type = entry[i - 1].ecx & 0xff; ++ level_type = entry[i - 1].ecx & 0xff00; + if (!level_type) + break; + do_cpuid_1_ent(&entry[i], function, i); +@@ -2729,7 +2732,7 @@ + + e->flags &= ~KVM_CPUID_FLAG_STATE_READ_NEXT; + /* when no next entry is found, the current entry[i] is reselected */ +- for (j = i + 1; j == i; j = (j + 1) % nent) { ++ for (j = i + 1; ; j = (j + 1) % nent) { + struct kvm_cpuid_entry2 *ej = &vcpu->arch.cpuid_entries[j]; + if (ej->function == e->function) { + ej->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; +@@ -2973,7 +2976,7 @@ + pr_debug("vcpu %d received sipi with vector # %x\n", + vcpu->vcpu_id, vcpu->arch.sipi_vector); + kvm_lapic_reset(vcpu); +- r = kvm_x86_ops->vcpu_reset(vcpu); ++ r = kvm_arch_vcpu_reset(vcpu); + if (r) + return r; + vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; +@@ -3925,6 +3928,9 @@ + + int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu) + { ++ vcpu->arch.nmi_pending = false; ++ vcpu->arch.nmi_injected = false; ++ + return kvm_x86_ops->vcpu_reset(vcpu); + } + +--- kernel-power-2.6.28.orig/arch/x86/kvm/x86_emulate.c ++++ kernel-power-2.6.28/arch/x86/kvm/x86_emulate.c +@@ -299,7 +299,7 @@ + + static u16 group2_table[] = { + [Group7*8] = +- SrcNone | ModRM, 0, 0, 0, ++ SrcNone | ModRM, 0, 0, SrcNone | ModRM, + SrcNone | ModRM | DstMem | Mov, 0, + SrcMem16 | ModRM | Mov, 0, + }; +--- kernel-power-2.6.28.orig/arch/x86/lib/usercopy_32.c ++++ kernel-power-2.6.28/arch/x86/lib/usercopy_32.c +@@ -56,7 +56,7 @@ + " jmp 2b\n" \ + ".previous\n" \ + _ASM_EXTABLE(0b,3b) \ +- : "=d"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ ++ : "=&d"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \ + "=&D" (__d2) \ + : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ + : "memory"); \ +@@ -218,7 +218,7 @@ + " .align 4\n" + " .long 0b,2b\n" + ".previous" +- :"=r" (n), "=D" (s), "=a" (res), "=c" (tmp) ++ :"=&r" (n), "=&D" (s), "=&a" (res), "=&c" (tmp) + :"0" (n), "1" (s), "2" (0), "3" (mask) + :"cc"); + return res & mask; +--- kernel-power-2.6.28.orig/arch/x86/lib/usercopy_64.c ++++ kernel-power-2.6.28/arch/x86/lib/usercopy_64.c +@@ -32,7 +32,7 @@ + " jmp 2b\n" \ + ".previous\n" \ + _ASM_EXTABLE(0b,3b) \ +- : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \ ++ : "=&r"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \ + "=&D" (__d2) \ + : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \ + : "memory"); \ +@@ -86,7 +86,7 @@ + ".previous\n" + _ASM_EXTABLE(0b,3b) + _ASM_EXTABLE(1b,2b) +- : [size8] "=c"(size), [dst] "=&D" (__d0) ++ : [size8] "=&c"(size), [dst] "=&D" (__d0) + : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr), + [zero] "r" (0UL), [eight] "r" (8UL)); + return size; +--- kernel-power-2.6.28.orig/arch/x86/math-emu/fpu_entry.c ++++ kernel-power-2.6.28/arch/x86/math-emu/fpu_entry.c +@@ -131,7 +131,7 @@ + static int valid_prefix(u_char *Byte, u_char __user ** fpu_eip, + overrides * override); + +-asmlinkage void math_emulate(long arg) ++void math_emulate(struct math_emu_info *info) + { + u_char FPU_modrm, byte1; + unsigned short code; +@@ -161,7 +161,7 @@ + RE_ENTRANT_CHECK_ON; + #endif /* RE_ENTRANT_CHECKING */ + +- SETUP_DATA_AREA(arg); ++ FPU_info = info; + + FPU_ORIG_EIP = FPU_EIP; + +@@ -659,7 +659,7 @@ + } + } + +-void math_abort(struct info *info, unsigned int signal) ++void math_abort(struct math_emu_info *info, unsigned int signal) + { + FPU_EIP = FPU_ORIG_EIP; + current->thread.trap_no = 16; +--- kernel-power-2.6.28.orig/arch/x86/math-emu/fpu_proto.h ++++ kernel-power-2.6.28/arch/x86/math-emu/fpu_proto.h +@@ -51,8 +51,8 @@ + extern void fst_i_(void); + extern void fstp_i(void); + /* fpu_entry.c */ +-asmlinkage extern void math_emulate(long arg); +-extern void math_abort(struct info *info, unsigned int signal); ++extern void math_emulate(struct math_emu_info *info); ++extern void math_abort(struct math_emu_info *info, unsigned int signal); + /* fpu_etc.c */ + extern void FPU_etc(void); + /* fpu_tags.c */ +--- kernel-power-2.6.28.orig/arch/x86/math-emu/fpu_system.h ++++ kernel-power-2.6.28/arch/x86/math-emu/fpu_system.h +@@ -16,10 +16,6 @@ + #include + #include + +-/* This sets the pointer FPU_info to point to the argument part +- of the stack frame of math_emulate() */ +-#define SETUP_DATA_AREA(arg) FPU_info = (struct info *) &arg +- + /* s is always from a cpu register, and the cpu does bounds checking + * during register load --> no further bounds checks needed */ + #define LDT_DESCRIPTOR(s) (((struct desc_struct *)current->mm->context.ldt)[(s) >> 3]) +@@ -38,12 +34,12 @@ + #define I387 (current->thread.xstate) + #define FPU_info (I387->soft.info) + +-#define FPU_CS (*(unsigned short *) &(FPU_info->___cs)) +-#define FPU_SS (*(unsigned short *) &(FPU_info->___ss)) +-#define FPU_DS (*(unsigned short *) &(FPU_info->___ds)) +-#define FPU_EAX (FPU_info->___eax) +-#define FPU_EFLAGS (FPU_info->___eflags) +-#define FPU_EIP (FPU_info->___eip) ++#define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs)) ++#define FPU_SS (*(unsigned short *) &(FPU_info->regs->ss)) ++#define FPU_DS (*(unsigned short *) &(FPU_info->regs->ds)) ++#define FPU_EAX (FPU_info->regs->ax) ++#define FPU_EFLAGS (FPU_info->regs->flags) ++#define FPU_EIP (FPU_info->regs->ip) + #define FPU_ORIG_EIP (FPU_info->___orig_eip) + + #define FPU_lookahead (I387->soft.lookahead) +--- kernel-power-2.6.28.orig/arch/x86/math-emu/get_address.c ++++ kernel-power-2.6.28/arch/x86/math-emu/get_address.c +@@ -29,46 +29,43 @@ + #define FPU_WRITE_BIT 0x10 + + static int reg_offset[] = { +- offsetof(struct info, ___eax), +- offsetof(struct info, ___ecx), +- offsetof(struct info, ___edx), +- offsetof(struct info, ___ebx), +- offsetof(struct info, ___esp), +- offsetof(struct info, ___ebp), +- offsetof(struct info, ___esi), +- offsetof(struct info, ___edi) ++ offsetof(struct pt_regs, ax), ++ offsetof(struct pt_regs, cx), ++ offsetof(struct pt_regs, dx), ++ offsetof(struct pt_regs, bx), ++ offsetof(struct pt_regs, sp), ++ offsetof(struct pt_regs, bp), ++ offsetof(struct pt_regs, si), ++ offsetof(struct pt_regs, di) + }; + +-#define REG_(x) (*(long *)(reg_offset[(x)]+(u_char *) FPU_info)) ++#define REG_(x) (*(long *)(reg_offset[(x)] + (u_char *)FPU_info->regs)) + + static int reg_offset_vm86[] = { +- offsetof(struct info, ___cs), +- offsetof(struct info, ___vm86_ds), +- offsetof(struct info, ___vm86_es), +- offsetof(struct info, ___vm86_fs), +- offsetof(struct info, ___vm86_gs), +- offsetof(struct info, ___ss), +- offsetof(struct info, ___vm86_ds) ++ offsetof(struct pt_regs, cs), ++ offsetof(struct kernel_vm86_regs, ds), ++ offsetof(struct kernel_vm86_regs, es), ++ offsetof(struct kernel_vm86_regs, fs), ++ offsetof(struct kernel_vm86_regs, gs), ++ offsetof(struct pt_regs, ss), ++ offsetof(struct kernel_vm86_regs, ds) + }; + + #define VM86_REG_(x) (*(unsigned short *) \ +- (reg_offset_vm86[((unsigned)x)]+(u_char *) FPU_info)) +- +-/* This dummy, gs is not saved on the stack. */ +-#define ___GS ___ds ++ (reg_offset_vm86[((unsigned)x)] + (u_char *)FPU_info->regs)) + + static int reg_offset_pm[] = { +- offsetof(struct info, ___cs), +- offsetof(struct info, ___ds), +- offsetof(struct info, ___es), +- offsetof(struct info, ___fs), +- offsetof(struct info, ___GS), +- offsetof(struct info, ___ss), +- offsetof(struct info, ___ds) ++ offsetof(struct pt_regs, cs), ++ offsetof(struct pt_regs, ds), ++ offsetof(struct pt_regs, es), ++ offsetof(struct pt_regs, fs), ++ offsetof(struct pt_regs, ds), /* dummy, not saved on stack */ ++ offsetof(struct pt_regs, ss), ++ offsetof(struct pt_regs, ds) + }; + + #define PM_REG_(x) (*(unsigned short *) \ +- (reg_offset_pm[((unsigned)x)]+(u_char *) FPU_info)) ++ (reg_offset_pm[((unsigned)x)] + (u_char *)FPU_info->regs)) + + /* Decode the SIB byte. This function assumes mod != 0 */ + static int sib(int mod, unsigned long *fpu_eip) +@@ -349,34 +346,34 @@ + } + switch (rm) { + case 0: +- address += FPU_info->___ebx + FPU_info->___esi; ++ address += FPU_info->regs->bx + FPU_info->regs->si; + break; + case 1: +- address += FPU_info->___ebx + FPU_info->___edi; ++ address += FPU_info->regs->bx + FPU_info->regs->di; + break; + case 2: +- address += FPU_info->___ebp + FPU_info->___esi; ++ address += FPU_info->regs->bp + FPU_info->regs->si; + if (addr_modes.override.segment == PREFIX_DEFAULT) + addr_modes.override.segment = PREFIX_SS_; + break; + case 3: +- address += FPU_info->___ebp + FPU_info->___edi; ++ address += FPU_info->regs->bp + FPU_info->regs->di; + if (addr_modes.override.segment == PREFIX_DEFAULT) + addr_modes.override.segment = PREFIX_SS_; + break; + case 4: +- address += FPU_info->___esi; ++ address += FPU_info->regs->si; + break; + case 5: +- address += FPU_info->___edi; ++ address += FPU_info->regs->di; + break; + case 6: +- address += FPU_info->___ebp; ++ address += FPU_info->regs->bp; + if (addr_modes.override.segment == PREFIX_DEFAULT) + addr_modes.override.segment = PREFIX_SS_; + break; + case 7: +- address += FPU_info->___ebx; ++ address += FPU_info->regs->bx; + break; + } + +--- kernel-power-2.6.28.orig/arch/x86/mm/fault.c ++++ kernel-power-2.6.28/arch/x86/mm/fault.c +@@ -533,7 +533,7 @@ + happen within a race in page table update. In the later + case just flush. */ + +- pgd = pgd_offset(current->mm ?: &init_mm, address); ++ pgd = pgd_offset(current->active_mm, address); + pgd_ref = pgd_offset_k(address); + if (pgd_none(*pgd_ref)) + return -1; +@@ -601,8 +601,6 @@ + + si_code = SEGV_MAPERR; + +- if (notify_page_fault(regs)) +- return; + if (unlikely(kmmio_fault(regs, address))) + return; + +@@ -632,6 +630,9 @@ + if (spurious_fault(address, error_code)) + return; + ++ /* kprobes don't want to hook the spurious faults. */ ++ if (notify_page_fault(regs)) ++ return; + /* + * Don't take the mm semaphore here. If we fixup a prefetch + * fault we could otherwise deadlock. +@@ -639,6 +640,9 @@ + goto bad_area_nosemaphore; + } + ++ /* kprobes don't want to hook the spurious faults. */ ++ if (notify_page_fault(regs)) ++ return; + + /* + * It's safe to allow irq's after cr2 has been saved and the +--- kernel-power-2.6.28.orig/arch/x86/mm/numa_64.c ++++ kernel-power-2.6.28/arch/x86/mm/numa_64.c +@@ -145,7 +145,7 @@ + return shift; + } + +-int early_pfn_to_nid(unsigned long pfn) ++int __meminit __early_pfn_to_nid(unsigned long pfn) + { + return phys_to_nid(pfn << PAGE_SHIFT); + } +--- kernel-power-2.6.28.orig/arch/x86/mm/pageattr.c ++++ kernel-power-2.6.28/arch/x86/mm/pageattr.c +@@ -534,6 +534,36 @@ + return 0; + } + ++static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr, ++ int primary) ++{ ++ /* ++ * Ignore all non primary paths. ++ */ ++ if (!primary) ++ return 0; ++ ++ /* ++ * Ignore the NULL PTE for kernel identity mapping, as it is expected ++ * to have holes. ++ * Also set numpages to '1' indicating that we processed cpa req for ++ * one virtual address page and its pfn. TBD: numpages can be set based ++ * on the initial value and the level returned by lookup_address(). ++ */ ++ if (within(vaddr, PAGE_OFFSET, ++ PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT))) { ++ cpa->numpages = 1; ++ cpa->pfn = __pa(vaddr) >> PAGE_SHIFT; ++ return 0; ++ } else { ++ WARN(1, KERN_WARNING "CPA: called for zero pte. " ++ "vaddr = %lx cpa->vaddr = %lx\n", vaddr, ++ *cpa->vaddr); ++ ++ return -EFAULT; ++ } ++} ++ + static int __change_page_attr(struct cpa_data *cpa, int primary) + { + unsigned long address; +@@ -546,20 +576,21 @@ + else + address = *cpa->vaddr; + ++ /* ++ * If we're called with lazy mmu updates enabled, the ++ * in-memory pte state may be stale. Flush pending updates to ++ * bring them up to date. ++ */ ++ arch_flush_lazy_mmu_mode(); ++ + repeat: + kpte = lookup_address(address, &level); + if (!kpte) +- return 0; ++ return __cpa_process_fault(cpa, address, primary); + + old_pte = *kpte; +- if (!pte_val(old_pte)) { +- if (!primary) +- return 0; +- WARN(1, KERN_WARNING "CPA: called for zero pte. " +- "vaddr = %lx cpa->vaddr = %lx\n", address, +- *cpa->vaddr); +- return -EINVAL; +- } ++ if (!pte_val(old_pte)) ++ return __cpa_process_fault(cpa, address, primary); + + if (level == PG_LEVEL_4K) { + pte_t new_pte; +@@ -657,12 +688,7 @@ + vaddr = *cpa->vaddr; + + if (!(within(vaddr, PAGE_OFFSET, +- PAGE_OFFSET + (max_low_pfn_mapped << PAGE_SHIFT)) +-#ifdef CONFIG_X86_64 +- || within(vaddr, PAGE_OFFSET + (1UL<<32), +- PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)) +-#endif +- )) { ++ PAGE_OFFSET + (max_pfn_mapped << PAGE_SHIFT)))) { + + alias_cpa = *cpa; + temp_cpa_vaddr = (unsigned long) __va(cpa->pfn << PAGE_SHIFT); +@@ -835,6 +861,13 @@ + } else + cpa_flush_all(cache); + ++ /* ++ * If we've been called with lazy mmu updates enabled, then ++ * make sure that everything gets flushed out before we ++ * return. ++ */ ++ arch_flush_lazy_mmu_mode(); ++ + out: + return ret; + } +--- kernel-power-2.6.28.orig/arch/x86/mm/pat.c ++++ kernel-power-2.6.28/arch/x86/mm/pat.c +@@ -333,11 +333,23 @@ + req_type & _PAGE_CACHE_MASK); + } + +- is_range_ram = pagerange_is_ram(start, end); +- if (is_range_ram == 1) +- return reserve_ram_pages_type(start, end, req_type, new_type); +- else if (is_range_ram < 0) +- return -EINVAL; ++ if (new_type) ++ *new_type = actual_type; ++ ++ /* ++ * For legacy reasons, some parts of the physical address range in the ++ * legacy 1MB region is treated as non-RAM (even when listed as RAM in ++ * the e820 tables). So we will track the memory attributes of this ++ * legacy 1MB region using the linear memtype_list always. ++ */ ++ if (end >= ISA_END_ADDRESS) { ++ is_range_ram = pagerange_is_ram(start, end); ++ if (is_range_ram == 1) ++ return reserve_ram_pages_type(start, end, req_type, ++ new_type); ++ else if (is_range_ram < 0) ++ return -EINVAL; ++ } + + new = kmalloc(sizeof(struct memtype), GFP_KERNEL); + if (!new) +@@ -347,9 +359,6 @@ + new->end = end; + new->type = actual_type; + +- if (new_type) +- *new_type = actual_type; +- + spin_lock(&memtype_lock); + + if (cached_entry && start >= cached_start) +@@ -437,11 +446,19 @@ + if (is_ISA_range(start, end - 1)) + return 0; + +- is_range_ram = pagerange_is_ram(start, end); +- if (is_range_ram == 1) +- return free_ram_pages_type(start, end); +- else if (is_range_ram < 0) +- return -EINVAL; ++ /* ++ * For legacy reasons, some parts of the physical address range in the ++ * legacy 1MB region is treated as non-RAM (even when listed as RAM in ++ * the e820 tables). So we will track the memory attributes of this ++ * legacy 1MB region using the linear memtype_list always. ++ */ ++ if (end >= ISA_END_ADDRESS) { ++ is_range_ram = pagerange_is_ram(start, end); ++ if (is_range_ram == 1) ++ return free_ram_pages_type(start, end); ++ else if (is_range_ram < 0) ++ return -EINVAL; ++ } + + spin_lock(&memtype_lock); + list_for_each_entry(entry, &memtype_list, nd) { +--- kernel-power-2.6.28.orig/arch/x86/oprofile/op_model_ppro.c ++++ kernel-power-2.6.28/arch/x86/oprofile/op_model_ppro.c +@@ -78,8 +78,18 @@ + if (cpu_has_arch_perfmon) { + union cpuid10_eax eax; + eax.full = cpuid_eax(0xa); +- if (counter_width < eax.split.bit_width) +- counter_width = eax.split.bit_width; ++ ++ /* ++ * For Core2 (family 6, model 15), don't reset the ++ * counter width: ++ */ ++ if (!(eax.split.version_id == 0 && ++ current_cpu_data.x86 == 6 && ++ current_cpu_data.x86_model == 15)) { ++ ++ if (counter_width < eax.split.bit_width) ++ counter_width = eax.split.bit_width; ++ } + } + + /* clear all counters */ +--- kernel-power-2.6.28.orig/arch/x86/pci/i386.c ++++ kernel-power-2.6.28/arch/x86/pci/i386.c +@@ -329,6 +329,9 @@ + return -EINVAL; + } + flags = new_flags; ++ vma->vm_page_prot = __pgprot( ++ (pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK) | ++ flags); + } + + if (((vma->vm_pgoff < max_low_pfn_mapped) || +--- kernel-power-2.6.28.orig/arch/x86/pci/irq.c ++++ kernel-power-2.6.28/arch/x86/pci/irq.c +@@ -573,6 +573,7 @@ + case PCI_DEVICE_ID_INTEL_ICH7_1: + case PCI_DEVICE_ID_INTEL_ICH7_30: + case PCI_DEVICE_ID_INTEL_ICH7_31: ++ case PCI_DEVICE_ID_INTEL_TGP_LPC: + case PCI_DEVICE_ID_INTEL_ESB2_0: + case PCI_DEVICE_ID_INTEL_ICH8_0: + case PCI_DEVICE_ID_INTEL_ICH8_1: +--- kernel-power-2.6.28.orig/arch/x86/xen/enlighten.c ++++ kernel-power-2.6.28/arch/x86/xen/enlighten.c +@@ -1669,6 +1669,9 @@ + possible map and a non-dummy shared_info. */ + per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; + ++ local_irq_disable(); ++ early_boot_irqs_off(); ++ + xen_raw_console_write("mapping kernel into physical memory\n"); + pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages); + +--- kernel-power-2.6.28.orig/block/genhd.c ++++ kernel-power-2.6.28/block/genhd.c +@@ -98,7 +98,7 @@ + + if (flags & DISK_PITER_REVERSE) + piter->idx = ptbl->len - 1; +- else if (flags & DISK_PITER_INCL_PART0) ++ else if (flags & (DISK_PITER_INCL_PART0 | DISK_PITER_INCL_EMPTY_PART0)) + piter->idx = 0; + else + piter->idx = 1; +@@ -134,7 +134,8 @@ + /* determine iteration parameters */ + if (piter->flags & DISK_PITER_REVERSE) { + inc = -1; +- if (piter->flags & DISK_PITER_INCL_PART0) ++ if (piter->flags & (DISK_PITER_INCL_PART0 | ++ DISK_PITER_INCL_EMPTY_PART0)) + end = -1; + else + end = 0; +@@ -150,7 +151,10 @@ + part = rcu_dereference(ptbl->part[piter->idx]); + if (!part) + continue; +- if (!(piter->flags & DISK_PITER_INCL_EMPTY) && !part->nr_sects) ++ if (!part->nr_sects && ++ !(piter->flags & DISK_PITER_INCL_EMPTY) && ++ !(piter->flags & DISK_PITER_INCL_EMPTY_PART0 && ++ piter->idx == 0)) + continue; + + get_device(part_to_dev(part)); +@@ -994,7 +998,7 @@ + "\n\n"); + */ + +- disk_part_iter_init(&piter, gp, DISK_PITER_INCL_PART0); ++ disk_part_iter_init(&piter, gp, DISK_PITER_INCL_EMPTY_PART0); + while ((hd = disk_part_iter_next(&piter))) { + cpu = part_stat_lock(); + part_round_stats(cpu, hd); +--- kernel-power-2.6.28.orig/crypto/algapi.c ++++ kernel-power-2.6.28/crypto/algapi.c +@@ -149,6 +149,9 @@ + if (q == alg) + goto err; + ++ if (crypto_is_moribund(q)) ++ continue; ++ + if (crypto_is_larval(q)) { + if (!strcmp(alg->cra_driver_name, q->cra_driver_name)) + goto err; +@@ -197,7 +200,7 @@ + + down_write(&crypto_alg_sem); + list_for_each_entry(q, &crypto_alg_list, cra_list) { +- if (!crypto_is_larval(q)) ++ if (crypto_is_moribund(q) || !crypto_is_larval(q)) + continue; + + test = (struct crypto_larval *)q; +@@ -210,6 +213,7 @@ + goto unlock; + + found: ++ q->cra_flags |= CRYPTO_ALG_DEAD; + alg = test->adult; + if (err || list_empty(&alg->cra_list)) + goto complete; +--- kernel-power-2.6.28.orig/crypto/async_tx/async_tx.c ++++ kernel-power-2.6.28/crypto/async_tx/async_tx.c +@@ -124,6 +124,8 @@ + if (!dep) + return; + ++ /* we'll submit tx->next now, so clear the link */ ++ tx->next = NULL; + chan = dep->chan; + + /* keep submitting up until a channel switch is detected +--- kernel-power-2.6.28.orig/crypto/authenc.c ++++ kernel-power-2.6.28/crypto/authenc.c +@@ -157,16 +157,19 @@ + dstp = sg_page(dst); + vdst = PageHighMem(dstp) ? NULL : page_address(dstp) + dst->offset; + +- sg_init_table(cipher, 2); +- sg_set_buf(cipher, iv, ivsize); +- authenc_chain(cipher, dst, vdst == iv + ivsize); ++ if (ivsize) { ++ sg_init_table(cipher, 2); ++ sg_set_buf(cipher, iv, ivsize); ++ authenc_chain(cipher, dst, vdst == iv + ivsize); ++ dst = cipher; ++ } + + cryptlen = req->cryptlen + ivsize; +- hash = crypto_authenc_hash(req, flags, cipher, cryptlen); ++ hash = crypto_authenc_hash(req, flags, dst, cryptlen); + if (IS_ERR(hash)) + return PTR_ERR(hash); + +- scatterwalk_map_and_copy(hash, cipher, cryptlen, ++ scatterwalk_map_and_copy(hash, dst, cryptlen, + crypto_aead_authsize(authenc), 1); + return 0; + } +@@ -284,11 +287,14 @@ + srcp = sg_page(src); + vsrc = PageHighMem(srcp) ? NULL : page_address(srcp) + src->offset; + +- sg_init_table(cipher, 2); +- sg_set_buf(cipher, iv, ivsize); +- authenc_chain(cipher, src, vsrc == iv + ivsize); ++ if (ivsize) { ++ sg_init_table(cipher, 2); ++ sg_set_buf(cipher, iv, ivsize); ++ authenc_chain(cipher, src, vsrc == iv + ivsize); ++ src = cipher; ++ } + +- return crypto_authenc_verify(req, cipher, cryptlen + ivsize); ++ return crypto_authenc_verify(req, src, cryptlen + ivsize); + } + + static int crypto_authenc_decrypt(struct aead_request *req) +--- kernel-power-2.6.28.orig/crypto/ccm.c ++++ kernel-power-2.6.28/crypto/ccm.c +@@ -266,6 +266,8 @@ + if (assoclen) { + pctx->ilen = format_adata(idata, assoclen); + get_data_to_compute(cipher, pctx, req->assoc, req->assoclen); ++ } else { ++ pctx->ilen = 0; + } + + /* compute plaintext into mac */ +--- kernel-power-2.6.28.orig/drivers/acpi/asus_acpi.c ++++ kernel-power-2.6.28/drivers/acpi/asus_acpi.c +@@ -143,6 +143,7 @@ + S1300N, S5200N*/ + A4S, /* Z81sp */ + F3Sa, /* (Centrino) */ ++ R1F, + END_MODEL + } model; /* Models currently supported */ + u16 event_count[128]; /* Count for each event TODO make this better */ +@@ -420,7 +421,18 @@ + .display_get = "\\ADVG", + .display_set = "SDSP", + }, +- ++ { ++ .name = "R1F", ++ .mt_bt_switch = "BLED", ++ .mt_mled = "MLED", ++ .mt_wled = "WLED", ++ .mt_lcd_switch = "\\Q10", ++ .lcd_status = "\\GP06", ++ .brightness_set = "SPLV", ++ .brightness_get = "GPLV", ++ .display_set = "SDSP", ++ .display_get = "\\INFB" ++ } + }; + + /* procdir we use */ +@@ -1165,6 +1177,8 @@ + return W3V; + else if (strncmp(model, "W5A", 3) == 0) + return W5A; ++ else if (strncmp(model, "R1F", 3) == 0) ++ return R1F; + else if (strncmp(model, "A4S", 3) == 0) + return A4S; + else if (strncmp(model, "F3Sa", 4) == 0) +--- kernel-power-2.6.28.orig/drivers/acpi/battery.c ++++ kernel-power-2.6.28/drivers/acpi/battery.c +@@ -471,7 +471,7 @@ + + static int acpi_battery_update(struct acpi_battery *battery) + { +- int result; ++ int result, old_present = acpi_battery_present(battery); + result = acpi_battery_get_status(battery); + if (result) + return result; +@@ -482,7 +482,8 @@ + return 0; + } + #endif +- if (!battery->update_time) { ++ if (!battery->update_time || ++ old_present != acpi_battery_present(battery)) { + result = acpi_battery_get_info(battery); + if (result) + return result; +--- kernel-power-2.6.28.orig/drivers/acpi/dock.c ++++ kernel-power-2.6.28/drivers/acpi/dock.c +@@ -855,10 +855,14 @@ + static ssize_t show_docked(struct device *dev, + struct device_attribute *attr, char *buf) + { ++ struct acpi_device *tmp; ++ + struct dock_station *dock_station = *((struct dock_station **) + dev->platform_data); +- return snprintf(buf, PAGE_SIZE, "%d\n", dock_present(dock_station)); + ++ if (ACPI_SUCCESS(acpi_bus_get_device(dock_station->handle, &tmp))) ++ return snprintf(buf, PAGE_SIZE, "1\n"); ++ return snprintf(buf, PAGE_SIZE, "0\n"); + } + static DEVICE_ATTR(docked, S_IRUGO, show_docked, NULL); + +@@ -1142,9 +1146,10 @@ + static void __exit dock_exit(void) + { + struct dock_station *dock_station; ++ struct dock_station *tmp; + + unregister_acpi_bus_notifier(&dock_acpi_notifier); +- list_for_each_entry(dock_station, &dock_stations, sibiling) ++ list_for_each_entry_safe(dock_station, tmp, &dock_stations, sibiling) + dock_remove(dock_station); + } + +--- kernel-power-2.6.28.orig/drivers/acpi/ec.c ++++ kernel-power-2.6.28/drivers/acpi/ec.c +@@ -759,9 +759,10 @@ + struct acpi_namespace_node *node = handle; + struct acpi_ec *ec = context; + int value = 0; +- if (sscanf(node->name.ascii, "_Q%x", &value) == 1) { ++ ++ if (sscanf(node->name.ascii, "_Q%2x", &value) == 1) + acpi_ec_add_query_handler(ec, value, handle, NULL, NULL); +- } ++ + return AE_OK; + } + +--- kernel-power-2.6.28.orig/drivers/acpi/namespace/nsutils.c ++++ kernel-power-2.6.28/drivers/acpi/namespace/nsutils.c +@@ -314,9 +314,15 @@ + * + * strlen() + 1 covers the first name_seg, which has no path separator + */ +- if (acpi_ns_valid_root_prefix(next_external_char[0])) { ++ if (acpi_ns_valid_root_prefix(*next_external_char)) { + info->fully_qualified = TRUE; + next_external_char++; ++ ++ /* Skip redundant root_prefix, like \\_SB.PCI0.SBRG.EC0 */ ++ ++ while (acpi_ns_valid_root_prefix(*next_external_char)) { ++ next_external_char++; ++ } + } else { + /* + * Handle Carat prefixes +--- kernel-power-2.6.28.orig/drivers/acpi/pci_link.c ++++ kernel-power-2.6.28/drivers/acpi/pci_link.c +@@ -796,10 +796,6 @@ + struct list_head *node = NULL; + struct acpi_pci_link *link = NULL; + +- +- /* Make sure SCI is enabled again (Apple firmware bug?) */ +- acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1); +- + list_for_each(node, &acpi_link.entries) { + link = list_entry(node, struct acpi_pci_link, node); + if (!link) { +--- kernel-power-2.6.28.orig/drivers/acpi/power.c ++++ kernel-power-2.6.28/drivers/acpi/power.c +@@ -151,7 +151,7 @@ + *state = (sta & 0x01)?ACPI_POWER_RESOURCE_STATE_ON: + ACPI_POWER_RESOURCE_STATE_OFF; + +- ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%s] is %s\n", ++ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Resource [%4.4s] is %s\n", + acpi_ut_get_node_name(handle), + *state ? "on" : "off")); + +--- kernel-power-2.6.28.orig/drivers/acpi/tables.c ++++ kernel-power-2.6.28/drivers/acpi/tables.c +@@ -293,7 +293,12 @@ + + int __init acpi_table_init(void) + { +- acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); ++ acpi_status status; ++ ++ status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); ++ if (ACPI_FAILURE(status)) ++ return 1; ++ + check_multiple_madt(); + return 0; + } +--- kernel-power-2.6.28.orig/drivers/acpi/tables/tbutils.c ++++ kernel-power-2.6.28/drivers/acpi/tables/tbutils.c +@@ -512,10 +512,9 @@ + if (ACPI_FAILURE(status)) { + ACPI_WARNING((AE_INFO, + "Truncating %u table entries!", +- (unsigned) +- (acpi_gbl_root_table_list.size - +- acpi_gbl_root_table_list. +- count))); ++ (unsigned) (table_count - ++ (acpi_gbl_root_table_list. ++ count - 2)))); + break; + } + } +--- kernel-power-2.6.28.orig/drivers/acpi/video.c ++++ kernel-power-2.6.28/drivers/acpi/video.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -481,6 +482,7 @@ + int status = AE_OK; + union acpi_object arg0 = { ACPI_TYPE_INTEGER }; + struct acpi_object_list args = { 1, &arg0 }; ++ int state; + + + arg0.integer.value = level; +@@ -489,6 +491,10 @@ + status = acpi_evaluate_object(device->dev->handle, "_BCM", + &args, NULL); + device->brightness->curr = level; ++ for (state = 2; state < device->brightness->count; state++) ++ if (level == device->brightness->levels[state]) ++ device->backlight->props.brightness = state - 2; ++ + return status; + } + +@@ -626,6 +632,16 @@ + } + + /* ++ * Simple comparison function used to sort backlight levels. ++ */ ++ ++static int ++acpi_video_cmp_level(const void *a, const void *b) ++{ ++ return *(int *)a - *(int *)b; ++} ++ ++/* + * Arg: + * device : video output device (LCD, CRT, ..) + * +@@ -676,6 +692,10 @@ + count++; + } + ++ /* don't sort the first two brightness levels */ ++ sort(&br->levels[2], count - 2, sizeof(br->levels[2]), ++ acpi_video_cmp_level, NULL); ++ + if (count < 2) + goto out_free_levels; + +@@ -1000,7 +1020,7 @@ + } + + seq_printf(seq, "levels: "); +- for (i = 0; i < dev->brightness->count; i++) ++ for (i = 2; i < dev->brightness->count; i++) + seq_printf(seq, " %d", dev->brightness->levels[i]); + seq_printf(seq, "\ncurrent: %d\n", dev->brightness->curr); + +@@ -1039,7 +1059,7 @@ + return -EFAULT; + + /* validate through the list of available levels */ +- for (i = 0; i < dev->brightness->count; i++) ++ for (i = 2; i < dev->brightness->count; i++) + if (level == dev->brightness->levels[i]) { + if (ACPI_SUCCESS + (acpi_video_device_lcd_set_level(dev, level))) +@@ -1692,7 +1712,7 @@ + max = max_below = 0; + min = min_above = 255; + /* Find closest level to level_current */ +- for (i = 0; i < device->brightness->count; i++) { ++ for (i = 2; i < device->brightness->count; i++) { + l = device->brightness->levels[i]; + if (abs(l - level_current) < abs(delta)) { + delta = l - level_current; +@@ -1702,7 +1722,7 @@ + } + /* Ajust level_current to closest available level */ + level_current += delta; +- for (i = 0; i < device->brightness->count; i++) { ++ for (i = 2; i < device->brightness->count; i++) { + l = device->brightness->levels[i]; + if (l < min) + min = l; +@@ -1986,6 +2006,12 @@ + device->pnp.bus_id[3] = '0' + instance; + instance ++; + } ++ /* a hack to fix the duplicate name "VGA" problem on Pa 3553 */ ++ if (!strcmp(device->pnp.bus_id, "VGA")) { ++ if (instance) ++ device->pnp.bus_id[3] = '0' + instance; ++ instance++; ++ } + + video->device = device; + strcpy(acpi_device_name(device), ACPI_VIDEO_BUS_NAME); +--- kernel-power-2.6.28.orig/drivers/ata/ata_piix.c ++++ kernel-power-2.6.28/drivers/ata/ata_piix.c +@@ -1294,6 +1294,39 @@ + return map; + } + ++static bool piix_no_sidpr(struct ata_host *host) ++{ ++ struct pci_dev *pdev = to_pci_dev(host->dev); ++ ++ /* ++ * Samsung DB-P70 only has three ATA ports exposed and ++ * curiously the unconnected first port reports link online ++ * while not responding to SRST protocol causing excessive ++ * detection delay. ++ * ++ * Unfortunately, the system doesn't carry enough DMI ++ * information to identify the machine but does have subsystem ++ * vendor and device set. As it's unclear whether the ++ * subsystem vendor/device is used only for this specific ++ * board, the port can't be disabled solely with the ++ * information; however, turning off SIDPR access works around ++ * the problem. Turn it off. ++ * ++ * This problem is reported in bnc#441240. ++ * ++ * https://bugzilla.novell.com/show_bug.cgi?id=441420 ++ */ ++ if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2920 && ++ pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG && ++ pdev->subsystem_device == 0xb049) { ++ dev_printk(KERN_WARNING, host->dev, ++ "Samsung DB-P70 detected, disabling SIDPR\n"); ++ return true; ++ } ++ ++ return false; ++} ++ + static int __devinit piix_init_sidpr(struct ata_host *host) + { + struct pci_dev *pdev = to_pci_dev(host->dev); +@@ -1307,6 +1340,10 @@ + if (hpriv->map[i] == IDE) + return 0; + ++ /* is it blacklisted? */ ++ if (piix_no_sidpr(host)) ++ return 0; ++ + if (!(host->ports[0]->flags & PIIX_FLAG_SIDPR)) + return 0; + +--- kernel-power-2.6.28.orig/drivers/ata/libata-core.c ++++ kernel-power-2.6.28/drivers/ata/libata-core.c +@@ -1251,14 +1251,16 @@ + { + if (ata_id_has_lba(id)) { + if (ata_id_has_lba48(id)) +- return ata_id_u64(id, 100); ++ return ata_id_u64(id, ATA_ID_LBA_CAPACITY_2); + else +- return ata_id_u32(id, 60); ++ return ata_id_u32(id, ATA_ID_LBA_CAPACITY); + } else { + if (ata_id_current_chs_valid(id)) +- return ata_id_u32(id, 57); ++ return id[ATA_ID_CUR_CYLS] * id[ATA_ID_CUR_HEADS] * ++ id[ATA_ID_CUR_SECTORS]; + else +- return id[1] * id[3] * id[6]; ++ return id[ATA_ID_CYLS] * id[ATA_ID_HEADS] * ++ id[ATA_ID_SECTORS]; + } + } + +--- kernel-power-2.6.28.orig/drivers/ata/libata-eh.c ++++ kernel-power-2.6.28/drivers/ata/libata-eh.c +@@ -2366,11 +2366,14 @@ + } + + /* prereset() might have cleared ATA_EH_RESET. If so, +- * bang classes and return. ++ * bang classes, thaw and return. + */ + if (reset && !(ehc->i.action & ATA_EH_RESET)) { + ata_link_for_each_dev(dev, link) + classes[dev->devno] = ATA_DEV_NONE; ++ if ((ap->pflags & ATA_PFLAG_FROZEN) && ++ ata_is_host_link(link)) ++ ata_eh_thaw_port(ap); + rc = 0; + goto out; + } +@@ -2959,12 +2962,13 @@ + /* give it just one more chance */ + ehc->tries[dev->devno] = min(ehc->tries[dev->devno], 1); + case -EIO: +- if (ehc->tries[dev->devno] == 1 && dev->pio_mode > XFER_PIO_0) { ++ if (ehc->tries[dev->devno] == 1) { + /* This is the last chance, better to slow + * down than lose it. + */ + sata_down_spd_limit(ata_dev_phys_link(dev)); +- ata_down_xfermask_limit(dev, ATA_DNXFER_PIO); ++ if (dev->pio_mode > XFER_PIO_0) ++ ata_down_xfermask_limit(dev, ATA_DNXFER_PIO); + } + } + +--- kernel-power-2.6.28.orig/drivers/ata/pata_hpt37x.c ++++ kernel-power-2.6.28/drivers/ata/pata_hpt37x.c +@@ -8,7 +8,7 @@ + * Copyright (C) 1999-2003 Andre Hedrick + * Portions Copyright (C) 2001 Sun Microsystems, Inc. + * Portions Copyright (C) 2003 Red Hat Inc +- * Portions Copyright (C) 2005-2007 MontaVista Software, Inc. ++ * Portions Copyright (C) 2005-2009 MontaVista Software, Inc. + * + * TODO + * Look into engine reset on timeout errors. Should not be required. +@@ -24,7 +24,7 @@ + #include + + #define DRV_NAME "pata_hpt37x" +-#define DRV_VERSION "0.6.11" ++#define DRV_VERSION "0.6.12" + + struct hpt_clock { + u8 xfer_speed; +@@ -445,23 +445,6 @@ + } + + /** +- * hpt370_bmdma_start - DMA engine begin +- * @qc: ATA command +- * +- * The 370 and 370A want us to reset the DMA engine each time we +- * use it. The 372 and later are fine. +- */ +- +-static void hpt370_bmdma_start(struct ata_queued_cmd *qc) +-{ +- struct ata_port *ap = qc->ap; +- struct pci_dev *pdev = to_pci_dev(ap->host->dev); +- pci_write_config_byte(pdev, 0x50 + 4 * ap->port_no, 0x37); +- udelay(10); +- ata_bmdma_start(qc); +-} +- +-/** + * hpt370_bmdma_end - DMA engine stop + * @qc: ATA command + * +@@ -598,7 +581,6 @@ + static struct ata_port_operations hpt370_port_ops = { + .inherits = &ata_bmdma_port_ops, + +- .bmdma_start = hpt370_bmdma_start, + .bmdma_stop = hpt370_bmdma_stop, + + .mode_filter = hpt370_filter, +--- kernel-power-2.6.28.orig/drivers/ata/pata_via.c ++++ kernel-power-2.6.28/drivers/ata/pata_via.c +@@ -86,6 +86,10 @@ + VIA_SATA_PATA = 0x800, /* SATA/PATA combined configuration */ + }; + ++enum { ++ VIA_IDFLAG_SINGLE = (1 << 0), /* single channel controller) */ ++}; ++ + /* + * VIA SouthBridge chips. + */ +@@ -97,12 +101,17 @@ + u8 rev_max; + u16 flags; + } via_isa_bridges[] = { ++ { "vx855", PCI_DEVICE_ID_VIA_VX855, 0x00, 0x2f, ++ VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA }, + { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, VIA_UDMA_133 | + VIA_BAD_AST | VIA_SATA_PATA }, ++ { "vt8261", PCI_DEVICE_ID_VIA_8261, 0x00, 0x2f, ++ VIA_UDMA_133 | VIA_BAD_AST }, + { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, + { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, + { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA }, +- { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES}, ++ { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES }, ++ { "vt6415", PCI_DEVICE_ID_VIA_6415, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_NO_ENABLES }, + { "vt8237a", PCI_DEVICE_ID_VIA_8237A, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, + { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, + { "vt8235", PCI_DEVICE_ID_VIA_8235, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST }, +@@ -122,6 +131,8 @@ + { "vt82c586", PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO }, + { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK }, + { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID }, ++ { "vtxxxx", PCI_DEVICE_ID_VIA_ANON, 0x00, 0x2f, ++ VIA_UDMA_133 | VIA_BAD_AST }, + { NULL } + }; + +@@ -460,6 +471,7 @@ + static int printed_version; + u8 enable; + u32 timing; ++ unsigned long flags = id->driver_data; + int rc; + + if (!printed_version++) +@@ -469,9 +481,13 @@ + if (rc) + return rc; + ++ if (flags & VIA_IDFLAG_SINGLE) ++ ppi[1] = &ata_dummy_port_info; ++ + /* To find out how the IDE will behave and what features we + actually have to look at the bridge not the IDE controller */ +- for (config = via_isa_bridges; config->id; config++) ++ for (config = via_isa_bridges; config->id != PCI_DEVICE_ID_VIA_ANON; ++ config++) + if ((isa = pci_get_device(PCI_VENDOR_ID_VIA + + !!(config->flags & VIA_BAD_ID), + config->id, NULL))) { +@@ -482,10 +498,6 @@ + pci_dev_put(isa); + } + +- if (!config->id) { +- printk(KERN_WARNING "via: Unknown VIA SouthBridge, disabling.\n"); +- return -ENODEV; +- } + pci_dev_put(isa); + + if (!(config->flags & VIA_NO_ENABLES)) { +@@ -582,11 +594,13 @@ + #endif + + static const struct pci_device_id via[] = { ++ { PCI_VDEVICE(VIA, 0x0415), }, + { PCI_VDEVICE(VIA, 0x0571), }, + { PCI_VDEVICE(VIA, 0x0581), }, + { PCI_VDEVICE(VIA, 0x1571), }, + { PCI_VDEVICE(VIA, 0x3164), }, + { PCI_VDEVICE(VIA, 0x5324), }, ++ { PCI_VDEVICE(VIA, 0xC409), VIA_IDFLAG_SINGLE }, + + { }, + }; +--- kernel-power-2.6.28.orig/drivers/ata/sata_mv.c ++++ kernel-power-2.6.28/drivers/ata/sata_mv.c +@@ -669,8 +669,8 @@ + { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, + /* RocketRAID 1720/174x have different identifiers */ + { PCI_VDEVICE(TTI, 0x1720), chip_6042 }, +- { PCI_VDEVICE(TTI, 0x1740), chip_508x }, +- { PCI_VDEVICE(TTI, 0x1742), chip_508x }, ++ { PCI_VDEVICE(TTI, 0x1740), chip_6042 }, ++ { PCI_VDEVICE(TTI, 0x1742), chip_6042 }, + + { PCI_VDEVICE(MARVELL, 0x6040), chip_604x }, + { PCI_VDEVICE(MARVELL, 0x6041), chip_604x }, +@@ -883,7 +883,7 @@ + struct mv_host_priv *hpriv = ap->host->private_data; + int hardport = mv_hardport_from_port(ap->port_no); + void __iomem *hc_mmio = mv_hc_base_from_port( +- mv_host_base(ap->host), hardport); ++ mv_host_base(ap->host), ap->port_no); + u32 hc_irq_cause, ipending; + + /* clear EDMA event indicators, if any */ +--- kernel-power-2.6.28.orig/drivers/ata/sata_nv.c ++++ kernel-power-2.6.28/drivers/ata/sata_nv.c +@@ -305,10 +305,10 @@ + static int nv_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val); + static int nv_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val); + ++static int nv_noclassify_hardreset(struct ata_link *link, unsigned int *class, ++ unsigned long deadline); + static void nv_nf2_freeze(struct ata_port *ap); + static void nv_nf2_thaw(struct ata_port *ap); +-static int nv_nf2_hardreset(struct ata_link *link, unsigned int *class, +- unsigned long deadline); + static void nv_ck804_freeze(struct ata_port *ap); + static void nv_ck804_thaw(struct ata_port *ap); + static int nv_adma_slave_config(struct scsi_device *sdev); +@@ -352,6 +352,7 @@ + NFORCE3 = NFORCE2, /* NF2 == NF3 as far as sata_nv is concerned */ + CK804, + ADMA, ++ MCP5x, + SWNCQ, + }; + +@@ -363,10 +364,10 @@ + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_CK804_SATA2), CK804 }, + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA), CK804 }, + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SATA2), CK804 }, +- { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), SWNCQ }, +- { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), SWNCQ }, +- { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), SWNCQ }, +- { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), SWNCQ }, ++ { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA), MCP5x }, ++ { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2), MCP5x }, ++ { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA), MCP5x }, ++ { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2), MCP5x }, + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC }, + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC }, + { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC }, +@@ -420,26 +421,33 @@ + .hardreset = ATA_OP_NULL, + }; + +-/* OSDL bz3352 reports that nf2/3 controllers can't determine device +- * signature reliably. Also, the following thread reports detection +- * failure on cold boot with the standard debouncing timing. ++/* nf2 is ripe with hardreset related problems. ++ * ++ * kernel bz#3352 reports nf2/3 controllers can't determine device ++ * signature reliably. The following thread reports detection failure ++ * on cold boot with the standard debouncing timing. + * + * http://thread.gmane.org/gmane.linux.ide/34098 + * +- * Debounce with hotplug timing and request follow-up SRST. ++ * And bz#12176 reports that hardreset simply doesn't work on nf2. ++ * Give up on it and just don't do hardreset. + */ + static struct ata_port_operations nv_nf2_ops = { +- .inherits = &nv_common_ops, ++ .inherits = &nv_generic_ops, + .freeze = nv_nf2_freeze, + .thaw = nv_nf2_thaw, +- .hardreset = nv_nf2_hardreset, + }; + +-/* CK804 finally gets hardreset right */ ++/* For initial probing after boot and hot plugging, hardreset mostly ++ * works fine on CK804 but curiously, reprobing on the initial port by ++ * rescanning or rmmod/insmod fails to acquire the initial D2H Reg FIS ++ * in somewhat undeterministic way. Use noclassify hardreset. ++ */ + static struct ata_port_operations nv_ck804_ops = { + .inherits = &nv_common_ops, + .freeze = nv_ck804_freeze, + .thaw = nv_ck804_thaw, ++ .hardreset = nv_noclassify_hardreset, + .host_stop = nv_ck804_host_stop, + }; + +@@ -467,8 +475,19 @@ + .host_stop = nv_adma_host_stop, + }; + ++/* Kernel bz#12351 reports that when SWNCQ is enabled, for hotplug to ++ * work, hardreset should be used and hardreset can't report proper ++ * signature, which suggests that mcp5x is closer to nf2 as long as ++ * reset quirkiness is concerned. Define separate ops for mcp5x with ++ * nv_noclassify_hardreset(). ++ */ ++static struct ata_port_operations nv_mcp5x_ops = { ++ .inherits = &nv_common_ops, ++ .hardreset = nv_noclassify_hardreset, ++}; ++ + static struct ata_port_operations nv_swncq_ops = { +- .inherits = &nv_generic_ops, ++ .inherits = &nv_mcp5x_ops, + + .qc_defer = ata_std_qc_defer, + .qc_prep = nv_swncq_qc_prep, +@@ -531,6 +550,15 @@ + .port_ops = &nv_adma_ops, + .private_data = NV_PI_PRIV(nv_adma_interrupt, &nv_adma_sht), + }, ++ /* MCP5x */ ++ { ++ .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY, ++ .pio_mask = NV_PIO_MASK, ++ .mwdma_mask = NV_MWDMA_MASK, ++ .udma_mask = NV_UDMA_MASK, ++ .port_ops = &nv_mcp5x_ops, ++ .private_data = NV_PI_PRIV(nv_generic_interrupt, &nv_sht), ++ }, + /* SWNCQ */ + { + .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | +@@ -1530,6 +1558,17 @@ + return 0; + } + ++static int nv_noclassify_hardreset(struct ata_link *link, unsigned int *class, ++ unsigned long deadline) ++{ ++ bool online; ++ int rc; ++ ++ rc = sata_link_hardreset(link, sata_deb_timing_hotplug, deadline, ++ &online, NULL); ++ return online ? -EAGAIN : rc; ++} ++ + static void nv_nf2_freeze(struct ata_port *ap) + { + void __iomem *scr_addr = ap->host->ports[0]->ioaddr.scr_addr; +@@ -1554,17 +1593,6 @@ + iowrite8(mask, scr_addr + NV_INT_ENABLE); + } + +-static int nv_nf2_hardreset(struct ata_link *link, unsigned int *class, +- unsigned long deadline) +-{ +- bool online; +- int rc; +- +- rc = sata_link_hardreset(link, sata_deb_timing_hotplug, deadline, +- &online, NULL); +- return online ? -EAGAIN : rc; +-} +- + static void nv_ck804_freeze(struct ata_port *ap) + { + void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; +@@ -2355,14 +2383,9 @@ + if (type == CK804 && adma_enabled) { + dev_printk(KERN_NOTICE, &pdev->dev, "Using ADMA mode\n"); + type = ADMA; +- } +- +- if (type == SWNCQ) { +- if (swncq_enabled) +- dev_printk(KERN_NOTICE, &pdev->dev, +- "Using SWNCQ mode\n"); +- else +- type = GENERIC; ++ } else if (type == MCP5x && swncq_enabled) { ++ dev_printk(KERN_NOTICE, &pdev->dev, "Using SWNCQ mode\n"); ++ type = SWNCQ; + } + + ppi[0] = &nv_port_info[type]; +--- kernel-power-2.6.28.orig/drivers/ata/sata_via.c ++++ kernel-power-2.6.28/drivers/ata/sata_via.c +@@ -92,6 +92,8 @@ + { PCI_VDEVICE(VIA, 0x5372), vt6420 }, + { PCI_VDEVICE(VIA, 0x7372), vt6420 }, + { PCI_VDEVICE(VIA, 0x5287), vt8251 }, /* 2 sata chnls (Master/Slave) */ ++ { PCI_VDEVICE(VIA, 0x9000), vt8251 }, ++ { PCI_VDEVICE(VIA, 0x9040), vt8251 }, + + { } /* terminate list */ + }; +--- kernel-power-2.6.28.orig/drivers/atm/fore200e.c ++++ kernel-power-2.6.28/drivers/atm/fore200e.c +@@ -2519,8 +2519,8 @@ + return err; + + sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT); +- if (request_firmware(&firmware, buf, device) == 1) { +- printk(FORE200E "missing %s firmware image\n", fore200e->bus->model_name); ++ if ((err = request_firmware(&firmware, buf, device)) < 0) { ++ printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name); + return err; + } + +--- kernel-power-2.6.28.orig/drivers/block/aoe/aoe.h ++++ kernel-power-2.6.28/drivers/block/aoe/aoe.h +@@ -18,6 +18,7 @@ + enum { + AOECMD_ATA, + AOECMD_CFG, ++ AOECMD_VEND_MIN = 0xf0, + + AOEFL_RSP = (1<<3), + AOEFL_ERR = (1<<2), +--- kernel-power-2.6.28.orig/drivers/block/aoe/aoenet.c ++++ kernel-power-2.6.28/drivers/block/aoe/aoenet.c +@@ -153,6 +153,8 @@ + aoecmd_cfg_rsp(skb); + break; + default: ++ if (h->cmd >= AOECMD_VEND_MIN) ++ break; /* don't complain about vendor commands */ + printk(KERN_INFO "aoe: unknown cmd %d\n", h->cmd); + } + exit: +--- kernel-power-2.6.28.orig/drivers/block/nbd.c ++++ kernel-power-2.6.28/drivers/block/nbd.c +@@ -406,6 +406,7 @@ + ret = sysfs_create_file(&disk_to_dev(lo->disk)->kobj, &pid_attr.attr); + if (ret) { + printk(KERN_ERR "nbd: sysfs_create_file failed!"); ++ lo->pid = 0; + return ret; + } + +@@ -413,6 +414,7 @@ + nbd_end_request(req); + + sysfs_remove_file(&disk_to_dev(lo->disk)->kobj, &pid_attr.attr); ++ lo->pid = 0; + return 0; + } + +@@ -547,6 +549,15 @@ + + BUG_ON(lo->magic != LO_MAGIC); + ++ if (unlikely(!lo->sock)) { ++ printk(KERN_ERR "%s: Attempted send on closed socket\n", ++ lo->disk->disk_name); ++ req->errors++; ++ nbd_end_request(req); ++ spin_lock_irq(q->queue_lock); ++ continue; ++ } ++ + spin_lock_irq(&lo->queue_lock); + list_add_tail(&req->queuelist, &lo->waiting_queue); + spin_unlock_irq(&lo->queue_lock); +@@ -648,6 +659,8 @@ + set_capacity(lo->disk, lo->bytesize >> 9); + return 0; + case NBD_DO_IT: ++ if (lo->pid) ++ return -EBUSY; + if (!lo->file) + return -EINVAL; + thread = kthread_create(nbd_thread, lo, lo->disk->disk_name); +--- kernel-power-2.6.28.orig/drivers/block/xen-blkfront.c ++++ kernel-power-2.6.28/drivers/block/xen-blkfront.c +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -82,6 +83,7 @@ + enum blkif_state connected; + int ring_ref; + struct blkif_front_ring ring; ++ struct scatterlist sg[BLKIF_MAX_SEGMENTS_PER_REQUEST]; + unsigned int evtchn, irq; + struct request_queue *rq; + struct work_struct work; +@@ -204,12 +206,11 @@ + struct blkfront_info *info = req->rq_disk->private_data; + unsigned long buffer_mfn; + struct blkif_request *ring_req; +- struct req_iterator iter; +- struct bio_vec *bvec; + unsigned long id; + unsigned int fsect, lsect; +- int ref; ++ int i, ref; + grant_ref_t gref_head; ++ struct scatterlist *sg; + + if (unlikely(info->connected != BLKIF_STATE_CONNECTED)) + return 1; +@@ -238,12 +239,13 @@ + if (blk_barrier_rq(req)) + ring_req->operation = BLKIF_OP_WRITE_BARRIER; + +- ring_req->nr_segments = 0; +- rq_for_each_segment(bvec, req, iter) { +- BUG_ON(ring_req->nr_segments == BLKIF_MAX_SEGMENTS_PER_REQUEST); +- buffer_mfn = pfn_to_mfn(page_to_pfn(bvec->bv_page)); +- fsect = bvec->bv_offset >> 9; +- lsect = fsect + (bvec->bv_len >> 9) - 1; ++ ring_req->nr_segments = blk_rq_map_sg(req->q, req, info->sg); ++ BUG_ON(ring_req->nr_segments > BLKIF_MAX_SEGMENTS_PER_REQUEST); ++ ++ for_each_sg(info->sg, sg, ring_req->nr_segments, i) { ++ buffer_mfn = pfn_to_mfn(page_to_pfn(sg_page(sg))); ++ fsect = sg->offset >> 9; ++ lsect = fsect + (sg->length >> 9) - 1; + /* install a grant reference. */ + ref = gnttab_claim_grant_reference(&gref_head); + BUG_ON(ref == -ENOSPC); +@@ -254,16 +256,12 @@ + buffer_mfn, + rq_data_dir(req) ); + +- info->shadow[id].frame[ring_req->nr_segments] = +- mfn_to_pfn(buffer_mfn); +- +- ring_req->seg[ring_req->nr_segments] = ++ info->shadow[id].frame[i] = mfn_to_pfn(buffer_mfn); ++ ring_req->seg[i] = + (struct blkif_request_segment) { + .gref = ref, + .first_sect = fsect, + .last_sect = lsect }; +- +- ring_req->nr_segments++; + } + + info->ring.req_prod_pvt++; +@@ -628,6 +626,8 @@ + SHARED_RING_INIT(sring); + FRONT_RING_INIT(&info->ring, sring, PAGE_SIZE); + ++ sg_init_table(info->sg, BLKIF_MAX_SEGMENTS_PER_REQUEST); ++ + err = xenbus_grant_ring(dev, virt_to_mfn(info->ring.sring)); + if (err < 0) { + free_page((unsigned long)sring); +--- kernel-power-2.6.28.orig/drivers/bluetooth/btsdio.c ++++ kernel-power-2.6.28/drivers/bluetooth/btsdio.c +@@ -86,6 +86,7 @@ + + err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len); + if (err < 0) { ++ skb_pull(skb, 4); + sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL); + return err; + } +--- kernel-power-2.6.28.orig/drivers/char/agp/generic.c ++++ kernel-power-2.6.28/drivers/char/agp/generic.c +@@ -1226,7 +1226,7 @@ + int i, ret = -ENOMEM; + + for (i = 0; i < num_pages; i++) { +- page = alloc_page(GFP_KERNEL | GFP_DMA32); ++ page = alloc_page(GFP_KERNEL | GFP_DMA32 | __GFP_ZERO); + /* agp_free_memory() needs gart address */ + if (page == NULL) + goto out; +@@ -1257,7 +1257,7 @@ + { + struct page * page; + +- page = alloc_page(GFP_KERNEL | GFP_DMA32); ++ page = alloc_page(GFP_KERNEL | GFP_DMA32 | __GFP_ZERO); + if (page == NULL) + return NULL; + +--- kernel-power-2.6.28.orig/drivers/char/agp/intel-agp.c ++++ kernel-power-2.6.28/drivers/char/agp/intel-agp.c +@@ -40,6 +40,8 @@ + #define PCI_DEVICE_ID_INTEL_Q45_IG 0x2E12 + #define PCI_DEVICE_ID_INTEL_G45_HB 0x2E20 + #define PCI_DEVICE_ID_INTEL_G45_IG 0x2E22 ++#define PCI_DEVICE_ID_INTEL_G41_HB 0x2E30 ++#define PCI_DEVICE_ID_INTEL_G41_IG 0x2E32 + + /* cover 915 and 945 variants */ + #define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \ +@@ -63,7 +65,8 @@ + #define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_E_HB || \ + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \ + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB || \ +- agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB) ++ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB || \ ++ agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G41_HB) + + extern int agp_memory_reserved; + +@@ -630,13 +633,15 @@ + break; + } + } +- if (gtt_entries > 0) ++ if (gtt_entries > 0) { + dev_info(&agp_bridge->dev->dev, "detected %dK %s memory\n", + gtt_entries / KB(1), local ? "local" : "stolen"); +- else ++ gtt_entries /= KB(4); ++ } else { + dev_info(&agp_bridge->dev->dev, + "no pre-allocated video memory detected\n"); +- gtt_entries /= KB(4); ++ gtt_entries = 0; ++ } + + intel_private.gtt_entries = gtt_entries; + } +@@ -1196,6 +1201,7 @@ + case PCI_DEVICE_ID_INTEL_IGD_E_HB: + case PCI_DEVICE_ID_INTEL_Q45_HB: + case PCI_DEVICE_ID_INTEL_G45_HB: ++ case PCI_DEVICE_ID_INTEL_G41_HB: + *gtt_offset = *gtt_size = MB(2); + break; + default: +@@ -2156,13 +2162,15 @@ + { PCI_DEVICE_ID_INTEL_Q33_HB, PCI_DEVICE_ID_INTEL_Q33_IG, 0, "Q33", + NULL, &intel_g33_driver }, + { PCI_DEVICE_ID_INTEL_GM45_HB, PCI_DEVICE_ID_INTEL_GM45_IG, 0, +- "Mobile Intel? GM45 Express", NULL, &intel_i965_driver }, ++ "Mobile Intel® GM45 Express", NULL, &intel_i965_driver }, + { PCI_DEVICE_ID_INTEL_IGD_E_HB, PCI_DEVICE_ID_INTEL_IGD_E_IG, 0, + "Intel Integrated Graphics Device", NULL, &intel_i965_driver }, + { PCI_DEVICE_ID_INTEL_Q45_HB, PCI_DEVICE_ID_INTEL_Q45_IG, 0, + "Q45/Q43", NULL, &intel_i965_driver }, + { PCI_DEVICE_ID_INTEL_G45_HB, PCI_DEVICE_ID_INTEL_G45_IG, 0, + "G45/G43", NULL, &intel_i965_driver }, ++ { PCI_DEVICE_ID_INTEL_G41_HB, PCI_DEVICE_ID_INTEL_G41_IG, 0, ++ "G41", NULL, &intel_i965_driver }, + { 0, 0, 0, NULL, NULL, NULL } + }; + +@@ -2360,6 +2368,7 @@ + ID(PCI_DEVICE_ID_INTEL_IGD_E_HB), + ID(PCI_DEVICE_ID_INTEL_Q45_HB), + ID(PCI_DEVICE_ID_INTEL_G45_HB), ++ ID(PCI_DEVICE_ID_INTEL_G41_HB), + { } + }; + +--- kernel-power-2.6.28.orig/drivers/char/raw.c ++++ kernel-power-2.6.28/drivers/char/raw.c +@@ -90,6 +90,7 @@ + blkdev_put(bdev, filp->f_mode); + out: + mutex_unlock(&raw_mutex); ++ unlock_kernel(); + return err; + } + +--- kernel-power-2.6.28.orig/drivers/char/selection.c ++++ kernel-power-2.6.28/drivers/char/selection.c +@@ -268,7 +268,7 @@ + + /* Allocate a new buffer before freeing the old one ... */ + multiplier = use_unicode ? 3 : 1; /* chars can take up to 3 bytes */ +- bp = kmalloc((sel_end-sel_start)/2*multiplier+1, GFP_KERNEL); ++ bp = kmalloc(((sel_end-sel_start)/2+1)*multiplier, GFP_KERNEL); + if (!bp) { + printk(KERN_WARNING "selection: kmalloc() failed\n"); + clear_selection(); +--- kernel-power-2.6.28.orig/drivers/cpuidle/governors/menu.c ++++ kernel-power-2.6.28/drivers/cpuidle/governors/menu.c +@@ -16,12 +16,14 @@ + #include + + #define BREAK_FUZZ 4 /* 4 us */ ++#define PRED_HISTORY_PCT 50 + + struct menu_device { + int last_state_idx; + + unsigned int expected_us; + unsigned int predicted_us; ++ unsigned int current_predicted_us; + unsigned int last_measured_us; + unsigned int elapsed_us; + }; +@@ -53,6 +55,12 @@ + + device_not_idle = !pm_check_idle(); + ++ /* Recalculate predicted_us based on prediction_history_pct */ ++ data->predicted_us *= PRED_HISTORY_PCT; ++ data->predicted_us += (100 - PRED_HISTORY_PCT) * ++ data->current_predicted_us; ++ data->predicted_us /= 100; ++ + /* find the deepest idle state that satisfies our constraints */ + for (i = CPUIDLE_DRIVER_STATE_START + 1; i < dev->state_count; i++) { + struct cpuidle_state *s = &dev->states[i]; +@@ -104,7 +112,7 @@ + measured_us = -1; + + /* Predict time until next break event */ +- data->predicted_us = max(measured_us, data->last_measured_us); ++ data->current_predicted_us = max(measured_us, data->last_measured_us); + + if (last_idle_us + BREAK_FUZZ < + data->expected_us - target->exit_latency) { +--- kernel-power-2.6.28.orig/drivers/crypto/ixp4xx_crypto.c ++++ kernel-power-2.6.28/drivers/crypto/ixp4xx_crypto.c +@@ -101,6 +101,7 @@ + u32 phys_addr; + u32 __reserved[4]; + struct buffer_desc *next; ++ enum dma_data_direction dir; + }; + + struct crypt_ctl { +@@ -132,14 +133,10 @@ + struct ablk_ctx { + struct buffer_desc *src; + struct buffer_desc *dst; +- unsigned src_nents; +- unsigned dst_nents; + }; + + struct aead_ctx { + struct buffer_desc *buffer; +- unsigned short assoc_nents; +- unsigned short src_nents; + struct scatterlist ivlist; + /* used when the hmac is not on one sg entry */ + u8 *hmac_virt; +@@ -312,7 +309,7 @@ + } + } + +-static void free_buf_chain(struct buffer_desc *buf, u32 phys) ++static void free_buf_chain(struct device *dev, struct buffer_desc *buf,u32 phys) + { + while (buf) { + struct buffer_desc *buf1; +@@ -320,6 +317,7 @@ + + buf1 = buf->next; + phys1 = buf->phys_next; ++ dma_unmap_single(dev, buf->phys_next, buf->buf_len, buf->dir); + dma_pool_free(buffer_pool, buf, phys); + buf = buf1; + phys = phys1; +@@ -348,7 +346,6 @@ + struct crypt_ctl *crypt; + struct ixp_ctx *ctx; + int failed; +- enum dma_data_direction src_direction = DMA_BIDIRECTIONAL; + + failed = phys & 0x1 ? -EBADMSG : 0; + phys &= ~0x3; +@@ -358,13 +355,8 @@ + case CTL_FLAG_PERFORM_AEAD: { + struct aead_request *req = crypt->data.aead_req; + struct aead_ctx *req_ctx = aead_request_ctx(req); +- dma_unmap_sg(dev, req->assoc, req_ctx->assoc_nents, +- DMA_TO_DEVICE); +- dma_unmap_sg(dev, &req_ctx->ivlist, 1, DMA_BIDIRECTIONAL); +- dma_unmap_sg(dev, req->src, req_ctx->src_nents, +- DMA_BIDIRECTIONAL); + +- free_buf_chain(req_ctx->buffer, crypt->src_buf); ++ free_buf_chain(dev, req_ctx->buffer, crypt->src_buf); + if (req_ctx->hmac_virt) { + finish_scattered_hmac(crypt); + } +@@ -374,16 +366,11 @@ + case CTL_FLAG_PERFORM_ABLK: { + struct ablkcipher_request *req = crypt->data.ablk_req; + struct ablk_ctx *req_ctx = ablkcipher_request_ctx(req); +- int nents; ++ + if (req_ctx->dst) { +- nents = req_ctx->dst_nents; +- dma_unmap_sg(dev, req->dst, nents, DMA_FROM_DEVICE); +- free_buf_chain(req_ctx->dst, crypt->dst_buf); +- src_direction = DMA_TO_DEVICE; +- } +- nents = req_ctx->src_nents; +- dma_unmap_sg(dev, req->src, nents, src_direction); +- free_buf_chain(req_ctx->src, crypt->src_buf); ++ free_buf_chain(dev, req_ctx->dst, crypt->dst_buf); ++ } ++ free_buf_chain(dev, req_ctx->src, crypt->src_buf); + req->base.complete(&req->base, failed); + break; + } +@@ -748,56 +735,35 @@ + return 0; + } + +-static int count_sg(struct scatterlist *sg, int nbytes) +-{ +- int i; +- for (i = 0; nbytes > 0; i++, sg = sg_next(sg)) +- nbytes -= sg->length; +- return i; +-} +- +-static struct buffer_desc *chainup_buffers(struct scatterlist *sg, +- unsigned nbytes, struct buffer_desc *buf, gfp_t flags) ++static struct buffer_desc *chainup_buffers(struct device *dev, ++ struct scatterlist *sg, unsigned nbytes, ++ struct buffer_desc *buf, gfp_t flags, ++ enum dma_data_direction dir) + { +- int nents = 0; +- +- while (nbytes > 0) { ++ for (;nbytes > 0; sg = scatterwalk_sg_next(sg)) { ++ unsigned len = min(nbytes, sg->length); + struct buffer_desc *next_buf; + u32 next_buf_phys; +- unsigned len = min(nbytes, sg_dma_len(sg)); ++ void *ptr; + +- nents++; + nbytes -= len; +- if (!buf->phys_addr) { +- buf->phys_addr = sg_dma_address(sg); +- buf->buf_len = len; +- buf->next = NULL; +- buf->phys_next = 0; +- goto next; +- } +- /* Two consecutive chunks on one page may be handled by the old +- * buffer descriptor, increased by the length of the new one +- */ +- if (sg_dma_address(sg) == buf->phys_addr + buf->buf_len) { +- buf->buf_len += len; +- goto next; +- } ++ ptr = page_address(sg_page(sg)) + sg->offset; + next_buf = dma_pool_alloc(buffer_pool, flags, &next_buf_phys); +- if (!next_buf) +- return NULL; ++ if (!next_buf) { ++ buf = NULL; ++ break; ++ } ++ sg_dma_address(sg) = dma_map_single(dev, ptr, len, dir); + buf->next = next_buf; + buf->phys_next = next_buf_phys; +- + buf = next_buf; +- buf->next = NULL; +- buf->phys_next = 0; ++ + buf->phys_addr = sg_dma_address(sg); + buf->buf_len = len; +-next: +- if (nbytes > 0) { +- sg = sg_next(sg); +- } ++ buf->dir = dir; + } ++ buf->next = NULL; ++ buf->phys_next = 0; + return buf; + } + +@@ -858,12 +824,12 @@ + struct crypto_ablkcipher *tfm = crypto_ablkcipher_reqtfm(req); + struct ixp_ctx *ctx = crypto_ablkcipher_ctx(tfm); + unsigned ivsize = crypto_ablkcipher_ivsize(tfm); +- int ret = -ENOMEM; + struct ix_sa_dir *dir; + struct crypt_ctl *crypt; +- unsigned int nbytes = req->nbytes, nents; ++ unsigned int nbytes = req->nbytes; + enum dma_data_direction src_direction = DMA_BIDIRECTIONAL; + struct ablk_ctx *req_ctx = ablkcipher_request_ctx(req); ++ struct buffer_desc src_hook; + gfp_t flags = req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? + GFP_KERNEL : GFP_ATOMIC; + +@@ -876,7 +842,7 @@ + + crypt = get_crypt_desc(); + if (!crypt) +- return ret; ++ return -ENOMEM; + + crypt->data.ablk_req = req; + crypt->crypto_ctx = dir->npe_ctx_phys; +@@ -889,53 +855,41 @@ + BUG_ON(ivsize && !req->info); + memcpy(crypt->iv, req->info, ivsize); + if (req->src != req->dst) { ++ struct buffer_desc dst_hook; + crypt->mode |= NPE_OP_NOT_IN_PLACE; +- nents = count_sg(req->dst, nbytes); + /* This was never tested by Intel + * for more than one dst buffer, I think. */ +- BUG_ON(nents != 1); +- req_ctx->dst_nents = nents; +- dma_map_sg(dev, req->dst, nents, DMA_FROM_DEVICE); +- req_ctx->dst = dma_pool_alloc(buffer_pool, flags,&crypt->dst_buf); +- if (!req_ctx->dst) +- goto unmap_sg_dest; +- req_ctx->dst->phys_addr = 0; +- if (!chainup_buffers(req->dst, nbytes, req_ctx->dst, flags)) ++ BUG_ON(req->dst->length < nbytes); ++ req_ctx->dst = NULL; ++ if (!chainup_buffers(dev, req->dst, nbytes, &dst_hook, ++ flags, DMA_FROM_DEVICE)) + goto free_buf_dest; + src_direction = DMA_TO_DEVICE; ++ req_ctx->dst = dst_hook.next; ++ crypt->dst_buf = dst_hook.phys_next; + } else { + req_ctx->dst = NULL; +- req_ctx->dst_nents = 0; + } +- nents = count_sg(req->src, nbytes); +- req_ctx->src_nents = nents; +- dma_map_sg(dev, req->src, nents, src_direction); +- +- req_ctx->src = dma_pool_alloc(buffer_pool, flags, &crypt->src_buf); +- if (!req_ctx->src) +- goto unmap_sg_src; +- req_ctx->src->phys_addr = 0; +- if (!chainup_buffers(req->src, nbytes, req_ctx->src, flags)) ++ req_ctx->src = NULL; ++ if (!chainup_buffers(dev, req->src, nbytes, &src_hook, ++ flags, src_direction)) + goto free_buf_src; + ++ req_ctx->src = src_hook.next; ++ crypt->src_buf = src_hook.phys_next; + crypt->ctl_flags |= CTL_FLAG_PERFORM_ABLK; + qmgr_put_entry(SEND_QID, crypt_virt2phys(crypt)); + BUG_ON(qmgr_stat_overflow(SEND_QID)); + return -EINPROGRESS; + + free_buf_src: +- free_buf_chain(req_ctx->src, crypt->src_buf); +-unmap_sg_src: +- dma_unmap_sg(dev, req->src, req_ctx->src_nents, src_direction); ++ free_buf_chain(dev, req_ctx->src, crypt->src_buf); + free_buf_dest: + if (req->src != req->dst) { +- free_buf_chain(req_ctx->dst, crypt->dst_buf); +-unmap_sg_dest: +- dma_unmap_sg(dev, req->src, req_ctx->dst_nents, +- DMA_FROM_DEVICE); ++ free_buf_chain(dev, req_ctx->dst, crypt->dst_buf); + } + crypt->ctl_flags = CTL_FLAG_UNUSED; +- return ret; ++ return -ENOMEM; + } + + static int ablk_encrypt(struct ablkcipher_request *req) +@@ -983,7 +937,7 @@ + break; + + offset += sg->length; +- sg = sg_next(sg); ++ sg = scatterwalk_sg_next(sg); + } + return (start + nbytes > offset + sg->length); + } +@@ -995,11 +949,10 @@ + struct ixp_ctx *ctx = crypto_aead_ctx(tfm); + unsigned ivsize = crypto_aead_ivsize(tfm); + unsigned authsize = crypto_aead_authsize(tfm); +- int ret = -ENOMEM; + struct ix_sa_dir *dir; + struct crypt_ctl *crypt; +- unsigned int cryptlen, nents; +- struct buffer_desc *buf; ++ unsigned int cryptlen; ++ struct buffer_desc *buf, src_hook; + struct aead_ctx *req_ctx = aead_request_ctx(req); + gfp_t flags = req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP ? + GFP_KERNEL : GFP_ATOMIC; +@@ -1020,7 +973,7 @@ + } + crypt = get_crypt_desc(); + if (!crypt) +- return ret; ++ return -ENOMEM; + + crypt->data.aead_req = req; + crypt->crypto_ctx = dir->npe_ctx_phys; +@@ -1039,31 +992,27 @@ + BUG(); /* -ENOTSUP because of my lazyness */ + } + +- req_ctx->buffer = dma_pool_alloc(buffer_pool, flags, &crypt->src_buf); +- if (!req_ctx->buffer) +- goto out; +- req_ctx->buffer->phys_addr = 0; + /* ASSOC data */ +- nents = count_sg(req->assoc, req->assoclen); +- req_ctx->assoc_nents = nents; +- dma_map_sg(dev, req->assoc, nents, DMA_TO_DEVICE); +- buf = chainup_buffers(req->assoc, req->assoclen, req_ctx->buffer,flags); ++ buf = chainup_buffers(dev, req->assoc, req->assoclen, &src_hook, ++ flags, DMA_TO_DEVICE); ++ req_ctx->buffer = src_hook.next; ++ crypt->src_buf = src_hook.phys_next; + if (!buf) +- goto unmap_sg_assoc; ++ goto out; + /* IV */ + sg_init_table(&req_ctx->ivlist, 1); + sg_set_buf(&req_ctx->ivlist, iv, ivsize); +- dma_map_sg(dev, &req_ctx->ivlist, 1, DMA_BIDIRECTIONAL); +- buf = chainup_buffers(&req_ctx->ivlist, ivsize, buf, flags); ++ buf = chainup_buffers(dev, &req_ctx->ivlist, ivsize, buf, flags, ++ DMA_BIDIRECTIONAL); + if (!buf) +- goto unmap_sg_iv; ++ goto free_chain; + if (unlikely(hmac_inconsistent(req->src, cryptlen, authsize))) { + /* The 12 hmac bytes are scattered, + * we need to copy them into a safe buffer */ + req_ctx->hmac_virt = dma_pool_alloc(buffer_pool, flags, + &crypt->icv_rev_aes); + if (unlikely(!req_ctx->hmac_virt)) +- goto unmap_sg_iv; ++ goto free_chain; + if (!encrypt) { + scatterwalk_map_and_copy(req_ctx->hmac_virt, + req->src, cryptlen, authsize, 0); +@@ -1073,33 +1022,28 @@ + req_ctx->hmac_virt = NULL; + } + /* Crypt */ +- nents = count_sg(req->src, cryptlen + authsize); +- req_ctx->src_nents = nents; +- dma_map_sg(dev, req->src, nents, DMA_BIDIRECTIONAL); +- buf = chainup_buffers(req->src, cryptlen + authsize, buf, flags); ++ buf = chainup_buffers(dev, req->src, cryptlen + authsize, buf, flags, ++ DMA_BIDIRECTIONAL); + if (!buf) +- goto unmap_sg_src; ++ goto free_hmac_virt; + if (!req_ctx->hmac_virt) { + crypt->icv_rev_aes = buf->phys_addr + buf->buf_len - authsize; + } ++ + crypt->ctl_flags |= CTL_FLAG_PERFORM_AEAD; + qmgr_put_entry(SEND_QID, crypt_virt2phys(crypt)); + BUG_ON(qmgr_stat_overflow(SEND_QID)); + return -EINPROGRESS; +-unmap_sg_src: +- dma_unmap_sg(dev, req->src, req_ctx->src_nents, DMA_BIDIRECTIONAL); ++free_hmac_virt: + if (req_ctx->hmac_virt) { + dma_pool_free(buffer_pool, req_ctx->hmac_virt, + crypt->icv_rev_aes); + } +-unmap_sg_iv: +- dma_unmap_sg(dev, &req_ctx->ivlist, 1, DMA_BIDIRECTIONAL); +-unmap_sg_assoc: +- dma_unmap_sg(dev, req->assoc, req_ctx->assoc_nents, DMA_TO_DEVICE); +- free_buf_chain(req_ctx->buffer, crypt->src_buf); ++free_chain: ++ free_buf_chain(dev, req_ctx->buffer, crypt->src_buf); + out: + crypt->ctl_flags = CTL_FLAG_UNUSED; +- return ret; ++ return -ENOMEM; + } + + static int aead_setup(struct crypto_aead *tfm, unsigned int authsize) +--- kernel-power-2.6.28.orig/drivers/dma/ioat_dma.c ++++ kernel-power-2.6.28/drivers/dma/ioat_dma.c +@@ -1341,12 +1341,11 @@ + */ + #define IOAT_TEST_SIZE 2000 + +-DECLARE_COMPLETION(test_completion); + static void ioat_dma_test_callback(void *dma_async_param) + { +- printk(KERN_ERR "ioatdma: ioat_dma_test_callback(%p)\n", +- dma_async_param); +- complete(&test_completion); ++ struct completion *cmp = dma_async_param; ++ ++ complete(cmp); + } + + /** +@@ -1363,6 +1362,7 @@ + dma_addr_t dma_dest, dma_src; + dma_cookie_t cookie; + int err = 0; ++ struct completion cmp; + + src = kzalloc(sizeof(u8) * IOAT_TEST_SIZE, GFP_KERNEL); + if (!src) +@@ -1402,8 +1402,9 @@ + } + + async_tx_ack(tx); ++ init_completion(&cmp); + tx->callback = ioat_dma_test_callback; +- tx->callback_param = (void *)0x8086; ++ tx->callback_param = &cmp; + cookie = tx->tx_submit(tx); + if (cookie < 0) { + dev_err(&device->pdev->dev, +@@ -1413,7 +1414,7 @@ + } + device->common.device_issue_pending(dma_chan); + +- wait_for_completion_timeout(&test_completion, msecs_to_jiffies(3000)); ++ wait_for_completion_timeout(&cmp, msecs_to_jiffies(3000)); + + if (device->common.device_is_tx_complete(dma_chan, cookie, NULL, NULL) + != DMA_SUCCESS) { +--- kernel-power-2.6.28.orig/drivers/firewire/fw-ohci.c ++++ kernel-power-2.6.28/drivers/firewire/fw-ohci.c +@@ -226,7 +226,7 @@ + #define CONTEXT_DEAD 0x0800 + #define CONTEXT_ACTIVE 0x0400 + +-#define OHCI1394_MAX_AT_REQ_RETRIES 0x2 ++#define OHCI1394_MAX_AT_REQ_RETRIES 0xf + #define OHCI1394_MAX_AT_RESP_RETRIES 0x2 + #define OHCI1394_MAX_PHYS_RESP_RETRIES 0x8 + +--- kernel-power-2.6.28.orig/drivers/firewire/fw-sbp2.c ++++ kernel-power-2.6.28/drivers/firewire/fw-sbp2.c +@@ -357,15 +357,17 @@ + .model = ~0, + .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS, + }, +- + /* +- * There are iPods (2nd gen, 3rd gen) with model_id == 0, but +- * these iPods do not feature the read_capacity bug according +- * to one report. Read_capacity behaviour as well as model_id +- * could change due to Apple-supplied firmware updates though. ++ * iPod 2nd generation: needs 128k max transfer size workaround ++ * iPod 3rd generation: needs fix capacity workaround + */ +- +- /* iPod 4th generation. */ { ++ { ++ .firmware_revision = 0x0a2700, ++ .model = 0x000000, ++ .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS | ++ SBP2_WORKAROUND_FIX_CAPACITY, ++ }, ++ /* iPod 4th generation */ { + .firmware_revision = 0x0a2700, + .model = 0x000021, + .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, +@@ -1282,6 +1284,19 @@ + .id_table = sbp2_id_table, + }; + ++static void sbp2_unmap_scatterlist(struct device *card_device, ++ struct sbp2_command_orb *orb) ++{ ++ if (scsi_sg_count(orb->cmd)) ++ dma_unmap_sg(card_device, scsi_sglist(orb->cmd), ++ scsi_sg_count(orb->cmd), ++ orb->cmd->sc_data_direction); ++ ++ if (orb->request.misc & cpu_to_be32(COMMAND_ORB_PAGE_TABLE_PRESENT)) ++ dma_unmap_single(card_device, orb->page_table_bus, ++ sizeof(orb->page_table), DMA_TO_DEVICE); ++} ++ + static unsigned int + sbp2_status_to_sense_data(u8 *sbp2_status, u8 *sense_data) + { +@@ -1361,15 +1376,7 @@ + + dma_unmap_single(device->card->device, orb->base.request_bus, + sizeof(orb->request), DMA_TO_DEVICE); +- +- if (scsi_sg_count(orb->cmd) > 0) +- dma_unmap_sg(device->card->device, scsi_sglist(orb->cmd), +- scsi_sg_count(orb->cmd), +- orb->cmd->sc_data_direction); +- +- if (orb->page_table_bus != 0) +- dma_unmap_single(device->card->device, orb->page_table_bus, +- sizeof(orb->page_table), DMA_TO_DEVICE); ++ sbp2_unmap_scatterlist(device->card->device, orb); + + orb->cmd->result = result; + orb->done(orb->cmd); +@@ -1500,8 +1507,10 @@ + orb->base.request_bus = + dma_map_single(device->card->device, &orb->request, + sizeof(orb->request), DMA_TO_DEVICE); +- if (dma_mapping_error(device->card->device, orb->base.request_bus)) ++ if (dma_mapping_error(device->card->device, orb->base.request_bus)) { ++ sbp2_unmap_scatterlist(device->card->device, orb); + goto out; ++ } + + sbp2_send_orb(&orb->base, lu, lu->tgt->node_id, generation, + lu->command_block_agent_address + SBP2_ORB_POINTER); +--- kernel-power-2.6.28.orig/drivers/firmware/dell_rbu.c ++++ kernel-power-2.6.28/drivers/firmware/dell_rbu.c +@@ -576,7 +576,7 @@ + { + int size = 0; + if (!pos) +- size = sprintf(buffer, "%s\n", image_type); ++ size = scnprintf(buffer, count, "%s\n", image_type); + return size; + } + +@@ -648,7 +648,7 @@ + int size = 0; + if (!pos) { + spin_lock(&rbu_data.lock); +- size = sprintf(buffer, "%lu\n", rbu_data.packetsize); ++ size = scnprintf(buffer, count, "%lu\n", rbu_data.packetsize); + spin_unlock(&rbu_data.lock); + } + return size; +--- kernel-power-2.6.28.orig/drivers/gpu/drm/drm_agpsupport.c ++++ kernel-power-2.6.28/drivers/gpu/drm/drm_agpsupport.c +@@ -33,10 +33,11 @@ + + #include "drmP.h" + #include +-#include + + #if __OS_HAS_AGP + ++#include ++ + /** + * Get AGP information. + * +--- kernel-power-2.6.28.orig/drivers/gpu/drm/drm_irq.c ++++ kernel-power-2.6.28/drivers/gpu/drm/drm_irq.c +@@ -259,7 +259,8 @@ + */ + int drm_irq_uninstall(struct drm_device * dev) + { +- int irq_enabled; ++ unsigned long irqflags; ++ int irq_enabled, i; + + if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) + return -EINVAL; +@@ -269,6 +270,16 @@ + dev->irq_enabled = 0; + mutex_unlock(&dev->struct_mutex); + ++ /* ++ * Wake up any waiters so they don't hang. ++ */ ++ spin_lock_irqsave(&dev->vbl_lock, irqflags); ++ for (i = 0; i < dev->num_crtcs; i++) { ++ DRM_WAKEUP(&dev->vbl_queue[i]); ++ dev->vblank_enabled[i] = 0; ++ } ++ spin_unlock_irqrestore(&dev->vbl_lock, irqflags); ++ + if (!irq_enabled) + return -EINVAL; + +@@ -617,8 +628,9 @@ + DRM_DEBUG("waiting on vblank count %d, crtc %d\n", + vblwait->request.sequence, crtc); + DRM_WAIT_ON(ret, dev->vbl_queue[crtc], 3 * DRM_HZ, +- ((drm_vblank_count(dev, crtc) +- - vblwait->request.sequence) <= (1 << 23))); ++ (((drm_vblank_count(dev, crtc) - ++ vblwait->request.sequence) <= (1 << 23)) || ++ !dev->irq_enabled)); + + if (ret != -EINTR) { + struct timeval now; +--- kernel-power-2.6.28.orig/drivers/gpu/drm/i915/i915_gem.c ++++ kernel-power-2.6.28/drivers/gpu/drm/i915/i915_gem.c +@@ -1161,6 +1161,8 @@ + struct drm_mm_node *free_space; + int page_count, ret; + ++ if (dev_priv->mm.suspended) ++ return -EBUSY; + if (alignment == 0) + alignment = PAGE_SIZE; + if (alignment & (PAGE_SIZE - 1)) { +@@ -2029,13 +2031,15 @@ + + /* error other than GTT full, or we've already tried again */ + if (ret != -ENOMEM || pin_tries >= 1) { +- DRM_ERROR("Failed to pin buffers %d\n", ret); ++ if (ret != -ERESTARTSYS) ++ DRM_ERROR("Failed to pin buffers %d\n", ret); + goto err; + } + + /* unpin all of our buffers */ + for (i = 0; i < pinned; i++) + i915_gem_object_unpin(object_list[i]); ++ pinned = 0; + + /* evict everyone we can from the aperture */ + ret = i915_gem_evict_everything(dev); +@@ -2178,7 +2182,8 @@ + if (obj_priv->gtt_space == NULL) { + ret = i915_gem_object_bind_to_gtt(obj, alignment); + if (ret != 0) { +- DRM_ERROR("Failure to bind: %d", ret); ++ if (ret != -EBUSY && ret != -ERESTARTSYS) ++ DRM_ERROR("Failure to bind: %d", ret); + return ret; + } + } +@@ -2700,20 +2705,21 @@ + dev_priv->mm.wedged = 0; + } + +- ret = i915_gem_init_ringbuffer(dev); +- if (ret != 0) +- return ret; +- + dev_priv->mm.gtt_mapping = io_mapping_create_wc(dev->agp->base, + dev->agp->agp_info.aper_size + * 1024 * 1024); + + mutex_lock(&dev->struct_mutex); ++ dev_priv->mm.suspended = 0; ++ ++ ret = i915_gem_init_ringbuffer(dev); ++ if (ret != 0) ++ return ret; ++ + BUG_ON(!list_empty(&dev_priv->mm.active_list)); + BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); + BUG_ON(!list_empty(&dev_priv->mm.inactive_list)); + BUG_ON(!list_empty(&dev_priv->mm.request_list)); +- dev_priv->mm.suspended = 0; + mutex_unlock(&dev->struct_mutex); + + drm_irq_install(dev); +--- kernel-power-2.6.28.orig/drivers/gpu/drm/i915/i915_irq.c ++++ kernel-power-2.6.28/drivers/gpu/drm/i915/i915_irq.c +@@ -400,6 +400,12 @@ + { + drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; + unsigned long irqflags; ++ int pipeconf_reg = (pipe == 0) ? PIPEACONF : PIPEBCONF; ++ u32 pipeconf; ++ ++ pipeconf = I915_READ(pipeconf_reg); ++ if (!(pipeconf & PIPEACONF_ENABLE)) ++ return -EINVAL; + + spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); + if (IS_I965G(dev)) +--- kernel-power-2.6.28.orig/drivers/hid/hid-core.c ++++ kernel-power-2.6.28/drivers/hid/hid-core.c +@@ -1302,6 +1302,12 @@ + { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) }, + { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_SUNPLUS, USB_DEVICE_ID_SUNPLUS_WDESKTOP) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb300) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb651) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb654) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0005) }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0030) }, + + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, 0x030c) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT) }, +@@ -1529,10 +1535,6 @@ + { HID_USB_DEVICE(USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD3) }, + { HID_USB_DEVICE(USB_VENDOR_ID_TENX, USB_DEVICE_ID_TENX_IBUDDY1) }, + { HID_USB_DEVICE(USB_VENDOR_ID_TENX, USB_DEVICE_ID_TENX_IBUDDY2) }, +- { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb300) }, +- { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) }, +- { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb651) }, +- { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb654) }, + { HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LABPRO) }, + { HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_GOTEMP) }, + { HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_SKIP) }, +@@ -1543,8 +1545,6 @@ + { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_1_PHIDGETSERVO_20) }, + { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_8_8_4_IF_KIT) }, + { HID_USB_DEVICE(USB_VENDOR_ID_YEALINK, USB_DEVICE_ID_YEALINK_P1K_P4K_B2K) }, +- { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0005) }, +- { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0030) }, + { } + }; + +--- kernel-power-2.6.28.orig/drivers/hid/hid-microsoft.c ++++ kernel-power-2.6.28/drivers/hid/hid-microsoft.c +@@ -30,7 +30,7 @@ + #define MS_NOGET 0x10 + + /* +- * Microsoft Wireless Desktop Receiver (Model 1028) has several ++ * Microsoft Wireless Desktop Receiver (Model 1028) has + * 'Usage Min/Max' where it ought to have 'Physical Min/Max' + */ + static void ms_report_fixup(struct hid_device *hdev, __u8 *rdesc, +@@ -38,17 +38,12 @@ + { + unsigned long quirks = (unsigned long)hid_get_drvdata(hdev); + +- if ((quirks & MS_RDESC) && rsize == 571 && rdesc[284] == 0x19 && +- rdesc[286] == 0x2a && rdesc[304] == 0x19 && +- rdesc[306] == 0x29 && rdesc[352] == 0x1a && +- rdesc[355] == 0x2a && rdesc[557] == 0x19 && ++ if ((quirks & MS_RDESC) && rsize == 571 && rdesc[557] == 0x19 && + rdesc[559] == 0x29) { + dev_info(&hdev->dev, "fixing up Microsoft Wireless Receiver " + "Model 1028 report descriptor\n"); +- rdesc[284] = rdesc[304] = rdesc[557] = 0x35; +- rdesc[352] = 0x36; +- rdesc[286] = rdesc[355] = 0x46; +- rdesc[306] = rdesc[559] = 0x45; ++ rdesc[557] = 0x35; ++ rdesc[559] = 0x45; + } + } + +--- kernel-power-2.6.28.orig/drivers/hid/hid-sony.c ++++ kernel-power-2.6.28/drivers/hid/hid-sony.c +@@ -102,7 +102,7 @@ + } + + ret = sony_set_operational(hdev); +- if (ret) ++ if (ret < 0) + goto err_stop; + + return 0; +--- kernel-power-2.6.28.orig/drivers/hwmon/abituguru3.c ++++ kernel-power-2.6.28/drivers/hwmon/abituguru3.c +@@ -1153,7 +1153,7 @@ + + static inline int abituguru3_dmi_detect(void) + { +- return -ENODEV; ++ return 1; + } + + #endif /* CONFIG_DMI */ +--- kernel-power-2.6.28.orig/drivers/hwmon/f71882fg.c ++++ kernel-power-2.6.28/drivers/hwmon/f71882fg.c +@@ -837,7 +837,7 @@ + + devid = superio_inw(sioaddr, SIO_REG_MANID); + if (devid != SIO_FINTEK_ID) { +- printk(KERN_INFO DRVNAME ": Not a Fintek device\n"); ++ pr_debug(DRVNAME ": Not a Fintek device\n"); + goto exit; + } + +--- kernel-power-2.6.28.orig/drivers/hwmon/it87.c ++++ kernel-power-2.6.28/drivers/hwmon/it87.c +@@ -207,7 +207,7 @@ + + #define TEMP_TO_REG(val) (SENSORS_LIMIT(((val)<0?(((val)-500)/1000):\ + ((val)+500)/1000),-128,127)) +-#define TEMP_FROM_REG(val) (((val)>0x80?(val)-0x100:(val))*1000) ++#define TEMP_FROM_REG(val) ((val) * 1000) + + #define PWM_TO_REG(val) ((val) >> 1) + #define PWM_FROM_REG(val) (((val)&0x7f) << 1) +@@ -261,9 +261,9 @@ + u8 has_fan; /* Bitfield, fans enabled */ + u16 fan[5]; /* Register values, possibly combined */ + u16 fan_min[5]; /* Register values, possibly combined */ +- u8 temp[3]; /* Register value */ +- u8 temp_high[3]; /* Register value */ +- u8 temp_low[3]; /* Register value */ ++ s8 temp[3]; /* Register value */ ++ s8 temp_high[3]; /* Register value */ ++ s8 temp_low[3]; /* Register value */ + u8 sensor; /* Register value */ + u8 fan_div[3]; /* Register encoding, shifted right */ + u8 vid; /* Register encoding, combined */ +--- kernel-power-2.6.28.orig/drivers/i2c/busses/i2c-acorn.c ++++ kernel-power-2.6.28/drivers/i2c/busses/i2c-acorn.c +@@ -84,6 +84,7 @@ + + static struct i2c_adapter ioc_ops = { + .id = I2C_HW_B_IOC, ++ .nr = 0, + .algo_data = &ioc_data, + }; + +@@ -91,7 +92,7 @@ + { + force_ones = FORCE_ONES | SCL | SDA; + +- return i2c_bit_add_bus(&ioc_ops); ++ return i2c_bit_add_numbered_bus(&ioc_ops); + } + + module_init(i2c_ioc_init); +--- kernel-power-2.6.28.orig/drivers/i2c/busses/i2c-amd8111.c ++++ kernel-power-2.6.28/drivers/i2c/busses/i2c-amd8111.c +@@ -72,7 +72,7 @@ + { + int timeout = 500; + +- while (timeout-- && (inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_IBF)) ++ while ((inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_IBF) && --timeout) + udelay(1); + + if (!timeout) { +@@ -88,7 +88,7 @@ + { + int timeout = 500; + +- while (timeout-- && (~inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_OBF)) ++ while ((~inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_OBF) && --timeout) + udelay(1); + + if (!timeout) { +--- kernel-power-2.6.28.orig/drivers/i2c/busses/i2c-pxa.c ++++ kernel-power-2.6.28/drivers/i2c/busses/i2c-pxa.c +@@ -644,7 +644,7 @@ + + i2c_pxa_start_message(i2c); + +- while (timeout-- && i2c->msg_num > 0) { ++ while (i2c->msg_num > 0 && --timeout) { + i2c_pxa_handler(0, i2c); + udelay(10); + } +--- kernel-power-2.6.28.orig/drivers/i2c/i2c-core.c ++++ kernel-power-2.6.28/drivers/i2c/i2c-core.c +@@ -1831,7 +1831,8 @@ + case I2C_SMBUS_QUICK: + msg[0].len = 0; + /* Special case: The read/write field is used as data */ +- msg[0].flags = flags | (read_write==I2C_SMBUS_READ)?I2C_M_RD:0; ++ msg[0].flags = flags | (read_write == I2C_SMBUS_READ ? ++ I2C_M_RD : 0); + num = 1; + break; + case I2C_SMBUS_BYTE: +--- kernel-power-2.6.28.orig/drivers/ide/hpt366.c ++++ kernel-power-2.6.28/drivers/ide/hpt366.c +@@ -114,6 +114,8 @@ + * the register setting lists into the table indexed by the clock selected + * - set the correct hwif->ultra_mask for each individual chip + * - add Ultra and MW DMA mode filtering for the HPT37[24] based SATA cards ++ * - stop resetting HPT370's state machine before each DMA transfer as that has ++ * caused more harm than good + * Sergei Shtylyov, or + */ + +@@ -133,7 +135,7 @@ + #define DRV_NAME "hpt366" + + /* various tuning parameters */ +-#define HPT_RESET_STATE_ENGINE ++#undef HPT_RESET_STATE_ENGINE + #undef HPT_DELAY_INTERRUPT + #define HPT_SERIALIZE_IO 0 + +--- kernel-power-2.6.28.orig/drivers/ide/ide-cd.c ++++ kernel-power-2.6.28/drivers/ide/ide-cd.c +@@ -984,6 +984,9 @@ + if (blk_fs_request(rq)) { + ide_end_request(drive, 1, rq->nr_sectors); + return ide_stopped; ++ } else if (rq->cmd_type == REQ_TYPE_ATA_PC && !rq->bio) { ++ ide_end_request(drive, 1, 1); ++ return ide_stopped; + } + goto end_request; + } +--- kernel-power-2.6.28.orig/drivers/ide/ide-io.c ++++ kernel-power-2.6.28/drivers/ide/ide-io.c +@@ -577,11 +577,14 @@ + if (hwif->sg_mapped) /* needed by ide-scsi */ + return; + +- if (rq->cmd_type != REQ_TYPE_ATA_TASKFILE) { +- hwif->sg_nents = blk_rq_map_sg(drive->queue, rq, sg); +- } else { ++ if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) { + sg_init_one(sg, rq->buffer, rq->nr_sectors * SECTOR_SIZE); + hwif->sg_nents = 1; ++ } else if (!rq->bio) { ++ sg_init_one(sg, rq->data, rq->data_len); ++ hwif->sg_nents = 1; ++ } else { ++ hwif->sg_nents = blk_rq_map_sg(drive->queue, rq, sg); + } + } + +--- kernel-power-2.6.28.orig/drivers/ide/ide-iops.c ++++ kernel-power-2.6.28/drivers/ide/ide-iops.c +@@ -324,6 +324,8 @@ + u8 io_32bit = drive->io_32bit; + u8 mmio = (hwif->host_flags & IDE_HFLAG_MMIO) ? 1 : 0; + ++ len++; ++ + if (io_32bit) { + unsigned long uninitialized_var(flags); + +--- kernel-power-2.6.28.orig/drivers/ide/it821x.c ++++ kernel-power-2.6.28/drivers/ide/it821x.c +@@ -68,6 +68,8 @@ + + #define DRV_NAME "it821x" + ++#define QUIRK_VORTEX86 1 ++ + struct it821x_dev + { + unsigned int smart:1, /* Are we in smart raid mode */ +@@ -79,6 +81,7 @@ + u16 pio[2]; /* Cached PIO values */ + u16 mwdma[2]; /* Cached MWDMA values */ + u16 udma[2]; /* Cached UDMA values (per drive) */ ++ u16 quirks; + }; + + #define ATA_66 0 +@@ -580,6 +583,12 @@ + + hwif->ultra_mask = ATA_UDMA6; + hwif->mwdma_mask = ATA_MWDMA2; ++ ++ /* Vortex86SX quirk: prevent Ultra-DMA mode to fix BadCRC issue */ ++ if (idev->quirks & QUIRK_VORTEX86) { ++ if (dev->revision == 0x11) ++ hwif->ultra_mask = 0; ++ } + } + + static void it8212_disable_raid(struct pci_dev *dev) +@@ -652,6 +661,8 @@ + return -ENOMEM; + } + ++ itdevs->quirks = id->driver_data; ++ + rc = ide_pci_init_one(dev, &it821x_chipset, itdevs); + if (rc) + kfree(itdevs); +@@ -671,6 +682,7 @@ + static const struct pci_device_id it821x_pci_tbl[] = { + { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8211), 0 }, + { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8212), 0 }, ++ { PCI_VDEVICE(RDC, PCI_DEVICE_ID_RDC_D1010), QUIRK_VORTEX86 }, + { 0, }, + }; + +--- kernel-power-2.6.28.orig/drivers/ide/tx4938ide.c ++++ kernel-power-2.6.28/drivers/ide/tx4938ide.c +@@ -181,7 +181,7 @@ + + while (count--) + *ptr++ = cpu_to_le16(__raw_readw((void __iomem *)port)); +- __ide_flush_dcache_range((unsigned long)buf, count * 2); ++ __ide_flush_dcache_range((unsigned long)buf, roundup(len, 2)); + } + + static void tx4938ide_output_data_swap(ide_drive_t *drive, struct request *rq, +@@ -195,7 +195,7 @@ + __raw_writew(le16_to_cpu(*ptr), (void __iomem *)port); + ptr++; + } +- __ide_flush_dcache_range((unsigned long)buf, count * 2); ++ __ide_flush_dcache_range((unsigned long)buf, roundup(len, 2)); + } + + static const struct ide_tp_ops tx4938ide_tp_ops = { +--- kernel-power-2.6.28.orig/drivers/ide/tx4939ide.c ++++ kernel-power-2.6.28/drivers/ide/tx4939ide.c +@@ -259,6 +259,12 @@ + bcount = 0x10000 - (cur_addr & 0xffff); + if (bcount > cur_len) + bcount = cur_len; ++ /* ++ * This workaround for zero count seems required. ++ * (standard ide_build_dmatable do it too) ++ */ ++ if ((bcount & 0xffff) == 0x0000) ++ bcount = 0x8000; + *table++ = bcount & 0xffff; + *table++ = cur_addr; + cur_addr += bcount; +@@ -558,7 +564,7 @@ + + while (count--) + *ptr++ = cpu_to_le16(__raw_readw((void __iomem *)port)); +- __ide_flush_dcache_range((unsigned long)buf, count * 2); ++ __ide_flush_dcache_range((unsigned long)buf, roundup(len, 2)); + } + + static void tx4939ide_output_data_swap(ide_drive_t *drive, struct request *rq, +@@ -572,7 +578,7 @@ + __raw_writew(le16_to_cpu(*ptr), (void __iomem *)port); + ptr++; + } +- __ide_flush_dcache_range((unsigned long)buf, count * 2); ++ __ide_flush_dcache_range((unsigned long)buf, roundup(len, 2)); + } + + static const struct ide_tp_ops tx4939ide_tp_ops = { +--- kernel-power-2.6.28.orig/drivers/ieee1394/ohci1394.h ++++ kernel-power-2.6.28/drivers/ieee1394/ohci1394.h +@@ -26,7 +26,7 @@ + + #define OHCI1394_DRIVER_NAME "ohci1394" + +-#define OHCI1394_MAX_AT_REQ_RETRIES 0x2 ++#define OHCI1394_MAX_AT_REQ_RETRIES 0xf + #define OHCI1394_MAX_AT_RESP_RETRIES 0x2 + #define OHCI1394_MAX_PHYS_RESP_RETRIES 0x8 + #define OHCI1394_MAX_SELF_ID_ERRORS 16 +--- kernel-power-2.6.28.orig/drivers/ieee1394/sbp2.c ++++ kernel-power-2.6.28/drivers/ieee1394/sbp2.c +@@ -395,6 +395,16 @@ + .model_id = SBP2_ROM_VALUE_WILDCARD, + .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS, + }, ++ /* ++ * iPod 2nd generation: needs 128k max transfer size workaround ++ * iPod 3rd generation: needs fix capacity workaround ++ */ ++ { ++ .firmware_revision = 0x0a2700, ++ .model_id = 0x000000, ++ .workarounds = SBP2_WORKAROUND_128K_MAX_TRANS | ++ SBP2_WORKAROUND_FIX_CAPACITY, ++ }, + /* iPod 4th generation */ { + .firmware_revision = 0x0a2700, + .model_id = 0x000021, +--- kernel-power-2.6.28.orig/drivers/infiniband/hw/nes/nes_cm.c ++++ kernel-power-2.6.28/drivers/infiniband/hw/nes/nes_cm.c +@@ -2495,12 +2495,14 @@ + int ret = 0; + struct nes_vnic *nesvnic; + struct nes_device *nesdev; ++ struct nes_ib_device *nesibdev; + + nesvnic = to_nesvnic(nesqp->ibqp.device); + if (!nesvnic) + return -EINVAL; + + nesdev = nesvnic->nesdev; ++ nesibdev = nesvnic->nesibdev; + + nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n", + atomic_read(&nesvnic->netdev->refcnt)); +@@ -2512,6 +2514,8 @@ + } else { + /* Need to free the Last Streaming Mode Message */ + if (nesqp->ietf_frame) { ++ if (nesqp->lsmm_mr) ++ nesibdev->ibdev.dereg_mr(nesqp->lsmm_mr); + pci_free_consistent(nesdev->pcidev, + nesqp->private_data_len+sizeof(struct ietf_mpa_frame), + nesqp->ietf_frame, nesqp->ietf_frame_pbase); +@@ -2545,6 +2549,10 @@ + struct iw_cm_event cm_event; + struct nes_hw_qp_wqe *wqe; + struct nes_v4_quad nes_quad; ++ struct nes_ib_device *nesibdev; ++ struct ib_mr *ibmr = NULL; ++ struct ib_phys_buf ibphysbuf; ++ struct nes_pd *nespd; + u32 crc_value; + int ret; + +@@ -2605,6 +2613,26 @@ + if (cm_id->remote_addr.sin_addr.s_addr != + cm_id->local_addr.sin_addr.s_addr) { + u64temp = (unsigned long)nesqp; ++ nesibdev = nesvnic->nesibdev; ++ nespd = nesqp->nespd; ++ ibphysbuf.addr = nesqp->ietf_frame_pbase; ++ ibphysbuf.size = conn_param->private_data_len + ++ sizeof(struct ietf_mpa_frame); ++ ibmr = nesibdev->ibdev.reg_phys_mr((struct ib_pd *)nespd, ++ &ibphysbuf, 1, ++ IB_ACCESS_LOCAL_WRITE, ++ (u64 *)&nesqp->ietf_frame); ++ if (!ibmr) { ++ nes_debug(NES_DBG_CM, "Unable to register memory region" ++ "for lSMM for cm_node = %p \n", ++ cm_node); ++ return -ENOMEM; ++ } ++ ++ ibmr->pd = &nespd->ibpd; ++ ibmr->device = nespd->ibpd.device; ++ nesqp->lsmm_mr = ibmr; ++ + u64temp |= NES_SW_CONTEXT_ALIGN>>1; + set_wqe_64bit_value(wqe->wqe_words, + NES_IWARP_SQ_WQE_COMP_CTX_LOW_IDX, +@@ -2615,14 +2643,13 @@ + wqe->wqe_words[NES_IWARP_SQ_WQE_TOTAL_PAYLOAD_IDX] = + cpu_to_le32(conn_param->private_data_len + + sizeof(struct ietf_mpa_frame)); +- wqe->wqe_words[NES_IWARP_SQ_WQE_FRAG0_LOW_IDX] = +- cpu_to_le32((u32)nesqp->ietf_frame_pbase); +- wqe->wqe_words[NES_IWARP_SQ_WQE_FRAG0_HIGH_IDX] = +- cpu_to_le32((u32)((u64)nesqp->ietf_frame_pbase >> 32)); ++ set_wqe_64bit_value(wqe->wqe_words, ++ NES_IWARP_SQ_WQE_FRAG0_LOW_IDX, ++ (u64)nesqp->ietf_frame); + wqe->wqe_words[NES_IWARP_SQ_WQE_LENGTH0_IDX] = + cpu_to_le32(conn_param->private_data_len + + sizeof(struct ietf_mpa_frame)); +- wqe->wqe_words[NES_IWARP_SQ_WQE_STAG0_IDX] = 0; ++ wqe->wqe_words[NES_IWARP_SQ_WQE_STAG0_IDX] = ibmr->lkey; + + nesqp->nesqp_context->ird_ord_sizes |= + cpu_to_le32(NES_QPCONTEXT_ORDIRD_LSMM_PRESENT | +--- kernel-power-2.6.28.orig/drivers/infiniband/hw/nes/nes_verbs.c ++++ kernel-power-2.6.28/drivers/infiniband/hw/nes/nes_verbs.c +@@ -1360,8 +1360,10 @@ + NES_QPCONTEXT_MISC_RQ_SIZE_SHIFT); + nesqp->nesqp_context->misc |= cpu_to_le32((u32)nesqp->hwqp.sq_encoded_size << + NES_QPCONTEXT_MISC_SQ_SIZE_SHIFT); ++ if (!udata) { + nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_PRIV_EN); + nesqp->nesqp_context->misc |= cpu_to_le32(NES_QPCONTEXT_MISC_FAST_REGISTER_EN); ++ } + nesqp->nesqp_context->cqs = cpu_to_le32(nesqp->nesscq->hw_cq.cq_number + + ((u32)nesqp->nesrcq->hw_cq.cq_number << 16)); + u64temp = (u64)nesqp->hwqp.sq_pbase; +--- kernel-power-2.6.28.orig/drivers/infiniband/hw/nes/nes_verbs.h ++++ kernel-power-2.6.28/drivers/infiniband/hw/nes/nes_verbs.h +@@ -134,6 +134,7 @@ + struct ietf_mpa_frame *ietf_frame; + dma_addr_t ietf_frame_pbase; + wait_queue_head_t state_waitq; ++ struct ib_mr *lsmm_mr; + unsigned long socket; + struct nes_hw_qp hwqp; + struct work_struct work; +--- kernel-power-2.6.28.orig/drivers/input/gameport/gameport.c ++++ kernel-power-2.6.28/drivers/input/gameport/gameport.c +@@ -50,9 +50,8 @@ + + static struct bus_type gameport_bus; + +-static void gameport_add_driver(struct gameport_driver *drv); + static void gameport_add_port(struct gameport *gameport); +-static void gameport_destroy_port(struct gameport *gameport); ++static void gameport_attach_driver(struct gameport_driver *drv); + static void gameport_reconnect_port(struct gameport *gameport); + static void gameport_disconnect_port(struct gameport *gameport); + +@@ -230,7 +229,6 @@ + + enum gameport_event_type { + GAMEPORT_REGISTER_PORT, +- GAMEPORT_REGISTER_DRIVER, + GAMEPORT_ATTACH_DRIVER, + }; + +@@ -374,8 +372,8 @@ + gameport_add_port(event->object); + break; + +- case GAMEPORT_REGISTER_DRIVER: +- gameport_add_driver(event->object); ++ case GAMEPORT_ATTACH_DRIVER: ++ gameport_attach_driver(event->object); + break; + + default: +@@ -707,14 +705,14 @@ + return 0; + } + +-static void gameport_add_driver(struct gameport_driver *drv) ++static void gameport_attach_driver(struct gameport_driver *drv) + { + int error; + +- error = driver_register(&drv->driver); ++ error = driver_attach(&drv->driver); + if (error) + printk(KERN_ERR +- "gameport: driver_register() failed for %s, error: %d\n", ++ "gameport: driver_attach() failed for %s, error: %d\n", + drv->driver.name, error); + } + +--- kernel-power-2.6.28.orig/drivers/input/keyboard/atkbd.c ++++ kernel-power-2.6.28/drivers/input/keyboard/atkbd.c +@@ -884,6 +884,22 @@ + } + + /* ++ * Samsung NC10 with Fn+F? key release not working ++ */ ++static void atkbd_samsung_keymap_fixup(struct atkbd *atkbd) ++{ ++ const unsigned int forced_release_keys[] = { ++ 0x82, 0x83, 0x84, 0x86, 0x88, 0x89, 0xb3, 0xf7, 0xf9, ++ }; ++ int i; ++ ++ if (atkbd->set == 2) ++ for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++) ++ __set_bit(forced_release_keys[i], ++ atkbd->force_release_mask); ++} ++ ++/* + * atkbd_set_keycode_table() initializes keyboard's keycode table + * according to the selected scancode set + */ +@@ -1493,6 +1509,15 @@ + .callback = atkbd_setup_fixup, + .driver_data = atkbd_inventec_keymap_fixup, + }, ++ { ++ .ident = "Samsung NC10", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "NC10"), ++ }, ++ .callback = atkbd_setup_fixup, ++ .driver_data = atkbd_samsung_keymap_fixup, ++ }, + { } + }; + +--- kernel-power-2.6.28.orig/drivers/isdn/gigaset/bas-gigaset.c ++++ kernel-power-2.6.28/drivers/isdn/gigaset/bas-gigaset.c +@@ -46,6 +46,9 @@ + /* length limit according to Siemens 3070usb-protokoll.doc ch. 2.1 */ + #define IF_WRITEBUF 264 + ++/* interrupt pipe message size according to ibid. ch. 2.2 */ ++#define IP_MSGSIZE 3 ++ + /* Values for the Gigaset 307x */ + #define USB_GIGA_VENDOR_ID 0x0681 + #define USB_3070_PRODUCT_ID 0x0001 +@@ -110,7 +113,7 @@ + unsigned char *rcvbuf; /* AT reply receive buffer */ + + struct urb *urb_int_in; /* URB for interrupt pipe */ +- unsigned char int_in_buf[3]; ++ unsigned char *int_in_buf; + + spinlock_t lock; /* locks all following */ + int basstate; /* bitmap (BS_*) */ +@@ -657,7 +660,7 @@ + } + + /* drop incomplete packets even if the missing bytes wouldn't matter */ +- if (unlikely(urb->actual_length < 3)) { ++ if (unlikely(urb->actual_length < IP_MSGSIZE)) { + dev_warn(cs->dev, "incomplete interrupt packet (%d bytes)\n", + urb->actual_length); + goto resubmit; +@@ -2127,6 +2130,7 @@ + static void gigaset_freecshw(struct cardstate *cs) + { + /* timers, URBs and rcvbuf are disposed of in disconnect */ ++ kfree(cs->hw.bas->int_in_buf); + kfree(cs->hw.bas); + cs->hw.bas = NULL; + } +@@ -2232,6 +2236,12 @@ + } + hostif = interface->cur_altsetting; + } ++ ucs->int_in_buf = kmalloc(IP_MSGSIZE, GFP_KERNEL); ++ if (!ucs->int_in_buf) { ++ kfree(ucs); ++ pr_err("out of memory\n"); ++ return 0; ++ } + + /* Reject application specific interfaces + */ +@@ -2290,7 +2300,7 @@ + usb_fill_int_urb(ucs->urb_int_in, udev, + usb_rcvintpipe(udev, + (endpoint->bEndpointAddress) & 0x0f), +- ucs->int_in_buf, 3, read_int_callback, cs, ++ ucs->int_in_buf, IP_MSGSIZE, read_int_callback, cs, + endpoint->bInterval); + if ((rc = usb_submit_urb(ucs->urb_int_in, GFP_KERNEL)) != 0) { + dev_err(cs->dev, "could not submit interrupt URB: %s\n", +--- kernel-power-2.6.28.orig/drivers/md/bitmap.c ++++ kernel-power-2.6.28/drivers/md/bitmap.c +@@ -964,9 +964,11 @@ + */ + page = bitmap->sb_page; + offset = sizeof(bitmap_super_t); +- read_sb_page(bitmap->mddev, bitmap->offset, +- page, +- index, count); ++ if (!file) ++ read_sb_page(bitmap->mddev, ++ bitmap->offset, ++ page, ++ index, count); + } else if (file) { + page = read_page(file, index, bitmap, count); + offset = 0; +--- kernel-power-2.6.28.orig/drivers/md/dm-crypt.c ++++ kernel-power-2.6.28/drivers/md/dm-crypt.c +@@ -60,6 +60,7 @@ + }; + + struct dm_crypt_request { ++ struct convert_context *ctx; + struct scatterlist sg_in; + struct scatterlist sg_out; + }; +@@ -335,6 +336,18 @@ + init_completion(&ctx->restart); + } + ++static struct dm_crypt_request *dmreq_of_req(struct crypt_config *cc, ++ struct ablkcipher_request *req) ++{ ++ return (struct dm_crypt_request *)((char *)req + cc->dmreq_start); ++} ++ ++static struct ablkcipher_request *req_of_dmreq(struct crypt_config *cc, ++ struct dm_crypt_request *dmreq) ++{ ++ return (struct ablkcipher_request *)((char *)dmreq - cc->dmreq_start); ++} ++ + static int crypt_convert_block(struct crypt_config *cc, + struct convert_context *ctx, + struct ablkcipher_request *req) +@@ -345,10 +358,11 @@ + u8 *iv; + int r = 0; + +- dmreq = (struct dm_crypt_request *)((char *)req + cc->dmreq_start); ++ dmreq = dmreq_of_req(cc, req); + iv = (u8 *)ALIGN((unsigned long)(dmreq + 1), + crypto_ablkcipher_alignmask(cc->tfm) + 1); + ++ dmreq->ctx = ctx; + sg_init_table(&dmreq->sg_in, 1); + sg_set_page(&dmreq->sg_in, bv_in->bv_page, 1 << SECTOR_SHIFT, + bv_in->bv_offset + ctx->offset_in); +@@ -395,8 +409,9 @@ + cc->req = mempool_alloc(cc->req_pool, GFP_NOIO); + ablkcipher_request_set_tfm(cc->req, cc->tfm); + ablkcipher_request_set_callback(cc->req, CRYPTO_TFM_REQ_MAY_BACKLOG | +- CRYPTO_TFM_REQ_MAY_SLEEP, +- kcryptd_async_done, ctx); ++ CRYPTO_TFM_REQ_MAY_SLEEP, ++ kcryptd_async_done, ++ dmreq_of_req(cc, cc->req)); + } + + /* +@@ -553,19 +568,22 @@ + static void crypt_dec_pending(struct dm_crypt_io *io) + { + struct crypt_config *cc = io->target->private; ++ struct bio *base_bio = io->base_bio; ++ struct dm_crypt_io *base_io = io->base_io; ++ int error = io->error; + + if (!atomic_dec_and_test(&io->pending)) + return; + +- if (likely(!io->base_io)) +- bio_endio(io->base_bio, io->error); ++ mempool_free(io, cc->io_pool); ++ ++ if (likely(!base_io)) ++ bio_endio(base_bio, error); + else { +- if (io->error && !io->base_io->error) +- io->base_io->error = io->error; +- crypt_dec_pending(io->base_io); ++ if (error && !base_io->error) ++ base_io->error = error; ++ crypt_dec_pending(base_io); + } +- +- mempool_free(io, cc->io_pool); + } + + /* +@@ -821,7 +839,8 @@ + static void kcryptd_async_done(struct crypto_async_request *async_req, + int error) + { +- struct convert_context *ctx = async_req->data; ++ struct dm_crypt_request *dmreq = async_req->data; ++ struct convert_context *ctx = dmreq->ctx; + struct dm_crypt_io *io = container_of(ctx, struct dm_crypt_io, ctx); + struct crypt_config *cc = io->target->private; + +@@ -830,7 +849,7 @@ + return; + } + +- mempool_free(ablkcipher_request_cast(async_req), cc->req_pool); ++ mempool_free(req_of_dmreq(cc, dmreq), cc->req_pool); + + if (!atomic_dec_and_test(&ctx->pending)) + return; +--- kernel-power-2.6.28.orig/drivers/md/dm-io.c ++++ kernel-power-2.6.28/drivers/md/dm-io.c +@@ -292,6 +292,8 @@ + (PAGE_SIZE >> SECTOR_SHIFT)); + num_bvecs = 1 + min_t(int, bio_get_nr_vecs(where->bdev), + num_bvecs); ++ if (unlikely(num_bvecs > BIO_MAX_PAGES)) ++ num_bvecs = BIO_MAX_PAGES; + bio = bio_alloc_bioset(GFP_NOIO, num_bvecs, io->client->bios); + bio->bi_sector = where->sector + (where->count - remaining); + bio->bi_bdev = where->bdev; +--- kernel-power-2.6.28.orig/drivers/md/dm-ioctl.c ++++ kernel-power-2.6.28/drivers/md/dm-ioctl.c +@@ -704,7 +704,8 @@ + char *new_name = (char *) param + param->data_start; + + if (new_name < param->data || +- invalid_str(new_name, (void *) param + param_size)) { ++ invalid_str(new_name, (void *) param + param_size) || ++ strlen(new_name) > DM_NAME_LEN - 1) { + DMWARN("Invalid new logical volume name supplied."); + return -EINVAL; + } +--- kernel-power-2.6.28.orig/drivers/md/dm-log.c ++++ kernel-power-2.6.28/drivers/md/dm-log.c +@@ -467,6 +467,7 @@ + lc->disk_header = vmalloc(buf_size); + if (!lc->disk_header) { + DMWARN("couldn't allocate disk log buffer"); ++ dm_io_client_destroy(lc->io_req.client); + kfree(lc); + return -ENOMEM; + } +@@ -482,6 +483,8 @@ + DMWARN("couldn't allocate sync bitset"); + if (!dev) + vfree(lc->clean_bits); ++ else ++ dm_io_client_destroy(lc->io_req.client); + vfree(lc->disk_header); + kfree(lc); + return -ENOMEM; +@@ -495,6 +498,8 @@ + vfree(lc->sync_bits); + if (!dev) + vfree(lc->clean_bits); ++ else ++ dm_io_client_destroy(lc->io_req.client); + vfree(lc->disk_header); + kfree(lc); + return -ENOMEM; +--- kernel-power-2.6.28.orig/drivers/md/dm-raid1.c ++++ kernel-power-2.6.28/drivers/md/dm-raid1.c +@@ -197,9 +197,6 @@ + struct mirror_set *ms = m->ms; + struct mirror *new; + +- if (!errors_handled(ms)) +- return; +- + /* + * error_count is used for nothing more than a + * simple way to tell if a device has encountered +@@ -210,6 +207,9 @@ + if (test_and_set_bit(error_type, &m->error_type)) + return; + ++ if (!errors_handled(ms)) ++ return; ++ + if (m != get_default_mirror(ms)) + goto out; + +--- kernel-power-2.6.28.orig/drivers/md/dm.c ++++ kernel-power-2.6.28/drivers/md/dm.c +@@ -480,9 +480,12 @@ + static void dec_pending(struct dm_io *io, int error) + { + unsigned long flags; ++ int io_error; ++ struct bio *bio; ++ struct mapped_device *md = io->md; + + /* Push-back supersedes any I/O errors */ +- if (error && !(io->error > 0 && __noflush_suspending(io->md))) ++ if (error && !(io->error > 0 && __noflush_suspending(md))) + io->error = error; + + if (atomic_dec_and_test(&io->io_count)) { +@@ -492,25 +495,28 @@ + * This must be handled before the sleeper on + * suspend queue merges the pushback list. + */ +- spin_lock_irqsave(&io->md->pushback_lock, flags); +- if (__noflush_suspending(io->md)) +- bio_list_add(&io->md->pushback, io->bio); ++ spin_lock_irqsave(&md->pushback_lock, flags); ++ if (__noflush_suspending(md)) ++ bio_list_add(&md->pushback, io->bio); + else + /* noflush suspend was interrupted. */ + io->error = -EIO; +- spin_unlock_irqrestore(&io->md->pushback_lock, flags); ++ spin_unlock_irqrestore(&md->pushback_lock, flags); + } + + end_io_acct(io); + +- if (io->error != DM_ENDIO_REQUEUE) { +- blk_add_trace_bio(io->md->queue, io->bio, ++ io_error = io->error; ++ bio = io->bio; ++ ++ free_io(md, io); ++ ++ if (io_error != DM_ENDIO_REQUEUE) { ++ blk_add_trace_bio(md->queue, io->bio, + BLK_TA_COMPLETE); + +- bio_endio(io->bio, io->error); ++ bio_endio(bio, io_error); + } +- +- free_io(io->md, io); + } + } + +@@ -518,6 +524,7 @@ + { + int r = 0; + struct dm_target_io *tio = bio->bi_private; ++ struct dm_io *io = tio->io; + struct mapped_device *md = tio->io->md; + dm_endio_fn endio = tio->ti->type->end_io; + +@@ -541,15 +548,14 @@ + } + } + +- dec_pending(tio->io, error); +- + /* + * Store md for cleanup instead of tio which is about to get freed. + */ + bio->bi_private = md->bs; + +- bio_put(bio); + free_tio(md, tio); ++ bio_put(bio); ++ dec_pending(io, error); + } + + static sector_t max_io_len(struct mapped_device *md, +--- kernel-power-2.6.28.orig/drivers/md/linear.c ++++ kernel-power-2.6.28/drivers/md/linear.c +@@ -25,13 +25,13 @@ + { + dev_info_t *hash; + linear_conf_t *conf = mddev_to_conf(mddev); ++ sector_t idx = sector >> conf->sector_shift; + + /* + * sector_div(a,b) returns the remainer and sets a to a/b + */ +- sector >>= conf->sector_shift; +- (void)sector_div(sector, conf->spacing); +- hash = conf->hash_table[sector]; ++ (void)sector_div(idx, conf->spacing); ++ hash = conf->hash_table[idx]; + + while (sector >= hash->num_sectors + hash->start_sector) + hash++; +--- kernel-power-2.6.28.orig/drivers/md/md.c ++++ kernel-power-2.6.28/drivers/md/md.c +@@ -1447,6 +1447,11 @@ + if (find_rdev_nr(mddev, rdev->desc_nr)) + return -EBUSY; + } ++ if (mddev->max_disks && rdev->desc_nr >= mddev->max_disks) { ++ printk(KERN_WARNING "md: %s: array is limited to %d devices\n", ++ mdname(mddev), mddev->max_disks); ++ return -EBUSY; ++ } + bdevname(rdev->bdev,b); + while ( (s=strchr(b, '/')) != NULL) + *s = '!'; +@@ -2355,6 +2360,15 @@ + + i = 0; + rdev_for_each(rdev, tmp, mddev) { ++ if (rdev->desc_nr >= mddev->max_disks || ++ i > mddev->max_disks) { ++ printk(KERN_WARNING ++ "md: %s: %s: only %d devices permitted\n", ++ mdname(mddev), bdevname(rdev->bdev, b), ++ mddev->max_disks); ++ kick_rdev_from_array(rdev); ++ continue; ++ } + if (rdev != freshest) + if (super_types[mddev->major_version]. + validate_super(mddev, rdev)) { +@@ -3680,6 +3694,10 @@ + return err; + } + if (mddev->pers->sync_request) { ++ /* wait for any previously scheduled redundancy groups ++ * to be removed ++ */ ++ flush_scheduled_work(); + if (sysfs_create_group(&mddev->kobj, &md_redundancy_group)) + printk(KERN_WARNING + "md: cannot register extra attributes for %s\n", +@@ -3810,6 +3828,14 @@ + spin_unlock(&inode->i_lock); + } + ++ ++static void sysfs_delayed_rm(struct work_struct *ws) ++{ ++ mddev_t *mddev = container_of(ws, mddev_t, del_work); ++ ++ sysfs_remove_group(&mddev->kobj, &md_redundancy_group); ++} ++ + /* mode: + * 0 - completely stop and dis-assemble array + * 1 - switch to readonly +@@ -3819,6 +3845,7 @@ + { + int err = 0; + struct gendisk *disk = mddev->gendisk; ++ int remove_group = 0; + + if (atomic_read(&mddev->openers) > is_open) { + printk("md: %s still in use.\n",mdname(mddev)); +@@ -3854,10 +3881,9 @@ + mddev->queue->merge_bvec_fn = NULL; + mddev->queue->unplug_fn = NULL; + mddev->queue->backing_dev_info.congested_fn = NULL; +- if (mddev->pers->sync_request) +- sysfs_remove_group(&mddev->kobj, &md_redundancy_group); +- + module_put(mddev->pers->owner); ++ if (mddev->pers->sync_request) ++ remove_group = 1; + mddev->pers = NULL; + /* tell userspace to handle 'inactive' */ + sysfs_notify_dirent(mddev->sysfs_state); +@@ -3905,6 +3931,15 @@ + /* make sure all md_delayed_delete calls have finished */ + flush_scheduled_work(); + ++ /* we can't wait for group removal under mddev_lock as ++ * threads holding the group 'active' need to acquire ++ * mddev_lock before going inactive ++ */ ++ if (remove_group) { ++ INIT_WORK(&mddev->del_work, sysfs_delayed_rm); ++ schedule_work(&mddev->del_work); ++ } ++ + export_array(mddev); + + mddev->array_sectors = 0; +@@ -4448,13 +4483,6 @@ + * noticed in interrupt contexts ... + */ + +- if (rdev->desc_nr == mddev->max_disks) { +- printk(KERN_WARNING "%s: can not hot-add to full array!\n", +- mdname(mddev)); +- err = -EBUSY; +- goto abort_unbind_export; +- } +- + rdev->raid_disk = -1; + + md_update_sb(mddev, 1); +@@ -4468,9 +4496,6 @@ + md_new_event(mddev); + return 0; + +-abort_unbind_export: +- unbind_rdev_from_array(rdev); +- + abort_export: + export_rdev(rdev); + return err; +--- kernel-power-2.6.28.orig/drivers/md/raid1.c ++++ kernel-power-2.6.28/drivers/md/raid1.c +@@ -1233,8 +1233,9 @@ + update_head_pos(mirror, r1_bio); + + if (atomic_dec_and_test(&r1_bio->remaining)) { +- md_done_sync(mddev, r1_bio->sectors, uptodate); ++ sector_t s = r1_bio->sectors; + put_buf(r1_bio); ++ md_done_sync(mddev, s, uptodate); + } + } + +--- kernel-power-2.6.28.orig/drivers/md/raid10.c ++++ kernel-power-2.6.28/drivers/md/raid10.c +@@ -1236,6 +1236,7 @@ + /* for reconstruct, we always reschedule after a read. + * for resync, only after all reads + */ ++ rdev_dec_pending(conf->mirrors[d].rdev, conf->mddev); + if (test_bit(R10BIO_IsRecover, &r10_bio->state) || + atomic_dec_and_test(&r10_bio->remaining)) { + /* we have read all the blocks, +@@ -1243,7 +1244,6 @@ + */ + reschedule_retry(r10_bio); + } +- rdev_dec_pending(conf->mirrors[d].rdev, conf->mddev); + } + + static void end_sync_write(struct bio *bio, int error) +@@ -1264,11 +1264,13 @@ + + update_head_pos(i, r10_bio); + ++ rdev_dec_pending(conf->mirrors[d].rdev, mddev); + while (atomic_dec_and_test(&r10_bio->remaining)) { + if (r10_bio->master_bio == NULL) { + /* the primary of several recovery bios */ +- md_done_sync(mddev, r10_bio->sectors, 1); ++ sector_t s = r10_bio->sectors; + put_buf(r10_bio); ++ md_done_sync(mddev, s, 1); + break; + } else { + r10bio_t *r10_bio2 = (r10bio_t *)r10_bio->master_bio; +@@ -1276,7 +1278,6 @@ + r10_bio = r10_bio2; + } + } +- rdev_dec_pending(conf->mirrors[d].rdev, mddev); + } + + /* +@@ -1749,8 +1750,6 @@ + if (!go_faster && conf->nr_waiting) + msleep_interruptible(1000); + +- bitmap_cond_end_sync(mddev->bitmap, sector_nr); +- + /* Again, very different code for resync and recovery. + * Both must result in an r10bio with a list of bios that + * have bi_end_io, bi_sector, bi_bdev set, +@@ -1886,6 +1885,8 @@ + /* resync. Schedule a read for every block at this virt offset */ + int count = 0; + ++ bitmap_cond_end_sync(mddev->bitmap, sector_nr); ++ + if (!bitmap_start_sync(mddev->bitmap, sector_nr, + &sync_blocks, mddev->degraded) && + !conf->fullsync && !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { +@@ -2010,13 +2011,13 @@ + /* There is nowhere to write, so all non-sync + * drives must be failed, so try the next chunk... + */ +- { +- sector_t sec = max_sector - sector_nr; +- sectors_skipped += sec; ++ if (sector_nr + max_sync < max_sector) ++ max_sector = sector_nr + max_sync; ++ ++ sectors_skipped += (max_sector - sector_nr); + chunks_skipped ++; + sector_nr = max_sector; + goto skipped; +- } + } + + static int run(mddev_t *mddev) +--- kernel-power-2.6.28.orig/drivers/media/common/tuners/tda8290.c ++++ kernel-power-2.6.28/drivers/media/common/tuners/tda8290.c +@@ -724,7 +724,8 @@ + fe->ops.analog_ops.info.name = name; + + if (priv->ver & TDA8290) { +- tda8290_init_tuner(fe); ++ if (priv->ver & (TDA8275 | TDA8275A)) ++ tda8290_init_tuner(fe); + tda8290_init_if(fe); + } else if (priv->ver & TDA8295) + tda8295_init_if(fe); +--- kernel-power-2.6.28.orig/drivers/media/dvb/frontends/s5h1409.c ++++ kernel-power-2.6.28/drivers/media/dvb/frontends/s5h1409.c +@@ -545,9 +545,6 @@ + + s5h1409_enable_modulation(fe, p->u.vsb.modulation); + +- /* Allow the demod to settle */ +- msleep(100); +- + if (fe->ops.tuner_ops.set_params) { + if (fe->ops.i2c_gate_ctrl) + fe->ops.i2c_gate_ctrl(fe, 1); +@@ -562,6 +559,10 @@ + s5h1409_set_qam_interleave_mode(fe); + } + ++ /* Issue a reset to the demod so it knows to resync against the ++ newly tuned frequency */ ++ s5h1409_softreset(fe); ++ + return 0; + } + +--- kernel-power-2.6.28.orig/drivers/media/video/cx23885/cx23885-417.c ++++ kernel-power-2.6.28/drivers/media/video/cx23885/cx23885-417.c +@@ -1585,7 +1585,8 @@ + lock_kernel(); + list_for_each(list, &cx23885_devlist) { + h = list_entry(list, struct cx23885_dev, devlist); +- if (h->v4l_device->minor == minor) { ++ if (h->v4l_device && ++ h->v4l_device->minor == minor) { + dev = h; + break; + } +--- kernel-power-2.6.28.orig/drivers/media/video/cx23885/cx23885-video.c ++++ kernel-power-2.6.28/drivers/media/video/cx23885/cx23885-video.c +@@ -730,12 +730,13 @@ + lock_kernel(); + list_for_each(list, &cx23885_devlist) { + h = list_entry(list, struct cx23885_dev, devlist); +- if (h->video_dev->minor == minor) { ++ if (h->video_dev && ++ h->video_dev->minor == minor) { + dev = h; + type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + } + if (h->vbi_dev && +- h->vbi_dev->minor == minor) { ++ h->vbi_dev->minor == minor) { + dev = h; + type = V4L2_BUF_TYPE_VBI_CAPTURE; + } +--- kernel-power-2.6.28.orig/drivers/media/video/ivtv/ivtv-ioctl.c ++++ kernel-power-2.6.28/drivers/media/video/ivtv/ivtv-ioctl.c +@@ -1750,6 +1750,18 @@ + break; + } + ++ case IVTV_IOC_DMA_FRAME: ++ case VIDEO_GET_PTS: ++ case VIDEO_GET_FRAME_COUNT: ++ case VIDEO_GET_EVENT: ++ case VIDEO_PLAY: ++ case VIDEO_STOP: ++ case VIDEO_FREEZE: ++ case VIDEO_CONTINUE: ++ case VIDEO_COMMAND: ++ case VIDEO_TRY_COMMAND: ++ return ivtv_decoder_ioctls(file, cmd, (void *)arg); ++ + default: + return -EINVAL; + } +@@ -1792,18 +1804,6 @@ + ivtv_vapi(itv, CX2341X_DEC_SET_AUDIO_MODE, 2, itv->audio_bilingual_mode, itv->audio_stereo_mode); + return 0; + +- case IVTV_IOC_DMA_FRAME: +- case VIDEO_GET_PTS: +- case VIDEO_GET_FRAME_COUNT: +- case VIDEO_GET_EVENT: +- case VIDEO_PLAY: +- case VIDEO_STOP: +- case VIDEO_FREEZE: +- case VIDEO_CONTINUE: +- case VIDEO_COMMAND: +- case VIDEO_TRY_COMMAND: +- return ivtv_decoder_ioctls(filp, cmd, (void *)arg); +- + default: + break; + } +--- kernel-power-2.6.28.orig/drivers/media/video/saa7127.c ++++ kernel-power-2.6.28/drivers/media/video/saa7127.c +@@ -149,7 +149,7 @@ + { SAA7127_REG_COPYGEN_0, 0x77 }, + { SAA7127_REG_COPYGEN_1, 0x41 }, + { SAA7127_REG_COPYGEN_2, 0x00 }, /* Macrovision enable/disable */ +- { SAA7127_REG_OUTPUT_PORT_CONTROL, 0x9e }, ++ { SAA7127_REG_OUTPUT_PORT_CONTROL, 0xbf }, + { SAA7127_REG_GAIN_LUMINANCE_RGB, 0x00 }, + { SAA7127_REG_GAIN_COLORDIFF_RGB, 0x00 }, + { SAA7127_REG_INPUT_PORT_CONTROL_1, 0x80 }, /* for color bars */ +@@ -479,12 +479,18 @@ + break; + + case SAA7127_OUTPUT_TYPE_COMPOSITE: +- state->reg_2d = 0x08; /* 00001000 CVBS only, RGB DAC's off (high impedance mode) */ ++ if (state->ident == V4L2_IDENT_SAA7129) ++ state->reg_2d = 0x20; /* CVBS only */ ++ else ++ state->reg_2d = 0x08; /* 00001000 CVBS only, RGB DAC's off (high impedance mode) */ + state->reg_3a = 0x13; /* by default switch YUV to RGB-matrix on */ + break; + + case SAA7127_OUTPUT_TYPE_SVIDEO: +- state->reg_2d = 0xff; /* 11111111 croma -> R, luma -> CVBS + G + B */ ++ if (state->ident == V4L2_IDENT_SAA7129) ++ state->reg_2d = 0x18; /* Y + C */ ++ else ++ state->reg_2d = 0xff; /*11111111 croma -> R, luma -> CVBS + G + B */ + state->reg_3a = 0x13; /* by default switch YUV to RGB-matrix on */ + break; + +@@ -499,7 +505,10 @@ + break; + + case SAA7127_OUTPUT_TYPE_BOTH: +- state->reg_2d = 0xbf; ++ if (state->ident == V4L2_IDENT_SAA7129) ++ state->reg_2d = 0x38; ++ else ++ state->reg_2d = 0xbf; + state->reg_3a = 0x13; /* by default switch YUV to RGB-matrix on */ + break; + +@@ -691,24 +700,6 @@ + + i2c_set_clientdata(client, state); + +- /* Configure Encoder */ +- +- v4l_dbg(1, debug, client, "Configuring encoder\n"); +- saa7127_write_inittab(client, saa7127_init_config_common); +- saa7127_set_std(client, V4L2_STD_NTSC); +- saa7127_set_output_type(client, SAA7127_OUTPUT_TYPE_BOTH); +- saa7127_set_vps(client, &vbi); +- saa7127_set_wss(client, &vbi); +- saa7127_set_cc(client, &vbi); +- saa7127_set_xds(client, &vbi); +- if (test_image == 1) +- /* The Encoder has an internal Colorbar generator */ +- /* This can be used for debugging */ +- saa7127_set_input_type(client, SAA7127_INPUT_TYPE_TEST_IMAGE); +- else +- saa7127_set_input_type(client, SAA7127_INPUT_TYPE_NORMAL); +- saa7127_set_video_enable(client, 1); +- + if (id->driver_data) { /* Chip type is already known */ + state->ident = id->driver_data; + } else { /* Needs detection */ +@@ -730,6 +721,23 @@ + + v4l_info(client, "%s found @ 0x%x (%s)\n", client->name, + client->addr << 1, client->adapter->name); ++ ++ v4l_dbg(1, debug, client, "Configuring encoder\n"); ++ saa7127_write_inittab(client, saa7127_init_config_common); ++ saa7127_set_std(client, V4L2_STD_NTSC); ++ saa7127_set_output_type(client, SAA7127_OUTPUT_TYPE_BOTH); ++ saa7127_set_vps(client, &vbi); ++ saa7127_set_wss(client, &vbi); ++ saa7127_set_cc(client, &vbi); ++ saa7127_set_xds(client, &vbi); ++ if (test_image == 1) ++ /* The Encoder has an internal Colorbar generator */ ++ /* This can be used for debugging */ ++ saa7127_set_input_type(client, SAA7127_INPUT_TYPE_TEST_IMAGE); ++ else ++ saa7127_set_input_type(client, SAA7127_INPUT_TYPE_NORMAL); ++ saa7127_set_video_enable(client, 1); ++ + if (state->ident == V4L2_IDENT_SAA7129) + saa7127_write_inittab(client, saa7129_init_config_extra); + return 0; +--- kernel-power-2.6.28.orig/drivers/misc/acer-wmi.c ++++ kernel-power-2.6.28/drivers/misc/acer-wmi.c +@@ -1297,7 +1297,7 @@ + + set_quirks(); + +- if (!acpi_video_backlight_support() && has_cap(ACER_CAP_BRIGHTNESS)) { ++ if (acpi_video_backlight_support() && has_cap(ACER_CAP_BRIGHTNESS)) { + interface->capability &= ~ACER_CAP_BRIGHTNESS; + printk(ACER_INFO "Brightness must be controlled by " + "generic video driver\n"); +--- kernel-power-2.6.28.orig/drivers/misc/eeepc-laptop.c ++++ kernel-power-2.6.28/drivers/misc/eeepc-laptop.c +@@ -161,6 +161,10 @@ + {KE_KEY, 0x13, KEY_MUTE }, + {KE_KEY, 0x14, KEY_VOLUMEDOWN }, + {KE_KEY, 0x15, KEY_VOLUMEUP }, ++ {KE_KEY, 0x1a, KEY_COFFEE }, ++ {KE_KEY, 0x1b, KEY_ZOOM }, ++ {KE_KEY, 0x1c, KEY_PROG2 }, ++ {KE_KEY, 0x1d, KEY_PROG3 }, + {KE_KEY, 0x30, KEY_SWITCHVIDEOMODE }, + {KE_KEY, 0x31, KEY_SWITCHVIDEOMODE }, + {KE_KEY, 0x32, KEY_SWITCHVIDEOMODE }, +@@ -510,7 +514,8 @@ + static void notify_brn(void) + { + struct backlight_device *bd = eeepc_backlight_device; +- bd->props.brightness = read_brightness(bd); ++ if (bd) ++ bd->props.brightness = read_brightness(bd); + } + + static void eeepc_hotk_notify(acpi_handle handle, u32 event, void *data) +--- kernel-power-2.6.28.orig/drivers/misc/hpilo.c ++++ kernel-power-2.6.28/drivers/misc/hpilo.c +@@ -710,6 +710,7 @@ + + static struct pci_device_id ilo_devices[] = { + { PCI_DEVICE(PCI_VENDOR_ID_COMPAQ, 0xB204) }, ++ { PCI_DEVICE(PCI_VENDOR_ID_HP, 0x3307) }, + { } + }; + MODULE_DEVICE_TABLE(pci, ilo_devices); +--- kernel-power-2.6.28.orig/drivers/misc/panasonic-laptop.c ++++ kernel-power-2.6.28/drivers/misc/panasonic-laptop.c +@@ -515,7 +515,7 @@ + + hkey_num = result & 0xf; + +- if (hkey_num < 0 || hkey_num > ARRAY_SIZE(pcc->keymap)) { ++ if (hkey_num < 0 || hkey_num >= ARRAY_SIZE(pcc->keymap)) { + ACPI_DEBUG_PRINT((ACPI_DB_ERROR, + "hotkey number out of range: %d\n", + hkey_num)); +--- kernel-power-2.6.28.orig/drivers/misc/sgi-xp/xpc.h ++++ kernel-power-2.6.28/drivers/misc/sgi-xp/xpc.h +@@ -3,7 +3,7 @@ + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * +- * Copyright (c) 2004-2008 Silicon Graphics, Inc. All Rights Reserved. ++ * Copyright (c) 2004-2009 Silicon Graphics, Inc. All Rights Reserved. + */ + + /* +@@ -502,7 +502,8 @@ + /* partition's notify mq */ + + struct xpc_send_msg_slot_uv *send_msg_slots; +- struct xpc_notify_mq_msg_uv *recv_msg_slots; ++ void *recv_msg_slots; /* each slot will hold a xpc_notify_mq_msg_uv */ ++ /* structure plus the user's payload */ + + struct xpc_fifo_head_uv msg_slot_free_list; + struct xpc_fifo_head_uv recv_msg_list; /* deliverable payloads */ +--- kernel-power-2.6.28.orig/drivers/misc/sgi-xp/xpc_sn2.c ++++ kernel-power-2.6.28/drivers/misc/sgi-xp/xpc_sn2.c +@@ -904,7 +904,7 @@ + dev_dbg(xpc_part, " remote_vars_pa = 0x%016lx\n", + part_sn2->remote_vars_pa); + +- part->last_heartbeat = remote_vars->heartbeat; ++ part->last_heartbeat = remote_vars->heartbeat - 1; + dev_dbg(xpc_part, " last_heartbeat = 0x%016lx\n", + part->last_heartbeat); + +@@ -1841,6 +1841,7 @@ + */ + xpc_clear_remote_msgqueue_flags_sn2(ch); + ++ smp_wmb(); /* ensure flags have been cleared before bte_copy */ + ch_sn2->w_remote_GP.put = ch_sn2->remote_GP.put; + + dev_dbg(xpc_chan, "w_remote_GP.put changed to %ld, partid=%d, " +@@ -1939,7 +1940,7 @@ + break; + + get = ch_sn2->w_local_GP.get; +- rmb(); /* guarantee that .get loads before .put */ ++ smp_rmb(); /* guarantee that .get loads before .put */ + if (get == ch_sn2->w_remote_GP.put) + break; + +@@ -1961,11 +1962,13 @@ + + msg = xpc_pull_remote_msg_sn2(ch, get); + +- DBUG_ON(msg != NULL && msg->number != get); +- DBUG_ON(msg != NULL && (msg->flags & XPC_M_SN2_DONE)); +- DBUG_ON(msg != NULL && !(msg->flags & XPC_M_SN2_READY)); ++ if (msg != NULL) { ++ DBUG_ON(msg->number != get); ++ DBUG_ON(msg->flags & XPC_M_SN2_DONE); ++ DBUG_ON(!(msg->flags & XPC_M_SN2_READY)); + +- payload = &msg->payload; ++ payload = &msg->payload; ++ } + break; + } + +@@ -2058,7 +2061,7 @@ + while (1) { + + put = ch_sn2->w_local_GP.put; +- rmb(); /* guarantee that .put loads before .get */ ++ smp_rmb(); /* guarantee that .put loads before .get */ + if (put - ch_sn2->w_remote_GP.get < ch->local_nentries) { + + /* There are available message entries. We need to try +@@ -2191,7 +2194,7 @@ + * The preceding store of msg->flags must occur before the following + * load of local_GP->put. + */ +- mb(); ++ smp_mb(); + + /* see if the message is next in line to be sent, if so send it */ + +@@ -2292,7 +2295,7 @@ + * The preceding store of msg->flags must occur before the following + * load of local_GP->get. + */ +- mb(); ++ smp_mb(); + + /* + * See if this message is next in line to be acknowledged as having +--- kernel-power-2.6.28.orig/drivers/misc/sgi-xp/xpc_uv.c ++++ kernel-power-2.6.28/drivers/misc/sgi-xp/xpc_uv.c +@@ -3,7 +3,7 @@ + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * +- * Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. ++ * Copyright (c) 2008-2009 Silicon Graphics, Inc. All Rights Reserved. + */ + + /* +@@ -825,8 +825,8 @@ + continue; + + for (entry = 0; entry < nentries; entry++) { +- msg_slot = ch_uv->recv_msg_slots + entry * +- ch->entry_size; ++ msg_slot = ch_uv->recv_msg_slots + ++ entry * ch->entry_size; + + msg_slot->hdr.msg_slot_number = entry; + } +@@ -1123,9 +1123,8 @@ + /* we're dealing with a normal message sent via the notify_mq */ + ch_uv = &ch->sn.uv; + +- msg_slot = (struct xpc_notify_mq_msg_uv *)((u64)ch_uv->recv_msg_slots + +- (msg->hdr.msg_slot_number % ch->remote_nentries) * +- ch->entry_size); ++ msg_slot = ch_uv->recv_msg_slots + ++ (msg->hdr.msg_slot_number % ch->remote_nentries) * ch->entry_size; + + BUG_ON(msg->hdr.msg_slot_number != msg_slot->hdr.msg_slot_number); + BUG_ON(msg_slot->hdr.size != 0); +@@ -1238,7 +1237,7 @@ + atomic_inc(&ch->n_to_notify); + + msg_slot->key = key; +- wmb(); /* a non-NULL func must hit memory after the key */ ++ smp_wmb(); /* a non-NULL func must hit memory after the key */ + msg_slot->func = func; + + if (ch->flags & XPC_C_DISCONNECTING) { +--- kernel-power-2.6.28.orig/drivers/misc/thinkpad_acpi.c ++++ kernel-power-2.6.28/drivers/misc/thinkpad_acpi.c +@@ -281,11 +281,17 @@ + + static struct workqueue_struct *tpacpi_wq; + ++enum led_status_t { ++ TPACPI_LED_OFF = 0, ++ TPACPI_LED_ON, ++ TPACPI_LED_BLINK, ++}; ++ + /* Special LED class that can defer work */ + struct tpacpi_led_classdev { + struct led_classdev led_classdev; + struct work_struct work; +- enum led_brightness new_brightness; ++ enum led_status_t new_state; + unsigned int led; + }; + +@@ -3489,7 +3495,7 @@ + container_of(work, struct tpacpi_led_classdev, work); + + if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING)) +- light_set_status((data->new_brightness != LED_OFF)); ++ light_set_status((data->new_state != TPACPI_LED_OFF)); + } + + static void light_sysfs_set(struct led_classdev *led_cdev, +@@ -3499,7 +3505,8 @@ + container_of(led_cdev, + struct tpacpi_led_classdev, + led_classdev); +- data->new_brightness = brightness; ++ data->new_state = (brightness != LED_OFF) ? ++ TPACPI_LED_ON : TPACPI_LED_OFF; + queue_work(tpacpi_wq, &data->work); + } + +@@ -4006,12 +4013,6 @@ + TPACPI_LED_EC_HLMS = 0x0e, /* EC reg to select led to command */ + }; + +-enum led_status_t { +- TPACPI_LED_OFF = 0, +- TPACPI_LED_ON, +- TPACPI_LED_BLINK, +-}; +- + static enum led_access_mode led_supported; + + TPACPI_HANDLE(led, ec, "SLED", /* 570 */ +@@ -4105,23 +4106,13 @@ + return rc; + } + +-static void led_sysfs_set_status(unsigned int led, +- enum led_brightness brightness) +-{ +- led_set_status(led, +- (brightness == LED_OFF) ? +- TPACPI_LED_OFF : +- (tpacpi_led_state_cache[led] == TPACPI_LED_BLINK) ? +- TPACPI_LED_BLINK : TPACPI_LED_ON); +-} +- + static void led_set_status_worker(struct work_struct *work) + { + struct tpacpi_led_classdev *data = + container_of(work, struct tpacpi_led_classdev, work); + + if (likely(tpacpi_lifecycle == TPACPI_LIFE_RUNNING)) +- led_sysfs_set_status(data->led, data->new_brightness); ++ led_set_status(data->led, data->new_state); + } + + static void led_sysfs_set(struct led_classdev *led_cdev, +@@ -4130,7 +4121,13 @@ + struct tpacpi_led_classdev *data = container_of(led_cdev, + struct tpacpi_led_classdev, led_classdev); + +- data->new_brightness = brightness; ++ if (brightness == LED_OFF) ++ data->new_state = TPACPI_LED_OFF; ++ else if (tpacpi_led_state_cache[data->led] != TPACPI_LED_BLINK) ++ data->new_state = TPACPI_LED_ON; ++ else ++ data->new_state = TPACPI_LED_BLINK; ++ + queue_work(tpacpi_wq, &data->work); + } + +@@ -4148,7 +4145,7 @@ + } else if ((*delay_on != 500) || (*delay_off != 500)) + return -EINVAL; + +- data->new_brightness = TPACPI_LED_BLINK; ++ data->new_state = TPACPI_LED_BLINK; + queue_work(tpacpi_wq, &data->work); + + return 0; +@@ -6927,7 +6924,7 @@ + * if it is not there yet. + */ + #define IBM_BIOS_MODULE_ALIAS(__type) \ +- MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW") ++ MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*") + + /* Non-ancient thinkpads */ + MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*"); +@@ -6936,9 +6933,9 @@ + /* Ancient thinkpad BIOSes have to be identified by + * BIOS type or model number, and there are far less + * BIOS types than model numbers... */ +-IBM_BIOS_MODULE_ALIAS("I[B,D,H,I,M,N,O,T,W,V,Y,Z]"); +-IBM_BIOS_MODULE_ALIAS("1[0,3,6,8,A-G,I,K,M-P,S,T]"); +-IBM_BIOS_MODULE_ALIAS("K[U,X-Z]"); ++IBM_BIOS_MODULE_ALIAS("I[BDHIMNOTWVYZ]"); ++IBM_BIOS_MODULE_ALIAS("1[0368A-GIKM-PST]"); ++IBM_BIOS_MODULE_ALIAS("K[UX-Z]"); + + MODULE_AUTHOR("Borislav Deianov, Henrique de Moraes Holschuh"); + MODULE_DESCRIPTION(TPACPI_DESC); +--- kernel-power-2.6.28.orig/drivers/mmc/card/mmc_test.c ++++ kernel-power-2.6.28/drivers/mmc/card/mmc_test.c +@@ -494,7 +494,7 @@ + + sg_init_one(&sg, test->buffer, 512); + +- ret = mmc_test_simple_transfer(test, &sg, 1, 0, 1, 512, 1); ++ ret = mmc_test_simple_transfer(test, &sg, 1, 0, 1, 512, 0); + if (ret) + return ret; + +--- kernel-power-2.6.28.orig/drivers/mmc/host/s3cmci.c ++++ kernel-power-2.6.28/drivers/mmc/host/s3cmci.c +@@ -329,7 +329,7 @@ + + to_ptr = host->base + host->sdidata; + +- while ((fifo = fifo_free(host))) { ++ while ((fifo = fifo_free(host)) > 3) { + if (!host->pio_bytes) { + res = get_data_buffer(host, &host->pio_bytes, + &host->pio_ptr); +@@ -793,8 +793,7 @@ + host->mem->start + host->sdidata); + + if (!setup_ok) { +- s3c2410_dma_config(host->dma, 4, +- (S3C2410_DCON_HWTRIG | S3C2410_DCON_CH0_SDI)); ++ s3c2410_dma_config(host->dma, 4, 0); + s3c2410_dma_set_buffdone_fn(host->dma, + s3cmci_dma_done_callback); + s3c2410_dma_setflags(host->dma, S3C2410_DMAF_AUTOSTART); +--- kernel-power-2.6.28.orig/drivers/mmc/host/sdhci-pci.c ++++ kernel-power-2.6.28/drivers/mmc/host/sdhci-pci.c +@@ -107,6 +107,7 @@ + + static const struct sdhci_pci_fixes sdhci_cafe = { + .quirks = SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER | ++ SDHCI_QUIRK_NO_BUSY_IRQ | + SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, + }; + +--- kernel-power-2.6.28.orig/drivers/mmc/host/sdhci.c ++++ kernel-power-2.6.28/drivers/mmc/host/sdhci.c +@@ -1286,8 +1286,11 @@ + if (host->cmd->data) + DBG("Cannot wait for busy signal when also " + "doing a data transfer"); +- else ++ else if (!(host->quirks & SDHCI_QUIRK_NO_BUSY_IRQ)) + return; ++ ++ /* The controller does not support the end-of-busy IRQ, ++ * fall through and take the SDHCI_INT_RESPONSE */ + } + + if (intmask & SDHCI_INT_RESPONSE) +@@ -1718,7 +1721,9 @@ + #endif + + #ifdef CONFIG_LEDS_CLASS +- host->led.name = mmc_hostname(mmc); ++ snprintf(host->led_name, sizeof(host->led_name), ++ "%s::", mmc_hostname(mmc)); ++ host->led.name = host->led_name; + host->led.brightness = LED_OFF; + host->led.default_trigger = mmc_hostname(mmc); + host->led.brightness_set = sdhci_led_control; +--- kernel-power-2.6.28.orig/drivers/mmc/host/sdhci.h ++++ kernel-power-2.6.28/drivers/mmc/host/sdhci.h +@@ -210,6 +210,8 @@ + #define SDHCI_QUIRK_BROKEN_SMALL_PIO (1<<13) + /* Controller supports high speed but doesn't have the caps bit set */ + #define SDHCI_QUIRK_FORCE_HIGHSPEED (1<<14) ++/* Controller does not provide transfer-complete interrupt when not busy */ ++#define SDHCI_QUIRK_NO_BUSY_IRQ (1<<15) + + int irq; /* Device IRQ */ + void __iomem * ioaddr; /* Mapped address */ +@@ -222,6 +224,7 @@ + + #ifdef CONFIG_LEDS_CLASS + struct led_classdev led; /* LED control */ ++ char led_name[32]; + #endif + + spinlock_t lock; /* Mutex */ +--- kernel-power-2.6.28.orig/drivers/mtd/devices/mtd_dataflash.c ++++ kernel-power-2.6.28/drivers/mtd/devices/mtd_dataflash.c +@@ -815,7 +815,8 @@ + if (!(info->flags & IS_POW2PS)) + return info; + } +- } ++ } else ++ return info; + } + } + +--- kernel-power-2.6.28.orig/drivers/net/3c505.c ++++ kernel-power-2.6.28/drivers/net/3c505.c +@@ -493,21 +493,27 @@ + } + /* read the data */ + spin_lock_irqsave(&adapter->lock, flags); +- i = 0; +- do { +- j = 0; +- while (((stat = get_status(dev->base_addr)) & ACRF) == 0 && j++ < 20000); +- pcb->data.raw[i++] = inb_command(dev->base_addr); +- if (i > MAX_PCB_DATA) +- INVALID_PCB_MSG(i); +- } while ((stat & ASF_PCB_MASK) != ASF_PCB_END && j < 20000); ++ for (i = 0; i < MAX_PCB_DATA; i++) { ++ for (j = 0; j < 20000; j++) { ++ stat = get_status(dev->base_addr); ++ if (stat & ACRF) ++ break; ++ } ++ pcb->data.raw[i] = inb_command(dev->base_addr); ++ if ((stat & ASF_PCB_MASK) == ASF_PCB_END || j >= 20000) ++ break; ++ } + spin_unlock_irqrestore(&adapter->lock, flags); ++ if (i >= MAX_PCB_DATA) { ++ INVALID_PCB_MSG(i); ++ return false; ++ } + if (j >= 20000) { + TIMEOUT_MSG(__LINE__); + return false; + } +- /* woops, the last "data" byte was really the length! */ +- total_length = pcb->data.raw[--i]; ++ /* the last "data" byte was really the length! */ ++ total_length = pcb->data.raw[i]; + + /* safety check total length vs data length */ + if (total_length != (pcb->length + 2)) { +--- kernel-power-2.6.28.orig/drivers/net/b44.c ++++ kernel-power-2.6.28/drivers/net/b44.c +@@ -750,7 +750,7 @@ + dest_idx * sizeof(dest_desc), + DMA_BIDIRECTIONAL); + +- ssb_dma_sync_single_for_device(bp->sdev, le32_to_cpu(src_desc->addr), ++ ssb_dma_sync_single_for_device(bp->sdev, dest_map->mapping, + RX_PKT_BUF_SZ, + DMA_FROM_DEVICE); + } +--- kernel-power-2.6.28.orig/drivers/net/bnx2x_main.c ++++ kernel-power-2.6.28/drivers/net/bnx2x_main.c +@@ -8079,6 +8079,9 @@ + struct bnx2x *bp = netdev_priv(dev); + int rc; + ++ if (!netif_running(dev)) ++ return -EAGAIN; ++ + DP(BNX2X_MSG_NVM, "ethtool_eeprom: cmd %d\n" + DP_LEVEL " magic 0x%x offset 0x%x (%d) len 0x%x (%d)\n", + eeprom->cmd, eeprom->magic, eeprom->offset, eeprom->offset, +--- kernel-power-2.6.28.orig/drivers/net/bonding/bond_main.c ++++ kernel-power-2.6.28/drivers/net/bonding/bond_main.c +@@ -3536,11 +3536,26 @@ + } + break; + case NETDEV_CHANGE: +- /* +- * TODO: is this what we get if somebody +- * sets up a hierarchical bond, then rmmod's +- * one of the slave bonding devices? +- */ ++ if (bond->params.mode == BOND_MODE_8023AD || bond_is_lb(bond)) { ++ struct slave *slave; ++ ++ slave = bond_get_slave_by_dev(bond, slave_dev); ++ if (slave) { ++ u16 old_speed = slave->speed; ++ u16 old_duplex = slave->duplex; ++ ++ bond_update_speed_duplex(slave); ++ ++ if (bond_is_lb(bond)) ++ break; ++ ++ if (old_speed != slave->speed) ++ bond_3ad_adapter_speed_changed(slave); ++ if (old_duplex != slave->duplex) ++ bond_3ad_adapter_duplex_changed(slave); ++ } ++ } ++ + break; + case NETDEV_DOWN: + /* +--- kernel-power-2.6.28.orig/drivers/net/bonding/bonding.h ++++ kernel-power-2.6.28/drivers/net/bonding/bonding.h +@@ -248,6 +248,12 @@ + return (struct bonding *)slave->dev->master->priv; + } + ++static inline bool bond_is_lb(const struct bonding *bond) ++{ ++ return bond->params.mode == BOND_MODE_TLB ++ || bond->params.mode == BOND_MODE_ALB; ++} ++ + #define BOND_FOM_NONE 0 + #define BOND_FOM_ACTIVE 1 + #define BOND_FOM_FOLLOW 2 +--- kernel-power-2.6.28.orig/drivers/net/e1000/e1000_main.c ++++ kernel-power-2.6.28/drivers/net/e1000/e1000_main.c +@@ -31,7 +31,7 @@ + + char e1000_driver_name[] = "e1000"; + static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver"; +-#define DRV_VERSION "7.3.20-k3-NAPI" ++#define DRV_VERSION "7.3.21-k3-NAPI" + const char e1000_driver_version[] = DRV_VERSION; + static const char e1000_copyright[] = "Copyright (c) 1999-2006 Intel Corporation."; + +@@ -921,7 +921,7 @@ + err = pci_enable_device(pdev); + } else { + bars = pci_select_bars(pdev, IORESOURCE_MEM); +- err = pci_enable_device(pdev); ++ err = pci_enable_device_mem(pdev); + } + if (err) + return err; +@@ -3732,7 +3732,7 @@ + struct e1000_hw *hw = &adapter->hw; + u32 rctl, icr = er32(ICR); + +- if (unlikely(!icr)) ++ if (unlikely((!icr) || test_bit(__E1000_RESETTING, &adapter->flags))) + return IRQ_NONE; /* Not our interrupt */ + + /* IMS will not auto-mask if INT_ASSERTED is not set, and if it is +--- kernel-power-2.6.28.orig/drivers/net/irda/irda-usb.c ++++ kernel-power-2.6.28/drivers/net/irda/irda-usb.c +@@ -1075,7 +1075,7 @@ + { + unsigned int i; + int ret; +- char stir421x_fw_name[11]; ++ char stir421x_fw_name[12]; + const struct firmware *fw; + const unsigned char *fw_version_ptr; /* pointer to version string */ + unsigned long fw_version = 0; +--- kernel-power-2.6.28.orig/drivers/net/r6040.c ++++ kernel-power-2.6.28/drivers/net/r6040.c +@@ -49,8 +49,8 @@ + #include + + #define DRV_NAME "r6040" +-#define DRV_VERSION "0.18" +-#define DRV_RELDATE "13Jul2008" ++#define DRV_VERSION "0.19" ++#define DRV_RELDATE "18Dec2008" + + /* PHY CHIP Address */ + #define PHY1_ADDR 1 /* For MAC1 */ +@@ -214,7 +214,7 @@ + /* Wait for the read bit to be cleared */ + while (limit--) { + cmd = ioread16(ioaddr + MMDIO); +- if (cmd & MDIO_READ) ++ if (!(cmd & MDIO_READ)) + break; + } + +@@ -233,7 +233,7 @@ + /* Wait for the write bit to be cleared */ + while (limit--) { + cmd = ioread16(ioaddr + MMDIO); +- if (cmd & MDIO_WRITE) ++ if (!(cmd & MDIO_WRITE)) + break; + } + } +@@ -681,8 +681,10 @@ + struct net_device *dev = dev_id; + struct r6040_private *lp = netdev_priv(dev); + void __iomem *ioaddr = lp->base; +- u16 status; ++ u16 misr, status; + ++ /* Save MIER */ ++ misr = ioread16(ioaddr + MIER); + /* Mask off RDC MAC interrupt */ + iowrite16(MSK_INT, ioaddr + MIER); + /* Read MISR status and clear */ +@@ -702,7 +704,7 @@ + dev->stats.rx_fifo_errors++; + + /* Mask off RX interrupt */ +- iowrite16(ioread16(ioaddr + MIER) & ~RX_INTS, ioaddr + MIER); ++ misr &= ~RX_INTS; + netif_rx_schedule(dev, &lp->napi); + } + +@@ -710,6 +712,9 @@ + if (status & TX_INTS) + r6040_tx(dev); + ++ /* Restore RDC MAC interrupt */ ++ iowrite16(misr, ioaddr + MIER); ++ + return IRQ_HANDLED; + } + +--- kernel-power-2.6.28.orig/drivers/net/r8169.c ++++ kernel-power-2.6.28/drivers/net/r8169.c +@@ -2026,8 +2026,7 @@ + if (!tp->pcie_cap && netif_msg_probe(tp)) + dev_info(&pdev->dev, "no PCI Express capability\n"); + +- /* Unneeded ? Don't mess with Mrs. Murphy. */ +- rtl8169_irq_mask_and_ack(ioaddr); ++ RTL_W16(IntrMask, 0x0000); + + /* Soft reset the chip. */ + RTL_W8(ChipCmd, CmdReset); +@@ -2039,6 +2038,8 @@ + msleep_interruptible(1); + } + ++ RTL_W16(IntrStatus, 0xffff); ++ + /* Identify chip attached to board */ + rtl8169_get_mac_version(tp, ioaddr); + +--- kernel-power-2.6.28.orig/drivers/net/skfp/skfddi.c ++++ kernel-power-2.6.28/drivers/net/skfp/skfddi.c +@@ -998,9 +998,9 @@ + break; + case SKFP_CLR_STATS: /* Zero out the driver statistics */ + if (!capable(CAP_NET_ADMIN)) { +- memset(&lp->MacStat, 0, sizeof(lp->MacStat)); +- } else { + status = -EPERM; ++ } else { ++ memset(&lp->MacStat, 0, sizeof(lp->MacStat)); + } + break; + default: +--- kernel-power-2.6.28.orig/drivers/net/sky2.c ++++ kernel-power-2.6.28/drivers/net/sky2.c +@@ -1403,9 +1403,6 @@ + + } + +- if (netif_msg_ifup(sky2)) +- printk(KERN_INFO PFX "%s: enabling interface\n", dev->name); +- + netif_carrier_off(dev); + + /* must be power of 2 */ +@@ -1484,6 +1481,9 @@ + sky2_write32(hw, B0_IMSK, imask); + + sky2_set_multicast(dev); ++ ++ if (netif_msg_ifup(sky2)) ++ printk(KERN_INFO PFX "%s: enabling interface\n", dev->name); + return 0; + + err_out: +--- kernel-power-2.6.28.orig/drivers/net/sungem.c ++++ kernel-power-2.6.28/drivers/net/sungem.c +@@ -2222,6 +2222,8 @@ + + gp->running = 1; + ++ napi_enable(&gp->napi); ++ + if (gp->lstate == link_up) { + netif_carrier_on(gp->dev); + gem_set_link_modes(gp); +@@ -2239,6 +2241,8 @@ + spin_lock_irqsave(&gp->lock, flags); + spin_lock(&gp->tx_lock); + ++ napi_disable(&gp->napi); ++ + gp->running = 0; + gem_reset(gp); + gem_clean_rings(gp); +@@ -2339,8 +2343,6 @@ + if (!gp->asleep) + rc = gem_do_start(dev); + gp->opened = (rc == 0); +- if (gp->opened) +- napi_enable(&gp->napi); + + mutex_unlock(&gp->pm_mutex); + +@@ -2477,8 +2479,6 @@ + + /* Re-attach net device */ + netif_device_attach(dev); +- +- napi_enable(&gp->napi); + } + + spin_lock_irqsave(&gp->lock, flags); +--- kernel-power-2.6.28.orig/drivers/net/tun.c ++++ kernel-power-2.6.28/drivers/net/tun.c +@@ -157,10 +157,16 @@ + + nexact = n; + +- /* The rest is hashed */ ++ /* Remaining multicast addresses are hashed, ++ * unicast will leave the filter disabled. */ + memset(filter->mask, 0, sizeof(filter->mask)); +- for (; n < uf.count; n++) ++ for (; n < uf.count; n++) { ++ if (!is_multicast_ether_addr(addr[n].u)) { ++ err = 0; /* no filter */ ++ goto done; ++ } + addr_hash_set(filter->mask, addr[n].u); ++ } + + /* For ALLMULTI just set the mask to all ones. + * This overrides the mask populated above. */ +--- kernel-power-2.6.28.orig/drivers/net/usb/asix.c ++++ kernel-power-2.6.28/drivers/net/usb/asix.c +@@ -1450,6 +1450,14 @@ + // Cables-to-Go USB Ethernet Adapter + USB_DEVICE(0x0b95, 0x772a), + .driver_info = (unsigned long) &ax88772_info, ++}, { ++ // ABOCOM for pci ++ USB_DEVICE(0x14ea, 0xab11), ++ .driver_info = (unsigned long) &ax88178_info, ++}, { ++ // ASIX 88772a ++ USB_DEVICE(0x0db0, 0xa877), ++ .driver_info = (unsigned long) &ax88772_info, + }, + { }, // END + }; +--- kernel-power-2.6.28.orig/drivers/net/usb/cdc_ether.c ++++ kernel-power-2.6.28/drivers/net/usb/cdc_ether.c +@@ -559,6 +559,11 @@ + USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET, + USB_CDC_PROTO_NONE), + .driver_info = (unsigned long) &cdc_info, ++}, { ++ /* Ericsson F3507g */ ++ USB_DEVICE_AND_INTERFACE_INFO(0x0bdb, 0x1900, USB_CLASS_COMM, ++ USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), ++ .driver_info = (unsigned long) &cdc_info, + }, + { }, // END + }; +--- kernel-power-2.6.28.orig/drivers/net/usb/zaurus.c ++++ kernel-power-2.6.28/drivers/net/usb/zaurus.c +@@ -341,6 +341,11 @@ + USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MDLM, + USB_CDC_PROTO_NONE), + .driver_info = (unsigned long) &bogus_mdlm_info, ++}, { ++ /* Motorola MOTOMAGX phones */ ++ USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x6425, USB_CLASS_COMM, ++ USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE), ++ .driver_info = (unsigned long) &bogus_mdlm_info, + }, + + /* Olympus has some models with a Zaurus-compatible option. +--- kernel-power-2.6.28.orig/drivers/net/virtio_net.c ++++ kernel-power-2.6.28/drivers/net/virtio_net.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + static int napi_weight = 128; + module_param(napi_weight, int, 0444); +@@ -33,7 +34,7 @@ + module_param(gso, bool, 0444); + + /* FIXME: MTU in config. */ +-#define MAX_PACKET_LEN (ETH_HLEN+ETH_DATA_LEN) ++#define MAX_PACKET_LEN (ETH_HLEN + VLAN_HLEN + ETH_DATA_LEN) + + struct virtnet_info + { +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath5k/base.c ++++ kernel-power-2.6.28/drivers/net/wireless/ath5k/base.c +@@ -2157,7 +2157,8 @@ + + if (sc->opmode == NL80211_IFTYPE_STATION) { + sc->imask |= AR5K_INT_BMISS; +- } else if (sc->opmode == NL80211_IFTYPE_ADHOC) { ++ } else if (sc->opmode == NL80211_IFTYPE_ADHOC || ++ sc->opmode == NL80211_IFTYPE_MESH_POINT) { + /* + * In IBSS mode we use a self-linked tx descriptor and let the + * hardware send the beacons automatically. We have to load it +@@ -2748,6 +2749,7 @@ + switch (conf->type) { + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_ADHOC: ++ case NL80211_IFTYPE_MESH_POINT: + case NL80211_IFTYPE_MONITOR: + sc->opmode = conf->type; + break; +@@ -2819,7 +2821,8 @@ + } + + if (conf->changed & IEEE80211_IFCC_BEACON && +- vif->type == NL80211_IFTYPE_ADHOC) { ++ (vif->type == NL80211_IFTYPE_ADHOC || ++ vif->type == NL80211_IFTYPE_MESH_POINT)) { + struct sk_buff *beacon = ieee80211_beacon_get(hw, vif); + if (!beacon) { + ret = -ENOMEM; +@@ -2951,6 +2954,9 @@ + sc->opmode == NL80211_IFTYPE_ADHOC) { + rfilt |= AR5K_RX_FILTER_BEACON; + } ++ if (sc->opmode == NL80211_IFTYPE_MESH_POINT) ++ rfilt |= AR5K_RX_FILTER_CONTROL | AR5K_RX_FILTER_BEACON | ++ AR5K_RX_FILTER_PROBEREQ | AR5K_RX_FILTER_PROM; + + /* Set filters */ + ath5k_hw_set_rx_filter(ah,rfilt); +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath5k/phy.c ++++ kernel-power-2.6.28/drivers/net/wireless/ath5k/phy.c +@@ -2195,9 +2195,7 @@ + return ret; + } + +- ret = ath5k_hw_noise_floor_calibration(ah, channel->center_freq); +- if (ret) +- return ret; ++ ath5k_hw_noise_floor_calibration(ah, channel->center_freq); + + /* + * Re-enable RX/TX and beacons +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath5k/reset.c ++++ kernel-power-2.6.28/drivers/net/wireless/ath5k/reset.c +@@ -842,9 +842,7 @@ + * + * XXX: Find an interval that's OK for all cards... + */ +- ret = ath5k_hw_noise_floor_calibration(ah, channel->center_freq); +- if (ret) +- return ret; ++ ath5k_hw_noise_floor_calibration(ah, channel->center_freq); + + /* + * Reset queues and start beacon timers at the end of the reset routine +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath9k/ath9k.h ++++ kernel-power-2.6.28/drivers/net/wireless/ath9k/ath9k.h +@@ -590,8 +590,8 @@ + u8 iso[3]; + }; + +-#define REG_WRITE(_ah, _reg, _val) iowrite32(_val, _ah->ah_sh + _reg) +-#define REG_READ(_ah, _reg) ioread32(_ah->ah_sh + _reg) ++#define REG_WRITE(_ah, _reg, _val) ath9k_iowrite32((_ah), (_reg), (_val)) ++#define REG_READ(_ah, _reg) ath9k_ioread32((_ah), (_reg)) + + #define SM(_v, _f) (((_v) << _f##_S) & _f) + #define MS(_v, _f) (((_v) & _f) >> _f##_S) +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath9k/core.c ++++ kernel-power-2.6.28/drivers/net/wireless/ath9k/core.c +@@ -1089,6 +1089,7 @@ + sc->sc_cachelsz = csz << 2; /* convert to bytes */ + + spin_lock_init(&sc->sc_resetlock); ++ spin_lock_init(&sc->sc_serial_rw); + + ah = ath9k_hw_attach(devid, sc, sc->mem, &status); + if (ah == NULL) { +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath9k/core.h ++++ kernel-power-2.6.28/drivers/net/wireless/ath9k/core.h +@@ -1040,6 +1040,7 @@ + spinlock_t sc_rxbuflock; + spinlock_t sc_txbuflock; + spinlock_t sc_resetlock; ++ spinlock_t sc_serial_rw; + spinlock_t node_lock; + + /* LEDs */ +@@ -1081,4 +1082,36 @@ + struct ath9k_country_entry *ctry); + u64 ath_extend_tsf(struct ath_softc *sc, u32 rstamp); + ++/* ++ * Read and write, they both share the same lock. We do this to serialize ++ * reads and writes on Atheros 802.11n PCI devices only. This is required ++ * as the FIFO on these devices can only accept sanely 2 requests. After ++ * that the device goes bananas. Serializing the reads/writes prevents this ++ * from happening. ++ */ ++ ++static inline void ath9k_iowrite32(struct ath_hal *ah, u32 reg_offset, u32 val) ++{ ++ if (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) { ++ unsigned long flags; ++ spin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags); ++ iowrite32(val, ah->ah_sc->mem + reg_offset); ++ spin_unlock_irqrestore(&ah->ah_sc->sc_serial_rw, flags); ++ } else ++ iowrite32(val, ah->ah_sc->mem + reg_offset); ++} ++ ++static inline unsigned int ath9k_ioread32(struct ath_hal *ah, u32 reg_offset) ++{ ++ u32 val; ++ if (ah->ah_config.serialize_regmode == SER_REG_MODE_ON) { ++ unsigned long flags; ++ spin_lock_irqsave(&ah->ah_sc->sc_serial_rw, flags); ++ val = ioread32(ah->ah_sc->mem + reg_offset); ++ spin_unlock_irqrestore(&ah->ah_sc->sc_serial_rw, flags); ++ } else ++ val = ioread32(ah->ah_sc->mem + reg_offset); ++ return val; ++} ++ + #endif /* CORE_H */ +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath9k/hw.c ++++ kernel-power-2.6.28/drivers/net/wireless/ath9k/hw.c +@@ -346,6 +346,25 @@ + } + + ah->ah_config.intr_mitigation = 0; ++ ++ /* ++ * We need this for PCI devices only (Cardbus, PCI, miniPCI) ++ * _and_ if on non-uniprocessor systems (Multiprocessor/HT). ++ * This means we use it for all AR5416 devices, and the few ++ * minor PCI AR9280 devices out there. ++ * ++ * Serialization is required because these devices do not handle ++ * well the case of two concurrent reads/writes due to the latency ++ * involved. During one read/write another read/write can be issued ++ * on another CPU while the previous read/write may still be working ++ * on our hardware, if we hit this case the hardware poops in a loop. ++ * We prevent this by serializing reads and writes. ++ * ++ * This issue is not present on PCI-Express devices or pre-AR5416 ++ * devices (legacy, 802.11abg). ++ */ ++ if (num_possible_cpus() > 1) ++ ah->ah_config.serialize_regmode = SER_REG_MODE_AUTO; + } + + static void ath9k_hw_override_ini(struct ath_hal *ah, +@@ -3292,7 +3311,8 @@ + } + + if (ah->ah_config.serialize_regmode == SER_REG_MODE_AUTO) { +- if (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI) { ++ if (ah->ah_macVersion == AR_SREV_VERSION_5416_PCI || ++ (AR_SREV_9280(ah) && !ah->ah_isPciExpress)) { + ah->ah_config.serialize_regmode = + SER_REG_MODE_ON; + } else { +--- kernel-power-2.6.28.orig/drivers/net/wireless/ath9k/recv.c ++++ kernel-power-2.6.28/drivers/net/wireless/ath9k/recv.c +@@ -627,9 +627,8 @@ + rfilt &= ~ATH9K_RX_FILTER_UCAST; + } + +- if (((sc->sc_ah->ah_opmode == ATH9K_M_STA) && +- (sc->rx_filter & FIF_BCN_PRBRESP_PROMISC)) || +- (sc->sc_ah->ah_opmode == ATH9K_M_IBSS)) ++ if (sc->sc_ah->ah_opmode == ATH9K_M_STA || ++ sc->sc_ah->ah_opmode == ATH9K_M_IBSS) + rfilt |= ATH9K_RX_FILTER_BEACON; + + /* If in HOSTAP mode, want to enable reception of PSPOLL frames +--- kernel-power-2.6.28.orig/drivers/net/wireless/b43/xmit.c ++++ kernel-power-2.6.28/drivers/net/wireless/b43/xmit.c +@@ -51,7 +51,7 @@ + } + + /* Extract the bitrate index out of an OFDM PLCP header. */ +-static u8 b43_plcp_get_bitrate_idx_ofdm(struct b43_plcp_hdr6 *plcp, bool aphy) ++static int b43_plcp_get_bitrate_idx_ofdm(struct b43_plcp_hdr6 *plcp, bool aphy) + { + int base = aphy ? 0 : 4; + +--- kernel-power-2.6.28.orig/drivers/net/wireless/ipw2200.c ++++ kernel-power-2.6.28/drivers/net/wireless/ipw2200.c +@@ -4347,7 +4347,8 @@ + return; + } + +- if (priv->status & STATUS_SCANNING) { ++ if (priv->status & STATUS_SCANNING && ++ missed_count > IPW_MB_SCAN_CANCEL_THRESHOLD) { + /* Stop scan to keep fw from getting + * stuck (only if we aren't roaming -- + * otherwise we'll never scan more than 2 or 3 +@@ -6277,6 +6278,20 @@ + } + } + ++static int ipw_passive_dwell_time(struct ipw_priv *priv) ++{ ++ /* staying on passive channels longer than the DTIM interval during a ++ * scan, while associated, causes the firmware to cancel the scan ++ * without notification. Hence, don't stay on passive channels longer ++ * than the beacon interval. ++ */ ++ if (priv->status & STATUS_ASSOCIATED ++ && priv->assoc_network->beacon_interval > 10) ++ return priv->assoc_network->beacon_interval - 10; ++ else ++ return 120; ++} ++ + static int ipw_request_scan_helper(struct ipw_priv *priv, int type, int direct) + { + struct ipw_scan_request_ext scan; +@@ -6320,16 +6335,16 @@ + scan.full_scan_index = cpu_to_le32(ieee80211_get_scans(priv->ieee)); + + if (type == IW_SCAN_TYPE_PASSIVE) { +- IPW_DEBUG_WX("use passive scanning\n"); +- scan_type = IPW_SCAN_PASSIVE_FULL_DWELL_SCAN; ++ IPW_DEBUG_WX("use passive scanning\n"); ++ scan_type = IPW_SCAN_PASSIVE_FULL_DWELL_SCAN; + scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = +- cpu_to_le16(120); ++ cpu_to_le16(ipw_passive_dwell_time(priv)); + ipw_add_scan_channels(priv, &scan, scan_type); + goto send_request; + } + + /* Use active scan by default. */ +- if (priv->config & CFG_SPEED_SCAN) ++ if (priv->config & CFG_SPEED_SCAN) + scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_SCAN] = + cpu_to_le16(30); + else +@@ -6339,7 +6354,8 @@ + scan.dwell_time[IPW_SCAN_ACTIVE_BROADCAST_AND_DIRECT_SCAN] = + cpu_to_le16(20); + +- scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = cpu_to_le16(120); ++ scan.dwell_time[IPW_SCAN_PASSIVE_FULL_DWELL_SCAN] = ++ cpu_to_le16(ipw_passive_dwell_time(priv)); + scan.dwell_time[IPW_SCAN_ACTIVE_DIRECT_SCAN] = cpu_to_le16(20); + + #ifdef CONFIG_IPW2200_MONITOR +--- kernel-power-2.6.28.orig/drivers/net/wireless/ipw2200.h ++++ kernel-power-2.6.28/drivers/net/wireless/ipw2200.h +@@ -244,6 +244,7 @@ + #define HOST_NOTIFICATION_S36_MEASUREMENT_REFUSED 31 + + #define HOST_NOTIFICATION_STATUS_BEACON_MISSING 1 ++#define IPW_MB_SCAN_CANCEL_THRESHOLD 3 + #define IPW_MB_ROAMING_THRESHOLD_MIN 1 + #define IPW_MB_ROAMING_THRESHOLD_DEFAULT 8 + #define IPW_MB_ROAMING_THRESHOLD_MAX 30 +--- kernel-power-2.6.28.orig/drivers/net/wireless/iwlwifi/iwl-3945-rs.c ++++ kernel-power-2.6.28/drivers/net/wireless/iwlwifi/iwl-3945-rs.c +@@ -647,12 +647,16 @@ + s8 scale_action = 0; + unsigned long flags; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; +- u16 fc, rate_mask; ++ u16 fc; ++ u16 rate_mask = 0; + struct iwl3945_priv *priv = (struct iwl3945_priv *)priv_r; + DECLARE_MAC_BUF(mac); + + IWL_DEBUG_RATE("enter\n"); + ++ if (sta) ++ rate_mask = sta->supp_rates[sband->band]; ++ + /* Send management frames and broadcast/multicast data using lowest + * rate. */ + fc = le16_to_cpu(hdr->frame_control); +@@ -660,11 +664,13 @@ + is_multicast_ether_addr(hdr->addr1) || + !sta || !priv_sta) { + IWL_DEBUG_RATE("leave: No STA priv data to update!\n"); +- sel->rate_idx = rate_lowest_index(sband, sta); ++ if (!rate_mask) ++ sel->rate_idx = rate_lowest_index(sband, NULL); ++ else ++ sel->rate_idx = rate_lowest_index(sband, sta); + return; + } + +- rate_mask = sta->supp_rates[sband->band]; + index = min(rs_sta->last_txrate_idx & 0xffff, IWL_RATE_COUNT - 1); + + if (sband->band == IEEE80211_BAND_5GHZ) +--- kernel-power-2.6.28.orig/drivers/net/wireless/iwlwifi/iwl-agn-rs.c ++++ kernel-power-2.6.28/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +@@ -951,7 +951,8 @@ + } + + /* See if there's a better rate or modulation mode to try. */ +- rs_rate_scale_perform(priv, hdr, sta, lq_sta); ++ if (sta && sta->supp_rates[sband->band]) ++ rs_rate_scale_perform(priv, hdr, sta, lq_sta); + out: + return; + } +@@ -2114,15 +2115,22 @@ + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + __le16 fc; + struct iwl_lq_sta *lq_sta; ++ u64 mask_bit = 0; + + IWL_DEBUG_RATE_LIMIT("rate scale calculate new rate for skb\n"); + ++ if (sta) ++ mask_bit = sta->supp_rates[sband->band]; ++ + /* Send management frames and broadcast/multicast data using lowest + * rate. */ + fc = hdr->frame_control; + if (!ieee80211_is_data(fc) || is_multicast_ether_addr(hdr->addr1) || + !sta || !priv_sta) { +- sel->rate_idx = rate_lowest_index(sband, sta); ++ if (!mask_bit) ++ sel->rate_idx = rate_lowest_index(sband, NULL); ++ else ++ sel->rate_idx = rate_lowest_index(sband, sta); + return; + } + +--- kernel-power-2.6.28.orig/drivers/net/wireless/iwlwifi/iwl-agn.c ++++ kernel-power-2.6.28/drivers/net/wireless/iwlwifi/iwl-agn.c +@@ -1334,16 +1334,6 @@ + priv->cfg->ops->lib->rx_handler_setup(priv); + } + +-/* +- * this should be called while priv->lock is locked +-*/ +-static void __iwl_rx_replenish(struct iwl_priv *priv) +-{ +- iwl_rx_allocate(priv); +- iwl_rx_queue_restock(priv); +-} +- +- + /** + * iwl_rx_handle - Main entry function for receiving responses from uCode + * +@@ -1451,7 +1441,7 @@ + count++; + if (count >= 8) { + priv->rxq.read = i; +- __iwl_rx_replenish(priv); ++ iwl_rx_queue_restock(priv); + count = 0; + } + } +--- kernel-power-2.6.28.orig/drivers/net/wireless/iwlwifi/iwl-rx.c ++++ kernel-power-2.6.28/drivers/net/wireless/iwlwifi/iwl-rx.c +@@ -245,25 +245,31 @@ + struct list_head *element; + struct iwl_rx_mem_buffer *rxb; + unsigned long flags; +- spin_lock_irqsave(&rxq->lock, flags); +- while (!list_empty(&rxq->rx_used)) { ++ ++ while (1) { ++ spin_lock_irqsave(&rxq->lock, flags); ++ ++ if (list_empty(&rxq->rx_used)) { ++ spin_unlock_irqrestore(&rxq->lock, flags); ++ return; ++ } + element = rxq->rx_used.next; + rxb = list_entry(element, struct iwl_rx_mem_buffer, list); ++ list_del(element); ++ ++ spin_unlock_irqrestore(&rxq->lock, flags); + + /* Alloc a new receive buffer */ + rxb->skb = alloc_skb(priv->hw_params.rx_buf_size + 256, +- __GFP_NOWARN | GFP_ATOMIC); ++ GFP_KERNEL); + if (!rxb->skb) { +- if (net_ratelimit()) +- printk(KERN_CRIT DRV_NAME +- ": Can not allocate SKB buffers\n"); ++ printk(KERN_CRIT DRV_NAME ++ "Can not allocate SKB buffers\n"); + /* We don't reschedule replenish work here -- we will + * call the restock method and if it still needs + * more buffers it will schedule replenish */ + break; + } +- priv->alloc_rxb_skb++; +- list_del(element); + + /* Get physical address of RB/SKB */ + rxb->real_dma_addr = pci_map_single( +@@ -277,12 +283,15 @@ + rxb->aligned_dma_addr = ALIGN(rxb->real_dma_addr, 256); + skb_reserve(rxb->skb, rxb->aligned_dma_addr - rxb->real_dma_addr); + ++ spin_lock_irqsave(&rxq->lock, flags); ++ + list_add_tail(&rxb->list, &rxq->rx_free); + rxq->free_count++; ++ priv->alloc_rxb_skb++; ++ ++ spin_unlock_irqrestore(&rxq->lock, flags); + } +- spin_unlock_irqrestore(&rxq->lock, flags); + } +-EXPORT_SYMBOL(iwl_rx_allocate); + + void iwl_rx_replenish(struct iwl_priv *priv) + { +--- kernel-power-2.6.28.orig/drivers/net/wireless/orinoco.c ++++ kernel-power-2.6.28/drivers/net/wireless/orinoco.c +@@ -4938,32 +4938,29 @@ + struct orinoco_private *priv = netdev_priv(dev); + u8 *buf; + unsigned long flags; +- int err = 0; + + if ((wrqu->data.length > MAX_WPA_IE_LEN) || + (wrqu->data.length && (extra == NULL))) + return -EINVAL; + +- if (orinoco_lock(priv, &flags) != 0) +- return -EBUSY; +- + if (wrqu->data.length) { + buf = kmalloc(wrqu->data.length, GFP_KERNEL); +- if (buf == NULL) { +- err = -ENOMEM; +- goto out; +- } ++ if (buf == NULL) ++ return -ENOMEM; + + memcpy(buf, extra, wrqu->data.length); +- kfree(priv->wpa_ie); +- priv->wpa_ie = buf; +- priv->wpa_ie_len = wrqu->data.length; +- } else { +- kfree(priv->wpa_ie); +- priv->wpa_ie = NULL; +- priv->wpa_ie_len = 0; ++ } else ++ buf = NULL; ++ ++ if (orinoco_lock(priv, &flags) != 0) { ++ kfree(buf); ++ return -EBUSY; + } + ++ kfree(priv->wpa_ie); ++ priv->wpa_ie = buf; ++ priv->wpa_ie_len = wrqu->data.length; ++ + if (priv->wpa_ie) { + /* Looks like wl_lkm wants to check the auth alg, and + * somehow pass it to the firmware. +@@ -4972,9 +4969,8 @@ + */ + } + +-out: + orinoco_unlock(priv, &flags); +- return err; ++ return 0; + } + + static int orinoco_ioctl_get_genie(struct net_device *dev, +--- kernel-power-2.6.28.orig/drivers/net/wireless/p54/p54common.c ++++ kernel-power-2.6.28/drivers/net/wireless/p54/p54common.c +@@ -741,17 +741,19 @@ + int p54_read_eeprom(struct ieee80211_hw *dev) + { + struct p54_common *priv = dev->priv; +- struct p54_control_hdr *hdr = NULL; ++ struct p54_control_hdr *hdr = NULL, *org_hdr; + struct p54_eeprom_lm86 *eeprom_hdr; + size_t eeprom_size = 0x2020, offset = 0, blocksize; + int ret = -ENOMEM; + void *eeprom = NULL; + +- hdr = (struct p54_control_hdr *)kzalloc(sizeof(*hdr) + +- sizeof(*eeprom_hdr) + EEPROM_READBACK_LEN, GFP_KERNEL); +- if (!hdr) ++ org_hdr = kzalloc(priv->tx_hdr_len + sizeof(*hdr) + ++ sizeof(*eeprom_hdr) + EEPROM_READBACK_LEN, ++ GFP_KERNEL); ++ if (!org_hdr) + goto free; + ++ hdr = (void *) org_hdr + priv->tx_hdr_len; + priv->eeprom = kzalloc(EEPROM_READBACK_LEN, GFP_KERNEL); + if (!priv->eeprom) + goto free; +@@ -790,7 +792,7 @@ + free: + kfree(priv->eeprom); + priv->eeprom = NULL; +- kfree(hdr); ++ kfree(org_hdr); + kfree(eeprom); + + return ret; +--- kernel-power-2.6.28.orig/drivers/net/wireless/p54/p54usb.c ++++ kernel-power-2.6.28/drivers/net/wireless/p54/p54usb.c +@@ -54,6 +54,7 @@ + {USB_DEVICE(0x050d, 0x7050)}, /* Belkin F5D7050 ver 1000 */ + {USB_DEVICE(0x0572, 0x2000)}, /* Cohiba Proto board */ + {USB_DEVICE(0x0572, 0x2002)}, /* Cohiba Proto board */ ++ {USB_DEVICE(0x06b9, 0x0121)}, /* Thomson SpeedTouch 121g */ + {USB_DEVICE(0x0707, 0xee13)}, /* SMC 2862W-G version 2 */ + {USB_DEVICE(0x083a, 0x4521)}, /* Siemens Gigaset USB Adapter 54 version 2 */ + {USB_DEVICE(0x0846, 0x4240)}, /* Netgear WG111 (v2) */ +@@ -84,13 +85,13 @@ + struct ieee80211_hw *dev = info->dev; + struct p54u_priv *priv = dev->priv; + ++ skb_unlink(skb, &priv->rx_queue); ++ + if (unlikely(urb->status)) { +- info->urb = NULL; +- usb_free_urb(urb); ++ dev_kfree_skb_irq(skb); + return; + } + +- skb_unlink(skb, &priv->rx_queue); + skb_put(skb, urb->actual_length); + + if (priv->hw_type == P54U_NET2280) +@@ -103,7 +104,6 @@ + if (p54_rx(dev, skb)) { + skb = dev_alloc_skb(priv->common.rx_mtu + 32); + if (unlikely(!skb)) { +- usb_free_urb(urb); + /* TODO check rx queue length and refill *somewhere* */ + return; + } +@@ -113,7 +113,6 @@ + info->dev = dev; + urb->transfer_buffer = skb_tail_pointer(skb); + urb->context = skb; +- skb_queue_tail(&priv->rx_queue, skb); + } else { + if (priv->hw_type == P54U_NET2280) + skb_push(skb, priv->common.tx_hdr_len); +@@ -128,22 +127,23 @@ + WARN_ON(1); + urb->transfer_buffer = skb_tail_pointer(skb); + } +- +- skb_queue_tail(&priv->rx_queue, skb); + } + +- usb_submit_urb(urb, GFP_ATOMIC); ++ usb_anchor_urb(urb, &priv->submitted); ++ if (usb_submit_urb(urb, GFP_ATOMIC)) { ++ usb_unanchor_urb(urb); ++ dev_kfree_skb_irq(skb); ++ } else ++ skb_queue_tail(&priv->rx_queue, skb); + } + +-static void p54u_tx_cb(struct urb *urb) +-{ +- usb_free_urb(urb); +-} ++static void p54u_tx_cb(struct urb *urb) { } + +-static void p54u_tx_free_cb(struct urb *urb) ++static void p54u_free_urbs(struct ieee80211_hw *dev) + { +- kfree(urb->transfer_buffer); +- usb_free_urb(urb); ++ struct p54u_priv *priv = dev->priv; ++ ++ usb_kill_anchored_urbs(&priv->submitted); + } + + static int p54u_init_urbs(struct ieee80211_hw *dev) +@@ -152,15 +152,18 @@ + struct urb *entry; + struct sk_buff *skb; + struct p54u_rx_info *info; ++ int ret = 0; + + while (skb_queue_len(&priv->rx_queue) < 32) { + skb = __dev_alloc_skb(priv->common.rx_mtu + 32, GFP_KERNEL); +- if (!skb) +- break; ++ if (!skb) { ++ ret = -ENOMEM; ++ goto err; ++ } + entry = usb_alloc_urb(0, GFP_KERNEL); + if (!entry) { +- kfree_skb(skb); +- break; ++ ret = -ENOMEM; ++ goto err; + } + usb_fill_bulk_urb(entry, priv->udev, + usb_rcvbulkpipe(priv->udev, P54U_PIPE_DATA), +@@ -170,26 +173,25 @@ + info->urb = entry; + info->dev = dev; + skb_queue_tail(&priv->rx_queue, skb); +- usb_submit_urb(entry, GFP_KERNEL); ++ ++ usb_anchor_urb(entry, &priv->submitted); ++ ret = usb_submit_urb(entry, GFP_KERNEL); ++ if (ret) { ++ skb_unlink(skb, &priv->rx_queue); ++ usb_unanchor_urb(entry); ++ goto err; ++ } ++ usb_free_urb(entry); ++ entry = NULL; + } + + return 0; +-} +- +-static void p54u_free_urbs(struct ieee80211_hw *dev) +-{ +- struct p54u_priv *priv = dev->priv; +- struct p54u_rx_info *info; +- struct sk_buff *skb; +- +- while ((skb = skb_dequeue(&priv->rx_queue))) { +- info = (struct p54u_rx_info *) skb->cb; +- if (!info->urb) +- continue; + +- usb_kill_urb(info->urb); +- kfree_skb(skb); +- } ++err: ++ usb_free_urb(entry); ++ kfree_skb(skb); ++ p54u_free_urbs(dev); ++ return ret; + } + + static void p54u_tx_3887(struct ieee80211_hw *dev, struct p54_control_hdr *data, +@@ -209,23 +211,38 @@ + } + + usb_fill_bulk_urb(addr_urb, priv->udev, +- usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), &data->req_id, +- sizeof(data->req_id), p54u_tx_cb, dev); ++ usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), ++ &data->req_id, sizeof(data->req_id), p54u_tx_cb, ++ dev); + usb_fill_bulk_urb(data_urb, priv->udev, +- usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), data, len, +- free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, dev); ++ usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), ++ data, len, p54u_tx_cb, dev); ++ addr_urb->transfer_flags |= URB_ZERO_PACKET; ++ data_urb->transfer_flags |= URB_ZERO_PACKET | ++ (free_on_tx ? URB_FREE_BUFFER : 0); ++ ++ usb_anchor_urb(addr_urb, &priv->submitted); ++ if (usb_submit_urb(addr_urb, GFP_ATOMIC)) { ++ usb_unanchor_urb(addr_urb); ++ goto out; ++ } + +- usb_submit_urb(addr_urb, GFP_ATOMIC); +- usb_submit_urb(data_urb, GFP_ATOMIC); ++ usb_anchor_urb(data_urb, &priv->submitted); ++ if (usb_submit_urb(data_urb, GFP_ATOMIC)) ++ usb_unanchor_urb(data_urb); ++ ++out: ++ usb_free_urb(addr_urb); ++ usb_free_urb(data_urb); + } + +-static __le32 p54u_lm87_chksum(const u32 *data, size_t length) ++static __le32 p54u_lm87_chksum(const __le32 *data, size_t length) + { + u32 chk = 0; + + length >>= 2; + while (length--) { +- chk ^= *data++; ++ chk ^= le32_to_cpu(*data++); + chk = (chk >> 5) ^ (chk << 3); + } + +@@ -244,15 +261,20 @@ + if (!data_urb) + return; + +- hdr->chksum = p54u_lm87_chksum((u32 *)data, len); ++ hdr->chksum = p54u_lm87_chksum((__le32 *) data, len); + hdr->device_addr = data->req_id; + + usb_fill_bulk_urb(data_urb, priv->udev, +- usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr, +- len + sizeof(*hdr), free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, +- dev); ++ usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr, ++ len + sizeof(*hdr), p54u_tx_cb, dev); ++ data_urb->transfer_flags |= URB_ZERO_PACKET | ++ (free_on_tx ? URB_FREE_BUFFER : 0); ++ ++ usb_anchor_urb(data_urb, &priv->submitted); ++ if (usb_submit_urb(data_urb, GFP_ATOMIC)) ++ usb_unanchor_urb(data_urb); + +- usb_submit_urb(data_urb, GFP_ATOMIC); ++ usb_free_urb(data_urb); + } + + static void p54u_tx_net2280(struct ieee80211_hw *dev, struct p54_control_hdr *data, +@@ -291,14 +313,30 @@ + hdr->len = cpu_to_le16(len); + + usb_fill_bulk_urb(int_urb, priv->udev, +- usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg), +- p54u_tx_free_cb, dev); +- usb_submit_urb(int_urb, GFP_ATOMIC); ++ usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), ++ reg, sizeof(*reg), p54u_tx_cb, dev); ++ int_urb->transfer_flags |= URB_ZERO_PACKET | URB_FREE_BUFFER; ++ usb_anchor_urb(int_urb, &priv->submitted); ++ if (usb_submit_urb(int_urb, GFP_ATOMIC)) { ++ usb_unanchor_urb(int_urb); ++ goto out; ++ } + + usb_fill_bulk_urb(data_urb, priv->udev, +- usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr, len + sizeof(*hdr), +- free_on_tx ? p54u_tx_free_cb : p54u_tx_cb, dev); +- usb_submit_urb(data_urb, GFP_ATOMIC); ++ usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA), hdr, ++ len + sizeof(*hdr), p54u_tx_cb, dev); ++ data_urb->transfer_flags |= URB_ZERO_PACKET | ++ (free_on_tx ? URB_FREE_BUFFER : 0); ++ ++ usb_anchor_urb(int_urb, &priv->submitted); ++ if (usb_submit_urb(data_urb, GFP_ATOMIC)) { ++ usb_unanchor_urb(data_urb); ++ goto out; ++ } ++ ++out: ++ usb_free_urb(int_urb); ++ usb_free_urb(data_urb); + } + + static int p54u_write(struct p54u_priv *priv, +@@ -799,6 +837,7 @@ + SET_IEEE80211_DEV(dev, &intf->dev); + usb_set_intfdata(intf, dev); + priv->udev = udev; ++ init_usb_anchor(&priv->submitted); + + usb_get_dev(udev); + +--- kernel-power-2.6.28.orig/drivers/net/wireless/p54/p54usb.h ++++ kernel-power-2.6.28/drivers/net/wireless/p54/p54usb.h +@@ -133,6 +133,7 @@ + + spinlock_t lock; + struct sk_buff_head rx_queue; ++ struct usb_anchor submitted; + }; + + #endif /* P54USB_H */ +--- kernel-power-2.6.28.orig/drivers/net/wireless/rt2x00/rt73usb.c ++++ kernel-power-2.6.28/drivers/net/wireless/rt2x00/rt73usb.c +@@ -2434,6 +2434,7 @@ + /* Linksys */ + { USB_DEVICE(0x13b1, 0x0020), USB_DEVICE_DATA(&rt73usb_ops) }, + { USB_DEVICE(0x13b1, 0x0023), USB_DEVICE_DATA(&rt73usb_ops) }, ++ { USB_DEVICE(0x13b1, 0x0028), USB_DEVICE_DATA(&rt73usb_ops) }, + /* MSI */ + { USB_DEVICE(0x0db0, 0x6877), USB_DEVICE_DATA(&rt73usb_ops) }, + { USB_DEVICE(0x0db0, 0x6874), USB_DEVICE_DATA(&rt73usb_ops) }, +--- kernel-power-2.6.28.orig/drivers/net/wireless/rtl8187_dev.c ++++ kernel-power-2.6.28/drivers/net/wireless/rtl8187_dev.c +@@ -40,6 +40,10 @@ + {USB_DEVICE(0x0bda, 0x8189), .driver_info = DEVICE_RTL8187B}, + {USB_DEVICE(0x0bda, 0x8197), .driver_info = DEVICE_RTL8187B}, + {USB_DEVICE(0x0bda, 0x8198), .driver_info = DEVICE_RTL8187B}, ++ /* Surecom */ ++ {USB_DEVICE(0x0769, 0x11F2), .driver_info = DEVICE_RTL8187}, ++ /* Logitech */ ++ {USB_DEVICE(0x0789, 0x010C), .driver_info = DEVICE_RTL8187}, + /* Netgear */ + {USB_DEVICE(0x0846, 0x6100), .driver_info = DEVICE_RTL8187}, + {USB_DEVICE(0x0846, 0x6a00), .driver_info = DEVICE_RTL8187}, +@@ -49,8 +53,16 @@ + /* Sitecom */ + {USB_DEVICE(0x0df6, 0x000d), .driver_info = DEVICE_RTL8187}, + {USB_DEVICE(0x0df6, 0x0028), .driver_info = DEVICE_RTL8187B}, ++ /* Sphairon Access Systems GmbH */ ++ {USB_DEVICE(0x114B, 0x0150), .driver_info = DEVICE_RTL8187}, ++ /* Dick Smith Electronics */ ++ {USB_DEVICE(0x1371, 0x9401), .driver_info = DEVICE_RTL8187}, + /* Abocom */ + {USB_DEVICE(0x13d1, 0xabe6), .driver_info = DEVICE_RTL8187}, ++ /* Qcom */ ++ {USB_DEVICE(0x18E8, 0x6232), .driver_info = DEVICE_RTL8187}, ++ /* AirLive */ ++ {USB_DEVICE(0x1b75, 0x8187), .driver_info = DEVICE_RTL8187}, + {} + }; + +@@ -263,6 +275,7 @@ + + usb_fill_bulk_urb(urb, priv->udev, usb_sndbulkpipe(priv->udev, ep), + buf, skb->len, rtl8187_tx_cb, skb); ++ urb->transfer_flags |= URB_ZERO_PACKET; + rc = usb_submit_urb(urb, GFP_ATOMIC); + if (rc < 0) { + usb_free_urb(urb); +--- kernel-power-2.6.28.orig/drivers/net/wireless/rtl8187_rtl8225.c ++++ kernel-power-2.6.28/drivers/net/wireless/rtl8187_rtl8225.c +@@ -287,7 +287,10 @@ + ofdm_power = priv->channels[channel - 1].hw_value >> 4; + + cck_power = min(cck_power, (u8)11); +- ofdm_power = min(ofdm_power, (u8)35); ++ if (ofdm_power > (u8)15) ++ ofdm_power = 25; ++ else ++ ofdm_power += 10; + + rtl818x_iowrite8(priv, &priv->map->TX_GAIN_CCK, + rtl8225_tx_gain_cck_ofdm[cck_power / 6] >> 1); +@@ -540,7 +543,10 @@ + cck_power += priv->txpwr_base & 0xF; + cck_power = min(cck_power, (u8)35); + +- ofdm_power = min(ofdm_power, (u8)15); ++ if (ofdm_power > (u8)15) ++ ofdm_power = 25; ++ else ++ ofdm_power += 10; + ofdm_power += priv->txpwr_base >> 4; + ofdm_power = min(ofdm_power, (u8)35); + +--- kernel-power-2.6.28.orig/drivers/net/wireless/zd1211rw/zd_rf.c ++++ kernel-power-2.6.28/drivers/net/wireless/zd1211rw/zd_rf.c +@@ -86,6 +86,7 @@ + case AL7230B_RF: + r = zd_rf_init_al7230b(rf); + break; ++ case MAXIM_NEW_RF: + case UW2453_RF: + r = zd_rf_init_uw2453(rf); + break; +--- kernel-power-2.6.28.orig/drivers/net/wireless/zd1211rw/zd_usb.c ++++ kernel-power-2.6.28/drivers/net/wireless/zd1211rw/zd_usb.c +@@ -37,6 +37,7 @@ + static struct usb_device_id usb_ids[] = { + /* ZD1211 */ + { USB_DEVICE(0x0ace, 0x1211), .driver_info = DEVICE_ZD1211 }, ++ { USB_DEVICE(0x0ace, 0xa211), .driver_info = DEVICE_ZD1211 }, + { USB_DEVICE(0x07b8, 0x6001), .driver_info = DEVICE_ZD1211 }, + { USB_DEVICE(0x126f, 0xa006), .driver_info = DEVICE_ZD1211 }, + { USB_DEVICE(0x6891, 0xa727), .driver_info = DEVICE_ZD1211 }, +--- kernel-power-2.6.28.orig/drivers/parport/parport_serial.c ++++ kernel-power-2.6.28/drivers/parport/parport_serial.c +@@ -64,6 +64,11 @@ + + static int __devinit netmos_parallel_init(struct pci_dev *dev, struct parport_pc_pci *card, int autoirq, int autodma) + { ++ /* the rule described below doesn't hold for this device */ ++ if (dev->device == PCI_DEVICE_ID_NETMOS_9835 && ++ dev->subsystem_vendor == PCI_VENDOR_ID_IBM && ++ dev->subsystem_device == 0x0299) ++ return -ENODEV; + /* + * Netmos uses the subdevice ID to indicate the number of parallel + * and serial ports. The form is 0x00PS, where

is the number of +--- kernel-power-2.6.28.orig/drivers/pci/hotplug/pciehp_core.c ++++ kernel-power-2.6.28/drivers/pci/hotplug/pciehp_core.c +@@ -126,8 +126,10 @@ + mutex_lock(&slot->ctrl->crit_sect); + + /* has it been >1 sec since our last toggle? */ +- if ((get_seconds() - slot->last_emi_toggle) < 1) ++ if ((get_seconds() - slot->last_emi_toggle) < 1) { ++ mutex_unlock(&slot->ctrl->crit_sect); + return -EINVAL; ++ } + + /* see what our current state is */ + retval = get_lock_status(hotplug_slot, &value); +--- kernel-power-2.6.28.orig/drivers/pci/intel-iommu.c ++++ kernel-power-2.6.28/drivers/pci/intel-iommu.c +@@ -71,6 +71,8 @@ + /* bitmap for indexing intel_iommus */ + static int g_num_of_iommus; + ++static int rwbf_quirk = 0; ++ + static DEFINE_SPINLOCK(async_umap_flush_lock); + static LIST_HEAD(unmaps_to_do); + +@@ -506,7 +508,7 @@ + u32 val; + unsigned long flag; + +- if (!cap_rwbf(iommu->cap)) ++ if (!rwbf_quirk && !cap_rwbf(iommu->cap)) + return; + val = iommu->gcmd | DMA_GCMD_WBF; + +@@ -2436,3 +2438,13 @@ + return pfn >> VTD_PAGE_SHIFT; + } + EXPORT_SYMBOL_GPL(intel_iommu_iova_to_pfn); ++ ++static void __devinit quirk_iommu_rwbf(struct pci_dev *dev) ++{ ++ /* Mobile 4 Series Chipset neglects to set RWBF capability, ++ but needs it */ ++ printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n"); ++ rwbf_quirk = 1; ++} ++ ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf); +--- kernel-power-2.6.28.orig/drivers/pci/msi.c ++++ kernel-power-2.6.28/drivers/pci/msi.c +@@ -378,21 +378,19 @@ + entry->msi_attrib.masked = 1; + entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */ + entry->msi_attrib.pos = pos; +- if (entry->msi_attrib.maskbit) { +- entry->mask_base = (void __iomem *)(long)msi_mask_bits_reg(pos, +- entry->msi_attrib.is_64); +- } + entry->dev = dev; + if (entry->msi_attrib.maskbit) { +- unsigned int maskbits, temp; ++ unsigned int base, maskbits, temp; ++ ++ base = msi_mask_bits_reg(pos, entry->msi_attrib.is_64); ++ entry->mask_base = (void __iomem *)(long)base; ++ + /* All MSIs are unmasked by default, Mask them all */ +- pci_read_config_dword(dev, +- msi_mask_bits_reg(pos, entry->msi_attrib.is_64), +- &maskbits); ++ pci_read_config_dword(dev, base, &maskbits); + temp = (1 << multi_msi_capable(control)); + temp = ((temp - 1) & ~temp); + maskbits |= temp; +- pci_write_config_dword(dev, entry->msi_attrib.is_64, maskbits); ++ pci_write_config_dword(dev, base, maskbits); + entry->msi_attrib.maskbits_mask = temp; + } + list_add_tail(&entry->list, &dev->msi_list); +--- kernel-power-2.6.28.orig/drivers/pci/pci-sysfs.c ++++ kernel-power-2.6.28/drivers/pci/pci-sysfs.c +@@ -777,8 +777,8 @@ + return -EINVAL; + + rom = pci_map_rom(pdev, &size); /* size starts out as PCI window size */ +- if (!rom) +- return 0; ++ if (!rom || !size) ++ return -EIO; + + if (off >= size) + count = 0; +--- kernel-power-2.6.28.orig/drivers/pci/pcie/aer/aerdrv_core.c ++++ kernel-power-2.6.28/drivers/pci/pcie/aer/aerdrv_core.c +@@ -108,6 +108,34 @@ + } + #endif /* 0 */ + ++ ++static void set_device_error_reporting(struct pci_dev *dev, void *data) ++{ ++ bool enable = *((bool *)data); ++ ++ if (dev->pcie_type != PCIE_RC_PORT && ++ dev->pcie_type != PCIE_SW_UPSTREAM_PORT && ++ dev->pcie_type != PCIE_SW_DOWNSTREAM_PORT) ++ return; ++ ++ if (enable) ++ pci_enable_pcie_error_reporting(dev); ++ else ++ pci_disable_pcie_error_reporting(dev); ++} ++ ++/** ++ * set_downstream_devices_error_reporting - enable/disable the error reporting bits on the root port and its downstream ports. ++ * @dev: pointer to root port's pci_dev data structure ++ * @enable: true = enable error reporting, false = disable error reporting. ++ */ ++static void set_downstream_devices_error_reporting(struct pci_dev *dev, ++ bool enable) ++{ ++ set_device_error_reporting(dev, &enable); ++ pci_walk_bus(dev->subordinate, set_device_error_reporting, &enable); ++} ++ + static int find_device_iter(struct device *device, void *data) + { + struct pci_dev *dev; +@@ -525,15 +553,11 @@ + pci_read_config_dword(pdev, aer_pos + PCI_ERR_UNCOR_STATUS, ®32); + pci_write_config_dword(pdev, aer_pos + PCI_ERR_UNCOR_STATUS, reg32); + +- /* Enable Root Port device reporting error itself */ +- pci_read_config_word(pdev, pos+PCI_EXP_DEVCTL, ®16); +- reg16 = reg16 | +- PCI_EXP_DEVCTL_CERE | +- PCI_EXP_DEVCTL_NFERE | +- PCI_EXP_DEVCTL_FERE | +- PCI_EXP_DEVCTL_URRE; +- pci_write_config_word(pdev, pos+PCI_EXP_DEVCTL, +- reg16); ++ /* ++ * Enable error reporting for the root port device and downstream port ++ * devices. ++ */ ++ set_downstream_devices_error_reporting(pdev, true); + + /* Enable Root Port's interrupt in response to error messages */ + pci_write_config_dword(pdev, +@@ -553,6 +577,12 @@ + u32 reg32; + int pos; + ++ /* ++ * Disable error reporting for the root port device and downstream port ++ * devices. ++ */ ++ set_downstream_devices_error_reporting(pdev, false); ++ + pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); + /* Disable Root's interrupt in response to error messages */ + pci_write_config_dword(pdev, pos + PCI_ERR_ROOT_COMMAND, 0); +--- kernel-power-2.6.28.orig/drivers/pci/pcie/aspm.c ++++ kernel-power-2.6.28/drivers/pci/pcie/aspm.c +@@ -33,6 +33,11 @@ + struct pcie_link_state { + struct list_head sibiling; + struct pci_dev *pdev; ++ bool downstream_has_switch; ++ ++ struct pcie_link_state *parent; ++ struct list_head children; ++ struct list_head link; + + /* ASPM state */ + unsigned int support_state; +@@ -125,7 +130,7 @@ + link_state->clk_pm_enabled = !!enable; + } + +-static void pcie_check_clock_pm(struct pci_dev *pdev) ++static void pcie_check_clock_pm(struct pci_dev *pdev, int blacklist) + { + int pos; + u32 reg32; +@@ -149,10 +154,26 @@ + if (!(reg16 & PCI_EXP_LNKCTL_CLKREQ_EN)) + enabled = 0; + } +- link_state->clk_pm_capable = capable; + link_state->clk_pm_enabled = enabled; + link_state->bios_clk_state = enabled; +- pcie_set_clock_pm(pdev, policy_to_clkpm_state(pdev)); ++ if (!blacklist) { ++ link_state->clk_pm_capable = capable; ++ pcie_set_clock_pm(pdev, policy_to_clkpm_state(pdev)); ++ } else { ++ link_state->clk_pm_capable = 0; ++ pcie_set_clock_pm(pdev, 0); ++ } ++} ++ ++static bool pcie_aspm_downstream_has_switch(struct pci_dev *pdev) ++{ ++ struct pci_dev *child_dev; ++ ++ list_for_each_entry(child_dev, &pdev->subordinate->devices, bus_list) { ++ if (child_dev->pcie_type == PCI_EXP_TYPE_UPSTREAM) ++ return true; ++ } ++ return false; + } + + /* +@@ -419,9 +440,9 @@ + { + struct pci_dev *child_dev; + +- /* If no child, disable the link */ ++ /* If no child, ignore the link */ + if (list_empty(&pdev->subordinate->devices)) +- return 0; ++ return state; + list_for_each_entry(child_dev, &pdev->subordinate->devices, bus_list) { + if (child_dev->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE) { + /* +@@ -462,6 +483,9 @@ + int valid = 1; + struct pcie_link_state *link_state = pdev->link_state; + ++ /* If no child, disable the link */ ++ if (list_empty(&pdev->subordinate->devices)) ++ state = 0; + /* + * if the downstream component has pci bridge function, don't do ASPM + * now +@@ -493,20 +517,52 @@ + link_state->enabled_state = state; + } + ++static struct pcie_link_state *get_root_port_link(struct pcie_link_state *link) ++{ ++ struct pcie_link_state *root_port_link = link; ++ while (root_port_link->parent) ++ root_port_link = root_port_link->parent; ++ return root_port_link; ++} ++ ++/* check the whole hierarchy, and configure each link in the hierarchy */ + static void __pcie_aspm_configure_link_state(struct pci_dev *pdev, + unsigned int state) + { + struct pcie_link_state *link_state = pdev->link_state; ++ struct pcie_link_state *root_port_link = get_root_port_link(link_state); ++ struct pcie_link_state *leaf; + +- if (link_state->support_state == 0) +- return; + state &= PCIE_LINK_STATE_L0S|PCIE_LINK_STATE_L1; + +- /* state 0 means disabling aspm */ +- state = pcie_aspm_check_state(pdev, state); ++ /* check all links who have specific root port link */ ++ list_for_each_entry(leaf, &link_list, sibiling) { ++ if (!list_empty(&leaf->children) || ++ get_root_port_link(leaf) != root_port_link) ++ continue; ++ state = pcie_aspm_check_state(leaf->pdev, state); ++ } ++ /* check root port link too in case it hasn't children */ ++ state = pcie_aspm_check_state(root_port_link->pdev, state); ++ + if (link_state->enabled_state == state) + return; +- __pcie_aspm_config_link(pdev, state); ++ ++ /* ++ * we must change the hierarchy. See comments in ++ * __pcie_aspm_config_link for the order ++ **/ ++ if (state & PCIE_LINK_STATE_L1) { ++ list_for_each_entry(leaf, &link_list, sibiling) { ++ if (get_root_port_link(leaf) == root_port_link) ++ __pcie_aspm_config_link(leaf->pdev, state); ++ } ++ } else { ++ list_for_each_entry_reverse(leaf, &link_list, sibiling) { ++ if (get_root_port_link(leaf) == root_port_link) ++ __pcie_aspm_config_link(leaf->pdev, state); ++ } ++ } + } + + /* +@@ -570,6 +626,7 @@ + unsigned int state; + struct pcie_link_state *link_state; + int error = 0; ++ int blacklist; + + if (aspm_disabled || !pdev->is_pcie || pdev->link_state) + return; +@@ -580,29 +637,58 @@ + if (list_empty(&pdev->subordinate->devices)) + goto out; + +- if (pcie_aspm_sanity_check(pdev)) +- goto out; ++ blacklist = !!pcie_aspm_sanity_check(pdev); + + mutex_lock(&aspm_lock); + + link_state = kzalloc(sizeof(*link_state), GFP_KERNEL); + if (!link_state) + goto unlock_out; +- pdev->link_state = link_state; + +- pcie_aspm_configure_common_clock(pdev); +- +- pcie_aspm_cap_init(pdev); ++ link_state->downstream_has_switch = pcie_aspm_downstream_has_switch(pdev); ++ INIT_LIST_HEAD(&link_state->children); ++ INIT_LIST_HEAD(&link_state->link); ++ if (pdev->bus->self) {/* this is a switch */ ++ struct pcie_link_state *parent_link_state; ++ ++ parent_link_state = pdev->bus->parent->self->link_state; ++ if (!parent_link_state) { ++ kfree(link_state); ++ goto unlock_out; ++ } ++ list_add(&link_state->link, &parent_link_state->children); ++ link_state->parent = parent_link_state; ++ } + +- /* config link state to avoid BIOS error */ +- state = pcie_aspm_check_state(pdev, policy_to_aspm_state(pdev)); +- __pcie_aspm_config_link(pdev, state); ++ pdev->link_state = link_state; + +- pcie_check_clock_pm(pdev); ++ if (!blacklist) { ++ pcie_aspm_configure_common_clock(pdev); ++ pcie_aspm_cap_init(pdev); ++ } else { ++ link_state->enabled_state = PCIE_LINK_STATE_L0S|PCIE_LINK_STATE_L1; ++ link_state->bios_aspm_state = 0; ++ /* Set support state to 0, so we will disable ASPM later */ ++ link_state->support_state = 0; ++ } + + link_state->pdev = pdev; + list_add(&link_state->sibiling, &link_list); + ++ if (link_state->downstream_has_switch) { ++ /* ++ * If link has switch, delay the link config. The leaf link ++ * initialization will config the whole hierarchy. but we must ++ * make sure BIOS doesn't set unsupported link state ++ **/ ++ state = pcie_aspm_check_state(pdev, link_state->bios_aspm_state); ++ __pcie_aspm_config_link(pdev, state); ++ } else ++ __pcie_aspm_configure_link_state(pdev, ++ policy_to_aspm_state(pdev)); ++ ++ pcie_check_clock_pm(pdev, blacklist); ++ + unlock_out: + if (error) + free_link_state(pdev); +@@ -627,14 +713,15 @@ + + /* + * All PCIe functions are in one slot, remove one function will remove +- * the the whole slot, so just wait ++ * the whole slot, so just wait until we are the last function left. + */ +- if (!list_empty(&parent->subordinate->devices)) ++ if (!list_is_last(&pdev->bus_list, &parent->subordinate->devices)) + goto out; + + /* All functions are removed, so just disable ASPM for the link */ + __pcie_aspm_config_one_dev(parent, 0); + list_del(&link_state->sibiling); ++ list_del(&link_state->link); + /* Clock PM is for endpoint device */ + + free_link_state(parent); +--- kernel-power-2.6.28.orig/drivers/pci/pcie/portdrv_pci.c ++++ kernel-power-2.6.28/drivers/pci/pcie/portdrv_pci.c +@@ -101,14 +101,13 @@ + + pcie_portdrv_save_config(dev); + +- pci_enable_pcie_error_reporting(dev); +- + return 0; + } + + static void pcie_portdrv_remove (struct pci_dev *dev) + { + pcie_port_device_remove(dev); ++ pci_disable_device(dev); + kfree(pci_get_drvdata(dev)); + } + +--- kernel-power-2.6.28.orig/drivers/pci/quirks.c ++++ kernel-power-2.6.28/drivers/pci/quirks.c +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include "pci.h" + + int isa_dma_bridge_buggy; +@@ -1543,6 +1544,30 @@ + } + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt); + ++/* ++ * The 82575 and 82598 may experience data corruption issues when transitioning ++ * out of L0S. To prevent this we need to disable L0S on the pci-e link ++ */ ++static void __devinit quirk_disable_aspm_l0s(struct pci_dev *dev) ++{ ++ dev_info(&dev->dev, "Disabling L0s\n"); ++ pci_disable_link_state(dev, PCIE_LINK_STATE_L0S); ++} ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10a7, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10a9, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10b6, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10c6, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10c7, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10c8, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10d6, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10db, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10dd, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10e1, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10ec, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f1, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f4, quirk_disable_aspm_l0s); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1508, quirk_disable_aspm_l0s); ++ + static void __devinit fixup_rev1_53c810(struct pci_dev* dev) + { + /* rev 1 ncr53c810 chips don't set the class at all which means +@@ -1778,7 +1803,6 @@ + DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE, + quirk_msi_ht_cap); + +- + /* The nVidia CK804 chipset may have 2 HT MSI mappings. + * MSI are supported if the MSI capability set in any of these mappings. + */ +@@ -1829,6 +1853,9 @@ + PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB, + ht_enable_msi_mapping); + ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, ++ ht_enable_msi_mapping); ++ + /* The P5N32-SLI Premium motherboard from Asus has a problem with msi + * for the MCP55 NIC. It is not yet determined whether the msi problem + * also affects other devices. As for now, turn off msi for this device. +--- kernel-power-2.6.28.orig/drivers/pci/rom.c ++++ kernel-power-2.6.28/drivers/pci/rom.c +@@ -63,7 +63,7 @@ + * The PCI window size could be much larger than the + * actual image size. + */ +-size_t pci_get_rom_size(void __iomem *rom, size_t size) ++size_t pci_get_rom_size(struct pci_dev *pdev, void __iomem *rom, size_t size) + { + void __iomem *image; + int last_image; +@@ -72,8 +72,10 @@ + do { + void __iomem *pds; + /* Standard PCI ROMs start out with these bytes 55 AA */ +- if (readb(image) != 0x55) ++ if (readb(image) != 0x55) { ++ dev_err(&pdev->dev, "Invalid ROM contents\n"); + break; ++ } + if (readb(image + 1) != 0xAA) + break; + /* get the PCI data structure and check its signature */ +@@ -159,7 +161,7 @@ + * size is much larger than the actual size of the ROM. + * True size is important if the ROM is going to be copied. + */ +- *size = pci_get_rom_size(rom, *size); ++ *size = pci_get_rom_size(pdev, rom, *size); + return rom; + } + +--- kernel-power-2.6.28.orig/drivers/pci/syscall.c ++++ kernel-power-2.6.28/drivers/pci/syscall.c +@@ -14,10 +14,8 @@ + #include + #include "pci.h" + +-asmlinkage long +-sys_pciconfig_read(unsigned long bus, unsigned long dfn, +- unsigned long off, unsigned long len, +- void __user *buf) ++SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn, ++ unsigned long, off, unsigned long, len, void __user *, buf) + { + struct pci_dev *dev; + u8 byte; +@@ -86,10 +84,8 @@ + return err; + } + +-asmlinkage long +-sys_pciconfig_write(unsigned long bus, unsigned long dfn, +- unsigned long off, unsigned long len, +- void __user *buf) ++SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, ++ unsigned long, off, unsigned long, len, void __user *, buf) + { + struct pci_dev *dev; + u8 byte; +--- kernel-power-2.6.28.orig/drivers/scsi/eata.c ++++ kernel-power-2.6.28/drivers/scsi/eata.c +@@ -1626,8 +1626,15 @@ + + cpp->sense_len = SCSI_SENSE_BUFFERSIZE; + +- count = scsi_dma_map(SCpnt); +- BUG_ON(count < 0); ++ if (!scsi_sg_count(SCpnt)) { ++ cpp->data_len = 0; ++ return; ++ } ++ ++ count = pci_map_sg(ha->pdev, scsi_sglist(SCpnt), scsi_sg_count(SCpnt), ++ pci_dir); ++ BUG_ON(!count); ++ + scsi_for_each_sg(SCpnt, sg, count, k) { + cpp->sglist[k].address = H2DEV(sg_dma_address(sg)); + cpp->sglist[k].num_bytes = H2DEV(sg_dma_len(sg)); +@@ -1655,7 +1662,9 @@ + pci_unmap_single(ha->pdev, DEV2H(cpp->sense_addr), + DEV2H(cpp->sense_len), PCI_DMA_FROMDEVICE); + +- scsi_dma_unmap(SCpnt); ++ if (scsi_sg_count(SCpnt)) ++ pci_unmap_sg(ha->pdev, scsi_sglist(SCpnt), scsi_sg_count(SCpnt), ++ pci_dir); + + if (!DEV2H(cpp->data_len)) + pci_dir = PCI_DMA_BIDIRECTIONAL; +--- kernel-power-2.6.28.orig/drivers/scsi/hptiop.c ++++ kernel-power-2.6.28/drivers/scsi/hptiop.c +@@ -1251,6 +1251,7 @@ + { PCI_VDEVICE(TTI, 0x3530), (kernel_ulong_t)&hptiop_itl_ops }, + { PCI_VDEVICE(TTI, 0x3560), (kernel_ulong_t)&hptiop_itl_ops }, + { PCI_VDEVICE(TTI, 0x4322), (kernel_ulong_t)&hptiop_itl_ops }, ++ { PCI_VDEVICE(TTI, 0x4321), (kernel_ulong_t)&hptiop_itl_ops }, + { PCI_VDEVICE(TTI, 0x4210), (kernel_ulong_t)&hptiop_itl_ops }, + { PCI_VDEVICE(TTI, 0x4211), (kernel_ulong_t)&hptiop_itl_ops }, + { PCI_VDEVICE(TTI, 0x4310), (kernel_ulong_t)&hptiop_itl_ops }, +--- kernel-power-2.6.28.orig/drivers/scsi/ibmvscsi/ibmvfc.c ++++ kernel-power-2.6.28/drivers/scsi/ibmvscsi/ibmvfc.c +@@ -566,7 +566,7 @@ + struct ibmvfc_target *tgt; + + if (vhost->action == IBMVFC_HOST_ACTION_INIT_WAIT) { +- if (++vhost->init_retries > IBMVFC_MAX_INIT_RETRIES) { ++ if (++vhost->init_retries > IBMVFC_MAX_HOST_INIT_RETRIES) { + dev_err(vhost->dev, + "Host initialization retries exceeded. Taking adapter offline\n"); + ibmvfc_link_down(vhost, IBMVFC_HOST_OFFLINE); +@@ -847,11 +847,12 @@ + static void ibmvfc_retry_host_init(struct ibmvfc_host *vhost) + { + if (vhost->action == IBMVFC_HOST_ACTION_INIT_WAIT) { +- if (++vhost->init_retries > IBMVFC_MAX_INIT_RETRIES) { ++ vhost->delay_init = 1; ++ if (++vhost->init_retries > IBMVFC_MAX_HOST_INIT_RETRIES) { + dev_err(vhost->dev, + "Host initialization retries exceeded. Taking adapter offline\n"); + ibmvfc_link_down(vhost, IBMVFC_HOST_OFFLINE); +- } else if (vhost->init_retries == IBMVFC_MAX_INIT_RETRIES) ++ } else if (vhost->init_retries == IBMVFC_MAX_HOST_INIT_RETRIES) + __ibmvfc_reset_host(vhost); + else + ibmvfc_set_host_action(vhost, IBMVFC_HOST_ACTION_INIT); +@@ -2089,15 +2090,17 @@ + case IBMVFC_AE_LINK_UP: + case IBMVFC_AE_RESUME: + vhost->events_to_log |= IBMVFC_AE_LINKUP; +- ibmvfc_init_host(vhost, 1); ++ vhost->delay_init = 1; ++ __ibmvfc_reset_host(vhost); + break; + case IBMVFC_AE_SCN_FABRIC: ++ case IBMVFC_AE_SCN_DOMAIN: + vhost->events_to_log |= IBMVFC_AE_RSCN; +- ibmvfc_init_host(vhost, 1); ++ vhost->delay_init = 1; ++ __ibmvfc_reset_host(vhost); + break; + case IBMVFC_AE_SCN_NPORT: + case IBMVFC_AE_SCN_GROUP: +- case IBMVFC_AE_SCN_DOMAIN: + vhost->events_to_log |= IBMVFC_AE_RSCN; + case IBMVFC_AE_ELS_LOGO: + case IBMVFC_AE_ELS_PRLO: +@@ -2669,7 +2672,7 @@ + static void ibmvfc_retry_tgt_init(struct ibmvfc_target *tgt, + void (*job_step) (struct ibmvfc_target *)) + { +- if (++tgt->init_retries > IBMVFC_MAX_INIT_RETRIES) { ++ if (++tgt->init_retries > IBMVFC_MAX_TGT_INIT_RETRIES) { + ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); + wake_up(&tgt->vhost->work_wait_q); + } else +@@ -3519,7 +3522,13 @@ + break; + case IBMVFC_HOST_ACTION_INIT: + BUG_ON(vhost->state != IBMVFC_INITIALIZING); +- vhost->job_step(vhost); ++ if (vhost->delay_init) { ++ vhost->delay_init = 0; ++ spin_unlock_irqrestore(vhost->host->host_lock, flags); ++ ssleep(15); ++ return; ++ } else ++ vhost->job_step(vhost); + break; + case IBMVFC_HOST_ACTION_QUERY: + list_for_each_entry(tgt, &vhost->targets, queue) +--- kernel-power-2.6.28.orig/drivers/scsi/ibmvscsi/ibmvfc.h ++++ kernel-power-2.6.28/drivers/scsi/ibmvscsi/ibmvfc.h +@@ -33,7 +33,7 @@ + #define IBMVFC_DRIVER_DATE "(August 14, 2008)" + + #define IBMVFC_DEFAULT_TIMEOUT 15 +-#define IBMVFC_INIT_TIMEOUT 30 ++#define IBMVFC_INIT_TIMEOUT 120 + #define IBMVFC_MAX_REQUESTS_DEFAULT 100 + + #define IBMVFC_DEBUG 0 +@@ -43,7 +43,8 @@ + #define IBMVFC_MAX_DISC_THREADS 4 + #define IBMVFC_TGT_MEMPOOL_SZ 64 + #define IBMVFC_MAX_CMDS_PER_LUN 64 +-#define IBMVFC_MAX_INIT_RETRIES 3 ++#define IBMVFC_MAX_HOST_INIT_RETRIES 6 ++#define IBMVFC_MAX_TGT_INIT_RETRIES 3 + #define IBMVFC_DEV_LOSS_TMO (5 * 60) + #define IBMVFC_DEFAULT_LOG_LEVEL 2 + #define IBMVFC_MAX_CDB_LEN 16 +@@ -671,6 +672,7 @@ + int discovery_threads; + int client_migrated; + int reinit; ++ int delay_init; + int events_to_log; + #define IBMVFC_AE_LINKUP 0x0001 + #define IBMVFC_AE_LINKDOWN 0x0002 +--- kernel-power-2.6.28.orig/drivers/scsi/libiscsi.c ++++ kernel-power-2.6.28/drivers/scsi/libiscsi.c +@@ -1862,12 +1862,14 @@ + num_arrays++; + q->pool = kzalloc(num_arrays * max * sizeof(void*), GFP_KERNEL); + if (q->pool == NULL) +- goto enomem; ++ return -ENOMEM; + + q->queue = kfifo_init((void*)q->pool, max * sizeof(void*), + GFP_KERNEL, NULL); +- if (q->queue == ERR_PTR(-ENOMEM)) ++ if (IS_ERR(q->queue)) { ++ q->queue = NULL; + goto enomem; ++ } + + for (i = 0; i < max; i++) { + q->pool[i] = kzalloc(item_size, GFP_KERNEL); +@@ -1897,8 +1899,8 @@ + + for (i = 0; i < q->max; i++) + kfree(q->pool[i]); +- if (q->pool) +- kfree(q->pool); ++ kfree(q->pool); ++ kfree(q->queue); + } + EXPORT_SYMBOL_GPL(iscsi_pool_free); + +--- kernel-power-2.6.28.orig/drivers/scsi/mvsas.c ++++ kernel-power-2.6.28/drivers/scsi/mvsas.c +@@ -2959,7 +2959,7 @@ + + /* enable auto port detection */ + mw32(GBL_PORT_TYPE, MODE_AUTO_DET_EN); +- msleep(100); ++ msleep(1100); + /* init and reset phys */ + for (i = 0; i < mvi->chip->n_phy; i++) { + u32 lo = be32_to_cpu(*(u32 *)&mvi->sas_addr[4]); +--- kernel-power-2.6.28.orig/drivers/scsi/pcmcia/aha152x_stub.c ++++ kernel-power-2.6.28/drivers/scsi/pcmcia/aha152x_stub.c +@@ -114,7 +114,7 @@ + link->io.NumPorts1 = 0x20; + link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; + link->io.IOAddrLines = 10; +- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; ++ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; + link->irq.IRQInfo1 = IRQ_LEVEL_ID; + link->conf.Attributes = CONF_ENABLE_IRQ; + link->conf.IntType = INT_MEMORY_AND_IO; +--- kernel-power-2.6.28.orig/drivers/scsi/sd.c ++++ kernel-power-2.6.28/drivers/scsi/sd.c +@@ -106,6 +106,7 @@ + static void sd_print_sense_hdr(struct scsi_disk *, struct scsi_sense_hdr *); + static void sd_print_result(struct scsi_disk *, int); + ++static DEFINE_SPINLOCK(sd_index_lock); + static DEFINE_IDA(sd_index_ida); + + /* This semaphore is used to mediate the 0->1 reference get in the +@@ -1847,7 +1848,9 @@ + if (!ida_pre_get(&sd_index_ida, GFP_KERNEL)) + goto out_put; + ++ spin_lock(&sd_index_lock); + error = ida_get_new(&sd_index_ida, &index); ++ spin_unlock(&sd_index_lock); + } while (error == -EAGAIN); + + if (error) +@@ -1910,7 +1913,9 @@ + return 0; + + out_free_index: ++ spin_lock(&sd_index_lock); + ida_remove(&sd_index_ida, index); ++ spin_unlock(&sd_index_lock); + out_put: + put_disk(gd); + out_free: +@@ -1960,7 +1965,9 @@ + struct scsi_disk *sdkp = to_scsi_disk(dev); + struct gendisk *disk = sdkp->disk; + ++ spin_lock(&sd_index_lock); + ida_remove(&sd_index_ida, sdkp->index); ++ spin_unlock(&sd_index_lock); + + disk->private_data = NULL; + put_disk(disk); +--- kernel-power-2.6.28.orig/drivers/scsi/sg.c ++++ kernel-power-2.6.28/drivers/scsi/sg.c +@@ -101,6 +101,7 @@ + #define SG_SECTOR_MSK (SG_SECTOR_SZ - 1) + + static int sg_add(struct device *, struct class_interface *); ++static void sg_device_destroy(struct kref *kref); + static void sg_remove(struct device *, struct class_interface *); + + static DEFINE_IDR(sg_index_idr); +@@ -137,6 +138,7 @@ + volatile char done; /* 0->before bh, 1->before read, 2->read */ + struct request *rq; + struct bio *bio; ++ struct execute_work ew; + } Sg_request; + + typedef struct sg_fd { /* holds the state of a file descriptor */ +@@ -158,6 +160,8 @@ + char next_cmd_len; /* 0 -> automatic (def), >0 -> use on next write() */ + char keep_orphan; /* 0 -> drop orphan (def), 1 -> keep for read() */ + char mmap_called; /* 0 -> mmap() never called on this fd */ ++ struct kref f_ref; ++ struct execute_work ew; + } Sg_fd; + + typedef struct sg_device { /* holds the state of each scsi generic device */ +@@ -171,6 +175,7 @@ + char sgdebug; /* 0->off, 1->sense, 9->dump dev, 10-> all devs */ + struct gendisk *disk; + struct cdev * cdev; /* char_dev [sysfs: /sys/cdev/major/sg] */ ++ struct kref d_ref; + } Sg_device; + + static int sg_fasync(int fd, struct file *filp, int mode); +@@ -185,7 +190,7 @@ + Sg_request * srp); + static ssize_t sg_new_write(Sg_fd *sfp, struct file *file, + const char __user *buf, size_t count, int blocking, +- int read_only, Sg_request **o_srp); ++ int read_only, int sg_io_owned, Sg_request **o_srp); + static int sg_common_write(Sg_fd * sfp, Sg_request * srp, + unsigned char *cmnd, int timeout, int blocking); + static int sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer); +@@ -194,13 +199,14 @@ + static void sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size); + static void sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp); + static Sg_fd *sg_add_sfp(Sg_device * sdp, int dev); +-static int sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); +-static void __sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); ++static void sg_remove_sfp(struct kref *); + static Sg_request *sg_get_rq_mark(Sg_fd * sfp, int pack_id); + static Sg_request *sg_add_request(Sg_fd * sfp); + static int sg_remove_request(Sg_fd * sfp, Sg_request * srp); + static int sg_res_in_use(Sg_fd * sfp); ++static Sg_device *sg_lookup_dev(int dev); + static Sg_device *sg_get_dev(int dev); ++static void sg_put_dev(Sg_device *sdp); + #ifdef CONFIG_SCSI_PROC_FS + static int sg_last_dev(void); + #endif +@@ -237,22 +243,17 @@ + nonseekable_open(inode, filp); + SCSI_LOG_TIMEOUT(3, printk("sg_open: dev=%d, flags=0x%x\n", dev, flags)); + sdp = sg_get_dev(dev); +- if ((!sdp) || (!sdp->device)) { +- unlock_kernel(); +- return -ENXIO; +- } +- if (sdp->detached) { +- unlock_kernel(); +- return -ENODEV; ++ if (IS_ERR(sdp)) { ++ retval = PTR_ERR(sdp); ++ sdp = NULL; ++ goto sg_put; + } + + /* This driver's module count bumped by fops_get in */ + /* Prevent the device driver from vanishing while we sleep */ + retval = scsi_device_get(sdp->device); +- if (retval) { +- unlock_kernel(); +- return retval; +- } ++ if (retval) ++ goto sg_put; + + if (!((flags & O_NONBLOCK) || + scsi_block_when_processing_errors(sdp->device))) { +@@ -303,16 +304,20 @@ + if ((sfp = sg_add_sfp(sdp, dev))) + filp->private_data = sfp; + else { +- if (flags & O_EXCL) ++ if (flags & O_EXCL) { + sdp->exclude = 0; /* undo if error */ ++ wake_up_interruptible(&sdp->o_excl_wait); ++ } + retval = -ENOMEM; + goto error_out; + } +- unlock_kernel(); +- return 0; +- +- error_out: +- scsi_device_put(sdp->device); ++ retval = 0; ++error_out: ++ if (retval) ++ scsi_device_put(sdp->device); ++sg_put: ++ if (sdp) ++ sg_put_dev(sdp); + unlock_kernel(); + return retval; + } +@@ -327,13 +332,13 @@ + if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) + return -ENXIO; + SCSI_LOG_TIMEOUT(3, printk("sg_release: %s\n", sdp->disk->disk_name)); +- if (0 == sg_remove_sfp(sdp, sfp)) { /* Returns 1 when sdp gone */ +- if (!sdp->detached) { +- scsi_device_put(sdp->device); +- } +- sdp->exclude = 0; +- wake_up_interruptible(&sdp->o_excl_wait); +- } ++ ++ sfp->closed = 1; ++ ++ sdp->exclude = 0; ++ wake_up_interruptible(&sdp->o_excl_wait); ++ ++ kref_put(&sfp->f_ref, sg_remove_sfp); + return 0; + } + +@@ -557,7 +562,8 @@ + return -EFAULT; + blocking = !(filp->f_flags & O_NONBLOCK); + if (old_hdr.reply_len < 0) +- return sg_new_write(sfp, filp, buf, count, blocking, 0, NULL); ++ return sg_new_write(sfp, filp, buf, count, ++ blocking, 0, 0, NULL); + if (count < (SZ_SG_HEADER + 6)) + return -EIO; /* The minimum scsi command length is 6 bytes. */ + +@@ -638,7 +644,7 @@ + + static ssize_t + sg_new_write(Sg_fd *sfp, struct file *file, const char __user *buf, +- size_t count, int blocking, int read_only, ++ size_t count, int blocking, int read_only, int sg_io_owned, + Sg_request **o_srp) + { + int k; +@@ -658,6 +664,7 @@ + SCSI_LOG_TIMEOUT(1, printk("sg_new_write: queue full\n")); + return -EDOM; + } ++ srp->sg_io_owned = sg_io_owned; + hp = &srp->header; + if (__copy_from_user(hp, buf, SZ_SG_IO_HDR)) { + sg_remove_request(sfp, srp); +@@ -755,24 +762,13 @@ + hp->duration = jiffies_to_msecs(jiffies); + + srp->rq->timeout = timeout; ++ kref_get(&sfp->f_ref); /* sg_rq_end_io() does kref_put(). */ + blk_execute_rq_nowait(sdp->device->request_queue, sdp->disk, + srp->rq, 1, sg_rq_end_io); + return 0; + } + + static int +-sg_srp_done(Sg_request *srp, Sg_fd *sfp) +-{ +- unsigned long iflags; +- int done; +- +- read_lock_irqsave(&sfp->rq_list_lock, iflags); +- done = srp->done; +- read_unlock_irqrestore(&sfp->rq_list_lock, iflags); +- return done; +-} +- +-static int + sg_ioctl(struct inode *inode, struct file *filp, + unsigned int cmd_in, unsigned long arg) + { +@@ -804,27 +800,26 @@ + return -EFAULT; + result = + sg_new_write(sfp, filp, p, SZ_SG_IO_HDR, +- blocking, read_only, &srp); ++ blocking, read_only, 1, &srp); + if (result < 0) + return result; +- srp->sg_io_owned = 1; + while (1) { + result = 0; /* following macro to beat race condition */ + __wait_event_interruptible(sfp->read_wait, +- (sdp->detached || sfp->closed || sg_srp_done(srp, sfp)), +- result); ++ (srp->done || sdp->detached), ++ result); + if (sdp->detached) + return -ENODEV; +- if (sfp->closed) +- return 0; /* request packet dropped already */ +- if (0 == result) ++ write_lock_irq(&sfp->rq_list_lock); ++ if (srp->done) { ++ srp->done = 2; ++ write_unlock_irq(&sfp->rq_list_lock); + break; ++ } + srp->orphan = 1; ++ write_unlock_irq(&sfp->rq_list_lock); + return result; /* -ERESTARTSYS because signal hit process */ + } +- write_lock_irqsave(&sfp->rq_list_lock, iflags); +- srp->done = 2; +- write_unlock_irqrestore(&sfp->rq_list_lock, iflags); + result = sg_new_read(sfp, p, SZ_SG_IO_HDR, srp); + return (result < 0) ? result : 0; + } +@@ -1240,6 +1235,15 @@ + return 0; + } + ++static void sg_rq_end_io_usercontext(struct work_struct *work) ++{ ++ struct sg_request *srp = container_of(work, struct sg_request, ew.work); ++ struct sg_fd *sfp = srp->parentfp; ++ ++ sg_finish_rem_req(srp); ++ kref_put(&sfp->f_ref, sg_remove_sfp); ++} ++ + /* + * This function is a "bottom half" handler that is called by the mid + * level when a command is completed (or has failed). +@@ -1247,24 +1251,23 @@ + static void sg_rq_end_io(struct request *rq, int uptodate) + { + struct sg_request *srp = rq->end_io_data; +- Sg_device *sdp = NULL; ++ Sg_device *sdp; + Sg_fd *sfp; + unsigned long iflags; + unsigned int ms; + char *sense; +- int result, resid; ++ int result, resid, done = 1; + +- if (NULL == srp) { +- printk(KERN_ERR "sg_cmd_done: NULL request\n"); ++ if (WARN_ON(srp->done != 0)) + return; +- } ++ + sfp = srp->parentfp; +- if (sfp) +- sdp = sfp->parentdp; +- if ((NULL == sdp) || sdp->detached) { +- printk(KERN_INFO "sg_cmd_done: device detached\n"); ++ if (WARN_ON(sfp == NULL)) + return; +- } ++ ++ sdp = sfp->parentdp; ++ if (unlikely(sdp->detached)) ++ printk(KERN_INFO "sg_rq_end_io: device detached\n"); + + sense = rq->sense; + result = rq->errors; +@@ -1303,33 +1306,25 @@ + } + /* Rely on write phase to clean out srp status values, so no "else" */ + +- if (sfp->closed) { /* whoops this fd already released, cleanup */ +- SCSI_LOG_TIMEOUT(1, printk("sg_cmd_done: already closed, freeing ...\n")); +- sg_finish_rem_req(srp); +- srp = NULL; +- if (NULL == sfp->headrp) { +- SCSI_LOG_TIMEOUT(1, printk("sg_cmd_done: already closed, final cleanup\n")); +- if (0 == sg_remove_sfp(sdp, sfp)) { /* device still present */ +- scsi_device_put(sdp->device); +- } +- sfp = NULL; +- } +- } else if (srp && srp->orphan) { ++ write_lock_irqsave(&sfp->rq_list_lock, iflags); ++ if (unlikely(srp->orphan)) { + if (sfp->keep_orphan) + srp->sg_io_owned = 0; +- else { +- sg_finish_rem_req(srp); +- srp = NULL; +- } ++ else ++ done = 0; + } +- if (sfp && srp) { +- /* Now wake up any sg_read() that is waiting for this packet. */ +- kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN); +- write_lock_irqsave(&sfp->rq_list_lock, iflags); +- srp->done = 1; ++ srp->done = done; ++ write_unlock_irqrestore(&sfp->rq_list_lock, iflags); ++ ++ if (likely(done)) { ++ /* Now wake up any sg_read() that is waiting for this ++ * packet. ++ */ + wake_up_interruptible(&sfp->read_wait); +- write_unlock_irqrestore(&sfp->rq_list_lock, iflags); +- } ++ kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN); ++ kref_put(&sfp->f_ref, sg_remove_sfp); ++ } else ++ execute_in_process_context(sg_rq_end_io_usercontext, &srp->ew); + } + + static struct file_operations sg_fops = { +@@ -1364,17 +1359,18 @@ + printk(KERN_WARNING "kmalloc Sg_device failure\n"); + return ERR_PTR(-ENOMEM); + } +- error = -ENOMEM; ++ + if (!idr_pre_get(&sg_index_idr, GFP_KERNEL)) { + printk(KERN_WARNING "idr expansion Sg_device failure\n"); ++ error = -ENOMEM; + goto out; + } + + write_lock_irqsave(&sg_index_lock, iflags); +- error = idr_get_new(&sg_index_idr, sdp, &k); +- write_unlock_irqrestore(&sg_index_lock, iflags); + ++ error = idr_get_new(&sg_index_idr, sdp, &k); + if (error) { ++ write_unlock_irqrestore(&sg_index_lock, iflags); + printk(KERN_WARNING "idr allocation Sg_device failure: %d\n", + error); + goto out; +@@ -1391,6 +1387,9 @@ + init_waitqueue_head(&sdp->o_excl_wait); + sdp->sg_tablesize = min(q->max_hw_segments, q->max_phys_segments); + sdp->index = k; ++ kref_init(&sdp->d_ref); ++ ++ write_unlock_irqrestore(&sg_index_lock, iflags); + + error = 0; + out: +@@ -1401,6 +1400,8 @@ + return sdp; + + overflow: ++ idr_remove(&sg_index_idr, k); ++ write_unlock_irqrestore(&sg_index_lock, iflags); + sdev_printk(KERN_WARNING, scsidp, + "Unable to attach sg device type=%d, minor " + "number exceeds %d\n", scsidp->type, SG_MAX_DEVS - 1); +@@ -1488,49 +1489,46 @@ + return error; + } + +-static void +-sg_remove(struct device *cl_dev, struct class_interface *cl_intf) ++static void sg_device_destroy(struct kref *kref) ++{ ++ struct sg_device *sdp = container_of(kref, struct sg_device, d_ref); ++ unsigned long flags; ++ ++ /* CAUTION! Note that the device can still be found via idr_find() ++ * even though the refcount is 0. Therefore, do idr_remove() BEFORE ++ * any other cleanup. ++ */ ++ ++ write_lock_irqsave(&sg_index_lock, flags); ++ idr_remove(&sg_index_idr, sdp->index); ++ write_unlock_irqrestore(&sg_index_lock, flags); ++ ++ SCSI_LOG_TIMEOUT(3, ++ printk("sg_device_destroy: %s\n", ++ sdp->disk->disk_name)); ++ ++ put_disk(sdp->disk); ++ kfree(sdp); ++} ++ ++static void sg_remove(struct device *cl_dev, struct class_interface *cl_intf) + { + struct scsi_device *scsidp = to_scsi_device(cl_dev->parent); + Sg_device *sdp = dev_get_drvdata(cl_dev); + unsigned long iflags; + Sg_fd *sfp; +- Sg_fd *tsfp; +- Sg_request *srp; +- Sg_request *tsrp; +- int delay; + +- if (!sdp) ++ if (!sdp || sdp->detached) + return; + +- delay = 0; ++ SCSI_LOG_TIMEOUT(3, printk("sg_remove: %s\n", sdp->disk->disk_name)); ++ ++ /* Need a write lock to set sdp->detached. */ + write_lock_irqsave(&sg_index_lock, iflags); +- if (sdp->headfp) { +- sdp->detached = 1; +- for (sfp = sdp->headfp; sfp; sfp = tsfp) { +- tsfp = sfp->nextfp; +- for (srp = sfp->headrp; srp; srp = tsrp) { +- tsrp = srp->nextrp; +- if (sfp->closed || (0 == sg_srp_done(srp, sfp))) +- sg_finish_rem_req(srp); +- } +- if (sfp->closed) { +- scsi_device_put(sdp->device); +- __sg_remove_sfp(sdp, sfp); +- } else { +- delay = 1; +- wake_up_interruptible(&sfp->read_wait); +- kill_fasync(&sfp->async_qp, SIGPOLL, +- POLL_HUP); +- } +- } +- SCSI_LOG_TIMEOUT(3, printk("sg_remove: dev=%d, dirty\n", sdp->index)); +- if (NULL == sdp->headfp) { +- idr_remove(&sg_index_idr, sdp->index); +- } +- } else { /* nothing active, simple case */ +- SCSI_LOG_TIMEOUT(3, printk("sg_remove: dev=%d\n", sdp->index)); +- idr_remove(&sg_index_idr, sdp->index); ++ sdp->detached = 1; ++ for (sfp = sdp->headfp; sfp; sfp = sfp->nextfp) { ++ wake_up_interruptible(&sfp->read_wait); ++ kill_fasync(&sfp->async_qp, SIGPOLL, POLL_HUP); + } + write_unlock_irqrestore(&sg_index_lock, iflags); + +@@ -1538,13 +1536,8 @@ + device_destroy(sg_sysfs_class, MKDEV(SCSI_GENERIC_MAJOR, sdp->index)); + cdev_del(sdp->cdev); + sdp->cdev = NULL; +- put_disk(sdp->disk); +- sdp->disk = NULL; +- if (NULL == sdp->headfp) +- kfree(sdp); + +- if (delay) +- msleep(10); /* dirty detach so delay device destruction */ ++ sg_put_dev(sdp); + } + + module_param_named(scatter_elem_sz, scatter_elem_sz, int, S_IRUGO | S_IWUSR); +@@ -1939,22 +1932,6 @@ + return resp; + } + +-#ifdef CONFIG_SCSI_PROC_FS +-static Sg_request * +-sg_get_nth_request(Sg_fd * sfp, int nth) +-{ +- Sg_request *resp; +- unsigned long iflags; +- int k; +- +- read_lock_irqsave(&sfp->rq_list_lock, iflags); +- for (k = 0, resp = sfp->headrp; resp && (k < nth); +- ++k, resp = resp->nextrp) ; +- read_unlock_irqrestore(&sfp->rq_list_lock, iflags); +- return resp; +-} +-#endif +- + /* always adds to end of list */ + static Sg_request * + sg_add_request(Sg_fd * sfp) +@@ -2030,22 +2007,6 @@ + return res; + } + +-#ifdef CONFIG_SCSI_PROC_FS +-static Sg_fd * +-sg_get_nth_sfp(Sg_device * sdp, int nth) +-{ +- Sg_fd *resp; +- unsigned long iflags; +- int k; +- +- read_lock_irqsave(&sg_index_lock, iflags); +- for (k = 0, resp = sdp->headfp; resp && (k < nth); +- ++k, resp = resp->nextfp) ; +- read_unlock_irqrestore(&sg_index_lock, iflags); +- return resp; +-} +-#endif +- + static Sg_fd * + sg_add_sfp(Sg_device * sdp, int dev) + { +@@ -2060,6 +2021,7 @@ + init_waitqueue_head(&sfp->read_wait); + rwlock_init(&sfp->rq_list_lock); + ++ kref_init(&sfp->f_ref); + sfp->timeout = SG_DEFAULT_TIMEOUT; + sfp->timeout_user = SG_DEFAULT_TIMEOUT_USER; + sfp->force_packid = SG_DEF_FORCE_PACK_ID; +@@ -2087,15 +2049,54 @@ + sg_build_reserve(sfp, bufflen); + SCSI_LOG_TIMEOUT(3, printk("sg_add_sfp: bufflen=%d, k_use_sg=%d\n", + sfp->reserve.bufflen, sfp->reserve.k_use_sg)); ++ ++ kref_get(&sdp->d_ref); ++ __module_get(THIS_MODULE); + return sfp; + } + +-static void +-__sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp) ++static void sg_remove_sfp_usercontext(struct work_struct *work) + { ++ struct sg_fd *sfp = container_of(work, struct sg_fd, ew.work); ++ struct sg_device *sdp = sfp->parentdp; ++ ++ /* Cleanup any responses which were never read(). */ ++ while (sfp->headrp) ++ sg_finish_rem_req(sfp->headrp); ++ ++ if (sfp->reserve.bufflen > 0) { ++ SCSI_LOG_TIMEOUT(6, ++ printk("sg_remove_sfp: bufflen=%d, k_use_sg=%d\n", ++ (int) sfp->reserve.bufflen, ++ (int) sfp->reserve.k_use_sg)); ++ sg_remove_scat(&sfp->reserve); ++ } ++ ++ SCSI_LOG_TIMEOUT(6, ++ printk("sg_remove_sfp: %s, sfp=0x%p\n", ++ sdp->disk->disk_name, ++ sfp)); ++ kfree(sfp); ++ ++ scsi_device_put(sdp->device); ++ sg_put_dev(sdp); ++ module_put(THIS_MODULE); ++} ++ ++static void sg_remove_sfp(struct kref *kref) ++{ ++ struct sg_fd *sfp = container_of(kref, struct sg_fd, f_ref); ++ struct sg_device *sdp = sfp->parentdp; + Sg_fd *fp; + Sg_fd *prev_fp; ++ unsigned long iflags; ++ ++ /* CAUTION! Note that sfp can still be found by walking sdp->headfp ++ * even though the refcount is now 0. Therefore, unlink sfp from ++ * sdp->headfp BEFORE doing any other cleanup. ++ */ + ++ write_lock_irqsave(&sg_index_lock, iflags); + prev_fp = sdp->headfp; + if (sfp == prev_fp) + sdp->headfp = prev_fp->nextfp; +@@ -2108,54 +2109,10 @@ + prev_fp = fp; + } + } +- if (sfp->reserve.bufflen > 0) { +- SCSI_LOG_TIMEOUT(6, +- printk("__sg_remove_sfp: bufflen=%d, k_use_sg=%d\n", +- (int) sfp->reserve.bufflen, (int) sfp->reserve.k_use_sg)); +- sg_remove_scat(&sfp->reserve); +- } +- sfp->parentdp = NULL; +- SCSI_LOG_TIMEOUT(6, printk("__sg_remove_sfp: sfp=0x%p\n", sfp)); +- kfree(sfp); +-} +- +-/* Returns 0 in normal case, 1 when detached and sdp object removed */ +-static int +-sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp) +-{ +- Sg_request *srp; +- Sg_request *tsrp; +- int dirty = 0; +- int res = 0; +- +- for (srp = sfp->headrp; srp; srp = tsrp) { +- tsrp = srp->nextrp; +- if (sg_srp_done(srp, sfp)) +- sg_finish_rem_req(srp); +- else +- ++dirty; +- } +- if (0 == dirty) { +- unsigned long iflags; ++ write_unlock_irqrestore(&sg_index_lock, iflags); ++ wake_up_interruptible(&sdp->o_excl_wait); + +- write_lock_irqsave(&sg_index_lock, iflags); +- __sg_remove_sfp(sdp, sfp); +- if (sdp->detached && (NULL == sdp->headfp)) { +- idr_remove(&sg_index_idr, sdp->index); +- kfree(sdp); +- res = 1; +- } +- write_unlock_irqrestore(&sg_index_lock, iflags); +- } else { +- /* MOD_INC's to inhibit unloading sg and associated adapter driver */ +- /* only bump the access_count if we actually succeeded in +- * throwing another counter on the host module */ +- scsi_device_get(sdp->device); /* XXX: retval ignored? */ +- sfp->closed = 1; /* flag dirty state on this fd */ +- SCSI_LOG_TIMEOUT(1, printk("sg_remove_sfp: worrisome, %d writes pending\n", +- dirty)); +- } +- return res; ++ execute_in_process_context(sg_remove_sfp_usercontext, &sfp->ew); + } + + static int +@@ -2197,19 +2154,38 @@ + } + #endif + +-static Sg_device * +-sg_get_dev(int dev) ++/* must be called with sg_index_lock held */ ++static Sg_device *sg_lookup_dev(int dev) + { +- Sg_device *sdp; +- unsigned long iflags; ++ return idr_find(&sg_index_idr, dev); ++} + +- read_lock_irqsave(&sg_index_lock, iflags); +- sdp = idr_find(&sg_index_idr, dev); +- read_unlock_irqrestore(&sg_index_lock, iflags); ++static Sg_device *sg_get_dev(int dev) ++{ ++ struct sg_device *sdp; ++ unsigned long flags; ++ ++ read_lock_irqsave(&sg_index_lock, flags); ++ sdp = sg_lookup_dev(dev); ++ if (!sdp) ++ sdp = ERR_PTR(-ENXIO); ++ else if (sdp->detached) { ++ /* If sdp->detached, then the refcount may already be 0, in ++ * which case it would be a bug to do kref_get(). ++ */ ++ sdp = ERR_PTR(-ENODEV); ++ } else ++ kref_get(&sdp->d_ref); ++ read_unlock_irqrestore(&sg_index_lock, flags); + + return sdp; + } + ++static void sg_put_dev(struct sg_device *sdp) ++{ ++ kref_put(&sdp->d_ref, sg_device_destroy); ++} ++ + #ifdef CONFIG_SCSI_PROC_FS + + static struct proc_dir_entry *sg_proc_sgp = NULL; +@@ -2466,8 +2442,10 @@ + struct sg_proc_deviter * it = (struct sg_proc_deviter *) v; + Sg_device *sdp; + struct scsi_device *scsidp; ++ unsigned long iflags; + +- sdp = it ? sg_get_dev(it->index) : NULL; ++ read_lock_irqsave(&sg_index_lock, iflags); ++ sdp = it ? sg_lookup_dev(it->index) : NULL; + if (sdp && (scsidp = sdp->device) && (!sdp->detached)) + seq_printf(s, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", + scsidp->host->host_no, scsidp->channel, +@@ -2478,6 +2456,7 @@ + (int) scsi_device_online(scsidp)); + else + seq_printf(s, "-1\t-1\t-1\t-1\t-1\t-1\t-1\t-1\t-1\n"); ++ read_unlock_irqrestore(&sg_index_lock, iflags); + return 0; + } + +@@ -2491,16 +2470,20 @@ + struct sg_proc_deviter * it = (struct sg_proc_deviter *) v; + Sg_device *sdp; + struct scsi_device *scsidp; ++ unsigned long iflags; + +- sdp = it ? sg_get_dev(it->index) : NULL; ++ read_lock_irqsave(&sg_index_lock, iflags); ++ sdp = it ? sg_lookup_dev(it->index) : NULL; + if (sdp && (scsidp = sdp->device) && (!sdp->detached)) + seq_printf(s, "%8.8s\t%16.16s\t%4.4s\n", + scsidp->vendor, scsidp->model, scsidp->rev); + else + seq_printf(s, "\n"); ++ read_unlock_irqrestore(&sg_index_lock, iflags); + return 0; + } + ++/* must be called while holding sg_index_lock */ + static void sg_proc_debug_helper(struct seq_file *s, Sg_device * sdp) + { + int k, m, new_interface, blen, usg; +@@ -2510,7 +2493,8 @@ + const char * cp; + unsigned int ms; + +- for (k = 0; (fp = sg_get_nth_sfp(sdp, k)); ++k) { ++ for (k = 0, fp = sdp->headfp; fp != NULL; ++k, fp = fp->nextfp) { ++ read_lock(&fp->rq_list_lock); /* irqs already disabled */ + seq_printf(s, " FD(%d): timeout=%dms bufflen=%d " + "(res)sgat=%d low_dma=%d\n", k + 1, + jiffies_to_msecs(fp->timeout), +@@ -2520,7 +2504,9 @@ + seq_printf(s, " cmd_q=%d f_packid=%d k_orphan=%d closed=%d\n", + (int) fp->cmd_q, (int) fp->force_packid, + (int) fp->keep_orphan, (int) fp->closed); +- for (m = 0; (srp = sg_get_nth_request(fp, m)); ++m) { ++ for (m = 0, srp = fp->headrp; ++ srp != NULL; ++ ++m, srp = srp->nextrp) { + hp = &srp->header; + new_interface = (hp->interface_id == '\0') ? 0 : 1; + if (srp->res_used) { +@@ -2557,6 +2543,7 @@ + } + if (0 == m) + seq_printf(s, " No requests active\n"); ++ read_unlock(&fp->rq_list_lock); + } + } + +@@ -2569,39 +2556,34 @@ + { + struct sg_proc_deviter * it = (struct sg_proc_deviter *) v; + Sg_device *sdp; ++ unsigned long iflags; + + if (it && (0 == it->index)) { + seq_printf(s, "max_active_device=%d(origin 1)\n", + (int)it->max); + seq_printf(s, " def_reserved_size=%d\n", sg_big_buff); + } +- sdp = it ? sg_get_dev(it->index) : NULL; +- if (sdp) { +- struct scsi_device *scsidp = sdp->device; + +- if (NULL == scsidp) { +- seq_printf(s, "device %d detached ??\n", +- (int)it->index); +- return 0; +- } ++ read_lock_irqsave(&sg_index_lock, iflags); ++ sdp = it ? sg_lookup_dev(it->index) : NULL; ++ if (sdp && sdp->headfp) { ++ struct scsi_device *scsidp = sdp->device; + +- if (sg_get_nth_sfp(sdp, 0)) { +- seq_printf(s, " >>> device=%s ", +- sdp->disk->disk_name); +- if (sdp->detached) +- seq_printf(s, "detached pending close "); +- else +- seq_printf +- (s, "scsi%d chan=%d id=%d lun=%d em=%d", +- scsidp->host->host_no, +- scsidp->channel, scsidp->id, +- scsidp->lun, +- scsidp->host->hostt->emulated); +- seq_printf(s, " sg_tablesize=%d excl=%d\n", +- sdp->sg_tablesize, sdp->exclude); +- } ++ seq_printf(s, " >>> device=%s ", sdp->disk->disk_name); ++ if (sdp->detached) ++ seq_printf(s, "detached pending close "); ++ else ++ seq_printf ++ (s, "scsi%d chan=%d id=%d lun=%d em=%d", ++ scsidp->host->host_no, ++ scsidp->channel, scsidp->id, ++ scsidp->lun, ++ scsidp->host->hostt->emulated); ++ seq_printf(s, " sg_tablesize=%d excl=%d\n", ++ sdp->sg_tablesize, sdp->exclude); + sg_proc_debug_helper(s, sdp); + } ++ read_unlock_irqrestore(&sg_index_lock, iflags); + return 0; + } + +--- kernel-power-2.6.28.orig/drivers/serial/8250.c ++++ kernel-power-2.6.28/drivers/serial/8250.c +@@ -2028,6 +2028,20 @@ + + serial8250_set_mctrl(&up->port, up->port.mctrl); + ++ /* Serial over Lan (SoL) hack: ++ Intel 8257x Gigabit ethernet chips have a ++ 16550 emulation, to be used for Serial Over Lan. ++ Those chips take a longer time than a normal ++ serial device to signalize that a transmission ++ data was queued. Due to that, the above test generally ++ fails. One solution would be to delay the reading of ++ iir. However, this is not reliable, since the timeout ++ is variable. So, let's just don't test if we receive ++ TX irq. This way, we'll never enable UART_BUG_TXEN. ++ */ ++ if (up->port.flags & UPF_NO_TXEN_TEST) ++ goto dont_test_tx_en; ++ + /* + * Do a quick test to see if we receive an + * interrupt when we enable the TX irq. +@@ -2047,6 +2061,7 @@ + up->bugs &= ~UART_BUG_TXEN; + } + ++dont_test_tx_en: + spin_unlock_irqrestore(&up->port.lock, flags); + + /* +--- kernel-power-2.6.28.orig/drivers/serial/8250_pci.c ++++ kernel-power-2.6.28/drivers/serial/8250_pci.c +@@ -758,6 +758,21 @@ + return setup_port(priv, port, bar, offset, board->reg_shift); + } + ++static int skip_tx_en_setup(struct serial_private *priv, ++ const struct pciserial_board *board, ++ struct uart_port *port, int idx) ++{ ++ port->flags |= UPF_NO_TXEN_TEST; ++ printk(KERN_DEBUG "serial8250: skipping TxEn test for device " ++ "[%04x:%04x] subsystem [%04x:%04x]\n", ++ priv->dev->vendor, ++ priv->dev->device, ++ priv->dev->subsystem_vendor, ++ priv->dev->subsystem_device); ++ ++ return pci_default_setup(priv, board, port, idx); ++} ++ + /* This should be in linux/pci_ids.h */ + #define PCI_VENDOR_ID_SBSMODULARIO 0x124B + #define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B +@@ -766,6 +781,8 @@ + #define PCI_SUBDEVICE_ID_OCTPRO422 0x0208 + #define PCI_SUBDEVICE_ID_POCTAL232 0x0308 + #define PCI_SUBDEVICE_ID_POCTAL422 0x0408 ++#define PCI_VENDOR_ID_ADVANTECH 0x13fe ++#define PCI_DEVICE_ID_ADVANTECH_PCI3620 0x3620 + + /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ + #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 +@@ -822,6 +839,27 @@ + .init = pci_inteli960ni_init, + .setup = pci_default_setup, + }, ++ { ++ .vendor = PCI_VENDOR_ID_INTEL, ++ .device = PCI_DEVICE_ID_INTEL_8257X_SOL, ++ .subvendor = PCI_ANY_ID, ++ .subdevice = PCI_ANY_ID, ++ .setup = skip_tx_en_setup, ++ }, ++ { ++ .vendor = PCI_VENDOR_ID_INTEL, ++ .device = PCI_DEVICE_ID_INTEL_82573L_SOL, ++ .subvendor = PCI_ANY_ID, ++ .subdevice = PCI_ANY_ID, ++ .setup = skip_tx_en_setup, ++ }, ++ { ++ .vendor = PCI_VENDOR_ID_INTEL, ++ .device = PCI_DEVICE_ID_INTEL_82573E_SOL, ++ .subvendor = PCI_ANY_ID, ++ .subdevice = PCI_ANY_ID, ++ .setup = skip_tx_en_setup, ++ }, + /* + * ITE + */ +@@ -2132,6 +2170,10 @@ + #endif + + static struct pci_device_id serial_pci_tbl[] = { ++ /* Advantech use PCI_DEVICE_ID_ADVANTECH_PCI3620 (0x3620) as 'PCI_SUBVENDOR_ID' */ ++ { PCI_VENDOR_ID_ADVANTECH, PCI_DEVICE_ID_ADVANTECH_PCI3620, ++ PCI_DEVICE_ID_ADVANTECH_PCI3620, 0x0001, 0, 0, ++ pbn_b2_8_921600 }, + { PCI_VENDOR_ID_V3, PCI_DEVICE_ID_V3_V960, + PCI_SUBVENDOR_ID_CONNECT_TECH, + PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_232, 0, 0, +@@ -2271,6 +2313,9 @@ + { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_COMM8, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b2_8_115200 }, ++ { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_7803, ++ PCI_ANY_ID, PCI_ANY_ID, 0, 0, ++ pbn_b2_8_460800 }, + { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_UCOMM8, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b2_8_115200 }, +@@ -2372,6 +2417,9 @@ + * For now just used the hex ID 0x950a. + */ + { PCI_VENDOR_ID_OXSEMI, 0x950a, ++ PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_DUAL_SERIAL, 0, 0, ++ pbn_b0_2_115200 }, ++ { PCI_VENDOR_ID_OXSEMI, 0x950a, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b0_2_1130000 }, + { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, +--- kernel-power-2.6.28.orig/drivers/serial/jsm/jsm_driver.c ++++ kernel-power-2.6.28/drivers/serial/jsm/jsm_driver.c +@@ -84,6 +84,8 @@ + brd->pci_dev = pdev; + if (pdev->device == PCIE_DEVICE_ID_NEO_4_IBM) + brd->maxports = 4; ++ else if (pdev->device == PCI_DEVICE_ID_DIGI_NEO_8) ++ brd->maxports = 8; + else + brd->maxports = 2; + +@@ -212,6 +214,7 @@ + { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45), 0, 0, 2 }, + { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45PRI), 0, 0, 3 }, + { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4_IBM), 0, 0, 4 }, ++ { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_NEO_8), 0, 0, 5 }, + { 0, } + }; + MODULE_DEVICE_TABLE(pci, jsm_pci_tbl); +--- kernel-power-2.6.28.orig/drivers/serial/jsm/jsm_tty.c ++++ kernel-power-2.6.28/drivers/serial/jsm/jsm_tty.c +@@ -161,6 +161,11 @@ + channel->ch_bd->bd_ops->disable_receiver(channel); + } + ++static void jsm_tty_enable_ms(struct uart_port *port) ++{ ++ /* Nothing needed */ ++} ++ + static void jsm_tty_break(struct uart_port *port, int break_state) + { + unsigned long lock_flags; +@@ -345,6 +350,7 @@ + .start_tx = jsm_tty_start_tx, + .send_xchar = jsm_tty_send_xchar, + .stop_rx = jsm_tty_stop_rx, ++ .enable_ms = jsm_tty_enable_ms, + .break_ctl = jsm_tty_break, + .startup = jsm_tty_open, + .shutdown = jsm_tty_close, +--- kernel-power-2.6.28.orig/drivers/spi/spi.c ++++ kernel-power-2.6.28/drivers/spi/spi.c +@@ -660,7 +660,7 @@ + + int status; + struct spi_message message; +- struct spi_transfer x; ++ struct spi_transfer x[2]; + u8 *local_buf; + + /* Use preallocated DMA-safe buffer. We can't avoid copying here, +@@ -671,9 +671,15 @@ + return -EINVAL; + + spi_message_init(&message); +- memset(&x, 0, sizeof x); +- x.len = n_tx + n_rx; +- spi_message_add_tail(&x, &message); ++ memset(x, 0, sizeof x); ++ if (n_tx) { ++ x[0].len = n_tx; ++ spi_message_add_tail(&x[0], &message); ++ } ++ if (n_rx) { ++ x[1].len = n_rx; ++ spi_message_add_tail(&x[1], &message); ++ } + + /* ... unless someone else is using the pre-allocated buffer */ + if (!mutex_trylock(&lock)) { +@@ -684,15 +690,15 @@ + local_buf = buf; + + memcpy(local_buf, txbuf, n_tx); +- x.tx_buf = local_buf; +- x.rx_buf = local_buf; ++ x[0].tx_buf = local_buf; ++ x[1].rx_buf = local_buf + n_tx; + + /* do the i/o */ + status = spi_sync(spi, &message); + if (status == 0) +- memcpy(rxbuf, x.rx_buf + n_tx, n_rx); ++ memcpy(rxbuf, x[1].rx_buf, n_rx); + +- if (x.tx_buf == buf) ++ if (x[0].tx_buf == buf) + mutex_unlock(&lock); + else + kfree(local_buf); +--- kernel-power-2.6.28.orig/drivers/usb/class/cdc-acm.c ++++ kernel-power-2.6.28/drivers/usb/class/cdc-acm.c +@@ -1370,6 +1370,8 @@ + { USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */ + .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ + }, ++ { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ ++ }, + + /* control interfaces with various AT-command sets */ + { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, +--- kernel-power-2.6.28.orig/drivers/usb/class/cdc-wdm.c ++++ kernel-power-2.6.28/drivers/usb/class/cdc-wdm.c +@@ -652,7 +652,7 @@ + + iface = &intf->altsetting[0]; + ep = &iface->endpoint[0].desc; +- if (!usb_endpoint_is_int_in(ep)) { ++ if (!ep || !usb_endpoint_is_int_in(ep)) { + rv = -EINVAL; + goto err; + } +--- kernel-power-2.6.28.orig/drivers/usb/class/usbtmc.c ++++ kernel-power-2.6.28/drivers/usb/class/usbtmc.c +@@ -49,6 +49,7 @@ + + static struct usb_device_id usbtmc_devices[] = { + { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), }, ++ { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 1), }, + { 0, } /* terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, usbtmc_devices); +@@ -105,12 +106,13 @@ + { + struct usb_interface *intf; + struct usbtmc_device_data *data; +- int retval = -ENODEV; ++ int retval = 0; + + intf = usb_find_interface(&usbtmc_driver, iminor(inode)); + if (!intf) { + printk(KERN_ERR KBUILD_MODNAME + ": can not find device for minor %d", iminor(inode)); ++ retval = -ENODEV; + goto exit; + } + +--- kernel-power-2.6.28.orig/drivers/usb/core/devio.c ++++ kernel-power-2.6.28/drivers/usb/core/devio.c +@@ -359,11 +359,6 @@ + spin_lock_irqsave(&ps->lock, flags); + } + spin_unlock_irqrestore(&ps->lock, flags); +- as = async_getcompleted(ps); +- while (as) { +- free_async(as); +- as = async_getcompleted(ps); +- } + } + + static void destroy_async_on_interface(struct dev_state *ps, +@@ -642,6 +637,7 @@ + struct dev_state *ps = file->private_data; + struct usb_device *dev = ps->dev; + unsigned int ifnum; ++ struct async *as; + + usb_lock_device(dev); + +@@ -660,6 +656,12 @@ + usb_unlock_device(dev); + usb_put_dev(dev); + put_pid(ps->disc_pid); ++ ++ as = async_getcompleted(ps); ++ while (as) { ++ free_async(as); ++ as = async_getcompleted(ps); ++ } + kfree(ps); + return 0; + } +@@ -1703,7 +1705,7 @@ + .release = usbdev_release, + }; + +-void usb_fs_classdev_common_remove(struct usb_device *udev) ++static void usbdev_remove(struct usb_device *udev) + { + struct dev_state *ps; + struct siginfo sinfo; +@@ -1745,10 +1747,15 @@ + { + if (dev->usb_classdev) + device_unregister(dev->usb_classdev); +- usb_fs_classdev_common_remove(dev); + } + +-static int usb_classdev_notify(struct notifier_block *self, ++#else ++#define usb_classdev_add(dev) 0 ++#define usb_classdev_remove(dev) do {} while (0) ++ ++#endif ++ ++static int usbdev_notify(struct notifier_block *self, + unsigned long action, void *dev) + { + switch (action) { +@@ -1758,15 +1765,15 @@ + break; + case USB_DEVICE_REMOVE: + usb_classdev_remove(dev); ++ usbdev_remove(dev); + break; + } + return NOTIFY_OK; + } + + static struct notifier_block usbdev_nb = { +- .notifier_call = usb_classdev_notify, ++ .notifier_call = usbdev_notify, + }; +-#endif + + static struct cdev usb_device_cdev; + +@@ -1801,9 +1808,8 @@ + * to /sys/dev + */ + usb_classdev_class->dev_kobj = NULL; +- +- usb_register_notify(&usbdev_nb); + #endif ++ usb_register_notify(&usbdev_nb); + out: + return retval; + +@@ -1814,8 +1820,8 @@ + + void usb_devio_cleanup(void) + { +-#ifdef CONFIG_USB_DEVICE_CLASS + usb_unregister_notify(&usbdev_nb); ++#ifdef CONFIG_USB_DEVICE_CLASS + class_destroy(usb_classdev_class); + #endif + cdev_del(&usb_device_cdev); +--- kernel-power-2.6.28.orig/drivers/usb/core/driver.c ++++ kernel-power-2.6.28/drivers/usb/core/driver.c +@@ -269,7 +269,7 @@ + * supports "soft" unbinding. + */ + if (!driver->soft_unbind) +- usb_disable_interface(udev, intf); ++ usb_disable_interface(udev, intf, false); + + driver->disconnect(intf); + +@@ -279,9 +279,12 @@ + * altsetting means creating new endpoint device entries). + * When either of these happens, defer the Set-Interface. + */ +- if (intf->cur_altsetting->desc.bAlternateSetting == 0) +- ; /* Already in altsetting 0 so skip Set-Interface */ +- else if (!error && intf->dev.power.status == DPM_ON) ++ if (intf->cur_altsetting->desc.bAlternateSetting == 0) { ++ /* Already in altsetting 0 so skip Set-Interface. ++ * Just re-enable it without affecting the endpoint toggles. ++ */ ++ usb_enable_interface(udev, intf, false); ++ } else if (!error && intf->dev.power.status == DPM_ON) + usb_set_interface(udev, intf->altsetting[0]. + desc.bInterfaceNumber, 0); + else +--- kernel-power-2.6.28.orig/drivers/usb/core/hub.c ++++ kernel-power-2.6.28/drivers/usb/core/hub.c +@@ -2383,9 +2383,9 @@ + + void usb_ep0_reinit(struct usb_device *udev) + { +- usb_disable_endpoint(udev, 0 + USB_DIR_IN); +- usb_disable_endpoint(udev, 0 + USB_DIR_OUT); +- usb_enable_endpoint(udev, &udev->ep0); ++ usb_disable_endpoint(udev, 0 + USB_DIR_IN, true); ++ usb_disable_endpoint(udev, 0 + USB_DIR_OUT, true); ++ usb_enable_endpoint(udev, &udev->ep0, true); + } + EXPORT_SYMBOL_GPL(usb_ep0_reinit); + +--- kernel-power-2.6.28.orig/drivers/usb/core/inode.c ++++ kernel-power-2.6.28/drivers/usb/core/inode.c +@@ -718,7 +718,6 @@ + fs_remove_file (dev->usbfs_dentry); + dev->usbfs_dentry = NULL; + } +- usb_fs_classdev_common_remove(dev); + } + + static int usbfs_notify(struct notifier_block *self, unsigned long action, void *dev) +--- kernel-power-2.6.28.orig/drivers/usb/core/message.c ++++ kernel-power-2.6.28/drivers/usb/core/message.c +@@ -651,7 +651,7 @@ + if (result <= 0 && result != -ETIMEDOUT) + continue; + if (result > 1 && ((u8 *)buf)[1] != type) { +- result = -EPROTO; ++ result = -ENODATA; + continue; + } + break; +@@ -694,8 +694,13 @@ + USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, + (USB_DT_STRING << 8) + index, langid, buf, size, + USB_CTRL_GET_TIMEOUT); +- if (!(result == 0 || result == -EPIPE)) +- break; ++ if (result == 0 || result == -EPIPE) ++ continue; ++ if (result > 1 && ((u8 *) buf)[1] != USB_DT_STRING) { ++ result = -ENODATA; ++ continue; ++ } ++ break; + } + return result; + } +@@ -1009,14 +1014,15 @@ + * @dev: the device whose endpoint is being disabled + * @epaddr: the endpoint's address. Endpoint number for output, + * endpoint number + USB_DIR_IN for input ++ * @reset_hardware: flag to erase any endpoint state stored in the ++ * controller hardware + * +- * Deallocates hcd/hardware state for this endpoint ... and nukes all +- * pending urbs. +- * +- * If the HCD hasn't registered a disable() function, this sets the +- * endpoint's maxpacket size to 0 to prevent further submissions. ++ * Disables the endpoint for URB submission and nukes all pending URBs. ++ * If @reset_hardware is set then also deallocates hcd/hardware state ++ * for the endpoint. + */ +-void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr) ++void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr, ++ bool reset_hardware) + { + unsigned int epnum = epaddr & USB_ENDPOINT_NUMBER_MASK; + struct usb_host_endpoint *ep; +@@ -1026,15 +1032,18 @@ + + if (usb_endpoint_out(epaddr)) { + ep = dev->ep_out[epnum]; +- dev->ep_out[epnum] = NULL; ++ if (reset_hardware) ++ dev->ep_out[epnum] = NULL; + } else { + ep = dev->ep_in[epnum]; +- dev->ep_in[epnum] = NULL; ++ if (reset_hardware) ++ dev->ep_in[epnum] = NULL; + } + if (ep) { + ep->enabled = 0; + usb_hcd_flush_endpoint(dev, ep); +- usb_hcd_disable_endpoint(dev, ep); ++ if (reset_hardware) ++ usb_hcd_disable_endpoint(dev, ep); + } + } + +@@ -1042,17 +1051,21 @@ + * usb_disable_interface -- Disable all endpoints for an interface + * @dev: the device whose interface is being disabled + * @intf: pointer to the interface descriptor ++ * @reset_hardware: flag to erase any endpoint state stored in the ++ * controller hardware + * + * Disables all the endpoints for the interface's current altsetting. + */ +-void usb_disable_interface(struct usb_device *dev, struct usb_interface *intf) ++void usb_disable_interface(struct usb_device *dev, struct usb_interface *intf, ++ bool reset_hardware) + { + struct usb_host_interface *alt = intf->cur_altsetting; + int i; + + for (i = 0; i < alt->desc.bNumEndpoints; ++i) { + usb_disable_endpoint(dev, +- alt->endpoint[i].desc.bEndpointAddress); ++ alt->endpoint[i].desc.bEndpointAddress, ++ reset_hardware); + } + } + +@@ -1073,8 +1086,8 @@ + dev_dbg(&dev->dev, "%s nuking %s URBs\n", __func__, + skip_ep0 ? "non-ep0" : "all"); + for (i = skip_ep0; i < 16; ++i) { +- usb_disable_endpoint(dev, i); +- usb_disable_endpoint(dev, i + USB_DIR_IN); ++ usb_disable_endpoint(dev, i, true); ++ usb_disable_endpoint(dev, i + USB_DIR_IN, true); + } + dev->toggle[0] = dev->toggle[1] = 0; + +@@ -1113,22 +1126,26 @@ + * usb_enable_endpoint - Enable an endpoint for USB communications + * @dev: the device whose interface is being enabled + * @ep: the endpoint ++ * @reset_toggle: flag to set the endpoint's toggle back to 0 + * +- * Resets the endpoint toggle, and sets dev->ep_{in,out} pointers. ++ * Resets the endpoint toggle if asked, and sets dev->ep_{in,out} pointers. + * For control endpoints, both the input and output sides are handled. + */ +-void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep) ++void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep, ++ bool reset_toggle) + { + int epnum = usb_endpoint_num(&ep->desc); + int is_out = usb_endpoint_dir_out(&ep->desc); + int is_control = usb_endpoint_xfer_control(&ep->desc); + + if (is_out || is_control) { +- usb_settoggle(dev, epnum, 1, 0); ++ if (reset_toggle) ++ usb_settoggle(dev, epnum, 1, 0); + dev->ep_out[epnum] = ep; + } + if (!is_out || is_control) { +- usb_settoggle(dev, epnum, 0, 0); ++ if (reset_toggle) ++ usb_settoggle(dev, epnum, 0, 0); + dev->ep_in[epnum] = ep; + } + ep->enabled = 1; +@@ -1138,17 +1155,18 @@ + * usb_enable_interface - Enable all the endpoints for an interface + * @dev: the device whose interface is being enabled + * @intf: pointer to the interface descriptor ++ * @reset_toggles: flag to set the endpoints' toggles back to 0 + * + * Enables all the endpoints for the interface's current altsetting. + */ +-static void usb_enable_interface(struct usb_device *dev, +- struct usb_interface *intf) ++void usb_enable_interface(struct usb_device *dev, ++ struct usb_interface *intf, bool reset_toggles) + { + struct usb_host_interface *alt = intf->cur_altsetting; + int i; + + for (i = 0; i < alt->desc.bNumEndpoints; ++i) +- usb_enable_endpoint(dev, &alt->endpoint[i]); ++ usb_enable_endpoint(dev, &alt->endpoint[i], reset_toggles); + } + + /** +@@ -1237,7 +1255,7 @@ + /* prevent submissions using previous endpoint settings */ + if (iface->cur_altsetting != alt) + usb_remove_sysfs_intf_files(iface); +- usb_disable_interface(dev, iface); ++ usb_disable_interface(dev, iface, true); + + iface->cur_altsetting = alt; + +@@ -1271,7 +1289,7 @@ + * during the SETUP stage - hence EP0 toggles are "don't care" here. + * (Likewise, EP0 never "halts" on well designed devices.) + */ +- usb_enable_interface(dev, iface); ++ usb_enable_interface(dev, iface, true); + if (device_is_registered(&iface->dev)) + usb_create_sysfs_intf_files(iface); + +@@ -1315,8 +1333,8 @@ + */ + + for (i = 1; i < 16; ++i) { +- usb_disable_endpoint(dev, i); +- usb_disable_endpoint(dev, i + USB_DIR_IN); ++ usb_disable_endpoint(dev, i, true); ++ usb_disable_endpoint(dev, i + USB_DIR_IN, true); + } + + config = dev->actconfig; +@@ -1346,7 +1364,7 @@ + alt = &intf->altsetting[0]; + + intf->cur_altsetting = alt; +- usb_enable_interface(dev, intf); ++ usb_enable_interface(dev, intf, true); + if (device_is_registered(&intf->dev)) + usb_create_sysfs_intf_files(intf); + } +@@ -1604,7 +1622,7 @@ + alt = &intf->altsetting[0]; + + intf->cur_altsetting = alt; +- usb_enable_interface(dev, intf); ++ usb_enable_interface(dev, intf, true); + intf->dev.parent = &dev->dev; + intf->dev.driver = NULL; + intf->dev.bus = &usb_bus_type; +@@ -1619,7 +1637,8 @@ + } + kfree(new_interfaces); + +- if (cp->string == NULL) ++ if (cp->string == NULL && ++ !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) + cp->string = usb_cache_string(dev, cp->desc.iConfiguration); + + /* Now that all the interfaces are set up, register them +--- kernel-power-2.6.28.orig/drivers/usb/core/quirks.c ++++ kernel-power-2.6.28/drivers/usb/core/quirks.c +@@ -54,6 +54,10 @@ + { USB_DEVICE(0x0638, 0x0a13), .driver_info = + USB_QUIRK_STRING_FETCH_255 }, + ++ /* Saitek Cyborg Gold Joystick */ ++ { USB_DEVICE(0x06a3, 0x0006), .driver_info = ++ USB_QUIRK_CONFIG_INTF_STRINGS }, ++ + /* M-Systems Flash Disk Pioneers */ + { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, + +--- kernel-power-2.6.28.orig/drivers/usb/core/sysfs.c ++++ kernel-power-2.6.28/drivers/usb/core/sysfs.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include "usb.h" + + /* Active configuration fields */ +@@ -847,7 +848,8 @@ + * and missing in others. Hence its attribute cannot be created + * before the uevent is broadcast. + */ +- if (alt->string == NULL) ++ if (alt->string == NULL && ++ !(udev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) + alt->string = usb_cache_string(udev, alt->desc.iInterface); + if (alt->string) + retval = device_create_file(&intf->dev, &dev_attr_interface); +--- kernel-power-2.6.28.orig/drivers/usb/core/usb.c ++++ kernel-power-2.6.28/drivers/usb/core/usb.c +@@ -362,7 +362,7 @@ + dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE; + dev->ep0.desc.bDescriptorType = USB_DT_ENDPOINT; + /* ep0 maxpacket comes later, from device descriptor */ +- usb_enable_endpoint(dev, &dev->ep0); ++ usb_enable_endpoint(dev, &dev->ep0, true); + dev->can_submit = 1; + + /* Save readable and stable topology id, distinguishing devices +--- kernel-power-2.6.28.orig/drivers/usb/core/usb.h ++++ kernel-power-2.6.28/drivers/usb/core/usb.h +@@ -10,10 +10,13 @@ + extern void usb_remove_ep_files(struct usb_host_endpoint *endpoint); + + extern void usb_enable_endpoint(struct usb_device *dev, +- struct usb_host_endpoint *ep); +-extern void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr); ++ struct usb_host_endpoint *ep, bool reset_toggle); ++extern void usb_enable_interface(struct usb_device *dev, ++ struct usb_interface *intf, bool reset_toggles); ++extern void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr, ++ bool reset_hardware); + extern void usb_disable_interface(struct usb_device *dev, +- struct usb_interface *intf); ++ struct usb_interface *intf, bool reset_hardware); + extern void usb_release_interface_cache(struct kref *ref); + extern void usb_disable_device(struct usb_device *dev, int skip_ep0); + extern int usb_deauthorize_device(struct usb_device *); +@@ -145,7 +148,6 @@ + extern const struct file_operations usbfs_devices_fops; + extern const struct file_operations usbdev_file_operations; + extern void usbfs_conn_disc_event(void); +-extern void usb_fs_classdev_common_remove(struct usb_device *udev); + + extern int usb_devio_init(void); + extern void usb_devio_cleanup(void); +--- kernel-power-2.6.28.orig/drivers/usb/gadget/f_rndis.c ++++ kernel-power-2.6.28/drivers/usb/gadget/f_rndis.c +@@ -437,7 +437,7 @@ + DBG(cdev, "rndis req%02x.%02x v%04x i%04x l%d\n", + ctrl->bRequestType, ctrl->bRequest, + w_value, w_index, w_length); +- req->zero = 0; ++ req->zero = (value < w_length); + req->length = value; + value = usb_ep_queue(cdev->gadget->ep0, req, GFP_ATOMIC); + if (value < 0) +--- kernel-power-2.6.28.orig/drivers/usb/gadget/u_ether.c ++++ kernel-power-2.6.28/drivers/usb/gadget/u_ether.c +@@ -174,12 +174,6 @@ + strlcpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof p->bus_info); + } + +-static u32 eth_get_link(struct net_device *net) +-{ +- struct eth_dev *dev = netdev_priv(net); +- return dev->gadget->speed != USB_SPEED_UNKNOWN; +-} +- + /* REVISIT can also support: + * - WOL (by tracking suspends and issuing remote wakeup) + * - msglevel (implies updated messaging) +@@ -188,7 +182,7 @@ + + static struct ethtool_ops ops = { + .get_drvinfo = eth_get_drvinfo, +- .get_link = eth_get_link ++ .get_link = ethtool_op_get_link, + }; + + static void defer_kevent(struct eth_dev *dev, int flag) +--- kernel-power-2.6.28.orig/drivers/usb/host/ehci-hcd.c ++++ kernel-power-2.6.28/drivers/usb/host/ehci-hcd.c +@@ -485,6 +485,7 @@ + * periodic_size can shrink by USBCMD update if hcc_params allows. + */ + ehci->periodic_size = DEFAULT_I_TDPS; ++ INIT_LIST_HEAD(&ehci->cached_itd_list); + if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0) + return retval; + +@@ -497,6 +498,7 @@ + + ehci->reclaim = NULL; + ehci->next_uframe = -1; ++ ehci->clock_frame = -1; + + /* + * dedicate a qh for the async ring head, since we couldn't unlink +--- kernel-power-2.6.28.orig/drivers/usb/host/ehci-mem.c ++++ kernel-power-2.6.28/drivers/usb/host/ehci-mem.c +@@ -128,6 +128,7 @@ + + static void ehci_mem_cleanup (struct ehci_hcd *ehci) + { ++ free_cached_itd_list(ehci); + if (ehci->async) + qh_put (ehci->async); + ehci->async = NULL; +--- kernel-power-2.6.28.orig/drivers/usb/host/ehci-q.c ++++ kernel-power-2.6.28/drivers/usb/host/ehci-q.c +@@ -333,12 +333,40 @@ + token = hc32_to_cpu(ehci, qtd->hw_token); + + /* always clean up qtds the hc de-activated */ ++ retry_xacterr: + if ((token & QTD_STS_ACTIVE) == 0) { + + /* on STALL, error, and short reads this urb must + * complete and all its qtds must be recycled. + */ + if ((token & QTD_STS_HALT) != 0) { ++ ++ /* retry transaction errors until we ++ * reach the software xacterr limit ++ */ ++ if ((token & QTD_STS_XACT) && ++ QTD_CERR(token) == 0 && ++ --qh->xacterrs > 0 && ++ !urb->unlinked) { ++ ehci_dbg(ehci, ++ "detected XactErr len %d/%d retry %d\n", ++ qtd->length - QTD_LENGTH(token), qtd->length, ++ QH_XACTERR_MAX - qh->xacterrs); ++ ++ /* reset the token in the qtd and the ++ * qh overlay (which still contains ++ * the qtd) so that we pick up from ++ * where we left off ++ */ ++ token &= ~QTD_STS_HALT; ++ token |= QTD_STS_ACTIVE | ++ (EHCI_TUNE_CERR << 10); ++ qtd->hw_token = cpu_to_hc32(ehci, ++ token); ++ wmb(); ++ qh->hw_token = cpu_to_hc32(ehci, token); ++ goto retry_xacterr; ++ } + stopped = 1; + + /* magic dummy for some short reads; qh won't advance. +@@ -421,6 +449,9 @@ + /* remove qtd; it's recycled after possible urb completion */ + list_del (&qtd->qtd_list); + last = qtd; ++ ++ /* reinit the xacterr counter for the next qtd */ ++ qh->xacterrs = QH_XACTERR_MAX; + } + + /* last urb's completion might still need calling */ +@@ -862,6 +893,7 @@ + head->qh_next.qh = qh; + head->hw_next = dma; + ++ qh->xacterrs = QH_XACTERR_MAX; + qh->qh_state = QH_STATE_LINKED; + /* qtd completions reported later by interrupt */ + } +@@ -1095,7 +1127,8 @@ + prev->qh_next = qh->qh_next; + wmb (); + +- if (unlikely (ehci_to_hcd(ehci)->state == HC_STATE_HALT)) { ++ /* If the controller isn't running, we don't have to wait for it */ ++ if (unlikely(!HC_IS_RUNNING(ehci_to_hcd(ehci)->state))) { + /* if (unlikely (qh->reclaim != 0)) + * this will recurse, probably not much + */ +--- kernel-power-2.6.28.orig/drivers/usb/host/ehci-sched.c ++++ kernel-power-2.6.28/drivers/usb/host/ehci-sched.c +@@ -1004,7 +1004,8 @@ + + is_in = (stream->bEndpointAddress & USB_DIR_IN) ? 0x10 : 0; + stream->bEndpointAddress &= 0x0f; +- stream->ep->hcpriv = NULL; ++ if (stream->ep) ++ stream->ep->hcpriv = NULL; + + if (stream->rescheduled) { + ehci_info (ehci, "ep%d%s-iso rescheduled " +@@ -1535,7 +1536,7 @@ + struct ehci_itd, itd_list); + list_move_tail (&itd->itd_list, &stream->td_list); + itd->stream = iso_stream_get (stream); +- itd->urb = usb_get_urb (urb); ++ itd->urb = urb; + itd_init (ehci, stream, itd); + } + +@@ -1644,7 +1645,7 @@ + (void) disable_periodic(ehci); + ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; + +- if (unlikely (list_empty (&stream->td_list))) { ++ if (unlikely(list_is_singular(&stream->td_list))) { + ehci_to_hcd(ehci)->self.bandwidth_allocated + -= stream->bandwidth; + ehci_vdbg (ehci, +@@ -1653,14 +1654,27 @@ + (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); + } + iso_stream_put (ehci, stream); +- /* OK to recycle this ITD now that its completion callback ran. */ ++ + done: +- usb_put_urb(urb); + itd->urb = NULL; +- itd->stream = NULL; +- list_move(&itd->itd_list, &stream->free_list); +- iso_stream_put(ehci, stream); +- ++ if (ehci->clock_frame != itd->frame || itd->index[7] != -1) { ++ /* OK to recycle this ITD now. */ ++ itd->stream = NULL; ++ list_move(&itd->itd_list, &stream->free_list); ++ iso_stream_put(ehci, stream); ++ } else { ++ /* HW might remember this ITD, so we can't recycle it yet. ++ * Move it to a safe place until a new frame starts. ++ */ ++ list_move(&itd->itd_list, &ehci->cached_itd_list); ++ if (stream->refcount == 2) { ++ /* If iso_stream_put() were called here, stream ++ * would be freed. Instead, just prevent reuse. ++ */ ++ stream->ep->hcpriv = NULL; ++ stream->ep = NULL; ++ } ++ } + return retval; + } + +@@ -1934,7 +1948,7 @@ + struct ehci_sitd, sitd_list); + list_move_tail (&sitd->sitd_list, &stream->td_list); + sitd->stream = iso_stream_get (stream); +- sitd->urb = usb_get_urb (urb); ++ sitd->urb = urb; + + sitd_patch(ehci, stream, sitd, sched, packet); + sitd_link (ehci, (next_uframe >> 3) % ehci->periodic_size, +@@ -2019,7 +2033,7 @@ + (void) disable_periodic(ehci); + ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; + +- if (list_empty (&stream->td_list)) { ++ if (list_is_singular(&stream->td_list)) { + ehci_to_hcd(ehci)->self.bandwidth_allocated + -= stream->bandwidth; + ehci_vdbg (ehci, +@@ -2030,7 +2044,6 @@ + iso_stream_put (ehci, stream); + /* OK to recycle this SITD now that its completion callback ran. */ + done: +- usb_put_urb(urb); + sitd->urb = NULL; + sitd->stream = NULL; + list_move(&sitd->sitd_list, &stream->free_list); +@@ -2101,6 +2114,20 @@ + + /*-------------------------------------------------------------------------*/ + ++static void free_cached_itd_list(struct ehci_hcd *ehci) ++{ ++ struct ehci_itd *itd, *n; ++ ++ list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) { ++ struct ehci_iso_stream *stream = itd->stream; ++ itd->stream = NULL; ++ list_move(&itd->itd_list, &stream->free_list); ++ iso_stream_put(ehci, stream); ++ } ++} ++ ++/*-------------------------------------------------------------------------*/ ++ + static void + scan_periodic (struct ehci_hcd *ehci) + { +@@ -2115,10 +2142,17 @@ + * Touches as few pages as possible: cache-friendly. + */ + now_uframe = ehci->next_uframe; +- if (HC_IS_RUNNING (ehci_to_hcd(ehci)->state)) ++ if (HC_IS_RUNNING(ehci_to_hcd(ehci)->state)) { + clock = ehci_readl(ehci, &ehci->regs->frame_index); +- else ++ clock_frame = (clock >> 3) % ehci->periodic_size; ++ } else { + clock = now_uframe + mod - 1; ++ clock_frame = -1; ++ } ++ if (ehci->clock_frame != clock_frame) { ++ free_cached_itd_list(ehci); ++ ehci->clock_frame = clock_frame; ++ } + clock %= mod; + clock_frame = clock >> 3; + +@@ -2277,6 +2311,10 @@ + /* rescan the rest of this frame, then ... */ + clock = now; + clock_frame = clock >> 3; ++ if (ehci->clock_frame != clock_frame) { ++ free_cached_itd_list(ehci); ++ ehci->clock_frame = clock_frame; ++ } + } else { + now_uframe++; + now_uframe %= mod; +--- kernel-power-2.6.28.orig/drivers/usb/host/ehci.h ++++ kernel-power-2.6.28/drivers/usb/host/ehci.h +@@ -87,6 +87,10 @@ + int next_uframe; /* scan periodic, start here */ + unsigned periodic_sched; /* periodic activity count */ + ++ /* list of itds completed while clock_frame was still active */ ++ struct list_head cached_itd_list; ++ unsigned clock_frame; ++ + /* per root hub port */ + unsigned long reset_done [EHCI_MAX_ROOT_PORTS]; + +@@ -210,6 +214,8 @@ + } + } + ++static void free_cached_itd_list(struct ehci_hcd *ehci); ++ + /*-------------------------------------------------------------------------*/ + + #include +@@ -360,6 +366,9 @@ + #define QH_STATE_UNLINK_WAIT 4 /* LINKED and on reclaim q */ + #define QH_STATE_COMPLETING 5 /* don't touch token.HALT */ + ++ u8 xacterrs; /* XactErr retry counter */ ++#define QH_XACTERR_MAX 32 /* XactErr retry limit */ ++ + /* periodic schedule info */ + u8 usecs; /* intr bandwidth */ + u8 gap_uf; /* uframes split/csplit gap */ +--- kernel-power-2.6.28.orig/drivers/usb/host/isp1760-if.c ++++ kernel-power-2.6.28/drivers/usb/host/isp1760-if.c +@@ -129,23 +129,23 @@ + #endif + + #ifdef CONFIG_PCI +-static u32 nxp_pci_io_base; +-static u32 iolength; +-static u32 pci_mem_phy0; +-static u32 length; +-static u8 __iomem *chip_addr; +-static u8 __iomem *iobase; +- + static int __devinit isp1761_pci_probe(struct pci_dev *dev, + const struct pci_device_id *id) + { + u8 latency, limit; + __u32 reg_data; + int retry_count; +- int length; +- int status = 1; + struct usb_hcd *hcd; + unsigned int devflags = 0; ++ int ret_status = 0; ++ ++ resource_size_t pci_mem_phy0; ++ resource_size_t memlength; ++ ++ u8 __iomem *chip_addr; ++ u8 __iomem *iobase; ++ resource_size_t nxp_pci_io_base; ++ resource_size_t iolength; + + if (usb_disabled()) + return -ENODEV; +@@ -168,26 +168,30 @@ + iobase = ioremap_nocache(nxp_pci_io_base, iolength); + if (!iobase) { + printk(KERN_ERR "ioremap #1\n"); +- release_mem_region(nxp_pci_io_base, iolength); +- return -ENOMEM; ++ ret_status = -ENOMEM; ++ goto cleanup1; + } + /* Grab the PLX PCI shared memory of the ISP 1761 we need */ + pci_mem_phy0 = pci_resource_start(dev, 3); +- length = pci_resource_len(dev, 3); +- +- if (length < 0xffff) { +- printk(KERN_ERR "memory length for this resource is less than " +- "required\n"); +- release_mem_region(nxp_pci_io_base, iolength); +- iounmap(iobase); +- return -ENOMEM; ++ memlength = pci_resource_len(dev, 3); ++ if (memlength < 0xffff) { ++ printk(KERN_ERR "memory length for this resource is wrong\n"); ++ ret_status = -ENOMEM; ++ goto cleanup2; + } + +- if (!request_mem_region(pci_mem_phy0, length, "ISP-PCI")) { ++ if (!request_mem_region(pci_mem_phy0, memlength, "ISP-PCI")) { + printk(KERN_ERR "host controller already in use\n"); +- release_mem_region(nxp_pci_io_base, iolength); +- iounmap(iobase); +- return -EBUSY; ++ ret_status = -EBUSY; ++ goto cleanup2; ++ } ++ ++ /* map available memory */ ++ chip_addr = ioremap_nocache(pci_mem_phy0,memlength); ++ if (!chip_addr) { ++ printk(KERN_ERR "Error ioremap failed\n"); ++ ret_status = -ENOMEM; ++ goto cleanup3; + } + + /* bad pci latencies can contribute to overruns */ +@@ -210,39 +214,54 @@ + * */ + writel(0xface, chip_addr + HC_SCRATCH_REG); + udelay(100); +- reg_data = readl(chip_addr + HC_SCRATCH_REG); ++ reg_data = readl(chip_addr + HC_SCRATCH_REG) & 0x0000ffff; + retry_count--; + } + ++ iounmap(chip_addr); ++ + /* Host Controller presence is detected by writing to scratch register + * and reading back and checking the contents are same or not + */ + if (reg_data != 0xFACE) { + dev_err(&dev->dev, "scratch register mismatch %x\n", reg_data); +- goto clean; ++ ret_status = -ENOMEM; ++ goto cleanup3; + } + + pci_set_master(dev); + +- status = readl(iobase + 0x68); +- status |= 0x900; +- writel(status, iobase + 0x68); ++ /* configure PLX PCI chip to pass interrupts */ ++#define PLX_INT_CSR_REG 0x68 ++ reg_data = readl(iobase + PLX_INT_CSR_REG); ++ reg_data |= 0x900; ++ writel(reg_data, iobase + PLX_INT_CSR_REG); + + dev->dev.dma_mask = NULL; +- hcd = isp1760_register(pci_mem_phy0, length, dev->irq, ++ hcd = isp1760_register(pci_mem_phy0, memlength, dev->irq, + IRQF_SHARED | IRQF_DISABLED, &dev->dev, dev_name(&dev->dev), + devflags); +- if (!IS_ERR(hcd)) { +- pci_set_drvdata(dev, hcd); +- return 0; ++ if (IS_ERR(hcd)) { ++ ret_status = -ENODEV; ++ goto cleanup3; + } +-clean: +- status = -ENODEV; ++ ++ /* done with PLX IO access */ + iounmap(iobase); +- release_mem_region(pci_mem_phy0, length); + release_mem_region(nxp_pci_io_base, iolength); +- return status; ++ ++ pci_set_drvdata(dev, hcd); ++ return 0; ++ ++cleanup3: ++ release_mem_region(pci_mem_phy0, memlength); ++cleanup2: ++ iounmap(iobase); ++cleanup1: ++ release_mem_region(nxp_pci_io_base, iolength); ++ return ret_status; + } ++ + static void isp1761_pci_remove(struct pci_dev *dev) + { + struct usb_hcd *hcd; +@@ -255,12 +274,6 @@ + usb_put_hcd(hcd); + + pci_disable_device(dev); +- +- iounmap(iobase); +- iounmap(chip_addr); +- +- release_mem_region(nxp_pci_io_base, iolength); +- release_mem_region(pci_mem_phy0, length); + } + + static void isp1761_pci_shutdown(struct pci_dev *dev) +@@ -268,12 +281,16 @@ + printk(KERN_ERR "ips1761_pci_shutdown\n"); + } + +-static const struct pci_device_id isp1760_plx [] = { { +- /* handle any USB 2.0 EHCI controller */ +- PCI_DEVICE_CLASS(((PCI_CLASS_BRIDGE_OTHER << 8) | (0x06 << 16)), ~0), +- .driver_data = 0, +-}, +-{ /* end: all zeroes */ } ++static const struct pci_device_id isp1760_plx [] = { ++ { ++ .class = PCI_CLASS_BRIDGE_OTHER << 8, ++ .class_mask = ~0, ++ .vendor = PCI_VENDOR_ID_PLX, ++ .device = 0x5406, ++ .subvendor = PCI_VENDOR_ID_PLX, ++ .subdevice = 0x9054, ++ }, ++ { } + }; + MODULE_DEVICE_TABLE(pci, isp1760_plx); + +--- kernel-power-2.6.28.orig/drivers/usb/misc/emi26.c ++++ kernel-power-2.6.28/drivers/usb/misc/emi26.c +@@ -160,7 +160,7 @@ + err("%s - error loading firmware: error = %d", __func__, err); + goto wraperr; + } +- } while (i > 0); ++ } while (rec); + + /* Assert reset (stop the CPU in the EMI) */ + err = emi26_set_reset(dev,1); +--- kernel-power-2.6.28.orig/drivers/usb/mon/mon_bin.c ++++ kernel-power-2.6.28/drivers/usb/mon/mon_bin.c +@@ -37,6 +37,7 @@ + #define MON_IOCX_GET _IOW(MON_IOC_MAGIC, 6, struct mon_bin_get) + #define MON_IOCX_MFETCH _IOWR(MON_IOC_MAGIC, 7, struct mon_bin_mfetch) + #define MON_IOCH_MFLUSH _IO(MON_IOC_MAGIC, 8) ++ + #ifdef CONFIG_COMPAT + #define MON_IOCX_GET32 _IOW(MON_IOC_MAGIC, 6, struct mon_bin_get32) + #define MON_IOCX_MFETCH32 _IOWR(MON_IOC_MAGIC, 7, struct mon_bin_mfetch32) +@@ -921,21 +922,6 @@ + } + break; + +-#ifdef CONFIG_COMPAT +- case MON_IOCX_GET32: { +- struct mon_bin_get32 getb; +- +- if (copy_from_user(&getb, (void __user *)arg, +- sizeof(struct mon_bin_get32))) +- return -EFAULT; +- +- ret = mon_bin_get_event(file, rp, +- compat_ptr(getb.hdr32), compat_ptr(getb.data32), +- getb.alloc32); +- } +- break; +-#endif +- + case MON_IOCX_MFETCH: + { + struct mon_bin_mfetch mfetch; +@@ -962,7 +948,57 @@ + } + break; + ++ case MON_IOCG_STATS: { ++ struct mon_bin_stats __user *sp; ++ unsigned int nevents; ++ unsigned int ndropped; ++ ++ spin_lock_irqsave(&rp->b_lock, flags); ++ ndropped = rp->cnt_lost; ++ rp->cnt_lost = 0; ++ spin_unlock_irqrestore(&rp->b_lock, flags); ++ nevents = mon_bin_queued(rp); ++ ++ sp = (struct mon_bin_stats __user *)arg; ++ if (put_user(rp->cnt_lost, &sp->dropped)) ++ return -EFAULT; ++ if (put_user(nevents, &sp->queued)) ++ return -EFAULT; ++ ++ } ++ break; ++ ++ default: ++ return -ENOTTY; ++ } ++ ++ return ret; ++} ++ + #ifdef CONFIG_COMPAT ++static long mon_bin_compat_ioctl(struct file *file, ++ unsigned int cmd, unsigned long arg) ++{ ++ struct mon_reader_bin *rp = file->private_data; ++ int ret; ++ ++ switch (cmd) { ++ ++ case MON_IOCX_GET32: { ++ struct mon_bin_get32 getb; ++ ++ if (copy_from_user(&getb, (void __user *)arg, ++ sizeof(struct mon_bin_get32))) ++ return -EFAULT; ++ ++ ret = mon_bin_get_event(file, rp, ++ compat_ptr(getb.hdr32), compat_ptr(getb.data32), ++ getb.alloc32); ++ if (ret < 0) ++ return ret; ++ } ++ return 0; ++ + case MON_IOCX_MFETCH32: + { + struct mon_bin_mfetch32 mfetch; +@@ -986,37 +1022,25 @@ + return ret; + if (put_user(ret, &uptr->nfetch32)) + return -EFAULT; +- ret = 0; + } +- break; +-#endif +- +- case MON_IOCG_STATS: { +- struct mon_bin_stats __user *sp; +- unsigned int nevents; +- unsigned int ndropped; +- +- spin_lock_irqsave(&rp->b_lock, flags); +- ndropped = rp->cnt_lost; +- rp->cnt_lost = 0; +- spin_unlock_irqrestore(&rp->b_lock, flags); +- nevents = mon_bin_queued(rp); ++ return 0; + +- sp = (struct mon_bin_stats __user *)arg; +- if (put_user(rp->cnt_lost, &sp->dropped)) +- return -EFAULT; +- if (put_user(nevents, &sp->queued)) +- return -EFAULT; ++ case MON_IOCG_STATS: ++ return mon_bin_ioctl(NULL, file, cmd, ++ (unsigned long) compat_ptr(arg)); + +- } +- break; ++ case MON_IOCQ_URB_LEN: ++ case MON_IOCQ_RING_SIZE: ++ case MON_IOCT_RING_SIZE: ++ case MON_IOCH_MFLUSH: ++ return mon_bin_ioctl(NULL, file, cmd, arg); + + default: +- return -ENOTTY; ++ ; + } +- +- return ret; ++ return -ENOTTY; + } ++#endif /* CONFIG_COMPAT */ + + static unsigned int + mon_bin_poll(struct file *file, struct poll_table_struct *wait) +@@ -1094,6 +1118,9 @@ + /* .write = mon_text_write, */ + .poll = mon_bin_poll, + .ioctl = mon_bin_ioctl, ++#ifdef CONFIG_COMPAT ++ .compat_ioctl = mon_bin_compat_ioctl, ++#endif + .release = mon_bin_release, + .mmap = mon_bin_mmap, + }; +--- kernel-power-2.6.28.orig/drivers/usb/serial/cp2101.c ++++ kernel-power-2.6.28/drivers/usb/serial/cp2101.c +@@ -79,6 +79,7 @@ + { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ + { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ + { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ ++ { USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */ + { USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */ + { USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */ + { USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */ +--- kernel-power-2.6.28.orig/drivers/usb/serial/ftdi_sio.c ++++ kernel-power-2.6.28/drivers/usb/serial/ftdi_sio.c +@@ -660,6 +660,12 @@ + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, ++ { USB_DEVICE(ATMEL_VID, STK541_PID) }, ++ { USB_DEVICE(DE_VID, STB_PID) }, ++ { USB_DEVICE(DE_VID, WHT_PID) }, ++ { USB_DEVICE(ADI_VID, ADI_GNICE_PID), ++ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, ++ { USB_DEVICE(JETI_VID, JETI_SPC1201_PID) }, + { }, /* Optional parameter entry */ + { } /* Terminating entry */ + }; +--- kernel-power-2.6.28.orig/drivers/usb/serial/ftdi_sio.h ++++ kernel-power-2.6.28/drivers/usb/serial/ftdi_sio.h +@@ -881,6 +881,33 @@ + #define RATOC_PRODUCT_ID_USB60F 0xb020 + + /* ++ * Atmel STK541 ++ */ ++#define ATMEL_VID 0x03eb /* Vendor ID */ ++#define STK541_PID 0x2109 /* Zigbee Controller */ ++ ++/* ++ * Dresden Elektronic Sensor Terminal Board ++ */ ++#define DE_VID 0x1cf1 /* Vendor ID */ ++#define STB_PID 0x0001 /* Sensor Terminal Board */ ++#define WHT_PID 0x0004 /* Wireless Handheld Terminal */ ++ ++/* ++ * Blackfin gnICE JTAG ++ * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice ++ */ ++#define ADI_VID 0x0456 ++#define ADI_GNICE_PID 0xF000 ++ ++/* ++ * JETI SPECTROMETER SPECBOS 1201 ++ * http://www.jeti.com/products/sys/scb/scb1201.php ++ */ ++#define JETI_VID 0x0c6c ++#define JETI_SPC1201_PID 0x04b2 ++ ++/* + * BmRequestType: 1100 0000b + * bRequest: FTDI_E2_READ + * wValue: 0 +--- kernel-power-2.6.28.orig/drivers/usb/serial/option.c ++++ kernel-power-2.6.28/drivers/usb/serial/option.c +@@ -89,6 +89,7 @@ + #define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041 + #define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061 + #define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100 ++#define OPTION_PRODUCT_GTM380_MODEM 0x7201 + + #define HUAWEI_VENDOR_ID 0x12D1 + #define HUAWEI_PRODUCT_E600 0x1001 +@@ -190,16 +191,18 @@ + /* OVATION PRODUCTS */ + #define NOVATELWIRELESS_PRODUCT_MC727 0x4100 + #define NOVATELWIRELESS_PRODUCT_MC950D 0x4400 ++#define NOVATELWIRELESS_PRODUCT_U727 0x5010 + + /* FUTURE NOVATEL PRODUCTS */ +-#define NOVATELWIRELESS_PRODUCT_EVDO_1 0x6000 +-#define NOVATELWIRELESS_PRODUCT_HSPA_1 0x7000 +-#define NOVATELWIRELESS_PRODUCT_EMBEDDED_1 0x8000 +-#define NOVATELWIRELESS_PRODUCT_GLOBAL_1 0x9000 +-#define NOVATELWIRELESS_PRODUCT_EVDO_2 0x6001 +-#define NOVATELWIRELESS_PRODUCT_HSPA_2 0x7001 +-#define NOVATELWIRELESS_PRODUCT_EMBEDDED_2 0x8001 +-#define NOVATELWIRELESS_PRODUCT_GLOBAL_2 0x9001 ++#define NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED 0X6000 ++#define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED 0X6001 ++#define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED 0X7000 ++#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED 0X7001 ++#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED 0X8000 ++#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED 0X8001 ++#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0X9000 ++#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0X9001 ++#define NOVATELWIRELESS_PRODUCT_GLOBAL 0XA001 + + /* AMOI PRODUCTS */ + #define AMOI_VENDOR_ID 0x1614 +@@ -209,6 +212,27 @@ + + #define DELL_VENDOR_ID 0x413C + ++/* Dell modems */ ++#define DELL_PRODUCT_5700_MINICARD 0x8114 ++#define DELL_PRODUCT_5500_MINICARD 0x8115 ++#define DELL_PRODUCT_5505_MINICARD 0x8116 ++#define DELL_PRODUCT_5700_EXPRESSCARD 0x8117 ++#define DELL_PRODUCT_5510_EXPRESSCARD 0x8118 ++ ++#define DELL_PRODUCT_5700_MINICARD_SPRINT 0x8128 ++#define DELL_PRODUCT_5700_MINICARD_TELUS 0x8129 ++ ++#define DELL_PRODUCT_5720_MINICARD_VZW 0x8133 ++#define DELL_PRODUCT_5720_MINICARD_SPRINT 0x8134 ++#define DELL_PRODUCT_5720_MINICARD_TELUS 0x8135 ++#define DELL_PRODUCT_5520_MINICARD_CINGULAR 0x8136 ++#define DELL_PRODUCT_5520_MINICARD_GENERIC_L 0x8137 ++#define DELL_PRODUCT_5520_MINICARD_GENERIC_I 0x8138 ++ ++#define DELL_PRODUCT_5730_MINICARD_SPRINT 0x8180 ++#define DELL_PRODUCT_5730_MINICARD_TELUS 0x8181 ++#define DELL_PRODUCT_5730_MINICARD_VZW 0x8182 ++ + #define KYOCERA_VENDOR_ID 0x0c88 + #define KYOCERA_PRODUCT_KPC650 0x17da + #define KYOCERA_PRODUCT_KPC680 0x180a +@@ -259,19 +283,13 @@ + + /* ZTE PRODUCTS */ + #define ZTE_VENDOR_ID 0x19d2 ++#define ZTE_PRODUCT_MF622 0x0001 + #define ZTE_PRODUCT_MF628 0x0015 + #define ZTE_PRODUCT_MF626 0x0031 + #define ZTE_PRODUCT_CDMA_TECH 0xfffe + +-/* Ericsson products */ +-#define ERICSSON_VENDOR_ID 0x0bdb +-#define ERICSSON_PRODUCT_F3507G 0x1900 +- +-/* Pantech products */ +-#define PANTECH_VENDOR_ID 0x106c +-#define PANTECH_PRODUCT_PC5740 0x3701 +-#define PANTECH_PRODUCT_PC5750 0x3702 /* PX-500 */ +-#define PANTECH_PRODUCT_UM150 0x3711 ++#define BENQ_VENDOR_ID 0x04a5 ++#define BENQ_PRODUCT_H10 0x4068 + + static struct usb_device_id option_ids[] = { + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, +@@ -298,6 +316,7 @@ + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) }, ++ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTM380_MODEM) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, +@@ -383,31 +402,37 @@ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_1) }, /* Novatel EVDO product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_1) }, /* Novatel HSPA product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_1) }, /* Novatel Embedded product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_1) }, /* Novatel Global product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_2) }, /* Novatel EVDO product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_2) }, /* Novatel HSPA product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_2) }, /* Novatel Embedded product */ +- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_2) }, /* Novatel Global product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U727) }, /* Novatel MC727/U727/USB727 */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED) }, /* Novatel EVDO product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED) }, /* Novatel HSPA product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) }, /* Novatel EVDO Embedded product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) }, /* Novatel HSPA Embedded product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) }, /* Novatel EVDO product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) }, /* Novatel HSPA product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED) }, /* Novatel EVDO Embedded product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED) }, /* Novatel HSPA Embedded product */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL) }, /* Novatel Global product */ + + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) }, + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) }, + { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) }, + +- { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8117) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8118) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8128) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8129) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite ET620 CDMA/EV-DO */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8133) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8136) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5500_MINICARD) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5505_MINICARD) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_EXPRESSCARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5510_EXPRESSCARD) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_SPRINT) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_TELUS) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite ET620 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_VZW) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_SPRINT) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_TELUS) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_CINGULAR) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_L) }, /* Dell Wireless HSDPA 5520 */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_I) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ ++ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, + { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, +@@ -472,13 +497,12 @@ + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ + { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, ++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, +- { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, +- { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5740) }, +- { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5750) }, +- { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_UM150) }, ++ { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, ++ { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ + { } /* Terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, option_ids); +--- kernel-power-2.6.28.orig/drivers/usb/serial/ti_usb_3410_5052.c ++++ kernel-power-2.6.28/drivers/usb/serial/ti_usb_3410_5052.c +@@ -176,25 +176,32 @@ + /* the array dimension is the number of default entries plus */ + /* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */ + /* null entry */ +-static struct usb_device_id ti_id_table_3410[1+TI_EXTRA_VID_PID_COUNT+1] = { ++static struct usb_device_id ti_id_table_3410[10+TI_EXTRA_VID_PID_COUNT+1] = { + { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, + }; + +-static struct usb_device_id ti_id_table_5052[4+TI_EXTRA_VID_PID_COUNT+1] = { ++static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = { + { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, + }; + +-static struct usb_device_id ti_id_table_combined[] = { ++static struct usb_device_id ti_id_table_combined[14+2*TI_EXTRA_VID_PID_COUNT+1] = { + { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) }, + { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, ++ { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, + { } + }; + +--- kernel-power-2.6.28.orig/drivers/usb/serial/ti_usb_3410_5052.h ++++ kernel-power-2.6.28/drivers/usb/serial/ti_usb_3410_5052.h +@@ -27,7 +27,11 @@ + + /* Vendor and product ids */ + #define TI_VENDOR_ID 0x0451 ++#define IBM_VENDOR_ID 0x04b3 + #define TI_3410_PRODUCT_ID 0x3410 ++#define IBM_4543_PRODUCT_ID 0x4543 ++#define IBM_454B_PRODUCT_ID 0x454b ++#define IBM_454C_PRODUCT_ID 0x454c + #define TI_3410_EZ430_ID 0xF430 /* TI ez430 development tool */ + #define TI_5052_BOOT_PRODUCT_ID 0x5052 /* no EEPROM, no firmware */ + #define TI_5152_BOOT_PRODUCT_ID 0x5152 /* no EEPROM, no firmware */ +--- kernel-power-2.6.28.orig/drivers/usb/storage/cypress_atacb.c ++++ kernel-power-2.6.28/drivers/usb/storage/cypress_atacb.c +@@ -133,19 +133,18 @@ + + /* build the command for + * reading the ATA registers */ +- scsi_eh_prep_cmnd(srb, &ses, NULL, 0, 0); +- srb->sdb.length = sizeof(regs); +- sg_init_one(&ses.sense_sgl, regs, srb->sdb.length); +- srb->sdb.table.sgl = &ses.sense_sgl; +- srb->sc_data_direction = DMA_FROM_DEVICE; +- srb->sdb.table.nents = 1; ++ scsi_eh_prep_cmnd(srb, &ses, NULL, 0, sizeof(regs)); ++ + /* we use the same command as before, but we set + * the read taskfile bit, for not executing atacb command, + * but reading register selected in srb->cmnd[4] + */ ++ srb->cmd_len = 16; ++ srb->cmnd = ses.cmnd; + srb->cmnd[2] = 1; + + usb_stor_transparent_scsi_command(srb, us); ++ memcpy(regs, srb->sense_buffer, sizeof(regs)); + tmp_result = srb->result; + scsi_eh_restore_cmnd(srb, &ses); + /* we fail to get registers, report invalid command */ +@@ -162,8 +161,8 @@ + + /* XXX we should generate sk, asc, ascq from status and error + * regs +- * (see 11.1 Error translation ­ ATA device error to SCSI error map) +- * and ata_to_sense_error from libata. ++ * (see 11.1 Error translation ATA device error to SCSI error ++ * map, and ata_to_sense_error from libata.) + */ + + /* Sense data is current and format is descriptor. */ +--- kernel-power-2.6.28.orig/drivers/usb/storage/libusual.c ++++ kernel-power-2.6.28/drivers/usb/storage/libusual.c +@@ -46,6 +46,12 @@ + { USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin,bcdDeviceMax), \ + .driver_info = (flags)|(USB_US_TYPE_STOR<<24) } + ++#define COMPLIANT_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \ ++ vendorName, productName, useProtocol, useTransport, \ ++ initFunction, flags) \ ++{ USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax), \ ++ .driver_info = (flags) } ++ + #define USUAL_DEV(useProto, useTrans, useType) \ + { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans), \ + .driver_info = ((useType)<<24) } +@@ -57,6 +63,7 @@ + + #undef USUAL_DEV + #undef UNUSUAL_DEV ++#undef COMPLIANT_DEV + + MODULE_DEVICE_TABLE(usb, storage_usb_ids); + EXPORT_SYMBOL_GPL(storage_usb_ids); +--- kernel-power-2.6.28.orig/drivers/usb/storage/scsiglue.c ++++ kernel-power-2.6.28/drivers/usb/storage/scsiglue.c +@@ -59,6 +59,14 @@ + #include "transport.h" + #include "protocol.h" + ++/* Vendor IDs for companies that seem to include the READ CAPACITY bug ++ * in all their devices ++ */ ++#define VENDOR_ID_NOKIA 0x0421 ++#define VENDOR_ID_NIKON 0x04b0 ++#define VENDOR_ID_PENTAX 0x0a17 ++#define VENDOR_ID_MOTOROLA 0x22b8 ++ + /*********************************************************************** + * Host functions + ***********************************************************************/ +@@ -127,6 +135,12 @@ + if (sdev->request_queue->max_sectors > max_sectors) + blk_queue_max_sectors(sdev->request_queue, + max_sectors); ++ } else if (sdev->type == TYPE_TAPE) { ++ /* Tapes need much higher max_sector limits, so just ++ * raise it to the maximum possible (4 GB / 512) and ++ * let the queue segment size sort out the real limit. ++ */ ++ blk_queue_max_sectors(sdev->request_queue, 0x7FFFFF); + } + + /* We can't put these settings in slave_alloc() because that gets +@@ -134,6 +148,23 @@ + * settings can't be overridden via the scsi devinfo mechanism. */ + if (sdev->type == TYPE_DISK) { + ++ /* Some vendors seem to put the READ CAPACITY bug into ++ * all their devices -- primarily makers of cell phones ++ * and digital cameras. Since these devices always use ++ * flash media and can be expected to have an even number ++ * of sectors, we will always enable the CAPACITY_HEURISTICS ++ * flag unless told otherwise. */ ++ switch (le16_to_cpu(us->pusb_dev->descriptor.idVendor)) { ++ case VENDOR_ID_NOKIA: ++ case VENDOR_ID_NIKON: ++ case VENDOR_ID_PENTAX: ++ case VENDOR_ID_MOTOROLA: ++ if (!(us->fflags & (US_FL_FIX_CAPACITY | ++ US_FL_CAPACITY_OK))) ++ us->fflags |= US_FL_CAPACITY_HEURISTICS; ++ break; ++ } ++ + /* Disk-type devices use MODE SENSE(6) if the protocol + * (SubClass) is Transparent SCSI, otherwise they use + * MODE SENSE(10). */ +@@ -196,6 +227,14 @@ + * sector in a larger then 1 sector read, since the performance + * impact is negible we set this flag for all USB disks */ + sdev->last_sector_bug = 1; ++ ++ /* Enable last-sector hacks for single-target devices using ++ * the Bulk-only transport, unless we already know the ++ * capacity will be decremented or is correct. */ ++ if (!(us->fflags & (US_FL_FIX_CAPACITY | US_FL_CAPACITY_OK | ++ US_FL_SCM_MULT_TARG)) && ++ us->protocol == US_PR_BULK) ++ us->use_last_sector_hacks = 1; + } else { + + /* Non-disk-type devices don't need to blacklist any pages +--- kernel-power-2.6.28.orig/drivers/usb/storage/transport.c ++++ kernel-power-2.6.28/drivers/usb/storage/transport.c +@@ -57,6 +57,9 @@ + #include "scsiglue.h" + #include "debug.h" + ++#include ++#include "../../scsi/sd.h" ++ + + /*********************************************************************** + * Data transfer routines +@@ -511,6 +514,80 @@ + * Transport routines + ***********************************************************************/ + ++/* There are so many devices that report the capacity incorrectly, ++ * this routine was written to counteract some of the resulting ++ * problems. ++ */ ++static void last_sector_hacks(struct us_data *us, struct scsi_cmnd *srb) ++{ ++ struct gendisk *disk; ++ struct scsi_disk *sdkp; ++ u32 sector; ++ ++ /* To Report "Medium Error: Record Not Found */ ++ static unsigned char record_not_found[18] = { ++ [0] = 0x70, /* current error */ ++ [2] = MEDIUM_ERROR, /* = 0x03 */ ++ [7] = 0x0a, /* additional length */ ++ [12] = 0x14 /* Record Not Found */ ++ }; ++ ++ /* If last-sector problems can't occur, whether because the ++ * capacity was already decremented or because the device is ++ * known to report the correct capacity, then we don't need ++ * to do anything. ++ */ ++ if (!us->use_last_sector_hacks) ++ return; ++ ++ /* Was this command a READ(10) or a WRITE(10)? */ ++ if (srb->cmnd[0] != READ_10 && srb->cmnd[0] != WRITE_10) ++ goto done; ++ ++ /* Did this command access the last sector? */ ++ sector = (srb->cmnd[2] << 24) | (srb->cmnd[3] << 16) | ++ (srb->cmnd[4] << 8) | (srb->cmnd[5]); ++ disk = srb->request->rq_disk; ++ if (!disk) ++ goto done; ++ sdkp = scsi_disk(disk); ++ if (!sdkp) ++ goto done; ++ if (sector + 1 != sdkp->capacity) ++ goto done; ++ ++ if (srb->result == SAM_STAT_GOOD && scsi_get_resid(srb) == 0) { ++ ++ /* The command succeeded. We know this device doesn't ++ * have the last-sector bug, so stop checking it. ++ */ ++ us->use_last_sector_hacks = 0; ++ ++ } else { ++ /* The command failed. Allow up to 3 retries in case this ++ * is some normal sort of failure. After that, assume the ++ * capacity is wrong and we're trying to access the sector ++ * beyond the end. Replace the result code and sense data ++ * with values that will cause the SCSI core to fail the ++ * command immediately, instead of going into an infinite ++ * (or even just a very long) retry loop. ++ */ ++ if (++us->last_sector_retries < 3) ++ return; ++ srb->result = SAM_STAT_CHECK_CONDITION; ++ memcpy(srb->sense_buffer, record_not_found, ++ sizeof(record_not_found)); ++ } ++ ++ done: ++ /* Don't reset the retry counter for TEST UNIT READY commands, ++ * because they get issued after device resets which might be ++ * caused by a failed last-sector access. ++ */ ++ if (srb->cmnd[0] != TEST_UNIT_READY) ++ us->last_sector_retries = 0; ++} ++ + /* Invoke the transport and basic error-handling/recovery methods + * + * This is used by the protocol layers to actually send the message to +@@ -544,6 +621,7 @@ + /* if the transport provided its own sense data, don't auto-sense */ + if (result == USB_STOR_TRANSPORT_NO_SENSE) { + srb->result = SAM_STAT_CHECK_CONDITION; ++ last_sector_hacks(us, srb); + return; + } + +@@ -667,6 +745,7 @@ + scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow) + srb->result = (DID_ERROR << 16) | (SUGGEST_RETRY << 24); + ++ last_sector_hacks(us, srb); + return; + + /* Error and abort processing: try to resynchronize with the device +@@ -694,6 +773,7 @@ + us->transport_reset(us); + } + clear_bit(US_FLIDX_RESETTING, &us->dflags); ++ last_sector_hacks(us, srb); + } + + /* Stop the current URB transfer */ +--- kernel-power-2.6.28.orig/drivers/usb/storage/unusual_devs.h ++++ kernel-power-2.6.28/drivers/usb/storage/unusual_devs.h +@@ -27,7 +27,8 @@ + + /* IMPORTANT NOTE: This file must be included in another file which does + * the following thing for it to work: +- * The macro UNUSUAL_DEV() must be defined before this file is included ++ * The UNUSUAL_DEV, COMPLIANT_DEV, and USUAL_DEV macros must be defined ++ * before this file is included. + */ + + /* If you edit this file, please try to keep it sorted first by VendorID, +@@ -46,6 +47,12 @@ + * + */ + ++/* Note: If you add an entry only in order to set the CAPACITY_OK flag, ++ * use the COMPLIANT_DEV macro instead of UNUSUAL_DEV. This is ++ * because such entries mark devices which actually work correctly, ++ * as opposed to devices that do something strangely or wrongly. ++ */ ++ + /* patch submitted by Vivian Bregier + */ + UNUSUAL_DEV( 0x03eb, 0x2002, 0x0100, 0x0100, +@@ -160,34 +167,6 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 ), + +-/* Reported by Filip Joelsson */ +-UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x0600, +- "Nokia", +- "Nokia 3110c", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- +-/* Reported by Ozan Sener */ +-UNUSUAL_DEV( 0x0421, 0x0060, 0x0551, 0x0551, +- "Nokia", +- "3500c", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- +-/* Reported by CSECSY Laszlo */ +-UNUSUAL_DEV( 0x0421, 0x0063, 0x0001, 0x0601, +- "Nokia", +- "Nokia 3109c", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- +-/* Patch for Nokia 5310 capacity */ +-UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0701, +- "Nokia", +- "5310", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- + /* Reported by Mario Rettig */ + UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, + "Nokia", +@@ -240,7 +219,7 @@ + US_FL_MAX_SECTORS_64 ), + + /* Reported by Manuel Osdoba */ +-UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x0452, ++UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x9999, + "Nokia", + "Nokia 6233", + US_SC_DEVICE, US_PR_DEVICE, NULL, +@@ -253,35 +232,6 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 ), + +-/* Reported by Cedric Godin */ +-UNUSUAL_DEV( 0x0421, 0x04b9, 0x0500, 0x0551, +- "Nokia", +- "5300", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- +-/* Reported by Richard Nauber */ +-UNUSUAL_DEV( 0x0421, 0x04fa, 0x0550, 0x0660, +- "Nokia", +- "6300", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- +-/* Patch for Nokia 5310 capacity */ +-UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591, +- "Nokia", +- "5310", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- +-/* Submitted by Ricky Wong Yung Fei */ +-/* Nokia 7610 Supernova - Too many sectors reported in usb storage mode */ +-UNUSUAL_DEV( 0x0421, 0x00f5, 0x0000, 0x0470, +- "Nokia", +- "7610 Supernova", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY ), +- + /* Reported by Olaf Hering from novell bug #105878 */ + UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210, + "SMSC", +@@ -396,83 +346,6 @@ + US_SC_DEVICE, US_PR_DEVICE,NULL, + US_FL_NOT_LOCKABLE ), + +-/* Reported by Stefan de Konink */ +-UNUSUAL_DEV( 0x04b0, 0x0401, 0x0200, 0x0200, +- "NIKON", +- "NIKON DSC D100", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Tobias Kunze Briseno */ +-UNUSUAL_DEV( 0x04b0, 0x0403, 0x0200, 0x0200, +- "NIKON", +- "NIKON DSC D2H", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Milinevsky Dmitry */ +-UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100, +- "NIKON", +- "NIKON DSC D50", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Andreas Bockhold */ +-UNUSUAL_DEV( 0x04b0, 0x0405, 0x0100, 0x0100, +- "NIKON", +- "NIKON DSC D70", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Jamie Kitson */ +-UNUSUAL_DEV( 0x04b0, 0x040d, 0x0100, 0x0100, +- "NIKON", +- "NIKON DSC D70s", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Graber and Mike Pagano */ +-UNUSUAL_DEV( 0x04b0, 0x040f, 0x0100, 0x0200, +- "NIKON", +- "NIKON DSC D200", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Emil Larsson */ +-UNUSUAL_DEV( 0x04b0, 0x0411, 0x0100, 0x0111, +- "NIKON", +- "NIKON DSC D80", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Ortwin Glueck */ +-UNUSUAL_DEV( 0x04b0, 0x0413, 0x0110, 0x0111, +- "NIKON", +- "NIKON DSC D40", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Paul Check */ +-UNUSUAL_DEV( 0x04b0, 0x0415, 0x0100, 0x0100, +- "NIKON", +- "NIKON DSC D2Xs", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by Shan Destromp (shansan@gmail.com) */ +-UNUSUAL_DEV( 0x04b0, 0x0417, 0x0100, 0x0100, +- "NIKON", +- "NIKON DSC D40X", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* Reported by paul ready */ +-UNUSUAL_DEV( 0x04b0, 0x0419, 0x0100, 0x0200, +- "NIKON", +- "NIKON DSC D300", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- + /* Reported by Doug Maxey (dwm@austin.ibm.com) */ + UNUSUAL_DEV( 0x04b3, 0x4001, 0x0110, 0x0110, + "IBM", +@@ -685,6 +558,13 @@ + US_SC_8070, US_PR_DEVICE, NULL, + US_FL_FIX_INQUIRY ), + ++/* Added by Alan Stern */ ++COMPLIANT_DEV(0x0525, 0xa4a5, 0x0000, 0x9999, ++ "Linux", ++ "File-backed Storage Gadget", ++ US_SC_DEVICE, US_PR_DEVICE, NULL, ++ US_FL_CAPACITY_OK ), ++ + /* Yakumo Mega Image 37 + * Submitted by Stephan Fuhrmann */ + UNUSUAL_DEV( 0x052b, 0x1801, 0x0100, 0x0100, +@@ -996,13 +876,13 @@ + "Genesys Logic", + "USB to IDE Optical", + US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ), ++ US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), + + UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff, + "Genesys Logic", + "USB to IDE Disk", + US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ), ++ US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), + + /* Reported by Hanno Boeck + * Taken from the Lycoris Kernel */ +@@ -1033,14 +913,16 @@ + US_FL_FIX_CAPACITY ), + + /* Reported by Richard -=[]=- */ +-UNUSUAL_DEV( 0x067b, 0x2507, 0x0100, 0x0100, ++/* Change to bcdDeviceMin (0x0100 to 0x0001) reported by ++ * Thomas Bartosik */ ++UNUSUAL_DEV( 0x067b, 0x2507, 0x0001, 0x0100, + "Prolific Technology Inc.", + "Mass Storage Device", + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_FIX_CAPACITY | US_FL_GO_SLOW ), + + /* Reported by Alex Butcher */ +-UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0001, ++UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0101, + "Prolific Technology Inc.", + "ATAPI-6 Bridge Controller", + US_SC_DEVICE, US_PR_DEVICE, NULL, +@@ -1282,12 +1164,14 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_FIX_INQUIRY ), + +-/* Reported by Rauch Wolke */ ++/* Reported by Rauch Wolke ++ * and augmented by binbin (Bugzilla #12882) ++ */ + UNUSUAL_DEV( 0x07c4, 0xa4a5, 0x0000, 0xffff, + "Simple Tech/Datafab", + "CF+SM Reader", + US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_IGNORE_RESIDUE ), ++ US_FL_IGNORE_RESIDUE | US_FL_MAX_SECTORS_64 ), + + /* Casio QV 2x00/3x00/4000/8000 digital still cameras are not conformant + * to the USB storage specification in two ways: +@@ -1320,6 +1204,13 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_FIX_CAPACITY), + ++/* Reported and patched by Nguyen Anh Quynh */ ++UNUSUAL_DEV( 0x0840, 0x0084, 0x0001, 0x0001, ++ "Argosy", ++ "Storage", ++ US_SC_DEVICE, US_PR_DEVICE, NULL, ++ US_FL_FIX_CAPACITY), ++ + /* Entry and supporting patch by Theodore Kilgore . + * Flag will support Bulk devices which use a standards-violating 32-byte + * Command Block Wrapper. Here, the "DC2MEGA" cameras (several brands) with +@@ -1417,14 +1308,6 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_FIX_INQUIRY ), + +- +-/* Submitted by Per Winkvist */ +-UNUSUAL_DEV( 0x0a17, 0x006, 0x0000, 0xffff, +- "Pentax", +- "Optio S/S4", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_INQUIRY ), +- + /* These are virtual windows driver CDs, which the zd1211rw driver + * automatically converts into WLAN devices. */ + UNUSUAL_DEV( 0x0ace, 0x2011, 0x0101, 0x0101, +@@ -1449,6 +1332,16 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + 0 ), + ++/* Reported by Jan Dumon ++ * This device (wrongly) has a vendor-specific device descriptor. ++ * The entry is needed so usb-storage can bind to it's mass-storage ++ * interface as an interface driver */ ++UNUSUAL_DEV( 0x0af0, 0x7501, 0x0000, 0x0000, ++ "Option", ++ "GI 0431 SD-Card", ++ US_SC_DEVICE, US_PR_DEVICE, NULL, ++ 0 ), ++ + #ifdef CONFIG_USB_STORAGE_ISD200 + UNUSUAL_DEV( 0x0bf6, 0xa001, 0x0100, 0x0110, + "ATI", +@@ -2076,6 +1969,12 @@ + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_IGNORE_DEVICE), + ++UNUSUAL_DEV( 0x2116, 0x0320, 0x0001, 0x0001, ++ "ST", ++ "2A", ++ US_SC_DEVICE, US_PR_DEVICE, NULL, ++ US_FL_FIX_CAPACITY), ++ + /* patch submitted by Davide Perini + * and Renato Perini + */ +@@ -2086,27 +1985,6 @@ + US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ), + + /* +- * Patch by Pete Zaitcev +- * Report by Mark Patton. Red Hat bz#208928. +- * Added support for rev 0x0002 (Motorola ROKR W5) +- * by Javier Smaldone +- */ +-UNUSUAL_DEV( 0x22b8, 0x4810, 0x0001, 0x0002, +- "Motorola", +- "RAZR V3i/ROKR W5", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* +- * Patch by Jost Diederichs +- */ +-UNUSUAL_DEV(0x22b8, 0x6410, 0x0001, 0x9999, +- "Motorola Inc.", +- "Motorola Phone (RAZRV3xx)", +- US_SC_DEVICE, US_PR_DEVICE, NULL, +- US_FL_FIX_CAPACITY), +- +-/* + * Patch by Constantin Baranov + * Report by Andreas Koenecke. + * Motorola ROKR Z6. +--- kernel-power-2.6.28.orig/drivers/usb/storage/usb.c ++++ kernel-power-2.6.28/drivers/usb/storage/usb.c +@@ -126,6 +126,8 @@ + { USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin,bcdDeviceMax), \ + .driver_info = (flags)|(USB_US_TYPE_STOR<<24) } + ++#define COMPLIANT_DEV UNUSUAL_DEV ++ + #define USUAL_DEV(useProto, useTrans, useType) \ + { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans), \ + .driver_info = (USB_US_TYPE_STOR<<24) } +@@ -134,6 +136,7 @@ + + # include "unusual_devs.h" + #undef UNUSUAL_DEV ++#undef COMPLIANT_DEV + #undef USUAL_DEV + /* Terminating entry */ + { } +@@ -164,6 +167,8 @@ + .initFunction = init_function, \ + } + ++#define COMPLIANT_DEV UNUSUAL_DEV ++ + #define USUAL_DEV(use_protocol, use_transport, use_type) \ + { \ + .useProtocol = use_protocol, \ +@@ -173,6 +178,7 @@ + static struct us_unusual_dev us_unusual_dev_list[] = { + # include "unusual_devs.h" + # undef UNUSUAL_DEV ++# undef COMPLIANT_DEV + # undef USUAL_DEV + + /* Terminating entry */ +--- kernel-power-2.6.28.orig/drivers/usb/storage/usb.h ++++ kernel-power-2.6.28/drivers/usb/storage/usb.h +@@ -155,6 +155,10 @@ + #ifdef CONFIG_PM + pm_hook suspend_resume_hook; + #endif ++ ++ /* hacks for READ CAPACITY bug handling */ ++ int use_last_sector_hacks; ++ int last_sector_retries; + }; + + /* Convert between us_data and the corresponding Scsi_Host */ +--- kernel-power-2.6.28.orig/drivers/video/aty/mach64_ct.c ++++ kernel-power-2.6.28/drivers/video/aty/mach64_ct.c +@@ -8,6 +8,9 @@ + #include + #include

is the number of ---- kernel-power-2.6.28.orig/drivers/pci/hotplug/pciehp_core.c -+++ kernel-power-2.6.28/drivers/pci/hotplug/pciehp_core.c -@@ -126,8 +126,10 @@ - mutex_lock(&slot->ctrl->crit_sect); - - /* has it been >1 sec since our last toggle? */ -- if ((get_seconds() - slot->last_emi_toggle) < 1) -+ if ((get_seconds() - slot->last_emi_toggle) < 1) { -+ mutex_unlock(&slot->ctrl->crit_sect); - return -EINVAL; -+ } - - /* see what our current state is */ - retval = get_lock_status(hotplug_slot, &value); ---- kernel-power-2.6.28.orig/drivers/pci/intel-iommu.c -+++ kernel-power-2.6.28/drivers/pci/intel-iommu.c -@@ -71,6 +71,8 @@ - /* bitmap for indexing intel_iommus */ - static int g_num_of_iommus; - -+static int rwbf_quirk = 0; -+ - static DEFINE_SPINLOCK(async_umap_flush_lock); - static LIST_HEAD(unmaps_to_do); - -@@ -506,7 +508,7 @@ - u32 val; - unsigned long flag; - -- if (!cap_rwbf(iommu->cap)) -+ if (!rwbf_quirk && !cap_rwbf(iommu->cap)) - return; - val = iommu->gcmd | DMA_GCMD_WBF; - -@@ -2436,3 +2438,13 @@ - return pfn >> VTD_PAGE_SHIFT; - } - EXPORT_SYMBOL_GPL(intel_iommu_iova_to_pfn); -+ -+static void __devinit quirk_iommu_rwbf(struct pci_dev *dev) -+{ -+ /* Mobile 4 Series Chipset neglects to set RWBF capability, -+ but needs it */ -+ printk(KERN_INFO "DMAR: Forcing write-buffer flush capability\n"); -+ rwbf_quirk = 1; -+} -+ -+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_rwbf); ---- kernel-power-2.6.28.orig/drivers/pci/msi.c -+++ kernel-power-2.6.28/drivers/pci/msi.c -@@ -378,21 +378,19 @@ - entry->msi_attrib.masked = 1; - entry->msi_attrib.default_irq = dev->irq; /* Save IOAPIC IRQ */ - entry->msi_attrib.pos = pos; -- if (entry->msi_attrib.maskbit) { -- entry->mask_base = (void __iomem *)(long)msi_mask_bits_reg(pos, -- entry->msi_attrib.is_64); -- } - entry->dev = dev; - if (entry->msi_attrib.maskbit) { -- unsigned int maskbits, temp; -+ unsigned int base, maskbits, temp; -+ -+ base = msi_mask_bits_reg(pos, entry->msi_attrib.is_64); -+ entry->mask_base = (void __iomem *)(long)base; -+ - /* All MSIs are unmasked by default, Mask them all */ -- pci_read_config_dword(dev, -- msi_mask_bits_reg(pos, entry->msi_attrib.is_64), -- &maskbits); -+ pci_read_config_dword(dev, base, &maskbits); - temp = (1 << multi_msi_capable(control)); - temp = ((temp - 1) & ~temp); - maskbits |= temp; -- pci_write_config_dword(dev, entry->msi_attrib.is_64, maskbits); -+ pci_write_config_dword(dev, base, maskbits); - entry->msi_attrib.maskbits_mask = temp; - } - list_add_tail(&entry->list, &dev->msi_list); ---- kernel-power-2.6.28.orig/drivers/pci/pci-sysfs.c -+++ kernel-power-2.6.28/drivers/pci/pci-sysfs.c -@@ -777,8 +777,8 @@ - return -EINVAL; - - rom = pci_map_rom(pdev, &size); /* size starts out as PCI window size */ -- if (!rom) -- return 0; -+ if (!rom || !size) -+ return -EIO; - - if (off >= size) - count = 0; ---- kernel-power-2.6.28.orig/drivers/pci/pcie/aer/aerdrv_core.c -+++ kernel-power-2.6.28/drivers/pci/pcie/aer/aerdrv_core.c -@@ -108,6 +108,34 @@ - } - #endif /* 0 */ - -+ -+static void set_device_error_reporting(struct pci_dev *dev, void *data) -+{ -+ bool enable = *((bool *)data); -+ -+ if (dev->pcie_type != PCIE_RC_PORT && -+ dev->pcie_type != PCIE_SW_UPSTREAM_PORT && -+ dev->pcie_type != PCIE_SW_DOWNSTREAM_PORT) -+ return; -+ -+ if (enable) -+ pci_enable_pcie_error_reporting(dev); -+ else -+ pci_disable_pcie_error_reporting(dev); -+} -+ -+/** -+ * set_downstream_devices_error_reporting - enable/disable the error reporting bits on the root port and its downstream ports. -+ * @dev: pointer to root port's pci_dev data structure -+ * @enable: true = enable error reporting, false = disable error reporting. -+ */ -+static void set_downstream_devices_error_reporting(struct pci_dev *dev, -+ bool enable) -+{ -+ set_device_error_reporting(dev, &enable); -+ pci_walk_bus(dev->subordinate, set_device_error_reporting, &enable); -+} -+ - static int find_device_iter(struct device *device, void *data) - { - struct pci_dev *dev; -@@ -525,15 +553,11 @@ - pci_read_config_dword(pdev, aer_pos + PCI_ERR_UNCOR_STATUS, ®32); - pci_write_config_dword(pdev, aer_pos + PCI_ERR_UNCOR_STATUS, reg32); - -- /* Enable Root Port device reporting error itself */ -- pci_read_config_word(pdev, pos+PCI_EXP_DEVCTL, ®16); -- reg16 = reg16 | -- PCI_EXP_DEVCTL_CERE | -- PCI_EXP_DEVCTL_NFERE | -- PCI_EXP_DEVCTL_FERE | -- PCI_EXP_DEVCTL_URRE; -- pci_write_config_word(pdev, pos+PCI_EXP_DEVCTL, -- reg16); -+ /* -+ * Enable error reporting for the root port device and downstream port -+ * devices. -+ */ -+ set_downstream_devices_error_reporting(pdev, true); - - /* Enable Root Port's interrupt in response to error messages */ - pci_write_config_dword(pdev, -@@ -553,6 +577,12 @@ - u32 reg32; - int pos; - -+ /* -+ * Disable error reporting for the root port device and downstream port -+ * devices. -+ */ -+ set_downstream_devices_error_reporting(pdev, false); -+ - pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR); - /* Disable Root's interrupt in response to error messages */ - pci_write_config_dword(pdev, pos + PCI_ERR_ROOT_COMMAND, 0); ---- kernel-power-2.6.28.orig/drivers/pci/pcie/aspm.c -+++ kernel-power-2.6.28/drivers/pci/pcie/aspm.c -@@ -33,6 +33,11 @@ - struct pcie_link_state { - struct list_head sibiling; - struct pci_dev *pdev; -+ bool downstream_has_switch; -+ -+ struct pcie_link_state *parent; -+ struct list_head children; -+ struct list_head link; - - /* ASPM state */ - unsigned int support_state; -@@ -125,7 +130,7 @@ - link_state->clk_pm_enabled = !!enable; - } - --static void pcie_check_clock_pm(struct pci_dev *pdev) -+static void pcie_check_clock_pm(struct pci_dev *pdev, int blacklist) - { - int pos; - u32 reg32; -@@ -149,10 +154,26 @@ - if (!(reg16 & PCI_EXP_LNKCTL_CLKREQ_EN)) - enabled = 0; - } -- link_state->clk_pm_capable = capable; - link_state->clk_pm_enabled = enabled; - link_state->bios_clk_state = enabled; -- pcie_set_clock_pm(pdev, policy_to_clkpm_state(pdev)); -+ if (!blacklist) { -+ link_state->clk_pm_capable = capable; -+ pcie_set_clock_pm(pdev, policy_to_clkpm_state(pdev)); -+ } else { -+ link_state->clk_pm_capable = 0; -+ pcie_set_clock_pm(pdev, 0); -+ } -+} -+ -+static bool pcie_aspm_downstream_has_switch(struct pci_dev *pdev) -+{ -+ struct pci_dev *child_dev; -+ -+ list_for_each_entry(child_dev, &pdev->subordinate->devices, bus_list) { -+ if (child_dev->pcie_type == PCI_EXP_TYPE_UPSTREAM) -+ return true; -+ } -+ return false; - } - - /* -@@ -419,9 +440,9 @@ - { - struct pci_dev *child_dev; - -- /* If no child, disable the link */ -+ /* If no child, ignore the link */ - if (list_empty(&pdev->subordinate->devices)) -- return 0; -+ return state; - list_for_each_entry(child_dev, &pdev->subordinate->devices, bus_list) { - if (child_dev->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE) { - /* -@@ -462,6 +483,9 @@ - int valid = 1; - struct pcie_link_state *link_state = pdev->link_state; - -+ /* If no child, disable the link */ -+ if (list_empty(&pdev->subordinate->devices)) -+ state = 0; - /* - * if the downstream component has pci bridge function, don't do ASPM - * now -@@ -493,20 +517,52 @@ - link_state->enabled_state = state; - } - -+static struct pcie_link_state *get_root_port_link(struct pcie_link_state *link) -+{ -+ struct pcie_link_state *root_port_link = link; -+ while (root_port_link->parent) -+ root_port_link = root_port_link->parent; -+ return root_port_link; -+} -+ -+/* check the whole hierarchy, and configure each link in the hierarchy */ - static void __pcie_aspm_configure_link_state(struct pci_dev *pdev, - unsigned int state) - { - struct pcie_link_state *link_state = pdev->link_state; -+ struct pcie_link_state *root_port_link = get_root_port_link(link_state); -+ struct pcie_link_state *leaf; - -- if (link_state->support_state == 0) -- return; - state &= PCIE_LINK_STATE_L0S|PCIE_LINK_STATE_L1; - -- /* state 0 means disabling aspm */ -- state = pcie_aspm_check_state(pdev, state); -+ /* check all links who have specific root port link */ -+ list_for_each_entry(leaf, &link_list, sibiling) { -+ if (!list_empty(&leaf->children) || -+ get_root_port_link(leaf) != root_port_link) -+ continue; -+ state = pcie_aspm_check_state(leaf->pdev, state); -+ } -+ /* check root port link too in case it hasn't children */ -+ state = pcie_aspm_check_state(root_port_link->pdev, state); -+ - if (link_state->enabled_state == state) - return; -- __pcie_aspm_config_link(pdev, state); -+ -+ /* -+ * we must change the hierarchy. See comments in -+ * __pcie_aspm_config_link for the order -+ **/ -+ if (state & PCIE_LINK_STATE_L1) { -+ list_for_each_entry(leaf, &link_list, sibiling) { -+ if (get_root_port_link(leaf) == root_port_link) -+ __pcie_aspm_config_link(leaf->pdev, state); -+ } -+ } else { -+ list_for_each_entry_reverse(leaf, &link_list, sibiling) { -+ if (get_root_port_link(leaf) == root_port_link) -+ __pcie_aspm_config_link(leaf->pdev, state); -+ } -+ } - } - - /* -@@ -570,6 +626,7 @@ - unsigned int state; - struct pcie_link_state *link_state; - int error = 0; -+ int blacklist; - - if (aspm_disabled || !pdev->is_pcie || pdev->link_state) - return; -@@ -580,29 +637,58 @@ - if (list_empty(&pdev->subordinate->devices)) - goto out; - -- if (pcie_aspm_sanity_check(pdev)) -- goto out; -+ blacklist = !!pcie_aspm_sanity_check(pdev); - - mutex_lock(&aspm_lock); - - link_state = kzalloc(sizeof(*link_state), GFP_KERNEL); - if (!link_state) - goto unlock_out; -- pdev->link_state = link_state; - -- pcie_aspm_configure_common_clock(pdev); -- -- pcie_aspm_cap_init(pdev); -+ link_state->downstream_has_switch = pcie_aspm_downstream_has_switch(pdev); -+ INIT_LIST_HEAD(&link_state->children); -+ INIT_LIST_HEAD(&link_state->link); -+ if (pdev->bus->self) {/* this is a switch */ -+ struct pcie_link_state *parent_link_state; -+ -+ parent_link_state = pdev->bus->parent->self->link_state; -+ if (!parent_link_state) { -+ kfree(link_state); -+ goto unlock_out; -+ } -+ list_add(&link_state->link, &parent_link_state->children); -+ link_state->parent = parent_link_state; -+ } - -- /* config link state to avoid BIOS error */ -- state = pcie_aspm_check_state(pdev, policy_to_aspm_state(pdev)); -- __pcie_aspm_config_link(pdev, state); -+ pdev->link_state = link_state; - -- pcie_check_clock_pm(pdev); -+ if (!blacklist) { -+ pcie_aspm_configure_common_clock(pdev); -+ pcie_aspm_cap_init(pdev); -+ } else { -+ link_state->enabled_state = PCIE_LINK_STATE_L0S|PCIE_LINK_STATE_L1; -+ link_state->bios_aspm_state = 0; -+ /* Set support state to 0, so we will disable ASPM later */ -+ link_state->support_state = 0; -+ } - - link_state->pdev = pdev; - list_add(&link_state->sibiling, &link_list); - -+ if (link_state->downstream_has_switch) { -+ /* -+ * If link has switch, delay the link config. The leaf link -+ * initialization will config the whole hierarchy. but we must -+ * make sure BIOS doesn't set unsupported link state -+ **/ -+ state = pcie_aspm_check_state(pdev, link_state->bios_aspm_state); -+ __pcie_aspm_config_link(pdev, state); -+ } else -+ __pcie_aspm_configure_link_state(pdev, -+ policy_to_aspm_state(pdev)); -+ -+ pcie_check_clock_pm(pdev, blacklist); -+ - unlock_out: - if (error) - free_link_state(pdev); -@@ -627,14 +713,15 @@ - - /* - * All PCIe functions are in one slot, remove one function will remove -- * the the whole slot, so just wait -+ * the whole slot, so just wait until we are the last function left. - */ -- if (!list_empty(&parent->subordinate->devices)) -+ if (!list_is_last(&pdev->bus_list, &parent->subordinate->devices)) - goto out; - - /* All functions are removed, so just disable ASPM for the link */ - __pcie_aspm_config_one_dev(parent, 0); - list_del(&link_state->sibiling); -+ list_del(&link_state->link); - /* Clock PM is for endpoint device */ - - free_link_state(parent); ---- kernel-power-2.6.28.orig/drivers/pci/pcie/portdrv_pci.c -+++ kernel-power-2.6.28/drivers/pci/pcie/portdrv_pci.c -@@ -101,14 +101,13 @@ - - pcie_portdrv_save_config(dev); - -- pci_enable_pcie_error_reporting(dev); -- - return 0; - } - - static void pcie_portdrv_remove (struct pci_dev *dev) - { - pcie_port_device_remove(dev); -+ pci_disable_device(dev); - kfree(pci_get_drvdata(dev)); - } - ---- kernel-power-2.6.28.orig/drivers/pci/quirks.c -+++ kernel-power-2.6.28/drivers/pci/quirks.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include "pci.h" - - int isa_dma_bridge_buggy; -@@ -1543,6 +1544,30 @@ - } - DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt); - -+/* -+ * The 82575 and 82598 may experience data corruption issues when transitioning -+ * out of L0S. To prevent this we need to disable L0S on the pci-e link -+ */ -+static void __devinit quirk_disable_aspm_l0s(struct pci_dev *dev) -+{ -+ dev_info(&dev->dev, "Disabling L0s\n"); -+ pci_disable_link_state(dev, PCIE_LINK_STATE_L0S); -+} -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10a7, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10a9, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10b6, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10c6, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10c7, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10c8, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10d6, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10db, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10dd, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10e1, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10ec, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f1, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x10f4, quirk_disable_aspm_l0s); -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1508, quirk_disable_aspm_l0s); -+ - static void __devinit fixup_rev1_53c810(struct pci_dev* dev) - { - /* rev 1 ncr53c810 chips don't set the class at all which means -@@ -1778,7 +1803,6 @@ - DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE, - quirk_msi_ht_cap); - -- - /* The nVidia CK804 chipset may have 2 HT MSI mappings. - * MSI are supported if the MSI capability set in any of these mappings. - */ -@@ -1829,6 +1853,9 @@ - PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB, - ht_enable_msi_mapping); - -+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8132_BRIDGE, -+ ht_enable_msi_mapping); -+ - /* The P5N32-SLI Premium motherboard from Asus has a problem with msi - * for the MCP55 NIC. It is not yet determined whether the msi problem - * also affects other devices. As for now, turn off msi for this device. ---- kernel-power-2.6.28.orig/drivers/pci/rom.c -+++ kernel-power-2.6.28/drivers/pci/rom.c -@@ -63,7 +63,7 @@ - * The PCI window size could be much larger than the - * actual image size. - */ --size_t pci_get_rom_size(void __iomem *rom, size_t size) -+size_t pci_get_rom_size(struct pci_dev *pdev, void __iomem *rom, size_t size) - { - void __iomem *image; - int last_image; -@@ -72,8 +72,10 @@ - do { - void __iomem *pds; - /* Standard PCI ROMs start out with these bytes 55 AA */ -- if (readb(image) != 0x55) -+ if (readb(image) != 0x55) { -+ dev_err(&pdev->dev, "Invalid ROM contents\n"); - break; -+ } - if (readb(image + 1) != 0xAA) - break; - /* get the PCI data structure and check its signature */ -@@ -159,7 +161,7 @@ - * size is much larger than the actual size of the ROM. - * True size is important if the ROM is going to be copied. - */ -- *size = pci_get_rom_size(rom, *size); -+ *size = pci_get_rom_size(pdev, rom, *size); - return rom; - } - ---- kernel-power-2.6.28.orig/drivers/pci/syscall.c -+++ kernel-power-2.6.28/drivers/pci/syscall.c -@@ -14,10 +14,8 @@ - #include - #include "pci.h" - --asmlinkage long --sys_pciconfig_read(unsigned long bus, unsigned long dfn, -- unsigned long off, unsigned long len, -- void __user *buf) -+SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn, -+ unsigned long, off, unsigned long, len, void __user *, buf) - { - struct pci_dev *dev; - u8 byte; -@@ -86,10 +84,8 @@ - return err; - } - --asmlinkage long --sys_pciconfig_write(unsigned long bus, unsigned long dfn, -- unsigned long off, unsigned long len, -- void __user *buf) -+SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, -+ unsigned long, off, unsigned long, len, void __user *, buf) - { - struct pci_dev *dev; - u8 byte; ---- kernel-power-2.6.28.orig/drivers/scsi/eata.c -+++ kernel-power-2.6.28/drivers/scsi/eata.c -@@ -1626,8 +1626,15 @@ - - cpp->sense_len = SCSI_SENSE_BUFFERSIZE; - -- count = scsi_dma_map(SCpnt); -- BUG_ON(count < 0); -+ if (!scsi_sg_count(SCpnt)) { -+ cpp->data_len = 0; -+ return; -+ } -+ -+ count = pci_map_sg(ha->pdev, scsi_sglist(SCpnt), scsi_sg_count(SCpnt), -+ pci_dir); -+ BUG_ON(!count); -+ - scsi_for_each_sg(SCpnt, sg, count, k) { - cpp->sglist[k].address = H2DEV(sg_dma_address(sg)); - cpp->sglist[k].num_bytes = H2DEV(sg_dma_len(sg)); -@@ -1655,7 +1662,9 @@ - pci_unmap_single(ha->pdev, DEV2H(cpp->sense_addr), - DEV2H(cpp->sense_len), PCI_DMA_FROMDEVICE); - -- scsi_dma_unmap(SCpnt); -+ if (scsi_sg_count(SCpnt)) -+ pci_unmap_sg(ha->pdev, scsi_sglist(SCpnt), scsi_sg_count(SCpnt), -+ pci_dir); - - if (!DEV2H(cpp->data_len)) - pci_dir = PCI_DMA_BIDIRECTIONAL; ---- kernel-power-2.6.28.orig/drivers/scsi/hptiop.c -+++ kernel-power-2.6.28/drivers/scsi/hptiop.c -@@ -1251,6 +1251,7 @@ - { PCI_VDEVICE(TTI, 0x3530), (kernel_ulong_t)&hptiop_itl_ops }, - { PCI_VDEVICE(TTI, 0x3560), (kernel_ulong_t)&hptiop_itl_ops }, - { PCI_VDEVICE(TTI, 0x4322), (kernel_ulong_t)&hptiop_itl_ops }, -+ { PCI_VDEVICE(TTI, 0x4321), (kernel_ulong_t)&hptiop_itl_ops }, - { PCI_VDEVICE(TTI, 0x4210), (kernel_ulong_t)&hptiop_itl_ops }, - { PCI_VDEVICE(TTI, 0x4211), (kernel_ulong_t)&hptiop_itl_ops }, - { PCI_VDEVICE(TTI, 0x4310), (kernel_ulong_t)&hptiop_itl_ops }, ---- kernel-power-2.6.28.orig/drivers/scsi/ibmvscsi/ibmvfc.c -+++ kernel-power-2.6.28/drivers/scsi/ibmvscsi/ibmvfc.c -@@ -566,7 +566,7 @@ - struct ibmvfc_target *tgt; - - if (vhost->action == IBMVFC_HOST_ACTION_INIT_WAIT) { -- if (++vhost->init_retries > IBMVFC_MAX_INIT_RETRIES) { -+ if (++vhost->init_retries > IBMVFC_MAX_HOST_INIT_RETRIES) { - dev_err(vhost->dev, - "Host initialization retries exceeded. Taking adapter offline\n"); - ibmvfc_link_down(vhost, IBMVFC_HOST_OFFLINE); -@@ -847,11 +847,12 @@ - static void ibmvfc_retry_host_init(struct ibmvfc_host *vhost) - { - if (vhost->action == IBMVFC_HOST_ACTION_INIT_WAIT) { -- if (++vhost->init_retries > IBMVFC_MAX_INIT_RETRIES) { -+ vhost->delay_init = 1; -+ if (++vhost->init_retries > IBMVFC_MAX_HOST_INIT_RETRIES) { - dev_err(vhost->dev, - "Host initialization retries exceeded. Taking adapter offline\n"); - ibmvfc_link_down(vhost, IBMVFC_HOST_OFFLINE); -- } else if (vhost->init_retries == IBMVFC_MAX_INIT_RETRIES) -+ } else if (vhost->init_retries == IBMVFC_MAX_HOST_INIT_RETRIES) - __ibmvfc_reset_host(vhost); - else - ibmvfc_set_host_action(vhost, IBMVFC_HOST_ACTION_INIT); -@@ -2089,15 +2090,17 @@ - case IBMVFC_AE_LINK_UP: - case IBMVFC_AE_RESUME: - vhost->events_to_log |= IBMVFC_AE_LINKUP; -- ibmvfc_init_host(vhost, 1); -+ vhost->delay_init = 1; -+ __ibmvfc_reset_host(vhost); - break; - case IBMVFC_AE_SCN_FABRIC: -+ case IBMVFC_AE_SCN_DOMAIN: - vhost->events_to_log |= IBMVFC_AE_RSCN; -- ibmvfc_init_host(vhost, 1); -+ vhost->delay_init = 1; -+ __ibmvfc_reset_host(vhost); - break; - case IBMVFC_AE_SCN_NPORT: - case IBMVFC_AE_SCN_GROUP: -- case IBMVFC_AE_SCN_DOMAIN: - vhost->events_to_log |= IBMVFC_AE_RSCN; - case IBMVFC_AE_ELS_LOGO: - case IBMVFC_AE_ELS_PRLO: -@@ -2669,7 +2672,7 @@ - static void ibmvfc_retry_tgt_init(struct ibmvfc_target *tgt, - void (*job_step) (struct ibmvfc_target *)) - { -- if (++tgt->init_retries > IBMVFC_MAX_INIT_RETRIES) { -+ if (++tgt->init_retries > IBMVFC_MAX_TGT_INIT_RETRIES) { - ibmvfc_set_tgt_action(tgt, IBMVFC_TGT_ACTION_DEL_RPORT); - wake_up(&tgt->vhost->work_wait_q); - } else -@@ -3519,7 +3522,13 @@ - break; - case IBMVFC_HOST_ACTION_INIT: - BUG_ON(vhost->state != IBMVFC_INITIALIZING); -- vhost->job_step(vhost); -+ if (vhost->delay_init) { -+ vhost->delay_init = 0; -+ spin_unlock_irqrestore(vhost->host->host_lock, flags); -+ ssleep(15); -+ return; -+ } else -+ vhost->job_step(vhost); - break; - case IBMVFC_HOST_ACTION_QUERY: - list_for_each_entry(tgt, &vhost->targets, queue) ---- kernel-power-2.6.28.orig/drivers/scsi/ibmvscsi/ibmvfc.h -+++ kernel-power-2.6.28/drivers/scsi/ibmvscsi/ibmvfc.h -@@ -33,7 +33,7 @@ - #define IBMVFC_DRIVER_DATE "(August 14, 2008)" - - #define IBMVFC_DEFAULT_TIMEOUT 15 --#define IBMVFC_INIT_TIMEOUT 30 -+#define IBMVFC_INIT_TIMEOUT 120 - #define IBMVFC_MAX_REQUESTS_DEFAULT 100 - - #define IBMVFC_DEBUG 0 -@@ -43,7 +43,8 @@ - #define IBMVFC_MAX_DISC_THREADS 4 - #define IBMVFC_TGT_MEMPOOL_SZ 64 - #define IBMVFC_MAX_CMDS_PER_LUN 64 --#define IBMVFC_MAX_INIT_RETRIES 3 -+#define IBMVFC_MAX_HOST_INIT_RETRIES 6 -+#define IBMVFC_MAX_TGT_INIT_RETRIES 3 - #define IBMVFC_DEV_LOSS_TMO (5 * 60) - #define IBMVFC_DEFAULT_LOG_LEVEL 2 - #define IBMVFC_MAX_CDB_LEN 16 -@@ -671,6 +672,7 @@ - int discovery_threads; - int client_migrated; - int reinit; -+ int delay_init; - int events_to_log; - #define IBMVFC_AE_LINKUP 0x0001 - #define IBMVFC_AE_LINKDOWN 0x0002 ---- kernel-power-2.6.28.orig/drivers/scsi/libiscsi.c -+++ kernel-power-2.6.28/drivers/scsi/libiscsi.c -@@ -1862,12 +1862,14 @@ - num_arrays++; - q->pool = kzalloc(num_arrays * max * sizeof(void*), GFP_KERNEL); - if (q->pool == NULL) -- goto enomem; -+ return -ENOMEM; - - q->queue = kfifo_init((void*)q->pool, max * sizeof(void*), - GFP_KERNEL, NULL); -- if (q->queue == ERR_PTR(-ENOMEM)) -+ if (IS_ERR(q->queue)) { -+ q->queue = NULL; - goto enomem; -+ } - - for (i = 0; i < max; i++) { - q->pool[i] = kzalloc(item_size, GFP_KERNEL); -@@ -1897,8 +1899,8 @@ - - for (i = 0; i < q->max; i++) - kfree(q->pool[i]); -- if (q->pool) -- kfree(q->pool); -+ kfree(q->pool); -+ kfree(q->queue); - } - EXPORT_SYMBOL_GPL(iscsi_pool_free); - ---- kernel-power-2.6.28.orig/drivers/scsi/mvsas.c -+++ kernel-power-2.6.28/drivers/scsi/mvsas.c -@@ -2959,7 +2959,7 @@ - - /* enable auto port detection */ - mw32(GBL_PORT_TYPE, MODE_AUTO_DET_EN); -- msleep(100); -+ msleep(1100); - /* init and reset phys */ - for (i = 0; i < mvi->chip->n_phy; i++) { - u32 lo = be32_to_cpu(*(u32 *)&mvi->sas_addr[4]); ---- kernel-power-2.6.28.orig/drivers/scsi/pcmcia/aha152x_stub.c -+++ kernel-power-2.6.28/drivers/scsi/pcmcia/aha152x_stub.c -@@ -114,7 +114,7 @@ - link->io.NumPorts1 = 0x20; - link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; - link->io.IOAddrLines = 10; -- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE; -+ link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; - link->irq.IRQInfo1 = IRQ_LEVEL_ID; - link->conf.Attributes = CONF_ENABLE_IRQ; - link->conf.IntType = INT_MEMORY_AND_IO; ---- kernel-power-2.6.28.orig/drivers/scsi/sd.c -+++ kernel-power-2.6.28/drivers/scsi/sd.c -@@ -106,6 +106,7 @@ - static void sd_print_sense_hdr(struct scsi_disk *, struct scsi_sense_hdr *); - static void sd_print_result(struct scsi_disk *, int); - -+static DEFINE_SPINLOCK(sd_index_lock); - static DEFINE_IDA(sd_index_ida); - - /* This semaphore is used to mediate the 0->1 reference get in the -@@ -1847,7 +1848,9 @@ - if (!ida_pre_get(&sd_index_ida, GFP_KERNEL)) - goto out_put; - -+ spin_lock(&sd_index_lock); - error = ida_get_new(&sd_index_ida, &index); -+ spin_unlock(&sd_index_lock); - } while (error == -EAGAIN); - - if (error) -@@ -1910,7 +1913,9 @@ - return 0; - - out_free_index: -+ spin_lock(&sd_index_lock); - ida_remove(&sd_index_ida, index); -+ spin_unlock(&sd_index_lock); - out_put: - put_disk(gd); - out_free: -@@ -1960,7 +1965,9 @@ - struct scsi_disk *sdkp = to_scsi_disk(dev); - struct gendisk *disk = sdkp->disk; - -+ spin_lock(&sd_index_lock); - ida_remove(&sd_index_ida, sdkp->index); -+ spin_unlock(&sd_index_lock); - - disk->private_data = NULL; - put_disk(disk); ---- kernel-power-2.6.28.orig/drivers/scsi/sg.c -+++ kernel-power-2.6.28/drivers/scsi/sg.c -@@ -101,6 +101,7 @@ - #define SG_SECTOR_MSK (SG_SECTOR_SZ - 1) - - static int sg_add(struct device *, struct class_interface *); -+static void sg_device_destroy(struct kref *kref); - static void sg_remove(struct device *, struct class_interface *); - - static DEFINE_IDR(sg_index_idr); -@@ -137,6 +138,7 @@ - volatile char done; /* 0->before bh, 1->before read, 2->read */ - struct request *rq; - struct bio *bio; -+ struct execute_work ew; - } Sg_request; - - typedef struct sg_fd { /* holds the state of a file descriptor */ -@@ -158,6 +160,8 @@ - char next_cmd_len; /* 0 -> automatic (def), >0 -> use on next write() */ - char keep_orphan; /* 0 -> drop orphan (def), 1 -> keep for read() */ - char mmap_called; /* 0 -> mmap() never called on this fd */ -+ struct kref f_ref; -+ struct execute_work ew; - } Sg_fd; - - typedef struct sg_device { /* holds the state of each scsi generic device */ -@@ -171,6 +175,7 @@ - char sgdebug; /* 0->off, 1->sense, 9->dump dev, 10-> all devs */ - struct gendisk *disk; - struct cdev * cdev; /* char_dev [sysfs: /sys/cdev/major/sg] */ -+ struct kref d_ref; - } Sg_device; - - static int sg_fasync(int fd, struct file *filp, int mode); -@@ -185,7 +190,7 @@ - Sg_request * srp); - static ssize_t sg_new_write(Sg_fd *sfp, struct file *file, - const char __user *buf, size_t count, int blocking, -- int read_only, Sg_request **o_srp); -+ int read_only, int sg_io_owned, Sg_request **o_srp); - static int sg_common_write(Sg_fd * sfp, Sg_request * srp, - unsigned char *cmnd, int timeout, int blocking); - static int sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer); -@@ -194,13 +199,14 @@ - static void sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size); - static void sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp); - static Sg_fd *sg_add_sfp(Sg_device * sdp, int dev); --static int sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); --static void __sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp); -+static void sg_remove_sfp(struct kref *); - static Sg_request *sg_get_rq_mark(Sg_fd * sfp, int pack_id); - static Sg_request *sg_add_request(Sg_fd * sfp); - static int sg_remove_request(Sg_fd * sfp, Sg_request * srp); - static int sg_res_in_use(Sg_fd * sfp); -+static Sg_device *sg_lookup_dev(int dev); - static Sg_device *sg_get_dev(int dev); -+static void sg_put_dev(Sg_device *sdp); - #ifdef CONFIG_SCSI_PROC_FS - static int sg_last_dev(void); - #endif -@@ -237,22 +243,17 @@ - nonseekable_open(inode, filp); - SCSI_LOG_TIMEOUT(3, printk("sg_open: dev=%d, flags=0x%x\n", dev, flags)); - sdp = sg_get_dev(dev); -- if ((!sdp) || (!sdp->device)) { -- unlock_kernel(); -- return -ENXIO; -- } -- if (sdp->detached) { -- unlock_kernel(); -- return -ENODEV; -+ if (IS_ERR(sdp)) { -+ retval = PTR_ERR(sdp); -+ sdp = NULL; -+ goto sg_put; - } - - /* This driver's module count bumped by fops_get in */ - /* Prevent the device driver from vanishing while we sleep */ - retval = scsi_device_get(sdp->device); -- if (retval) { -- unlock_kernel(); -- return retval; -- } -+ if (retval) -+ goto sg_put; - - if (!((flags & O_NONBLOCK) || - scsi_block_when_processing_errors(sdp->device))) { -@@ -303,16 +304,20 @@ - if ((sfp = sg_add_sfp(sdp, dev))) - filp->private_data = sfp; - else { -- if (flags & O_EXCL) -+ if (flags & O_EXCL) { - sdp->exclude = 0; /* undo if error */ -+ wake_up_interruptible(&sdp->o_excl_wait); -+ } - retval = -ENOMEM; - goto error_out; - } -- unlock_kernel(); -- return 0; -- -- error_out: -- scsi_device_put(sdp->device); -+ retval = 0; -+error_out: -+ if (retval) -+ scsi_device_put(sdp->device); -+sg_put: -+ if (sdp) -+ sg_put_dev(sdp); - unlock_kernel(); - return retval; - } -@@ -327,13 +332,13 @@ - if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) - return -ENXIO; - SCSI_LOG_TIMEOUT(3, printk("sg_release: %s\n", sdp->disk->disk_name)); -- if (0 == sg_remove_sfp(sdp, sfp)) { /* Returns 1 when sdp gone */ -- if (!sdp->detached) { -- scsi_device_put(sdp->device); -- } -- sdp->exclude = 0; -- wake_up_interruptible(&sdp->o_excl_wait); -- } -+ -+ sfp->closed = 1; -+ -+ sdp->exclude = 0; -+ wake_up_interruptible(&sdp->o_excl_wait); -+ -+ kref_put(&sfp->f_ref, sg_remove_sfp); - return 0; - } - -@@ -557,7 +562,8 @@ - return -EFAULT; - blocking = !(filp->f_flags & O_NONBLOCK); - if (old_hdr.reply_len < 0) -- return sg_new_write(sfp, filp, buf, count, blocking, 0, NULL); -+ return sg_new_write(sfp, filp, buf, count, -+ blocking, 0, 0, NULL); - if (count < (SZ_SG_HEADER + 6)) - return -EIO; /* The minimum scsi command length is 6 bytes. */ - -@@ -638,7 +644,7 @@ - - static ssize_t - sg_new_write(Sg_fd *sfp, struct file *file, const char __user *buf, -- size_t count, int blocking, int read_only, -+ size_t count, int blocking, int read_only, int sg_io_owned, - Sg_request **o_srp) - { - int k; -@@ -658,6 +664,7 @@ - SCSI_LOG_TIMEOUT(1, printk("sg_new_write: queue full\n")); - return -EDOM; - } -+ srp->sg_io_owned = sg_io_owned; - hp = &srp->header; - if (__copy_from_user(hp, buf, SZ_SG_IO_HDR)) { - sg_remove_request(sfp, srp); -@@ -755,24 +762,13 @@ - hp->duration = jiffies_to_msecs(jiffies); - - srp->rq->timeout = timeout; -+ kref_get(&sfp->f_ref); /* sg_rq_end_io() does kref_put(). */ - blk_execute_rq_nowait(sdp->device->request_queue, sdp->disk, - srp->rq, 1, sg_rq_end_io); - return 0; - } - - static int --sg_srp_done(Sg_request *srp, Sg_fd *sfp) --{ -- unsigned long iflags; -- int done; -- -- read_lock_irqsave(&sfp->rq_list_lock, iflags); -- done = srp->done; -- read_unlock_irqrestore(&sfp->rq_list_lock, iflags); -- return done; --} -- --static int - sg_ioctl(struct inode *inode, struct file *filp, - unsigned int cmd_in, unsigned long arg) - { -@@ -804,27 +800,26 @@ - return -EFAULT; - result = - sg_new_write(sfp, filp, p, SZ_SG_IO_HDR, -- blocking, read_only, &srp); -+ blocking, read_only, 1, &srp); - if (result < 0) - return result; -- srp->sg_io_owned = 1; - while (1) { - result = 0; /* following macro to beat race condition */ - __wait_event_interruptible(sfp->read_wait, -- (sdp->detached || sfp->closed || sg_srp_done(srp, sfp)), -- result); -+ (srp->done || sdp->detached), -+ result); - if (sdp->detached) - return -ENODEV; -- if (sfp->closed) -- return 0; /* request packet dropped already */ -- if (0 == result) -+ write_lock_irq(&sfp->rq_list_lock); -+ if (srp->done) { -+ srp->done = 2; -+ write_unlock_irq(&sfp->rq_list_lock); - break; -+ } - srp->orphan = 1; -+ write_unlock_irq(&sfp->rq_list_lock); - return result; /* -ERESTARTSYS because signal hit process */ - } -- write_lock_irqsave(&sfp->rq_list_lock, iflags); -- srp->done = 2; -- write_unlock_irqrestore(&sfp->rq_list_lock, iflags); - result = sg_new_read(sfp, p, SZ_SG_IO_HDR, srp); - return (result < 0) ? result : 0; - } -@@ -1240,6 +1235,15 @@ - return 0; - } - -+static void sg_rq_end_io_usercontext(struct work_struct *work) -+{ -+ struct sg_request *srp = container_of(work, struct sg_request, ew.work); -+ struct sg_fd *sfp = srp->parentfp; -+ -+ sg_finish_rem_req(srp); -+ kref_put(&sfp->f_ref, sg_remove_sfp); -+} -+ - /* - * This function is a "bottom half" handler that is called by the mid - * level when a command is completed (or has failed). -@@ -1247,24 +1251,23 @@ - static void sg_rq_end_io(struct request *rq, int uptodate) - { - struct sg_request *srp = rq->end_io_data; -- Sg_device *sdp = NULL; -+ Sg_device *sdp; - Sg_fd *sfp; - unsigned long iflags; - unsigned int ms; - char *sense; -- int result, resid; -+ int result, resid, done = 1; - -- if (NULL == srp) { -- printk(KERN_ERR "sg_cmd_done: NULL request\n"); -+ if (WARN_ON(srp->done != 0)) - return; -- } -+ - sfp = srp->parentfp; -- if (sfp) -- sdp = sfp->parentdp; -- if ((NULL == sdp) || sdp->detached) { -- printk(KERN_INFO "sg_cmd_done: device detached\n"); -+ if (WARN_ON(sfp == NULL)) - return; -- } -+ -+ sdp = sfp->parentdp; -+ if (unlikely(sdp->detached)) -+ printk(KERN_INFO "sg_rq_end_io: device detached\n"); - - sense = rq->sense; - result = rq->errors; -@@ -1303,33 +1306,25 @@ - } - /* Rely on write phase to clean out srp status values, so no "else" */ - -- if (sfp->closed) { /* whoops this fd already released, cleanup */ -- SCSI_LOG_TIMEOUT(1, printk("sg_cmd_done: already closed, freeing ...\n")); -- sg_finish_rem_req(srp); -- srp = NULL; -- if (NULL == sfp->headrp) { -- SCSI_LOG_TIMEOUT(1, printk("sg_cmd_done: already closed, final cleanup\n")); -- if (0 == sg_remove_sfp(sdp, sfp)) { /* device still present */ -- scsi_device_put(sdp->device); -- } -- sfp = NULL; -- } -- } else if (srp && srp->orphan) { -+ write_lock_irqsave(&sfp->rq_list_lock, iflags); -+ if (unlikely(srp->orphan)) { - if (sfp->keep_orphan) - srp->sg_io_owned = 0; -- else { -- sg_finish_rem_req(srp); -- srp = NULL; -- } -+ else -+ done = 0; - } -- if (sfp && srp) { -- /* Now wake up any sg_read() that is waiting for this packet. */ -- kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN); -- write_lock_irqsave(&sfp->rq_list_lock, iflags); -- srp->done = 1; -+ srp->done = done; -+ write_unlock_irqrestore(&sfp->rq_list_lock, iflags); -+ -+ if (likely(done)) { -+ /* Now wake up any sg_read() that is waiting for this -+ * packet. -+ */ - wake_up_interruptible(&sfp->read_wait); -- write_unlock_irqrestore(&sfp->rq_list_lock, iflags); -- } -+ kill_fasync(&sfp->async_qp, SIGPOLL, POLL_IN); -+ kref_put(&sfp->f_ref, sg_remove_sfp); -+ } else -+ execute_in_process_context(sg_rq_end_io_usercontext, &srp->ew); - } - - static struct file_operations sg_fops = { -@@ -1364,17 +1359,18 @@ - printk(KERN_WARNING "kmalloc Sg_device failure\n"); - return ERR_PTR(-ENOMEM); - } -- error = -ENOMEM; -+ - if (!idr_pre_get(&sg_index_idr, GFP_KERNEL)) { - printk(KERN_WARNING "idr expansion Sg_device failure\n"); -+ error = -ENOMEM; - goto out; - } - - write_lock_irqsave(&sg_index_lock, iflags); -- error = idr_get_new(&sg_index_idr, sdp, &k); -- write_unlock_irqrestore(&sg_index_lock, iflags); - -+ error = idr_get_new(&sg_index_idr, sdp, &k); - if (error) { -+ write_unlock_irqrestore(&sg_index_lock, iflags); - printk(KERN_WARNING "idr allocation Sg_device failure: %d\n", - error); - goto out; -@@ -1391,6 +1387,9 @@ - init_waitqueue_head(&sdp->o_excl_wait); - sdp->sg_tablesize = min(q->max_hw_segments, q->max_phys_segments); - sdp->index = k; -+ kref_init(&sdp->d_ref); -+ -+ write_unlock_irqrestore(&sg_index_lock, iflags); - - error = 0; - out: -@@ -1401,6 +1400,8 @@ - return sdp; - - overflow: -+ idr_remove(&sg_index_idr, k); -+ write_unlock_irqrestore(&sg_index_lock, iflags); - sdev_printk(KERN_WARNING, scsidp, - "Unable to attach sg device type=%d, minor " - "number exceeds %d\n", scsidp->type, SG_MAX_DEVS - 1); -@@ -1488,49 +1489,46 @@ - return error; - } - --static void --sg_remove(struct device *cl_dev, struct class_interface *cl_intf) -+static void sg_device_destroy(struct kref *kref) -+{ -+ struct sg_device *sdp = container_of(kref, struct sg_device, d_ref); -+ unsigned long flags; -+ -+ /* CAUTION! Note that the device can still be found via idr_find() -+ * even though the refcount is 0. Therefore, do idr_remove() BEFORE -+ * any other cleanup. -+ */ -+ -+ write_lock_irqsave(&sg_index_lock, flags); -+ idr_remove(&sg_index_idr, sdp->index); -+ write_unlock_irqrestore(&sg_index_lock, flags); -+ -+ SCSI_LOG_TIMEOUT(3, -+ printk("sg_device_destroy: %s\n", -+ sdp->disk->disk_name)); -+ -+ put_disk(sdp->disk); -+ kfree(sdp); -+} -+ -+static void sg_remove(struct device *cl_dev, struct class_interface *cl_intf) - { - struct scsi_device *scsidp = to_scsi_device(cl_dev->parent); - Sg_device *sdp = dev_get_drvdata(cl_dev); - unsigned long iflags; - Sg_fd *sfp; -- Sg_fd *tsfp; -- Sg_request *srp; -- Sg_request *tsrp; -- int delay; - -- if (!sdp) -+ if (!sdp || sdp->detached) - return; - -- delay = 0; -+ SCSI_LOG_TIMEOUT(3, printk("sg_remove: %s\n", sdp->disk->disk_name)); -+ -+ /* Need a write lock to set sdp->detached. */ - write_lock_irqsave(&sg_index_lock, iflags); -- if (sdp->headfp) { -- sdp->detached = 1; -- for (sfp = sdp->headfp; sfp; sfp = tsfp) { -- tsfp = sfp->nextfp; -- for (srp = sfp->headrp; srp; srp = tsrp) { -- tsrp = srp->nextrp; -- if (sfp->closed || (0 == sg_srp_done(srp, sfp))) -- sg_finish_rem_req(srp); -- } -- if (sfp->closed) { -- scsi_device_put(sdp->device); -- __sg_remove_sfp(sdp, sfp); -- } else { -- delay = 1; -- wake_up_interruptible(&sfp->read_wait); -- kill_fasync(&sfp->async_qp, SIGPOLL, -- POLL_HUP); -- } -- } -- SCSI_LOG_TIMEOUT(3, printk("sg_remove: dev=%d, dirty\n", sdp->index)); -- if (NULL == sdp->headfp) { -- idr_remove(&sg_index_idr, sdp->index); -- } -- } else { /* nothing active, simple case */ -- SCSI_LOG_TIMEOUT(3, printk("sg_remove: dev=%d\n", sdp->index)); -- idr_remove(&sg_index_idr, sdp->index); -+ sdp->detached = 1; -+ for (sfp = sdp->headfp; sfp; sfp = sfp->nextfp) { -+ wake_up_interruptible(&sfp->read_wait); -+ kill_fasync(&sfp->async_qp, SIGPOLL, POLL_HUP); - } - write_unlock_irqrestore(&sg_index_lock, iflags); - -@@ -1538,13 +1536,8 @@ - device_destroy(sg_sysfs_class, MKDEV(SCSI_GENERIC_MAJOR, sdp->index)); - cdev_del(sdp->cdev); - sdp->cdev = NULL; -- put_disk(sdp->disk); -- sdp->disk = NULL; -- if (NULL == sdp->headfp) -- kfree(sdp); - -- if (delay) -- msleep(10); /* dirty detach so delay device destruction */ -+ sg_put_dev(sdp); - } - - module_param_named(scatter_elem_sz, scatter_elem_sz, int, S_IRUGO | S_IWUSR); -@@ -1939,22 +1932,6 @@ - return resp; - } - --#ifdef CONFIG_SCSI_PROC_FS --static Sg_request * --sg_get_nth_request(Sg_fd * sfp, int nth) --{ -- Sg_request *resp; -- unsigned long iflags; -- int k; -- -- read_lock_irqsave(&sfp->rq_list_lock, iflags); -- for (k = 0, resp = sfp->headrp; resp && (k < nth); -- ++k, resp = resp->nextrp) ; -- read_unlock_irqrestore(&sfp->rq_list_lock, iflags); -- return resp; --} --#endif -- - /* always adds to end of list */ - static Sg_request * - sg_add_request(Sg_fd * sfp) -@@ -2030,22 +2007,6 @@ - return res; - } - --#ifdef CONFIG_SCSI_PROC_FS --static Sg_fd * --sg_get_nth_sfp(Sg_device * sdp, int nth) --{ -- Sg_fd *resp; -- unsigned long iflags; -- int k; -- -- read_lock_irqsave(&sg_index_lock, iflags); -- for (k = 0, resp = sdp->headfp; resp && (k < nth); -- ++k, resp = resp->nextfp) ; -- read_unlock_irqrestore(&sg_index_lock, iflags); -- return resp; --} --#endif -- - static Sg_fd * - sg_add_sfp(Sg_device * sdp, int dev) - { -@@ -2060,6 +2021,7 @@ - init_waitqueue_head(&sfp->read_wait); - rwlock_init(&sfp->rq_list_lock); - -+ kref_init(&sfp->f_ref); - sfp->timeout = SG_DEFAULT_TIMEOUT; - sfp->timeout_user = SG_DEFAULT_TIMEOUT_USER; - sfp->force_packid = SG_DEF_FORCE_PACK_ID; -@@ -2087,15 +2049,54 @@ - sg_build_reserve(sfp, bufflen); - SCSI_LOG_TIMEOUT(3, printk("sg_add_sfp: bufflen=%d, k_use_sg=%d\n", - sfp->reserve.bufflen, sfp->reserve.k_use_sg)); -+ -+ kref_get(&sdp->d_ref); -+ __module_get(THIS_MODULE); - return sfp; - } - --static void --__sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp) -+static void sg_remove_sfp_usercontext(struct work_struct *work) - { -+ struct sg_fd *sfp = container_of(work, struct sg_fd, ew.work); -+ struct sg_device *sdp = sfp->parentdp; -+ -+ /* Cleanup any responses which were never read(). */ -+ while (sfp->headrp) -+ sg_finish_rem_req(sfp->headrp); -+ -+ if (sfp->reserve.bufflen > 0) { -+ SCSI_LOG_TIMEOUT(6, -+ printk("sg_remove_sfp: bufflen=%d, k_use_sg=%d\n", -+ (int) sfp->reserve.bufflen, -+ (int) sfp->reserve.k_use_sg)); -+ sg_remove_scat(&sfp->reserve); -+ } -+ -+ SCSI_LOG_TIMEOUT(6, -+ printk("sg_remove_sfp: %s, sfp=0x%p\n", -+ sdp->disk->disk_name, -+ sfp)); -+ kfree(sfp); -+ -+ scsi_device_put(sdp->device); -+ sg_put_dev(sdp); -+ module_put(THIS_MODULE); -+} -+ -+static void sg_remove_sfp(struct kref *kref) -+{ -+ struct sg_fd *sfp = container_of(kref, struct sg_fd, f_ref); -+ struct sg_device *sdp = sfp->parentdp; - Sg_fd *fp; - Sg_fd *prev_fp; -+ unsigned long iflags; -+ -+ /* CAUTION! Note that sfp can still be found by walking sdp->headfp -+ * even though the refcount is now 0. Therefore, unlink sfp from -+ * sdp->headfp BEFORE doing any other cleanup. -+ */ - -+ write_lock_irqsave(&sg_index_lock, iflags); - prev_fp = sdp->headfp; - if (sfp == prev_fp) - sdp->headfp = prev_fp->nextfp; -@@ -2108,54 +2109,10 @@ - prev_fp = fp; - } - } -- if (sfp->reserve.bufflen > 0) { -- SCSI_LOG_TIMEOUT(6, -- printk("__sg_remove_sfp: bufflen=%d, k_use_sg=%d\n", -- (int) sfp->reserve.bufflen, (int) sfp->reserve.k_use_sg)); -- sg_remove_scat(&sfp->reserve); -- } -- sfp->parentdp = NULL; -- SCSI_LOG_TIMEOUT(6, printk("__sg_remove_sfp: sfp=0x%p\n", sfp)); -- kfree(sfp); --} -- --/* Returns 0 in normal case, 1 when detached and sdp object removed */ --static int --sg_remove_sfp(Sg_device * sdp, Sg_fd * sfp) --{ -- Sg_request *srp; -- Sg_request *tsrp; -- int dirty = 0; -- int res = 0; -- -- for (srp = sfp->headrp; srp; srp = tsrp) { -- tsrp = srp->nextrp; -- if (sg_srp_done(srp, sfp)) -- sg_finish_rem_req(srp); -- else -- ++dirty; -- } -- if (0 == dirty) { -- unsigned long iflags; -+ write_unlock_irqrestore(&sg_index_lock, iflags); -+ wake_up_interruptible(&sdp->o_excl_wait); - -- write_lock_irqsave(&sg_index_lock, iflags); -- __sg_remove_sfp(sdp, sfp); -- if (sdp->detached && (NULL == sdp->headfp)) { -- idr_remove(&sg_index_idr, sdp->index); -- kfree(sdp); -- res = 1; -- } -- write_unlock_irqrestore(&sg_index_lock, iflags); -- } else { -- /* MOD_INC's to inhibit unloading sg and associated adapter driver */ -- /* only bump the access_count if we actually succeeded in -- * throwing another counter on the host module */ -- scsi_device_get(sdp->device); /* XXX: retval ignored? */ -- sfp->closed = 1; /* flag dirty state on this fd */ -- SCSI_LOG_TIMEOUT(1, printk("sg_remove_sfp: worrisome, %d writes pending\n", -- dirty)); -- } -- return res; -+ execute_in_process_context(sg_remove_sfp_usercontext, &sfp->ew); - } - - static int -@@ -2197,19 +2154,38 @@ - } - #endif - --static Sg_device * --sg_get_dev(int dev) -+/* must be called with sg_index_lock held */ -+static Sg_device *sg_lookup_dev(int dev) - { -- Sg_device *sdp; -- unsigned long iflags; -+ return idr_find(&sg_index_idr, dev); -+} - -- read_lock_irqsave(&sg_index_lock, iflags); -- sdp = idr_find(&sg_index_idr, dev); -- read_unlock_irqrestore(&sg_index_lock, iflags); -+static Sg_device *sg_get_dev(int dev) -+{ -+ struct sg_device *sdp; -+ unsigned long flags; -+ -+ read_lock_irqsave(&sg_index_lock, flags); -+ sdp = sg_lookup_dev(dev); -+ if (!sdp) -+ sdp = ERR_PTR(-ENXIO); -+ else if (sdp->detached) { -+ /* If sdp->detached, then the refcount may already be 0, in -+ * which case it would be a bug to do kref_get(). -+ */ -+ sdp = ERR_PTR(-ENODEV); -+ } else -+ kref_get(&sdp->d_ref); -+ read_unlock_irqrestore(&sg_index_lock, flags); - - return sdp; - } - -+static void sg_put_dev(struct sg_device *sdp) -+{ -+ kref_put(&sdp->d_ref, sg_device_destroy); -+} -+ - #ifdef CONFIG_SCSI_PROC_FS - - static struct proc_dir_entry *sg_proc_sgp = NULL; -@@ -2466,8 +2442,10 @@ - struct sg_proc_deviter * it = (struct sg_proc_deviter *) v; - Sg_device *sdp; - struct scsi_device *scsidp; -+ unsigned long iflags; - -- sdp = it ? sg_get_dev(it->index) : NULL; -+ read_lock_irqsave(&sg_index_lock, iflags); -+ sdp = it ? sg_lookup_dev(it->index) : NULL; - if (sdp && (scsidp = sdp->device) && (!sdp->detached)) - seq_printf(s, "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n", - scsidp->host->host_no, scsidp->channel, -@@ -2478,6 +2456,7 @@ - (int) scsi_device_online(scsidp)); - else - seq_printf(s, "-1\t-1\t-1\t-1\t-1\t-1\t-1\t-1\t-1\n"); -+ read_unlock_irqrestore(&sg_index_lock, iflags); - return 0; - } - -@@ -2491,16 +2470,20 @@ - struct sg_proc_deviter * it = (struct sg_proc_deviter *) v; - Sg_device *sdp; - struct scsi_device *scsidp; -+ unsigned long iflags; - -- sdp = it ? sg_get_dev(it->index) : NULL; -+ read_lock_irqsave(&sg_index_lock, iflags); -+ sdp = it ? sg_lookup_dev(it->index) : NULL; - if (sdp && (scsidp = sdp->device) && (!sdp->detached)) - seq_printf(s, "%8.8s\t%16.16s\t%4.4s\n", - scsidp->vendor, scsidp->model, scsidp->rev); - else - seq_printf(s, "\n"); -+ read_unlock_irqrestore(&sg_index_lock, iflags); - return 0; - } - -+/* must be called while holding sg_index_lock */ - static void sg_proc_debug_helper(struct seq_file *s, Sg_device * sdp) - { - int k, m, new_interface, blen, usg; -@@ -2510,7 +2493,8 @@ - const char * cp; - unsigned int ms; - -- for (k = 0; (fp = sg_get_nth_sfp(sdp, k)); ++k) { -+ for (k = 0, fp = sdp->headfp; fp != NULL; ++k, fp = fp->nextfp) { -+ read_lock(&fp->rq_list_lock); /* irqs already disabled */ - seq_printf(s, " FD(%d): timeout=%dms bufflen=%d " - "(res)sgat=%d low_dma=%d\n", k + 1, - jiffies_to_msecs(fp->timeout), -@@ -2520,7 +2504,9 @@ - seq_printf(s, " cmd_q=%d f_packid=%d k_orphan=%d closed=%d\n", - (int) fp->cmd_q, (int) fp->force_packid, - (int) fp->keep_orphan, (int) fp->closed); -- for (m = 0; (srp = sg_get_nth_request(fp, m)); ++m) { -+ for (m = 0, srp = fp->headrp; -+ srp != NULL; -+ ++m, srp = srp->nextrp) { - hp = &srp->header; - new_interface = (hp->interface_id == '\0') ? 0 : 1; - if (srp->res_used) { -@@ -2557,6 +2543,7 @@ - } - if (0 == m) - seq_printf(s, " No requests active\n"); -+ read_unlock(&fp->rq_list_lock); - } - } - -@@ -2569,39 +2556,34 @@ - { - struct sg_proc_deviter * it = (struct sg_proc_deviter *) v; - Sg_device *sdp; -+ unsigned long iflags; - - if (it && (0 == it->index)) { - seq_printf(s, "max_active_device=%d(origin 1)\n", - (int)it->max); - seq_printf(s, " def_reserved_size=%d\n", sg_big_buff); - } -- sdp = it ? sg_get_dev(it->index) : NULL; -- if (sdp) { -- struct scsi_device *scsidp = sdp->device; - -- if (NULL == scsidp) { -- seq_printf(s, "device %d detached ??\n", -- (int)it->index); -- return 0; -- } -+ read_lock_irqsave(&sg_index_lock, iflags); -+ sdp = it ? sg_lookup_dev(it->index) : NULL; -+ if (sdp && sdp->headfp) { -+ struct scsi_device *scsidp = sdp->device; - -- if (sg_get_nth_sfp(sdp, 0)) { -- seq_printf(s, " >>> device=%s ", -- sdp->disk->disk_name); -- if (sdp->detached) -- seq_printf(s, "detached pending close "); -- else -- seq_printf -- (s, "scsi%d chan=%d id=%d lun=%d em=%d", -- scsidp->host->host_no, -- scsidp->channel, scsidp->id, -- scsidp->lun, -- scsidp->host->hostt->emulated); -- seq_printf(s, " sg_tablesize=%d excl=%d\n", -- sdp->sg_tablesize, sdp->exclude); -- } -+ seq_printf(s, " >>> device=%s ", sdp->disk->disk_name); -+ if (sdp->detached) -+ seq_printf(s, "detached pending close "); -+ else -+ seq_printf -+ (s, "scsi%d chan=%d id=%d lun=%d em=%d", -+ scsidp->host->host_no, -+ scsidp->channel, scsidp->id, -+ scsidp->lun, -+ scsidp->host->hostt->emulated); -+ seq_printf(s, " sg_tablesize=%d excl=%d\n", -+ sdp->sg_tablesize, sdp->exclude); - sg_proc_debug_helper(s, sdp); - } -+ read_unlock_irqrestore(&sg_index_lock, iflags); - return 0; - } - ---- kernel-power-2.6.28.orig/drivers/serial/8250.c -+++ kernel-power-2.6.28/drivers/serial/8250.c -@@ -2028,6 +2028,20 @@ - - serial8250_set_mctrl(&up->port, up->port.mctrl); - -+ /* Serial over Lan (SoL) hack: -+ Intel 8257x Gigabit ethernet chips have a -+ 16550 emulation, to be used for Serial Over Lan. -+ Those chips take a longer time than a normal -+ serial device to signalize that a transmission -+ data was queued. Due to that, the above test generally -+ fails. One solution would be to delay the reading of -+ iir. However, this is not reliable, since the timeout -+ is variable. So, let's just don't test if we receive -+ TX irq. This way, we'll never enable UART_BUG_TXEN. -+ */ -+ if (up->port.flags & UPF_NO_TXEN_TEST) -+ goto dont_test_tx_en; -+ - /* - * Do a quick test to see if we receive an - * interrupt when we enable the TX irq. -@@ -2047,6 +2061,7 @@ - up->bugs &= ~UART_BUG_TXEN; - } - -+dont_test_tx_en: - spin_unlock_irqrestore(&up->port.lock, flags); - - /* ---- kernel-power-2.6.28.orig/drivers/serial/8250_pci.c -+++ kernel-power-2.6.28/drivers/serial/8250_pci.c -@@ -758,6 +758,21 @@ - return setup_port(priv, port, bar, offset, board->reg_shift); - } - -+static int skip_tx_en_setup(struct serial_private *priv, -+ const struct pciserial_board *board, -+ struct uart_port *port, int idx) -+{ -+ port->flags |= UPF_NO_TXEN_TEST; -+ printk(KERN_DEBUG "serial8250: skipping TxEn test for device " -+ "[%04x:%04x] subsystem [%04x:%04x]\n", -+ priv->dev->vendor, -+ priv->dev->device, -+ priv->dev->subsystem_vendor, -+ priv->dev->subsystem_device); -+ -+ return pci_default_setup(priv, board, port, idx); -+} -+ - /* This should be in linux/pci_ids.h */ - #define PCI_VENDOR_ID_SBSMODULARIO 0x124B - #define PCI_SUBVENDOR_ID_SBSMODULARIO 0x124B -@@ -766,6 +781,8 @@ - #define PCI_SUBDEVICE_ID_OCTPRO422 0x0208 - #define PCI_SUBDEVICE_ID_POCTAL232 0x0308 - #define PCI_SUBDEVICE_ID_POCTAL422 0x0408 -+#define PCI_VENDOR_ID_ADVANTECH 0x13fe -+#define PCI_DEVICE_ID_ADVANTECH_PCI3620 0x3620 - - /* Unknown vendors/cards - this should not be in linux/pci_ids.h */ - #define PCI_SUBDEVICE_ID_UNKNOWN_0x1584 0x1584 -@@ -822,6 +839,27 @@ - .init = pci_inteli960ni_init, - .setup = pci_default_setup, - }, -+ { -+ .vendor = PCI_VENDOR_ID_INTEL, -+ .device = PCI_DEVICE_ID_INTEL_8257X_SOL, -+ .subvendor = PCI_ANY_ID, -+ .subdevice = PCI_ANY_ID, -+ .setup = skip_tx_en_setup, -+ }, -+ { -+ .vendor = PCI_VENDOR_ID_INTEL, -+ .device = PCI_DEVICE_ID_INTEL_82573L_SOL, -+ .subvendor = PCI_ANY_ID, -+ .subdevice = PCI_ANY_ID, -+ .setup = skip_tx_en_setup, -+ }, -+ { -+ .vendor = PCI_VENDOR_ID_INTEL, -+ .device = PCI_DEVICE_ID_INTEL_82573E_SOL, -+ .subvendor = PCI_ANY_ID, -+ .subdevice = PCI_ANY_ID, -+ .setup = skip_tx_en_setup, -+ }, - /* - * ITE - */ -@@ -2132,6 +2170,10 @@ - #endif - - static struct pci_device_id serial_pci_tbl[] = { -+ /* Advantech use PCI_DEVICE_ID_ADVANTECH_PCI3620 (0x3620) as 'PCI_SUBVENDOR_ID' */ -+ { PCI_VENDOR_ID_ADVANTECH, PCI_DEVICE_ID_ADVANTECH_PCI3620, -+ PCI_DEVICE_ID_ADVANTECH_PCI3620, 0x0001, 0, 0, -+ pbn_b2_8_921600 }, - { PCI_VENDOR_ID_V3, PCI_DEVICE_ID_V3_V960, - PCI_SUBVENDOR_ID_CONNECT_TECH, - PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_232, 0, 0, -@@ -2271,6 +2313,9 @@ - { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_COMM8, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, - pbn_b2_8_115200 }, -+ { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_7803, -+ PCI_ANY_ID, PCI_ANY_ID, 0, 0, -+ pbn_b2_8_460800 }, - { PCI_VENDOR_ID_SEALEVEL, PCI_DEVICE_ID_SEALEVEL_UCOMM8, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, - pbn_b2_8_115200 }, -@@ -2372,6 +2417,9 @@ - * For now just used the hex ID 0x950a. - */ - { PCI_VENDOR_ID_OXSEMI, 0x950a, -+ PCI_SUBVENDOR_ID_SIIG, PCI_SUBDEVICE_ID_SIIG_DUAL_SERIAL, 0, 0, -+ pbn_b0_2_115200 }, -+ { PCI_VENDOR_ID_OXSEMI, 0x950a, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, - pbn_b0_2_1130000 }, - { PCI_VENDOR_ID_OXSEMI, PCI_DEVICE_ID_OXSEMI_16PCI954, ---- kernel-power-2.6.28.orig/drivers/serial/jsm/jsm_driver.c -+++ kernel-power-2.6.28/drivers/serial/jsm/jsm_driver.c -@@ -84,6 +84,8 @@ - brd->pci_dev = pdev; - if (pdev->device == PCIE_DEVICE_ID_NEO_4_IBM) - brd->maxports = 4; -+ else if (pdev->device == PCI_DEVICE_ID_DIGI_NEO_8) -+ brd->maxports = 8; - else - brd->maxports = 2; - -@@ -212,6 +214,7 @@ - { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45), 0, 0, 2 }, - { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_NEO_2RJ45PRI), 0, 0, 3 }, - { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCIE_DEVICE_ID_NEO_4_IBM), 0, 0, 4 }, -+ { PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_ID_DIGI_NEO_8), 0, 0, 5 }, - { 0, } - }; - MODULE_DEVICE_TABLE(pci, jsm_pci_tbl); ---- kernel-power-2.6.28.orig/drivers/serial/jsm/jsm_tty.c -+++ kernel-power-2.6.28/drivers/serial/jsm/jsm_tty.c -@@ -161,6 +161,11 @@ - channel->ch_bd->bd_ops->disable_receiver(channel); - } - -+static void jsm_tty_enable_ms(struct uart_port *port) -+{ -+ /* Nothing needed */ -+} -+ - static void jsm_tty_break(struct uart_port *port, int break_state) - { - unsigned long lock_flags; -@@ -345,6 +350,7 @@ - .start_tx = jsm_tty_start_tx, - .send_xchar = jsm_tty_send_xchar, - .stop_rx = jsm_tty_stop_rx, -+ .enable_ms = jsm_tty_enable_ms, - .break_ctl = jsm_tty_break, - .startup = jsm_tty_open, - .shutdown = jsm_tty_close, ---- kernel-power-2.6.28.orig/drivers/spi/spi.c -+++ kernel-power-2.6.28/drivers/spi/spi.c -@@ -660,7 +660,7 @@ - - int status; - struct spi_message message; -- struct spi_transfer x; -+ struct spi_transfer x[2]; - u8 *local_buf; - - /* Use preallocated DMA-safe buffer. We can't avoid copying here, -@@ -671,9 +671,15 @@ - return -EINVAL; - - spi_message_init(&message); -- memset(&x, 0, sizeof x); -- x.len = n_tx + n_rx; -- spi_message_add_tail(&x, &message); -+ memset(x, 0, sizeof x); -+ if (n_tx) { -+ x[0].len = n_tx; -+ spi_message_add_tail(&x[0], &message); -+ } -+ if (n_rx) { -+ x[1].len = n_rx; -+ spi_message_add_tail(&x[1], &message); -+ } - - /* ... unless someone else is using the pre-allocated buffer */ - if (!mutex_trylock(&lock)) { -@@ -684,15 +690,15 @@ - local_buf = buf; - - memcpy(local_buf, txbuf, n_tx); -- x.tx_buf = local_buf; -- x.rx_buf = local_buf; -+ x[0].tx_buf = local_buf; -+ x[1].rx_buf = local_buf + n_tx; - - /* do the i/o */ - status = spi_sync(spi, &message); - if (status == 0) -- memcpy(rxbuf, x.rx_buf + n_tx, n_rx); -+ memcpy(rxbuf, x[1].rx_buf, n_rx); - -- if (x.tx_buf == buf) -+ if (x[0].tx_buf == buf) - mutex_unlock(&lock); - else - kfree(local_buf); ---- kernel-power-2.6.28.orig/drivers/usb/class/cdc-acm.c -+++ kernel-power-2.6.28/drivers/usb/class/cdc-acm.c -@@ -1370,6 +1370,8 @@ - { USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */ - .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ - }, -+ { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ -+ }, - - /* control interfaces with various AT-command sets */ - { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, ---- kernel-power-2.6.28.orig/drivers/usb/class/cdc-wdm.c -+++ kernel-power-2.6.28/drivers/usb/class/cdc-wdm.c -@@ -652,7 +652,7 @@ - - iface = &intf->altsetting[0]; - ep = &iface->endpoint[0].desc; -- if (!usb_endpoint_is_int_in(ep)) { -+ if (!ep || !usb_endpoint_is_int_in(ep)) { - rv = -EINVAL; - goto err; - } ---- kernel-power-2.6.28.orig/drivers/usb/class/usbtmc.c -+++ kernel-power-2.6.28/drivers/usb/class/usbtmc.c -@@ -49,6 +49,7 @@ - - static struct usb_device_id usbtmc_devices[] = { - { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), }, -+ { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 1), }, - { 0, } /* terminating entry */ - }; - MODULE_DEVICE_TABLE(usb, usbtmc_devices); -@@ -105,12 +106,13 @@ - { - struct usb_interface *intf; - struct usbtmc_device_data *data; -- int retval = -ENODEV; -+ int retval = 0; - - intf = usb_find_interface(&usbtmc_driver, iminor(inode)); - if (!intf) { - printk(KERN_ERR KBUILD_MODNAME - ": can not find device for minor %d", iminor(inode)); -+ retval = -ENODEV; - goto exit; - } - ---- kernel-power-2.6.28.orig/drivers/usb/core/devio.c -+++ kernel-power-2.6.28/drivers/usb/core/devio.c -@@ -359,11 +359,6 @@ - spin_lock_irqsave(&ps->lock, flags); - } - spin_unlock_irqrestore(&ps->lock, flags); -- as = async_getcompleted(ps); -- while (as) { -- free_async(as); -- as = async_getcompleted(ps); -- } - } - - static void destroy_async_on_interface(struct dev_state *ps, -@@ -642,6 +637,7 @@ - struct dev_state *ps = file->private_data; - struct usb_device *dev = ps->dev; - unsigned int ifnum; -+ struct async *as; - - usb_lock_device(dev); - -@@ -660,6 +656,12 @@ - usb_unlock_device(dev); - usb_put_dev(dev); - put_pid(ps->disc_pid); -+ -+ as = async_getcompleted(ps); -+ while (as) { -+ free_async(as); -+ as = async_getcompleted(ps); -+ } - kfree(ps); - return 0; - } -@@ -1703,7 +1705,7 @@ - .release = usbdev_release, - }; - --void usb_fs_classdev_common_remove(struct usb_device *udev) -+static void usbdev_remove(struct usb_device *udev) - { - struct dev_state *ps; - struct siginfo sinfo; -@@ -1745,10 +1747,15 @@ - { - if (dev->usb_classdev) - device_unregister(dev->usb_classdev); -- usb_fs_classdev_common_remove(dev); - } - --static int usb_classdev_notify(struct notifier_block *self, -+#else -+#define usb_classdev_add(dev) 0 -+#define usb_classdev_remove(dev) do {} while (0) -+ -+#endif -+ -+static int usbdev_notify(struct notifier_block *self, - unsigned long action, void *dev) - { - switch (action) { -@@ -1758,15 +1765,15 @@ - break; - case USB_DEVICE_REMOVE: - usb_classdev_remove(dev); -+ usbdev_remove(dev); - break; - } - return NOTIFY_OK; - } - - static struct notifier_block usbdev_nb = { -- .notifier_call = usb_classdev_notify, -+ .notifier_call = usbdev_notify, - }; --#endif - - static struct cdev usb_device_cdev; - -@@ -1801,9 +1808,8 @@ - * to /sys/dev - */ - usb_classdev_class->dev_kobj = NULL; -- -- usb_register_notify(&usbdev_nb); - #endif -+ usb_register_notify(&usbdev_nb); - out: - return retval; - -@@ -1814,8 +1820,8 @@ - - void usb_devio_cleanup(void) - { --#ifdef CONFIG_USB_DEVICE_CLASS - usb_unregister_notify(&usbdev_nb); -+#ifdef CONFIG_USB_DEVICE_CLASS - class_destroy(usb_classdev_class); - #endif - cdev_del(&usb_device_cdev); ---- kernel-power-2.6.28.orig/drivers/usb/core/driver.c -+++ kernel-power-2.6.28/drivers/usb/core/driver.c -@@ -269,7 +269,7 @@ - * supports "soft" unbinding. - */ - if (!driver->soft_unbind) -- usb_disable_interface(udev, intf); -+ usb_disable_interface(udev, intf, false); - - driver->disconnect(intf); - -@@ -279,9 +279,12 @@ - * altsetting means creating new endpoint device entries). - * When either of these happens, defer the Set-Interface. - */ -- if (intf->cur_altsetting->desc.bAlternateSetting == 0) -- ; /* Already in altsetting 0 so skip Set-Interface */ -- else if (!error && intf->dev.power.status == DPM_ON) -+ if (intf->cur_altsetting->desc.bAlternateSetting == 0) { -+ /* Already in altsetting 0 so skip Set-Interface. -+ * Just re-enable it without affecting the endpoint toggles. -+ */ -+ usb_enable_interface(udev, intf, false); -+ } else if (!error && intf->dev.power.status == DPM_ON) - usb_set_interface(udev, intf->altsetting[0]. - desc.bInterfaceNumber, 0); - else ---- kernel-power-2.6.28.orig/drivers/usb/core/hub.c -+++ kernel-power-2.6.28/drivers/usb/core/hub.c -@@ -2383,9 +2383,9 @@ - - void usb_ep0_reinit(struct usb_device *udev) - { -- usb_disable_endpoint(udev, 0 + USB_DIR_IN); -- usb_disable_endpoint(udev, 0 + USB_DIR_OUT); -- usb_enable_endpoint(udev, &udev->ep0); -+ usb_disable_endpoint(udev, 0 + USB_DIR_IN, true); -+ usb_disable_endpoint(udev, 0 + USB_DIR_OUT, true); -+ usb_enable_endpoint(udev, &udev->ep0, true); - } - EXPORT_SYMBOL_GPL(usb_ep0_reinit); - ---- kernel-power-2.6.28.orig/drivers/usb/core/inode.c -+++ kernel-power-2.6.28/drivers/usb/core/inode.c -@@ -718,7 +718,6 @@ - fs_remove_file (dev->usbfs_dentry); - dev->usbfs_dentry = NULL; - } -- usb_fs_classdev_common_remove(dev); - } - - static int usbfs_notify(struct notifier_block *self, unsigned long action, void *dev) ---- kernel-power-2.6.28.orig/drivers/usb/core/message.c -+++ kernel-power-2.6.28/drivers/usb/core/message.c -@@ -651,7 +651,7 @@ - if (result <= 0 && result != -ETIMEDOUT) - continue; - if (result > 1 && ((u8 *)buf)[1] != type) { -- result = -EPROTO; -+ result = -ENODATA; - continue; - } - break; -@@ -694,8 +694,13 @@ - USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, - (USB_DT_STRING << 8) + index, langid, buf, size, - USB_CTRL_GET_TIMEOUT); -- if (!(result == 0 || result == -EPIPE)) -- break; -+ if (result == 0 || result == -EPIPE) -+ continue; -+ if (result > 1 && ((u8 *) buf)[1] != USB_DT_STRING) { -+ result = -ENODATA; -+ continue; -+ } -+ break; - } - return result; - } -@@ -1009,14 +1014,15 @@ - * @dev: the device whose endpoint is being disabled - * @epaddr: the endpoint's address. Endpoint number for output, - * endpoint number + USB_DIR_IN for input -+ * @reset_hardware: flag to erase any endpoint state stored in the -+ * controller hardware - * -- * Deallocates hcd/hardware state for this endpoint ... and nukes all -- * pending urbs. -- * -- * If the HCD hasn't registered a disable() function, this sets the -- * endpoint's maxpacket size to 0 to prevent further submissions. -+ * Disables the endpoint for URB submission and nukes all pending URBs. -+ * If @reset_hardware is set then also deallocates hcd/hardware state -+ * for the endpoint. - */ --void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr) -+void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr, -+ bool reset_hardware) - { - unsigned int epnum = epaddr & USB_ENDPOINT_NUMBER_MASK; - struct usb_host_endpoint *ep; -@@ -1026,15 +1032,18 @@ - - if (usb_endpoint_out(epaddr)) { - ep = dev->ep_out[epnum]; -- dev->ep_out[epnum] = NULL; -+ if (reset_hardware) -+ dev->ep_out[epnum] = NULL; - } else { - ep = dev->ep_in[epnum]; -- dev->ep_in[epnum] = NULL; -+ if (reset_hardware) -+ dev->ep_in[epnum] = NULL; - } - if (ep) { - ep->enabled = 0; - usb_hcd_flush_endpoint(dev, ep); -- usb_hcd_disable_endpoint(dev, ep); -+ if (reset_hardware) -+ usb_hcd_disable_endpoint(dev, ep); - } - } - -@@ -1042,17 +1051,21 @@ - * usb_disable_interface -- Disable all endpoints for an interface - * @dev: the device whose interface is being disabled - * @intf: pointer to the interface descriptor -+ * @reset_hardware: flag to erase any endpoint state stored in the -+ * controller hardware - * - * Disables all the endpoints for the interface's current altsetting. - */ --void usb_disable_interface(struct usb_device *dev, struct usb_interface *intf) -+void usb_disable_interface(struct usb_device *dev, struct usb_interface *intf, -+ bool reset_hardware) - { - struct usb_host_interface *alt = intf->cur_altsetting; - int i; - - for (i = 0; i < alt->desc.bNumEndpoints; ++i) { - usb_disable_endpoint(dev, -- alt->endpoint[i].desc.bEndpointAddress); -+ alt->endpoint[i].desc.bEndpointAddress, -+ reset_hardware); - } - } - -@@ -1073,8 +1086,8 @@ - dev_dbg(&dev->dev, "%s nuking %s URBs\n", __func__, - skip_ep0 ? "non-ep0" : "all"); - for (i = skip_ep0; i < 16; ++i) { -- usb_disable_endpoint(dev, i); -- usb_disable_endpoint(dev, i + USB_DIR_IN); -+ usb_disable_endpoint(dev, i, true); -+ usb_disable_endpoint(dev, i + USB_DIR_IN, true); - } - dev->toggle[0] = dev->toggle[1] = 0; - -@@ -1113,22 +1126,26 @@ - * usb_enable_endpoint - Enable an endpoint for USB communications - * @dev: the device whose interface is being enabled - * @ep: the endpoint -+ * @reset_toggle: flag to set the endpoint's toggle back to 0 - * -- * Resets the endpoint toggle, and sets dev->ep_{in,out} pointers. -+ * Resets the endpoint toggle if asked, and sets dev->ep_{in,out} pointers. - * For control endpoints, both the input and output sides are handled. - */ --void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep) -+void usb_enable_endpoint(struct usb_device *dev, struct usb_host_endpoint *ep, -+ bool reset_toggle) - { - int epnum = usb_endpoint_num(&ep->desc); - int is_out = usb_endpoint_dir_out(&ep->desc); - int is_control = usb_endpoint_xfer_control(&ep->desc); - - if (is_out || is_control) { -- usb_settoggle(dev, epnum, 1, 0); -+ if (reset_toggle) -+ usb_settoggle(dev, epnum, 1, 0); - dev->ep_out[epnum] = ep; - } - if (!is_out || is_control) { -- usb_settoggle(dev, epnum, 0, 0); -+ if (reset_toggle) -+ usb_settoggle(dev, epnum, 0, 0); - dev->ep_in[epnum] = ep; - } - ep->enabled = 1; -@@ -1138,17 +1155,18 @@ - * usb_enable_interface - Enable all the endpoints for an interface - * @dev: the device whose interface is being enabled - * @intf: pointer to the interface descriptor -+ * @reset_toggles: flag to set the endpoints' toggles back to 0 - * - * Enables all the endpoints for the interface's current altsetting. - */ --static void usb_enable_interface(struct usb_device *dev, -- struct usb_interface *intf) -+void usb_enable_interface(struct usb_device *dev, -+ struct usb_interface *intf, bool reset_toggles) - { - struct usb_host_interface *alt = intf->cur_altsetting; - int i; - - for (i = 0; i < alt->desc.bNumEndpoints; ++i) -- usb_enable_endpoint(dev, &alt->endpoint[i]); -+ usb_enable_endpoint(dev, &alt->endpoint[i], reset_toggles); - } - - /** -@@ -1237,7 +1255,7 @@ - /* prevent submissions using previous endpoint settings */ - if (iface->cur_altsetting != alt) - usb_remove_sysfs_intf_files(iface); -- usb_disable_interface(dev, iface); -+ usb_disable_interface(dev, iface, true); - - iface->cur_altsetting = alt; - -@@ -1271,7 +1289,7 @@ - * during the SETUP stage - hence EP0 toggles are "don't care" here. - * (Likewise, EP0 never "halts" on well designed devices.) - */ -- usb_enable_interface(dev, iface); -+ usb_enable_interface(dev, iface, true); - if (device_is_registered(&iface->dev)) - usb_create_sysfs_intf_files(iface); - -@@ -1315,8 +1333,8 @@ - */ - - for (i = 1; i < 16; ++i) { -- usb_disable_endpoint(dev, i); -- usb_disable_endpoint(dev, i + USB_DIR_IN); -+ usb_disable_endpoint(dev, i, true); -+ usb_disable_endpoint(dev, i + USB_DIR_IN, true); - } - - config = dev->actconfig; -@@ -1346,7 +1364,7 @@ - alt = &intf->altsetting[0]; - - intf->cur_altsetting = alt; -- usb_enable_interface(dev, intf); -+ usb_enable_interface(dev, intf, true); - if (device_is_registered(&intf->dev)) - usb_create_sysfs_intf_files(intf); - } -@@ -1604,7 +1622,7 @@ - alt = &intf->altsetting[0]; - - intf->cur_altsetting = alt; -- usb_enable_interface(dev, intf); -+ usb_enable_interface(dev, intf, true); - intf->dev.parent = &dev->dev; - intf->dev.driver = NULL; - intf->dev.bus = &usb_bus_type; -@@ -1619,7 +1637,8 @@ - } - kfree(new_interfaces); - -- if (cp->string == NULL) -+ if (cp->string == NULL && -+ !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) - cp->string = usb_cache_string(dev, cp->desc.iConfiguration); - - /* Now that all the interfaces are set up, register them ---- kernel-power-2.6.28.orig/drivers/usb/core/quirks.c -+++ kernel-power-2.6.28/drivers/usb/core/quirks.c -@@ -54,6 +54,10 @@ - { USB_DEVICE(0x0638, 0x0a13), .driver_info = - USB_QUIRK_STRING_FETCH_255 }, - -+ /* Saitek Cyborg Gold Joystick */ -+ { USB_DEVICE(0x06a3, 0x0006), .driver_info = -+ USB_QUIRK_CONFIG_INTF_STRINGS }, -+ - /* M-Systems Flash Disk Pioneers */ - { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, - ---- kernel-power-2.6.28.orig/drivers/usb/core/sysfs.c -+++ kernel-power-2.6.28/drivers/usb/core/sysfs.c -@@ -13,6 +13,7 @@ - #include - #include - #include -+#include - #include "usb.h" - - /* Active configuration fields */ -@@ -847,7 +848,8 @@ - * and missing in others. Hence its attribute cannot be created - * before the uevent is broadcast. - */ -- if (alt->string == NULL) -+ if (alt->string == NULL && -+ !(udev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) - alt->string = usb_cache_string(udev, alt->desc.iInterface); - if (alt->string) - retval = device_create_file(&intf->dev, &dev_attr_interface); ---- kernel-power-2.6.28.orig/drivers/usb/core/usb.c -+++ kernel-power-2.6.28/drivers/usb/core/usb.c -@@ -362,7 +362,7 @@ - dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE; - dev->ep0.desc.bDescriptorType = USB_DT_ENDPOINT; - /* ep0 maxpacket comes later, from device descriptor */ -- usb_enable_endpoint(dev, &dev->ep0); -+ usb_enable_endpoint(dev, &dev->ep0, true); - dev->can_submit = 1; - - /* Save readable and stable topology id, distinguishing devices ---- kernel-power-2.6.28.orig/drivers/usb/core/usb.h -+++ kernel-power-2.6.28/drivers/usb/core/usb.h -@@ -10,10 +10,13 @@ - extern void usb_remove_ep_files(struct usb_host_endpoint *endpoint); - - extern void usb_enable_endpoint(struct usb_device *dev, -- struct usb_host_endpoint *ep); --extern void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr); -+ struct usb_host_endpoint *ep, bool reset_toggle); -+extern void usb_enable_interface(struct usb_device *dev, -+ struct usb_interface *intf, bool reset_toggles); -+extern void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr, -+ bool reset_hardware); - extern void usb_disable_interface(struct usb_device *dev, -- struct usb_interface *intf); -+ struct usb_interface *intf, bool reset_hardware); - extern void usb_release_interface_cache(struct kref *ref); - extern void usb_disable_device(struct usb_device *dev, int skip_ep0); - extern int usb_deauthorize_device(struct usb_device *); -@@ -145,7 +148,6 @@ - extern const struct file_operations usbfs_devices_fops; - extern const struct file_operations usbdev_file_operations; - extern void usbfs_conn_disc_event(void); --extern void usb_fs_classdev_common_remove(struct usb_device *udev); - - extern int usb_devio_init(void); - extern void usb_devio_cleanup(void); ---- kernel-power-2.6.28.orig/drivers/usb/gadget/f_rndis.c -+++ kernel-power-2.6.28/drivers/usb/gadget/f_rndis.c -@@ -437,7 +437,7 @@ - DBG(cdev, "rndis req%02x.%02x v%04x i%04x l%d\n", - ctrl->bRequestType, ctrl->bRequest, - w_value, w_index, w_length); -- req->zero = 0; -+ req->zero = (value < w_length); - req->length = value; - value = usb_ep_queue(cdev->gadget->ep0, req, GFP_ATOMIC); - if (value < 0) ---- kernel-power-2.6.28.orig/drivers/usb/gadget/u_ether.c -+++ kernel-power-2.6.28/drivers/usb/gadget/u_ether.c -@@ -174,12 +174,6 @@ - strlcpy(p->bus_info, dev_name(&dev->gadget->dev), sizeof p->bus_info); - } - --static u32 eth_get_link(struct net_device *net) --{ -- struct eth_dev *dev = netdev_priv(net); -- return dev->gadget->speed != USB_SPEED_UNKNOWN; --} -- - /* REVISIT can also support: - * - WOL (by tracking suspends and issuing remote wakeup) - * - msglevel (implies updated messaging) -@@ -188,7 +182,7 @@ - - static struct ethtool_ops ops = { - .get_drvinfo = eth_get_drvinfo, -- .get_link = eth_get_link -+ .get_link = ethtool_op_get_link, - }; - - static void defer_kevent(struct eth_dev *dev, int flag) ---- kernel-power-2.6.28.orig/drivers/usb/host/ehci-hcd.c -+++ kernel-power-2.6.28/drivers/usb/host/ehci-hcd.c -@@ -485,6 +485,7 @@ - * periodic_size can shrink by USBCMD update if hcc_params allows. - */ - ehci->periodic_size = DEFAULT_I_TDPS; -+ INIT_LIST_HEAD(&ehci->cached_itd_list); - if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0) - return retval; - -@@ -497,6 +498,7 @@ - - ehci->reclaim = NULL; - ehci->next_uframe = -1; -+ ehci->clock_frame = -1; - - /* - * dedicate a qh for the async ring head, since we couldn't unlink ---- kernel-power-2.6.28.orig/drivers/usb/host/ehci-mem.c -+++ kernel-power-2.6.28/drivers/usb/host/ehci-mem.c -@@ -128,6 +128,7 @@ - - static void ehci_mem_cleanup (struct ehci_hcd *ehci) - { -+ free_cached_itd_list(ehci); - if (ehci->async) - qh_put (ehci->async); - ehci->async = NULL; ---- kernel-power-2.6.28.orig/drivers/usb/host/ehci-q.c -+++ kernel-power-2.6.28/drivers/usb/host/ehci-q.c -@@ -333,12 +333,40 @@ - token = hc32_to_cpu(ehci, qtd->hw_token); - - /* always clean up qtds the hc de-activated */ -+ retry_xacterr: - if ((token & QTD_STS_ACTIVE) == 0) { - - /* on STALL, error, and short reads this urb must - * complete and all its qtds must be recycled. - */ - if ((token & QTD_STS_HALT) != 0) { -+ -+ /* retry transaction errors until we -+ * reach the software xacterr limit -+ */ -+ if ((token & QTD_STS_XACT) && -+ QTD_CERR(token) == 0 && -+ --qh->xacterrs > 0 && -+ !urb->unlinked) { -+ ehci_dbg(ehci, -+ "detected XactErr len %d/%d retry %d\n", -+ qtd->length - QTD_LENGTH(token), qtd->length, -+ QH_XACTERR_MAX - qh->xacterrs); -+ -+ /* reset the token in the qtd and the -+ * qh overlay (which still contains -+ * the qtd) so that we pick up from -+ * where we left off -+ */ -+ token &= ~QTD_STS_HALT; -+ token |= QTD_STS_ACTIVE | -+ (EHCI_TUNE_CERR << 10); -+ qtd->hw_token = cpu_to_hc32(ehci, -+ token); -+ wmb(); -+ qh->hw_token = cpu_to_hc32(ehci, token); -+ goto retry_xacterr; -+ } - stopped = 1; - - /* magic dummy for some short reads; qh won't advance. -@@ -421,6 +449,9 @@ - /* remove qtd; it's recycled after possible urb completion */ - list_del (&qtd->qtd_list); - last = qtd; -+ -+ /* reinit the xacterr counter for the next qtd */ -+ qh->xacterrs = QH_XACTERR_MAX; - } - - /* last urb's completion might still need calling */ -@@ -862,6 +893,7 @@ - head->qh_next.qh = qh; - head->hw_next = dma; - -+ qh->xacterrs = QH_XACTERR_MAX; - qh->qh_state = QH_STATE_LINKED; - /* qtd completions reported later by interrupt */ - } -@@ -1095,7 +1127,8 @@ - prev->qh_next = qh->qh_next; - wmb (); - -- if (unlikely (ehci_to_hcd(ehci)->state == HC_STATE_HALT)) { -+ /* If the controller isn't running, we don't have to wait for it */ -+ if (unlikely(!HC_IS_RUNNING(ehci_to_hcd(ehci)->state))) { - /* if (unlikely (qh->reclaim != 0)) - * this will recurse, probably not much - */ ---- kernel-power-2.6.28.orig/drivers/usb/host/ehci-sched.c -+++ kernel-power-2.6.28/drivers/usb/host/ehci-sched.c -@@ -1004,7 +1004,8 @@ - - is_in = (stream->bEndpointAddress & USB_DIR_IN) ? 0x10 : 0; - stream->bEndpointAddress &= 0x0f; -- stream->ep->hcpriv = NULL; -+ if (stream->ep) -+ stream->ep->hcpriv = NULL; - - if (stream->rescheduled) { - ehci_info (ehci, "ep%d%s-iso rescheduled " -@@ -1535,7 +1536,7 @@ - struct ehci_itd, itd_list); - list_move_tail (&itd->itd_list, &stream->td_list); - itd->stream = iso_stream_get (stream); -- itd->urb = usb_get_urb (urb); -+ itd->urb = urb; - itd_init (ehci, stream, itd); - } - -@@ -1644,7 +1645,7 @@ - (void) disable_periodic(ehci); - ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; - -- if (unlikely (list_empty (&stream->td_list))) { -+ if (unlikely(list_is_singular(&stream->td_list))) { - ehci_to_hcd(ehci)->self.bandwidth_allocated - -= stream->bandwidth; - ehci_vdbg (ehci, -@@ -1653,14 +1654,27 @@ - (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); - } - iso_stream_put (ehci, stream); -- /* OK to recycle this ITD now that its completion callback ran. */ -+ - done: -- usb_put_urb(urb); - itd->urb = NULL; -- itd->stream = NULL; -- list_move(&itd->itd_list, &stream->free_list); -- iso_stream_put(ehci, stream); -- -+ if (ehci->clock_frame != itd->frame || itd->index[7] != -1) { -+ /* OK to recycle this ITD now. */ -+ itd->stream = NULL; -+ list_move(&itd->itd_list, &stream->free_list); -+ iso_stream_put(ehci, stream); -+ } else { -+ /* HW might remember this ITD, so we can't recycle it yet. -+ * Move it to a safe place until a new frame starts. -+ */ -+ list_move(&itd->itd_list, &ehci->cached_itd_list); -+ if (stream->refcount == 2) { -+ /* If iso_stream_put() were called here, stream -+ * would be freed. Instead, just prevent reuse. -+ */ -+ stream->ep->hcpriv = NULL; -+ stream->ep = NULL; -+ } -+ } - return retval; - } - -@@ -1934,7 +1948,7 @@ - struct ehci_sitd, sitd_list); - list_move_tail (&sitd->sitd_list, &stream->td_list); - sitd->stream = iso_stream_get (stream); -- sitd->urb = usb_get_urb (urb); -+ sitd->urb = urb; - - sitd_patch(ehci, stream, sitd, sched, packet); - sitd_link (ehci, (next_uframe >> 3) % ehci->periodic_size, -@@ -2019,7 +2033,7 @@ - (void) disable_periodic(ehci); - ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; - -- if (list_empty (&stream->td_list)) { -+ if (list_is_singular(&stream->td_list)) { - ehci_to_hcd(ehci)->self.bandwidth_allocated - -= stream->bandwidth; - ehci_vdbg (ehci, -@@ -2030,7 +2044,6 @@ - iso_stream_put (ehci, stream); - /* OK to recycle this SITD now that its completion callback ran. */ - done: -- usb_put_urb(urb); - sitd->urb = NULL; - sitd->stream = NULL; - list_move(&sitd->sitd_list, &stream->free_list); -@@ -2101,6 +2114,20 @@ - - /*-------------------------------------------------------------------------*/ - -+static void free_cached_itd_list(struct ehci_hcd *ehci) -+{ -+ struct ehci_itd *itd, *n; -+ -+ list_for_each_entry_safe(itd, n, &ehci->cached_itd_list, itd_list) { -+ struct ehci_iso_stream *stream = itd->stream; -+ itd->stream = NULL; -+ list_move(&itd->itd_list, &stream->free_list); -+ iso_stream_put(ehci, stream); -+ } -+} -+ -+/*-------------------------------------------------------------------------*/ -+ - static void - scan_periodic (struct ehci_hcd *ehci) - { -@@ -2115,10 +2142,17 @@ - * Touches as few pages as possible: cache-friendly. - */ - now_uframe = ehci->next_uframe; -- if (HC_IS_RUNNING (ehci_to_hcd(ehci)->state)) -+ if (HC_IS_RUNNING(ehci_to_hcd(ehci)->state)) { - clock = ehci_readl(ehci, &ehci->regs->frame_index); -- else -+ clock_frame = (clock >> 3) % ehci->periodic_size; -+ } else { - clock = now_uframe + mod - 1; -+ clock_frame = -1; -+ } -+ if (ehci->clock_frame != clock_frame) { -+ free_cached_itd_list(ehci); -+ ehci->clock_frame = clock_frame; -+ } - clock %= mod; - clock_frame = clock >> 3; - -@@ -2277,6 +2311,10 @@ - /* rescan the rest of this frame, then ... */ - clock = now; - clock_frame = clock >> 3; -+ if (ehci->clock_frame != clock_frame) { -+ free_cached_itd_list(ehci); -+ ehci->clock_frame = clock_frame; -+ } - } else { - now_uframe++; - now_uframe %= mod; ---- kernel-power-2.6.28.orig/drivers/usb/host/ehci.h -+++ kernel-power-2.6.28/drivers/usb/host/ehci.h -@@ -87,6 +87,10 @@ - int next_uframe; /* scan periodic, start here */ - unsigned periodic_sched; /* periodic activity count */ - -+ /* list of itds completed while clock_frame was still active */ -+ struct list_head cached_itd_list; -+ unsigned clock_frame; -+ - /* per root hub port */ - unsigned long reset_done [EHCI_MAX_ROOT_PORTS]; - -@@ -210,6 +214,8 @@ - } - } - -+static void free_cached_itd_list(struct ehci_hcd *ehci); -+ - /*-------------------------------------------------------------------------*/ - - #include -@@ -360,6 +366,9 @@ - #define QH_STATE_UNLINK_WAIT 4 /* LINKED and on reclaim q */ - #define QH_STATE_COMPLETING 5 /* don't touch token.HALT */ - -+ u8 xacterrs; /* XactErr retry counter */ -+#define QH_XACTERR_MAX 32 /* XactErr retry limit */ -+ - /* periodic schedule info */ - u8 usecs; /* intr bandwidth */ - u8 gap_uf; /* uframes split/csplit gap */ ---- kernel-power-2.6.28.orig/drivers/usb/host/isp1760-if.c -+++ kernel-power-2.6.28/drivers/usb/host/isp1760-if.c -@@ -129,23 +129,23 @@ - #endif - - #ifdef CONFIG_PCI --static u32 nxp_pci_io_base; --static u32 iolength; --static u32 pci_mem_phy0; --static u32 length; --static u8 __iomem *chip_addr; --static u8 __iomem *iobase; -- - static int __devinit isp1761_pci_probe(struct pci_dev *dev, - const struct pci_device_id *id) - { - u8 latency, limit; - __u32 reg_data; - int retry_count; -- int length; -- int status = 1; - struct usb_hcd *hcd; - unsigned int devflags = 0; -+ int ret_status = 0; -+ -+ resource_size_t pci_mem_phy0; -+ resource_size_t memlength; -+ -+ u8 __iomem *chip_addr; -+ u8 __iomem *iobase; -+ resource_size_t nxp_pci_io_base; -+ resource_size_t iolength; - - if (usb_disabled()) - return -ENODEV; -@@ -168,26 +168,30 @@ - iobase = ioremap_nocache(nxp_pci_io_base, iolength); - if (!iobase) { - printk(KERN_ERR "ioremap #1\n"); -- release_mem_region(nxp_pci_io_base, iolength); -- return -ENOMEM; -+ ret_status = -ENOMEM; -+ goto cleanup1; - } - /* Grab the PLX PCI shared memory of the ISP 1761 we need */ - pci_mem_phy0 = pci_resource_start(dev, 3); -- length = pci_resource_len(dev, 3); -- -- if (length < 0xffff) { -- printk(KERN_ERR "memory length for this resource is less than " -- "required\n"); -- release_mem_region(nxp_pci_io_base, iolength); -- iounmap(iobase); -- return -ENOMEM; -+ memlength = pci_resource_len(dev, 3); -+ if (memlength < 0xffff) { -+ printk(KERN_ERR "memory length for this resource is wrong\n"); -+ ret_status = -ENOMEM; -+ goto cleanup2; - } - -- if (!request_mem_region(pci_mem_phy0, length, "ISP-PCI")) { -+ if (!request_mem_region(pci_mem_phy0, memlength, "ISP-PCI")) { - printk(KERN_ERR "host controller already in use\n"); -- release_mem_region(nxp_pci_io_base, iolength); -- iounmap(iobase); -- return -EBUSY; -+ ret_status = -EBUSY; -+ goto cleanup2; -+ } -+ -+ /* map available memory */ -+ chip_addr = ioremap_nocache(pci_mem_phy0,memlength); -+ if (!chip_addr) { -+ printk(KERN_ERR "Error ioremap failed\n"); -+ ret_status = -ENOMEM; -+ goto cleanup3; - } - - /* bad pci latencies can contribute to overruns */ -@@ -210,39 +214,54 @@ - * */ - writel(0xface, chip_addr + HC_SCRATCH_REG); - udelay(100); -- reg_data = readl(chip_addr + HC_SCRATCH_REG); -+ reg_data = readl(chip_addr + HC_SCRATCH_REG) & 0x0000ffff; - retry_count--; - } - -+ iounmap(chip_addr); -+ - /* Host Controller presence is detected by writing to scratch register - * and reading back and checking the contents are same or not - */ - if (reg_data != 0xFACE) { - dev_err(&dev->dev, "scratch register mismatch %x\n", reg_data); -- goto clean; -+ ret_status = -ENOMEM; -+ goto cleanup3; - } - - pci_set_master(dev); - -- status = readl(iobase + 0x68); -- status |= 0x900; -- writel(status, iobase + 0x68); -+ /* configure PLX PCI chip to pass interrupts */ -+#define PLX_INT_CSR_REG 0x68 -+ reg_data = readl(iobase + PLX_INT_CSR_REG); -+ reg_data |= 0x900; -+ writel(reg_data, iobase + PLX_INT_CSR_REG); - - dev->dev.dma_mask = NULL; -- hcd = isp1760_register(pci_mem_phy0, length, dev->irq, -+ hcd = isp1760_register(pci_mem_phy0, memlength, dev->irq, - IRQF_SHARED | IRQF_DISABLED, &dev->dev, dev_name(&dev->dev), - devflags); -- if (!IS_ERR(hcd)) { -- pci_set_drvdata(dev, hcd); -- return 0; -+ if (IS_ERR(hcd)) { -+ ret_status = -ENODEV; -+ goto cleanup3; - } --clean: -- status = -ENODEV; -+ -+ /* done with PLX IO access */ - iounmap(iobase); -- release_mem_region(pci_mem_phy0, length); - release_mem_region(nxp_pci_io_base, iolength); -- return status; -+ -+ pci_set_drvdata(dev, hcd); -+ return 0; -+ -+cleanup3: -+ release_mem_region(pci_mem_phy0, memlength); -+cleanup2: -+ iounmap(iobase); -+cleanup1: -+ release_mem_region(nxp_pci_io_base, iolength); -+ return ret_status; - } -+ - static void isp1761_pci_remove(struct pci_dev *dev) - { - struct usb_hcd *hcd; -@@ -255,12 +274,6 @@ - usb_put_hcd(hcd); - - pci_disable_device(dev); -- -- iounmap(iobase); -- iounmap(chip_addr); -- -- release_mem_region(nxp_pci_io_base, iolength); -- release_mem_region(pci_mem_phy0, length); - } - - static void isp1761_pci_shutdown(struct pci_dev *dev) -@@ -268,12 +281,16 @@ - printk(KERN_ERR "ips1761_pci_shutdown\n"); - } - --static const struct pci_device_id isp1760_plx [] = { { -- /* handle any USB 2.0 EHCI controller */ -- PCI_DEVICE_CLASS(((PCI_CLASS_BRIDGE_OTHER << 8) | (0x06 << 16)), ~0), -- .driver_data = 0, --}, --{ /* end: all zeroes */ } -+static const struct pci_device_id isp1760_plx [] = { -+ { -+ .class = PCI_CLASS_BRIDGE_OTHER << 8, -+ .class_mask = ~0, -+ .vendor = PCI_VENDOR_ID_PLX, -+ .device = 0x5406, -+ .subvendor = PCI_VENDOR_ID_PLX, -+ .subdevice = 0x9054, -+ }, -+ { } - }; - MODULE_DEVICE_TABLE(pci, isp1760_plx); - ---- kernel-power-2.6.28.orig/drivers/usb/misc/emi26.c -+++ kernel-power-2.6.28/drivers/usb/misc/emi26.c -@@ -160,7 +160,7 @@ - err("%s - error loading firmware: error = %d", __func__, err); - goto wraperr; - } -- } while (i > 0); -+ } while (rec); - - /* Assert reset (stop the CPU in the EMI) */ - err = emi26_set_reset(dev,1); ---- kernel-power-2.6.28.orig/drivers/usb/mon/mon_bin.c -+++ kernel-power-2.6.28/drivers/usb/mon/mon_bin.c -@@ -37,6 +37,7 @@ - #define MON_IOCX_GET _IOW(MON_IOC_MAGIC, 6, struct mon_bin_get) - #define MON_IOCX_MFETCH _IOWR(MON_IOC_MAGIC, 7, struct mon_bin_mfetch) - #define MON_IOCH_MFLUSH _IO(MON_IOC_MAGIC, 8) -+ - #ifdef CONFIG_COMPAT - #define MON_IOCX_GET32 _IOW(MON_IOC_MAGIC, 6, struct mon_bin_get32) - #define MON_IOCX_MFETCH32 _IOWR(MON_IOC_MAGIC, 7, struct mon_bin_mfetch32) -@@ -921,21 +922,6 @@ - } - break; - --#ifdef CONFIG_COMPAT -- case MON_IOCX_GET32: { -- struct mon_bin_get32 getb; -- -- if (copy_from_user(&getb, (void __user *)arg, -- sizeof(struct mon_bin_get32))) -- return -EFAULT; -- -- ret = mon_bin_get_event(file, rp, -- compat_ptr(getb.hdr32), compat_ptr(getb.data32), -- getb.alloc32); -- } -- break; --#endif -- - case MON_IOCX_MFETCH: - { - struct mon_bin_mfetch mfetch; -@@ -962,7 +948,57 @@ - } - break; - -+ case MON_IOCG_STATS: { -+ struct mon_bin_stats __user *sp; -+ unsigned int nevents; -+ unsigned int ndropped; -+ -+ spin_lock_irqsave(&rp->b_lock, flags); -+ ndropped = rp->cnt_lost; -+ rp->cnt_lost = 0; -+ spin_unlock_irqrestore(&rp->b_lock, flags); -+ nevents = mon_bin_queued(rp); -+ -+ sp = (struct mon_bin_stats __user *)arg; -+ if (put_user(rp->cnt_lost, &sp->dropped)) -+ return -EFAULT; -+ if (put_user(nevents, &sp->queued)) -+ return -EFAULT; -+ -+ } -+ break; -+ -+ default: -+ return -ENOTTY; -+ } -+ -+ return ret; -+} -+ - #ifdef CONFIG_COMPAT -+static long mon_bin_compat_ioctl(struct file *file, -+ unsigned int cmd, unsigned long arg) -+{ -+ struct mon_reader_bin *rp = file->private_data; -+ int ret; -+ -+ switch (cmd) { -+ -+ case MON_IOCX_GET32: { -+ struct mon_bin_get32 getb; -+ -+ if (copy_from_user(&getb, (void __user *)arg, -+ sizeof(struct mon_bin_get32))) -+ return -EFAULT; -+ -+ ret = mon_bin_get_event(file, rp, -+ compat_ptr(getb.hdr32), compat_ptr(getb.data32), -+ getb.alloc32); -+ if (ret < 0) -+ return ret; -+ } -+ return 0; -+ - case MON_IOCX_MFETCH32: - { - struct mon_bin_mfetch32 mfetch; -@@ -986,37 +1022,25 @@ - return ret; - if (put_user(ret, &uptr->nfetch32)) - return -EFAULT; -- ret = 0; - } -- break; --#endif -- -- case MON_IOCG_STATS: { -- struct mon_bin_stats __user *sp; -- unsigned int nevents; -- unsigned int ndropped; -- -- spin_lock_irqsave(&rp->b_lock, flags); -- ndropped = rp->cnt_lost; -- rp->cnt_lost = 0; -- spin_unlock_irqrestore(&rp->b_lock, flags); -- nevents = mon_bin_queued(rp); -+ return 0; - -- sp = (struct mon_bin_stats __user *)arg; -- if (put_user(rp->cnt_lost, &sp->dropped)) -- return -EFAULT; -- if (put_user(nevents, &sp->queued)) -- return -EFAULT; -+ case MON_IOCG_STATS: -+ return mon_bin_ioctl(NULL, file, cmd, -+ (unsigned long) compat_ptr(arg)); - -- } -- break; -+ case MON_IOCQ_URB_LEN: -+ case MON_IOCQ_RING_SIZE: -+ case MON_IOCT_RING_SIZE: -+ case MON_IOCH_MFLUSH: -+ return mon_bin_ioctl(NULL, file, cmd, arg); - - default: -- return -ENOTTY; -+ ; - } -- -- return ret; -+ return -ENOTTY; - } -+#endif /* CONFIG_COMPAT */ - - static unsigned int - mon_bin_poll(struct file *file, struct poll_table_struct *wait) -@@ -1094,6 +1118,9 @@ - /* .write = mon_text_write, */ - .poll = mon_bin_poll, - .ioctl = mon_bin_ioctl, -+#ifdef CONFIG_COMPAT -+ .compat_ioctl = mon_bin_compat_ioctl, -+#endif - .release = mon_bin_release, - .mmap = mon_bin_mmap, - }; ---- kernel-power-2.6.28.orig/drivers/usb/serial/cp2101.c -+++ kernel-power-2.6.28/drivers/usb/serial/cp2101.c -@@ -79,6 +79,7 @@ - { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ - { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ - { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ -+ { USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */ - { USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */ - { USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */ - { USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */ ---- kernel-power-2.6.28.orig/drivers/usb/serial/ftdi_sio.c -+++ kernel-power-2.6.28/drivers/usb/serial/ftdi_sio.c -@@ -660,6 +660,12 @@ - { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, - { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, -+ { USB_DEVICE(ATMEL_VID, STK541_PID) }, -+ { USB_DEVICE(DE_VID, STB_PID) }, -+ { USB_DEVICE(DE_VID, WHT_PID) }, -+ { USB_DEVICE(ADI_VID, ADI_GNICE_PID), -+ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, -+ { USB_DEVICE(JETI_VID, JETI_SPC1201_PID) }, - { }, /* Optional parameter entry */ - { } /* Terminating entry */ - }; ---- kernel-power-2.6.28.orig/drivers/usb/serial/ftdi_sio.h -+++ kernel-power-2.6.28/drivers/usb/serial/ftdi_sio.h -@@ -881,6 +881,33 @@ - #define RATOC_PRODUCT_ID_USB60F 0xb020 - - /* -+ * Atmel STK541 -+ */ -+#define ATMEL_VID 0x03eb /* Vendor ID */ -+#define STK541_PID 0x2109 /* Zigbee Controller */ -+ -+/* -+ * Dresden Elektronic Sensor Terminal Board -+ */ -+#define DE_VID 0x1cf1 /* Vendor ID */ -+#define STB_PID 0x0001 /* Sensor Terminal Board */ -+#define WHT_PID 0x0004 /* Wireless Handheld Terminal */ -+ -+/* -+ * Blackfin gnICE JTAG -+ * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice -+ */ -+#define ADI_VID 0x0456 -+#define ADI_GNICE_PID 0xF000 -+ -+/* -+ * JETI SPECTROMETER SPECBOS 1201 -+ * http://www.jeti.com/products/sys/scb/scb1201.php -+ */ -+#define JETI_VID 0x0c6c -+#define JETI_SPC1201_PID 0x04b2 -+ -+/* - * BmRequestType: 1100 0000b - * bRequest: FTDI_E2_READ - * wValue: 0 ---- kernel-power-2.6.28.orig/drivers/usb/serial/option.c -+++ kernel-power-2.6.28/drivers/usb/serial/option.c -@@ -89,6 +89,7 @@ - #define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041 - #define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061 - #define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100 -+#define OPTION_PRODUCT_GTM380_MODEM 0x7201 - - #define HUAWEI_VENDOR_ID 0x12D1 - #define HUAWEI_PRODUCT_E600 0x1001 -@@ -190,16 +191,18 @@ - /* OVATION PRODUCTS */ - #define NOVATELWIRELESS_PRODUCT_MC727 0x4100 - #define NOVATELWIRELESS_PRODUCT_MC950D 0x4400 -+#define NOVATELWIRELESS_PRODUCT_U727 0x5010 - - /* FUTURE NOVATEL PRODUCTS */ --#define NOVATELWIRELESS_PRODUCT_EVDO_1 0x6000 --#define NOVATELWIRELESS_PRODUCT_HSPA_1 0x7000 --#define NOVATELWIRELESS_PRODUCT_EMBEDDED_1 0x8000 --#define NOVATELWIRELESS_PRODUCT_GLOBAL_1 0x9000 --#define NOVATELWIRELESS_PRODUCT_EVDO_2 0x6001 --#define NOVATELWIRELESS_PRODUCT_HSPA_2 0x7001 --#define NOVATELWIRELESS_PRODUCT_EMBEDDED_2 0x8001 --#define NOVATELWIRELESS_PRODUCT_GLOBAL_2 0x9001 -+#define NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED 0X6000 -+#define NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED 0X6001 -+#define NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED 0X7000 -+#define NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED 0X7001 -+#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED 0X8000 -+#define NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED 0X8001 -+#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0X9000 -+#define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0X9001 -+#define NOVATELWIRELESS_PRODUCT_GLOBAL 0XA001 - - /* AMOI PRODUCTS */ - #define AMOI_VENDOR_ID 0x1614 -@@ -209,6 +212,27 @@ - - #define DELL_VENDOR_ID 0x413C - -+/* Dell modems */ -+#define DELL_PRODUCT_5700_MINICARD 0x8114 -+#define DELL_PRODUCT_5500_MINICARD 0x8115 -+#define DELL_PRODUCT_5505_MINICARD 0x8116 -+#define DELL_PRODUCT_5700_EXPRESSCARD 0x8117 -+#define DELL_PRODUCT_5510_EXPRESSCARD 0x8118 -+ -+#define DELL_PRODUCT_5700_MINICARD_SPRINT 0x8128 -+#define DELL_PRODUCT_5700_MINICARD_TELUS 0x8129 -+ -+#define DELL_PRODUCT_5720_MINICARD_VZW 0x8133 -+#define DELL_PRODUCT_5720_MINICARD_SPRINT 0x8134 -+#define DELL_PRODUCT_5720_MINICARD_TELUS 0x8135 -+#define DELL_PRODUCT_5520_MINICARD_CINGULAR 0x8136 -+#define DELL_PRODUCT_5520_MINICARD_GENERIC_L 0x8137 -+#define DELL_PRODUCT_5520_MINICARD_GENERIC_I 0x8138 -+ -+#define DELL_PRODUCT_5730_MINICARD_SPRINT 0x8180 -+#define DELL_PRODUCT_5730_MINICARD_TELUS 0x8181 -+#define DELL_PRODUCT_5730_MINICARD_VZW 0x8182 -+ - #define KYOCERA_VENDOR_ID 0x0c88 - #define KYOCERA_PRODUCT_KPC650 0x17da - #define KYOCERA_PRODUCT_KPC680 0x180a -@@ -259,19 +283,13 @@ - - /* ZTE PRODUCTS */ - #define ZTE_VENDOR_ID 0x19d2 -+#define ZTE_PRODUCT_MF622 0x0001 - #define ZTE_PRODUCT_MF628 0x0015 - #define ZTE_PRODUCT_MF626 0x0031 - #define ZTE_PRODUCT_CDMA_TECH 0xfffe - --/* Ericsson products */ --#define ERICSSON_VENDOR_ID 0x0bdb --#define ERICSSON_PRODUCT_F3507G 0x1900 -- --/* Pantech products */ --#define PANTECH_VENDOR_ID 0x106c --#define PANTECH_PRODUCT_PC5740 0x3701 --#define PANTECH_PRODUCT_PC5750 0x3702 /* PX-500 */ --#define PANTECH_PRODUCT_UM150 0x3711 -+#define BENQ_VENDOR_ID 0x04a5 -+#define BENQ_PRODUCT_H10 0x4068 - - static struct usb_device_id option_ids[] = { - { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, -@@ -298,6 +316,7 @@ - { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) }, - { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) }, - { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) }, -+ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTM380_MODEM) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, -@@ -383,31 +402,37 @@ - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */ - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */ - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_1) }, /* Novatel EVDO product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_1) }, /* Novatel HSPA product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_1) }, /* Novatel Embedded product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_1) }, /* Novatel Global product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_2) }, /* Novatel EVDO product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_2) }, /* Novatel HSPA product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_2) }, /* Novatel Embedded product */ -- { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_2) }, /* Novatel Global product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U727) }, /* Novatel MC727/U727/USB727 */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED) }, /* Novatel EVDO product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED) }, /* Novatel HSPA product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) }, /* Novatel EVDO Embedded product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) }, /* Novatel HSPA Embedded product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) }, /* Novatel EVDO product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) }, /* Novatel HSPA product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_HIGHSPEED) }, /* Novatel EVDO Embedded product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED) }, /* Novatel HSPA Embedded product */ -+ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL) }, /* Novatel Global product */ - - { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) }, - { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) }, - { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) }, - -- { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8117) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8118) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8128) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8129) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite ET620 CDMA/EV-DO */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8133) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8136) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ -- { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5500_MINICARD) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5505_MINICARD) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_EXPRESSCARD) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5510_EXPRESSCARD) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_SPRINT) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5700_MINICARD_TELUS) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite ET620 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_VZW) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_SPRINT) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5720_MINICARD_TELUS) }, /* Dell Wireless 5720 == Novatel EV620 CDMA/EV-DO */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_CINGULAR) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_L) }, /* Dell Wireless HSDPA 5520 */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_I) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ -+ { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ - { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, /* ADU-E100, ADU-310 */ - { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, - { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) }, -@@ -472,13 +497,12 @@ - { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ - { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ - { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, -+ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, - { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, -- { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, -- { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5740) }, -- { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_PC5750) }, -- { USB_DEVICE(PANTECH_VENDOR_ID, PANTECH_PRODUCT_UM150) }, -+ { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, -+ { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ - { } /* Terminating entry */ - }; - MODULE_DEVICE_TABLE(usb, option_ids); ---- kernel-power-2.6.28.orig/drivers/usb/serial/ti_usb_3410_5052.c -+++ kernel-power-2.6.28/drivers/usb/serial/ti_usb_3410_5052.c -@@ -176,25 +176,32 @@ - /* the array dimension is the number of default entries plus */ - /* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */ - /* null entry */ --static struct usb_device_id ti_id_table_3410[1+TI_EXTRA_VID_PID_COUNT+1] = { -+static struct usb_device_id ti_id_table_3410[10+TI_EXTRA_VID_PID_COUNT+1] = { - { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, - }; - --static struct usb_device_id ti_id_table_5052[4+TI_EXTRA_VID_PID_COUNT+1] = { -+static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = { - { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, - }; - --static struct usb_device_id ti_id_table_combined[] = { -+static struct usb_device_id ti_id_table_combined[14+2*TI_EXTRA_VID_PID_COUNT+1] = { - { USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5052_BOOT_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5152_BOOT_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5052_EEPROM_PRODUCT_ID) }, - { USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, -+ { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, - { } - }; - ---- kernel-power-2.6.28.orig/drivers/usb/serial/ti_usb_3410_5052.h -+++ kernel-power-2.6.28/drivers/usb/serial/ti_usb_3410_5052.h -@@ -27,7 +27,11 @@ - - /* Vendor and product ids */ - #define TI_VENDOR_ID 0x0451 -+#define IBM_VENDOR_ID 0x04b3 - #define TI_3410_PRODUCT_ID 0x3410 -+#define IBM_4543_PRODUCT_ID 0x4543 -+#define IBM_454B_PRODUCT_ID 0x454b -+#define IBM_454C_PRODUCT_ID 0x454c - #define TI_3410_EZ430_ID 0xF430 /* TI ez430 development tool */ - #define TI_5052_BOOT_PRODUCT_ID 0x5052 /* no EEPROM, no firmware */ - #define TI_5152_BOOT_PRODUCT_ID 0x5152 /* no EEPROM, no firmware */ ---- kernel-power-2.6.28.orig/drivers/usb/storage/cypress_atacb.c -+++ kernel-power-2.6.28/drivers/usb/storage/cypress_atacb.c -@@ -133,19 +133,18 @@ - - /* build the command for - * reading the ATA registers */ -- scsi_eh_prep_cmnd(srb, &ses, NULL, 0, 0); -- srb->sdb.length = sizeof(regs); -- sg_init_one(&ses.sense_sgl, regs, srb->sdb.length); -- srb->sdb.table.sgl = &ses.sense_sgl; -- srb->sc_data_direction = DMA_FROM_DEVICE; -- srb->sdb.table.nents = 1; -+ scsi_eh_prep_cmnd(srb, &ses, NULL, 0, sizeof(regs)); -+ - /* we use the same command as before, but we set - * the read taskfile bit, for not executing atacb command, - * but reading register selected in srb->cmnd[4] - */ -+ srb->cmd_len = 16; -+ srb->cmnd = ses.cmnd; - srb->cmnd[2] = 1; - - usb_stor_transparent_scsi_command(srb, us); -+ memcpy(regs, srb->sense_buffer, sizeof(regs)); - tmp_result = srb->result; - scsi_eh_restore_cmnd(srb, &ses); - /* we fail to get registers, report invalid command */ -@@ -162,8 +161,8 @@ - - /* XXX we should generate sk, asc, ascq from status and error - * regs -- * (see 11.1 Error translation ­ ATA device error to SCSI error map) -- * and ata_to_sense_error from libata. -+ * (see 11.1 Error translation ATA device error to SCSI error -+ * map, and ata_to_sense_error from libata.) - */ - - /* Sense data is current and format is descriptor. */ ---- kernel-power-2.6.28.orig/drivers/usb/storage/libusual.c -+++ kernel-power-2.6.28/drivers/usb/storage/libusual.c -@@ -46,6 +46,12 @@ - { USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin,bcdDeviceMax), \ - .driver_info = (flags)|(USB_US_TYPE_STOR<<24) } - -+#define COMPLIANT_DEV(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax, \ -+ vendorName, productName, useProtocol, useTransport, \ -+ initFunction, flags) \ -+{ USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin, bcdDeviceMax), \ -+ .driver_info = (flags) } -+ - #define USUAL_DEV(useProto, useTrans, useType) \ - { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans), \ - .driver_info = ((useType)<<24) } -@@ -57,6 +63,7 @@ - - #undef USUAL_DEV - #undef UNUSUAL_DEV -+#undef COMPLIANT_DEV - - MODULE_DEVICE_TABLE(usb, storage_usb_ids); - EXPORT_SYMBOL_GPL(storage_usb_ids); ---- kernel-power-2.6.28.orig/drivers/usb/storage/scsiglue.c -+++ kernel-power-2.6.28/drivers/usb/storage/scsiglue.c -@@ -59,6 +59,14 @@ - #include "transport.h" - #include "protocol.h" - -+/* Vendor IDs for companies that seem to include the READ CAPACITY bug -+ * in all their devices -+ */ -+#define VENDOR_ID_NOKIA 0x0421 -+#define VENDOR_ID_NIKON 0x04b0 -+#define VENDOR_ID_PENTAX 0x0a17 -+#define VENDOR_ID_MOTOROLA 0x22b8 -+ - /*********************************************************************** - * Host functions - ***********************************************************************/ -@@ -127,6 +135,12 @@ - if (sdev->request_queue->max_sectors > max_sectors) - blk_queue_max_sectors(sdev->request_queue, - max_sectors); -+ } else if (sdev->type == TYPE_TAPE) { -+ /* Tapes need much higher max_sector limits, so just -+ * raise it to the maximum possible (4 GB / 512) and -+ * let the queue segment size sort out the real limit. -+ */ -+ blk_queue_max_sectors(sdev->request_queue, 0x7FFFFF); - } - - /* We can't put these settings in slave_alloc() because that gets -@@ -134,6 +148,23 @@ - * settings can't be overridden via the scsi devinfo mechanism. */ - if (sdev->type == TYPE_DISK) { - -+ /* Some vendors seem to put the READ CAPACITY bug into -+ * all their devices -- primarily makers of cell phones -+ * and digital cameras. Since these devices always use -+ * flash media and can be expected to have an even number -+ * of sectors, we will always enable the CAPACITY_HEURISTICS -+ * flag unless told otherwise. */ -+ switch (le16_to_cpu(us->pusb_dev->descriptor.idVendor)) { -+ case VENDOR_ID_NOKIA: -+ case VENDOR_ID_NIKON: -+ case VENDOR_ID_PENTAX: -+ case VENDOR_ID_MOTOROLA: -+ if (!(us->fflags & (US_FL_FIX_CAPACITY | -+ US_FL_CAPACITY_OK))) -+ us->fflags |= US_FL_CAPACITY_HEURISTICS; -+ break; -+ } -+ - /* Disk-type devices use MODE SENSE(6) if the protocol - * (SubClass) is Transparent SCSI, otherwise they use - * MODE SENSE(10). */ -@@ -196,6 +227,14 @@ - * sector in a larger then 1 sector read, since the performance - * impact is negible we set this flag for all USB disks */ - sdev->last_sector_bug = 1; -+ -+ /* Enable last-sector hacks for single-target devices using -+ * the Bulk-only transport, unless we already know the -+ * capacity will be decremented or is correct. */ -+ if (!(us->fflags & (US_FL_FIX_CAPACITY | US_FL_CAPACITY_OK | -+ US_FL_SCM_MULT_TARG)) && -+ us->protocol == US_PR_BULK) -+ us->use_last_sector_hacks = 1; - } else { - - /* Non-disk-type devices don't need to blacklist any pages ---- kernel-power-2.6.28.orig/drivers/usb/storage/transport.c -+++ kernel-power-2.6.28/drivers/usb/storage/transport.c -@@ -57,6 +57,9 @@ - #include "scsiglue.h" - #include "debug.h" - -+#include -+#include "../../scsi/sd.h" -+ - - /*********************************************************************** - * Data transfer routines -@@ -511,6 +514,80 @@ - * Transport routines - ***********************************************************************/ - -+/* There are so many devices that report the capacity incorrectly, -+ * this routine was written to counteract some of the resulting -+ * problems. -+ */ -+static void last_sector_hacks(struct us_data *us, struct scsi_cmnd *srb) -+{ -+ struct gendisk *disk; -+ struct scsi_disk *sdkp; -+ u32 sector; -+ -+ /* To Report "Medium Error: Record Not Found */ -+ static unsigned char record_not_found[18] = { -+ [0] = 0x70, /* current error */ -+ [2] = MEDIUM_ERROR, /* = 0x03 */ -+ [7] = 0x0a, /* additional length */ -+ [12] = 0x14 /* Record Not Found */ -+ }; -+ -+ /* If last-sector problems can't occur, whether because the -+ * capacity was already decremented or because the device is -+ * known to report the correct capacity, then we don't need -+ * to do anything. -+ */ -+ if (!us->use_last_sector_hacks) -+ return; -+ -+ /* Was this command a READ(10) or a WRITE(10)? */ -+ if (srb->cmnd[0] != READ_10 && srb->cmnd[0] != WRITE_10) -+ goto done; -+ -+ /* Did this command access the last sector? */ -+ sector = (srb->cmnd[2] << 24) | (srb->cmnd[3] << 16) | -+ (srb->cmnd[4] << 8) | (srb->cmnd[5]); -+ disk = srb->request->rq_disk; -+ if (!disk) -+ goto done; -+ sdkp = scsi_disk(disk); -+ if (!sdkp) -+ goto done; -+ if (sector + 1 != sdkp->capacity) -+ goto done; -+ -+ if (srb->result == SAM_STAT_GOOD && scsi_get_resid(srb) == 0) { -+ -+ /* The command succeeded. We know this device doesn't -+ * have the last-sector bug, so stop checking it. -+ */ -+ us->use_last_sector_hacks = 0; -+ -+ } else { -+ /* The command failed. Allow up to 3 retries in case this -+ * is some normal sort of failure. After that, assume the -+ * capacity is wrong and we're trying to access the sector -+ * beyond the end. Replace the result code and sense data -+ * with values that will cause the SCSI core to fail the -+ * command immediately, instead of going into an infinite -+ * (or even just a very long) retry loop. -+ */ -+ if (++us->last_sector_retries < 3) -+ return; -+ srb->result = SAM_STAT_CHECK_CONDITION; -+ memcpy(srb->sense_buffer, record_not_found, -+ sizeof(record_not_found)); -+ } -+ -+ done: -+ /* Don't reset the retry counter for TEST UNIT READY commands, -+ * because they get issued after device resets which might be -+ * caused by a failed last-sector access. -+ */ -+ if (srb->cmnd[0] != TEST_UNIT_READY) -+ us->last_sector_retries = 0; -+} -+ - /* Invoke the transport and basic error-handling/recovery methods - * - * This is used by the protocol layers to actually send the message to -@@ -544,6 +621,7 @@ - /* if the transport provided its own sense data, don't auto-sense */ - if (result == USB_STOR_TRANSPORT_NO_SENSE) { - srb->result = SAM_STAT_CHECK_CONDITION; -+ last_sector_hacks(us, srb); - return; - } - -@@ -667,6 +745,7 @@ - scsi_bufflen(srb) - scsi_get_resid(srb) < srb->underflow) - srb->result = (DID_ERROR << 16) | (SUGGEST_RETRY << 24); - -+ last_sector_hacks(us, srb); - return; - - /* Error and abort processing: try to resynchronize with the device -@@ -694,6 +773,7 @@ - us->transport_reset(us); - } - clear_bit(US_FLIDX_RESETTING, &us->dflags); -+ last_sector_hacks(us, srb); - } - - /* Stop the current URB transfer */ ---- kernel-power-2.6.28.orig/drivers/usb/storage/unusual_devs.h -+++ kernel-power-2.6.28/drivers/usb/storage/unusual_devs.h -@@ -27,7 +27,8 @@ - - /* IMPORTANT NOTE: This file must be included in another file which does - * the following thing for it to work: -- * The macro UNUSUAL_DEV() must be defined before this file is included -+ * The UNUSUAL_DEV, COMPLIANT_DEV, and USUAL_DEV macros must be defined -+ * before this file is included. - */ - - /* If you edit this file, please try to keep it sorted first by VendorID, -@@ -46,6 +47,12 @@ - * - */ - -+/* Note: If you add an entry only in order to set the CAPACITY_OK flag, -+ * use the COMPLIANT_DEV macro instead of UNUSUAL_DEV. This is -+ * because such entries mark devices which actually work correctly, -+ * as opposed to devices that do something strangely or wrongly. -+ */ -+ - /* patch submitted by Vivian Bregier - */ - UNUSUAL_DEV( 0x03eb, 0x2002, 0x0100, 0x0100, -@@ -160,34 +167,6 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_MAX_SECTORS_64 ), - --/* Reported by Filip Joelsson */ --UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x0600, -- "Nokia", -- "Nokia 3110c", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- --/* Reported by Ozan Sener */ --UNUSUAL_DEV( 0x0421, 0x0060, 0x0551, 0x0551, -- "Nokia", -- "3500c", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- --/* Reported by CSECSY Laszlo */ --UNUSUAL_DEV( 0x0421, 0x0063, 0x0001, 0x0601, -- "Nokia", -- "Nokia 3109c", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- --/* Patch for Nokia 5310 capacity */ --UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0701, -- "Nokia", -- "5310", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- - /* Reported by Mario Rettig */ - UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, - "Nokia", -@@ -240,7 +219,7 @@ - US_FL_MAX_SECTORS_64 ), - - /* Reported by Manuel Osdoba */ --UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x0452, -+UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x9999, - "Nokia", - "Nokia 6233", - US_SC_DEVICE, US_PR_DEVICE, NULL, -@@ -253,35 +232,6 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_MAX_SECTORS_64 ), - --/* Reported by Cedric Godin */ --UNUSUAL_DEV( 0x0421, 0x04b9, 0x0500, 0x0551, -- "Nokia", -- "5300", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- --/* Reported by Richard Nauber */ --UNUSUAL_DEV( 0x0421, 0x04fa, 0x0550, 0x0660, -- "Nokia", -- "6300", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- --/* Patch for Nokia 5310 capacity */ --UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591, -- "Nokia", -- "5310", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- --/* Submitted by Ricky Wong Yung Fei */ --/* Nokia 7610 Supernova - Too many sectors reported in usb storage mode */ --UNUSUAL_DEV( 0x0421, 0x00f5, 0x0000, 0x0470, -- "Nokia", -- "7610 Supernova", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY ), -- - /* Reported by Olaf Hering from novell bug #105878 */ - UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210, - "SMSC", -@@ -396,83 +346,6 @@ - US_SC_DEVICE, US_PR_DEVICE,NULL, - US_FL_NOT_LOCKABLE ), - --/* Reported by Stefan de Konink */ --UNUSUAL_DEV( 0x04b0, 0x0401, 0x0200, 0x0200, -- "NIKON", -- "NIKON DSC D100", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Tobias Kunze Briseno */ --UNUSUAL_DEV( 0x04b0, 0x0403, 0x0200, 0x0200, -- "NIKON", -- "NIKON DSC D2H", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Milinevsky Dmitry */ --UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100, -- "NIKON", -- "NIKON DSC D50", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Andreas Bockhold */ --UNUSUAL_DEV( 0x04b0, 0x0405, 0x0100, 0x0100, -- "NIKON", -- "NIKON DSC D70", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Jamie Kitson */ --UNUSUAL_DEV( 0x04b0, 0x040d, 0x0100, 0x0100, -- "NIKON", -- "NIKON DSC D70s", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Graber and Mike Pagano */ --UNUSUAL_DEV( 0x04b0, 0x040f, 0x0100, 0x0200, -- "NIKON", -- "NIKON DSC D200", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Emil Larsson */ --UNUSUAL_DEV( 0x04b0, 0x0411, 0x0100, 0x0111, -- "NIKON", -- "NIKON DSC D80", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Ortwin Glueck */ --UNUSUAL_DEV( 0x04b0, 0x0413, 0x0110, 0x0111, -- "NIKON", -- "NIKON DSC D40", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Paul Check */ --UNUSUAL_DEV( 0x04b0, 0x0415, 0x0100, 0x0100, -- "NIKON", -- "NIKON DSC D2Xs", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by Shan Destromp (shansan@gmail.com) */ --UNUSUAL_DEV( 0x04b0, 0x0417, 0x0100, 0x0100, -- "NIKON", -- "NIKON DSC D40X", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* Reported by paul ready */ --UNUSUAL_DEV( 0x04b0, 0x0419, 0x0100, 0x0200, -- "NIKON", -- "NIKON DSC D300", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- - /* Reported by Doug Maxey (dwm@austin.ibm.com) */ - UNUSUAL_DEV( 0x04b3, 0x4001, 0x0110, 0x0110, - "IBM", -@@ -685,6 +558,13 @@ - US_SC_8070, US_PR_DEVICE, NULL, - US_FL_FIX_INQUIRY ), - -+/* Added by Alan Stern */ -+COMPLIANT_DEV(0x0525, 0xa4a5, 0x0000, 0x9999, -+ "Linux", -+ "File-backed Storage Gadget", -+ US_SC_DEVICE, US_PR_DEVICE, NULL, -+ US_FL_CAPACITY_OK ), -+ - /* Yakumo Mega Image 37 - * Submitted by Stephan Fuhrmann */ - UNUSUAL_DEV( 0x052b, 0x1801, 0x0100, 0x0100, -@@ -996,13 +876,13 @@ - "Genesys Logic", - "USB to IDE Optical", - US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ), -+ US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), - - UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff, - "Genesys Logic", - "USB to IDE Disk", - US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ), -+ US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 | US_FL_IGNORE_RESIDUE ), - - /* Reported by Hanno Boeck - * Taken from the Lycoris Kernel */ -@@ -1033,14 +913,16 @@ - US_FL_FIX_CAPACITY ), - - /* Reported by Richard -=[]=- */ --UNUSUAL_DEV( 0x067b, 0x2507, 0x0100, 0x0100, -+/* Change to bcdDeviceMin (0x0100 to 0x0001) reported by -+ * Thomas Bartosik */ -+UNUSUAL_DEV( 0x067b, 0x2507, 0x0001, 0x0100, - "Prolific Technology Inc.", - "Mass Storage Device", - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_FIX_CAPACITY | US_FL_GO_SLOW ), - - /* Reported by Alex Butcher */ --UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0001, -+UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0101, - "Prolific Technology Inc.", - "ATAPI-6 Bridge Controller", - US_SC_DEVICE, US_PR_DEVICE, NULL, -@@ -1282,12 +1164,14 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_FIX_INQUIRY ), - --/* Reported by Rauch Wolke */ -+/* Reported by Rauch Wolke -+ * and augmented by binbin (Bugzilla #12882) -+ */ - UNUSUAL_DEV( 0x07c4, 0xa4a5, 0x0000, 0xffff, - "Simple Tech/Datafab", - "CF+SM Reader", - US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_IGNORE_RESIDUE ), -+ US_FL_IGNORE_RESIDUE | US_FL_MAX_SECTORS_64 ), - - /* Casio QV 2x00/3x00/4000/8000 digital still cameras are not conformant - * to the USB storage specification in two ways: -@@ -1320,6 +1204,13 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_FIX_CAPACITY), - -+/* Reported and patched by Nguyen Anh Quynh */ -+UNUSUAL_DEV( 0x0840, 0x0084, 0x0001, 0x0001, -+ "Argosy", -+ "Storage", -+ US_SC_DEVICE, US_PR_DEVICE, NULL, -+ US_FL_FIX_CAPACITY), -+ - /* Entry and supporting patch by Theodore Kilgore . - * Flag will support Bulk devices which use a standards-violating 32-byte - * Command Block Wrapper. Here, the "DC2MEGA" cameras (several brands) with -@@ -1417,14 +1308,6 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_FIX_INQUIRY ), - -- --/* Submitted by Per Winkvist */ --UNUSUAL_DEV( 0x0a17, 0x006, 0x0000, 0xffff, -- "Pentax", -- "Optio S/S4", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_INQUIRY ), -- - /* These are virtual windows driver CDs, which the zd1211rw driver - * automatically converts into WLAN devices. */ - UNUSUAL_DEV( 0x0ace, 0x2011, 0x0101, 0x0101, -@@ -1449,6 +1332,16 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - 0 ), - -+/* Reported by Jan Dumon -+ * This device (wrongly) has a vendor-specific device descriptor. -+ * The entry is needed so usb-storage can bind to it's mass-storage -+ * interface as an interface driver */ -+UNUSUAL_DEV( 0x0af0, 0x7501, 0x0000, 0x0000, -+ "Option", -+ "GI 0431 SD-Card", -+ US_SC_DEVICE, US_PR_DEVICE, NULL, -+ 0 ), -+ - #ifdef CONFIG_USB_STORAGE_ISD200 - UNUSUAL_DEV( 0x0bf6, 0xa001, 0x0100, 0x0110, - "ATI", -@@ -2076,6 +1969,12 @@ - US_SC_DEVICE, US_PR_DEVICE, NULL, - US_FL_IGNORE_DEVICE), - -+UNUSUAL_DEV( 0x2116, 0x0320, 0x0001, 0x0001, -+ "ST", -+ "2A", -+ US_SC_DEVICE, US_PR_DEVICE, NULL, -+ US_FL_FIX_CAPACITY), -+ - /* patch submitted by Davide Perini - * and Renato Perini - */ -@@ -2086,27 +1985,6 @@ - US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ), - - /* -- * Patch by Pete Zaitcev -- * Report by Mark Patton. Red Hat bz#208928. -- * Added support for rev 0x0002 (Motorola ROKR W5) -- * by Javier Smaldone -- */ --UNUSUAL_DEV( 0x22b8, 0x4810, 0x0001, 0x0002, -- "Motorola", -- "RAZR V3i/ROKR W5", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* -- * Patch by Jost Diederichs -- */ --UNUSUAL_DEV(0x22b8, 0x6410, 0x0001, 0x9999, -- "Motorola Inc.", -- "Motorola Phone (RAZRV3xx)", -- US_SC_DEVICE, US_PR_DEVICE, NULL, -- US_FL_FIX_CAPACITY), -- --/* - * Patch by Constantin Baranov - * Report by Andreas Koenecke. - * Motorola ROKR Z6. ---- kernel-power-2.6.28.orig/drivers/usb/storage/usb.c -+++ kernel-power-2.6.28/drivers/usb/storage/usb.c -@@ -126,6 +126,8 @@ - { USB_DEVICE_VER(id_vendor, id_product, bcdDeviceMin,bcdDeviceMax), \ - .driver_info = (flags)|(USB_US_TYPE_STOR<<24) } - -+#define COMPLIANT_DEV UNUSUAL_DEV -+ - #define USUAL_DEV(useProto, useTrans, useType) \ - { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans), \ - .driver_info = (USB_US_TYPE_STOR<<24) } -@@ -134,6 +136,7 @@ - - # include "unusual_devs.h" - #undef UNUSUAL_DEV -+#undef COMPLIANT_DEV - #undef USUAL_DEV - /* Terminating entry */ - { } -@@ -164,6 +167,8 @@ - .initFunction = init_function, \ - } - -+#define COMPLIANT_DEV UNUSUAL_DEV -+ - #define USUAL_DEV(use_protocol, use_transport, use_type) \ - { \ - .useProtocol = use_protocol, \ -@@ -173,6 +178,7 @@ - static struct us_unusual_dev us_unusual_dev_list[] = { - # include "unusual_devs.h" - # undef UNUSUAL_DEV -+# undef COMPLIANT_DEV - # undef USUAL_DEV - - /* Terminating entry */ ---- kernel-power-2.6.28.orig/drivers/usb/storage/usb.h -+++ kernel-power-2.6.28/drivers/usb/storage/usb.h -@@ -155,6 +155,10 @@ - #ifdef CONFIG_PM - pm_hook suspend_resume_hook; - #endif -+ -+ /* hacks for READ CAPACITY bug handling */ -+ int use_last_sector_hacks; -+ int last_sector_retries; - }; - - /* Convert between us_data and the corresponding Scsi_Host */ ---- kernel-power-2.6.28.orig/drivers/video/aty/mach64_ct.c -+++ kernel-power-2.6.28/drivers/video/aty/mach64_ct.c -@@ -8,6 +8,9 @@ - #include - #include