cascardo/linux.git
11 years agoUPSTREAM: mwifiex: improvement in cfg80211 set_bitrate_mask handler
Bing Zhao [Tue, 19 Feb 2013 20:06:20 +0000 (12:06 -0800)]
UPSTREAM: mwifiex: improvement in cfg80211 set_bitrate_mask handler

This patch configures data rates to firmware using bitrate mask
provided by cfg80211.

Earlier we used to only update band information in this handler
which will be used later for ibss network. Due to recent
modifications in ibss join code we don't need to do that.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
BUG=chrome-os-partner:17764
TEST=associate to 5G 11n AP nearby, iw link shows tx bitrate MCS-15.
disconnect and re-connect, association succeeds and iw link still
shows MCS-15.

Change-Id: Iba896d38674517549a162bd7f2627dd00c6f6dd0
Reviewed-on: https://gerrit.chromium.org/gerrit/43523
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Bing Zhao <bzhao@marvell.com>

11 years agoCHROMIUM: regulator: s5m8767: properly disable regulators
Vincent Palatin [Tue, 19 Feb 2013 21:31:23 +0000 (13:31 -0800)]
CHROMIUM: regulator: s5m8767: properly disable regulators

Whatever the default operating mode of a regulator is, we want to ensure
that we are actually putting 0 in the mode to disable it.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17866
TEST=manual

Change-Id: Ic019c92a72b3a97b6ea06657b4f57774337519de
Reviewed-on: https://gerrit.chromium.org/gerrit/43531
Reviewed-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMEOS: config: Enable addrtype iptables match
Paul Stewart [Fri, 15 Feb 2013 22:03:48 +0000 (14:03 -0800)]
CHROMEOS: config: Enable addrtype iptables match

This enables the "addrtype" matches to iptables.  This will allow
iptables rules to match the type of source and destination addresses
that should be matched.  This allows us to classify incoming packets
as "unicast" (intended directly for us) which will allow us to
restrict the types of packets sent to userspace for multicast-reply
classification.  See CL
https://gerrit.chromium.org/gerrit/#/c/43447/3/iptables.conf for an
example of how this will be used.

Signed-off-by: Paul Stewart <pstew@chromium.org>
BUG=chromium-os:38605
TEST=Compile kernel, ensure iptables works correctly with "-m addrtype" rule

Change-Id: I5cb191453b9458f9014a6494574ccdc151d99d75
Reviewed-on: https://gerrit.chromium.org/gerrit/43426
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Grant Grundler <grundler@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>

11 years agoCHROMIUM: BACKPORT: mm: better fix for OOM killer hang
Luigi Semenzato [Tue, 4 Dec 2012 18:41:21 +0000 (10:41 -0800)]
CHROMIUM: BACKPORT: mm: better fix for OOM killer hang

This change replaces a previous fix for crosbug.com/32321
(https://gerrit.chromium.org/gerrit/#/c/36953) with a better
fix which David Rentjes applies upstream (this is the equivalent
change).  I have studied and tested David's change and it also
avoids the deadlock.  In addition, our change has the potential
for unnecessarily killing processes that don't need to be killed.
Furthermore, it's probably better to track upstream more closely.

 commit 9ff4868e3051d9128a24dd330bed32011a11421d
 Author:     David Rientjes <rientjes@google.com>
 AuthorDate: Tue Dec 11 16:01:30 2012 -0800
 Commit:     Linus Torvalds <torvalds@linux-foundation.org>
 CommitDate: Tue Dec 11 17:22:24 2012 -0800

    mm, oom: allow exiting threads to have access to memory reserves

    Exiting threads, those with PF_EXITING set, can pagefault and require
    memory before they can make forward progress.  This happens, for instance,
    when a process must fault task->robust_list, a userspace structure, before
    detaching its memory.

    These threads also aren't guaranteed to get access to memory reserves
    unless oom killed or killed from userspace.  The oom killer won't grant
    memory reserves if other threads are also exiting other than current and
    stalling at the same point.  This prevents needlessly killing processes
    when others are already exiting.

    Instead of special casing all the possible situations between PF_EXITING
    getting set and a thread detaching its mm where it may allocate memory,
    which probably wouldn't get updated when a change is made to the exit
    path, the solution is to give all exiting threads access to memory
    reserves if they call the oom killer.  This allows them to quickly
    allocate, detach its mm, and free the memory it represents.

    Summary of Luigi's bug report:

    : He had an oom condition where threads were faulting on task->robust_list
    : and repeatedly called the oom killer but it would defer killing a thread
    : because it saw other PF_EXITING threads.  This can happen anytime we need
    : to allocate memory after setting PF_EXITING and before detaching our mm;
    : if there are other threads in the same state then the oom killer won't do
    : anything unless one of them happens to be killed from userspace.
    :
    : So instead of only deferring for PF_EXITING and !task->robust_list, it's
    : better to just give them access to memory reserves to prevent a potential
    : livelock so that any other faults that may be introduced in the future in
    : the exit path don't cause the same problem (and hopefully we don't allow
    : too many of those!).

Signed-off-by: David Rientjes <rientjes@google.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Tested-by: Luigi Semenzato <semenzato@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
BUG=chromium-os:38812
TEST=manually tested in a deadlock situation

Change-Id: If0c52a7009dbc7002d4b26ffe91a1a97989f2215
Signed-off-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/39199

11 years agoCHROMIUM: ASoC: samsung: Enable daisy platform to support MAX98088.
Dylan Reid [Fri, 15 Feb 2013 00:00:50 +0000 (16:00 -0800)]
CHROMIUM: ASoC: samsung: Enable daisy platform to support MAX98088.

The Spring board will use the MAX98088 instead of the MAX98095.  Add
the ability to use this codec to the daisy platform driver.

BUG=chrome-os-partner:17794
TEST=play audio on snow and spring.

Change-Id: I7beb941d931d198a37d50e970821b8a32786a2e3
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43358
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoUPSTREAM: wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED...
Oleg Nesterov [Mon, 21 Jan 2013 19:48:17 +0000 (20:48 +0100)]
UPSTREAM: wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED task

wake_up_process() should never wakeup a TASK_STOPPED/TRACED task.
Change it to use TASK_NORMAL and add the WARN_ON().

TASK_ALL has no other users, probably can be killed.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
BUG=chromium-os:38610
TEST=link build

Change-Id: I6573a5341e55309f10d3597d2fcf40a0b8e9d73a
(cherry picked from upstream commit 9067ac85d533651b98c2ff903182a20cbb361fcb)
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43145
Reviewed-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoUPSTREAM: ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
Oleg Nesterov [Mon, 21 Jan 2013 19:48:00 +0000 (20:48 +0100)]
UPSTREAM: ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL

putreg() assumes that the tracee is not running and pt_regs_access() can
safely play with its stack.  However a killed tracee can return from
ptrace_stop() to the low-level asm code and do RESTORE_REST, this means
that debugger can actually read/modify the kernel stack until the tracee
does SAVE_REST again.

set_task_blockstep() can race with SIGKILL too and in some sense this
race is even worse, the very fact the tracee can be woken up breaks the
logic.

As Linus suggested we can clear TASK_WAKEKILL around the arch_ptrace()
call, this ensures that nobody can ever wakeup the tracee while the
debugger looks at it.  Not only this fixes the mentioned problems, we
can do some cleanups/simplifications in arch_ptrace() paths.

Probably ptrace_unfreeze_traced() needs more callers, for example it
makes sense to make the tracee killable for oom-killer before
access_process_vm().

While at it, add the comment into may_ptrace_stop() to explain why
ptrace_stop() still can't rely on SIGKILL and signal_pending_state().

Reported-by: Salman Qazi <sqazi@google.com>
Reported-by: Suleiman Souhlal <suleiman@google.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
BUG=chromium-os:38610
TEST=link build

Change-Id: Iee6b0f1362545ed014e9e63abb566715d45d524d
(cherry picked from upstream commit 9899d11f654474d2d54ea52ceaa2a1f4db3abd68)
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43144
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoUPSTREAM: ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
Oleg Nesterov [Mon, 21 Jan 2013 19:47:41 +0000 (20:47 +0100)]
UPSTREAM: ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()

Cleanup and preparation for the next change.

signal_wake_up(resume => true) is overused. None of ptrace/jctl callers
actually want to wakeup a TASK_WAKEKILL task, but they can't specify the
necessary mask.

Turn signal_wake_up() into signal_wake_up_state(state), reintroduce
signal_wake_up() as a trivial helper, and add ptrace_signal_wake_up()
which adds __TASK_TRACED.

This way ptrace_signal_wake_up() can work "inside" ptrace_request()
even if the tracee doesn't have the TASK_WAKEKILL bit set.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
BUG=chromium-os:38610
TEST=link build

Change-Id: Ifef1e075ab82e588804961484981aff55a5f054d
(cherry picked from upstream commit 910ffdb18a6408e14febbb6e4b6840fd2c928c82)
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43143
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: config: add MAX98088 driver on Exynos platforms.
Dylan Reid [Thu, 14 Feb 2013 23:51:34 +0000 (15:51 -0800)]
CHROMIUM: config: add MAX98088 driver on Exynos platforms.

On Spring, this codec will be used on the next board spin.

BUG=chromeos-partner:17794
TEST=push kernel to daisy and (modified) spring, check audio.

Change-Id: Id91d3b712e31eb98067f8a950ed6fcecf4c43593
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43357
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: exynos: dts: Make audio codec per board
Dylan Reid [Thu, 14 Feb 2013 19:54:59 +0000 (11:54 -0800)]
CHROMIUM: exynos: dts: Make audio codec per board

Move the audio codec specification from the common cros5250 to each
board.  This will allow for spring to use a different codec than snow.

BUG=chrome-os-partner:17794
TEST=build and run images for daisy and spring, listen to audio.

Change-Id: If61d794785dbb6786a37666885abc9c3ea5791a3
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43356
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: ASoC: max98088: Add TLV data for volume controls.
Dylan Reid [Thu, 14 Feb 2013 00:19:21 +0000 (16:19 -0800)]
CHROMIUM: ASoC: max98088: Add TLV data for volume controls.

Specify volumes as defined in the MAX98088/9 data sheet.  Allows ALSA
lib snd_mixer_selem_get_playback_dB_range and related functions to
work.

BUG=chrome-os-partner:17794
TEST=amixer cget on volume controls, observe valid range.

Change-Id: Ib140cf31c23d5191ae165f76508e4ad44f197241
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43355
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: Input: cyapa - Set to power mode OFF on remove
Benson Leung [Thu, 6 Dec 2012 20:24:42 +0000 (12:24 -0800)]
CHROMIUM: Input: cyapa - Set to power mode OFF on remove

If the driver is unloaded, set the trackpad to the lowest
power state.

