[meego-commits] 7665: Changes to Trunk/kernel

Peter Zhu no_reply at build.meego.com
Tue Sep 21 15:00:58 UTC 2010


Hi,
I have made the following changes to kernel in project Trunk. Please review and accept ASAP.

Thank You,
Peter Zhu

[This message was auto-generated]

---

Request #7665:

  submit:   Trunk:Testing/kernel(r108) -> Trunk/kernel


Message:
    Move to Trunk

State:   new          2010-09-21T08:00:57 peter
Comment: None



changes files:
--------------
--- kernel.changes
+++ kernel.changes
@@ -0,0 +1,15 @@
+* Thu Sep 16 2010 Arjan van de Ven <arjan at linux.intel.com> - 2.6.35.3
+- disable various expensive debug kernel options (while leaving the 
+  free/nearly free ones enabled)
+- Fix BMC #5214 (enable the ELANTECH touch pad config for EEEpc)
+- Fix BMC #6514 (support for firmware update on Aava)
+- Add support for the Aava camera
+- Fix ALS sensing range
+- Add runtime PM support to the MRST DMA driver
+- Fix the Max3110 IRQ polling (power issue)
+- cherry pick the security & other critical fixes from later -stable series
+
+* Fri Sep 03 2010 Ameya Palande <ameya.palande at nokia.com> - 2.6.35.3
+- N900: Updated omap3 camera driver
+- N900: Disable wall charger detection driver
+

old:
----
  linux-2.6-omap3camera.patch
  linux-2.6.35-ac-2010-08-03.patch
  linux-2.6.35-ac-2010-08-04.patch
  linux-2.6.35-ac-2010-08-09.patch
  linux-2.6.35-ac-fixups.patch
  linux-2.6.35-phylib-Support-phy-module-autoloading.patch
  linux-2.6.35-rc6-arm-buildgoof.patch
  linux-2.6.37-leds-Add-lp5523-led-driver.patch

new:
----
  linux-2.6-omap3isp-rx51.patch
  linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
  linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
  linux-2.6.35-DMA-driver-Add-runtime-PM.patch
  linux-2.6.35-Fix-loadfw.patch
  linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
  linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
  linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
  linux-2.6.35-lednames.patch
  linux-2.6.35-mrst-i2c-power-fix.patch
  linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
  linux-2.6.35-stable-cherry-picks.patch

spec files:
-----------
--- kernel-ivi.spec
+++ kernel-ivi.spec
@@ -164,6 +164,7 @@
 
 Patch1: patch-2.6.35.3.bz2
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -187,6 +188,10 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+Patch103: linux-2.6.35-stable-cherry-picks.patch
 
 #
 # End of the Direct Backports section
@@ -214,6 +219,17 @@
 Patch204: linux-2.6.35-aava-firmware-workaround-wifi.patch
 Patch205: linux-2.6.35-make-gma600-work-on-IA.patch
 Patch206: linux-2.6.35-mrst-rtc.patch
+Patch207: linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+Patch208: linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+Patch209: linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+Patch210: linux-2.6.35-Fix-loadfw.patch
+Patch211: linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+Patch212: linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+Patch213: linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+Patch214: linux-2.6.35-lednames.patch
+Patch215: linux-2.6.35-mrst-i2c-power-fix.patch
+Patch216: linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+
 
 #
 # End of the Moorsetown architecture patches
@@ -252,11 +268,11 @@
 # Cellular modem support
 Patch310: linux-2.6-n900-modem-support.patch
 # Fix wl1251 scanning while associated
-Patch311: linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
+# linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
 # Introduce EEM support in g_nokia which should fix usb networking
-Patch312: linux-2.6.37-EEM-support-for-g_nokia.patch
-# omap3camera driver
-#linux-2.6-omap3camera.patch
+Patch311: linux-2.6.37-EEM-support-for-g_nokia.patch
+# omap3isp-rx51 driver
+Patch312: linux-2.6-omap3isp-rx51.patch
 # TI dspbridge driver
 Patch313: linux-2.6.36-tidspbridge.patch
 # lp5523 platform data for rx51 board
@@ -264,7 +280,7 @@
 # usb charger platform device support
 Patch315: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
 # isp1704 usb charger detection driver
-Patch316: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -523,6 +539,7 @@
 # patch-2.6.35.3.bz2
 %patch1 -p1
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -550,6 +567,11 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+# linux-2.6.35-stable-cherry-picks.patch
+%patch103 -p1
 
 #
 # End of the Direct Backports section
@@ -584,6 +606,27 @@
 %patch205 -p1
 # linux-2.6.35-mrst-rtc.patch
 %patch206 -p1
+# linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+%patch207 -p1
+# linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+%patch208 -p1
+# linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+%patch209 -p1
+# linux-2.6.35-Fix-loadfw.patch
+%patch210 -p1
+# linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+%patch211 -p1
+# linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+%patch212 -p1
+# linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+%patch213 -p1
+# linux-2.6.35-lednames.patch
+%patch214 -p1
+# linux-2.6.35-mrst-i2c-power-fix.patch
+%patch215 -p1
+# linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+%patch216 -p1
+
 
 #
 # End of the Moorsetown architecture patches
@@ -634,12 +677,12 @@
 %patch310 -p1
 # Fix wl1251 scanning while associated
 # linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
-%patch311 -p1
 # Introduce EEM support in g_nokia which should fix usb networking
 # linux-2.6.37-EEM-support-for-g_nokia.patch
+%patch311 -p1
+# omap3isp-rx51 driver
+# linux-2.6-omap3isp-rx51.patch
 %patch312 -p1
-# omap3camera driver
-#linux-2.6-omap3camera.patch
 # TI dspbridge driver
 # linux-2.6.36-tidspbridge.patch
 %patch313 -p1
@@ -651,7 +694,6 @@
 %patch315 -p1
 # isp1704 usb charger detection driver
 # linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
-%patch316 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel-mrst.spec
+++ kernel-mrst.spec
@@ -165,6 +165,7 @@
 
 Patch1: patch-2.6.35.3.bz2
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -188,6 +189,10 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+Patch103: linux-2.6.35-stable-cherry-picks.patch
 
 #
 # End of the Direct Backports section
@@ -215,6 +220,17 @@
 Patch204: linux-2.6.35-aava-firmware-workaround-wifi.patch
 Patch205: linux-2.6.35-make-gma600-work-on-IA.patch
 Patch206: linux-2.6.35-mrst-rtc.patch
+Patch207: linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+Patch208: linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+Patch209: linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+Patch210: linux-2.6.35-Fix-loadfw.patch
+Patch211: linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+Patch212: linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+Patch213: linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+Patch214: linux-2.6.35-lednames.patch
+Patch215: linux-2.6.35-mrst-i2c-power-fix.patch
+Patch216: linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+
 
 #
 # End of the Moorsetown architecture patches
@@ -253,11 +269,11 @@
 # Cellular modem support
 Patch310: linux-2.6-n900-modem-support.patch
 # Fix wl1251 scanning while associated
-Patch311: linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
+# linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
 # Introduce EEM support in g_nokia which should fix usb networking
-Patch312: linux-2.6.37-EEM-support-for-g_nokia.patch
-# omap3camera driver
-#linux-2.6-omap3camera.patch
+Patch311: linux-2.6.37-EEM-support-for-g_nokia.patch
+# omap3isp-rx51 driver
+Patch312: linux-2.6-omap3isp-rx51.patch
 # TI dspbridge driver
 Patch313: linux-2.6.36-tidspbridge.patch
 # lp5523 platform data for rx51 board
@@ -265,7 +281,7 @@
 # usb charger platform device support
 Patch315: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
 # isp1704 usb charger detection driver
-Patch316: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -524,6 +540,7 @@
 # patch-2.6.35.3.bz2
 %patch1 -p1
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -551,6 +568,11 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+# linux-2.6.35-stable-cherry-picks.patch
+%patch103 -p1
 
 #
 # End of the Direct Backports section
@@ -585,6 +607,27 @@
 %patch205 -p1
 # linux-2.6.35-mrst-rtc.patch
 %patch206 -p1
+# linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+%patch207 -p1
+# linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+%patch208 -p1
+# linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+%patch209 -p1
+# linux-2.6.35-Fix-loadfw.patch
+%patch210 -p1
+# linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+%patch211 -p1
+# linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+%patch212 -p1
+# linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+%patch213 -p1
+# linux-2.6.35-lednames.patch
+%patch214 -p1
+# linux-2.6.35-mrst-i2c-power-fix.patch
+%patch215 -p1
+# linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+%patch216 -p1
+
 
 #
 # End of the Moorsetown architecture patches
@@ -635,12 +678,12 @@
 %patch310 -p1
 # Fix wl1251 scanning while associated
 # linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
-%patch311 -p1
 # Introduce EEM support in g_nokia which should fix usb networking
 # linux-2.6.37-EEM-support-for-g_nokia.patch
+%patch311 -p1
+# omap3isp-rx51 driver
+# linux-2.6-omap3isp-rx51.patch
 %patch312 -p1
-# omap3camera driver
-#linux-2.6-omap3camera.patch
 # TI dspbridge driver
 # linux-2.6.36-tidspbridge.patch
 %patch313 -p1
@@ -652,7 +695,6 @@
 %patch315 -p1
 # isp1704 usb charger detection driver
 # linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
-%patch316 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel-n900.spec
+++ kernel-n900.spec
@@ -164,6 +164,7 @@
 
 Patch1: patch-2.6.35.3.bz2
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -187,6 +188,10 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+Patch103: linux-2.6.35-stable-cherry-picks.patch
 
 #
 # End of the Direct Backports section
@@ -214,6 +219,17 @@
 Patch204: linux-2.6.35-aava-firmware-workaround-wifi.patch
 Patch205: linux-2.6.35-make-gma600-work-on-IA.patch
 Patch206: linux-2.6.35-mrst-rtc.patch
+Patch207: linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+Patch208: linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+Patch209: linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+Patch210: linux-2.6.35-Fix-loadfw.patch
+Patch211: linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+Patch212: linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+Patch213: linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+Patch214: linux-2.6.35-lednames.patch
+Patch215: linux-2.6.35-mrst-i2c-power-fix.patch
+Patch216: linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+
 
 #
 # End of the Moorsetown architecture patches
@@ -252,11 +268,11 @@
 # Cellular modem support
 Patch310: linux-2.6-n900-modem-support.patch
 # Fix wl1251 scanning while associated
-Patch311: linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
+# linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
 # Introduce EEM support in g_nokia which should fix usb networking
-Patch312: linux-2.6.37-EEM-support-for-g_nokia.patch
-# omap3camera driver
-#linux-2.6-omap3camera.patch
+Patch311: linux-2.6.37-EEM-support-for-g_nokia.patch
+# omap3isp-rx51 driver
+Patch312: linux-2.6-omap3isp-rx51.patch
 # TI dspbridge driver
 Patch313: linux-2.6.36-tidspbridge.patch
 # lp5523 platform data for rx51 board
@@ -264,7 +280,7 @@
 # usb charger platform device support
 Patch315: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
 # isp1704 usb charger detection driver
-Patch316: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -523,6 +539,7 @@
 # patch-2.6.35.3.bz2
 %patch1 -p1
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -550,6 +567,11 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+# linux-2.6.35-stable-cherry-picks.patch
+%patch103 -p1
 
 #
 # End of the Direct Backports section
@@ -584,6 +606,27 @@
 %patch205 -p1
 # linux-2.6.35-mrst-rtc.patch
 %patch206 -p1
+# linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+%patch207 -p1
+# linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+%patch208 -p1
+# linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+%patch209 -p1
+# linux-2.6.35-Fix-loadfw.patch
+%patch210 -p1
+# linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+%patch211 -p1
+# linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+%patch212 -p1
+# linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+%patch213 -p1
+# linux-2.6.35-lednames.patch
+%patch214 -p1
+# linux-2.6.35-mrst-i2c-power-fix.patch
+%patch215 -p1
+# linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+%patch216 -p1
+
 
 #
 # End of the Moorsetown architecture patches
