bluetooth-power: Don't change state on error
bluetooth_toggle_radio() maintains the previous state of the
bluetooth power regardless of whether or not the power_control
callback returns an error. If an error occurs, this can lead to
incorrectly tracking the state of the device leading to
incorrectly calling regulators and xo voting functions.

This leads to crashes like:

[<c01849d8>] (__msm_xo_mode_vote+0x30/0x12c) from [<c0184c20>]
[<c0184c20>] (msm_xo_mode_vote+0x58/0xb8) from [<c0176f90>]
[<c0176f90>] (bluetooth_power+0x128/0x1ac) from [<c0548720>]
[<c0548720>] (bluetooth_toggle_radio+0x28/0x38) from [<c07072f4>]
[<c07072f4>] (rfkill_set_block+0x108/0x1cc) from [<c07078cc>]
[<c07078cc>] (rfkill_state_store+0x68/0x7c) from [<c03ff804>]
[<c03ff804>] (dev_attr_store+0x1c/0x20) from [<c027b3f0>]
[<c027b3f0>] (sysfs_write_file+0x108/0x13c) from [<c022986c>]
[<c022986c>] (vfs_write+0xac/0x154) from [<c02299c0>]
[<c02299c0>] (sys_write+0x3c/0x68) from [<c0101280>]

which can be fixed by checking the return code of power_control.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit efd62b7)