Messages in this thread | | | Date | Thu, 07 Mar 2019 14:52:49 +0800 | From | rjliao@codeauro ... | Subject | Re: [PATCH v1] Bluetooth: hci_qca: Give enough time to ROME controller to bootup. |
| |
在 2019-03-07 14:49,Balakrishna Godavarthi 写道: > Hi Stepen, > > On 2019-03-07 04:03, Stephen Boyd wrote: >> Quoting Balakrishna Godavarthi (2019-03-06 08:21:13) >>> This patch enables enough time to ROME controller to bootup >>> after we bring the enable ping out of reset. >>> >>> Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org> >>> --- >> >> Any Fixes tag? And maybe some more explanation or background on where >> 150 ms sleep comes from would be useful. Was it determined >> experimentally or did it come from a datasheet somewhere? Does the >> time >> differ between boards? >> > [Bala]: this was observed in our stress testing and even the CHIP > firmware team > confirmed that BT chip required at least 150 ms to boot up. > > @Rocky to confirm my statement. > >>> drivers/bluetooth/hci_qca.c | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/drivers/bluetooth/hci_qca.c >>> b/drivers/bluetooth/hci_qca.c >>> index 237aea34b69f..1953b13511e7 100644 >>> --- a/drivers/bluetooth/hci_qca.c >>> +++ b/drivers/bluetooth/hci_qca.c >>> @@ -508,6 +508,8 @@ static int qca_open(struct hci_uart *hu) >>> qcadev = serdev_device_get_drvdata(hu->serdev); >>> if (qcadev->btsoc_type != QCA_WCN3990) { >>> gpiod_set_value_cansleep(qcadev->bt_en, 1); >>> + /* Controller needs time to bootup. */ >>> + msleep(150); >>> } else { >>> hu->init_speed = qcadev->init_speed; >>> hu->oper_speed = qcadev->oper_speed;
Yes,ROME firmware needs 150ms to boot up after toggle the BT_EN pin.
| |