Fix disconnect not sent from host when pairing is cancelled

Fixes the issue that disconnect command is not sent
from the host when pairing is cancelled.

CRs-fixed: 489957

Change-Id: I600a526aa9b95a3f17d77d5ef16d91e206ce7161
Signed-off-by: Subramanian Srinivasan <subrsrin@codeaurora.org>
Fix pairing behavior when remote reports missing key or pin

When remote device reports missing key or pin in encrypt
change event, host sends HCI_LE_Start_Encryption command
instead of sending a pairing request command. This change
fixes this issue.

CRs-fixed: 455408

Change-Id: I05e7b1d2ef84753d6c5e3079424cdd8365882524
Signed-off-by: Subramanian Srinivasan <subrsrin@codeaurora.org>
USB: HSIC: Disable AHB2AHB bridge

Disable the AHB2AHB bridge. It can make bus access
faster for HSIC core. This fix enhances the HSIC/WLAN
throughut.

CRs-Fixed: 510122

Change-Id: I6fb4028bd9403c47e3aa7ba0186ad7f6d7292b22
Signed-off-by: Sujeet Kumar <ksujeet@codeaurora.org>
cpufreq: Use dedicated high-priority workqueues

In the process of scaling CPU frequencies, cpufreq and the APIS is
calls may hold resources that will prevent threads critical for
system stability from running.

Specifically, thermal-mitigation software may need to respond
quickly to high-temperature conditions and throttle the CPU speed
in an effort to cool down. If the system is already in the middle
of a CPU frequency switch being executed on behalf of a cpufreq
governor, thermal mitigation will be blocked until the scaling
action has completed. If the system is under heave load of medium
or high-priority threads, this may take a long while and the system
may potentially surpass thermal limits in the meantime.

Resolve this by using high priority workqueues for all ondemand
and conservative governor scaling operations.  This will allow them
to complete promptly and release their hold on resources necessary
for maintaining system stability.

Change-Id: I2f56052c131442838036cf4cdd8059f7c09bb805
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Signed-off-by: Sridhar Gujje <sgujje@codeaurora.org>
cpufreq: ondemand: change freq sync code to use per-CPU kthreads

The migration notifier may run in a context where it is not safe to
enqueue a work item. For example:

(__queue_work+0x1f4/0x40c)
(queue_work_on+0x34/0x44)
(dbs_migration_notify+0x2c/0x40)
(notifier_call_chain+0x38/0x68)
(__atomic_notifier_call_chain+0x34/0x44)
(atomic_notifier_call_chain+0x14/0x18)
(try_to_wake_up+0x350/0x36c)
(autoremove_wake_function+0xc/0x34)
(__wake_up_common+0x48/0x7c)
(__wake_up+0x3c/0x50)
(trustee_thread+0x1d0/0x528)
(kthread+0x80/0x8c)

The trustee code already takes a lock internal to the workqueue
implementation and is not expecting a wake up to come around and
enter the workqueue code again, where the same lock will be needed.

Instead of relying on a workqueue, use a per-CPU kthread to do
the frequency syncing.

Change-Id: I7555ee40867792fa8ec4ea8f9a6309323775e797
CRs-Fixed: 501099
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
Signed-off-by: Sridhar Gujje <sgujje@codeaurora.org>
cpufreq: ondemand: Disable freq sync feature in store_powersave_bias

Turn off frequency synchronization of CPUs on thread migrations
when powersave bias is enabled. This is done to prevent re-arming
of the dbs timer work (which is cancelled by store_powersave_bias)
by the sync_thread.

Change-Id: I165dd591845c1d66d01a14e8dfc44c767c677b0d
Signed-off-by: Rohit Gupta <rohgup@codeaurora.org>
Signed-off-by: Sridhar Gujje <sgujje@codeaurora.org>
Merge "cpufreq: Use dedicated high-priority workqueues"
Merge "cpufreq: ondemand: change freq sync code to use per-CPU kthreads"
Merge "cpufreq: ondemand: Disable freq sync feature in store_powersave_bias"
Merge "USB: HSIC: Disable AHB2AHB bridge"
Merge "Fix disconnect not sent from host when pairing is cancelled"
Merge "Fix pairing behavior when remote reports missing key or pin"