mirror of https://gitee.com/openkylin/linux.git
Revert "Bluetooth: hci_ll: set operational frequency earlier"
As nice as it would be to update firmware faster, that patch broke
at least two different boards, an OMAP4+WL1285 based Motorola Droid
4, as reported by Sebasian Reichel and the Logic PD i.MX6Q +
WL1837MOD.
This reverts commit a2e02f38ef
.
Signed-off-by: Adam Ford <aford173@gmail.com>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Cc: stable@vger.kernel.org
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
c0a21a5294
commit
cef456cd35
|
@ -621,13 +621,6 @@ static int ll_setup(struct hci_uart *hu)
|
||||||
|
|
||||||
serdev_device_set_flow_control(serdev, true);
|
serdev_device_set_flow_control(serdev, true);
|
||||||
|
|
||||||
if (hu->oper_speed)
|
|
||||||
speed = hu->oper_speed;
|
|
||||||
else if (hu->proto->oper_speed)
|
|
||||||
speed = hu->proto->oper_speed;
|
|
||||||
else
|
|
||||||
speed = 0;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
/* Reset the Bluetooth device */
|
/* Reset the Bluetooth device */
|
||||||
gpiod_set_value_cansleep(lldev->enable_gpio, 0);
|
gpiod_set_value_cansleep(lldev->enable_gpio, 0);
|
||||||
|
@ -639,20 +632,6 @@ static int ll_setup(struct hci_uart *hu)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (speed) {
|
|
||||||
__le32 speed_le = cpu_to_le32(speed);
|
|
||||||
struct sk_buff *skb;
|
|
||||||
|
|
||||||
skb = __hci_cmd_sync(hu->hdev,
|
|
||||||
HCI_VS_UPDATE_UART_HCI_BAUDRATE,
|
|
||||||
sizeof(speed_le), &speed_le,
|
|
||||||
HCI_INIT_TIMEOUT);
|
|
||||||
if (!IS_ERR(skb)) {
|
|
||||||
kfree_skb(skb);
|
|
||||||
serdev_device_set_baudrate(serdev, speed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
err = download_firmware(lldev);
|
err = download_firmware(lldev);
|
||||||
if (!err)
|
if (!err)
|
||||||
break;
|
break;
|
||||||
|
@ -677,7 +656,25 @@ static int ll_setup(struct hci_uart *hu)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Operational speed if any */
|
/* Operational speed if any */
|
||||||
|
if (hu->oper_speed)
|
||||||
|
speed = hu->oper_speed;
|
||||||
|
else if (hu->proto->oper_speed)
|
||||||
|
speed = hu->proto->oper_speed;
|
||||||
|
else
|
||||||
|
speed = 0;
|
||||||
|
|
||||||
|
if (speed) {
|
||||||
|
__le32 speed_le = cpu_to_le32(speed);
|
||||||
|
struct sk_buff *skb;
|
||||||
|
|
||||||
|
skb = __hci_cmd_sync(hu->hdev, HCI_VS_UPDATE_UART_HCI_BAUDRATE,
|
||||||
|
sizeof(speed_le), &speed_le,
|
||||||
|
HCI_INIT_TIMEOUT);
|
||||||
|
if (!IS_ERR(skb)) {
|
||||||
|
kfree_skb(skb);
|
||||||
|
serdev_device_set_baudrate(serdev, speed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue