[meego-commits] 6966: Changes to Trunk:Testing/kernel

Arjan van de Ven arjan at linux.intel.com
Tue Aug 24 20:38:12 UTC 2010


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

Thank You,
Arjan van de Ven

[This message was auto-generated]

---

Request #6966:

  submit:   devel:kernel/kernel(r148) -> Trunk:Testing/kernel


Message:
    last-but-one kernel before feature freeze; one more tomorrow but this one should get wider QA already

State:   new          2010-08-24T08:28:02 arjan
Comment: None



changes files:
--------------
--- kernel.changes
+++ kernel.changes
@@ -0,0 +1,25 @@
+* Tue Aug 24 2010 Arjan van de Ven <arjan at linux.intel.com> - 2.6.35.3
+- updated AC patch
+  - Added medfield thermal sensors
+  - various null pointer checks all over
+  - power management for the i2c driver
+  - improved/unified keypad driver
+  - Added Intersil ISL29015 ambient light & proximity sensor
+  - Added Rohm BH1770GLC ambient light and proximity sensor
+  - Add power management to the apds9802ps driver
+  - GMA600 driver update
+  - DMA driver update
+- fix the USB power limit to be 500mW on Moorestown
+
+* Mon Aug 23 2010 Arjan van de Ven <arjan at linux.intel.com> - 2.6.35.3
+- backport a patch from Matthew Garrett to solve battery units
+
+* Fri Aug 20 2010 Arjan van de Ven <arjan at linux.intel.com> - 2.6.35.3
+- 2.6.35.3 kernel which includes the hotfix
+
+* Fri Aug 20 2010 Ameya Palande <ameya.palande at nokia.com> - 2.6.35.2
+- N900: Add usb wall charger detection support
+
+* Thu Aug 19 2010 Yin Kangkai <kangkai.yin at intel.com> - 2.6.35.2
+- Integrate patch to fix unprotected access to task credential, fix BMC #5110
+

old:
----
  linux-2.6.35.2-hotfix.patch
  patch-2.6.35.2.bz2

new:
----
  linux-2.6.35-ac-2010-08-24.patch
  linux-2.6.35-mrst-rtc.patch
  linux-2.6.36-battery.patch
  linux-2.6.36-battery2.patch
  linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
  linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
  linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
  patch-2.6.35.3.bz2

spec files:
-----------
--- kernel-ivi.spec
+++ kernel-ivi.spec
@@ -22,7 +22,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 2
+%define stable_update 3
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}
@@ -162,14 +162,13 @@
 # Stable patch - critical bugfixes
 #
 
-Patch1: patch-2.6.35.2.bz2
-Patch2: linux-2.6.35.2-hotfix.patch
+Patch1: patch-2.6.35.3.bz2
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
-Patch3: linux-2.6-build-nonintconfig.patch
+Patch2: linux-2.6-build-nonintconfig.patch
 
 
 
@@ -181,8 +180,9 @@
 # kernels.
 #
 
-
-
+Patch100: linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+Patch101: linux-2.6.36-battery.patch
+Patch102: linux-2.6.36-battery2.patch
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -262,6 +262,10 @@
 Patch315: linux-2.6.37-leds-Add-lp5523-led-driver.patch
 # lp5523 platform data for rx51 board
 Patch316: linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
+# usb charger platform device support
+Patch317: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+# isp1704 usb charger detection driver
+Patch318: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -517,17 +521,15 @@
 # Stable patch - critical bugfixes
 #
 
-# patch-2.6.35.2.bz2
+# patch-2.6.35.3.bz2
 %patch1 -p1
-# linux-2.6.35.2-hotfix.patch
-%patch2 -p1
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
 # linux-2.6-build-nonintconfig.patch
-%patch3 -p1
+%patch2 -p1
 
 
 
@@ -539,8 +541,12 @@
 # kernels.
 #
 
-
-
+# linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+%patch100 -p1
+# linux-2.6.36-battery.patch
+%patch101 -p1
+# linux-2.6.36-battery2.patch
+%patch102 -p1
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -643,6 +649,12 @@
 # lp5523 platform data for rx51 board
 # linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
 %patch316 -p1
+# usb charger platform device support
+# linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+%patch317 -p1
+# isp1704 usb charger detection driver
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+%patch318 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel-mrst.spec
+++ kernel-mrst.spec
@@ -22,7 +22,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 2
+%define stable_update 3
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}
@@ -163,14 +163,13 @@
 # Stable patch - critical bugfixes
 #
 
-Patch1: patch-2.6.35.2.bz2
-Patch2: linux-2.6.35.2-hotfix.patch
+Patch1: patch-2.6.35.3.bz2
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
-Patch3: linux-2.6-build-nonintconfig.patch
+Patch2: linux-2.6-build-nonintconfig.patch
 
 
 
@@ -182,8 +181,9 @@
 # kernels.
 #
 
-
-
+Patch100: linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+Patch101: linux-2.6.36-battery.patch
+Patch102: linux-2.6.36-battery2.patch
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -263,6 +263,10 @@
 Patch315: linux-2.6.37-leds-Add-lp5523-led-driver.patch
 # lp5523 platform data for rx51 board
 Patch316: linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
+# usb charger platform device support
+Patch317: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+# isp1704 usb charger detection driver
+Patch318: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -518,17 +522,15 @@
 # Stable patch - critical bugfixes
 #
 
-# patch-2.6.35.2.bz2
+# patch-2.6.35.3.bz2
 %patch1 -p1
-# linux-2.6.35.2-hotfix.patch
-%patch2 -p1
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
 # linux-2.6-build-nonintconfig.patch
-%patch3 -p1
+%patch2 -p1
 
 
 
@@ -540,8 +542,12 @@
 # kernels.
 #
 
-
-
+# linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+%patch100 -p1
+# linux-2.6.36-battery.patch
+%patch101 -p1
+# linux-2.6.36-battery2.patch
+%patch102 -p1
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -644,6 +650,12 @@
 # lp5523 platform data for rx51 board
 # linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
 %patch316 -p1
+# usb charger platform device support
+# linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+%patch317 -p1
+# isp1704 usb charger detection driver
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+%patch318 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel-n900.spec
+++ kernel-n900.spec
@@ -22,7 +22,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 2
+%define stable_update 3
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}
@@ -162,14 +162,13 @@
 # Stable patch - critical bugfixes
 #
 
-Patch1: patch-2.6.35.2.bz2
-Patch2: linux-2.6.35.2-hotfix.patch
+Patch1: patch-2.6.35.3.bz2
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
-Patch3: linux-2.6-build-nonintconfig.patch
+Patch2: linux-2.6-build-nonintconfig.patch
 
 
 
