[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