cpufreq: interactive: fix boosting logic

35a84de cpufreq: interactive: apply above_hispeed_delay to each step above hispeed

caused the speed choice logic to osciallate between boosting and not boosting.
Add back code to ensure speed does not drop below boost frequency while
boosting.

Change-Id: Id420068480fcc7f5c4989ff523e2a8d22e2f4db2
Signed-off-by: Todd Poynor <toddpoynor@google.com>
cpufreq: interactive: fix racy timer stopping

When stopping the governor, del_timer_sync() can race against an
invocation of the idle notifier callback, which has the potential
to reactivate the timer.

To fix this issue, a read-write semaphore is used. Multiple readers are
allowed as long as pcpu->governor_enabled is true.  However it can be
moved to false only after taking a write semaphore which would wait for
any on-going asynchronous activities to complete and prevent any more of
those activities to be initiated.

[toddpoynor@google.com: cosmetic and commit text changes]
Change-Id: Ib51165a735d73dcf964a06754c48bdc1913e13d0
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
bcmdhd: upgrade to 1.28.4 (r339952) - Thanks to Master: renaudallard

Conflicts:
	drivers/net/wireless/bcmdhd/Kconfig
	drivers/net/wireless/bcmdhd/Makefile
	drivers/net/wireless/bcmdhd/dhd_linux.c
	drivers/net/wireless/bcmdhd/wl_cfg80211.c
	drivers/net/wireless/bcmdhd/wl_cfg80211.h

Conflicts:
	drivers/net/wireless/bcmdhd/Kconfig
	drivers/net/wireless/bcmdhd/Makefile

Conflicts:
	drivers/net/wireless/bcmdhd/Kconfig
	drivers/net/wireless/bcmdhd/Makefile
	drivers/net/wireless/bcmdhd/dhd_linux.c
	drivers/net/wireless/bcmdhd/wl_cfg80211.h
	drivers/net/wireless/bcmdhd/wl_cfgp2p.c
net: wireless: bcmdhd: Decrease chip recognition attempts to 3

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit feae537a1aa3b2f89ff0b8218db49cc64b67d76e)
net: wireless: bcmdhd: Update wiphy bands on country and band change

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit 2090bebd69b1f3a16ea1cd9266a89c201ba02728)
net: wireless: bcmdhd: Add info_string param with driver/fw/chip info

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>

Conflicts:

	drivers/net/wireless/bcmdhd/dhd_linux.c
(cherry picked from commit 6ef410db2f8029641a534319fadf8cf9c2233c3a)
net: wireless: bcmdhd: Update to version 1.28-5

- Fix static analysis error
- Fix UDP out of order issue (wlfc)
- Refactoring Packet filter and Vendor IE logic
- Change request information buffer size (MAC address, STA information)
- Fix kernel paic issue
- Fix Beacon update problem
- Fix Escan Result Parsing
- Fix Not able to associate with WEP Enable AP
- Fix deauth race condition
- Fix p2p issue of same channel concurrency

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit 100a2d309a0ff5c4808c91d1b113d13cd236e38a)

Conflicts:

	drivers/net/wireless/bcmdhd/dhd_linux.c

Conflicts:
	drivers/net/wireless/bcmdhd/dhd_linux.c
Change some build parameters for bcmdhd to revert to some old behavior
net: wireless: bcmdhd: Decrease chip recognition attempts to 3

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit aabc63c27098f31eede28db9e938af5ceef71973)
net: wireless: bcmdhd: Prevent HT Avail request failure to flood the log

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>

Conflicts:

	drivers/net/wireless/bcmdhd/dhd_sdio.c
(cherry picked from commit 4cbb79ac850ec57df3fc1653203a7313f22bdaff)
net: wireless: bcmdhd: Fix crash if bus->sih was freed

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit 69b8ed96a454ab766b9d5e9c1d4fcdbac4e6d31c)
net: wireless: bcmdhd: Update to version 1.28-8

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit 8f237d3133b0672c337c27a1e34daad2b4e76f45)

Conflicts:

	drivers/net/wireless/bcmdhd/Makefile

Conflicts:
	drivers/net/wireless/bcmdhd/Makefile

Conflicts:
	drivers/net/wireless/bcmdhd/dhd_linux.c
	drivers/net/wireless/bcmdhd/wl_cfg80211.c
net: wireless: bcmdhd: Prevent deadlock in wl_cfg80211_down()

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit 5521a26bed40c388d4cd60d4ef2c1a1f5d8a997c)
net: wireless: bcmdhd: Set probe_resp.timestamp value to scan results

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit f752d4a9212707fff6a08da52adae3859bff7d04)
net: wireless: bcmdhd: Use correct time from boot for TSF

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit d7510c926d10f3b09536be556b0a7244415cee76)
net: wireless: bcmdhd: Remove obsolete files

Change-Id: I2969ecf8008e04f88757ec7a41285f11b9e2b928
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit 783a15162f0b2a11c7cdd3f2f3586feab3148b82)
bcmdhd: update to 1.28.9-2
net: wireless: bcmdhd: Remove WIPHY_FLAG_SUPPORTS_FW_ROAM flag

If driver advertises FW_ROAM, the supplicant wouldn't send
the BSSID & Freq in the connect command allowing the driver
to choose the AP to connect to. But unless we support ROAM_CACHE
in firware this will delay the ASSOC as the FW need to do a full
scan before attempting to connect.

Change-Id: Iebc88a60243196b9ad27b8302f2b1473710308f6
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
(cherry picked from commit c36a0067fbda423f546b2323c58afb3b89184763)
net: wireless: bcmdhd: Remove WL_CFG80211_SYNC_GON option

Change-Id: Iee0f977c6d4d5339e83b713740b7e8700e135008
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>

Conflicts:
	drivers/net/wireless/bcmdhd/Makefile
net: wireless: bcmdhd: Update to version 1.28.9-5

- Add cfg80211 del_station functionality
- Propagate disconnect error code for cfg80211

Change-Id: I0cf772f70323e9604da06d83340ff6cead07b84b
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>