@@ -634,12 +677,12 @@
 %patch310 -p1
 # Fix wl1251 scanning while associated
 # linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
-%patch311 -p1
 # Introduce EEM support in g_nokia which should fix usb networking
 # linux-2.6.37-EEM-support-for-g_nokia.patch
+%patch311 -p1
+# omap3isp-rx51 driver
+# linux-2.6-omap3isp-rx51.patch
 %patch312 -p1
-# omap3camera driver
-#linux-2.6-omap3camera.patch
 # TI dspbridge driver
 # linux-2.6.36-tidspbridge.patch
 %patch313 -p1
@@ -651,7 +694,6 @@
 %patch315 -p1
 # isp1704 usb charger detection driver
 # linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
-%patch316 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel-netbook.spec
+++ kernel-netbook.spec
@@ -164,6 +164,7 @@
 
 Patch1: patch-2.6.35.3.bz2
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -187,6 +188,10 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+Patch103: linux-2.6.35-stable-cherry-picks.patch
 
 #
 # End of the Direct Backports section
@@ -214,6 +219,17 @@
 Patch204: linux-2.6.35-aava-firmware-workaround-wifi.patch
 Patch205: linux-2.6.35-make-gma600-work-on-IA.patch
 Patch206: linux-2.6.35-mrst-rtc.patch
+Patch207: linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+Patch208: linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+Patch209: linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+Patch210: linux-2.6.35-Fix-loadfw.patch
+Patch211: linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+Patch212: linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+Patch213: linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+Patch214: linux-2.6.35-lednames.patch
+Patch215: linux-2.6.35-mrst-i2c-power-fix.patch
+Patch216: linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+
 
 #
 # End of the Moorsetown architecture patches
@@ -252,11 +268,11 @@
 # Cellular modem support
 Patch310: linux-2.6-n900-modem-support.patch
 # Fix wl1251 scanning while associated
-Patch311: linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
+# linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
 # Introduce EEM support in g_nokia which should fix usb networking
-Patch312: linux-2.6.37-EEM-support-for-g_nokia.patch
-# omap3camera driver
-#linux-2.6-omap3camera.patch
+Patch311: linux-2.6.37-EEM-support-for-g_nokia.patch
+# omap3isp-rx51 driver
+Patch312: linux-2.6-omap3isp-rx51.patch
 # TI dspbridge driver
 Patch313: linux-2.6.36-tidspbridge.patch
 # lp5523 platform data for rx51 board
@@ -264,7 +280,7 @@
 # usb charger platform device support
 Patch315: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
 # isp1704 usb charger detection driver
-Patch316: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -523,6 +539,7 @@
 # patch-2.6.35.3.bz2
 %patch1 -p1
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -550,6 +567,11 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+# linux-2.6.35-stable-cherry-picks.patch
+%patch103 -p1
 
 #
 # End of the Direct Backports section
@@ -584,6 +606,27 @@
 %patch205 -p1
 # linux-2.6.35-mrst-rtc.patch
 %patch206 -p1
+# linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+%patch207 -p1
+# linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+%patch208 -p1
+# linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+%patch209 -p1
+# linux-2.6.35-Fix-loadfw.patch
+%patch210 -p1
+# linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+%patch211 -p1
+# linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+%patch212 -p1
+# linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+%patch213 -p1
+# linux-2.6.35-lednames.patch
+%patch214 -p1
+# linux-2.6.35-mrst-i2c-power-fix.patch
+%patch215 -p1
+# linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+%patch216 -p1
+
 
 #
 # End of the Moorsetown architecture patches
@@ -634,12 +677,12 @@
 %patch310 -p1
 # Fix wl1251 scanning while associated
 # linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
-%patch311 -p1
 # Introduce EEM support in g_nokia which should fix usb networking
 # linux-2.6.37-EEM-support-for-g_nokia.patch
+%patch311 -p1
+# omap3isp-rx51 driver
+# linux-2.6-omap3isp-rx51.patch
 %patch312 -p1
-# omap3camera driver
-#linux-2.6-omap3camera.patch
 # TI dspbridge driver
 # linux-2.6.36-tidspbridge.patch
 %patch313 -p1
@@ -651,7 +694,6 @@
 %patch315 -p1
 # isp1704 usb charger detection driver
 # linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
-%patch316 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel.spec
+++ kernel.spec
@@ -176,6 +176,7 @@
 
 Patch1: patch-2.6.35.3.bz2
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -199,6 +200,10 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+Patch103: linux-2.6.35-stable-cherry-picks.patch
 
 #
 # End of the Direct Backports section
@@ -226,6 +231,17 @@
 Patch204: linux-2.6.35-aava-firmware-workaround-wifi.patch
 Patch205: linux-2.6.35-make-gma600-work-on-IA.patch
 Patch206: linux-2.6.35-mrst-rtc.patch
+Patch207: linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+Patch208: linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+Patch209: linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+Patch210: linux-2.6.35-Fix-loadfw.patch
+Patch211: linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+Patch212: linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+Patch213: linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+Patch214: linux-2.6.35-lednames.patch
+Patch215: linux-2.6.35-mrst-i2c-power-fix.patch
+Patch216: linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+
 
 #
 # End of the Moorsetown architecture patches
@@ -264,11 +280,11 @@
 # Cellular modem support
 Patch310: linux-2.6-n900-modem-support.patch
 # Fix wl1251 scanning while associated
-Patch311: linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
+# linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
 # Introduce EEM support in g_nokia which should fix usb networking
-Patch312: linux-2.6.37-EEM-support-for-g_nokia.patch
-# omap3camera driver
-#linux-2.6-omap3camera.patch
+Patch311: linux-2.6.37-EEM-support-for-g_nokia.patch
+# omap3isp-rx51 driver
+Patch312: linux-2.6-omap3isp-rx51.patch
 # TI dspbridge driver
 Patch313: linux-2.6.36-tidspbridge.patch
 # lp5523 platform data for rx51 board
@@ -276,7 +292,7 @@
 # usb charger platform device support
 Patch315: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
 # isp1704 usb charger detection driver
-Patch316: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -565,6 +581,7 @@
 # patch-2.6.35.3.bz2
 %patch1 -p1
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -592,6 +609,11 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+# linux-2.6.35-stable-cherry-picks.patch
+%patch103 -p1
 
 #
 # End of the Direct Backports section
@@ -626,6 +648,27 @@
 %patch205 -p1
 # linux-2.6.35-mrst-rtc.patch
 %patch206 -p1
+# linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+%patch207 -p1
+# linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+%patch208 -p1
+# linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+%patch209 -p1
+# linux-2.6.35-Fix-loadfw.patch
+%patch210 -p1
+# linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+%patch211 -p1
+# linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+%patch212 -p1
+# linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+%patch213 -p1
+# linux-2.6.35-lednames.patch
+%patch214 -p1
+# linux-2.6.35-mrst-i2c-power-fix.patch
+%patch215 -p1
+# linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+%patch216 -p1
+
 
 #
 # End of the Moorsetown architecture patches
@@ -676,12 +719,12 @@
 %patch310 -p1
 # Fix wl1251 scanning while associated
 # linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
-%patch311 -p1
 # Introduce EEM support in g_nokia which should fix usb networking
 # linux-2.6.37-EEM-support-for-g_nokia.patch
+%patch311 -p1
+# omap3isp-rx51 driver
+# linux-2.6-omap3isp-rx51.patch
 %patch312 -p1
-# omap3camera driver
-#linux-2.6-omap3camera.patch
 # TI dspbridge driver
 # linux-2.6.36-tidspbridge.patch
 %patch313 -p1
@@ -693,7 +736,6 @@
 %patch315 -p1
 # isp1704 usb charger detection driver
 # linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
-%patch316 -p1
 
 #
 # End of the Nokia N900 patches

other changes:
--------------

++++++ config-arm-n900
--- config-arm-n900
+++ config-arm-n900
@@ -486,6 +486,7 @@
 # CONFIG_VIDEO_UPD64083 is not set
 # CONFIG_V4L_USB_DRIVERS is not set
 # CONFIG_V4L_MEM2MEM_DRIVERS is not set
+# CONFIG_VIDEO_OMAP3_DEBUG is not set
 
 CONFIG_LEDS_CLASS=m
 # CONFIG_LEDS_REGULATOR is not set

++++++ config-generic
--- config-generic
+++ config-generic
@@ -2650,21 +2650,21 @@
 CONFIG_SCHEDSTATS=y
 CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_OBJECTS is not set
-CONFIG_DEBUG_SLAB=y
+# CONFIG_DEBUG_SLAB is not set
 # CONFIG_DEBUG_RT_MUTEXES is not set
 # CONFIG_RT_MUTEX_TESTER is not set
-CONFIG_DEBUG_SPINLOCK=y
-CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
-CONFIG_PROVE_LOCKING=y
-CONFIG_PROVE_RCU=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_PROVE_RCU is not set
 # CONFIG_DEBUG_LOCKDEP is not set
 # CONFIG_LOCK_STAT is not set
 CONFIG_DEBUG_SPINLOCK_SLEEP=y
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
 CONFIG_STACKTRACE=y
 # CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_HIGHMEM=y
+# CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
 CONFIG_DEBUG_INFO=y
 # CONFIG_DEBUG_VM is not set
@@ -2970,7 +2970,7 @@
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 # CONFIG_X86_32_NON_STANDARD is not set
 # CONFIG_X86_CPU_DEBUG is not set
-# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_DMAR is not set
 # CONFIG_PCI_IOV is not set
 # CONFIG_NETFILTER_XT_TARGET_LED is not set
@@ -3548,4 +3548,4 @@
 # CONFIG_TOUCHSCREEN_CY8CTMG110_MULTIPLE_INPUT is not set
 # CONFIG_SENSORS_THERMAL_MFLD is not set
 # CONFIG_MDFLD_DSI_DPU is not set
-
+# CONFIG_VIDEO_MRST_APTINA_A5140SOC is not set

++++++ config-mrst
--- config-mrst
+++ config-mrst
@@ -21,7 +21,6 @@
 # CONFIG_MEDIA_ATTACH is not set
 
 CONFIG_USB_OTG=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_VBUS_DRAW=500
 CONFIG_USB_GADGET_SELECTED=y
@@ -182,7 +181,10 @@
 CONFIG_ISL29015=y
 CONFIG_BH1770GLC=y
 CONFIG_KEYBOARD_TC35894XBG=y
-# CONFIG_TOUCHSCREEN_CY8CTMG110_MULTIPLE_INPUT is not set
+CONFIG_TOUCHSCREEN_CY8CTMG110_MULTIPLE_INPUT=y
 CONFIG_SENSORS_THERMAL_MFLD=y
 CONFIG_MDFLD_DSI_DPU=y
 
+# CONFIG_GPIO_PCA953X is not set
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_VIDEO_MRST_APTINA_A5140SOC=y

++++++ config-netbook
--- config-netbook
+++ config-netbook
@@ -78,3 +78,5 @@
 CONFIG_DRM_MRST=m
 # CONFIG_DRM_MDFLD is not set
 CONFIG_INPUT_MTDEV=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_SENSORS_CORETEMP=y

