Hi Stephen,
On 2018-08-24 12:17, Stephen Boyd wrote:
Quoting Balakrishna Godavarthi (2018-08-23 04:29:35)
This patch enables power off support for hci down and power on support
for hci up. As wcn3990 power sources are ignited by regulators, we
will
turn off them during hci down, i.e. an complete power off of wcn3990.
So while hci up, we will call vendor specific open/close and setup
which
will turn on the regulators, requests BT chip version and download the
firmware.
Signed-off-by: Balakrishna Godavarthi <bgodavar@xxxxxxxxxxxxxx>
---
drivers/bluetooth/hci_qca.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
index e182f6019f68..98d33c6b8909 100644
--- a/drivers/bluetooth/hci_qca.c
+++ b/drivers/bluetooth/hci_qca.c
@@ -595,6 +595,9 @@ static int qca_close(struct hci_uart *hu)
struct qca_serdev *qcadev;
struct qca_data *qca = hu->priv;
+ if (!qca)
+ return 0;
Does this happen? If it does it seems like a failure in the caller to
know what's going on.
[Bala]: yes qca_close() function will execute twice i.e. when we remove
the BT module.
while we remove the module,hci_dev_doc_close() will call
hdev->close() i.e. hci_uart_close() which is Qualcomm specific close.
in hci_uart_close() we will call qca_close() which will free the
memory.
after that proto close will also call qca_close().
Here hci_uart_close and proto close are assigned to same
function pointer i.e. qca_close().
--
Regards
Balakrishna.