Bluetooth: hci_intel: Remove LPM enabling from setup procedure
LPM can be enabled via a DDC write command at specific DDC ID. As any other DDC value, this is up to the DDC config file to include (or not) the low power mode configuration. Signed-off-by: Loic Poulain <loic.poulain@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
ca8bee5dde
Коммит
31eff26703
|
@ -537,9 +537,7 @@ static int intel_setup(struct hci_uart *hu)
|
|||
{
|
||||
static const u8 reset_param[] = { 0x00, 0x01, 0x00, 0x01,
|
||||
0x00, 0x08, 0x04, 0x00 };
|
||||
static const u8 lpm_param[] = { 0x03, 0x07, 0x01, 0x0b };
|
||||
struct intel_data *intel = hu->priv;
|
||||
struct intel_device *idev = NULL;
|
||||
struct hci_dev *hdev = hu->hdev;
|
||||
struct sk_buff *skb;
|
||||
struct intel_version ver;
|
||||
|
@ -884,35 +882,23 @@ done:
|
|||
|
||||
bt_dev_info(hdev, "Device booted in %llu usecs", duration);
|
||||
|
||||
/* Enable LPM if matching pdev with wakeup enabled */
|
||||
/* Enable LPM if matching pdev with wakeup enabled, set TX active
|
||||
* until further LPM TX notification.
|
||||
*/
|
||||
mutex_lock(&intel_device_list_lock);
|
||||
list_for_each(p, &intel_device_list) {
|
||||
struct intel_device *dev = list_entry(p, struct intel_device,
|
||||
list);
|
||||
if (hu->tty->dev->parent == dev->pdev->dev.parent) {
|
||||
if (device_may_wakeup(&dev->pdev->dev))
|
||||
idev = dev;
|
||||
if (device_may_wakeup(&dev->pdev->dev)) {
|
||||
set_bit(STATE_LPM_ENABLED, &intel->flags);
|
||||
set_bit(STATE_TX_ACTIVE, &intel->flags);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&intel_device_list_lock);
|
||||
|
||||
if (!idev)
|
||||
goto no_lpm;
|
||||
|
||||
bt_dev_info(hdev, "Enabling LPM");
|
||||
|
||||
skb = __hci_cmd_sync(hdev, 0xfc8b, sizeof(lpm_param), lpm_param,
|
||||
HCI_CMD_TIMEOUT);
|
||||
if (IS_ERR(skb)) {
|
||||
bt_dev_err(hdev, "Failed to enable LPM");
|
||||
goto no_lpm;
|
||||
}
|
||||
kfree_skb(skb);
|
||||
|
||||
set_bit(STATE_LPM_ENABLED, &intel->flags);
|
||||
|
||||
no_lpm:
|
||||
/* Ignore errors, device can work without DDC parameters */
|
||||
btintel_load_ddc_config(hdev, fwname);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче