LiveOPP: add PLLDDR boost interface

Thanks @cocafe for idea and original patch.
I found way to overclock PLLDDR stably upto 975 MHz (on my codina).
To use this interface type command like that:
`echo 0x0005017f > /sys/kernel/liveopp/pllddr # 975 MHz`
Please note only values that starts with 0x0005.... are allowed.

I did some tests that confirmed better RAM performance:
Governor - performance, CPU 1200 MHz.

1) Memory speed benchmark:
  a) 798 MHz

Reading speed in MBytes/second
Memory    x[m]=x[m]+s*y[m]            x[m]=x[m]+y[m]
Kbytes      Dble    Sngl     Int           Dble    Sngl     Int
   16       1735     886    2381           2719    1360    2808
   32       1586     819    1760           1991    1145    1953
   64       1459     755    1279           1580     978    1410
  128       1454     763    1223           1589     978    1345
  256       1449     760    1183           1579     975    1298
  512        940     697     934           1161     867     979
 1024        480     443     463            489     457     490
 4096        378     350     351            395     364     380
16384        402     353     397            389     382     391
65536        388     364     399            400     392     408

Total elapsed time: 12.9 seconds

  b) 975 MHz

Reading speed in MBytes/second
Memory    x[m]=x[m]+s*y[m]            x[m]=x[m]+y[m]
Kbytes      Dble    Sngl     Int           Dble    Sngl     Int
   16       1737     889    2449           2720    1365    2804
   32       1600     824    1762           2006    1146    1958
   64       1457     756    1286           1576     979    1404
  128       1456     762    1224           1591     979    1347
  256       1449     762    1193           1584     977    1292
  512       1204     712     997           1274     901    1010
 1024        573     524     575            538     540     582
 4096        459     411     335            410     423     452
16384        455     434     458            482     435     471
65536        454     437     456            487     454     461

Total elapsed time: 12.0 seconds

2) random access benchmark:
 a) 798 MHz

Mbytes/Second transferring  4 byte words:

Memory           Serial.........    Random.........
Kbytes           Read     Rd/Wrt    Read     Rd/Wrt
   16            2788       3013    2787     3033
   32            1879       1963    1745     2130
   64            1103       1110    1029     1166
  128             988        972     787      844
  256             938        970     641      671
  512             855        738     236      275
 1024             627        415     110       89
 4096             570        376      69       68
16384             573        367      59       58
65536             508        395      51       49

Total elapsed time: 12.2 seconds

b) 975 MHz

Mbytes/Second transferring  4 byte words:

Memory           Serial.........    Random.........
Kbytes           Read     Rd/Wrt    Read     Rd/Wrt
   16            2779       3031    2785     3030
   32            1878       1959    1734     2150
   64            1101       1099    1034     1165
  128             986        993     812      853
  256             976        981     582      713
  512             886        771     289      311
 1024             657        541     129      125
 4096             643        429      89       79
16384             643        467      72       69
65536             597        475      59       59

Total elapsed time: 11.5 seconds

mentioned benchmarks were found on
http://www.roylongbottom.org.uk/android%20benchmarks.htm

Signed-off-by: Shilin Victor <chrono.monochrome@gmail.com>
[SCSI] Remove scsi_wait_scan module

scsi_wait_scan was introduced with asynchronous host scanning as a hack
for distributions that weren't using proper udev based wait for root to
appear in their initramfs scripts.  In 2.6.30 Commit

c751085943362143f84346d274e0011419c84202
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Sun Apr 12 20:06:56 2009 +0200

    PM/Hibernate: Wait for SCSI devices scan to complete during resume

Actually broke scsi_wait_scan because it renders
scsi_complete_async_scans() a nop for modular SCSI if you include
scsi_scans.h (which this module does).

The lack of bug reports is sufficient proof that this module is no
longer used.

Cc: Jeff Mahoney <jeffm@suse.de>
Cc: Dave Jones <davej@redhat.com>
Cc: maximilian attems <max@stro.at>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
snd_usb: Fix sysfs conflicts