Signed-off-by: Benson Leung <bleung@chromium.org>
BUG=chromium-os:21047
TEST=Set CONFIG_MOUSE_CYAPA=m in the chromeos config.
Builds clean.
Load the driver on a test system with the trackpad INT line scoped.
Check that the touchpad is functional.
rmmod cyapa to unload the cyapa module.
Click on the trackpad.
Check that the INT line does not assert on the scope, indicating
that the trackpad is indeed in OFF power state.

Change-Id: I11528776c82468a2d35a21fe22f5a6c7781d7ec0
Reviewed-on: https://gerrit.chromium.org/gerrit/42281
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
11 years agoCHROMIUM: Input: cyapa - Change phys to use a static array in cyapa
Benson Leung [Thu, 6 Dec 2012 20:44:26 +0000 (12:44 -0800)]
CHROMIUM: Input: cyapa - Change phys to use a static array in cyapa

Simplify this so we don't have to worry about freeing memory
later.

Signed-off-by: Benson Leung <bleung@chromium.org>
BUG=chromium-os:21047
TEST=builds clean.
cat /proc/bus/input/devices | grep -A1 cyapa
Check that the output is something like this (middle number will vary
based on adapter number on particular platform and kernel):
N: Name="cyapa"
P: Phys=i2c-1-0067/input0

Change-Id: I13fe249fb0ac83ce2703c22cb4dcc0bf89f0aa9f
Reviewed-on: https://gerrit.chromium.org/gerrit/42279
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
11 years agoCHROMIUM: Input: cyapa - Remove BL_KEY defines.
Benson Leung [Wed, 5 Dec 2012 23:52:04 +0000 (15:52 -0800)]
CHROMIUM: Input: cyapa - Remove BL_KEY defines.

These defines are not used anywhere in the driver.

Signed-off-by: Benson Leung <bleung@chromium.org>
BUG=chromium-os:21047
TEST=Builds clean.

Change-Id: I478862c52ba065af3af270ad3ec5c04592979123
Reviewed-on: https://gerrit.chromium.org/gerrit/42278
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
11 years agoCHROMIUM: Input: cyapa - Only set INPUT_PROP_BUTTONPAD on buttonpads
Benson Leung [Thu, 6 Dec 2012 21:00:36 +0000 (13:00 -0800)]
CHROMIUM: Input: cyapa - Only set INPUT_PROP_BUTTONPAD on buttonpads

Use the button capabilities to determine if this is a buttonpad,
ie, one where there is a single button under the trackpad.

If there is exactly one physical button, a left button, then set
INPUT_PROP_BUTTONPAD.

Signed-off-by: Benson Leung <bleung@chromium.org>
BUG=chromium-os:21047
TEST=builds clean.
Test on two systems, one with a buttonpad (such as Lumpy)
and another with real physical buttons (Butterfly).
Do the following on both:
from crosh, run tpcontrol log
Then, from the shell, grep isButtonPad /var/log/touchpad_activity_log.txt
On Lumpy, this should return "isButtonPad": true
On Butterfly, this should return "isButtonPad": false

Change-Id: Ic46b5a7c9585f22bef7693be53c0344a62ba331a
Reviewed-on: https://gerrit.chromium.org/gerrit/42277
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
11 years agoCHROMIUM: spring: dts: add Atmel trackpad configuration
Vincent Palatin [Wed, 13 Feb 2013 20:24:49 +0000 (12:24 -0800)]
CHROMIUM: spring: dts: add Atmel trackpad configuration

The Cypress one is defined in the common device tree,
so we currently define both of them.

Also add another entry if the trackpad is in bootloader mode at
address 0x25.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17825
TEST=boot a machine with an Atmel trackpad attached and one with Cypress
trackpad and have a working pointer on both of them.

Change-Id: I1886f7d3b2eedf39d73ca31376bd3229f8373b2d
Reviewed-on: https://gerrit.chromium.org/gerrit/43230
Reviewed-by: Benson Leung <bleung@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: input: atmel_mxt_ts - bail out early if we have no hardware
Vincent Palatin [Wed, 13 Feb 2013 23:29:49 +0000 (15:29 -0800)]
CHROMIUM: input: atmel_mxt_ts - bail out early if we have no hardware

When using the device tree to configure the kernel I2C devices,
the devices are not probed. So if we want to support multiple optional
peripherals, we might end up executing their probe callback.
In that case, just probe early the Atmel chip on the i2c and bail out
early if it is not present.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17825
TEST=boot a machine with an Atmel trackpad attached and one with Cypress
trackpad and have a working pointer on both of them.

Change-Id: I0c948cac2a38f587cc5f1efa5ba424715f25804d
Reviewed-on: https://gerrit.chromium.org/gerrit/43229
Reviewed-by: Benson Leung <bleung@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: input: cyapa - bail out early if we have no hardware
Vincent Palatin [Wed, 13 Feb 2013 23:29:49 +0000 (15:29 -0800)]
CHROMIUM: input: cyapa - bail out early if we have no hardware

When using the device tree to configure the kernel I2C devices,
the devices are not probed. So if we want to support multiple optional
peripherals, we might end up executing their probe callback.
In that case, just probe early the Cypress chip on the i2c and bail out
early if it is not present.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17825
TEST=boot a machine with an Atmel trackpad attached and one with Cypress
trackpad and have a working pointer on both of them.

Change-Id: I7d8cc499c5844521fe1b0eb703001f734cc43499
Reviewed-on: https://gerrit.chromium.org/gerrit/43228
Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: exynos: de-activate internal backlight on Spring
Vincent Palatin [Thu, 14 Feb 2013 20:29:57 +0000 (12:29 -0800)]
CHROMIUM: exynos: de-activate internal backlight on Spring

On Spring, the Parade eDP bridge generates internally the PWM for the
LCD backlight.
When it is present, we can avoid configuring the
internal Exynos PWM in order to save power and to have only one
backlight device.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17227
TEST=boot on Spring and Snow, see backlight coming up in both cases

Change-Id: Id4d9db185b5e928f0b81d7fb358575cf07a20e36
Reviewed-on: https://gerrit.chromium.org/gerrit/43308
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: auxdisplay/ps8620: implement backlight control
Vincent Palatin [Thu, 14 Feb 2013 19:40:36 +0000 (11:40 -0800)]
CHROMIUM: auxdisplay/ps8620: implement backlight control

Add a standard backlight interface to the PS8622 bridge.

Also refactor how we are storing the driver data in a more classical fashion.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17227
TEST=on Spring, boot ChromeOS and press Backlight+/- keys from 100% to 0%
and back.

Change-Id: I1989192161ed6f6d5aafb5399658114a2f60bd97
Reviewed-on: https://gerrit.chromium.org/gerrit/43307
Reviewed-by: Todd Broch <tbroch@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: atkbd: improve workaround for chromeos EC bug
Luigi Semenzato [Thu, 14 Feb 2013 20:36:50 +0000 (12:36 -0800)]
CHROMIUM: atkbd: improve workaround for chromeos EC bug

