msm: add HAVS w/ sysfs interface (all boards: set min/max mV via config)

disable by default and ifdef everything

squashed:
commit fbb4cdaf8220dc473460a8f006cffedd78541337
Author: Andrew Sutherland <dr3wsuth3rland@gmail.com>
Date:   Fri May 18 11:58:02 2012 -0500

    HAVS: set min/max voltage via config

    remove hardset min/max values and allow setting via config
    this should make tweaking setting much easier

commit 919c47bf40a5f4cffde580cdb666dc2e1f8dc78c
Author: Chad Froebel <chad0989@rochester.rr.com>
Date:   Thu Jun 16 12:05:21 2011 -0400

    HAVS + sysfs interface
The Brain Fuck Scheduler v0.404 by Con Kolivas.
bfs: fix build for mmc/dma
kbuild: Add extra gcc checks

Add a 'W=1' Makefile switch which adds additional checking per build
object.

The idea behind this option is targeted at developers who, in the
process of writing their code, want to do the occasional

make W=1 [target.o]

and let gcc do more extensive code checking for them. Then, they
could eyeball the output for valid gcc warnings about various
bugs/discrepancies which are not reported during the normal build
process.

For more background information and a use case, read through this
thread: http://marc.info/?l=kernel-janitors&m=129802065918147&w=2

Cc: Michal Marek <mmarek@suse.cz>
Cc: linux-kbuild@vger.kernel.org
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Michal Marek <mmarek@suse.cz>
kbuild: implement several W= levels

Building a kernel with "make W=1" produces far too much noise to be
useful.

Divide the warning options in three groups:

    W=1 - warnings that may be relevant and does not occur too often
    W=2 - warnings that occur quite often but may still be relevant
    W=3 - the more obscure warnings, can most likely be ignored

When building the whole kernel, those levels produce:

W=1 - 4859 warnings
W=2 - 1394 warnings
W=3 - 86666 warnings

respectively. Warnings have been counted with Geert's script at

http://www.kernel.org/pub/linux/kernel/people/geert/linux-log/linux-log-summary.pl

Many warnings occur from .h files so fixing one file may have a nice
effect on the total number of warnings.

With these changes I am actually tempted to try W=1 now and then.
Previously there was just too much noise.

Borislav:

- make the W= levels exclusive
- move very noisy and making little sense for the kernel warnings to W=3
- drop -Woverlength-strings due to useless warning message
- copy explanatory text for the different warning levels to 'make help'
- recount warnings per level

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Borislav Petkov <bp@alien8.de>
Cc: Dave Jones <davej@redhat.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
kbuild: Disable -Wunused-but-set-variable for gcc 4.6.0

Disable the new -Wunused-but-set-variable that was added in gcc 4.6.0
It produces more false positives than useful warnings.

This can still be enabled using W=1

Signed-off-by: Dave Jones <davej@redhat.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Tested-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
kbuild: Allow to combine multiple W= levels

Add support for make W=12, make W=123 and so on, to enable warnings from
multiple W= levels. Normally, make W=<level> does not include warnings
from the previous level.

Signed-off-by: Michal Marek <mmarek@suse.cz>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-By: Valdis Kletnieks <valdis.kletnieks@vt.edu>
kbuild: Fix passing -Wno-* options to gcc 4.4+

Starting with 4.4, gcc will happily accept -Wno-<anything> in the
cc-option test and complain later when compiling a file that has some
other warning. This rather unexpected behavior is intentional as per
http://gcc.gnu.org/PR28322, so work around it by testing for support of
the opposite option (without the no-). Introduce a new Makefile function
cc-disable-warning that does this and update two uses of cc-option in
the toplevel Makefile.

Reported-and-tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Makefile: Hide -Wunitialized warnings for now
Makefile: adding config variable for Os/O2/O3 compilation
module: Sort exported symbols

This patch places every exported symbol in its own section
(i.e. "___ksymtab+printk").  Thus the linker will use its SORT() directive
to sort and finally merge all symbol in the right and final section
(i.e. "__ksymtab").

The symbol prefixed archs use an underscore as prefix for symbols.
To avoid collision we use a different character to create the temporary
section names.

This work was supported by a hardware donation from the CE Linux Forum.

Signed-off-by: Alessio Igor Bogani <abogani@kernel.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (folded in '+' fixup)
Tested-by: Dirk Behme <dirk.behme@googlemail.com>
Makefile: Scorpion optimizations from showp
Makefile: more Scorpion optimizations from showp

o mvectorize-with-neon-quad By default, it vectorizes for doubleword registers
  only. You can instruct gcc to vectorize for quadword registers instead
o fgcse-lm global common subexpression elimination will attempt to move
  loads which are only killed by stores into themselves. This allows a loop
  containing a load/store sequence to be changed to a load outside the loop,
  and a copy/store within the loop
o fgcse-sm a store motion pass is run after global common subexpression
  elimination. This pass will attempt to move stores out of loops. When
  used in conjunction with -fgcse-lm, loops containing a load/store sequence
  can be changed to a load before the loop and a store after the loop.
o fsched-spec-load Allow speculative motion of some load instructions
o fforce-addr Force memory address constants to be copied into registers
  before doing arithmetic on them. This may produce better code
Makefile: remove -mvectorize-with-neon-quad

i dont really know if we fully support this
Merge remote-tracking branch 'origin/ics-havs' into ics
Merge remote-tracking branch 'origin/ics-optimize' into ics