cpufreq: interactive: add early suspend hotplugging

Signed-off-by: Zhao Wei Liew <zhaoweiliew@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>
cpufreq: Remove pegasusq governor
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>
cpufreq: interactive: fix conflict in naming of early_suspend

Change-Id: I84f8127973077185247d88a1c8c95e34544a060a
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>
ARM: mach-ux500: move suspend hotplugging to separate hotplug driver

Change-Id: Ifa4ac375f496c1eeb84342445463bcd0a4c9a065
Signed-off-by: Zhao Wei Liew <zhaoweiliew@gmail.com>