@@ -181,8 +180,9 @@
 # kernels.
 #
 
-
-
+Patch100: linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+Patch101: linux-2.6.36-battery.patch
+Patch102: linux-2.6.36-battery2.patch
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -262,6 +262,10 @@
 Patch315: linux-2.6.37-leds-Add-lp5523-led-driver.patch
 # lp5523 platform data for rx51 board
 Patch316: linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
+# usb charger platform device support
+Patch317: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+# isp1704 usb charger detection driver
+Patch318: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -517,17 +521,15 @@
 # Stable patch - critical bugfixes
 #
 
-# patch-2.6.35.2.bz2
+# patch-2.6.35.3.bz2
 %patch1 -p1
-# linux-2.6.35.2-hotfix.patch
-%patch2 -p1
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
 # linux-2.6-build-nonintconfig.patch
-%patch3 -p1
+%patch2 -p1
 
 
 
@@ -539,8 +541,12 @@
 # kernels.
 #
 
-
-
+# linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+%patch100 -p1
+# linux-2.6.36-battery.patch
+%patch101 -p1
+# linux-2.6.36-battery2.patch
+%patch102 -p1
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -643,6 +649,12 @@
 # lp5523 platform data for rx51 board
 # linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
 %patch316 -p1
+# usb charger platform device support
+# linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+%patch317 -p1
+# isp1704 usb charger detection driver
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+%patch318 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel-netbook.spec
+++ kernel-netbook.spec
@@ -22,7 +22,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 2
+%define stable_update 3
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}
@@ -117,7 +117,7 @@
 License: GPLv2
 URL: http://www.kernel.org/
 Version: %{rpmversion}
-Release: 5
+Release: 6
 
 %kernel_reqprovconf
 
@@ -162,14 +162,13 @@
 # Stable patch - critical bugfixes
 #
 
-Patch1: patch-2.6.35.2.bz2
-Patch2: linux-2.6.35.2-hotfix.patch
+Patch1: patch-2.6.35.3.bz2
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
-Patch3: linux-2.6-build-nonintconfig.patch
+Patch2: linux-2.6-build-nonintconfig.patch
 
 
 
@@ -181,8 +180,9 @@
 # kernels.
 #
 
-
-
+Patch100: linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+Patch101: linux-2.6.36-battery.patch
+Patch102: linux-2.6.36-battery2.patch
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -262,6 +262,10 @@
 Patch315: linux-2.6.37-leds-Add-lp5523-led-driver.patch
 # lp5523 platform data for rx51 board
 Patch316: linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
+# usb charger platform device support
+Patch317: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+# isp1704 usb charger detection driver
+Patch318: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -517,17 +521,15 @@
 # Stable patch - critical bugfixes
 #
 
-# patch-2.6.35.2.bz2
+# patch-2.6.35.3.bz2
 %patch1 -p1
-# linux-2.6.35.2-hotfix.patch
-%patch2 -p1
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
 # linux-2.6-build-nonintconfig.patch
-%patch3 -p1
+%patch2 -p1
 
 
 
@@ -539,8 +541,12 @@
 # kernels.
 #
 
-
-
+# linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+%patch100 -p1
+# linux-2.6.36-battery.patch
+%patch101 -p1
+# linux-2.6.36-battery2.patch
+%patch102 -p1
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -643,6 +649,12 @@
 # lp5523 platform data for rx51 board
 # linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
 %patch316 -p1
+# usb charger platform device support
+# linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+%patch317 -p1
+# isp1704 usb charger detection driver
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+%patch318 -p1
 
 #
 # End of the Nokia N900 patches
--- kernel.spec
+++ kernel.spec
@@ -22,7 +22,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 2
+%define stable_update 3
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}
@@ -174,14 +174,13 @@
 # Stable patch - critical bugfixes
 #
 
-Patch1: patch-2.6.35.2.bz2
-Patch2: linux-2.6.35.2-hotfix.patch
+Patch1: patch-2.6.35.3.bz2
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
-Patch3: linux-2.6-build-nonintconfig.patch
+Patch2: linux-2.6-build-nonintconfig.patch
 
 
 
@@ -193,8 +192,9 @@
 # kernels.
 #
 
-
-
+Patch100: linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+Patch101: linux-2.6.36-battery.patch
+Patch102: linux-2.6.36-battery2.patch
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -274,6 +274,10 @@
 Patch315: linux-2.6.37-leds-Add-lp5523-led-driver.patch
 # lp5523 platform data for rx51 board
 Patch316: linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
+# usb charger platform device support
+Patch317: linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+# isp1704 usb charger detection driver
+Patch318: linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
 
 #
 # End of the Nokia N900 patches
@@ -559,17 +563,15 @@
 # Stable patch - critical bugfixes
 #
 
-# patch-2.6.35.2.bz2
+# patch-2.6.35.3.bz2
 %patch1 -p1
-# linux-2.6.35.2-hotfix.patch
-%patch2 -p1
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
 # needed for unattended builds
 #
 # linux-2.6-build-nonintconfig.patch
-%patch3 -p1
+%patch2 -p1
 
 
 
@@ -581,8 +583,12 @@
 # kernels.
 #
 
-
-
+# linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+%patch100 -p1
+# linux-2.6.36-battery.patch
+%patch101 -p1
+# linux-2.6.36-battery2.patch
+%patch102 -p1
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -685,6 +691,12 @@
 # lp5523 platform data for rx51 board
 # linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
 %patch316 -p1
+# usb charger platform device support
+# linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+%patch317 -p1
+# isp1704 usb charger detection driver
+# linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+%patch318 -p1
 
 #
 # End of the Nokia N900 patches

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

++++++ config-arm-generic
--- config-arm-generic
+++ config-arm-generic
@@ -483,7 +483,6 @@
 #
 # AC97 GPIO expanders:
 #
-# CONFIG_POWER_SUPPLY is not set
 # CONFIG_HWMON is not set
 # CONFIG_THERMAL is not set
 CONFIG_WATCHDOG=y

++++++ config-arm-n900
--- config-arm-n900
+++ config-arm-n900
@@ -491,3 +491,6 @@
 # CONFIG_LEDS_REGULATOR is not set
 CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_TRIGGER_GPIO=m
+
+CONFIG_POWER_SUPPLY=m
+CONFIG_CHARGER_ISP1704=m

++++++ config-generic
--- config-generic
+++ config-generic
@@ -3541,3 +3541,4 @@
 # CONFIG_VIDEO_SMIAREGS is not set
 CONFIG_CRYPTO_MANAGER_TESTS=y
 # CONFIG_LEDS_LP5523 is not set
+# CONFIG_CHARGER_ISP1704 is not set

