summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2012-05-23core: Fix for Basic Suspend/Resume to workramesh.chandrasekaran
Signed-off-by: ramesh.chandrasekaran <ramesh.chandrasekaran@stericsson.com>
2012-05-22power: ab8500: bm: Temporary workaround to reuse old ab8500 platform data ↵Philippe Langlais
managment Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2012-05-22RTC: Fix to correct improper implementation of clock update irq (RTC_UIE) ↵ramesh.chandrasekaran
and enable UIE Emulation Signed-off-by: ramesh.chandrasekaran <ramesh.chandrasekaran@stericsson.com>
2012-05-22ab8500: gpadc: Use new mainline ab8500_gpadc_get() with name parameterPhilippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2012-05-22u5500: timed output driver for ab5500 vibratorShreshtha Kumar Sahu
Simple timed output vibrator driver for AB5500 MFD chips. This chip supports Rotary and Linear vibrator hardware types. Resonance frequency of 100-198 Hz is supported. ST-Ericsson ID: WP 256408 Signed-off-by: Avinash A <Avinash.a@stericsson.com> Signed-off-by: Robert Marklund <robert.marklund@stericsson.com> u5500: enable vibrator when new timeout is requested with this patch new timeout value will be accepted/updated even if vibrator is already executing. ST-Ericsson ID: 360178 Signed-off-by: Avinash A <Avinash.a@stericsson.com> vibra:Remove unnecessary assignment of dev->parent Remove unnecessary assignment of dev->parent, because of this during timed out class unregister it is trying to free resources of parent which does not exist ST-Ericsson ID: 410065 Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> u5500: Add vibra end of life support Detect and disable vibra when vibra end of life(eol) condition is detected at boot sequence. ST-Ericsson ID: 265890 Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com>
2012-05-22u8500: Vibrator: Timed output vibrator driverMarcin Mielczarczyk
ST-Ericsson vibrator driver which registers in Android specific timed output device class. Signed-off-by: Marcin Mielczarczyk <marcin.mielczarczyk@tieto.com> Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg@tieto.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Timed output vibrator: New functionality. This patch allows to form the vibration characteristic using few parameters defined in the platform data: - boost level and period for start condition - on level as moderate speed - off level and period for brake condition Detailed information can be found here: Documentation\DocBook\ste_timed_vibra.html Signed-off-by: Grzegorz Sygieda <grzegorz.sygieda@tieto.com> Signed-off-by: Krzysztof Antonowicz <krzysztof.antonowicz@tieto.com> Signed-off-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com> vibrator: remove board specific control of vibrator Platform specific control of vibrator should be present in board file (here board-mop500.c). So, for example if GPIO pins are used to control the vibrator, its control function implemenation should be in board file. This patch provides the callback function support in the driver for the same. Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> android: vibrator: dont directly access ktime_t members Use ktime helper functions for converting ktime values Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> u8500: vibra: linear vibrators using vibra-pwm Linear vibrators operate on thier required resonance frequency (for COPAL and AAC its ~150Hz). This can be provided using AUDIO DA5 path. This software *workaround* enables linear vibrators using AB8500 vibra-pwm by generating required resonace frequency using software. In addition this patch provides support for separate platform data for Linear and Rotarty vibrators. Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> u8500: vibra: disable vibrator after vibration This patch disables vibrator i.e. configures the PWM duty cycle to zero after vibration duration is over. Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org> u8500: optimize: linear vibra drv using vibra-pwm This patch optimizes the current implementation of "linear vibrator driver using vibra-pwm". Current implementation is CPU intensive and uses 100% of a CPU for the time period vibrator is used. ST-Ericsson ID: ER 349958 Signed-off-by: Avinash A <Avinash.a@stericsson.com> u8500: vibra: fix sleeping fn. in atomic context sleepable call - flush_workqueue called from atomic context of vibra_enable. ST-Ericsson ID: ER 351276 Signed-off-by: Avinash A <Avinash.a@stericsson.com> u8500: vibra: remove race condition in timer operation In situation described below, vibra driver can hang. In a scenario where vibra_enable is called and vibrator is running i.e. vibra_work is scheduled and vibra_timer. Suppose vibra_timer is started and has not expired yet. At this moment if vibra_work starts executing and acquires the vibra_lock and just before hrtimer_cancel is called, if old timer expires and timer callback starts executing then it will try to acquire vibra_lock and hence it will wait for vibra_lock, as it is already acquired by vibra_work. Now vibra_work->hrtimer_cancel will wait for timer callback to complete and timer callback will wait for vibra_lock to be free so that it can complete. This result in recursive waiting for vibra_lock and hence deadlock. As timer callback is running in interrupt context so above deadlock may trigger watchdog. ST-Ericsson ID: 405366 Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> u8500: vibra: remove race condition in open In situation described below, vibra driver can hang. vibra_enable takes the vibra_lock and timer expires then timer callback will spin for vibra_lock. If vibra_enable tries to do hrtimer_cancel then it will wait for timer callback to complete. In above situation hrtimer_cancel will wait for timer callback to complete and timer callback will wait for vibra_lock to be free so that it can complete. This result in recursive waiting for vibra_lock and hence deadlock. As timer callback is running in interrupt context so above deadlock may trigger watchdog. ST-Ericsson ID: 407253 Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> vibra:Remove unnecessary assignment of dev->parent Remove unnecessary assignment of dev->parent, because of this during timed out class unregister it is trying to free resources of parent which does not exist Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com>
2012-05-22power: ab8500_btemp: Detect battery type in workqueueJonas Aaberg
Detect battery type in work queue instead of probe. This reduces the system boot time with 1.5s ST-Ericsson Linux next: - ST-Ericsson ID: 370799 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I6d21df2746a8a08940e18e793ec0e171eda67708 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50551 Reviewed-by: QABUILD Reviewed-by: Karl KOMIEROWSKI <karl.komierowski@stericsson.com>
2012-05-22drivers: ab8500-gpadc: Reduce conversion timeoutJonas Aaberg
Reduce the conversion timeout from 2s to 0.5s ST-Ericsson Linux next: - ST-Ericsson ID: 420077 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Icb18eef9b6c887f7817c2c1f7dd1b3876620a5b6 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50864 Reviewed-by: Karl KOMIEROWSKI <karl.komierowski@stericsson.com>
2012-05-22power: ab8500_bm: Don't clear the CCMuxOffset bitKalle Komierowski
The CCMuxOffset bit is not kept set, this will force the columb counter of the AB8500 to use the measure offset calibration. This should increase the accuracy of the fuel gauge. ST-Ericsson ID: 414923 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I82649e0d6f07933a36f48d33a877e72c5a5aa50e Signed-off-by: Kalle Komierowski <karl.komierowski@stericsson.com> Signed-off-by: Marcus Cooper <marcus.xm.cooper@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50913 Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22ab8500-pwm:Add sysfs path to disable LED blinkingNaga Radhesh
Add sysfs path to disable LED blinking functionality ST-Ericsson ID: 366316 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:I3f4c62525defe948459cf74c3ae18f4cf81945bf Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50621 Reviewed-by: Arun MURTHY <arun.murthy@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22ab8500-debugfs: Sizeof mismatchAshok G
St-Ericsson Linux next: NA St-Ericsson Id: 420118 St-Ericsson FOSS-OUT ID: Trivial Change-Id: I2acc2ceced2e22d6f432dbe2f6b8a448c410c99d Signed-off-by: Ashok G <ashok.g@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50651 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Mattias WALLIN <mattias.wallin@stericsson.com>
2012-05-22leds-pwm:Support HW blink functionalityNaga Radhesh
Support LED HW blink functionlity, by registering blink set function. ST-Ericsson ID: 366316 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:Ice4f7b786bd2acdd115ca920de6deb2e83d80ea3 Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50126 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22ab8500-pwm: check for valid platform data pointerNaga Radhesh
Before accessing platform data, check whether platform pointer is valid or not. ST-Ericsson ID: 366316 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Change-Id: I176dd81743d1c063f6814c35992cc8813ac57055 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/50530 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22ab8500-pwm:AB8505:Enable support for PWMLED blinkNaga Radhesh
Enable support for PWM OUT LED blinking for AB8505.Instead of having 3 pwm instances from ab8500 core file add it as platform data. ST-Ericsson ID: 366316 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id:I63cd5510d3c1071613871946f7c624d2e2026568 Signed-off-by: Naga Radhesh <naga.radheshy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45669 Reviewed-by: QABUILD Reviewed-by: Arun MURTHY <arun.murthy@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22drivers: mfd: ab8500-gpadc: Add runtime pm supportJonas Aaberg
Add runtime pm support to speed up multiple ADC reads in a row. ST-Ericsson Linux next: - ST-Ericsson ID: 408044 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I8d868d31437f4560ec3328baecebc8a9265093d4 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49950 Reviewed-by: QABUILD Reviewed-by: Ulf HANSSON <ulf.hansson@stericsson.com>
2012-05-22power: ab8500_bm: Charger current step-up/downJohan Bjornstedt
There is no state machine in the AB to step up/down the charger current to avoid dips and spikes on VBUS and VBAT when charging is started. Instead this is implemented in SW ST-Ericsson ID: 409058, 410253 ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson Linux next: NA Change-Id: Ia21d8689c6894c3f62d9a2d7e7aacda6873aa79f Signed-off-by: Johan Bjornstedt <johan.bjornstedt@stericsson.com> Signed-off-by: Mattias Wallin <mattias.wallin@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45827 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: QATEST Reviewed-by: Karl KOMIEROWSKI <karl.komierowski@stericsson.com>
2012-05-22Revert "Revert "rtc-ab: set can_wake flag""Rabin Vincent
This reverts commit 3b2031017f342d0906f9e2ba7484bcb27cbb240d. Now that the real problem has been fixed (in the RTC core and AB5500 driver), bring this back. ST-Ericsson ID: 375473 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I9e18d60fd26299e9a4c5709bdf0de7d850fba3a0 Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/39116 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Arun MURTHY <arun.murthy@stericsson.com>
2012-05-22ab8500: mfd: Add interrupt debugBengt Jonsson
This patch adds an entry in debugfs to check number of interrupts from the AB. ST-Ericsson ID: 366316 ST-Ericsson Linux next: - ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I09d391e7d755773f7438fa1263371145ba91c1f1 Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49036 Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22ab8500: mfd: Remove AB8505 detection hackBengt Jonsson
ST-Ericsson ID: 366316 ST-Ericsson Linux next: - ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I26aa50ff04843a53bddc147b7a5c501efe779f44 Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49034 Reviewed-by: QABUILD Reviewed-by: QATEST Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22ab8500: rtc: Remove fix for AB8500 ED versionBengt Jonsson
AB8500 ED (Early Drop) is no longer supported. ST-Ericsson ID: 366316 ST-Ericsson Linux next: - ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I51b860b71cf1485a202237a6962c89873b03add7 Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49030 Reviewed-by: QABUILD Reviewed-by: QATEST Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22ab8500: gpadc: Introduce new AB version detectionMichel JAOUEN
Add support for AB8505 and AB9540 ST-Ericsson ID: 366316 ST-Ericsson Linux next: - ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I9021cce8a38ba70f025b95610c84b554c4ad59ac Signed-off-by: Maxime Coquelin <maxime.coquelin@stericsson.com> Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49029 Reviewed-by: QABUILD Reviewed-by: QATEST Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22tty: serial: amba-pl011: fix cancel_delayed_work() usageRabin Vincent
PL011 calls del_timer_sync() (via cancel_delayed_work()) from atomic context. Fix it. ====================================================== [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ] 3.0.8+ #1188 ------------------------------------------------------ kworker/u:0/5 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: (&(&uap->clk_off_work)->timer){+.-...}, at: [<c01d82b4>] del_timer_sync+0x0/0xc8 and this task is already holding: (&port_lock_key){-.-...}, at: [<c03ca2b0>] pl011_clock_on+0x80/0xc4 which would create a new lock dependency: (&port_lock_key){-.-...} -> (&(&uap->clk_off_work)->timer){+.-...} but this new dependency connects a HARDIRQ-irq-safe lock: (&port_lock_key){-.-...} ... which became HARDIRQ-irq-safe at: [<c01fc734>] mark_irqflags+0x68/0x170 [<c01ff788>] __lock_acquire+0x598/0x788 [<c01fff84>] lock_acquire+0x10c/0x130 [<c06513cc>] _raw_spin_lock_irqsave+0x5c/0x98 [<c03cb788>] pl011_int+0x10/0x128 [<c0217a80>] handle_irq_event_percpu+0x98/0x1f4 [<c0217c18>] handle_irq_event+0x3c/0x5c [<c021a0f4>] handle_fasteoi_irq+0xc8/0x100 [<c02175e4>] generic_handle_irq+0x28/0x30 [<c0197078>] asm_do_IRQ+0x78/0xb8 [<c019cc90>] __irq_svc+0x50/0xf4 [<c04b21a0>] enter_sleep+0x550/0x608 [<c04b02ac>] cpuidle_idle_call+0x1c4/0x33c [<c019e1fc>] cpu_idle+0xa4/0x10c [<c0008a28>] start_kernel+0x228/0x27c [<00008040>] 0x8040 to a HARDIRQ-irq-unsafe lock: (&(&uap->clk_off_work)->timer){+.-...} ... which became HARDIRQ-irq-unsafe at: ... [<c01fc7b8>] mark_irqflags+0xec/0x170 [<c01ff788>] __lock_acquire+0x598/0x788 [<c01fff84>] lock_acquire+0x10c/0x130 [<c01d78a4>] call_timer_fn+0x68/0x1e4 [<c01d7be8>] run_timer_softirq+0x1c8/0x224 [<c01d0244>] __do_softirq+0x110/0x23c [<c01d05b8>] irq_exit+0x5c/0xc0 [<c0197308>] do_local_timer+0x50/0x80 [<c019cc90>] __irq_svc+0x50/0xf4 [<c064f30c>] __mutex_unlock_slowpath+0x150/0x17c [<c02c6d08>] sysfs_addrm_finish+0x10/0x74 [<c02c5afc>] sysfs_add_file_mode+0x70/0xb0 [<c02c8368>] create_files+0x7c/0xb4 [<c02c8458>] internal_create_group+0xb8/0x118 [<c03f08a8>] device_add_groups+0x1c/0x70 [<c03f0e2c>] device_add_attrs+0x50/0xa8 [<c03f0f94>] device_add+0x110/0x2b4 [<c0601114>] hci_register_sysfs+0x54/0x114 [<c05f2fec>] hci_register_dev+0x378/0x4d8 [<c04dbe58>] register_bluetooth+0xb4/0x124 [<c04dbf44>] probe_common+0x7c/0xcc [<c06482e0>] btcg2900_evt_probe+0x38/0x6c [<c03f3f18>] platform_drv_probe+0x18/0x1c [<c03f2c98>] really_probe+0x98/0x148 [<c03f2d90>] driver_probe_device+0x48/0x60 [<c03f21f0>] bus_for_each_drv+0x44/0x74 [<c03f2f10>] device_attach+0x78/0xa4 [<c03f2028>] bus_probe_device+0x24/0x40 [<c03f0ff8>] device_add+0x174/0x2b4 [<c03f4530>] platform_device_add+0x104/0x160 [<c0405d34>] mfd_add_device+0x194/0x1d4 [<c0405ef8>] mfd_add_devices+0x70/0xbc [<c04d6eec>] work_power_off_chip+0x11c/0x1c8 [<c01e250c>] process_one_work+0x2ac/0x4c8 [<c01e29f8>] worker_thread+0x144/0x234 [<c01e8280>] kthread+0x80/0x88 [<c019dc88>] kernel_thread_exit+0x0/0x8 other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&uap->clk_off_work)->timer); local_irq_disable(); lock(&port_lock_key); lock(&(&uap->clk_off_work)->timer); <Interrupt> lock(&port_lock_key); *** DEADLOCK *** Change-Id: I55d565d484baaee2dc76f258a5066aacbb6e6dee Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> ST-Ericsson ID: 413918 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I1a45effb0afeb4344f03ca500a5b0767bd760ec3 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47174 Reviewed-by: QABUILD Reviewed-by: Shreshtha Kumar SAHU <shreshthakumar.sahu@stericsson.com> Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com> Tested-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22mfd: ab8500: Configure AB8505Bengt Jonsson
ST-Ericsson ID: 371953 Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com>
2012-05-22drivers: power: ab8500_charger: Remove pointless checkJonas Aaberg
Remove pointless check for NULL that didn't return a proper return value. (di can't be NULL, since then containerof would have failed.) ST-Ericsson Linux next: - ST-Ericsson ID: 370799 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ic3a725150c739e50e73d36255be4c3f02ae9bb6f Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47966 Reviewed-by: Johan BJORNSTEDT <johan.bjornstedt@stericsson.com>
2012-05-22mfd/ab8500: remaining mainline differencesLinus Walleij
This collects the AB9540 changes that could not be included in the mainline patch set due to differences in the internal code (esp re GPIO driver). Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Change-Id: Ia5ed55f1f44da923e8b9ae22f9b47b681bbb8403 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47743
2012-05-22tty: serial: amba-pl011: use pm_runtime_irq_safe()Rabin Vincent
PL011 should use pm_runtime_irq_safe() since it calls the pm_runtime routines with interrupts disabled. Found via lockdep: ================================= [ INFO: inconsistent lock state ] 3.0.8+ #1187 --------------------------------- inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. kworker/u:0/5 [HC0[0]:SC0[0]:HE1:SE1] takes: (&port_lock_key){?.....}, at: [<c03ca23c>] pl011_clock_on+0xc/0xc4 {IN-HARDIRQ-W} state was registered at: [<c01fc734>] mark_irqflags+0x68/0x170 [<c01ff788>] __lock_acquire+0x598/0x788 [<c01fff84>] lock_acquire+0x10c/0x130 [<c06513cc>] _raw_spin_lock_irqsave+0x5c/0x98 [<c03cb788>] pl011_int+0x10/0x128 [<c0217a80>] handle_irq_event_percpu+0x98/0x1f4 [<c0217c18>] handle_irq_event+0x3c/0x5c [<c021a0f4>] handle_fasteoi_irq+0xc8/0x100 [<c02175e4>] generic_handle_irq+0x28/0x30 [<c0197078>] asm_do_IRQ+0x78/0xb8 [<c019cc90>] __irq_svc+0x50/0xf4 [<c0651e44>] _raw_spin_unlock_irq+0x28/0x54 [<c03c7394>] uart_carrier_raised+0x3c/0x44 [<c03c486c>] tty_port_carrier_raised+0x1c/0x20 [<c03c4d6c>] tty_port_block_til_ready+0x220/0x2cc [<c03bf2b0>] tty_open+0x1f0/0x32c [<c0273580>] chrdev_open+0x20c/0x238 [<c026e874>] __dentry_open+0x220/0x338 [<c026ea44>] nameidata_to_filp+0x50/0x5c [<c027c670>] do_last+0x43c/0x4c4 [<c027d480>] path_openat+0xb8/0x37c [<c027d824>] do_filp_open+0x30/0x7c [<c026e594>] do_sys_open+0xd8/0x170 [<c019d240>] ret_fast_syscall+0x0/0x3c irq event stamp: 60637 hardirqs last enabled at (60636): [<c0650558>] mutex_lock_nested+0x364/0x3c8 hardirqs last disabled at (60637): [<c065138c>] _raw_spin_lock_irqsave+0x1c/0x98 softirqs last enabled at (60509): [<c01d05b8>] irq_exit+0x5c/0xc0 softirqs last disabled at (60490): [<c01d05b8>] irq_exit+0x5c/0xc0 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&port_lock_key); <Interrupt> lock(&port_lock_key); *** DEADLOCK *** 7 locks held by kworker/u:0/5: #0: ((hdev->name)){.+.+.+}, at: [<c01e242c>] process_one_work+0x1cc/0x4c8 #1: ((&hdev->power_on)){+.+.+.}, at: [<c01e242c>] process_one_work+0x1cc/0x4c8 #2: (&hdev->req_lock){+.+.+.}, at: [<c05f51e8>] hci_dev_open+0x28/0x334 #3: (&main_info->man_mutex#2){+.+.+.}, at: [<c04d5f10>] cg2900_open+0xa8/0x49c #4: (&(uart_info->sleep_state_lock)){+.+.+.}, at: [<c04dd648>] uart_set_chip_power+0x64/0x228 #5: (&tty->termios_mutex){+.+...}, at: [<c04de6cc>] cg2900_hci_uart_set_baudrate+0x34/0x8c #6: (&port_lock_key){?.....}, at: [<c03ca23c>] pl011_clock_on+0xc/0xc4 stack backtrace: [<c01a36ac>] (unwind_backtrace+0x0/0xec) from [<c01fc014>] (print_usage_bug+0x184/0x1c4) [<c01fc014>] (print_usage_bug+0x184/0x1c4) from [<c01fc110>] (mark_lock_irq+0xbc/0x280) [<c01fc110>] (mark_lock_irq+0xbc/0x280) from [<c01fc59c>] (mark_lock+0x2c8/0x3f8) [<c01fc59c>] (mark_lock+0x2c8/0x3f8) from [<c01fc898>] (mark_held_locks+0x5c/0x80) [<c01fc898>] (mark_held_locks+0x5c/0x80) from [<c01fcba8>] (trace_hardirqs_on_caller+0x138/0x18c) [<c01fcba8>] (trace_hardirqs_on_caller+0x138/0x18c) from [<c0651e40>] (_raw_spin_unlock_irq+0x24/0x54) [<c0651e40>] (_raw_spin_unlock_irq+0x24/0x54) from [<c03f8df8>] (rpm_callback+0x3c/0x5c) [<c03f8df8>] (rpm_callback+0x3c/0x5c) from [<c03f9abc>] (rpm_resume+0x2ec/0x3c0) [<c03f9abc>] (rpm_resume+0x2ec/0x3c0) from [<c03f9e04>] (__pm_runtime_resume+0x48/0x60) [<c03f9e04>] (__pm_runtime_resume+0x48/0x60) from [<c03ca264>] (pl011_clock_on+0x34/0xc4) [<c03ca264>] (pl011_clock_on+0x34/0xc4) from [<c03ca34c>] (pl011_set_termios+0x28/0x308) [<c03ca34c>] (pl011_set_termios+0x28/0x308) from [<c03c76b8>] (uart_change_speed+0x90/0x94) [<c03c76b8>] (uart_change_speed+0x90/0x94) from [<c03c7724>] (uart_set_termios+0x68/0x1b4) [<c03c7724>] (uart_set_termios+0x68/0x1b4) from [<c04de710>] (cg2900_hci_uart_set_baudrate+0x78/0x8c) [<c04de710>] (cg2900_hci_uart_set_baudrate+0x78/0x8c) from [<c04dd6e4>] (uart_set_chip_power+0x100/0x228) [<c04dd6e4>] (uart_set_chip_power+0x100/0x228) from [<c04d6090>] (cg2900_open+0x228/0x49c) [<c04d6090>] (cg2900_open+0x228/0x49c) from [<c04dc4b4>] (btcg2900_open+0x84/0x188) [<c04dc4b4>] (btcg2900_open+0x84/0x188) from [<c05f5254>] (hci_dev_open+0x94/0x334) [<c05f5254>] (hci_dev_open+0x94/0x334) from [<c05f5508>] (hci_power_on+0x14/0x6c) [<c05f5508>] (hci_power_on+0x14/0x6c) from [<c01e250c>] (process_one_work+0x2ac/0x4c8) [<c01e250c>] (process_one_work+0x2ac/0x4c8) from [<c01e29f8>] (worker_thread+0x144/0x234) [<c01e29f8>] (worker_thread+0x144/0x234) from [<c01e8280>] (kthread+0x80/0x88) [<c01e8280>] (kthread+0x80/0x88) from [<c019dc88>] (kernel_thread_exit+0x0/0x8) Change-Id: I8b05184e348656a0d422b5b68267ee03246c6563 Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> ST-Ericsson ID: 413918 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Id5a17f56dfa1b1b8c469237be5b9c236ad212137 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47173 Reviewed-by: QABUILD Tested-by: Rabin VINCENT <rabin.vincent@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22RTC: pl031: Removed RTC Timer interrupt handling.Rajkumar Kasirajan
Removed RTT interrupt handling, since PIE mode interrupts now emulated in generic code via an hrtimer. ST-Ericsson ID: 345151 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: NA Signed-off-by: Rajkumar Kasirajan <rajkumar.kasirajan@stericsson.com> Change-Id: I27f3803c50120a8e7369104fe0eb2c5536f314cb Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47378 Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22mfd: ab8500: implement api to dump all registersMian Yousaf Kaukab
ST-Ericsson Linux next: - ST-Ericsson ID: 402239 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I46b16d38d8d521e0f994e6a92a0b3892eaa5382f Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/46910 Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22mfd: abx500: add api to dump all registersMian Yousaf Kaukab
Some drivers can detect sub system failures e.g. shared memory driver can detect modem sub system failures. It would be helpful in analyzing these failures if AB register dump is available at that point. This patch adds the API for the drivers to dump AB registers in the kernel log. ST-Ericsson Linux next: - ST-Ericsson ID: 402239 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I544e40b4e2f68a80a6aa73135d4a15c433ec6a8b Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/46909 Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22mfd: ab8500: add debugfs node to read all registersMian Yousaf Kaukab
Update the ab8500_registers_print() to reuse it from multiple places. ST-Ericsson Linux next: - ST-Ericsson ID: 402239 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ie3ea115f8f408befbe095a5d426954f30db18156 Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/46908 Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22power: ab5500-btemp: enable btemp auto triggerRajagopala V
Fix and enable battery temperature auto trigger. ST-Ericsson Linux next: NA ST-Ericsson ID: 372448 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I83d57133d5bebea00b658d170139a62be8e6f79f Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/43250 Reviewed-by: QABUILD Reviewed-by: Arun MURTHY <arun.murthy@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22power: ab5500-btemp: support btemp_ball node measurementRajagopala V
Support battery temperature measurement through btemp_ball node for btemp gpadc auto trigger. ST-Ericsson Linux next: NA ST-Ericsson ID: 372448 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I7e99a106a5840d21a108a0bae04e79f091bb26e1 Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/43249 Reviewed-by: QABUILD Reviewed-by: Arun MURTHY <arun.murthy@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22power: ab5500-btemp: manual mode monitoring as platform dataRajagopala V
Move battery temperature manual mode monitoring selection to platform data. ST-Ericsson Linux next: NA ST-Ericsson ID: 372448 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I9224e5cc8bed77be6a10344d32e480a7717a1d22 Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/43248 Reviewed-by: QABUILD Reviewed-by: Arun MURTHY <arun.murthy@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22drivers:watchdog:ux500: Disable when timeout == 0Per Fransson
Setting the watchdog timeout to 0 makes any attempt to open the dev node fail. This makes it possible to disable the watchdog functionality on the kernel commandline with "ux500_wdt.timeout=0", ST-Ericsson ID: 365851 ST-Ericsson Linux next:NA ST-Ericsson FOSS-OUT ID:Trivial Change-Id: I917258c9310ea2267c877c3c13d00dc08c30a147 Signed-off-by: Per Fransson <per.xx.fransson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45299 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22serial/amba-pl011: Return early in deadlock work-around if there is no ttyKalle Vahlman
The first amba port does not always have an attached tty, which will result in a crash if the work-around is activated. This seems to be the case for example on Snowball which has no modem hw, which seems to be the main use-case for this work-around.
2012-05-22mfd: ab8500-denc: Changes for porting on 3.3Philippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@stericsson.com>
2012-05-22Add support for the 9100 Li-ION battery and adjust the bkup battery charger ↵Gregory Hermant
parameters Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
2012-05-22smsc911x: Enable fsmc clock and vape regulatorPhilippe Langlais
Now fsmc clock is disabled at boot and vape is not maintained, so to have the ethernet driver working on Snowball we have to enable them. So add fsmc clock management if any and use the not use vddvario regulator mapped on vape for Snowball board. Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2012-05-22power: ab5500-fg: optimize delays during probeRajagopala V
Optimize delays during fg psy registration by powering up fuel gauge before registration and scheduling periodic workqueues at 250msec so that enough samples are available for conversion. ST-Ericsson Linux next: NA ST-Ericsson ID: 373975 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Iff0ec497a90399d0dcc514df24b12d594eb06459 Signed-off-by: Rajagopala V <rajagopala.v@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/44315 Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22watchdog: Add 5500 supportVirupax Sadashivpetimath
ST-Ericsson Linux next: NA ST-Ericsson ID: 316540 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I55bf6d145fe3cf4a1fc8de8c45266832c9769a54 Signed-off-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/42473 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22watchdog: Driver renameVirupax Sadashivpetimath
Rename the u8500 watchdog driver as ux500 watchdog driver. This is done inorder to add 5500 support. ST-Ericsson Linux next: NA ST-Ericsson ID: 316540 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Iae9ec02191620da09780881169045b58bdc0230a Signed-off-by: Virupax Sadashivpetimath <virupax.sadashivpetimath@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/42935 Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22drivers/leds/leds-lm3530.c: initialize arrayAnil Kumar
Declare array with initializer to avoid using uninitialized values ST-Ericsson ID: 401383 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I908280e8a6a73c42f0dc56bb65fefeadc3418bc6 Signed-off-by: Anil Kumar <anil.kumar@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/41378 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22ab5500_bm: Add interface to reinit FG algorithmArun Murthy
A function has been added to enable reinitialisation of the fuel gauge algorithm. This can be used to to reinitialise with a different battery voltage at start-up, for verification reasons. ST-Ericsson Linux next: NA ST-Ericsson ID: 357480 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I80d6e770a57affbe7f3af0fdf82052ca1b7fe8b4 Signed-off-by: Arun Murthy <arun.murthy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40903 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22drivers/leds/leds-lp5521.c: assign valid valueAnil Kumar
Assign a valid value to variable ret to prevent returning it uninitialized ST-Ericsson ID: 401383 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ib1759f8483ecaf898f642118dfb82ce56cfeb45b Signed-off-by: Anil Kumar <anil.kumar@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/41588 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2012-05-22misc: bh1780gli: Fix some obvious short commingsJonas Aaberg
Unbalanced regulator handling on error during probe and msleep on times less than 10 ms. ST-Ericsson Linux next: - ST-Ericsson ID: 370799 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ic1080bf38a2f1e1922ec015b305b5a2de3b30f0e Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/39196 Reviewed-by: Bengt JONSSON <bengt.g.jonsson@stericsson.com>
2012-05-22power: ab5500-fg: battery capacity based on fuel gaugeArun Murthy
On enabling reset_on_read in fuel gauge register with offset 0x0C, the accumulator should be reset after reading. But it doesnt due to the hardware issue reported in ER374581. This patch adds a software workaround for the above mentione issue. ST-Ericsson Linux next: NA ST-Ericsson ID: 375503 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I92e06e3429faa2b58318015c6d93647d67c31160 Signed-off-by: Arun Murthy <arun.murthy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40341 Reviewed-by: Rajagopala VENKATARAVANAPPA X <rajagopala.v@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Vijaya Kumar K-1 <vijay.kilari@stericsson.com> Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22power: re-order in makefileArun Murthy
Change the oder in which linking happens, the expected result is ab5500_charger should be probed first followed by ab5500_btemp and ab5500_fg. ST-Ericsson Linux next: NA ST-Ericsson ID: 375503 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I56456ea36f23d5c461c1913e942afa6cd8cdb757 Signed-off-by: Arun Murthy <arun.murthy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40450 Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22power: ab5500-btemp: optimize the delay in battery identificationArun Murthy
In battery identification, a current source is to be enabled before reading the batctrl/bdata pin. After enabling the current some delay is required so as to be able to read the bdata/batctrl pin. ST-Ericsson Linux next: NA ST-Ericsson ID: 364300 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ib090bd617fc8363ea63379c731189859553d7627 Signed-off-by: Arun Murthy <arun.murthy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/40454 Reviewed-by: Vijaya Kumar K-1 <vijay.kilari@stericsson.com> Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com>
2012-05-22rtc: ab: only enable alarm in set_alarm if requestedRabin Vincent
We should not enable the alarm if alarm->enabled is false. ST-Ericsson ID: 375473 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I8a73bc3752fbdbd19783a426a76213d35b48a870 Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/39113 Reviewed-by: QATEST Reviewed-by: QABUILD
2012-05-22ux500: pl011: remove hardcoding of uart instanceShreshtha Kumar Sahu
amba-pl011 mechanism detects the hardware register deadlock situation, and triggers a workaround tasklet. Tasklet implementation should execute workaround for the instance of the uart on which deadlock is detected. This patch provides the uart line number on whcich the deadlock is detected to the tasklet. ST-Ericsson ID: 355971 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ie8fbea42dc20cae1b604b555815935bcb5a70241 Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/38415 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>