add cyanogenmod_grouper_defconfig

cped from tegra3_android_defconfig
grouper: add cifs module

Change-Id: Iac84f9a29accedd4da57c78036507925b658f5b4
Set as-instr to use printf intsead of echo

as-instr was hardcoded to use /bin/echo with the -e option.
Non-GNU systems like MacOSX would fail and cause compiler errors.

Since BSD echo does not have the -e option (escape backslashes)
prinf was used instead would should be more friendly cross-platform

Specifically with the new OSX toolchain it caused the following
error:
  Error: selected processor does not support ARM mode `smc #0'

This was caused by $(call as-instr,.arch_extension sec,+sec) failing
since it was using echo -e.

See: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html

  "It is not possible to use echo portably across all POSIX systems
   unless both -n (as the first argument) and escape sequences are
   omitted.

  The printf utility can be used portably to emulate any of the
  traditional behaviors of the echo utility as follows (assuming
  that IFS has its standard value or is unset)

  New applications are encouraged to use printf instead of echo."

Change-Id: I558ec343e9bb8d449e1af710d329b4dc76743a05
Block: Add the BFQ-v4 I/O scheduler to 3.1

Add the BFQ-v4 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>
Config:  Enable BFQ I/O Scheduler
and BFQ hierarchical scheduling support

Depends on http://review.cyanogenmod.com/#/c/20875/10

BFQ I/O Scheduler

	- The BFQ I/O scheduler tries to distribute bandwidth among
	   all processes according to their weights.
	   It aims at distributing the bandwidth as desired, independently of
	   the disk parameters and with any workload. It also tries to
	   guarantee low latency to interactive and soft real-time
	   applications.

BFQ hierarchical scheduling support

	- Enable hierarchical scheduling in BFQ, using the cgroups
	  filesystem interface.  The name of the subsystem will be
	  bfqio.

Signed-off-by: Paul Beeler <sparksco@gmail.com>
bq27541: Add current_now property

The current is returned by the charger as a twos
complement signed integer in milliamps.  Applications
such as CurrentWidget expect this to be microamps.

Signed-off-by: Andrew Dodd <atd7@cornell.edu>
Change-Id: I053b3d1f24ec04391e982fdcb4b3486241c3aa34
bq27541: Correct scaling of voltage_now

This is supposed to return the voltage in uV, not mV.

Change-Id: I13f084f8c5f41f89a7e6c7cfd86e8806229a159b
Signed-off-by: Andrew Dodd <atd7@cornell.edu>
Merge "Block: Add the BFQ-v4 I/O scheduler to 3.1" into jellybean
Merge "Config:  Enable BFQ I/O Scheduler and BFQ hierarchical scheduling support" into jellybean
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 'android-tegra3-grouper-3.1-jb-mr0' of https://android.googlesource.com/kernel/tegra into update
Merge "cm kernel config: Update a proper defconfig" into jellybean
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>
Revert "Set as-instr to use printf intsead of echo"

Better solution from upstream linux

This reverts commit 65cb15e8a9400d9b5140add0439bf7f1ba9cc82d.
scripts/Kbuild.include: Fix portability problem of "echo -e"

"echo -e" is a GNU extension. When cross-compiling the kernel on a
BSD-like operating system (Mac OS X in my case), this doesn't work.

One could install a GNU version of echo, put that in the $PATH before
the system echo and use "/usr/bin/env echo", but the solution with
printf is simpler.

Since it is no disadvantage on Linux, I hope that gets accepted even if
cross-compiling the Linux kernel on another Unix operating system is
quite a rare use case.

Signed-off-by: Bernhard Walle <bernhard@bwalle.de>
Andreas Bießmann <andreas@biessmann.de>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Merge remote-tracking branch 'goog/android-tegra3-grouper-3.1-jb-mr1-fr'

Conflicts:
	arch/arm/mach-tegra/board-grouper-misc.c
	arch/arm/mach-tegra/board-grouper-pinmux.c
	arch/arm/mach-tegra/board-grouper-power-ti.c
	arch/arm/mach-tegra/board-grouper-power.c
	arch/arm/mach-tegra/board-grouper.c
	arch/arm/mach-tegra/include/mach/board-grouper-misc.h
	arch/arm/mach-tegra/usb_phy.c
	drivers/power/bq27541_battery.c
	drivers/power/smb347-charger.c
	kernel/sys.c

(Also includes changes to cyanogenmod defconfig)

Change-Id: I04b913a69ec65012de94c951f5ae9388f5ed9b0e