++++++ linux-2.6-omap3isp-rx51.patch (new)
--- linux-2.6-omap3isp-rx51.patch
+++ linux-2.6-omap3isp-rx51.patch
+From 1a96dc43fd0e1dac3fb95ae110a1cd0b0df60a5c Mon Sep 17 00:00:00 2001
+From: Sakari Ailus <sakari.ailus at nokia.com>
+Date: Fri, 31 Oct 2008 10:20:45 +0200
+Subject: [PATCH] omap3isp-rx51 driver
+
+Top commit from git://gitorious.org/maemo-multimedia/omap3isp-rx51.git
+
+rx51: Select VIDEO_MACH_RX51 in MACH_NOKIA_RX51
+
+Commit b2513bdc065358e9a74f170b8554540850d65bf8 ("rx51: Fix Kconfig
+breakage for camera") moved the RX51 video Kconfig option to the IGEP v2
+board instead of the RX51 board. Fix it.
+
+Signed-off-by: Ameya Palande <ameya.palande at nokia.com>
+---
+ Documentation/video4linux/v4l2-framework.txt |   62 +
+ arch/arm/mach-omap2/Kconfig                  |   10 +
+ arch/arm/mach-omap2/Makefile                 |    1 +
+ arch/arm/mach-omap2/board-rx51-camera.c      |  640 +++++++
+ arch/arm/mach-omap2/board-rx51-peripherals.c |   10 +
+ arch/arm/mach-omap2/devices.c                |   46 +-
+ arch/arm/mach-omap2/devices.h                |   17 +
+ arch/arm/plat-omap/include/mach/isp_user.h   |  639 +++++++
+ arch/arm/plat-omap/include/plat/omap34xx.h   |   16 +-
+ arch/arm/plat-omap/iovmm.c                   |   46 +-
+ arch/arm/plat-omap/omap-pm-noop.c            |    2 +-
+ drivers/media/Makefile                       |    8 +-
+ drivers/media/media-device.c                 |  330 ++++
+ drivers/media/media-devnode.c                |  480 ++++++
+ drivers/media/media-entity.c                 |  685 ++++++++
+ drivers/media/video/Kconfig                  |   54 +
+ drivers/media/video/Makefile                 |   11 +-
+ drivers/media/video/ad5820.c                 |  485 ++++++
+ drivers/media/video/adp1653.c                |  567 +++++++
+ drivers/media/video/et8ek8.c                 | 1082 ++++++++++++
+ drivers/media/video/et8ek8.h                 |   79 +
+ drivers/media/video/isp/Makefile             |   13 +
+ drivers/media/video/isp/bluegamma_table.h    | 1040 ++++++++++++
+ drivers/media/video/isp/cfa_coef_table.h     |  603 +++++++
+ drivers/media/video/isp/greengamma_table.h   | 1040 ++++++++++++
+ drivers/media/video/isp/isp.c                | 1840 +++++++++++++++++++++
+ drivers/media/video/isp/isp.h                |  393 +++++
+ drivers/media/video/isp/ispccdc.c            | 2292 +++++++++++++++++++++++++
+ drivers/media/video/isp/ispccdc.h            |  189 +++
+ drivers/media/video/isp/ispccp2.c            | 1127 +++++++++++++
+ drivers/media/video/isp/ispccp2.h            |   89 +
+ drivers/media/video/isp/ispcsi2.c            | 1232 ++++++++++++++
+ drivers/media/video/isp/ispcsi2.h            |  157 ++
+ drivers/media/video/isp/ispcsiphy.c          |  245 +++
+ drivers/media/video/isp/ispcsiphy.h          |   72 +
+ drivers/media/video/isp/isph3a.h             |  111 ++
+ drivers/media/video/isp/isph3a_aewb.c        |  351 ++++
+ drivers/media/video/isp/isph3a_af.c          |  396 +++++
+ drivers/media/video/isp/isphist.c            |  508 ++++++
+ drivers/media/video/isp/isphist.h            |   34 +
+ drivers/media/video/isp/isppreview.c         | 2295 ++++++++++++++++++++++++++
+ drivers/media/video/isp/isppreview.h         |  257 +++
+ drivers/media/video/isp/ispqueue.c           | 1077 ++++++++++++
+ drivers/media/video/isp/ispqueue.h           |  175 ++
+ drivers/media/video/isp/ispreg.h             | 1803 ++++++++++++++++++++
+ drivers/media/video/isp/ispresizer.c         | 1732 +++++++++++++++++++
+ drivers/media/video/isp/ispresizer.h         |  137 ++
+ drivers/media/video/isp/ispstat.c            | 1036 ++++++++++++
+ drivers/media/video/isp/ispstat.h            |  163 ++
+ drivers/media/video/isp/ispvideo.c           | 1150 +++++++++++++
+ drivers/media/video/isp/ispvideo.h           |  144 ++
+ drivers/media/video/isp/luma_enhance_table.h |  144 ++
+ drivers/media/video/isp/noise_filter_table.h |   79 +
+ drivers/media/video/isp/redgamma_table.h     | 1040 ++++++++++++
+ drivers/media/video/mt9m001.c                |   26 +-
+ drivers/media/video/mt9m111.c                |   20 +-
+ drivers/media/video/mt9t031.c                |   24 +-
+ drivers/media/video/mt9t112.c                |   14 +-
+ drivers/media/video/mt9v022.c                |   26 +-
+ drivers/media/video/ov772x.c                 |   18 +-
+ drivers/media/video/ov9640.c                 |   12 +-
+ drivers/media/video/rj54n1cb0c.c             |   26 +-
+ drivers/media/video/smia-sensor.c            |  942 +++++++++++
+ drivers/media/video/smia-sensor.h            |   39 +
+ drivers/media/video/smiaregs.c               |  734 ++++++++
+ drivers/media/video/soc_camera.c             |    2 +-
+ drivers/media/video/soc_mediabus.c           |    2 +-
+ drivers/media/video/tw9910.c                 |   20 +-
+ drivers/media/video/v4l2-common.c            |   17 +-
+ drivers/media/video/v4l2-dev.c               |   62 +-
+ drivers/media/video/v4l2-device.c            |   63 +-
+ drivers/media/video/v4l2-int-device.c        |   31 +-
+ drivers/media/video/v4l2-subdev.c            |  323 ++++
+ include/linux/Kbuild                         |    3 +
+ include/linux/i2c/twl.h                      |   10 +
+ include/linux/media.h                        |   77 +
+ include/linux/v4l2-mediabus.h                |   96 ++
+ include/linux/v4l2-subdev.h                  |  104 ++
+ include/linux/videodev2.h                    |   33 +
+ include/media/ad5820.h                       |   63 +
+ include/media/adp1653.h                      |   87 +
+ include/media/media-device.h                 |   74 +
+ include/media/media-devnode.h                |   97 ++
+ include/media/media-entity.h                 |  112 ++
+ include/media/smiaregs.h                     |  155 ++
+ include/media/soc_mediabus.h                 |    3 +-
+ include/media/v4l2-chip-ident.h              |   12 +
+ include/media/v4l2-common.h                  |   25 +-
+ include/media/v4l2-dev.h                     |   24 +-
+ include/media/v4l2-device.h                  |    2 +
+ include/media/v4l2-int-device.h              |    8 +-
+ include/media/v4l2-mediabus.h                |   82 -
+ include/media/v4l2-subdev.h                  |  114 ++-
+ 93 files changed, 31541 insertions(+), 275 deletions(-)
+ create mode 100644 arch/arm/mach-omap2/board-rx51-camera.c
+ create mode 100644 arch/arm/mach-omap2/devices.h
+ create mode 100644 arch/arm/plat-omap/include/mach/isp_user.h
+ create mode 100644 drivers/media/media-device.c
+ create mode 100644 drivers/media/media-devnode.c
+ create mode 100644 drivers/media/media-entity.c
+ create mode 100644 drivers/media/video/ad5820.c
+ create mode 100644 drivers/media/video/adp1653.c
+ create mode 100644 drivers/media/video/et8ek8.c
+ create mode 100644 drivers/media/video/et8ek8.h
+ create mode 100644 drivers/media/video/isp/Makefile
+ create mode 100644 drivers/media/video/isp/bluegamma_table.h
+ create mode 100644 drivers/media/video/isp/cfa_coef_table.h
+ create mode 100644 drivers/media/video/isp/greengamma_table.h
+ create mode 100644 drivers/media/video/isp/isp.c
+ create mode 100644 drivers/media/video/isp/isp.h
+ create mode 100644 drivers/media/video/isp/ispccdc.c
+ create mode 100644 drivers/media/video/isp/ispccdc.h
+ create mode 100644 drivers/media/video/isp/ispccp2.c
+ create mode 100644 drivers/media/video/isp/ispccp2.h
+ create mode 100644 drivers/media/video/isp/ispcsi2.c
+ create mode 100644 drivers/media/video/isp/ispcsi2.h
+ create mode 100644 drivers/media/video/isp/ispcsiphy.c
+ create mode 100644 drivers/media/video/isp/ispcsiphy.h
+ create mode 100644 drivers/media/video/isp/isph3a.h
+ create mode 100644 drivers/media/video/isp/isph3a_aewb.c
+ create mode 100644 drivers/media/video/isp/isph3a_af.c
+ create mode 100644 drivers/media/video/isp/isphist.c
+ create mode 100644 drivers/media/video/isp/isphist.h
+ create mode 100644 drivers/media/video/isp/isppreview.c
+ create mode 100644 drivers/media/video/isp/isppreview.h
+ create mode 100644 drivers/media/video/isp/ispqueue.c
+ create mode 100644 drivers/media/video/isp/ispqueue.h
+ create mode 100644 drivers/media/video/isp/ispreg.h
+ create mode 100644 drivers/media/video/isp/ispresizer.c
+ create mode 100644 drivers/media/video/isp/ispresizer.h
+ create mode 100644 drivers/media/video/isp/ispstat.c
+ create mode 100644 drivers/media/video/isp/ispstat.h
+ create mode 100644 drivers/media/video/isp/ispvideo.c
+ create mode 100644 drivers/media/video/isp/ispvideo.h
+ create mode 100644 drivers/media/video/isp/luma_enhance_table.h
+ create mode 100644 drivers/media/video/isp/noise_filter_table.h
+ create mode 100644 drivers/media/video/isp/redgamma_table.h
+ create mode 100644 drivers/media/video/smia-sensor.c
+ create mode 100644 drivers/media/video/smia-sensor.h
+ create mode 100644 drivers/media/video/smiaregs.c
+ create mode 100644 drivers/media/video/v4l2-subdev.c
+ create mode 100644 include/linux/media.h
+ create mode 100644 include/linux/v4l2-mediabus.h
+ create mode 100644 include/linux/v4l2-subdev.h
+ create mode 100644 include/media/ad5820.h
+ create mode 100644 include/media/adp1653.h
+ create mode 100644 include/media/media-device.h
+ create mode 100644 include/media/media-devnode.h
+ create mode 100644 include/media/media-entity.h
+ create mode 100644 include/media/smiaregs.h
+ delete mode 100644 include/media/v4l2-mediabus.h
+
+diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt
+index e831aac..dbcc619 100644
+--- a/Documentation/video4linux/v4l2-framework.txt
++++ b/Documentation/video4linux/v4l2-framework.txt
+@@ -192,6 +192,11 @@ You also need a way to go from the low-level struct to v4l2_subdev. For the
+ common i2c_client struct the i2c_set_clientdata() call is used to store a
+ v4l2_subdev pointer, for other busses you may have to use other methods.
+ 
++Bridges might also need to store per-subdev private data, such as a pointer to
++bridge-specific per-subdev private data. The v4l2_subdev structure provides
++host private data for that purpose that can be accessed with
++v4l2_get_subdev_hostdata() and v4l2_set_subdev_hostdata().
++
+ From the bridge driver perspective you load the sub-device module and somehow
+ obtain the v4l2_subdev pointer. For i2c devices this is easy: you call
+ i2c_get_clientdata(). For other busses something similar needs to be done.
+@@ -314,6 +319,63 @@ controlled through GPIO pins. This distinction is only relevant when setting
+ up the device, but once the subdev is registered it is completely transparent.
+ 
+ 
++V4L2 sub-device userspace API
++-----------------------------
++
++Beside exposing a kernel API through the v4l2_subdev_ops structure, V4L2
++sub-devices can also be controlled directly by userspace applications.
++
++When a sub-device is registered, a device node named v4l-subdevX can be created
++in /dev. If the sub-device supports direct userspace configuration it must set
++the V4L2_SUBDEV_FL_HAS_DEVNODE flag before being registered.
++
++For I2C and SPI sub-devices, the v4l2_device driver can disable registration of
(33583 more lines skipped)

++++++ linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch (new)
--- linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+++ linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+From 8b550fd1f585b87079f602d5b146263ab495a4d4 Mon Sep 17 00:00:00 2001
+From: jianwei.yang <jianwei.yang at intel.com>
+Date: Wed, 15 Sep 2010 16:40:47 +0100
+Subject: [PATCH] Add MIP header update when FW is upgraded
+
+The MIP header will also be updated when FW is upgraded through loadfw
+
+Signed-off-by: jianwei.yang <jianwei.yang at intel.com>
+---
+ drivers/platform/x86/intel_scu_ipc.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/platform/x86/intel_scu_ipc.c b/drivers/platform/x86/intel_scu_ipc.c
+index 153a56e..4b22f11 100644
+--- a/drivers/platform/x86/intel_scu_ipc.c
++++ b/drivers/platform/x86/intel_scu_ipc.c
+@@ -510,7 +510,7 @@ EXPORT_SYMBOL(intel_scu_ipc_i2c_cntrl);
+ /* IPC inform SCU to get ready for update process */
+ #define IPC_CMD_FW_UPDATE_READY  0x10FE
+ /* IPC inform SCU to go for update process */
+-#define IPC_CMD_FW_UPDATE_GO     0x20FE
++#define IPC_CMD_FW_UPDATE_GO_MHUPD     0x2030FE
+ /* Status code for fw update */
+ #define IPC_FW_UPDATE_SUCCESS	0x444f4e45 /* Status code 'DONE' */
+ #define IPC_FW_UPDATE_BADN	0x4241444E /* Status code 'BADN' */
+@@ -569,7 +569,7 @@ int intel_scu_ipc_fw_update(u8 *buffer, u32 length)
+ 	* SCU will write a status code into the Mailbox, and then set scu_flag.
+ 	*/
+ 
+-	ipc_command(IPC_CMD_FW_UPDATE_GO);
++	ipc_command(IPC_CMD_FW_UPDATE_GO_MHUPD);
+ 
+ 	/*Driver stalls until scu_flag is set */
+ 	while (readl(&mailbox->scu_flag) != 1) {
+-- 
+1.6.1.3
+

++++++ linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch (new)
--- linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+++ linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+From 893c678aea0effb42319083b3cd723b5b3ee718a Mon Sep 17 00:00:00 2001
+From: ji yang <ji.yang at intel.com>
+Date: Wed, 15 Sep 2010 16:40:50 +0100
+Subject: [PATCH] Bug fix for camera flash IC not found
+
+Signed-off-by: ji yang <ji.yang at intel.com>
+---
+ drivers/staging/mrstci/mrstflash/mrstflash.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/staging/mrstci/mrstflash/mrstflash.c b/drivers/staging/mrstci/mrstflash/mrstflash.c
+index ad3b2cb..7ee2e08 100644
+--- a/drivers/staging/mrstci/mrstflash/mrstflash.c
++++ b/drivers/staging/mrstci/mrstflash/mrstflash.c
+@@ -79,7 +79,8 @@ static int flash_detect(struct i2c_client *client)
+ 
+ 	if ((adapter->nr != 1) && (mrst_platform_id() == MRST_PLATFORM_AAVA_SC))
+ 		return -ENODEV;
+-	else if (adapter->nr != 0)
++	else if ((adapter->nr != 0) &&
++		(mrst_platform_id() != MRST_PLATFORM_AAVA_SC))
+ 		return -ENODEV;
+ 
+ 	if (mrst_platform_id() == MRST_PLATFORM_AAVA_SC) {
+-- 
+1.6.1.3
+

++++++ linux-2.6.35-DMA-driver-Add-runtime-PM.patch (new)
--- linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+++ linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+From ffc6218aa0df72093b34ef074d7fa83820372267 Mon Sep 17 00:00:00 2001
+From: Vinod Koul <vinod.koul at intel.com>
+Date: Wed, 15 Sep 2010 16:40:37 +0100
+Subject: [PATCH] DMA driver: Add runtime PM
+
+This patch adds runtime support for 4 PCI Controllers
+it also adds the PCI suspend and resume support
+
+Signed-off-by: Vinod Koul <vinod.koul at intel.com>
+---
+ drivers/dma/intel_mid_dma.c      |  125 +++++++++++++++++++++++++++++++++++--
+ drivers/dma/intel_mid_dma_regs.h |   14 ++++-
+ 2 files changed, 131 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/dma/intel_mid_dma.c b/drivers/dma/intel_mid_dma.c
+index 7d33da1..78ddf4a 100644
+--- a/drivers/dma/intel_mid_dma.c
++++ b/drivers/dma/intel_mid_dma.c
+@@ -25,6 +25,7 @@
+  */
+ #include <linux/pci.h>
+ #include <linux/interrupt.h>
++#include <linux/pm_runtime.h>
+ #include <linux/intel_mid_dma.h>
+ 
+ #define MAX_CHAN	4 /*max ch across controllers*/
+@@ -247,13 +248,13 @@ static void midc_dostart(struct intel_mid_dma_chan *midc,
+ 	struct middma_device *mid = to_middma_device(midc->chan.device);
+ 
+ 	/*  channel is idle */
+-	if (midc->in_use && test_ch_en(midc->dma_base, midc->ch_id)) {
++	if (midc->busy && test_ch_en(midc->dma_base, midc->ch_id)) {
+ 		/*error*/
+ 		pr_err("ERR_MDMA: channel is busy in start\n");
+ 		/* The tasklet will hopefully advance the queue... */
+ 		return;
+ 	}
+-
++	midc->busy = true;
+ 	/*write registers and en*/
+ 	iowrite32(first->sar, midc->ch_regs + SAR);
+ 	iowrite32(first->dar, midc->ch_regs + DAR);
+@@ -290,7 +291,7 @@ static void midc_descriptor_complete(struct intel_mid_dma_chan *midc,
+ 	param_txd = txd->callback_param;
+ 
+ 	list_move(&desc->desc_node, &midc->free_list);
+-
++	midc->busy = false;
+ 	spin_unlock_bh(&midc->lock);
+ 	if (callback_txd) {
+ 		pr_debug("MDMA: TXD callback set ... calling\n");
+@@ -434,7 +435,7 @@ static int intel_mid_dma_device_control(struct dma_chan *chan,
+ 		return -ENXIO;
+ 
+ 	spin_lock_bh(&midc->lock);
+-	if (midc->in_use == false) {
++	if (midc->busy == false) {
+ 		spin_unlock_bh(&midc->lock);
+ 		return 0;
+ 	}
+@@ -618,11 +619,11 @@ static void intel_mid_dma_free_chan_resources(struct dma_chan *chan)
+ 	struct middma_device	*mid = to_middma_device(chan->device);
+ 	struct intel_mid_dma_desc	*desc, *_desc;
+ 
+-	if (true == midc->in_use) {
++	if (true == midc->busy) {
+ 		/*trying to free ch in use!!!!!*/
+ 		pr_err("ERR_MDMA: trying to free ch in use\n");
+ 	}
+-
++	pm_runtime_put(&mid->pdev->dev);
+ 	spin_lock_bh(&midc->lock);
+ 	midc->descs_allocated = 0;
+ 	list_for_each_entry_safe(desc, _desc, &midc->active_list, desc_node) {
+@@ -639,6 +640,7 @@ static void intel_mid_dma_free_chan_resources(struct dma_chan *chan)
+ 	}
+ 	spin_unlock_bh(&midc->lock);
+ 	midc->in_use = false;
++	midc->busy = false;
+ 	/* Disable CH interrupts */
+ 	iowrite32(MASK_INTR_REG(midc->ch_id), mid->dma_base + MASK_BLOCK);
+ 	iowrite32(MASK_INTR_REG(midc->ch_id), mid->dma_base + MASK_ERR);
+@@ -659,11 +661,20 @@ static int intel_mid_dma_alloc_chan_resources(struct dma_chan *chan)
+ 	dma_addr_t		phys;
+ 	int	i = 0;
+ 
++	pm_runtime_get_sync(&mid->pdev->dev);
++
++	if (mid->state == SUSPENDED) {
++		if (dma_resume(mid->pdev)) {
++			pr_err("ERR_MDMA: resume failed");
++			return -EFAULT;
++		}
++	}
+ 
+ 	/* ASSERT:  channel is idle */
+ 	if (test_ch_en(mid->dma_base, midc->ch_id)) {
+ 		/*ch is not idle*/
+ 		pr_err("ERR_MDMA: ch not idle\n");
++		pm_runtime_put(&mid->pdev->dev);
+ 		return -EIO;
+ 	}
+ 	midc->completed = chan->cookie = 1;
+@@ -674,6 +685,7 @@ static int intel_mid_dma_alloc_chan_resources(struct dma_chan *chan)
+ 		desc = pci_pool_alloc(mid->dma_pool, GFP_KERNEL, &phys);
+ 		if (!desc) {
+ 			pr_err("ERR_MDMA: desc failed\n");
++			pm_runtime_put(&mid->pdev->dev);
+ 			return -ENOMEM;
+ 			/*check*/
+ 		}
+@@ -686,7 +698,8 @@ static int intel_mid_dma_alloc_chan_resources(struct dma_chan *chan)
+ 		list_add_tail(&desc->desc_node, &midc->free_list);
+ 	}
+ 	spin_unlock_bh(&midc->lock);
+-	midc->in_use = false;
++	midc->in_use = true;
++	midc->busy = false;
+ 	pr_debug("MID_DMA: Desc alloc done ret: %d desc\n", i);
+ 	return i;
+ }
+@@ -884,6 +897,7 @@ static int mid_setup_dma(struct pci_dev *pdev)
+ 	pr_debug("MDMA:Adding %d channel for this controller\n", dma->max_chan);
+ 	/*init CH structures*/
+ 	dma->intr_mask = 0;
++	dma->state = RUNNING;
+ 	for (i = 0; i < dma->max_chan; i++) {
+ 		struct intel_mid_dma_chan *midch = &dma->ch[i];
+ 
+@@ -1070,6 +1084,8 @@ static int __devinit intel_mid_dma_probe(struct pci_dev *pdev,
+ 	if (err)
+ 		goto err_dma;
+ 
++	pm_runtime_set_active(&pdev->dev);
++	pm_runtime_enable(&pdev->dev);
+ 	return 0;
+ 
+ err_dma:
+@@ -1104,6 +1120,88 @@ static void __devexit intel_mid_dma_remove(struct pci_dev *pdev)
+ 	pci_disable_device(pdev);
+ }
+ 
++/* Power Management */
++/*
++* dma_suspend - PCI suspend function
++*
++* @pci: PCI device structure
++* @state: PM message
++*
++* This function is called by OS when a power event occurs
++*/
++int dma_suspend(struct pci_dev *pci, pm_message_t state)
++{
++	int i;
++	struct middma_device *device = pci_get_drvdata(pci);
++	pr_debug("MDMA: dma_suspend called\n");
++
++	for (i = 0; i < device->max_chan; i++) {
++		if (device->ch[i].in_use)
++			return -EAGAIN;
++	}
++	device->state = SUSPENDED;
++	pci_set_drvdata(pci, device);
++	pci_save_state(pci);
++	pci_disable_device(pci);
++	pci_set_power_state(pci, PCI_D3hot);
++	return 0;
++}
++
++/**
++* dma_resume - PCI resume function
++*
++* @pci:	PCI device structure
++*
++* This function is called by OS when a power event occurs
++*/
++int dma_resume(struct pci_dev *pci)
++{
++	int ret;
++	struct middma_device *device = pci_get_drvdata(pci);
++
++	pr_debug("MDMA: dma_resume called\n");
++	pci_set_power_state(pci, PCI_D0);
++	pci_restore_state(pci);
++	ret = pci_enable_device(pci);
++	if (ret) {
++		pr_err("MDMA: device cant be enabled for %x\n", pci->device);
++		return ret;
++	}
++	device->state = RUNNING;
++	iowrite32(REG_BIT0, device->dma_base + DMA_CFG);
++	pci_set_drvdata(pci, device);
++	return 0;
++}
++
++static int dma_runtime_suspend(struct device *dev)
++{
++	struct pci_dev *pci_dev = to_pci_dev(dev);
(129 more lines skipped)

++++++ linux-2.6.35-Fix-loadfw.patch (new)
--- linux-2.6.35-Fix-loadfw.patch
+++ linux-2.6.35-Fix-loadfw.patch
+From cde040bbab26cb4d2d257170cf4ce4ee1d1b03b3 Mon Sep 17 00:00:00 2001
+From: jianwei.yang <jianwei.yang at intel.com>
+Date: Wed, 15 Sep 2010 16:40:47 +0100
+Subject: [PATCH] Fix loadfw
+
+Bug fix for upgrading fw through loadfw. Loadfw is a tool to upgrade firmware
+for close units(e.g. AAVA SC)
+
+Signed-off-by: jianwei.yang <jianwei.yang at intel.com>
+---
+ drivers/platform/x86/intel_scu_ipcutil.c |    8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/platform/x86/intel_scu_ipcutil.c b/drivers/platform/x86/intel_scu_ipcutil.c
+index e8f2e7b..0e9520b 100644
+--- a/drivers/platform/x86/intel_scu_ipcutil.c
++++ b/drivers/platform/x86/intel_scu_ipcutil.c
+@@ -31,7 +31,7 @@ static u32 major;
+ #define	INTE_SCU_IPC_REGISTER_READ	0
+ #define INTE_SCU_IPC_REGISTER_WRITE	1
+ #define INTE_SCU_IPC_REGISTER_UPDATE	2
+-#define INTE_SCU_IPC_FW_UPDATE 		0xA2
++#define INTE_SCU_IPC_FW_UPDATE		0xA2
+ 
+ struct scu_ipc_data {
+ 	u32     count;  /* No. of registers */
+@@ -72,9 +72,6 @@ static long scu_ipc_ioctl(struct file *fp, unsigned int cmd,
+ 	struct scu_ipc_data  data;
+ 	void __user *argp = (void __user *)arg;
+ 
+-	ret = copy_from_user(&data, argp, sizeof(struct scu_ipc_data));
+-	if (data.count == 0 || data.count > 4 || data.count == 3)
+-		return -EINVAL;
+ 
+ 	if (cmd == INTE_SCU_IPC_FW_UPDATE) {
+ 			u8 *fwbuf = NULL ;
+@@ -85,6 +82,9 @@ static long scu_ipc_ioctl(struct file *fp, unsigned int cmd,
+ 			ret = copy_from_user(fwbuf, (u8 *)arg, MAX_FW_SIZE);
+ 			return intel_scu_ipc_fw_update(fwbuf, MAX_FW_SIZE);
+ 	} else {
++		ret = copy_from_user(&data, argp, sizeof(struct scu_ipc_data));
++		if (data.count == 0 || data.count > 4 || data.count == 3)
++			return -EINVAL;
+ 		power_cntrl_reg_access(cmd, &data);
+ 		ret = copy_to_user(argp, &data, sizeof(struct scu_ipc_data));
+ 	}
+-- 
+1.6.1.3
+

++++++ linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch (new)
--- linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+++ linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+From e4805f25637718d0f21caa313a5b1b7b1d824d62 Mon Sep 17 00:00:00 2001
+From: gavin yang <ji.yang at intel.com>
+Date: Wed, 15 Sep 2010 16:40:46 +0100
+Subject: [PATCH] Subject: [Moblin-kernel] [MeeGo AC Tree]CI: add support for aptina5140soc sensor in AAVA SC
+
+1. Add the support for different number of MIPI lanes.
+2. Make one unified ISP driver to support both DV2 and DV1, Remove the bug caused by scheduling under the protection of spinlock.
+3. Add the aptina5140soc sensor driver code.
+4. To enable aptina5140soc, please add "CONFIG_VIDEO_MRST_APTINA_A5140SOC=y" in .config file.
+
+Signed-off-by: gavin yang <ji.yang at intel.com>
+---
+ drivers/staging/mrstci/Kconfig                     |    2 +-
+ drivers/staging/mrstci/Makefile                    |    1 +
+ drivers/staging/mrstci/include/ci_sensor_common.h  |    1 +
+ drivers/staging/mrstci/mrstaptina5140soc/Kconfig   |    9 +
+ drivers/staging/mrstci/mrstaptina5140soc/Makefile  |    3 +
+ .../mrstci/mrstaptina5140soc/mrstaptina5140soc.c   | 1483 ++++++++++++++++++++
+ .../mrstci/mrstaptina5140soc/mrstaptina5140soc.h   |  848 +++++++++++
+ drivers/staging/mrstci/mrstisp/include/mrstisp.h   |    4 +
+ .../staging/mrstci/mrstisp/include/mrstisp_hw.h    |    2 +-
+ drivers/staging/mrstci/mrstisp/mrstisp_dp.c        |    2 +-
+ drivers/staging/mrstci/mrstisp/mrstisp_hw.c        |   17 +-
+ drivers/staging/mrstci/mrstisp/mrstisp_isp.c       |   30 +-
+ drivers/staging/mrstci/mrstisp/mrstisp_main.c      |   28 +-
+ drivers/staging/mrstci/mrsts5k4e1/mrsts5k4e1.c     |    1 +
+ 14 files changed, 2420 insertions(+), 11 deletions(-)
+ create mode 100644 drivers/staging/mrstci/mrstaptina5140soc/Kconfig
+ create mode 100644 drivers/staging/mrstci/mrstaptina5140soc/Makefile
+ create mode 100644 drivers/staging/mrstci/mrstaptina5140soc/mrstaptina5140soc.c
+ create mode 100644 drivers/staging/mrstci/mrstaptina5140soc/mrstaptina5140soc.h
+
+diff --git a/drivers/staging/mrstci/Kconfig b/drivers/staging/mrstci/Kconfig
+index b8addd3..578672f 100644
+--- a/drivers/staging/mrstci/Kconfig
++++ b/drivers/staging/mrstci/Kconfig
+@@ -9,7 +9,7 @@ menuconfig VIDEO_MRSTCI
+ if VIDEO_MRSTCI && VIDEO_V4L2
+ 
+ source "drivers/staging/mrstci/mrstisp/Kconfig"
+-
++source "drivers/staging/mrstci/mrstaptina5140soc/Kconfig"
+ source "drivers/staging/mrstci/mrstov5630/Kconfig"
+ source "drivers/staging/mrstci/mrstov5630_motor/Kconfig"
+ 
+diff --git a/drivers/staging/mrstci/Makefile b/drivers/staging/mrstci/Makefile
+index a06eb7a..d63e0bc 100644
+--- a/drivers/staging/mrstci/Makefile
++++ b/drivers/staging/mrstci/Makefile
+@@ -1,3 +1,4 @@
++obj-$(CONFIG_VIDEO_MRST_APTINA_A5140SOC) += mrstaptina5140soc/
+ obj-$(CONFIG_VIDEO_MRST_OV2650) += mrstov2650/
+ obj-$(CONFIG_VIDEO_MRST_OV9665) += mrstov9665/
+ obj-$(CONFIG_VIDEO_MRST_OV5630) += mrstov5630/
+diff --git a/drivers/staging/mrstci/include/ci_sensor_common.h b/drivers/staging/mrstci/include/ci_sensor_common.h
+index 5aacee0..a9dfde6 100644
+--- a/drivers/staging/mrstci/include/ci_sensor_common.h
++++ b/drivers/staging/mrstci/include/ci_sensor_common.h
+@@ -520,6 +520,7 @@ struct ci_sensor_caps{
+ 	char name[32];
+ 
+ 	struct v4l2_subdev sd;
++	unsigned int mipi_lanes;	/*Number of MIPI lanes*/
+ };
+ 
+ #define SENSOR_CAP_BUSWIDTH         0
+diff --git a/drivers/staging/mrstci/mrstaptina5140soc/Kconfig b/drivers/staging/mrstci/mrstaptina5140soc/Kconfig
+new file mode 100644
+index 0000000..af01ac0
+--- /dev/null
++++ b/drivers/staging/mrstci/mrstaptina5140soc/Kconfig
+@@ -0,0 +1,9 @@
++config VIDEO_MRST_APTINA_A5140SOC
++	tristate "Moorestown Aptina A-5140 SoC Sensor"
++	depends on I2C && VIDEO_MRST_ISP
++
++	---help---
++	  Say Y here if your platform support Aptina A-5140 SoC Sensor.
++
++	  To compile this driver as a module, choose M here: the
++	  module will be called mrstaptina5140soc.ko.
+diff --git a/drivers/staging/mrstci/mrstaptina5140soc/Makefile b/drivers/staging/mrstci/mrstaptina5140soc/Makefile
+new file mode 100644
+index 0000000..7ee0d8d
+--- /dev/null
++++ b/drivers/staging/mrstci/mrstaptina5140soc/Makefile
+@@ -0,0 +1,3 @@
++obj-$(CONFIG_VIDEO_MRST_APTINA_A5140SOC)	 += mrstaptina5140soc.o
++
++EXTRA_CFLAGS	+=	-I$(src)/../include
+diff --git a/drivers/staging/mrstci/mrstaptina5140soc/mrstaptina5140soc.c b/drivers/staging/mrstci/mrstaptina5140soc/mrstaptina5140soc.c
+new file mode 100644
+index 0000000..d189c6e
+--- /dev/null
++++ b/drivers/staging/mrstci/mrstaptina5140soc/mrstaptina5140soc.c
+@@ -0,0 +1,1483 @@
++/*
++ * Support for Moorestown Langwell Camera Imaging ISP subsystem.
++ *
++ * Copyright (c) 2010 Aptina LLC. All Rights Reserved.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License version
++ * 2 as published by the Free Software Foundation.
++ *
++ * 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., 51 Franklin Street, Fifth Floor, Boston, MA
++ * 02110-1301, USA.
++ *
++ *
++ * Charles Su <csu at aptina.com>
++ * Ji Yang <ji.yang at intel.com>
++ */
++
++#include <linux/module.h>
++#include <linux/types.h>
++#include <linux/kernel.h>
++#include <linux/mm.h>
++#include <linux/string.h>
++#include <linux/errno.h>
++#include <linux/init.h>
++#include <linux/kmod.h>
++#include <linux/device.h>
++#include <linux/delay.h>
++#include <linux/fs.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/delay.h>
++#include <linux/i2c.h>
++#include <linux/gpio.h>
++
++#include <media/v4l2-device.h>
++#include <media/v4l2-chip-ident.h>
++#include <media/v4l2-i2c-drv.h>
++
++#include "ci_sensor_common.h"
++#include "mrstaptina5140soc.h"
++
++
++
++/*
++*Flag, which context we are using. 0 for context A (preview),
++*1 for context B (capture, sizes larger than VGA)
++*/
++static int nctx;/* initialized to 0 by default*/
++
++#define DBG_entering	pr_info("entering");
++#define DBG_leaving	pr_info("leaving");
++#define DBG_line	pr_info(" line: %d", __LINE__);
++
++
++
++/*Forward Declarations*/
++static int misensor_rmw_reg(struct i2c_client *client,
++	u16 data_length, u16 reg, u32 andval, u32 orval);
++
++
++static inline struct ci_sensor_config *
++	to_sensor_config(struct v4l2_subdev *sd)
++{
++	return container_of(sd, struct ci_sensor_config, sd);
++}
++
++static struct a5140soc_format_struct {
++	__u8 *desc;
++	__u32 pixelformat;
++	struct regval_list *regs;
++} a5140soc_formats[] = {
++	{
++		.desc		= "YUYV 4:2:2",
++		.pixelformat	= SENSOR_MODE_MIPI,  /*ab:new*/
++		.regs	= NULL,
++	},
++};
++#define N_A5140SOC_FMTS ARRAY_SIZE(a5140soc_formats)
++
++/*
++*Modes supported by the A5140SOC driver.
++*  since they are not listed in the specification
++*/
++
++static struct a5140soc_res_struct {
++	__u8 *desc;
++	int res;
++	int width;
++	int height;
++	/* FIXME: correct the fps values..*/
++	int fps;
++	bool used;
++	struct regval_list *regs;
++} a5140soc_res[] = {
++	{
(2442 more lines skipped)

++++++ linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch (new)
--- linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+++ linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+From e593f1b6386eddc4226258ca5d7d05271276d705 Mon Sep 17 00:00:00 2001
+From: Hong Liu <hong.liu at intel.com>
+Date: Wed, 15 Sep 2010 16:40:46 +0100
+Subject: [PATCH] apds9802als: fix als sensing range value
+
+The 4K and 64K in the hw spec acutally means 4095 (12bit) and 65535 (16bit).
+
+Signed-off-by: Hong Liu <hong.liu at intel.com>
+---
+ drivers/misc/apds9802als.c |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/misc/apds9802als.c b/drivers/misc/apds9802als.c
+index cfd004a..a55a215 100644
+--- a/drivers/misc/apds9802als.c
++++ b/drivers/misc/apds9802als.c
+@@ -55,9 +55,9 @@ static ssize_t als_sensing_range_show(struct device *dev,
+ 	if (val < 0)
+ 		return val;
+ 	if (val & 1)
+-		return sprintf(buf, "4000\n");
++		return sprintf(buf, "4095\n");
+ 	else
+-		return sprintf(buf, "64000\n");
++		return sprintf(buf, "65535\n");
+ }
+ 
+ static ssize_t als_lux_output_data_show(struct device *dev,
+@@ -111,7 +111,7 @@ static ssize_t als_sensing_range_store(struct device *dev,
+ 	/* Reset the bits before setting them */
+ 	ret_val = ret_val & 0xFA;
+ 
+-	if (val == 1) /* Setting the continous measurement up to 8k LUX */
++	if (val == 1) /* Setting the continous measurement up to 4k LUX */
+ 		ret_val = (ret_val | 0x05);
+ 	else /* Setting the continous measurement up to 64k LUX*/
+ 		ret_val = (ret_val | 0x04);
+-- 
+1.6.1.3
+

++++++ linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch (new)
--- linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+++ linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+From 40e6fc8653972d72e79324abe7764e00cce6365f Mon Sep 17 00:00:00 2001
+From: Priya Vijayan <priya.vijayan at intel.com>
+Date: Fri, 10 Sep 2010 16:40:46 -0700
+Subject: [PATCH] Fix broken build introduced by cy8ctmg110 multi-input patch
+
+Signed-off-by: James Ketrenos<jketreno at linux.intel.com>
+Signed-off-by: Priya Vijayan<priya.vijayan at intel.com>
+---
+ drivers/input/touchscreen/cy8ctmg110_ts.c |   58 +++++++++++++++++++---------
+ 1 files changed, 39 insertions(+), 19 deletions(-)
+
+diff --git a/drivers/input/touchscreen/cy8ctmg110_ts.c b/drivers/input/touchscreen/cy8ctmg110_ts.c
+index 9221d80..9885d06 100644
+--- a/drivers/input/touchscreen/cy8ctmg110_ts.c
++++ b/drivers/input/touchscreen/cy8ctmg110_ts.c
+@@ -311,37 +311,57 @@ static int cy8ctmg110_probe(struct i2c_client *client,
+ 		return -EIO;
+ 
+ 	ts = kzalloc(sizeof(struct cy8ctmg110), GFP_KERNEL);
+-	input_dev = input_allocate_device();
+ 
+-	if (!ts || !input_dev) {
+-		err = -ENOMEM;
++	if (!ts) {	
++	err = -ENOMEM;
+ 		goto err_free_mem;
+ 	}
+ 
+ 	ts->client = client;
+ 	i2c_set_clientdata(client, ts);
+-
+-	ts->input = input_dev;
+ 	ts->polling = polling;
+ 
+-	snprintf(ts->phys, sizeof(ts->phys), "%s/input0",
+-						dev_name(&client->dev));
++	spin_lock_init(&ts->lock);
++
++#ifdef CONFIG_TOUCHSCREEN_CY8CTMG110_MULTIPLE_INPUT
++       /* Allocate one input device per supported contact point */
++       for (contact = 0; contact<  MAX_FINGERS; contact++) {
++#endif
+ 
+-	input_dev->name = CY8CTMG110_DRIVER_NAME " Touchscreen";
+-	input_dev->phys = ts->phys;
+-	input_dev->id.bustype = BUS_I2C;
++        	input_dev = input_allocate_device();
++               if (!input_dev) {
++                       err = -ENOMEM;
++                       goto err_free_mem;
++        	}
+ 
+-	spin_lock_init(&ts->lock);
++#ifdef CONFIG_TOUCHSCREEN_CY8CTMG110_MULTIPLE_INPUT
++               ts->input[contact] = input_dev;
++               snprintf(ts->phys[contact], sizeof(ts->phys[contact]),
++                       "%s/input%d", dev_name(&client->dev), contact);
++               input_dev->phys = ts->phys[contact];
++#else
++               ts->input = input_dev;
++               snprintf(ts->phys, sizeof(ts->phys),
++                       "%s/input0", dev_name(&client->dev));
++               input_dev->phys = ts->phys;
++#endif
++	
++	       input_dev->name = CY8CTMG110_DRIVER_NAME " Touchscreen";
++	       input_dev->id.bustype = BUS_I2C;
+ 
+-	input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
+-	input_set_capability(input_dev, EV_ABS, ABS_X);
+-	input_set_capability(input_dev, EV_ABS, ABS_Y);
++	       input_set_capability(input_dev, EV_KEY, BTN_TOUCH);
++	       input_set_capability(input_dev, EV_ABS, ABS_X);
++	       input_set_capability(input_dev, EV_ABS, ABS_Y);
+ 
+-	/* Initialize these with 4 fuzz for jitter... */
+-	input_set_abs_params(input_dev, ABS_X, CY8CTMG110_X_MIN,
+-			     CY8CTMG110_X_MAX, 4, 0);
+-	input_set_abs_params(input_dev, ABS_Y, CY8CTMG110_Y_MIN,
+-			     CY8CTMG110_Y_MAX, 4, 0);
++               /* Initialize these with 4 fuzz for jitter... */
++               input_set_abs_params(input_dev, ABS_X, CY8CTMG110_X_MIN,
++                                    CY8CTMG110_X_MAX, 4, 0);
++               input_set_abs_params(input_dev, ABS_Y, CY8CTMG110_Y_MIN,
++                                    CY8CTMG110_Y_MAX, 4, 0);
++
++#ifdef CONFIG_TOUCHSCREEN_CY8CTMG110_MULTIPLE_INPUT
++       }
++#endif
+ 
+ 	err = gpio_request(CY8CTMG110_RESET_PIN_GPIO, NULL);
+ 
+-- 
+1.6.2.2
+

++++++ linux-2.6.35-lednames.patch (new)
--- linux-2.6.35-lednames.patch
+++ linux-2.6.35-lednames.patch
+Return-Path: <moblin-kernel-bounces at linux.intel.com>
+X-Original-To: arjan at linux.intel.com
+Delivered-To: arjan at linux.intel.com
+Received: from linux.intel.com (localhost.localdomain [127.0.0.1])
+	by linux.intel.com (Postfix) with ESMTP id 8A4AA3C0001;
+	Wed,  8 Sep 2010 21:44:07 -0700 (PDT)
+X-Original-To: moblin-kernel at linux.intel.com
+Delivered-To: moblin-kernel at localhost.localdomain
+Received: from azsmga001.ch.intel.com (azsmga001.ch.intel.com [10.2.17.19])
+	by linux.intel.com (Postfix) with ESMTP id 5DC743C0001;
+	Wed,  8 Sep 2010 21:44:06 -0700 (PDT)
+X-ExtLoop1: 1
+X-IronPort-AV: E=Sophos;i="4.56,337,1280732400"; d="scan'208";a="322548199"
+Received: from unknown (HELO localhost.localdomain) ([172.24.241.48])
+	by azsmga001.ch.intel.com with ESMTP; 08 Sep 2010 21:43:58 -0700
+From: jacob.jun.pan at linux.intel.com
+To: Moblin Kernel <moblin-kernel at linux.intel.com>,
+	Alan Cox <alan at linux.intel.com>
+Date: Wed,  8 Sep 2010 21:36:25 -0700
+Message-Id: <1284006985-32224-1-git-send-email-jacob.jun.pan at linux.intel.com>
+X-Mailer: git-send-email 1.7.0.4
+Cc: Jacob Pan <jacob.jun.pan at linux.intel.com>
+Subject: [Moblin-kernel] [PATCH] pca953x: assign unique led class name
+X-BeenThere: moblin-kernel at linux.intel.com
+X-Mailman-Version: 2.1.5
+Precedence: list
+List-Id: Moblin Kernel internal list <moblin-kernel.linux.intel.com>
+List-Unsubscribe: <http://linux.intel.com/mailman/listinfo/moblin-kernel>,
+	<mailto:moblin-kernel-request at linux.intel.com?subject=unsubscribe>
+List-Archive: <http://linux.intel.com/pipermail/moblin-kernel>
+List-Post: <mailto:moblin-kernel at linux.intel.com>
+List-Help: <mailto:moblin-kernel-request at linux.intel.com?subject=help>
+List-Subscribe: <http://linux.intel.com/mailman/listinfo/moblin-kernel>,
+	<mailto:moblin-kernel-request at linux.intel.com?subject=subscribe>
+Sender: moblin-kernel-bounces at linux.intel.com
+Errors-To: moblin-kernel-bounces at linux.intel.com
+
+From: Jacob Pan <jacob.jun.pan at linux.intel.com>
+
+Unique name must be used to register led class device for each chip.
+Otherwise, setup would fail which also affect devices use the i2c
+gpio expander, such as gpio keys.
+
+Signed-off-by: Jacob Pan <jacob.jun.pan at linux.intel.com>
+---
+ drivers/gpio/pca953x.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/gpio/pca953x.c b/drivers/gpio/pca953x.c
+index 3afff5f..d6da100 100644
+--- a/drivers/gpio/pca953x.c
++++ b/drivers/gpio/pca953x.c
+@@ -614,9 +614,10 @@ static int max7315_setup_leds(struct i2c_client *client,
+ 
+ 	for (i = 0; i < chip->leds_size; i++) {
+ 		struct max7315_led_data *led = &chip->leds[i];
++
+ 		led->client = client;
+ 		led->id = 2;
+-		led->name = "p2";
++		led->name = dev_name(&client->dev);
+ 
+ 		led->status = MAX7315_LED_STATUS_OFF;
+ 		led->ldev.name = led->name;
+-- 
+1.7.0.4
+
+_______________________________________________
+Moblin-kernel mailing list
+Moblin-kernel at linux.intel.com
+http://linux.intel.com/mailman/listinfo/moblin-kernel

++++++ linux-2.6.35-mrst-i2c-power-fix.patch (new)
--- linux-2.6.35-mrst-i2c-power-fix.patch
+++ linux-2.6.35-mrst-i2c-power-fix.patch
+Return-Path: <hong.liu at intel.com>
+X-Original-To: arjan at linux.intel.com
+Delivered-To: arjan at linux.intel.com
+Received: from orsmga002.jf.intel.com (orsmga002.jf.intel.com [10.7.209.21])
+	by linux.intel.com (Postfix) with ESMTP id 5CE6F6A4020;
+	Tue, 31 Aug 2010 00:13:07 -0700 (PDT)
+X-ExtLoop1: 1
+X-IronPort-AV: E=Sophos;i="4.56,297,1280732400"; 
+   d="scan'208";a="550287046"
+Received: from hongdev.sh.intel.com (HELO [10.239.77.244]) ([10.239.77.244])
+  by orsmga002.jf.intel.com with ESMTP; 31 Aug 2010 00:13:05 -0700
+Subject: [patch] mrst-i2c: fix runtime PM error
+From: Hong Liu <hong.liu at intel.com>
+To: Alan Cox <alan at linux.intel.com>, Arjan van de Ven <arjan at linux.intel.com>
+Cc: "Wang, Wen W" <wen.w.wang at intel.com>, "Zhang, Xiaolin" <xiaolin.zhang at intel.com>, moblin-kernel <moblin-kernel at linux.intel.com>
+Content-Type: text/plain; charset="UTF-8"
+Organization: Intel
+Date: Tue, 31 Aug 2010 15:15:53 +0800
+Message-ID: <1283238953.23216.29.camel at hongdev>
+Mime-Version: 1.0
+X-Mailer: Evolution 2.28.3 (2.28.3-1.fc12) 
+Content-Transfer-Encoding: 7bit
+
+mrst-i2c: fix runtime PM error
+
+The runtime PM code is working on the wrong device (i2c_adapter->dev).
+The correct one should be pci_dev->dev. This breaks attached i2c
+slave devices with runtime PM enabled. Slave device needs to runtime
+resume parent device before runtime resuming itself, but we always get
+error since we don't have pm_runtime callback for i2c_adapter->dev.
+
+Signed-off-by: Hong Liu <hong.liu at intel.com>
+---
+ drivers/i2c/busses/i2c-mrst.c |   25 +++++++++++++------------
+ drivers/i2c/busses/i2c-mrst.h |    1 +
+ 2 files changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-mrst.c b/drivers/i2c/busses/i2c-mrst.c
+index e17388d..75963a0 100644
+--- a/drivers/i2c/busses/i2c-mrst.c
++++ b/drivers/i2c/busses/i2c-mrst.c
+@@ -507,7 +507,7 @@ static int mrst_i2c_xfer(struct i2c_adapter *adap,
+ 	    (struct mrst_i2c_private *)i2c_get_adapdata(adap);
+ 	int i, err;
+ 
+-	pm_runtime_get(&adap->dev);
++	pm_runtime_get(i2c->dev);
+ 
+ 	mutex_lock(&i2c->lock);
+ 	dev_dbg(&adap->dev, "mrst_i2c_xfer, process %d msg(s)\n", num);
+@@ -517,14 +517,14 @@ static int mrst_i2c_xfer(struct i2c_adapter *adap,
+ 		dev_err(&adap->dev, "Adapter %d in transfer/standby\n",
+ 			adap->nr);
+ 		mutex_unlock(&i2c->lock);
+-		pm_runtime_put(&adap->dev);
++		pm_runtime_put(i2c->dev);
+ 		return -1;
+ 	}
+ 
+ 	/* if number of messages equal 0*/
+ 	if (num == 0) {
+ 		mutex_unlock(&i2c->lock);
+-		pm_runtime_put(&adap->dev);
++		pm_runtime_put(i2c->dev);
+ 		return 0;
+ 	}
+ 
+@@ -533,7 +533,7 @@ static int mrst_i2c_xfer(struct i2c_adapter *adap,
+ 		dev_err(&adap->dev, "Invalid address 0x%03x (%d-bit)\n",
+ 			pmsg[0].addr, pmsg[0].flags & I2C_M_TEN ? 10 : 7);
+ 		mutex_unlock(&i2c->lock);
+-		pm_runtime_put(&adap->dev);
++		pm_runtime_put(i2c->dev);
+ 		return -EINVAL;
+ 	}
+ 	for (i = 0; i < num; i++) {
+@@ -541,14 +541,14 @@ static int mrst_i2c_xfer(struct i2c_adapter *adap,
+ 		if (unlikely(mrst_i2c_address_neq(&pmsg[0], &pmsg[i]))) {
+ 			dev_err(&adap->dev, "Invalid address in msg[%d]\n", i);
+ 			mutex_unlock(&i2c->lock);
+-			pm_runtime_put(&adap->dev);
++			pm_runtime_put(i2c->dev);
+ 			return -EINVAL;
+ 		}
+ 	}
+ 
+ 	if (mrst_i2c_setup(adap, pmsg)) {
+ 		mutex_unlock(&i2c->lock);
+-		pm_runtime_put(&adap->dev);
++		pm_runtime_put(i2c->dev);
+ 		return -EINVAL;
+ 	}
+ 
+@@ -588,7 +588,7 @@ exit:
+ 
+ 	i2c->status = STATUS_IDLE;
+ 	mutex_unlock(&i2c->lock);
+-	pm_runtime_put(&adap->dev);
++	pm_runtime_put(i2c->dev);
+ 
+ 	return i;
+ }
+@@ -648,9 +648,9 @@ static int mrst_i2c_resume(struct pci_dev *dev)
+ 
+ static int mrst_i2c_runtime_suspend(struct device *dev)
+ {
+-	struct i2c_adapter *adap = to_i2c_adapter(dev);
++	struct pci_dev *pdev = to_pci_dev(dev);
+ 	int err = 0;
+-	adap = adap;
++	pdev = pdev;
+ 	/* Doing nothing now */
+ 
+ 	return err;
+@@ -658,9 +658,9 @@ static int mrst_i2c_runtime_suspend(struct device *dev)
+ 
+ static int mrst_i2c_runtime_resume(struct device *dev)
+ {
+-	struct i2c_adapter *adap = to_i2c_adapter(dev);
++	struct pci_dev *pdev = to_pci_dev(dev);
+ 	int err = 0;
+-	adap = adap;
++	pdev = pdev;
+ 
+ 	/* Doing nothing now */
+ 
+@@ -868,6 +868,7 @@ static int __devinit mrst_i2c_probe(struct pci_dev *dev,
+ 	adap->class = I2C_CLASS_HWMON;
+ 	adap->dev.parent = &dev->dev;
+ 	mrst->adap = adap;
++	mrst->dev = &dev->dev;
+ 	mrst->base = base;
+ 	mrst->speed = STANDARD;
+ 	mrst->abort = 0;
+@@ -925,7 +926,7 @@ static int __devinit mrst_i2c_probe(struct pci_dev *dev,
+ 		(mrst->platform == MOORESTOWN) ? "Moorestown" : "Medfield",
+ 		busnum);
+ 
+-	pm_runtime_enable(&adap->dev);
++	pm_runtime_enable(&dev->dev);
+ 	return 0;
+ 
+ fail4:
+diff --git a/drivers/i2c/busses/i2c-mrst.h b/drivers/i2c/busses/i2c-mrst.h
+index b20bc60..eaf79eb 100644
+--- a/drivers/i2c/busses/i2c-mrst.h
++++ b/drivers/i2c/busses/i2c-mrst.h
+@@ -26,6 +26,7 @@ enum platform_enum {
+ 
+ struct mrst_i2c_private {
+ 	struct i2c_adapter *adap;
++	struct device *dev;
+ 	/* Register base address */
+ 	void __iomem *base;
+ 	/* Speed mode */
+-- 
+1.7.2.2
+
+

++++++ linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch (new)
--- linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+++ linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+From e29ad526764eafbddba98af6609c3c46bc93fb61 Mon Sep 17 00:00:00 2001
+From: Alan Cox <alan at linux.intel.com>
+Date: Wed, 15 Sep 2010 16:40:44 +0100
+Subject: [PATCH] mrst_max3110: Make the IRQ option runtime
+
+And while we are at it allow it to fail to find one. Without this the IRQ
+option will cause the 3110 driver to fail on 0.7 SFI firmware.
+
+Signed-off-by: Alan Cox <alan at linux.intel.com>
+---
+ drivers/serial/Kconfig        |    7 -----
+ drivers/serial/mrst_max3110.c |   55 +++++++++++++++++++++--------------------
+ 2 files changed, 28 insertions(+), 34 deletions(-)
+
+diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
+index 8327a74..f139dd7 100644
+--- a/drivers/serial/Kconfig
++++ b/drivers/serial/Kconfig
+@@ -717,13 +717,6 @@ config SERIAL_MRST_MAX3110
+ 	  the Intel Moorestown platform. On other systems use the max3100
+ 	  driver.
+ 
+-config MRST_MAX3110_IRQ
+-	boolean "Enable GPIO IRQ for Max3110 over Moorestown"
+-	default n
+-	depends on SERIAL_MRST_MAX3110 && GPIO_LANGWELL
+-	help
+-	  This has to be enabled after Moorestown GPIO driver is loaded
+-
+ config SERIAL_MFD_HSU
+ 	tristate "Medfield High Speed UART support"
+ 	depends on PCI
+diff --git a/drivers/serial/mrst_max3110.c b/drivers/serial/mrst_max3110.c
+index 880dce3..bae2697 100644
+--- a/drivers/serial/mrst_max3110.c
++++ b/drivers/serial/mrst_max3110.c
+@@ -446,7 +446,6 @@ static int max3110_main_thread(void *_max)
+ 	return ret;
+ }
+ 
+-#ifdef CONFIG_MRST_MAX3110_IRQ
+ static irqreturn_t serial_m3110_irq(int irq, void *dev_id)
+ {
+ 	struct uart_max3110 *max = dev_id;
+@@ -458,7 +457,7 @@ static irqreturn_t serial_m3110_irq(int irq, void *dev_id)
+ 
+ 	return IRQ_HANDLED;
+ }
+-#else
++
+ /* if don't use RX IRQ, then need a thread to polling read */
+ static int max3110_read_thread(void *_max)
+ {
+@@ -481,7 +480,6 @@ static int max3110_read_thread(void *_max)
+ 
+ 	return 0;
+ }
+-#endif
+ 
+ static int serial_m3110_startup(struct uart_port *port)
+ {
+@@ -504,34 +502,38 @@ static int serial_m3110_startup(struct uart_port *port)
+ 	/* as we use thread to handle tx/rx, need set low latency */
+ 	port->state->port.tty->low_latency = 1;
+ 
+-#ifdef CONFIG_MRST_MAX3110_IRQ
+-	ret = request_irq(max->irq, serial_m3110_irq,
++	if (max->irq) {
++		max->read_thread = NULL;
++		ret = request_irq(max->irq, serial_m3110_irq,
+ 				IRQ_TYPE_EDGE_FALLING, "max3110", max);
+-	if (ret)
+-		return ret;
++		if (ret) {
++			max->irq = 0;
++			pr_err(PR_FMT "unable to allocate IRQ, polling\n");
++		}  else {
++			/* Enable RX IRQ only */
++			config |= WC_RXA_IRQ_ENABLE;
++		}
++	}
+ 
+-	/* Enable RX IRQ only */
+-	config |= WC_RXA_IRQ_ENABLE;
+-#else
+-	/* If IRQ is disabled, start a read thread for input data */
+-	max->read_thread =
+-		kthread_run(max3110_read_thread, max, "max3110_read");
+-	if (IS_ERR(max->read_thread)) {
+-		ret = PTR_ERR(max->read_thread);
+-		max->read_thread = NULL;
+-		pr_err(PR_FMT "Can't create read thread!");
+-		return ret;
++	if (max->irq == 0) {
++		/* If IRQ is disabled, start a read thread for input data */
++		max->read_thread =
++			kthread_run(max3110_read_thread, max, "max3110_read");
++		if (IS_ERR(max->read_thread)) {
++			ret = PTR_ERR(max->read_thread);
++			max->read_thread = NULL;
++			pr_err(PR_FMT "Can't create read thread!\n");
++			return ret;
++		}
+ 	}
+-#endif
+ 
+ 	ret = max3110_out(max, config);
+ 	if (ret) {
+-#ifdef CONFIG_MRST_MAX3110_IRQ
+-		free_irq(max->irq, max);
+-#else
+-		kthread_stop(max->read_thread);
++		if (max->irq)
++			free_irq(max->irq, max);
++		if (max->read_thread)
++			kthread_stop(max->read_thread);
+ 		max->read_thread = NULL;
+-#endif
+ 		return ret;
+ 	}
+ 
+@@ -550,9 +552,8 @@ static void serial_m3110_shutdown(struct uart_port *port)
+ 		max->read_thread = NULL;
+ 	}
+ 
+-#ifdef CONFIG_MRST_MAX3110_IRQ
+-	free_irq(max->irq, max);
+-#endif
++	if (max->irq)
++		free_irq(max->irq, max);
+ 
+ 	/* Disable interrupts from this port */
+ 	config = WC_TAG | WC_SW_SHDI;
+-- 
+1.6.1.3
+

++++++ linux-2.6.35-stable-cherry-picks.patch (new)
--- linux-2.6.35-stable-cherry-picks.patch
+++ linux-2.6.35-stable-cherry-picks.patch
+diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h
+index 9dcb11e..bf62c44 100644
+--- a/arch/arm/include/asm/ptrace.h
++++ b/arch/arm/include/asm/ptrace.h
+@@ -158,15 +158,24 @@ struct pt_regs {
+  */
+ static inline int valid_user_regs(struct pt_regs *regs)
+ {
+-	if (user_mode(regs) && (regs->ARM_cpsr & PSR_I_BIT) == 0) {
+-		regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT);
+-		return 1;
++	unsigned long mode = regs->ARM_cpsr & MODE_MASK;
++
++	/*
++	 * Always clear the F (FIQ) and A (delayed abort) bits
++	 */
++	regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT);
++
++	if ((regs->ARM_cpsr & PSR_I_BIT) == 0) {
++		if (mode == USR_MODE)
++			return 1;
++		if (elf_hwcap & HWCAP_26BIT && mode == USR26_MODE)
++			return 1;
+ 	}
+ 
+ 	/*
+ 	 * Force CPSR to something logical...
+ 	 */
+-	regs->ARM_cpsr &= PSR_f | PSR_s | (PSR_x & ~PSR_A_BIT) | PSR_T_BIT | MODE32_BIT;
++	regs->ARM_cpsr &= PSR_f | PSR_s | PSR_x | PSR_T_BIT | MODE32_BIT;
+ 	if (!(elf_hwcap & HWCAP_26BIT))
+ 		regs->ARM_cpsr |= USR_MODE;
+ 
+diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
+index 827cbc4..ea9ee4e 100644
+--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
++++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
+@@ -100,6 +100,7 @@ ixdp425_flash_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, unsigned int ctrl)
+ 
+ static struct platform_nand_data ixdp425_flash_nand_data = {
+ 	.chip = {
++		.nr_chips		= 1,
+ 		.chip_delay		= 30,
+ 		.options		= NAND_NO_AUTOINCR,
+ #ifdef CONFIG_MTD_PARTITIONS
+diff --git a/arch/arm/mach-mx3/mach-qong.c b/arch/arm/mach-mx3/mach-qong.c
+index e5b5b83..1f9363f 100644
+--- a/arch/arm/mach-mx3/mach-qong.c
++++ b/arch/arm/mach-mx3/mach-qong.c
+@@ -169,6 +169,7 @@ static void qong_nand_select_chip(struct mtd_info *mtd, int chip)
+ 
+ static struct platform_nand_data qong_nand_data = {
+ 	.chip = {
++		.nr_chips		= 1,
+ 		.chip_delay		= 20,
+ 		.options		= 0,
+ 	},
+diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c
+index 5041d1b..696b1a9 100644
+--- a/arch/arm/mach-orion5x/ts78xx-setup.c
++++ b/arch/arm/mach-orion5x/ts78xx-setup.c
+@@ -216,6 +216,7 @@ static struct mtd_partition ts78xx_ts_nand_parts[] = {
+ 
+ static struct platform_nand_data ts78xx_ts_nand_data = {
+ 	.chip	= {
++		.nr_chips		= 1,
+ 		.part_probe_types	= ts_nand_part_probes,
+ 		.partitions		= ts78xx_ts_nand_parts,
+ 		.nr_partitions		= ARRAY_SIZE(ts78xx_ts_nand_parts),
+diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
+index 9eaf5b0..68a27bc 100644
+--- a/arch/blackfin/mach-bf537/boards/stamp.c
++++ b/arch/blackfin/mach-bf537/boards/stamp.c
+@@ -400,6 +400,7 @@ static int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
+ 
+ static struct platform_nand_data bfin_plat_nand_data = {
+ 	.chip = {
++		.nr_chips = 1,
+ 		.chip_delay = 30,
+ #ifdef CONFIG_MTD_PARTITIONS
+ 		.part_probe_types = part_probes,
+diff --git a/arch/blackfin/mach-bf561/boards/acvilon.c b/arch/blackfin/mach-bf561/boards/acvilon.c
+index bfcfa86..35b6d12 100644
+--- a/arch/blackfin/mach-bf561/boards/acvilon.c
++++ b/arch/blackfin/mach-bf561/boards/acvilon.c
+@@ -284,6 +284,7 @@ static int bfin_plat_nand_dev_ready(struct mtd_info *mtd)
+ 
+ static struct platform_nand_data bfin_plat_nand_data = {
+ 	.chip = {
++		 .nr_chips = 1,
+ 		 .chip_delay = 30,
+ #ifdef CONFIG_MTD_PARTITIONS
+ 		 .part_probe_types = part_probes,
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index dcb0593..f942bb7 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -247,6 +247,11 @@ config ARCH_HWEIGHT_CFLAGS
+ 
+ config KTIME_SCALAR
+ 	def_bool X86_32
++
++config ARCH_CPU_PROBE_RELEASE
++	def_bool y
++	depends on HOTPLUG_CPU
++
+ source "init/Kconfig"
+ source "kernel/Kconfig.freezer"
+ 
+diff --git a/arch/x86/include/asm/cmpxchg_32.h b/arch/x86/include/asm/cmpxchg_32.h
+index c1cf59d..20955ea 100644
+--- a/arch/x86/include/asm/cmpxchg_32.h
++++ b/arch/x86/include/asm/cmpxchg_32.h
+@@ -53,60 +53,33 @@ struct __xchg_dummy {
+ 	__xchg((v), (ptr), sizeof(*ptr))
+ 
+ /*
+- * The semantics of XCHGCMP8B are a bit strange, this is why
+- * there is a loop and the loading of %%eax and %%edx has to
+- * be inside. This inlines well in most cases, the cached
+- * cost is around ~38 cycles. (in the future we might want
+- * to do an SIMD/3DNOW!/MMX/FPU 64-bit store here, but that
+- * might have an implicit FPU-save as a cost, so it's not
+- * clear which path to go.)
++ * CMPXCHG8B only writes to the target if we had the previous
++ * value in registers, otherwise it acts as a read and gives us the
++ * "new previous" value.  That is why there is a loop.  Preloading
++ * EDX:EAX is a performance optimization: in the common case it means
++ * we need only one locked operation.
+  *
+- * cmpxchg8b must be used with the lock prefix here to allow
+- * the instruction to be executed atomically, see page 3-102
+- * of the instruction set reference 24319102.pdf. We need
+- * the reader side to see the coherent 64bit value.
++ * A SIMD/3DNOW!/MMX/FPU 64-bit store here would require at the very
++ * least an FPU save and/or %cr0.ts manipulation.
++ *
++ * cmpxchg8b must be used with the lock prefix here to allow the
++ * instruction to be executed atomically.  We need to have the reader
++ * side to see the coherent 64bit value.
+  */
+-static inline void __set_64bit(unsigned long long *ptr,
+-			       unsigned int low, unsigned int high)
++static inline void set_64bit(volatile u64 *ptr, u64 value)
+ {
++	u32 low  = value;
++	u32 high = value >> 32;
++	u64 prev = *ptr;
++
+ 	asm volatile("\n1:\t"
+-		     "movl (%1), %%eax\n\t"
+-		     "movl 4(%1), %%edx\n\t"
+-		     LOCK_PREFIX "cmpxchg8b (%1)\n\t"
++		     LOCK_PREFIX "cmpxchg8b %0\n\t"
+ 		     "jnz 1b"
+-		     : "=m" (*ptr)
+-		     : "D" (ptr),
+-		       "b" (low),
+-		       "c" (high)
+-		     : "ax", "dx", "memory");
+-}
+-
+-static inline void __set_64bit_constant(unsigned long long *ptr,
+-					unsigned long long value)
+-{
+-	__set_64bit(ptr, (unsigned int)value, (unsigned int)(value >> 32));
+-}
+-
+-#define ll_low(x)	*(((unsigned int *)&(x)) + 0)
+-#define ll_high(x)	*(((unsigned int *)&(x)) + 1)
+-
+-static inline void __set_64bit_var(unsigned long long *ptr,
+-				   unsigned long long value)
+-{
+-	__set_64bit(ptr, ll_low(value), ll_high(value));
++		     : "=m" (*ptr), "+A" (prev)
++		     : "b" (low), "c" (high)
++		     : "memory");
+ }
+ 
+-#define set_64bit(ptr, value)			\
+-	(__builtin_constant_p((value))		\
+-	 ? __set_64bit_constant((ptr), (value))	\
+-	 : __set_64bit_var((ptr), (value)))
+-
+-#define _set_64bit(ptr, value)						\
+-	(__builtin_constant_p(value)					\
+-	 ? __set_64bit(ptr, (unsigned int)(value),			\
+-		       (unsigned int)((value) >> 32))			\
+-	 : __set_64bit(ptr, ll_low((value)), ll_high((value))))
+-
+ extern void __cmpxchg_wrong_size(void);
+ 
+ /*
+diff --git a/arch/x86/include/asm/cmpxchg_64.h b/arch/x86/include/asm/cmpxchg_64.h
+index b92f147..9596e7c 100644
+--- a/arch/x86/include/asm/cmpxchg_64.h
++++ b/arch/x86/include/asm/cmpxchg_64.h
(4091 more lines skipped)

++++++ series
--- series
+++ series
@@ -9,6 +9,7 @@
 
 patch-2.6.35.3.bz2
 
+
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
@@ -32,6 +33,10 @@
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
 
+# cherry picking the important security/corruption fixes from
+# the stable series
+
+linux-2.6.35-stable-cherry-picks.patch
 
 #
 # End of the Direct Backports section
@@ -59,6 +64,17 @@
 linux-2.6.35-aava-firmware-workaround-wifi.patch
 linux-2.6.35-make-gma600-work-on-IA.patch
 linux-2.6.35-mrst-rtc.patch
+linux-2.6.35-Add-MIP-header-update-when-FW-is-upgraded.patch
+linux-2.6.35-Bug-fix-for-camera-flash-IC-not-found.patch
+linux-2.6.35-DMA-driver-Add-runtime-PM.patch
+linux-2.6.35-Fix-loadfw.patch
+linux-2.6.35-Subject-Moblin-kernel-MeeGo-AC-Tree-CI-add-supp.patch
+linux-2.6.35-apds9802als-fix-als-sensing-range-value.patch
+linux-2.6.35-mrst_max3110-Make-the-IRQ-option-runtime.patch
+linux-2.6.35-lednames.patch
+linux-2.6.35-mrst-i2c-power-fix.patch
+linux-2.6.35-fix-build-for-cy8ctmg110-driver.patch
+
 
 #
 # End of the Moorsetown architecture patches
@@ -97,11 +113,11 @@
 # Cellular modem support
 linux-2.6-n900-modem-support.patch
 # Fix wl1251 scanning while associated
-linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
+# linux-2.6.36-wl1251-fix-trigger-scan-timeout-usage.patch
 # Introduce EEM support in g_nokia which should fix usb networking
 linux-2.6.37-EEM-support-for-g_nokia.patch
-# omap3camera driver
-#linux-2.6-omap3camera.patch
+# omap3isp-rx51 driver
+linux-2.6-omap3isp-rx51.patch
 # TI dspbridge driver
 linux-2.6.36-tidspbridge.patch
 # lp5523 platform data for rx51 board
@@ -109,7 +125,7 @@
 # usb charger platform device support
 linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
 # isp1704 usb charger detection driver
-linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches

++++++ deleted files:
--- linux-2.6-omap3camera.patch
--- linux-2.6.35-ac-2010-08-03.patch
--- linux-2.6.35-ac-2010-08-04.patch
--- linux-2.6.35-ac-2010-08-09.patch
--- linux-2.6.35-ac-fixups.patch
--- linux-2.6.35-phylib-Support-phy-module-autoloading.patch
--- linux-2.6.35-rc6-arm-buildgoof.patch
--- linux-2.6.37-leds-Add-lp5523-led-driver.patch




More information about the MeeGo-commits mailing list