++++++ config-mrst
--- config-mrst
+++ config-mrst
@@ -23,7 +23,7 @@
 CONFIG_USB_OTG=y
 # CONFIG_USB_EHCI_TT_NEWSCHED is not set
 CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_VBUS_DRAW=500
 CONFIG_USB_GADGET_SELECTED=y
 CONFIG_USB_GADGET_LANGWELL=y
 CONFIG_USB_LANGWELL=y

++++++ kernel.spec.in
--- kernel.spec.in
+++ kernel.spec.in
@@ -22,7 +22,7 @@
 ## If this is a released kernel ##
 %if 0%{?released_kernel}
 # Do we have a 2.6.21.y update to apply?
-%define stable_update 2
+%define stable_update 3
 # Set rpm version accordingly
 %if 0%{?stable_update}
 %define stablerev .%{stable_update}

++++++ linux-2.6.35-ac-2010-08-24.patch (new)
--- linux-2.6.35-ac-2010-08-24.patch
+++ linux-2.6.35-ac-2010-08-24.patch
+diff --git a/Documentation/ABI/testing/sysfs-bus-devices-i2c-isl29020 b/Documentation/ABI/testing/sysfs-bus-devices-i2c-isl29020
+new file mode 100644
+index 0000000..bc71757
+--- /dev/null
++++ b/Documentation/ABI/testing/sysfs-bus-devices-i2c-isl29020
+@@ -0,0 +1,29 @@
++
++Where:		/sys/bus/i2c/devices/.../sensing_range
++Date:		April 2010
++Kernel Version:	2.6.36?
++Contact:	alan.cox at intel.com
++Description:	Reports the sensing range configured on the ISL29020
++		hardware (1/4/16/64000). Writing a value between 1 and 4
++		sets the sensing range to 1/4/16/64000.
++
++
++Where:		/sys/bus/i2c/devices/.../power_state
++Date:		April 2010
++Kernel Version:	2.6.36?
++Contact:	alan.cox at intel.com
++Description:	Write 1 to bring the device out of power saving mode and 0
++		to return it to power saving. When read returns 0 or 1
++		indicating the current power state.
++
++Where:		/sys/bus/i2c/devices/.../lux_output
++Date:		April 2010
++Kernel Version:	2.6.36?
++Contact:	alan.cox at intel.com
++Description:	Report the lux level being read by the sensor.
++
++
++
++
++
++
+diff --git a/Documentation/ABI/testing/sysfs-bus-i2c-devices-hm6352 b/Documentation/ABI/testing/sysfs-bus-i2c-devices-hm6352
+new file mode 100644
+index 0000000..fbedf77
+--- /dev/null
++++ b/Documentation/ABI/testing/sysfs-bus-i2c-devices-hm6352
+@@ -0,0 +1,21 @@
++Where:		/sys/bus/i2c/devices/.../heading
++Date:		April 2010
++Kernel Version: 2.6.36?
++Contact:	alan.cox at intel.com
++Description:	Reports the current heading from the compass as a floating
++		point value in degrees.
++
++Where:		/sys/bus/i2c/devices/.../power_state
++Date:		April 2010
++Kernel Version: 2.6.36?
++Contact:	alan.cox at intel.com
++Description:	Sets the power state of the device. 0 sets the device into
++		sleep mode, 1 wakes it up.
++
++Where:		/sys/bus/i2c/devices/.../calibration
++Date:		April 2010
++Kernel Version: 2.6.36?
++Contact:	alan.cox at intel.com
++Description:	Sets the calibration on or off (1 = on, 0 = off). See the
++		chip data sheet.
++
+diff --git a/Documentation/leds-lp5523.txt b/Documentation/leds-lp5523.txt
+new file mode 100644
+index 0000000..5b1c1e1
+--- /dev/null
++++ b/Documentation/leds-lp5523.txt
+@@ -0,0 +1,72 @@
++Kernel driver for lp5523
++========================
++
++* National Semiconductor LP5523 led driver chip
++* Datasheet: http://www.national.com/pf/LP/LP5523.html
++
++Authors: Mathias Nyman, Yuri Zaporozhets, Samu Onkalo
++Contact: Samu Onkalo (samu.p.onkalo-at-nokia.com)
++
++Description
++-----------
++LP5523 can drive up to 9 channels. Leds can be controlled directly via
++led class control interface. Channels have a generic names:
++lp5523:channelx where x is 0...8
++
++Chip provides 3 engines which can be control channels wihtout main CPU
++interaction. Details of the micro engine code can be found from the
++public data sheet. Leds can be muxed to different channels.
++
++Control interface for engines:
++x is 1 .. 3
++enginex_mode : disabled, load, run
++enginex_load : microcode load (visible only in load mode)
++enginex_leds : led mux control (visible only in load mode)
++
++cd /sys/class/leds/lp5523:channel2/device
++echo "load" > engine3_mode
++echo "9d80400004ff05ff437f0000" > engine3_load
++echo "111111111" > engine3_leds
++echo "run" > engine3_mode
++
++sysfs contains also selftest entry. It measures each channel
++voltage level and checks if it looks reasonable. Too high
++level means missing led and to low value means short circuit.
++
++Example platform data:
++
++static struct lp5523_led_config lp5523_led_config[] = {
++        {
++                .chan_nr        = 0,
++                .led_current    = 50,
++        },
++...
++        }, {
++                .chan_nr        = 8,
++                .led_current    = 50,
++        }
++};
++
++static int lp5523_setup(void)
++{
++	/* Setup HW resources */
++}
++
++static void lp5523_release(void)
++{
++	/* Release HW resources */
++}
++
++static void lp5523_enable(bool state)
++{
++	/* Control chip enable signal */
++}
++
++static struct lp5523_platform_data lp5523_platform_data = {
++        .led_config     = lp5523_led_config,
++        .num_channels   = ARRAY_SIZE(lp5523_led_config),
++        .clock_mode     = LP5523_CLOCK_EXT,
++        .setup_resources   = lp5523_setup,
++        .release_resources = lp5523_release,
++        .enable            = lp5523_enable,
++};
+diff --git a/Documentation/networking/caif/spi_porting.txt b/Documentation/networking/caif/spi_porting.txt
+new file mode 100644
+index 0000000..61d7c92
+--- /dev/null
++++ b/Documentation/networking/caif/spi_porting.txt
+@@ -0,0 +1,208 @@
++- CAIF SPI porting -
++
++- CAIF SPI basics:
++
++Running CAIF over SPI needs some extra setup, owing to the nature of SPI.
++Two extra GPIOs have been added in order to negotiate the transfers
++ between the master and the slave. The minimum requirement for running
++CAIF over SPI is a SPI slave chip and two GPIOs (more details below).
++Please note that running as a slave implies that you need to keep up
++with the master clock. An overrun or underrun event is fatal.
++
++- CAIF SPI framework:
++
++To make porting as easy as possible, the CAIF SPI has been divided in
++two parts. The first part (called the interface part) deals with all
++generic functionality such as length framing, SPI frame negotiation
++and SPI frame delivery and transmission. The other part is the CAIF
++SPI slave device part, which is the module that you have to write if
++you want to run SPI CAIF on a new hardware. This part takes care of
++the physical hardware, both with regard to SPI and to GPIOs.
++
++- Implementing a CAIF SPI device:
++
++	- Functionality provided by the CAIF SPI slave device:
++
++	In order to implement a SPI device you will, as a minimum,
++	need to implement the following
++	functions:
++
++	int (*init_xfer) (struct cfspi_xfer * xfer, struct cfspi_dev *dev):
++
++	This function is called by the CAIF SPI interface to give
++	you a chance to set up your hardware to be ready to receive
++	a stream of data from the master. The xfer structure contains
++	both physical and logical adresses, as well as the total length
++	of the transfer in both directions.The dev parameter can be used
++	to map to different CAIF SPI slave devices.
++
++	void (*sig_xfer) (bool xfer, struct cfspi_dev *dev):
++
++	This function is called by the CAIF SPI interface when the output
++	(SPI_INT) GPIO needs to change state. The boolean value of the xfer
++	variable indicates whether the GPIO should be asserted (HIGH) or
++	deasserted (LOW). The dev parameter can be used to map to different CAIF
++	SPI slave devices.
++
++	- Functionality provided by the CAIF SPI interface:
++
++	void (*ss_cb) (bool assert, struct cfspi_ifc *ifc);
++
++	This function is called by the CAIF SPI slave device in order to
++	signal a change of state of the input GPIO (SS) to the interface.
(302317 more lines skipped)

