ARM: mutex: use generic atomic_dec-based implementation for ARMv6+

Commit a76d7bd96d65 ("ARM: 7467/1: mutex: use generic xchg-based
implementation for ARMv6+") removed the barrier-less, ARM-specific
mutex implementation in favour of the generic xchg-based code.

Since then, a bug was uncovered in the xchg code when running on SMP
platforms, due to interactions between the locking paths and the
MUTEX_SPIN_ON_OWNER code. This was fixed in 0bce9c46bf3b ("mutex: place
lock in contended state after fastpath_lock failure"), however, the
atomic_dec-based mutex algorithm is now marginally more efficient for
ARM (~0.5% improvement in hackbench scores on dual A15).

This patch moves ARMv6+ platforms to the atomic_dec-based mutex code.

Change-Id: I5cb600b15f891dc692356322b38cae1d692a084c
Cc: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Will Deacon <will.deacon@arm.com>
net: bcmdhd: update to version 1.61.47 from the GT-9505 source drop

Change-Id: Ib21e86c4652be47c69aeaa5c22f93676962e6354
bcmdhd: Enable Ad-Hoc (IBSS) mode

Enable Ad-Hoc (IBSS) mode for bcmdhd. We basically just need to set the
interface flag and avoid some P2P specific settings while scanning.

Also add the "station get" command for IBSS mode.

Change-Id: Ie6f0fa77b55d92a7c22cbda72bad200cbfaede04
Signed-off-by: Bruno Randolf <br1@einfach.org>

Change-Id: I598c6d832cfd3dcc0ddbfb5dc29f29cb97cdbd8b
d2: Squashed revert of msm_serial_hs.c updates

Reverts d0351295f9774e837d9bd05469ba90a0bac77667 and 9fcb8efb0242207c91e8fe1179f806ae2fb6fb1b

Commit 9fcb8efb0242207c91e8fe1179f806ae2fb6fb1b is causing issues with Bluetooth issues on d2 devices (d2vzw primarily)

- Pairing issues with pair failures
- Handshaking issues after pairing with device timing out or numerious retry to connect
- Disconnect issues - lack of reconnecting issues

Revert confirms fix on d2vzw

Change-Id: I88df917560a7cfe03ff5da6e54c9af89bba6962b