<4>[    1.265808] WARNING: at fs/sysfs/dir.c:455 sysfs_add_one+0x90/0xb8()
<4>[    1.265808] sysfs: cannot create duplicate filename '/devices/virtual/switch/usb_audio'
<4>[    1.265808] Modules linked in:
<4>[    1.265869] [<c08e70dc>] (unwind_backtrace+0x0/0x138) from [<c0911e88>] (warn_slowpath_common+0x4c/0x64)
<4>[    1.265869] [<c0911e88>] (warn_slowpath_common+0x4c/0x64) from [<c0911f34>] (warn_slowpath_fmt+0x30/0x40)
<4>[    1.265899] [<c0911f34>] (warn_slowpath_fmt+0x30/0x40) from [<c0a0be5c>] (sysfs_add_one+0x90/0xb8)
<4>[    1.265899] [<c0a0be5c>] (sysfs_add_one+0x90/0xb8) from [<c0a0bee4>] (create_dir+0x60/0xbc)
<4>[    1.265930] [<c0a0bee4>] (create_dir+0x60/0xbc) from [<c0a0bff0>] (sysfs_create_dir+0x84/0xf0)
<4>[    1.265930] [<c0a0bff0>] (sysfs_create_dir+0x84/0xf0) from [<c0ac2ff0>] (kobject_add_internal+0xb0/0x218)
<4>[    1.265960] [<c0ac2ff0>] (kobject_add_internal+0xb0/0x218) from [<c0ac3470>] (kobject_add+0x4c/0x94)
<4>[    1.265991] [<c0ac3470>] (kobject_add+0x4c/0x94) from [<c0b5af5c>] (device_add+0x94/0x54c)
<4>[    1.265991] [<c0b5af5c>] (device_add+0x94/0x54c) from [<c0b5b4d0>] (device_create_vargs+0xa4/0xd4)
<4>[    1.266021] [<c0b5b4d0>] (device_create_vargs+0xa4/0xd4) from [<c0b5b520>] (device_create+0x20/0x28)
<4>[    1.266021] [<c0b5b520>] (device_create+0x20/0x28) from [<c0c63108>] (switch_dev_register+0x5c/0xfc)
<4>[    1.266052] [<c0c63108>] (switch_dev_register+0x5c/0xfc) from [<c002b770>] (snd_usb_audio_init+0x3c/0x64)
<4>[    1.266082] [<c002b770>] (snd_usb_audio_init+0x3c/0x64) from [<c08da6b4>] (do_one_initcall+0x38/0x178)
<4>[    1.266082] [<c08da6b4>] (do_one_initcall+0x38/0x178) from [<c00089ac>] (kernel_init+0x90/0x13c)
<4>[    1.266113] [<c00089ac>] (kernel_init+0x90/0x13c) from [<c08e1990>] (kernel_thread_exit+0x0/0x8)
<4>[    1.266143] Board Information: UX500: 0E, cpu U8500 ES178
<4>[    1.266174] ---[ end trace 189fe1a0ae07c69e ]---
<3>[    1.266174] kobject_add_internal failed for usb_audio with -EEXIST, don't try to register things with the same name in the same directory.
<4>[    1.266204] [<c08e70dc>] (unwind_backtrace+0x0/0x138) from [<c0ac3088>] (kobject_add_internal+0x148/0x218)
<4>[    1.266204] [<c0ac3088>] (kobject_add_internal+0x148/0x218) from [<c0ac3470>] (kobject_add+0x4c/0x94)
<4>[    1.266235] [<c0ac3470>] (kobject_add+0x4c/0x94) from [<c0b5af5c>] (device_add+0x94/0x54c)
<4>[    1.266235] [<c0b5af5c>] (device_add+0x94/0x54c) from [<c0b5b4d0>] (device_create_vargs+0xa4/0xd4)
<4>[    1.266265] [<c0b5b4d0>] (device_create_vargs+0xa4/0xd4) from [<c0b5b520>] (device_create+0x20/0x28)
<4>[    1.266265] [<c0b5b520>] (device_create+0x20/0x28) from [<c0c63108>] (switch_dev_register+0x5c/0xfc)
<4>[    1.266296] [<c0c63108>] (switch_dev_register+0x5c/0xfc) from [<c002b770>] (snd_usb_audio_init+0x3c/0x64)
<4>[    1.266296] [<c002b770>] (snd_usb_audio_init+0x3c/0x64) from [<c08da6b4>] (do_one_initcall+0x38/0x178)
<4>[    1.266326] [<c08da6b4>] (do_one_initcall+0x38/0x178) from [<c00089ac>] (kernel_init+0x90/0x13c)
<4>[    1.266357] [<c00089ac>] (kernel_init+0x90/0x13c) from [<c08e1990>] (kernel_thread_exit+0x0/0x8)
<6>[    1.266632] usbcore: registered new interface driver snd-usb-audio

