Revert "Revert "USB: android: Avoid re-enabling the same configuration""

This reverts commit aaa5a3957f37b47215e7ce2904096df2bd90c188.
Revert "USB: android: Avoid re-enabling the same configuration"

Commit d9b1897713 doesn't allow re-enumeration of USB default composition
on bus reset. if adb close and adb open has been called within 1 second
of duration. with adb usb command, it restarts the adb into USB mode after
closing the adb device and re-opening the same within 1 second. To the
user it looks as if command is stuck. Terminating adb usb based command
prompt, killing adb server and doing adb shell again gets the adb
functionality. Here user doesn't see any USB re-enumeration with it. Hence
revert commit d9b1897713 which doesn't block the adb usb command and
re-enumeration of USB.

(cherry picked from commit ff3e0492ee60c8594b3f48eed87e086f4b3d5b0b)

Change-Id: I50ab56f94293b2e02b66c548ee703d26284bcc57
CRs-Fixed: 385973
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
USB: android: Don't disable configuration for every adb close

Certain ADB commands like "adb usb" and "adb root" restart the
adb daemon running on the device.  These commands require USB
bus reset, otherwise adb commands on the host side would stuck
for ever.

USB bus reset can be forced from device side by re-enabling the
same composition.  Earlier, configuration is disabled when adb
daemon closes /dev/android_usb device file.  The configuration
is enabled again after adb daemon opens the device file. This
approach solves the "adb usb" problem with the below side effects.

1. When USB cable is disconnected, the Rx request is flushed and
an error code is returned to user space.  The adb daemon is simply
restarted in this case which cause an unnecessary rebinding of
all functions.
2. The above scenario can happen if host reset the bus when device
is in configured state.  If device disable pull-up during, bus
reset, USB CV CH9 test cases are failing.

The commit d9b1897 (USB: android: Avoid re-enabling the same
configuration) fixed the above side effects. But silently ignores the
original "adb usb" problem.

This commit is another attempt to solve all the above mentioned problems
by forcing re-enumeration only when device is in connected state.  That
means, "adb usb" and "adb root" commands force usb bus reset where as
plugging out a cable does not.

(cherry picked from commit 1aa235a6c0a3d67bff24609766baf5a7d5d8e3e4)

Change-Id: I984f1320c6adfa925ed2f3beca5ae1464981e5fc
CRs-Fixed: 407882
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
USB: android: Fix adb device file closing bug

adb device file closing and config disabling can happen in
parallel during composition switch.  If adb device file
is closed prior to config disable, adb function driver request
android to disable configuration.  But this is not undone later
when adb device file is opened.  Due to this bug config remains
disabled after composition switch completion.  Fix this bug.

(cherry picked from commit c4d8e2ca7cfb2118bcc9f14a97568bfe42b76bcc)

Change-Id: Ia2b7024cfcc438f4e17ca1f165be03abcf380230
CRs-Fixed: 414360
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
msm: cpufreq: fix a race between hotplug and cpufreq

When msm_cpufreq_target() is called without holding the policy
semaphore, there is a rare chance that the cpu gets hotplugged in
the acpuclk_set_rate. The probability of this issue increases
when cross-calling is used or using interactive governor which
tries to set all cpu frequencies from a single thread.

Add a hotplug notifier and set the device_suspended flag holding
the suspend mutex, when cpu is going down. This mutex is always
held when frequency changes are done.

Signed-off-by: Narayanan Gopalakrishnan <nargop@codeaurora.org>
(cherry picked from commit 56f5a6de7f2ab48ed0538da727ad52673fb801a2)

Change-Id: I802c47125c9377f3571ce482c6ecc308f4d4f84c
Signed-off-by: Sridhar Gujje <sgujje@codeaurora.org>
Merge of Sony 9.1.A.1.138 Release

Change-Id: I5b77cafdda7a36c34af85229342570fc5f3ef4ce
blue: update defconfig

Change-Id: I7852f81c9f3f1512ba4fb4cf0b3743bbe09eb019
Merge of Sony 9.1.A.1.140 Release

Change-Id: Id1af28facfcb88f49c89372d50c739a71526e662
usb: force 500Ma charging current on unknown chargers

- fixes charging with car chargers and unknown wall chargers

Change-Id: I6cfb306d5b01ad1449e989af459f0f5fc35cbfb0
Merge "usb: force 500Ma charging current on unknown chargers" into cm-10.1