++++++ linux-2.6.35-intel-idle.patch
--- linux-2.6.35-intel-idle.patch
+++ linux-2.6.35-intel-idle.patch
@@ -29,3 +29,11 @@
  };
  
  /*
+@@ -266,6 +266,7 @@
+ 
+ 	case 0x1C:	/* 28 - Atom Processor */
+ 	case 0x26:	/* 38 - Lincroft Atom Processor */
++	case 0x27:	/* 39 - Atom variant */
+ 		lapic_timer_reliable_states = (1 << 2) | (1 << 1); /* C2, C1 */
+ 		cpuidle_state_table = atom_cstates;
+ 		choose_substate = choose_zero_substate;

++++++ linux-2.6.35-mrst-rtc.patch (new)
--- linux-2.6.35-mrst-rtc.patch
+++ linux-2.6.35-mrst-rtc.patch
+--- linux-2.6.35/drivers/rtc/rtc-mrst.c~	2010-08-24 11:58:41.000000000 -0400
++++ linux-2.6.35/drivers/rtc/rtc-mrst.c	2010-08-24 12:41:01.150003160 -0400
+@@ -123,7 +123,7 @@
+ 
+ 	spin_unlock_irqrestore(&rtc_lock, flags);
+ 
+-	ret = intel_scu_ipc_simple_command(IPC_CMD_VRTC_SETTIME, IPCMSG_VRTC);
++	ret = intel_scu_ipc_simple_command(IPCMSG_VRTC, IPC_CMD_VRTC_SETTIME);
+ 	return ret;
+ }
+ 
+@@ -223,7 +223,7 @@
+ 
+ 	spin_unlock_irq(&rtc_lock);
+ 
+-	ret = intel_scu_ipc_simple_command(IPC_CMD_VRTC_SETALARM, IPCMSG_VRTC);
++	ret = intel_scu_ipc_simple_command(IPCMSG_VRTC, IPC_CMD_VRTC_SETALARM);
+ 	if (ret)
+ 		return ret;
+ 

++++++ linux-2.6.36-battery.patch (new)
--- linux-2.6.36-battery.patch
+++ linux-2.6.36-battery.patch
+From: Matthew Garrett <mjg at redhat.com>
+Subject: [PATCH] acpi: Update battery information on notification 0x81
+Message-Id: <1282588802-2962-1-git-send-email-mjg at redhat.com>
+
+A notification event 0x81 from an ACPI battery device requires us to
+re-read the battery information structure. Do so, and if the battery's
+reporting units have changed (as is the case on some Thinkpads) destroy
+and recreate the battery in order to populate the fields correctly.
+
+Signed-off-by: Matthew Garrett <mjg at redhat.com>
+---
+ drivers/acpi/battery.c |   22 +++++++++++++++++-----
+ 1 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
+index dc58402..69638c4 100644
+--- a/drivers/acpi/battery.c
++++ b/drivers/acpi/battery.c
+@@ -562,9 +562,10 @@ static void acpi_battery_quirks(struct acpi_battery *battery)
+ 	}
+ }
+ 
+-static int acpi_battery_update(struct acpi_battery *battery)
++static int acpi_battery_update(struct acpi_battery *battery, bool get_info)
+ {
+ 	int result, old_present = acpi_battery_present(battery);
++	int old_power_unit = battery->power_unit;
+ 	result = acpi_battery_get_status(battery);
+ 	if (result)
+ 		return result;
+@@ -587,6 +588,16 @@ static int acpi_battery_update(struct acpi_battery *battery)
+ 	if (!battery->bat.dev)
+ 		sysfs_add_battery(battery);
+ #endif
++	if (get_info) {
++		acpi_battery_get_info(battery);
++#ifdef CONFIG_ACPI_SYSFS_POWER
++		if (old_power_unit != battery->power_unit) {
++			/* The battery has changed its reporting units */
++			sysfs_remove_battery(battery);
++			sysfs_add_battery(battery);
++		}
++#endif
++	}
+ 	return acpi_battery_get_state(battery);
+ }
+ 
+@@ -762,7 +773,7 @@ static print_func acpi_print_funcs[ACPI_BATTERY_NUMFILES] = {
+ static int acpi_battery_read(int fid, struct seq_file *seq)
+ {
+ 	struct acpi_battery *battery = seq->private;
+-	int result = acpi_battery_update(battery);
++	int result = acpi_battery_update(battery, false);
+ 	return acpi_print_funcs[fid](seq, result);
+ }
+ 
+@@ -877,7 +888,8 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event)
+ #ifdef CONFIG_ACPI_SYSFS_POWER
+ 	old = battery->bat.dev;
+ #endif
+-	acpi_battery_update(battery);
++	acpi_battery_update(battery, (event == ACPI_BATTERY_NOTIFY_INFO ? true
++				      : false));
+ 	acpi_bus_generate_proc_event(device, event,
+ 				     acpi_battery_present(battery));
+ 	acpi_bus_generate_netlink_event(device->pnp.device_class,
+@@ -908,7 +920,7 @@ static int acpi_battery_add(struct acpi_device *device)
+ 	if (ACPI_SUCCESS(acpi_get_handle(battery->device->handle,
+ 			"_BIX", &handle)))
+ 		set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags);
+-	acpi_battery_update(battery);
++	acpi_battery_update(battery, false);
+ #ifdef CONFIG_ACPI_PROCFS_POWER
+ 	result = acpi_battery_add_fs(device);
+ #endif
+@@ -951,7 +963,7 @@ static int acpi_battery_resume(struct acpi_device *device)
+ 		return -EINVAL;
+ 	battery = acpi_driver_data(device);
+ 	battery->update_time = 0;
+-	acpi_battery_update(battery);
++	acpi_battery_update(battery, true);
+ 	return 0;
+ }
+ 
+-- 
+1.7.2.1
+

