From mboxrd@z Thu Jan 1 00:00:00 1970 From: Balakrishna Godavarthi Subject: Re: [PATCH v1 3/4] Bluetooth: hci_qca: clear HCI_QUIRK_RESET_ON_CLOSE flag Date: Tue, 06 Nov 2018 18:44:07 +0530 Message-ID: References: <20181106120528.30342-1-bgodavar@codeaurora.org> <20181106120528.30342-4-bgodavar@codeaurora.org> <462C4F58-E6E2-4B20-B074-72DDFA6D7364@holtmann.org> <170e0419929840109d349b5df5e38364@codeaurora.org> <0CE81F0B-B122-4793-817F-F0F4738C44E0@holtmann.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Return-path: In-Reply-To: <0CE81F0B-B122-4793-817F-F0F4738C44E0@holtmann.org> Sender: linux-kernel-owner@vger.kernel.org To: Marcel Holtmann Cc: Johan Hedberg , Matthias Kaehlcke , open list , linux-bluetooth@vger.kernel.org, hemantg@codeaurora.org, linux-arm-msm@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org Hi Marcel, On 2018-11-06 18:32, Marcel Holtmann wrote: > Hi Balakrishna, > >>>> During hci down we are sending reset command to chip, which >>>> is not required for wcn3990, as hdev->shutdown() will turn off the >>>> regulators. >>>> Signed-off-by: Balakrishna Godavarthi >>>> --- >>>> drivers/bluetooth/hci_qca.c | 1 + >>>> 1 file changed, 1 insertion(+) >>>> diff --git a/drivers/bluetooth/hci_qca.c >>>> b/drivers/bluetooth/hci_qca.c >>>> index 8301663f0004..97b57e0f4725 100644 >>>> --- a/drivers/bluetooth/hci_qca.c >>>> +++ b/drivers/bluetooth/hci_qca.c >>>> @@ -1190,6 +1190,7 @@ static int qca_setup(struct hci_uart *hu) >>>> */ >>>> set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks); >>>> set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); >>>> + clear_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks); >>>> hu->hdev->shutdown = qca_power_off; >>>> ret = qca_wcn3990_init(hu); >>>> if (ret) >>> I am pretty certain that you didn’t want this quirk: >>> /* When this quirk is set, the HCI Reset command is send when >>> * closing the transport instead of when opening it. >>> This quirk is for Bluetooth 1.0b devices where the HCI_Reset behavior >>> was not clear or for devices that actually misbehave with the initial >>> HCI_Reset. >>> In addition, you commit message is totally misleading. That is not >>> what is happening with this quirk. >>> Regards >>> Marcel >> >> My intention was reset command is not required when we do an hci down. >> this is because of hdev->shutdown will turn off the regulators. >> It is like turning off the chip. sending reset command after turning >> off the chip is not required. >> >> I understand the usage of the quirk, will update the commit text. > > you are papering over the issue. Actually > hci_serdev.c:hci_uart_register_device() is the culprit with the legacy > code copied over from hci_ldisc.c:hci_uart_register_dev(). I think > there is no point doing all this legacy line discipline quirk handling > until it is really needed. The serdev drivers are all for recent > hardware. > > That said, having moved over to a btuart.c approach and killed the > whole hci_serdev.c thing would have been a lot better here. You will > keep running in weird situations where 18 year old code keeps > surprising you. [Bala]: even i feel the same. they are lot such kind of HACK's we need to do with current arch. when can we expect btuart.c merged to bt-next. i think having btuart will helps us to have the control of vendor porto's call's like in btusb.c > > Regards > > Marcel -- Regards Balakrishna.