This makes the workaround for commit b483f9730b97ba8812340cf1584b491d5aa1e774
(https://gerrit.chromium.org/gerrit/43049, "CHROMIUM: atkbd: workaround
for ChromeOS EC keyboard enable bug") work properly by re-enabling the
keyboard IRQ which was accidentally disabled.

BUG=chrome-os-partner:17810
TEST=tested with > 200 power cycles and > 30 workaround triggers
BRANCH=none

Change-Id: Ia8a817f665a3575eebeb1ba2ec3aa89f80c3e0e3
Signed-off-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43300

11 years agoCHROMEOS: config: Add support for iptables QUEUE
Paul Stewart [Thu, 7 Feb 2013 00:18:22 +0000 (16:18 -0800)]
CHROMEOS: config: Add support for iptables QUEUE

Add the QUEUE target to the kernel.  This pulls in a bunch of
other modules we DON'T want, so explicilty configure these
off.

Signed-off-by: Paul Stewart <pstew@chromium.org>
BUG=chromium-os:38605
TEST=Compile kernel.  run ./chromeos/scripts/kernelconfig oldconfig
and confirm there are no additional changes

Change-Id: I07b53e81df045fae522c1048895138dd66e6d5d4
Reviewed-on: https://gerrit.chromium.org/gerrit/43133
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Reviewed-by: Grant Grundler <grundler@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
11 years agodrm/exynos: Turn off VT switching on suspend
Sean Paul [Tue, 12 Feb 2013 20:34:07 +0000 (15:34 -0500)]
drm/exynos: Turn off VT switching on suspend

The exynos driver keeps track of dpms state on suspend/resume such that
we don't require VT switching. Disable it on driver probe.

BUG=chromium-os:38536
TEST=Tested on snow, used powerd_suspend and verified no VT switch

Change-Id: Ie20a0090474d259db6c063a1feb2e4eeee289a4d
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43118
Reviewed-by: Benson Leung <bleung@chromium.org>
11 years agoUPSTREAM: PM: make VT switching to the suspend console optional
Jesse Barnes [Tue, 12 Feb 2013 20:12:20 +0000 (15:12 -0500)]
UPSTREAM: PM: make VT switching to the suspend console optional

KMS drivers can potentially restore the display configuration without
userspace help.  Such drivers can can call a new funciton,
pm_vt_switch_required(false) if they support this feature.  In that
case, the PM layer won't VT switch to the suspend console at suspend
time and then back to the original VT on resume, but rather leave things
alone for a nicer looking suspend and resume sequence.

BUG=chromium-os:38536
TEST=Tested on snow, verified no VT switch on powerd_suspend

Change-Id: Id392b1ea14a0fef165b75d3caa4a9fa9e593740f
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43117
Reviewed-by: Benson Leung <bleung@chromium.org>
11 years agoCHROMIUM: atkbd: workaround for ChromeOS EC keyboard enable bug
Luigi Semenzato [Mon, 11 Feb 2013 19:47:48 +0000 (11:47 -0800)]
CHROMIUM: atkbd: workaround for ChromeOS EC keyboard enable bug

The ChromeOS EC enables keystrokes too early, and the driver
can get scancodes when it's expecting a response from the
GETID request.  The workaround consists of repeating the request
a few times if it fails.

BUG=chrome-os-partner:17005
TEST=verified that the workaround works around the bug
BRANCH=none

Signed-off-by: Luigi Semenzato <semenzato@chromium.org>
Change-Id: Ica4ad7ed1564c07ab196b302d1a33732a48c680f
Reviewed-on: https://gerrit.chromium.org/gerrit/43049
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Tested-by: Luigi Semenzato <semenzato@chromium.org>
Commit-Queue: Luigi Semenzato <semenzato@chromium.org>

11 years agoCHROMIUM: ALSA: hda - Hack in a delay when turning codec on.
Dylan Reid [Wed, 13 Feb 2013 03:11:47 +0000 (19:11 -0800)]
CHROMIUM: ALSA: hda - Hack in a delay when turning codec on.

Add a 10msec delay before and after powering on the codec.  It might
make link more likely to produce audio.

BUG=chrome-os-partner:17393
TEST=modified loopback test for 20 hours without losing audio.

Change-Id: I62822ae47b8a538c9537be42f8d6b3f3852dbb11
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43162
Commit-Queue: Trond Wuellner <trond@chromium.org>
Commit-Queue: Puneet Kumar <puneetster@chromium.org>
Reviewed-by: Puneet Kumar <puneetster@chromium.org>
11 years agoCHROMIUM: mmc: card: add a quirk for Kingston eMMC
Vincent Palatin [Wed, 13 Feb 2013 00:20:12 +0000 (16:20 -0800)]
CHROMIUM: mmc: card: add a quirk for Kingston eMMC

The Kingston eMMC 16GB is sometimes freezing (not answering to the
request) when doing a multiple read (CMD18).
With this workaround, I'm no longer encountering the issue.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17397
TEST=on Spring with unreliable Kingston eMMC, /usr/sbin/chromeos-install,
then boot the board from eMMC and see both steps succeeding without freeze.

Change-Id: If22613093debafeb90ecdc90b8ad5373d2050de9
Reviewed-on: https://gerrit.chromium.org/gerrit/43149
Reviewed-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoRevert "CHROMIUM: USB: add quirk for Novatel Wireless E362 modem"
Ben Chan [Wed, 13 Feb 2013 02:24:03 +0000 (18:24 -0800)]
Revert "CHROMIUM: USB: add quirk for Novatel Wireless E362 modem"

This reverts commit 4c1721759b9744d82c85926a188efcbd023df1e5

Change-Id: Ib6655f7980b66de712eaf6e475121d8fcd4ca8b9
Reviewed-on: https://gerrit.chromium.org/gerrit/43158
Commit-Queue: Ben Chan <benchan@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
11 years agoCHROMIUM: USB: add quirk for Novatel Wireless E362 modem
Ben Chan [Tue, 12 Feb 2013 02:23:58 +0000 (18:23 -0800)]
CHROMIUM: USB: add quirk for Novatel Wireless E362 modem

BUG=chrome-os-partner:17609
TEST=Tested the following:
1. Leave the Chromebook on battery and verify that the USB auto-suspend
   is enabled on the E362 modem.
2. Repeatedly suspend and resume the Chromebook.

Change-Id: Ic9f0b82e6092f50b4e1f06192c29a1f3f4aa1326
Signed-off-by: Ben Chan <benchan@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43125
Reviewed-by: Scott James Remnant <keybuk@chromium.org>
11 years agoCHROMIUM: BACKPORT: regulator: s5m8767: fix stack corruption.
Todd Broch [Tue, 12 Feb 2013 21:27:01 +0000 (13:27 -0800)]
CHROMIUM: BACKPORT: regulator: s5m8767: fix stack corruption.

This CL fixes same stack corruption identified by the following commit

     commit 3ef303988cfcb35922f550892cf476e861377f0b
     Author: Inderpal Singh <inderpal.singh@linaro.org>
     Date:   Wed Dec 12 08:57:00 2012 +0530

 regulator: s5m8767: Fix probe failure due to stack corruption

Prior to the upstream fix, the failure manifested itself as kernel
Oops.  In CHROMIUM kernel (3.4) it quietly overwrote the i2c register
index to '0' (PMIC_ID) which led to successful return but without
writing the new voltage value.

This changelist mimics the upstream patch and can be dropped once
we've moved to 3.8 kernel.

BUG=chrome-os-partner:16430, chromium-os:38853
TEST=build & boot.  See voltage levels change based on cpufreq.

Signed-off-by: Todd Broch <tbroch@chromium.org>
Change-Id: I620f1a0487f0cce409e9fc223fb964a076e024d1
Reviewed-on: https://gerrit.chromium.org/gerrit/43129
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: HID: multitouch: Add advanced silicon cooltouch 2303 controller
Bernie Thompson [Mon, 11 Feb 2013 20:04:53 +0000 (12:04 -0800)]
CHROMIUM: HID: multitouch: Add advanced silicon cooltouch 2303 controller

Based on 9d8e6e by dparker@chromium.org.

BUG=None
TEST=Boot kernel on machine with cooltouch controller attached.
Verify hid_multitouch module is loaded for the USB device.

Change-Id: Iab7b36fc7c41d6bed40f65c0a04e8ea9d011e3eb
Signed-off-by: Bernie Thompson <bhthompson@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/43060
Reviewed-by: Olof Johansson <olofj@chromium.org>
11 years agoCHROMIUM: spring: dts: update Wifi 32Khz clock declaration
Vincent Palatin [Sat, 9 Feb 2013 01:57:06 +0000 (17:57 -0800)]
CHROMIUM: spring: dts: update Wifi 32Khz clock declaration

On SLSI S5M8767 PMIC, the fixed regulator for the 32Khz clock for
Wifi/Bluetooth is called en32khz_bt.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17512
TEST=on Spring with S5M8767 PMIC, boot and see Wifi coming up properly

Change-Id: I0224d866bd59a242b77db28ec985d7a1f0fad589
Reviewed-on: https://gerrit.chromium.org/gerrit/42977
Reviewed-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: regulator: s5m8767: add support for 32Khz clocks
Vincent Palatin [Sat, 9 Feb 2013 01:57:06 +0000 (17:57 -0800)]
CHROMIUM: regulator: s5m8767: add support for 32Khz clocks

Present the 32Khz clocks as fixed regulators.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17512
TEST=on Spring with S5M8767 PMIC, boot and see Wifi coming up properly

Change-Id: I51ff3adcacc2ea442c7a73aac0ab914767b2f8ce
Reviewed-on: https://gerrit.chromium.org/gerrit/42976
Reviewed-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: spring: dts: Cleanup regulator op_modes for s5m8767.
Todd Broch [Fri, 8 Feb 2013 22:30:16 +0000 (14:30 -0800)]
CHROMIUM: spring: dts: Cleanup regulator op_modes for s5m8767.

Changes were:
  ldo6: should be on in S0
  ldo17: can be turned off
  buck6: can be turned off
  emmc VR was moved to buck9

BUG=chrome-os-partner:16430
TEST=compile & boot kernel on spring
Run following and see properly configured opmodes for various VRs
     i=1
     for reg in 0x32 0x34 0x3d 0x46 0x4f 0x54 0x56 0x58 0x5a ; do
 a=$(( $(( $(i2cget -y -f 0 0x66 $reg) & 0xc0 )) >> 6 ))
 echo "${reg} :: buck${i} op_mode:${a}"
 i=$(( $i + 1))
     done

     i=1
     for reg in 0x5c 0x5d `seq 0x61 0x7a`; do
 a=$(( $(( $(i2cget -y -f 0 0x66 $reg) & 0xc0 )) >> 6 ))
 printf "0x%02x :: ldo${i} op_mode:%d\n" $reg $a
 i=$(( $i + 1))
     done

Signed-off-by: Todd Broch <tbroch@chromium.org>
Change-Id: I1d4093da9528beae4ff1be9f85e7d6b03d1fd713
Reviewed-on: https://gerrit.chromium.org/gerrit/42954
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: regulator: s5m8767: Enable configureable opmodes.
Todd Broch [Fri, 8 Feb 2013 22:21:53 +0000 (14:21 -0800)]
CHROMIUM: regulator: s5m8767: Enable configureable opmodes.

Allow the voltage regulators operating mode to be configured via
device tree node 'reg_op_mode'.  Previously operating modes were set
to 0x3 (always on) which is still the default for systems not using
device tree.

BUG=chrome-os-partner:16430
TEST=compile & boot kernel

Signed-off-by: Todd Broch <tbroch@chromium.org>
Change-Id: I474d92330854251dfc47a45a14eb0bc5af3e7889
Reviewed-on: https://gerrit.chromium.org/gerrit/42953
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: dts: Add node for MAX77686 RTC
Simon Glass [Sun, 3 Feb 2013 22:26:25 +0000 (14:26 -0800)]
CHROMIUM: dts: Add node for MAX77686 RTC

We will use this timer for the charger manager, so add a phandle for it.

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow
Use a pr_info() statement to check that the node is found in the driver on
boot.

Change-Id: I3239c108ce5b65c1c02ac328e27b7d5009d20c62
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42576

11 years agoCHROMIUM: power: max77686: Add basic device tree binding
Simon Glass [Sun, 3 Feb 2013 22:17:35 +0000 (14:17 -0800)]
CHROMIUM: power: max77686: Add basic device tree binding

This chip has an RTC within it, so define an "rtc" subnode. So far there
are no properties, but the existence of the node is enough to make it
accessible via a phandle.

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow
With later commits, see that we can find this node in the rtc driver.

Change-Id: Ia6d3fdb22b77b17bc4887ff3671b711f2969a251
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42575

11 years agoCHROMIUM: power: sbs: Warning on register read failure
Simon Glass [Sat, 2 Feb 2013 05:51:15 +0000 (21:51 -0800)]
CHROMIUM: power: sbs: Warning on register read failure

Warn when we fail to read from the battery.

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow
Disconnect battery and see that we start getting kernel warnings.

Change-Id: I6ad787be5bc4937df6bbcfe6f0af5a4b3ea91272
Reviewed-on: https://gerrit.chromium.org/gerrit/42574
Commit-Queue: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
11 years agoCHROMIUM: charger-manager: Allow battery to provide temperature
Simon Glass [Sun, 17 Jun 2012 17:38:45 +0000 (10:38 -0700)]
CHROMIUM: charger-manager: Allow battery to provide temperature

In some systems the we cannot obtain the cell temperature using the charger
or an ADC; we must ask the battery (fuel cell) since it has thermistors
which are closer to the battery and thus give a more accurate reading.

Add this feature to charger-manager.

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow
See that we obtain the correct temperature now (from the battery)

Change-Id: I2f2844632b7ef7b1179878cc769bcbe751c4c708
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/40169
Reviewed-by: Sameer Nanda <snanda@chromium.org>
11 years agoCHROMIUM: charger-manager: Show current state in status message
Simon Glass [Mon, 4 Feb 2013 23:04:27 +0000 (15:04 -0800)]
CHROMIUM: charger-manager: Show current state in status message

Charger-manager prints a status debug message each time it checks the
system. Adjust this so that it also prints the current charging state,
and tidy up the uevent emission code at the same time.

Keep a count of how many monitor cycles have been completed.

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow
See that a debug message appears every 10 seconds, showing the current
charge state.

Signed-off-by: Simon Glass <sjg@chromium.org>
Change-Id: Ia45d3489031fb79ca765206a7b56b4a82c7fab59
Reviewed-on: https://gerrit.chromium.org/gerrit/42573
Reviewed-by: Sameer Nanda <snanda@chromium.org>
Commit-Queue: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
11 years agoregulator: tps65090: dts: Add binding documentation
Simon Glass [Sun, 17 Jun 2012 17:22:46 +0000 (10:22 -0700)]
regulator: tps65090: dts: Add binding documentation

The binding is fairly simple but we should still have documentation for it.

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on daisy

Change-Id: I817d6934e38a963c24334c9512a8fbe8daea077a
Signed-off-by: Simon Glass <sjg@chromium.org>
BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow
Reviewed-on: https://gerrit.chromium.org/gerrit/40165
Reviewed-by: Sameer Nanda <snanda@chromium.org>
11 years agoCHERRY-PICK: ARM: EXYNOS4: Enable Suspend/Resume of MCT.
MyungJoo Ham [Wed, 2 May 2012 02:17:11 +0000 (11:17 +0900)]
CHERRY-PICK: ARM: EXYNOS4: Enable Suspend/Resume of MCT.

Suspend/Resume has been failing because of MCT after introducing EXT-GIC
to EXYNOS4. This patch allows MCT's PM to work properly.

Change-Id: I562dbd1a7e8b7f99e50b03dcb102e351617796ac
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
(cherry picked from commits f20446c7cd2138ec53428151988b223f3a99b1b4
and 6c34b32be3e9ca8c1d3b5bd303cb54063d1454fc
in branch charger-manager-for-next of
git://git.infradead.org/users/kmpark/linux-2.6-samsung)

Modified by sjg@chromium.org to build without warnings

BUG=chrome-os-partner:10617
TEST=build and boot to kernel prompt on snow

Change-Id: I164d119b9c1a82b72e79bafe75d26fe89b0bc736
Reviewed-on: https://gerrit.chromium.org/gerrit/42572
Reviewed-by: Sameer Nanda <snanda@chromium.org>
Commit-Queue: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
11 years agoWake up DP sinks for DPCD read-based detection.
Stuart Abercrombie [Wed, 6 Feb 2013 22:39:59 +0000 (14:39 -0800)]
Wake up DP sinks for DPCD read-based detection.

When in DPMS sleep state the Apple mini DP->VGA adapter doesn't respond.
This led to no external display on boot.

v2: Avoid DPCD check and keep AUX awake for EDID read.

BUG=chrome-os-partner:17063
TEST=Straight DP and various adapters on mini-DP and DP platforms.

Change-Id: I90bea73006ae9c99464b0b5bc57f3803918313a8
Reviewed-on: https://gerrit.chromium.org/gerrit/42583
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Commit-Queue: Stuart Abercrombie <sabercrombie@chromium.org>
Tested-by: Stuart Abercrombie <sabercrombie@chromium.org>
11 years agoCHROMIUM: msr: whitelist the i915 thermal control for wrmsr
Kees Cook [Fri, 8 Feb 2013 01:01:21 +0000 (17:01 -0800)]
CHROMIUM: msr: whitelist the i915 thermal control for wrmsr

Deny all userspace MSR writes except those explicitly whitelisted for
i915 thermal controls. Without this, processes with CAP_SYS_RAWIO can
run arbitrary kernel code via MSR writing.

BUG=chromium-os:38756
TEST=link build, wrmsr works only on i915 thermal registers

Change-Id: Iff5b9a466dbddd5d94e9246ff99b63a21c975406
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42910
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoUPSTREAM: x86/msr: Add capabilities check
Alan Cox [Thu, 15 Nov 2012 13:06:22 +0000 (13:06 +0000)]
UPSTREAM: x86/msr: Add capabilities check

At the moment the MSR driver only relies upon file system
checks. This means that anything as root with any capability set
can write to MSRs. Historically that wasn't very interesting but
on modern processors the MSRs are such that writing to them
provides several ways to execute arbitary code in kernel space.
Sample code and documentation on doing this is circulating and
MSR attacks are used on Windows 64bit rootkits already.

In the Linux case you still need to be able to open the device
file so the impact is fairly limited and reduces the security of
some capability and security model based systems down towards
that of a generic "root owns the box" setup.

Therefore they should require CAP_SYS_RAWIO to prevent an
elevation of capabilities. The impact of this is fairly minimal
on most setups because they don't have heavy use of
capabilities. Those using SELinux, SMACK or AppArmor rules might
want to consider if their rulesets on the MSR driver could be
tighter.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Horses <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
BUG=chromium-os:38633
TEST=link build, reading MSR correctly fails as uid 0 without caps:
 (can't use iotools with minijail because iotools is statically linked)
 `minijail0 -c 0 /usr/local/bin/python -c 'from struct import *; \
    m = open("/dev/cpu/0/msr"); m.seek(0x3a); \
    print "0x%016x" % (unpack("Q", m.read(8)))'`

(cherry picked from upstream commit c903f0456bc69176912dee6dd25c6a66ee1aed00)
Change-Id: I9d636ff7baac98a4243392428b48c0730600c7bc
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42684
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: config: enable CGROUP_FREEZER
Mandeep Singh Baines [Wed, 6 Feb 2013 22:22:38 +0000 (14:22 -0800)]
CHROMIUM: config: enable CGROUP_FREEZER

This change is need for work on idle enhancements.

The overhead is negligible. Just calls to cgroup_freezing() in
freezing_slow_path(). cgroup_freezing() is a very low
overhead call.

BUG=chromium-os:38701
TEST=Compile. Boot.

Change-Id: I8df3e19c1bc9a45c7fef0ec014db294c00ab34fc
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42797
Reviewed-by: Sameer Nanda <snanda@chromium.org>
11 years agoCHROMIUM: spring: dts: Instantiate s5m8767 PMIC.
Todd Broch [Wed, 6 Feb 2013 19:57:54 +0000 (11:57 -0800)]
CHROMIUM: spring: dts: Instantiate s5m8767 PMIC.

Note, this will enumerate multiple PMICs for the same design as the
max77686 PMIC is also enumerated via cros5250-common.dtsi.  This is
remedied by the firmware (u-boot) at boot time by pruning the
non-existent PMIC.

  See: https://gerrit.chromium.org/gerrit/#/c/41993/ for details.

CL also disables ADC node for Spring which is unused.

BUG=chrome-os-partner:16430
TEST=kernel compiles for BOARD=daisy_spring

Change-Id: Ic1070b3001b20b4825582f10bd039051a61c7459
Signed-off-by: Todd Broch <tbroch@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42798
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: spring: add DT support for s5m8767.
Todd Broch [Sat, 26 Jan 2013 02:41:30 +0000 (18:41 -0800)]
CHROMIUM: spring: add DT support for s5m8767.

Add minimal device tree support for mfd/s5m-core and associated
s5m8767 PMIC.

BUG=chrome-os-partner:16430
TEST=kernel compiles

Signed-off-by: Todd Broch <tbroch@chromium.org>
Change-Id: Ieb74abb8ae061b727523c1b3010b354ce6023fe7
Reviewed-on: https://gerrit.chromium.org/gerrit/42202
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Todd Broch <tbroch@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
11 years agoCHROMIUM: exynos: enable ADCs only if there are used
Vincent Palatin [Wed, 6 Feb 2013 19:05:28 +0000 (11:05 -0800)]
CHROMIUM: exynos: enable ADCs only if there are used

Check the presence of an ADC node in the device tree before activating
the ADCs and the NTP thermistors connected to them.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:16430
TEST=on Spring with SLSI PMIC, boot with adc node de-activated and
doesn't see any ADC related panic.
on Snow, boot and check the thermistor temperatures in sysfs.

Change-Id: I1603d78805a8d0877c137b92bcd2c64cbb32564d
Reviewed-on: https://gerrit.chromium.org/gerrit/42868
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: gobi: check for overflow in buffer_new()
Elly Fong-Jones [Tue, 5 Feb 2013 19:59:07 +0000 (14:59 -0500)]
CHROMIUM: gobi: check for overflow in buffer_new()

The size passed into buffer_new() can overflow. This isn't exploitable, since
all the calling paths check this, but still. Belt and suspenders and all that.

BUG=chromium-os:38211
TEST=adhoc

Change-Id: I3f19ec85db502c9ce56c9bae9e80d393cd5c5972
Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42636

11 years agoCHROMIUM: s5p-mfc: enable NV12M/NV21M decoder output.
John Sheu [Wed, 6 Feb 2013 20:26:40 +0000 (12:26 -0800)]
CHROMIUM: s5p-mfc: enable NV12M/NV21M decoder output.

These two formats work on hardware; there is no need to disable them.
Enable them so we can have linear multiplanar YUV output support.

Signed-off-by: John Sheu <sheu@google.com>
BUG=chromium-os:38376
BUG=chromium:167417
TEST=local build, run on snow
Change-Id: Ic4889ca26555b067e7faadf9027e789633622dee
Reviewed-on: https://gerrit.chromium.org/gerrit/42761
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Tested-by: John Sheu <sheu@chromium.org>
Commit-Queue: John Sheu <sheu@chromium.org>

11 years agoUPSTREAM: ext4: ignore last group w/o enough space when resizing instead of BUG'ing
Yongqiang Yang [Wed, 5 Sep 2012 05:21:50 +0000 (01:21 -0400)]
UPSTREAM: ext4: ignore last group w/o enough space when resizing instead of BUG'ing

If the last group does not have enough space for group tables, ignore
it instead of calling BUG_ON().

Reported-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: stable@vger.kernel.org
BUG=chromium-os:36118
TEST=link build, resize still works

(cherry picked from upstream commit 03c1c29053f678234dbd51bf3d65f3b7529021de)
Change-Id: I3a7274b6bd72346652b9e7f68b53674684764de7
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42679
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: v4l2: dmabuf: update VIDIOC_EXPBUF interface to upstream
John Sheu [Thu, 31 Jan 2013 02:39:36 +0000 (18:39 -0800)]
CHROMIUM: v4l2: dmabuf: update VIDIOC_EXPBUF interface to upstream

<UPSTREAM MERGE NOT REQUIRED>

Backport the VIDIOC_EXPBUF interface from upstream kernels.

Signed-off-by: John Sheu <sheu@google.com>
BUG=chromium-os:38376
BUG=chromium:167417
TEST=local build, run on snow
Change-Id: Ia5cae1636b85d2c716188ff510a83a04b9cd8bc9
Reviewed-on: https://gerrit.chromium.org/gerrit/42374
Tested-by: John Sheu <sheu@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Commit-Queue: John Sheu <sheu@chromium.org>

11 years agoCHROMIUM: dma-buf: restore args on failure of dma_buf_mmap
John Sheu [Wed, 30 Jan 2013 10:04:36 +0000 (02:04 -0800)]
CHROMIUM: dma-buf: restore args on failure of dma_buf_mmap

Callers to dma_buf_mmap expect to fput() the vma struct's vm_file
themselves on failure.  Not restoring the struct's data on failure
causes a double-decrement of the vm_file's refcount.

Signed-off-by: John Sheu <sheu@google.com>
BUG=chromium-os:38376
BUG=chromium:167417
TEST=local build, run on snow

Change-Id: I868696d5f67235b9ca7d2599eac733438387e82b
Reviewed-on: https://gerrit.chromium.org/gerrit/42295
Tested-by: John Sheu <sheu@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Commit-Queue: John Sheu <sheu@chromium.org>

11 years agoCHROMIUM: gobi: fix integer wraparound bug
Elly Fong-Jones [Mon, 4 Feb 2013 22:13:35 +0000 (17:13 -0500)]
CHROMIUM: gobi: fix integer wraparound bug

All the sizes here are bounded on the wire by 16 bits, to switch to size_t and
check for wraparound more carefully.

BUG=chromium-os:38210
TEST=adhoc
build, boot, see if the gobi still shows up

Change-Id: I492e632722714b1a869929d03c33a4fc12995120
Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42559
Reviewed-by: Kees Cook <keescook@chromium.org>
11 years agoUPSTREAM: introduce SIZE_MAX
Xi Wang [Thu, 31 May 2012 23:26:04 +0000 (16:26 -0700)]
UPSTREAM: introduce SIZE_MAX

ULONG_MAX is often used to check for integer overflow when calculating
allocation size.  While ULONG_MAX happens to work on most systems, there
is no guarantee that `size_t' must be the same size as `long'.

This patch introduces SIZE_MAX, the maximum value of `size_t', to improve
portability and readability for allocation size validation.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Acked-by: Alex Elder <elder@dreamhost.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit a3860c1c5dd1137db23d7786d284939c5761d517)

Change-Id: Ic87ed61f0bbcd4d92ab3c8e898d0519d4d905ffb
BUG=chromium-os:38211
TEST=adhoc
build, boot, test for gobi presence

Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
Change-Id: I82b6bf09368b7cc6a1ea1d2813f482cdf4fab424
Reviewed-on: https://gerrit.chromium.org/gerrit/42742
Reviewed-by: Kees Cook <keescook@chromium.org>
11 years agoUPSTREAM: debugfs: convert gid= argument from decimal, not octal
Dave Reisner [Wed, 2 Jan 2013 13:54:37 +0000 (08:54 -0500)]
UPSTREAM: debugfs: convert gid= argument from decimal, not octal

This patch technically breaks userspace, but I suspect that anyone who
actually used this flag would have encountered this brokenness, declared
it lunacy, and already sent a patch.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Reviewed-by: Vasiliy Kulikov <segoon@openwall.com>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
BUG=chromium-os:23758
TEST=link build, debugfs mount options work with decimal for gid

Change-Id: I4a37f3bd13da0ced916bde8038de16ebc3504d5e
(cherry picked from upstream commit f1688e0431d3a395388e70fe21da89ed0de0c323)
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42650
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: sysrq-x: killall chrome process not just first one
Mandeep Singh Baines [Tue, 5 Feb 2013 22:55:38 +0000 (14:55 -0800)]
CHROMIUM: sysrq-x: killall chrome process not just first one

Currently, sysrq-x just kills the first chrome process it finds.
We've seen in at least one occassion where there may be a stale
chrome process from a previous session. The fix is to kill all
processes we find that meet our criteria.

I also modified the printk to print the pid of the process
that is killed. Previously we were printing the pid of
session_manager which is not as useful.

BUG=chrome-os-partner:17522
TEST=manual (debugging feature):
 hold down alt-volup then x - chrome should crash
 repeat immediately afterward - session should restart
 repeat and machine should reboot

2013-02-05T13:28:37.425355-08:00 localhost crash_reporter[2829]: Received crash notification for chrome[963] sig 6 (ignoring - chrome crash)
2013-02-05T13:28:37.557482-08:00 localhost session_manager: [0205/132837:INFO:session_manager_service.cc(523)] Handling child process exit: 963
2013-02-05T13:28:37.557537-08:00 localhost session_manager: [0205/132837:INFO:session_manager_service.cc(525)]   Exited with signal 6

Change-Id: Id039df7386cf7cccf42e0861bc2ab6f653147605
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42658
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-by: Sameer Nanda <snanda@chromium.org>
11 years agoCHROMIUM: watchdog: don't free perf_event on disable
Mandeep Singh Baines [Tue, 5 Feb 2013 20:58:55 +0000 (12:58 -0800)]
CHROMIUM: watchdog: don't free perf_event on disable

When offlining a CPU, we currently free the perf_event used for
the hardlockup detector. This sometimes results in an allocation
failure when bringing the CPU back online. The hotplug code to
bring the CPU back online is run while gfp flags are masked by
pm_restrict_gfp_mask.

[10086.691854]  [<ffffffff810a4e80>] warn_alloc_failed+0x10f/0x123
[10086.691864]  [<ffffffff810a6560>] ? drain_local_pages+0x16/0x18
[10086.691872]  [<ffffffff810a75f8>] __alloc_pages_nodemask+0x697/0x752
[10086.691881]  [<ffffffff810a7738>] __get_free_pages+0x17/0x44
[10086.691891]  [<ffffffff810ccca0>] kmalloc_order_trace+0x2b/0x5b
[10086.691898]  [<ffffffff810cf095>] __kmalloc+0x37/0x151
[10086.691908]  [<ffffffff81011a0d>] ? kmalloc_node.isra.0.constprop.3+0xe/0x10
[10086.691917]  [<ffffffff81011a0d>] kmalloc_node.isra.0.constprop.3+0xe/0x10
[10086.691925]  [<ffffffff810120dc>] reserve_ds_buffers+0xaf/0x30e
[10086.691934]  [<ffffffff8100ec2c>] x86_pmu_event_init+0x2d2/0x31c
[10086.691941]  [<ffffffff8109e456>] perf_init_event+0x66/0xac
[10086.691948]  [<ffffffff8109e6fb>] perf_event_alloc+0x25f/0x38f
[10086.691957]  [<ffffffff81076488>] ? touch_nmi_watchdog+0x67/0x67
[10086.691965]  [<ffffffff8109eacd>] perf_event_create_kernel_counter+0x26/0xd9
[10086.691973]  [<ffffffff810762b0>] watchdog_enable+0x7e/0x1ef
[10086.691981]  [<ffffffff81076848>] cpu_callback+0x31/0x3f
[10086.691999]  [<ffffffff810769d4>] lockup_detector_bootcpu_resume+0x2e/0x32
[10086.692009]  [<ffffffff8105beab>] suspend_devices_and_enter+0x1a3/0x26e
[10086.692018]  [<ffffffff8105c075>] pm_suspend+0xff/0x1c2
[10086.692025]  [<ffffffff8105b3a1>] state_store+0x99/0xca
[10086.692034]  [<ffffffff811d6562>] kobj_attr_store+0xf/0x1b
[10086.692042]  [<ffffffff81123280>] sysfs_write_file+0xe9/0x121
[10086.692050]  [<ffffffff810d2fca>] vfs_write+0x98/0xda
[10086.692057]  [<ffffffff810d3199>] sys_write+0x43/0x73
[10086.692066]  [<ffffffff8146ac52>] system_call_fastpath+0x16/0x1b

The end result of the allocation failure is that the watchdog no
longer works sometimes after suspend/resume. The fix is to only
disable the event and not free it. This avoids the failed allocation.

BUG=chrome-os-partner:17522
TEST=Verify that detector still works after suspend/resume.

Change-Id: I78c90b13f718d660bd23884968be2f14c7c61860
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42657
Reviewed-by: Sameer Nanda <snanda@chromium.org>
11 years agoCHROMIUM: exynos: properly manage "regulator" for HSIC reset
Vincent Palatin [Tue, 5 Feb 2013 17:12:19 +0000 (09:12 -0800)]
CHROMIUM: exynos: properly manage "regulator" for HSIC reset

We were violating something in the documentation for regulator_put,
namely:
  Note: drivers must ensure that all regulator_enable calls made on
  this regulator source are balanced by regulator_disable calls prior
  to calling this function.

We now keep the regulator around until we've disabled it.  That keeps
the regulator in the right state.

At the same time, add some error checking to regulator calls.

BUG=chromium-os:38403
TEST=on Snow with 3G modem, do a suspend/resume cycle and check in
"lsusb" that the modem (VID/PID 1410:a021) and the camera (VID/PID
2232:1037) are still there after resume.
On Spring, check we can still boot from USB.
TEST=Check state of hsichub-reset-l at boot and after resume:
1. cd /sys/kernel/debug/regulator/hsichub-reset-l
2. grep "" *
3. Check open_count of 1 and use_count of 1.

Change-Id: I31012c15e30c43a1259f15ffd3592ee68cb0b772
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42621
Reviewed-by: Todd Broch <tbroch@chromium.org>
11 years agoCHROMIUM: nl80211: Reassign NL80211_ATTR_SCAN_FLAGS
Paul Stewart [Tue, 5 Feb 2013 19:53:08 +0000 (11:53 -0800)]
CHROMIUM: nl80211: Reassign NL80211_ATTR_SCAN_FLAGS

Change the NL80211_ATTR_SCAN_FLAGS value to match upstream kernels.
In doing so, fast-forward the contents of the nl80211_attrs enum to
its contents as of the current wireless-testing kernel.

CQ-DEPEND=I315dce8b3c39ae02db2a01401f83666f81b51f63
BUG=chromium-os:38618
TEST="test-flimflam scan" with new supplicant and kernel installed

Change-Id: Ie27c65a6eea1006f34346c51768d797ceadb7951
Signed-off-by: Paul Stewart <pstew@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42640
Reviewed-by: mukesh agrawal <quiche@chromium.org>
11 years agoCHROMIUM: chromeos: add rts_pstore errors to whitelist
Simon Que [Tue, 5 Feb 2013 01:38:16 +0000 (17:38 -0800)]
CHROMIUM: chromeos: add rts_pstore errors to whitelist

These were added to the kernel build when this CL was pushed:
https://gerrit.chromium.org/gerrit/#/c/41815/

BUG=chromium-os:37418
TEST="FEATURES=test emerge-$BOARD chromeos-kernel" passes

Change-Id: I85426fafa2e022fbf66e09f067e6380957561885
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42591
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
11 years agoCHROMIUM: exynos: dts: enable G781 thermal sensor on Spring
Vincent Palatin [Wed, 30 Jan 2013 19:06:04 +0000 (11:06 -0800)]
CHROMIUM: exynos: dts: enable G781 thermal sensor on Spring

On Spring, we have a G781 thermal sensor on I2C bus 7.
The sensor is supported by the LM90 driver.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:16725
TEST=On spring, on the command-line
"cat /sys/bus/i2c/devices/7-004c/temp[12]_input"
and see board temperature in milli-celsius (e.g. 50750)

Change-Id: I84dfbc03f6b7f9399529f51965fe4dd4aeb04512
Reviewed-on: https://gerrit.chromium.org/gerrit/42380
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: config: add LM90 driver on Exynos platforms
Vincent Palatin [Wed, 30 Jan 2013 19:06:04 +0000 (11:06 -0800)]
CHROMIUM: config: add LM90 driver on Exynos platforms

On Spring, we have a G781 thermal sensor on I2C bus 7.
The sensor is supported by the LM90 driver.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:16725
TEST=On spring, on the command-line
"cat /sys/bus/i2c/devices/7-004c/temp[12]_input"
and see board temperature in milli-celsius (e.g. 50750)

Change-Id: I561df7bdc85cc07221235e85212a42b26598f5a4
Reviewed-on: https://gerrit.chromium.org/gerrit/42335
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: i2c: samsung: do not put a default class for the adapter
Vincent Palatin [Wed, 30 Jan 2013 19:06:04 +0000 (11:06 -0800)]
CHROMIUM: i2c: samsung: do not put a default class for the adapter

Avoid adding I2C_CLASS_HWMON and I2C_CLASS_SPD class flags to all
Samsung I2C adapters when the I2C mappings are defined in a device tree.
So the drivers doing an auto-detection by probing busses won't mess-up
sensitive I2C devices or trigger long timeouts on non-functional busses.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:16725
TEST=emerge-daisy_spring chromeos-kernel
On spring, run with LM90 driver compiled and do not see timeout at
startup on non-functional busses

Change-Id: Iacdba3846c59f605224ff61f5b7c605828486db3
Reviewed-on: https://gerrit.chromium.org/gerrit/42480
Reviewed-by: Olof Johansson <olofj@chromium.org>
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>

11 years agoCHROMIUM: chromeos: add smatch errors for i386 and x86_64 generic builds
Simon Que [Thu, 31 Jan 2013 22:37:32 +0000 (14:37 -0800)]
CHROMIUM: chromeos: add smatch errors for i386 and x86_64 generic builds

Also updates the whitelist update script to reflect changes to ebuild.

BUG=chromium-os:37418
TEST="FEATURES=test USE=smatch emerge-{x86,amd64}-generic" passes

Change-Id: I6db75cc715081a1c719060a3ae69a51ee7a243da
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42416
Reviewed-by: Mike Frysinger <vapier@chromium.org>
11 years agoUPSTREAM: cpuidle: remove the power_specified field in the driver
Daniel Lezcano [Tue, 15 Jan 2013 13:18:04 +0000 (14:18 +0100)]
UPSTREAM: cpuidle: remove the power_specified field in the driver

We realized that the power usage field is never filled and when it
is filled for tegra, the power_specified flag is not set causing all
of these values to be reset when the driver is initialized with
set_power_state().

However, the power_specified flag can be simply removed under the
assumption that the states are always backward sorted, which is the
case with the current code.

This change allows the menu governor select function and the
cpuidle_play_dead() to be simplified.  Moreover, the
set_power_states() function can removed as it does not make sense
any more.

Drop the power_specified flag from struct cpuidle_driver and make
the related changes as described above.

As a consequence, this also fixes the bug where on the dynamic
C-states system, the power fields are not initialized.

[rjw: Changelog]
References: https://bugzilla.kernel.org/show_bug.cgi?id=42870
References: https://bugzilla.kernel.org/show_bug.cgi?id=43349
References: https://lkml.org/lkml/2012/10/16/518
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 8aef33a7cf40ca9da188e8578b2abe7267a38c52)

BUG=chromium-os:35320
TEST=Boot a ZGB on AC and unplug it afterwards. Run powertop and notice
how the device correctly goes down into C3.

Change-Id: If4f34246ce62d77094bf8f1a1718631a4b8e8030
Reviewed-on: https://gerrit.chromium.org/gerrit/42433
Reviewed-by: Sameer Nanda <snanda@chromium.org>
Commit-Queue: Julius Werner <jwerner@chromium.org>
Tested-by: Julius Werner <jwerner@chromium.org>
11 years agoCHROMIUM: xhci: crude USB resume fix for Stout (temporary)
Julius Werner [Thu, 31 Jan 2013 02:02:45 +0000 (18:02 -0800)]
CHROMIUM: xhci: crude USB resume fix for Stout (temporary)

Stout's USB 3.0 ports show a variety of nasty issues after resume, some
of which are more reproducible than others. They all have in common that
the host controller bails with "Device not responding to set address."
during enumeration. A trace pulled from a USB cable showed that the host
controller just fills the bus with garbage and does not even generate
correct SOF sequences.

This seems like a large and time-consuming problem that could hide
anywhere in the USB software or hardware stack. With Stout being close
to release, we need an interim solution to make it usable while we find
the underlying problem.

This patch sets the XHCI_RESET_ON_RESUME quirk flag on Stout, which
makes device reenumeration after resume work, but it creates a new
issue that makes the host controller hang on the next suspend while
trying to save its state. This looks like an unrelated hardware bug...
but since we don't actually need to save state when we will reset
anyway, we can just add some code to skip that step in xhci_suspend().

This patch is intended to be temporary, and should be reverted as soon
as the root cause for this is found and fixed.

BUG=chrome-os-partner:16781
TEST=Plug a USB device into the yellow port on the right. Run lsusb. Run
powerd_suspend and wake the machine. Run lsusb again and ensure that the
output stayed the same.

Change-Id: Id21ab972c698d02c14937509f699c9bc659b70c0
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42394
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: pm-check: s3c_pm_check_init returns int
Simon Que [Fri, 1 Feb 2013 19:31:04 +0000 (11:31 -0800)]
CHROMIUM: pm-check: s3c_pm_check_init returns int

The proper behavior for a late_initcall() function is to return int.
See include/linux/init.h.  Otherwise compiler throws a warning.

BUG=chromium-os:5542
TEST=emerge-daisy chromeos-kernel, make sure there is no warning in this
file.

Change-Id: I47e1f81c622721b06fb715e7c4a876857d9b45b3
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42468
Reviewed-by: Michael Spang <spang@chromium.org>
11 years agoCHROMIUM: chromeos: enable error-on-warning for all configs
Simon Que [Fri, 1 Feb 2013 00:35:36 +0000 (16:35 -0800)]
CHROMIUM: chromeos: enable error-on-warning for all configs

BUG=chromium-os:5542
TEST=kernel build passes

Change-Id: I1161ca82de1145066bed22306e49cf73a51d9473
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42428
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: arch/arm: do not turn TODO warning into error
Simon Que [Thu, 31 Jan 2013 02:16:08 +0000 (18:16 -0800)]
CHROMIUM: arch/arm: do not turn TODO warning into error

If the build treats warnings as errors (CONFIG_ERROR_ON_WARNING=y), then
do not invoke the "#warn 'TODO'" since it unnecessarily fails the build.

BUG=chromium-os:5542
TEST=emerge-daisy chromeos-kernel, make sure this doesn't appear.

Change-Id: I64c1b4d6079980bbea1f808ac038bf5cbe54beb0
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42371
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: net: ipw2x00: #ifdef condtionally used variable
Simon Que [Wed, 30 Jan 2013 23:51:18 +0000 (15:51 -0800)]
CHROMIUM: net: ipw2x00: #ifdef condtionally used variable

The variable 'dev' is only used by a macro LIBIPW_DEBUG_WX() that is
conditional upon the config option 'CONFIG_LIBIPW_DEBUG'.  When this
config option isn't defined, we get this warning:

  libipw_wx.c:526:21: error: unused variable 'dev'

The solution is to define 'dev' only if CONFIG_LIBIPW_DEBUG is defined.

BUG=chromium-os:5542
TEST=emerge-x86-generic chromeos-kernel, make sure warning doesn't
appear.

Change-Id: I537c361f363879971ca045687e3dbd98475925fc
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42357
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: drm: nouveau: initialize channel pointer
Simon Que [Thu, 31 Jan 2013 00:34:26 +0000 (16:34 -0800)]
CHROMIUM: drm: nouveau: initialize channel pointer

Removes this compiler warning:
nv50_instmem.c:206:27: error: 'chan' may be used uninitialized in
this function

The variable 'chan' is implicitly initialized by passing to
nv50_channel_new()

This is not upstreamable as the structure of the nouveau driver has
changed in 3.8.

BUG=chromium-os:5542
TEST=emerge-x86-generic chromeos-kernel, make sure this warning doesn't
appear.

Change-Id: I753c4f160ecb8068d2bacae904bd2114df687a75
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42359
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: drm: nouveau: initialize variables in nv40_pm
Simon Que [Thu, 31 Jan 2013 00:26:10 +0000 (16:26 -0800)]
CHROMIUM: drm: nouveau: initialize variables in nv40_pm

These variables are implicitly initialized by being passed as pointers
into nv40_calc_pll().  However, the compile still generates these
warnings:

nv40_pm.c:163:41: warning: 'log2P' may be used uninitialized in this
function
nv40_pm.c:164:38: warning: 'M2' may be used uninitialized in this
function
nv40_pm.c:164:45: warning: 'M1' may be used uninitialized in this
function
nv40_pm.c:164:25: warning: 'N2' may be used uninitialized in this
function
nv40_pm.c:164:51: warning: 'N1' may be used uninitialized in this
function

BUG=chromium-os:5542
TEST=emerge-x86-generic chromeos-kernel, make sure these warnings don't
appear.

Change-Id: Ib51a1744d809a395e2b599461f22f774313512d4
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42358
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: pm-check: Don't free memory after each resume
Doug Anderson [Tue, 29 Jan 2013 17:59:12 +0000 (09:59 -0800)]
CHROMIUM: pm-check: Don't free memory after each resume

Once you use your device for a significant period of time pm_check
starts failing.  This may have gotten worse recently with compressed
RAM.  Change pm-check to avoid freeing memory between suspend/resume.

While I'm at it, also over-allocate pm-check memory a little bit to
make sure that normal memory doesn't overlap CRC memory.  This ensures
that more in-use memory is actually checked for errors.

BUG=chrome-os-partner:17282
TEST=Run suspend_stress_test on a device with original (90.0)
read-only firmware and see pm_check work.
TEST=Use device with 90.0 read-only firmware for a while and then
suspend/resume.  Don't see any warning in system messages.
TEST=Manually change pr_debug() to pr_info() in pm_check_alloc().  See
an allocate at bootup but no more allocates after a
suspend_stress_test

Change-Id: I2399c2d358d548089347aba5163f84adf3262d68
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42242
Reviewed-by: Michael Spang <spang@chromium.org>
11 years agoBACKPORT: ARM: 7569/1: mm: uninitialized warning corrections
viresh kumar [Wed, 31 Oct 2012 09:40:42 +0000 (10:40 +0100)]
BACKPORT: ARM: 7569/1: mm: uninitialized warning corrections

The variables here are really not used uninitialized.

arch/arm/mm/alignment.c: In function 'do_alignment':
arch/arm/mm/alignment.c:327:15: warning: 'offset.un' may be used
uninitialized in this function [-Wmaybe-uninitialized]
arch/arm/mm/alignment.c:748:21: note: 'offset.un' was declared here

BUG=chromium-os:5542
TEST=emerge-daisy chromeos-kernel, make sure warning is gone

Change-Id: I90d41bdc48203f8cc9ef75e6ca1e059b916428cc
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42370
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoCHROMIUM: Add -Werror build option
Simon Que [Sat, 26 Jan 2013 01:29:16 +0000 (17:29 -0800)]
CHROMIUM: Add -Werror build option

Add a config option "ERROR_ON_WARNING" that adds the "-Werror" flag to
gcc, which turns warnings into errors.

BUG=chromium-os:5542
TEST=none

Change-Id: I8d85b8ba443585025a49618c3bca6d9bb7813359
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42075
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoBACKPORT: drm: fix warning on 32-bit.
Dave Airlie [Tue, 16 Oct 2012 00:28:21 +0000 (10:28 +1000)]
BACKPORT: drm: fix warning on 32-bit.

This cast was causing a warning on 32-bit builds.

BUG=chromium-os:5542
TEST=emerge-x86-generic chromeos-kernel, make sure this warning doesn't
show up.

Signed-off-by: Dave Airlie <airlied@redhat.com>
(cherry picked from 7b8505300525d7e802ecf52ae160bc63f4ba28d7)

Change-Id: Ib08213c370525ce23fb0505c7e21439f257a813c
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41562
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: usb: dwc: Fix ARM usb_phy init parameter warning
Simon Que [Thu, 31 Jan 2013 01:52:45 +0000 (17:52 -0800)]
CHROMIUM: usb: dwc: Fix ARM usb_phy init parameter warning

Adding the param "bool ext_clk" to phy_init() results in some warnings:

arch/arm/mach-exynos/mach-exynos5-dt.c:535:2: error: initialization from
incompatible pointer type [-Werror]
arch/arm/mach-exynos/mach-exynos5-dt.c:540:2: error: initialization from
incompatible pointer type [-Werror]

Instead of updating this function pointer to have the extra variable,
add a new function to set "ext_clk" as a static variable in
setup-usb-phy.c

BUG=chromium-os:5542
TEST=emerge-daisy chromeos-kernel, make sure warning is gone

Change-Id: Ic2c38acd945083b0509dafe9dadf12935868991d
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42367
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
11 years agoUPSTREAM: mwifiex: fix incomplete scan in case of IE parsing error
Bing Zhao [Thu, 31 Jan 2013 05:12:16 +0000 (21:12 -0800)]
UPSTREAM: mwifiex: fix incomplete scan in case of IE parsing error

A scan request is split into multiple scan commands queued in
scan_pending_q. Each scan command will be sent to firmware and
its response is handlded one after another.

If any error is detected while parsing IE in command response
buffer the remaining data will be ignored and error is returned.

We should check if there is any more scan commands pending in
the queue before returning error. This ensures that we will call
cfg80211_scan_done if this is the last scan command, or send
next scan command in scan_pending_q to firmware.

Cc: "3.6+" <stable@vger.kernel.org>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
BUG=none
TEST=Hacked the driver to simulate an IE parsing error.
Without this patch, "iw mlan0 scan" gets stuck.
With this patch applied, "iw mlan0 scan" returns AP list.

Change-Id: I93cb877650ad9e84e5109f4ea62cf5b5c638e26a
Reviewed-on: https://gerrit.chromium.org/gerrit/42377
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Bing Zhao <bzhao@marvell.com>
Tested-by: Bing Zhao <bzhao@marvell.com>
11 years agoRevert "CHROMIUM: Log RTM_NEWLINK messages broadcast from the kernel (temporary)"
Julius Werner [Fri, 11 Jan 2013 19:03:44 +0000 (11:03 -0800)]
Revert "CHROMIUM: Log RTM_NEWLINK messages broadcast from the kernel (temporary)"

This reverts commit 0a06f97c7e44bbac8944732d7739ea95b79b2ac5

We have gathered all we need to know from this. The problem was in shill
and we have changed that to properly crash instead of silently fail. The
kernel netlink stack seems to work fine as it is and we don't need this
output anymore.

BUG=chromium-os:35479
TEST=Boot the kernel, make sure it still works fine and does not output
any messages with the string "RTM_NEWLINK" to dmesg anymore.

Change-Id: I9a12e41bb25adaf4ef7a7159d97adebfe2fd14e6
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41139
Reviewed-by: Sameer Nanda <snanda@chromium.org>
11 years agoCHROMIUM: exynos: dts: ALS configuration is per board
Vincent Palatin [Wed, 30 Jan 2013 18:45:37 +0000 (10:45 -0800)]
CHROMIUM: exynos: dts: ALS configuration is per board

Move the Ambient Light Sensor configuration to board-specific files.
Only Snow has an ISLxxxx light sensor.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17507
TEST=on Snow, boot and check the ambient light sensor is working when
putting the finger on it.
On Spring, boot and observe we no longer have isl driver failure in the kernel log.

Change-Id: I54a3031a4ea211c3a2cd5c56d9188387b329f72a
Reviewed-on: https://gerrit.chromium.org/gerrit/42334
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Bryan Freed <bfreed@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>

11 years agoCHROMIUM: exynos: dts: TPM configuration is per board
Vincent Palatin [Wed, 30 Jan 2013 18:45:37 +0000 (10:45 -0800)]
CHROMIUM: exynos: dts: TPM configuration is per board

Move the TPM configuration to board-specific files.
On Daisy and Snow, we have a SLB9635TT TPM with software I2C (the max
bus speed is 100kHz).
On Spring, we have a SLB9645TT TPM with hardware I2c (the max bus speed
is 400kHz).

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17506
TEST=on Snow and Spring, boot and grep the tpm_tis_i2c messages in the
kernel log.

Change-Id: I3c914c8647fad3f93c5273228c5a18e476efe100
Reviewed-on: https://gerrit.chromium.org/gerrit/42333
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>

11 years agoBACKPORT: tpm: Add support for new Infineon I2C TPM (SLB 9645 TT 1.2 I2C)
Vincent Palatin [Wed, 30 Jan 2013 00:56:41 +0000 (16:56 -0800)]
BACKPORT: tpm: Add support for new Infineon I2C TPM (SLB 9645 TT 1.2 I2C)

This driver adds support for Infineon's new SLB 9645 TT 1.2 I2C TPMs,
which supports clockstretching, combined reads and a bus speed of
up to 400khz. The device also has a new device id.

The driver works now also fine with device trees, so you can instantiate
your device by adding:
 +       tpm {
 +               compatible = "infineon,slb9645tt";
 +               reg = <0x20>;
 +       };
for SLB 9645 devices or
 +       tpm {
 +               compatible = "infineon,slb9635tt";
 +               reg = <0x20>;
 +       };
for older SLB 9635 devices to your device tree.
tpm_i2c_infineon is also retained as a compatible id as a fallback to
slb9635 protocol.

The driver was tested on Beaglebone.

Signed-off-by: Peter Huewe <peter.huewe@infineon.com>
BUG=chrome-os-partner:17506
TEST=boot on Snow (with SLB9635) and Spring (with SLB9645)
and check tpm_tis_i2c traces in the kernel log.

Change-Id: I1d229a027dad193e7409261ee1039600cd7fdb01
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42332
Reviewed-by: Luigi Semenzato <semenzato@chromium.org>
11 years agoCHROMIUM: exynos: dts: configure audio codec master clock pin
Vincent Palatin [Wed, 23 Jan 2013 00:41:26 +0000 (16:41 -0800)]
CHROMIUM: exynos: dts: configure audio codec master clock pin

On Spring, the I2S0 clock is connected to MCLK2/GPIO3 instead of MCLK1.

Explicitly configure the pin on boards I have tested and let the sane
default value (MCLK1 as before) for others.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17343
TEST=emerge-daisy_spring chromeos-kernel
play sound on Snow with the codec on MCLK1, on Spring proto-1 with the
codec on MCLK2.

Change-Id: I9792dc325bea67e9466cff04576d9a3bbcea4eb1
Reviewed-on: https://gerrit.chromium.org/gerrit/41790
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>

11 years agoCHROMIUM: ASoC: max98095 - allow to select MCLK source
Vincent Palatin [Wed, 23 Jan 2013 00:41:26 +0000 (16:41 -0800)]
CHROMIUM: ASoC: max98095 - allow to select MCLK source

The codec clock can come from either MCLK1 or MCLK2 pin.

Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
BUG=chrome-os-partner:17343
TEST=emerge-daisy_spring chromeos-kernel
play sound on Snow with the codec on MCLK1, on Spring proto-1 with the codec
on MCLK2.

Change-Id: Ic82158c63f8fb5c8eb00771e9a1cbf186d561670
Reviewed-on: https://gerrit.chromium.org/gerrit/41876
Tested-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Commit-Queue: Vincent Palatin <vpalatin@chromium.org>

11 years agoCHROMIUM: Fix DMABUF exporting for v4l2-m2m
John Sheu [Mon, 28 Jan 2013 23:36:21 +0000 (15:36 -0800)]
CHROMIUM: Fix DMABUF exporting for v4l2-m2m

<UPSTREAM MERGE NOT REQUIRED>

v4l2-mem2mem uses a constant offset to mmap to distinguish between input
and output queues.  VIDIOC_EXPBUF should take this into account when
exporting a buffer as a DMABUF.

Signed-off-by: John Sheu <sheu@google.com>
BUG=chromium-os:38376
BUG=chromium:167417
TEST=local build, run on snow, unittests

Change-Id: Id7770666775a78c3e11b3d158052a81f67592c8f
Reviewed-on: https://gerrit.chromium.org/gerrit/42179
Commit-Queue: John Sheu <sheu@chromium.org>
Reviewed-by: John Sheu <sheu@chromium.org>
Tested-by: John Sheu <sheu@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
11 years agoCHROMIUM: v4l2-mem2mem: Implement dmabuf mmap for videobuf2-dma-contig
John Sheu [Wed, 30 Jan 2013 05:27:07 +0000 (21:27 -0800)]
CHROMIUM: v4l2-mem2mem: Implement dmabuf mmap for videobuf2-dma-contig

videobuf2-dma-contig buffers already allow DMABUF exporting; now hook up
the mmap functions for these DMABUFs.

Signed-off-by: John Sheu <sheu@google.com>
BUG=chromium-os:38376
BUG=chromium:167417
TEST=local build, run on snow
Change-Id: Ia415c037b1fe9d1a18a86b1315f6945849940369
Reviewed-on: https://gerrit.chromium.org/gerrit/42296
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Commit-Queue: John Sheu <sheu@chromium.org>
Tested-by: John Sheu <sheu@chromium.org>
11 years agoUPSTREAM: mwifiex: do not overwrite error code from lower layer driver
Bing Zhao [Mon, 28 Jan 2013 22:27:59 +0000 (14:27 -0800)]
UPSTREAM: mwifiex: do not overwrite error code from lower layer driver

Instead of converting it to a bogus error code -1, we should
return the original error code from lower layer driver. This
error code will be printed so it may give user some clues on
what has happened.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
BUG=chrome-os-partner:17015
TEST=tested with the bad unit that fails with error message
"mwifiex_sdio_card_to_host: read iomem failed: -1". Now it says
"mwifiex_sdio_card_to_host: read iomem failed: -84".

Change-Id: I18fa13eb232739a4175e6e37469f3448fb0a58eb
Reviewed-on: https://gerrit.chromium.org/gerrit/42162
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Bing Zhao <bzhao@marvell.com>
Commit-Queue: Bing Zhao <bzhao@marvell.com>

11 years agoCHROMIUM: Input: cyapa - calibrate command
Benson Leung [Fri, 25 Jan 2013 03:49:38 +0000 (19:49 -0800)]
CHROMIUM: Input: cyapa - calibrate command

Add a sysfs property that allows userspace to trigger
a recalibration of the trackpad.

Signed-off-by: Benson Leung <bleung@chromium.org>
BUG=chrome-os-partner:17441
TEST=echo 1 > calibrate
After about a second, the command should return.
Check that the trackpad is responsive.

Change-Id: I17ef8b7960406f9c3230918a18cdf25a0cd84b72
Reviewed-on: https://gerrit.chromium.org/gerrit/41980
Reviewed-by: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>

11 years agoCHROMIUM: Input: cyapa - Read and output max/min baseline vals
Benson Leung [Mon, 22 Oct 2012 03:53:39 +0000 (20:53 -0700)]
CHROMIUM: Input: cyapa - Read and output max/min baseline vals

Read min and max baseline values back from firmware to check
that the baseline value range is valid for normal usage after
calibration.

Signed-off-by: Benson Leung <bleung@chromium.org>
BUG=chrome-os-partner:17441
TEST=cd /sys/bus/i2c/devices/7-0067/
cat baseline
Check that two numbers are returned :
104 95
The actual values may vary depending depending on condition.

Change-Id: I02f48570f8a0afb78d6587b5a7f6b2cc02cd1b89
Reviewed-on: https://gerrit.chromium.org/gerrit/36213
Reviewed-by: Benson Leung <bleung@chromium.org>
Tested-by: Benson Leung <bleung@chromium.org>
Commit-Queue: Benson Leung <bleung@chromium.org>

11 years agoCHROMIUM: chromeos: update smatch whitelist for x86_64 boards
Simon Que [Mon, 28 Jan 2013 22:12:33 +0000 (14:12 -0800)]
CHROMIUM: chromeos: update smatch whitelist for x86_64 boards

BUG=chromium-os:37418
TEST="FEATURES=test USE=smatch emerge-$BOARD chromeos-kernel" passes for
BOARD=lumpy and BOARD=stumpy.

Change-Id: I5a8fb067acbe5f4353e56db543c9d1192c67f570
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42157
Reviewed-by: Mike Frysinger <vapier@chromium.org>
11 years agoCHROMIUM: chromeos: Fix bugs in whitelist-update script
Simon Que [Mon, 28 Jan 2013 21:43:52 +0000 (13:43 -0800)]
CHROMIUM: chromeos: Fix bugs in whitelist-update script

- Strip the "kernel/files/" at the beginning of each warning line.
- Strip the double quotation mark at the end of each warning line.

BUG=chromium-os:37418
TEST=run update_smatch_whitelist on new boards, make sure the output
does not contain "kernel/files/" or a terminating double quotation mark.

Change-Id: I3d8caccdf8ad7f849b688313612cb0530626b7e4
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42156
Reviewed-by: Mike Frysinger <vapier@chromium.org>
11 years agoCHROMIUM: drm/i915: Improve RC6p stability
Stéphane Marchesin [Thu, 24 Jan 2013 03:00:34 +0000 (19:00 -0800)]
CHROMIUM: drm/i915: Improve RC6p stability

When the CPU is loaded and the GPU tries to switch RC6p modes, the GPU
sometimes gets stuck in RC6p mode and doesn't come out of it. I suspect
that our voltage rail is too weak and sometimes falls behind.

This change throttles down the number of RC6p transitions we do to appease it.

The change also disables clock gating which seems to help. Upstream commit
which does that is 0f846f81a154cc1818416918d22939bda73da194
(drm/i915: disable RCBP and VDS unit clock gating on SNB and VL)

I tested this on multiple Link machines for hours. The number of RC6 problems
went down from ~ one every 15 minutes to ~ one every 25 hours. So this is not
a complete solution, but I suspect there might be another, more difficult to
reproduce, problem. In any case it reduces the issue significantly, to the
point where we might be able to forget about it.

I measured the power usage on idle before/after this patch and saw no
difference. Obviously when the GPU load varies, it will consume more power
since it now takes more time to adapt.

Also note that not all machines seem to react equally. Some crash fairly
often, and some less often. So this will improve the situation to different
extents for different people.

BUG=chrome-os-partner:16886,chrome-os-partner:11474
TEST=ran the factory stress test (RunIn.Stress) on multiple Link machines for
TEST=about 100 hours, saw only 4 RC6 crashes.

Change-Id: I1135d90e2a155424388d23c6e0879a210b4a0146
Reviewed-on: https://gerrit.chromium.org/gerrit/42084
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Sameer Nanda <snanda@chromium.org>
Commit-Queue: Stéphane Marchesin <marcheu@chromium.org>

11 years agoCHROMIUM: ata: libata-core: initialize native_sectors in ata_hpa_resize()
Simon Que [Thu, 17 Jan 2013 00:07:52 +0000 (16:07 -0800)]
CHROMIUM: ata: libata-core: initialize native_sectors in ata_hpa_resize()

Eliminates a compiler warning about uninitialized variable:
"warning: 'native_sectors' may be used uninitialized in this function"

This has been submitted for review upstream, but not yet accepted.

BUG=chromium-os:5542
TEST=emerge chromeos-kernel, make sure the warning doesn't appear

Change-Id: Ic791f8053c468e74445e07a306c76cd9e9e5494b
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/41948
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
11 years agoCHROMIUM: config: exynos5: Enable s5m8767.
Todd Broch [Fri, 25 Jan 2013 20:56:43 +0000 (12:56 -0800)]
CHROMIUM: config: exynos5: Enable s5m8767.

BUG=chrome-os-partner:16430
TEST=compile kernel successfully see following object files created.
  drivers/mfd/s5m-core.o
  drivers/mfd/s5m-irq.o
  drivers/regulator/s5m8767.o

Change-Id: I29abd49ad7c3cab5370cd5f3f26ec5f7378ae05f
Reviewed-on: https://gerrit.chromium.org/gerrit/42201
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Todd Broch <tbroch@chromium.org>

11 years agoRevert "HID: magicmouse: Set multi-touch keybits for Magic Mouse"
Andrew de los Reyes [Tue, 29 Jan 2013 21:45:16 +0000 (13:45 -0800)]
Revert "HID: magicmouse: Set multi-touch keybits for Magic Mouse"

The issue is this causes Chrome, I think, to consider this device a
touchpad, but since we're using the mouse stack (for the time being)
it breaks scroll.

BUG=chromium-os:38330
TEST=manually tested that Magic Mouse works as expected

This reverts commit 5c1386506de5237373db16f470d54e8a83afe318.

Signed-off-by: Andrew de los Reyes <adlr@chromium.org>
Change-Id: I56f420039252a9c0b4283f5aa9ad68655c305576
Reviewed-on: https://gerrit.chromium.org/gerrit/42252
Reviewed-by: Benson Leung <bleung@chromium.org>
11 years agoCHROMIUM: usb: add VID/PID of Sierra Wireless Gobi 3000 MC8355 modem.
Shawn Nematbakhsh [Mon, 28 Jan 2013 20:12:05 +0000 (12:12 -0800)]
CHROMIUM: usb: add VID/PID of Sierra Wireless Gobi 3000 MC8355 modem.

BUG=chrome-os-partner:17480.
TEST=manual. Verify modem is visible in Chrome OS network manager.

Change-Id: Ie142d8fe2ee67e3cdecaf2e46629680e53e55e1f
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/42137
Reviewed-by: Ben Chan <benchan@chromium.org>
11 years agoCHROMIUM: fix memory leak in request_firmware() error path
Sonny Rao [Tue, 29 Jan 2013 21:40:58 +0000 (13:40 -0800)]
CHROMIUM: fix memory leak in request_firmware() error path

request_firmware() will leak memory if it fails to obtain the UMH
lock, fix it.

Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
BUG=chrome-os-partner:17270
TEST=none

Change-Id: Iea9027bb3e53b67418fe70602377c6b1e351d565
Reviewed-on: https://gerrit.chromium.org/gerrit/42249
Reviewed-by: Aaron Durbin <adurbin@google.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Sameer Nanda <snanda@chromium.org>
Commit-Queue: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
11 years agoCHROMIUM: remove warning from request_firmware if UMH failed
Sonny Rao [Tue, 29 Jan 2013 02:14:50 +0000 (18:14 -0800)]
CHROMIUM: remove warning from request_firmware if UMH failed

The UMH failing is a potential consequence of racing with suspend, so
remove the warning but still print the informational message.

Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
BUG=chrome-os-partner:17270
TEST=(needs an autotest test) currently manual:
use the set_short_powerd_timeouts script to all the device to
idle-suspend quickly, wait for an idle suspend with the lid open
(about 30  seconds). Then hit the trackpad and quickly close the lid.
The device should resume and then suspend again within a few seconds
and make sure there's no warning in dmesg from request_firmware()

Change-Id: Iaf46c53e3d5462286130334ca19edc82a0e661dd
Reviewed-on: https://gerrit.chromium.org/gerrit/42247
Reviewed-by: Aaron Durbin <adurbin@google.com>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Commit-Queue: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>