++++++ linux-2.6.36-battery2.patch (new)
--- linux-2.6.36-battery2.patch
+++ linux-2.6.36-battery2.patch
+From: Matthew Garrett <mjg at redhat.com>
+To: linux-acpi at vger.kernel.org
+Subject: [PATCH] ACPI: Don't report current_now if battery reports in mWh
+Date: Mon, 23 Aug 2010 16:25:32 -0400
+Message-Id: <1282595132-5026-1-git-send-email-mjg at redhat.com>
+
+ACPI batteries can report in units of either current or energy. Right
+now we expose the current_now file even if the battery is reporting
+energy units, resulting in a file that should contain mA instead
+containing mW. Don't expose this value unless the battery is reporting
+current.
+
+Signed-off-by: Matthew Garrett <mjg at redhat.com>
+Cc: Arjan van de Ven <arjan at linux.intel.com>
+---
+ drivers/acpi/battery.c |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
+index dc58402..9841720 100644
+--- a/drivers/acpi/battery.c
++++ b/drivers/acpi/battery.c
+@@ -273,7 +273,6 @@ static enum power_supply_property energy_battery_props[] = {
+ 	POWER_SUPPLY_PROP_CYCLE_COUNT,
+ 	POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
+ 	POWER_SUPPLY_PROP_VOLTAGE_NOW,
+-	POWER_SUPPLY_PROP_CURRENT_NOW,
+ 	POWER_SUPPLY_PROP_POWER_NOW,
+ 	POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN,
+ 	POWER_SUPPLY_PROP_ENERGY_FULL,
+-- 
+1.7.2.1
+

++++++ linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch (new)
--- linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+++ linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+From f362b73244fb16ea4ae127ced1467dd8adaa7733 Mon Sep 17 00:00:00 2001
+From: Daniel J Blueman <daniel.blueman at gmail.com>
+Date: Tue, 17 Aug 2010 23:56:55 +0100
+Subject: [PATCH] Fix unprotected access to task credentials in waitid()
+
+Using a program like the following:
+
+	#include <stdlib.h>
+	#include <unistd.h>
+	#include <sys/types.h>
+	#include <sys/wait.h>
+
+	int main() {
+		id_t id;
+		siginfo_t infop;
+		pid_t res;
+
+		id = fork();
+		if (id == 0) { sleep(1); exit(0); }
+		kill(id, SIGSTOP);
+		alarm(1);
+		waitid(P_PID, id, &infop, WCONTINUED);
+		return 0;
+	}
+
+to call waitid() on a stopped process results in access to the child task's
+credentials without the RCU read lock being held - which may be replaced in the
+meantime - eliciting the following warning:
+
+	===================================================
+	[ INFO: suspicious rcu_dereference_check() usage. ]
+	---------------------------------------------------
+	kernel/exit.c:1460 invoked rcu_dereference_check() without protection!
+
+	other info that might help us debug this:
+
+	rcu_scheduler_active = 1, debug_locks = 1
+	2 locks held by waitid02/22252:
+	 #0:  (tasklist_lock){.?.?..}, at: [<ffffffff81061ce5>] do_wait+0xc5/0x310
+	 #1:  (&(&sighand->siglock)->rlock){-.-...}, at: [<ffffffff810611da>]
+	wait_consider_task+0x19a/0xbe0
+
+	stack backtrace:
+	Pid: 22252, comm: waitid02 Not tainted 2.6.35-323cd+ #3
+	Call Trace:
+	 [<ffffffff81095da4>] lockdep_rcu_dereference+0xa4/0xc0
+	 [<ffffffff81061b31>] wait_consider_task+0xaf1/0xbe0
+	 [<ffffffff81061d15>] do_wait+0xf5/0x310
+	 [<ffffffff810620b6>] sys_waitid+0x86/0x1f0
+	 [<ffffffff8105fce0>] ? child_wait_callback+0x0/0x70
+	 [<ffffffff81003282>] system_call_fastpath+0x16/0x1b
+
+This is fixed by holding the RCU read lock in wait_task_continued() to ensure
+that the task's current credentials aren't destroyed between us reading the
+cred pointer and us reading the UID from those credentials.
+
+Furthermore, protect wait_task_stopped() in the same way.
+
+We don't need to keep holding the RCU read lock once we've read the UID from
+the credentials as holding the RCU read lock doesn't stop the target task from
+changing its creds under us - so the credentials may be outdated immediately
+after we've read the pointer, lock or no lock.
+
+Signed-off-by: Daniel J Blueman <daniel.blueman at gmail.com>
+Signed-off-by: David Howells <dhowells at redhat.com>
+Acked-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
+Acked-by: Oleg Nesterov <oleg at redhat.com>
+Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+---
+ kernel/exit.c |    5 ++---
+ 1 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/kernel/exit.c b/kernel/exit.c
+index 671ed56..0312022 100644
+--- a/kernel/exit.c
++++ b/kernel/exit.c
+@@ -1386,8 +1386,7 @@ static int wait_task_stopped(struct wait_opts *wo,
+ 	if (!unlikely(wo->wo_flags & WNOWAIT))
+ 		*p_code = 0;
+ 
+-	/* don't need the RCU readlock here as we're holding a spinlock */
+-	uid = __task_cred(p)->uid;
++	uid = task_uid(p);
+ unlock_sig:
+ 	spin_unlock_irq(&p->sighand->siglock);
+ 	if (!exit_code)
+@@ -1460,7 +1459,7 @@ static int wait_task_continued(struct wait_opts *wo, struct task_struct *p)
+ 	}
+ 	if (!unlikely(wo->wo_flags & WNOWAIT))
+ 		p->signal->flags &= ~SIGNAL_STOP_CONTINUED;
+-	uid = __task_cred(p)->uid;
++	uid = task_uid(p);
+ 	spin_unlock_irq(&p->sighand->siglock);
+ 
+ 	pid = task_pid_vnr(p);
+-- 
+1.7.2.1
+

++++++ linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch (new)
--- linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+++ linux-2.6.37-omap-rx51-add-support-for-USB-chargers.patch
+From 5f4f847f1b506f45f7e64eb2add20e29f496b0cb Mon Sep 17 00:00:00 2001
+From: Heikki Krogerus <ext-heikki.krogerus at nokia.com>
+Date: Thu, 19 Aug 2010 14:09:37 +0200
+Subject: [PATCH 2/2] omap: rx51: add support for USB chargers
+
+This enables isp1704 power supply driver on RX51, allowing
+USB charger detection with N900.
+
+Backported to 2.6.35 by: Ameya Palande <ameya.palande at nokia.com>
+
+Signed-off-by: Heikki Krogerus <ext-heikki.krogerus at nokia.com>
+---
+ arch/arm/mach-omap2/board-rx51-peripherals.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
+index 00fa0a9..58b2d44 100644
+--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
++++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
+@@ -251,6 +251,10 @@ static struct spi_board_info rx51_peripherals_spi_board_info[] __initdata = {
+ 	},
+ };
+ 
++static struct platform_device rx51_charger_device = {
++	.name = "isp1704_charger",
++};
++
+ #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
+ 
+ #define RX51_GPIO_CAMERA_LENS_COVER	110
+@@ -1321,4 +1325,5 @@ void __init rx51_peripherals_init(void)
+ 				ARRAY_SIZE(rx51_peripherals_spi_board_info));
+ 	omap2_hsmmc_init(mmc);
+ 	rx51_init_lp5523();
++	platform_device_register(&rx51_charger_device);
+ }
+-- 
+1.7.0.4
+

