|
@@ -432,6 +432,21 @@ static int btmrvl_open(struct hci_dev *hdev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int btmrvl_setup(struct hci_dev *hdev)
|
|
|
+{
|
|
|
+ struct btmrvl_private *priv = hci_get_drvdata(hdev);
|
|
|
+
|
|
|
+ btmrvl_send_module_cfg_cmd(priv, MODULE_BRINGUP_REQ);
|
|
|
+
|
|
|
+ priv->btmrvl_dev.psmode = 1;
|
|
|
+ btmrvl_enable_ps(priv);
|
|
|
+
|
|
|
+ priv->btmrvl_dev.gpio_gap = 0xffff;
|
|
|
+ btmrvl_send_hscfg_cmd(priv);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* This function handles the event generated by firmware, rx data
|
|
|
* received from firmware, and tx data sent from kernel.
|
|
@@ -525,8 +540,7 @@ int btmrvl_register_hdev(struct btmrvl_private *priv)
|
|
|
hdev->flush = btmrvl_flush;
|
|
|
hdev->send = btmrvl_send_frame;
|
|
|
hdev->ioctl = btmrvl_ioctl;
|
|
|
-
|
|
|
- btmrvl_send_module_cfg_cmd(priv, MODULE_BRINGUP_REQ);
|
|
|
+ hdev->setup = btmrvl_setup;
|
|
|
|
|
|
hdev->dev_type = priv->btmrvl_dev.dev_type;
|
|
|
|