Misc updates and fix-ups including the following:

cpufreq: ondemand: Boost CPU frequency only for touch input
Originally CPU frequency were boosted for any input event.
In some case, sensor sends a lot of input event, which
keep CPU in high frequency.  CPU frequency only need to
be boosted when real user interaction happens.

Change-Id: Ia3ad755b98d8363a17729926610b5dd6f0075288
CR-Fixed: 507519
Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Signed-off-by: flar2 <asegaert@gmail.com>

msm: acpuclock-krait: Enable HFPLL for init only if switching to it
The existing code left the HFPLL enabled in hfpll_init(), even if
the CPU was detected to be at a non-HFPLL rate. Correct this for
power savings between when hfpll_init() and the first runtime CPU
frequency switch happen. This also ensure votes for HFPLL
regulators are not left unnecessarily asserted.

Change-Id: Iaca5dc7e4769bdbd494d669726ba9b500256f793
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>

USB: Prevent system suspend when HSIC device is active
Some buses like HSIC would like to keep device in suspend state after system resume. The
remote wakeup or interface activity later will auto resume the device. This will work only
if the device is auto suspended before system suspend. If the device runtime state had been
active during system suspend and system suspend routine put the device in suspend, it will
not be resumed during system resume. When remote wakeup happen for this device, the runtime
resume will not bring the device to active as runtime core think it is already active. The
HSIC bus ensure that device is auto suspended prior to system suspend by holding a wakelock
till the bus is suspended. HSIC bus is not handling the case where device is auto resumed
immediately after system suspend begins. HSIC bus simply put the device into suspend in
system suspend routine. This patch fixes above issue by returning an error code if the
device is not auto suspended during system suspend. Also add a safe guard check in HSIC
system resume routine to skip device resume only if it is auto suspended prior to system
suspend.

Change-Id: I363c9c10dff9801fcc4d700a56d5a796f5f533cd
Pavankumar Kondeti

writeback: fix race that cause writeback hung
There is a race between mark inode dirty and writeback thread, see the
following scenario.  In this case, writeback thread will not run though
there is dirty_io.

__mark_inode_dirty()                                          bdi_writeback_workfn()
	...                                                       	...
	spin_lock(&inode->i_lock);
	...
	if (bdi_cap_writeback_dirty(bdi)) {
	    <<< assume wb has dirty_io, so wakeup_bdi is false.
	    <<< the following inode_dirty also have wakeup_bdi false.
	    if (!wb_has_dirty_io(&bdi->wb))
		    wakeup_bdi = true;
	}
	spin_unlock(&inode->i_lock);
	                                                            <<< assume last dirty_io
is removed here.
	                                                            pages_written =
wb_do_writeback(wb);
	                                                            ...
	                                                            <<< work_list empty and
wb has no dirty_io,
	                                                            <<< delayed_work will
not be queued.
	                                                            if
(!list_empty(&bdi->work_list) ||
	                                                                (wb_has_dirty_io(wb)
&& dirty_writeback_interval))

queue_delayed_work(bdi_wq, &wb->dwork,

msecs_to_jiffies(dirty_writeback_interval * 10));
	spin_lock(&bdi->wb.list_lock);
	inode->dirtied_when = jiffies;
	<<< new dirty_io is added.
	list_move(&inode->i_wb_list, &bdi->wb.b_dirty);
	spin_unlock(&bdi->wb.list_lock);

	<<< though there is dirty_io, but wakeup_bdi is false,
	<<< so writeback thread will not be waked up and
	<<< the new dirty_io will not be flushed.
	if (wakeup_bdi)
	    bdi_wakeup_thread_delayed(bdi);

Writeback will run until there is a new flush work queued.  This may cause
a lot of dirty pages stay in memory for a long time.

Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fix typo