++++++ linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch (new)
--- linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+++ linux-2.6.37-power_supply-add-isp1704-charger-detection-driver.patch
+From bb4ae2fb03f0777a4083c21992b96b1d8374bac7 Mon Sep 17 00:00:00 2001
+From: Heikki Krogerus <ext-heikki.krogerus at nokia.com>
+Date: Thu, 19 Aug 2010 14:09:36 +0200
+Subject: [PATCH 1/2] power_supply: add isp1704 charger detection driver
+
+NXP ISP1704 is Battery Charging Specification 1.0 compliant USB
+transceiver. This adds a power supply driver for ISP1704 and
+ISP1707 USB transceivers.
+
+Backported to 2.6.35 by: Ameya Palande <ameya.palande at nokia.com>
+
+Signed-off-by: Heikki Krogerus <ext-heikki.krogerus at nokia.com>
+---
+ drivers/power/Kconfig           |    7 
+ drivers/power/Makefile          |    1 
+ drivers/power/isp1704_charger.c |  370 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 378 insertions(+)
+ create mode 100644 drivers/power/isp1704_charger.c
+
+--- a/drivers/power/Kconfig
++++ b/drivers/power/Kconfig
+@@ -149,4 +149,11 @@
+ 	  Say Y here to enable the battery driver on Intel MID
+ 	  platforms.
+ 
++config CHARGER_ISP1704
++	tristate "ISP1704 USB Charger Detection"
++	depends on USB_OTG_UTILS
++	help
++	  Say Y to enable support for USB Charger Detection with
++	  ISP1707/ISP1704 USB transceivers.
++
+ endif # POWER_SUPPLY
+--- a/drivers/power/Makefile
++++ b/drivers/power/Makefile
+@@ -35,3 +35,4 @@
+ obj-$(CONFIG_BATTERY_Z2)	+= z2_battery.o
+ obj-$(CONFIG_CHARGER_PCF50633)	+= pcf50633-charger.o
+ obj-$(CONFIG_BATTERY_INTEL_MID)	+= intel_mid_battery.o
++obj-$(CONFIG_CHARGER_ISP1704)	+= isp1704_charger.o
+--- /dev/null
++++ b/drivers/power/isp1704_charger.c
+@@ -0,0 +1,370 @@
++/*
++ * isp1704_charger.c - ISP1704 USB Charger Detection driver
++ *
++ * Copyright (C) 2010 Nokia Corporation
++ *
++ * 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.
++ *
++ * 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
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/err.h>
++#include <linux/init.h>
++#include <linux/types.h>
++#include <linux/device.h>
++#include <linux/sysfs.h>
++#include <linux/platform_device.h>
++#include <linux/power_supply.h>
++#include <linux/delay.h>
++
++#include <linux/usb/otg.h>
++#include <linux/usb/ulpi.h>
++#include <linux/usb/ch9.h>
++#include <linux/usb/gadget.h>
++
++/* Vendor specific Power Control register */
++#define ISP1704_PWR_CTRL		0x3d
++#define ISP1704_PWR_CTRL_SWCTRL		(1 << 0)
++#define ISP1704_PWR_CTRL_DET_COMP	(1 << 1)
++#define ISP1704_PWR_CTRL_BVALID_RISE	(1 << 2)
++#define ISP1704_PWR_CTRL_BVALID_FALL	(1 << 3)
++#define ISP1704_PWR_CTRL_DP_WKPU_EN	(1 << 4)
++#define ISP1704_PWR_CTRL_VDAT_DET	(1 << 5)
++#define ISP1704_PWR_CTRL_DPVSRC_EN	(1 << 6)
++#define ISP1704_PWR_CTRL_HWDETECT	(1 << 7)
++
++#define NXP_VENDOR_ID			0x04cc
++
++static u16 isp170x_id[] = {
++	0x1704,
++	0x1707,
++};
++
++struct isp1704_charger {
++	struct device		*dev;
++	struct power_supply	psy;
++	struct otg_transceiver	*otg;
++	struct notifier_block	nb;
++	struct work_struct	work;
++
++	char			model[7];
++	unsigned		present:1;
++};
++
++/*
++ * ISP1704 detects PS/2 adapters as charger. To make sure the detected charger
++ * is actually a dedicated charger, the following steps need to be taken.
++ */
++static inline int isp1704_charger_verify(struct isp1704_charger *isp)
++{
++	int	ret = 0;
++	u8	r;
++
++	/* Reset the transceiver */
++	r = otg_io_read(isp->otg, ULPI_FUNC_CTRL);
++	r |= ULPI_FUNC_CTRL_RESET;
++	otg_io_write(isp->otg, ULPI_FUNC_CTRL, r);
++	msleep(1);
++
++	/* Set normal mode */
++	r &= ~(ULPI_FUNC_CTRL_RESET | ULPI_FUNC_CTRL_OPMODE_MASK);
++	otg_io_write(isp->otg, ULPI_FUNC_CTRL, r);
++
++	/* Clear the DP and DM pull-down bits */
++	r = ULPI_OTG_CTRL_DP_PULLDOWN | ULPI_OTG_CTRL_DM_PULLDOWN;
++	otg_io_write(isp->otg, ULPI_CLR(ULPI_OTG_CTRL), r);
++
++	/* Enable strong pull-up on DP (1.5K) and reset */
++	r = ULPI_FUNC_CTRL_TERMSELECT | ULPI_FUNC_CTRL_RESET;
++	otg_io_write(isp->otg, ULPI_SET(ULPI_FUNC_CTRL), r);
++	msleep(1);
++
++	/* Read the line state */
++	if (!otg_io_read(isp->otg, ULPI_DEBUG)) {
++		/* Disable strong pull-up on DP (1.5K) */
++		otg_io_write(isp->otg, ULPI_CLR(ULPI_FUNC_CTRL),
++				ULPI_FUNC_CTRL_TERMSELECT);
++		return 1;
++	}
++
++	/* Is it a charger or PS/2 connection */
++
++	/* Enable weak pull-up resistor on DP */
++	otg_io_write(isp->otg, ULPI_SET(ISP1704_PWR_CTRL),
++			ISP1704_PWR_CTRL_DP_WKPU_EN);
++
++	/* Disable strong pull-up on DP (1.5K) */
++	otg_io_write(isp->otg, ULPI_CLR(ULPI_FUNC_CTRL),
++			ULPI_FUNC_CTRL_TERMSELECT);
++
++	/* Enable weak pull-down resistor on DM */
++	otg_io_write(isp->otg, ULPI_SET(ULPI_OTG_CTRL),
++			ULPI_OTG_CTRL_DM_PULLDOWN);
++
++	/* It's a charger if the line states are clear */
++	if (!(otg_io_read(isp->otg, ULPI_DEBUG)))
++		ret = 1;
++
++	/* Disable weak pull-up resistor on DP */
++	otg_io_write(isp->otg, ULPI_CLR(ISP1704_PWR_CTRL),
++			ISP1704_PWR_CTRL_DP_WKPU_EN);
++
++	return ret;
++}
++
++static inline int isp1704_charger_detect(struct isp1704_charger *isp)
++{
++	unsigned long	timeout;
++	u8		r;
++	int		ret = 0;
++
++	/* set SW control bit in PWR_CTRL register */
++	otg_io_write(isp->otg, ISP1704_PWR_CTRL,
++			ISP1704_PWR_CTRL_SWCTRL);
++
++	/* enab1e manual charger detection */
++	r = (ISP1704_PWR_CTRL_SWCTRL | ISP1704_PWR_CTRL_DPVSRC_EN);
++	otg_io_write(isp->otg, ULPI_SET(ISP1704_PWR_CTRL), r);
++	msleep(1);
++
++	timeout = jiffies + msecs_to_jiffies(300);
++	do {
++		/* Check if there is a charger */
++		if (otg_io_read(isp->otg, ISP1704_PWR_CTRL)
++				& ISP1704_PWR_CTRL_VDAT_DET) {
++			ret = isp1704_charger_verify(isp);
++			break;
++		}
++	} while (!time_after(jiffies, timeout));
++
++	return ret;
++}
++
++static void isp1704_charger_work(struct work_struct *data)
(215 more lines skipped)

