cm kernel config: Update a proper defconfig
Revert "Block: Add the BFQ-v4 I/O scheduler to 3.1"

This reverts commit 51cb63d6ad34c09509273639c398804462747f8e.
Block: Add the BFQ-v5 I/O scheduler to 3.1

The general structure is borrowed from CFQ, as much code. A
(bfq_)queue is associated to each task doing I/O on a device,
and each time a scheduling decision has to be taken a queue is
selected and it is served until it expires.

    - Slices are given in the service domain: tasks are
      assigned budgets, measured in number of sectors. Once got
      the disk, a task must however consume its assigned budget
      within a configurable maximum time (by default, the
      maximum possible value of the budgets is automatically
      computed to comply with this timeout). This allows the
      desired latency vs "throughput boosting" tradeoff to be
      set.

    - Budgets are scheduled according to a variant of WF2Q+,
      implemented using an augmented rb-tree to take
      eligibility into account while preserving an O(log N)
      overall complexity.

    - A low-latency tunable is provided; if enabled, both
      interactive and soft real-time applications are
      guaranteed very low latency.

    - Latency guarantees are preserved also in presence of NCQ.

    - High throughput with flash-based devices, while still
      preserving latency guarantees.

    - Useful features borrowed from CFQ: cooperating-queues
      merging (with some additional optimizations with respect
      to the original CFQ version), static fallback queue for
      OOM.

    - BFQ supports full hierarchical scheduling, exporting a
      cgroups interface.  Each node has a full scheduler, so
      each group can be assigned its own ioprio and an
      ioprio_class.

    - If the cgroups interface is used, weights can be
      explictly assigned, otherwise ioprio values are mapped
      to weights using the relation
      weight = IOPRIO_BE_NR - ioprio.

    - ioprio classes are served in strict priority order,
      i.e., lower priority queues are not served as long as
      there are higher priority queues.  Among queues in the
      same class the bandwidth is distributed in proportion to
      the weights of each queue. A very thin extra bandwidth
      is however guaranteed to the Idle class, to prevent it
      from starving.

Signed-off-by: Paul Beeler <sparksco@gmail.com>
Merge branch 'jellybean' of https://github.com/CyanogenMod/android_kernel_asus_grouper into jellybean
Merge branch 'android-tegra3-grouper-3.1-jb-mr0' of https://android.googlesource.com/kernel/tegra into update
Merge branch 'jellybean' of https://github.com/CyanogenMod/android_kernel_asus_grouper into jellybean
Merge "cm kernel config: Update a proper defconfig" into jellybean
Merge branch 'jellybean' of https://github.com/CyanogenMod/android_kernel_asus_grouper into jellybean
grouper: set default io scheduler to deadline
tegra: custom user voltage control

initial implementation inspired by coolbho3k's custom voltage control for
galaxy nexus (OMAP4460)

also added some Processor ID debugging code to properly identify tegra3
variants
ARM: tegra: dvfs: Re-factor CPU alternative dvfs

Removed alternative frequencies table from dvfs structure, and
replaced it with table pointer to facilitate future support for
multiple alternative tables. Actually supported alternative dvfs
table (Tegra3 CPU cold zone table) is not changed.

Change-Id: Ia8c1d1f2dd450f0e48685e769ca925b8e6f5b57b
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/104882
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
ARM: tegra: dvfs: Alter CPU dvfs on EDP events

Extended EDP processing of cpu up/down events with calls to alter CPU
dvfs table. This is in addition to already supported changing of CPU
dvfs on EDP thermal event. For now, added calls do not actually alter
the table.

Change-Id: I1cbf2c54eeca8dea1e7b6f4c65d8dbaf563a980e
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/104883
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
ARM: tegra: dvfs: Separate Tegra3 single core dvfs table

On Tegra3 added mechanism to alter dvfs table between single and
multiple CPU cores. This mechanism is dormant since no single-core
table is available yet.

Change-Id: I63bd513bd5fd7347f64c88f46974cf7fac55c419
Signed-off-by: Alex Frid <afrid@nvidia.com>
Reviewed-on: http://git-master/r/105508
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
ARM: tegra: dvfs: Fix error checking of voltage

Fix error checking of predicted voltage. Also get rid of
maybe-uninitialized warning when using 4.6 toolchain.

Bug 949219
Bug 999222

Change-Id: I47553aba5a93c91bdd93cbf75081d69f92aec4dd
Signed-off-by: Juha Tukkinen <jtukkinen@nvidia.com>
Reviewed-on: http://git-master/r/108899
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
ARM: tegra: dvfs: Update Tegra3 dsi dvfs tables

Updated entries in Tegra3 dsi dvfs tables with recent characterization results.

Bug 985671.
Bug 1006163.

Change-Id: Ife87f3ccfd9d6147d4aa5b57c1a5750bbabc7e6b
Signed-off-by: Rakesh Iyer <riyer@nvidia.com>
Reviewed-on: http://git-master/r/112805
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Peter Zu <pzu@nvidia.com>
modified for N7 kernel by faux123
grouper: enable user voltage control on Tegra CPU
lowmemorykiller: Compact memory when killing processes

* Memory compaction is never invoked on Android because we avoid swap
   and don't allocate huge pages. Fix it by invoking compaction from the LMK when
   a process is killed to reduce memory fragmentation.

Change-Id: I2bda790c2093e65fd6f43d52ea5149d6b57cb1e9

Conflicts:

	drivers/staging/android/lowmemorykiller.c
lowmemorykiller: Use asynchronous compaction

Change-Id: I6a65d06fc30b88fcedaaf1abf1855fdd19e3c912
drivers: staging: android: lmk compile fixup

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
Merge branch 'jellybean' of https://github.com/CyanogenMod/android_kernel_asus_grouper into jellybean