Conflicts:

	arch/arm/mach-ux500/android_switch.c

	/* Android switch interface */
	ux500_android_switch.name = "usb_audio";

	ret = switch_dev_register(&ux500_android_switch);

Signed-off-by: cocafe <cocafehj@gmail.com>
snd_usb: Correct device name

<6>[    1.299804] usbcore: registered new interface driver snd-usb-audio
abb-fg: Disable low battery reinit

Because i want more time on low battery, let it be lazy.

Signed-off-by: cocafe <cocafehj@gmail.com>
cpufreq: interactive: eliminate dead band effect in low load

the old frequency calculation algorithm that calculates frequency directly proportional to load will result in a dead band effect in low load. at loads near 0, the new frequency calculated is always below min freq, thus causing the min freq to be selected every time. this new algorithm will select the frequencies linearly, such that the min load will result in min freq and so on.

Change-Id: Icd6193f2517542384049c3e6211dc71fc23b60c0
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
cpufreq: interactive: use cputime64_t

u64 arrays aren't implemented yet
block: Reserve only one queue tag for sync IO if only 3 tags are available

In case a device has three tags available we still reserve two of them
for sync IO. That leaves only a single tag for async IO such as
writeback from flusher thread which results in poor performance.

Allow async IO to consume two tags in case queue has three tag availabe
to get a decent async write performance.

This patch improves streaming write performance on a machine with such disk
from ~21 MB/s to ~52 MB/s. Also postmark throughput in presence of
streaming writer improves from 8 to 12 transactions per second so sync
IO doesn't seem to be harmed in presence of heavy async writer.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
cpufreq: Break out early when frequency equals target_freq

Many drivers keep frequencies in frequency table in ascending
or descending order. When governor tries to change to policy->min
or policy->max respectively then the cpufreq_frequency_table_target
could return on first iteration. This will save some iteration cycles.

So, break out early when a frequency in cpufreq_frequency_table
equals to target one.

Testing this during kernel compilation using ondemand governor
with a frequency table in ascending order, the
cpufreq_frequency_table_target returned early on the first
iteration at about 30% of times called.

Change-Id: Iea687ce8006d622d1a951561087b856b50ba05c2
Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
ARM: 7928/1: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU

Modern ARM CPUs can perform efficient unaligned memory accesses in
hardware and this feature is relied up on by code such as the dcache
word-at-a-time name hashing.

This patch selects HAVE_EFFICIENT_UNALIGNED_ACCESS for these cores and
reworks the kconfig select logic for DCACHE_WORD_ACCESS to use the new
symbol.

Change-Id: I2d6474e99fec6aa940cc2f3d2cd2e6a0c4ca636a
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
ARM: kconfig: don't select HAVE_EFFICIENT_UNALIGNED_ACCESS if is janice

if i'm not wrong, janice cannot boot on gcc 4.7+ with this

Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
LiveOPP: Enable 100MHz by default

Lower power consumption
Author: @cocafe
misc: Clean up warnings

Signed-off-by: cocafe <cocafehj@gmail.com>
Initramfs naming STE --> u8500
Update defconfigs
cpufreq: interactive: fix wrong tunables

since we aren't using extended cpufreqs, switch this up a bit.

Change-Id: Iafa0fceafd8985635928b9ef3be176ae038a5b45
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
fix initramfs reference

Change-Id: I30b5e9aea4e9c5fbaf755f4fea5b78310ed4c91c
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
fs: add universal exfat driver

this is much more updated and universal than the current exfat driver. furthermore, it should be in fs.

Change-Id: Iee912807399d5aae5ff43d252810c97782251241
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
drivers: remove old exfat driver

Change-Id: I94eef7ac6ae9dd3b7e84a31450d1c0a17db085e8
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
defconfigs: enable new exfat driver

Change-Id: I40cbdef9c6ccce6e324742b34440b400aa3f83bf