++++++ patch-2.6.35.3.bz2 (new)
--- patch-2.6.35.3.bz2
+++ patch-2.6.35.3.bz2
+diff --git a/Makefile b/Makefile
+index 141da26..554683d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ VERSION = 2
+ PATCHLEVEL = 6
+ SUBLEVEL = 35
+-EXTRAVERSION =
++EXTRAVERSION = .3
+ NAME = Sheep on Meth
+ 
+ # *DOCUMENTATION*
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 98922f7..4824fb4 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1027,6 +1027,18 @@ config PL310_ERRATA_588369
+ 	   is not correctly implemented in PL310 as clean lines are not
+ 	   invalidated as a result of these operations. Note that this errata
+ 	   uses Texas Instrument's secure monitor api.
++
++config ARM_ERRATA_720789
++	bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
++	depends on CPU_V7 && SMP
++	help
++	  This option enables the workaround for the 720789 Cortex-A9 (prior to
++	  r2p0) erratum. A faulty ASID can be sent to the other CPUs for the
++	  broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS.
++	  As a consequence of this erratum, some TLB entries which should be
++	  invalidated are not, resulting in an incoherency in the system page
++	  tables. The workaround changes the TLB flushing routines to invalidate
++	  entries regardless of the ASID.
+ endmenu
+ 
+ source "arch/arm/common/Kconfig"
+diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h
+index bd863d8..33b546a 100644
+--- a/arch/arm/include/asm/tlbflush.h
++++ b/arch/arm/include/asm/tlbflush.h
+@@ -378,7 +378,11 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
+ 	if (tlb_flag(TLB_V6_I_ASID))
+ 		asm("mcr p15, 0, %0, c8, c5, 2" : : "r" (asid) : "cc");
+ 	if (tlb_flag(TLB_V7_UIS_ASID))
++#ifdef CONFIG_ARM_ERRATA_720789
++		asm("mcr p15, 0, %0, c8, c3, 0" : : "r" (zero) : "cc");
++#else
+ 		asm("mcr p15, 0, %0, c8, c3, 2" : : "r" (asid) : "cc");
++#endif
+ 
+ 	if (tlb_flag(TLB_BTB)) {
+ 		/* flush the branch target cache */
+@@ -424,7 +428,11 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
+ 	if (tlb_flag(TLB_V6_I_PAGE))
+ 		asm("mcr p15, 0, %0, c8, c5, 1" : : "r" (uaddr) : "cc");
+ 	if (tlb_flag(TLB_V7_UIS_PAGE))
++#ifdef CONFIG_ARM_ERRATA_720789
++		asm("mcr p15, 0, %0, c8, c3, 3" : : "r" (uaddr & PAGE_MASK) : "cc");
++#else
+ 		asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (uaddr) : "cc");
++#endif
+ 
+ 	if (tlb_flag(TLB_BTB)) {
+ 		/* flush the branch target cache */
+diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
+index fdda6be..d717b49 100644
+--- a/arch/arm/mach-pxa/cm-x300.c
++++ b/arch/arm/mach-pxa/cm-x300.c
+@@ -745,9 +745,10 @@ static void __init cm_x300_init(void)
+ {
+ 	cm_x300_init_mfp();
+ 
+-	pxa_set_ffuart_info(NULL);
+ 	pxa_set_btuart_info(NULL);
+ 	pxa_set_stuart_info(NULL);
++	if (cpu_is_pxa300())
++		pxa_set_ffuart_info(NULL);
+ 
+ 	cm_x300_init_da9030();
+ 	cm_x300_init_dm9000();
+diff --git a/arch/arm/plat-mxc/gpio.c b/arch/arm/plat-mxc/gpio.c
+index 71437c6..9ebbd31 100644
+--- a/arch/arm/plat-mxc/gpio.c
++++ b/arch/arm/plat-mxc/gpio.c
+@@ -214,13 +214,16 @@ static void _set_gpio_direction(struct gpio_chip *chip, unsigned offset,
+ 	struct mxc_gpio_port *port =
+ 		container_of(chip, struct mxc_gpio_port, chip);
+ 	u32 l;
++	unsigned long flags;
+ 
++	spin_lock_irqsave(&port->lock, flags);
+ 	l = __raw_readl(port->base + GPIO_GDIR);
+ 	if (dir)
+ 		l |= 1 << offset;
+ 	else
+ 		l &= ~(1 << offset);
+ 	__raw_writel(l, port->base + GPIO_GDIR);
++	spin_unlock_irqrestore(&port->lock, flags);
+ }
+ 
+ static void mxc_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+@@ -229,9 +232,12 @@ static void mxc_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+ 		container_of(chip, struct mxc_gpio_port, chip);
+ 	void __iomem *reg = port->base + GPIO_DR;
+ 	u32 l;
++	unsigned long flags;
+ 
++	spin_lock_irqsave(&port->lock, flags);
+ 	l = (__raw_readl(reg) & (~(1 << offset))) | (value << offset);
+ 	__raw_writel(l, reg);
++	spin_unlock_irqrestore(&port->lock, flags);
+ }
+ 
+ static int mxc_gpio_get(struct gpio_chip *chip, unsigned offset)
+@@ -285,6 +291,8 @@ int __init mxc_gpio_init(struct mxc_gpio_port *port, int cnt)
+ 		port[i].chip.base = i * 32;
+ 		port[i].chip.ngpio = 32;
+ 
++		spin_lock_init(&port[i].lock);
++
+ 		/* its a serious configuration bug when it fails */
+ 		BUG_ON( gpiochip_add(&port[i].chip) < 0 );
+ 
+diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h
+index 894d2f8..7a0dc5a 100644
+--- a/arch/arm/plat-mxc/include/mach/gpio.h
++++ b/arch/arm/plat-mxc/include/mach/gpio.h
+@@ -19,6 +19,7 @@
+ #ifndef __ASM_ARCH_MXC_GPIO_H__
+ #define __ASM_ARCH_MXC_GPIO_H__
+ 
++#include <linux/spinlock.h>
+ #include <mach/hardware.h>
+ #include <asm-generic/gpio.h>
+ 
+@@ -36,6 +37,7 @@ struct mxc_gpio_port {
+ 	int virtual_irq_start;
+ 	struct gpio_chip chip;
+ 	u32 both_edges;
++	spinlock_t lock;
+ };
+ 
+ int mxc_gpio_init(struct mxc_gpio_port*, int);
+diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
+index 4c247e0..df971fa 100644
+--- a/arch/parisc/kernel/firmware.c
++++ b/arch/parisc/kernel/firmware.c
+@@ -1123,7 +1123,6 @@ static char __attribute__((aligned(64))) iodc_dbuf[4096];
+  */
+ int pdc_iodc_print(const unsigned char *str, unsigned count)
+ {
+-	static int posx;        /* for simple TAB-Simulation... */
+ 	unsigned int i;
+ 	unsigned long flags;
+ 
+@@ -1133,19 +1132,12 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
+ 			iodc_dbuf[i+0] = '\r';
+ 			iodc_dbuf[i+1] = '\n';
+ 			i += 2;
+-			posx = 0;
+ 			goto print;
+-		case '\t':
+-			while (posx & 7) {
+-				iodc_dbuf[i] = ' ';
+-				i++, posx++;
+-			}
+-			break;
+ 		case '\b':	/* BS */
+-			posx -= 2;
++			i--; /* overwrite last */
+ 		default:
+ 			iodc_dbuf[i] = str[i];
+-			i++, posx++;
++			i++;
+ 			break;
+ 		}
+ 	}
+diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
+index 77cfe7a..5d2f17d 100644
+--- a/arch/powerpc/Makefile
++++ b/arch/powerpc/Makefile
+@@ -163,9 +163,11 @@ drivers-$(CONFIG_OPROFILE)	+= arch/powerpc/oprofile/
+ # Default to zImage, override when needed
+ all: zImage
+ 
+-BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
++# With make 3.82 we cannot mix normal and wildcard targets
++BOOT_TARGETS1 := zImage zImage.initrd uImaged
++BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
+ 
+-PHONY += $(BOOT_TARGETS)
++PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
+ 
+ boot := arch/$(ARCH)/boot
+ 
+@@ -180,10 +182,16 @@ relocs_check: arch/powerpc/relocs_check.pl vmlinux
+ zImage: relocs_check
+ endif
(4297 more lines skipped)

++++++ series
--- series
+++ series
@@ -7,8 +7,7 @@
 # Stable patch - critical bugfixes
 #
 
-patch-2.6.35.2.bz2
-linux-2.6.35.2-hotfix.patch
+patch-2.6.35.3.bz2
 
 #
 # Patch to add a "nonintconfig" option to the Makefile
@@ -26,8 +25,9 @@
 # kernels.
 #
 
-
-
+linux-2.6.36-fix-unprotected-acess-to-task-credentials.patch
+linux-2.6.36-battery.patch
+linux-2.6.36-battery2.patch
 
 # Kernel CVE patches - these go last in the backport section
 # no non-cve patches should go here!
@@ -52,12 +52,13 @@
 # The main consolidated MRST/MFLD tree from
 # git//git.kernel.org/pub/scm/linux/kernel/git/alan/linux-2.6-mid-ref
 #
-linux-2.6.35-ac-2010-08-09.patch
+linux-2.6.35-ac-2010-08-24.patch
 linux-2.6.35-ac-pending.patch
 linux-2.6.35-ac-revert-mmc-hacks.patch
 linux-2.6.35-aava-firmware-workaround.patch
 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
 
 #
 # End of the Moorsetown architecture patches
@@ -107,6 +108,10 @@
 linux-2.6.37-leds-Add-lp5523-led-driver.patch
 # lp5523 platform data for rx51 board
 linux-2.6.37-omap3-rx51-Platform-support-for-lp5523-led-chip.patch
+# 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
 
 #
 # End of the Nokia N900 patches

++++++ deleted files:
--- linux-2.6.35.2-hotfix.patch
--- patch-2.6.35.2.bz2




More information about the MeeGo-commits mailing list