linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Balakrishna Godavarthi <bgodavar@codeaurora.org>
To: Matthias Kaehlcke <mka@chromium.org>
Cc: marcel@holtmann.org, johan.hedberg@gmail.com,
	linux-bluetooth@vger.kernel.org, rtatiya@codeaurora.org,
	hemantg@codeaurora.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v4 2/3] Bluetooth: hci_qca: Add support for Qualcomm Bluetooth chip wcn3990.
Date: Thu, 10 May 2018 21:31:28 +0530	[thread overview]
Message-ID: <932e28f7f38f64f2f1a5aded07806185@codeaurora.org> (raw)
In-Reply-To: <20180509172425.GH19594@google.com>

Hi Matthias,

On 2018-05-09 22:54, Matthias Kaehlcke wrote:
> Hi Balakrishna,
> 
> On Wed, May 09, 2018 at 03:37:34PM +0530, Balakrishna Godavarthi wrote:
>> Hi,
>> Please find my comments inline.
>> 
>> On 2018-05-05 06:47, Matthias Kaehlcke wrote:
>> > Hi,
>> >
>> > On Fri, May 04, 2018 at 09:05:05PM +0530, Balakrishna Godavarthi wrote:
>> > > Add support to set voltage/current of various regulators
>> > > to power up/down Bluetooth chip wcn3990.
>> > > Add support to read baudrate from dts.
>> > >
>> > > Signed-off-by: Balakrishna Godavarthi <bgodavar@codeaurora.org>
>> > > ---
>> > >  drivers/bluetooth/hci_qca.c | 555
>> > > ++++++++++++++++++++++++++++++++++++++------
>> > >  1 file changed, 483 insertions(+), 72 deletions(-)
>> > >
>> > > diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
>> > > index f05382b..075fab7 100644
>> > > --- a/drivers/bluetooth/hci_qca.c
>> > > +++ b/drivers/bluetooth/hci_qca.c
>> > > ...
>> > > -	bt_dev_info(hdev, "ROME setup");
>> > > +		/* disable flow control, as chip is still not turned on */
>> > > +		hci_uart_set_flow_control(hu, true);
>> >
>> > The interface of this function is confusing. enable = true disables
>> > flow control ... Not the fault of this driver though :)
>> [Bala]: yes it is bit confusing. i taught to update.. but not sure of
>> impact.
>>         so instead of updating, using the same function and written a
>> comment above.
> 
> Sure, not much you can do about it. Just mentioned it since I was
> about to comment that things are done inversely, but tean checked
> hci_uart_set_flow_control() and saw that it has this odd
> interface. Folks more familiar with the Bluetooth subsystem are
> probably already used to it ;-)
> 
>> > > -	if (speed)
>> > > -		host_set_baudrate(hu, speed);
>> > > +		/* Enable flow control */
>> > > +		hci_uart_set_flow_control(hu, false);
>> > > +		/*  wait until flow control settled */
>> > > +		mdelay(100);
>> >
>> > A busy wait of 100ms doesn't seem a good idea. Use msleep()
>> > instead. Is it really necessary to wait that long?
>> [Bala]: yes this delay is required for BT Soc to bootup and settle 
>> down.
> 
> :(
> 
>> > What follows looks similar to the Cherokee path. I didn't look at all
>> > the details, but it's probably possible to share some more code.
>> [Bala]: yes these are two different chip.
>>         we also have difference in setup. the follwing are major 
>> differences
>>         Cherokee uses flow control. where ROME flow control is 
>> disabled.
>>         ON sequence also varies.
> 
> Ok, I'll give it another pass in the next revision to see if I have
> suggestions to make it at least a bit less redundant.
> 
>> > > +static const struct btqca_vreg_data cherokee_data = {
>> > > +	.soc_type = BTQCA_CHEROKEE,
>> > > +	.vregs = (struct btqca_vreg []) {
>> > > +		{ "vddio",   1352000, 1352000,  0 },
>> > > +		{ "vddxtal", 1904000, 2040000,  0 },
>> > > +		{ "vddcore", 1800000, 1800000,  1 },
>> > > +		{ "vddpa",   130400,  1304000,  1 },
>> >
>> > 0 missing for min_v?
>> 
>> [Bala]: min_v is  the minimum voltage required for BT chip.
> 
> I referred to the value '130400', which happens to be exactly 1/10 of
> the max_v '1304000', so I suspect the voltages are the same and a zero
> is missing.
> 
[Bala]: Good catch, the same regulator is used for WLAN too. that could 
be reason i could not able to catch this issue during testing
         will update and retest it again.

>> > > +			regulator_set_voltage(qca->vreg_bulk[i].consumer,
>> > > +					      vregs[i].min_v,
>> > > +					      vregs[i].max_v);
>> >
>> > Check return value.
>> [Bala]: i am checking the status for regulator enable
>>         do we really require to check the status. as this same 
>> regulators
>> are used by different sub systems.
>>         we will get an error during regulator enable when voltages are 
>> not
>> settled down.
> 
> regulator_set_voltage() could fail due to requesting a voltage range
> not supported by the regulator. In this case regulator_enable() could
> still succeed, but not supply the requested voltage.
> 
[Bala]: will catch the return status.

> Thanks
> 
> Matthias

I will send the patch after testing these changes.

-- 
Regards
Balakrishna.

  reply	other threads:[~2018-05-10 16:01 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-04 15:35 [PATCH v4 0/3] Enable Bluetooth functionality for WCN3990 Balakrishna Godavarthi
2018-05-04 15:35 ` [PATCH v4 1/3] dt-bindings: net: bluetooth: Add device tree bindings for QTI chip wcn3990 Balakrishna Godavarthi
2018-05-04 15:35 ` [PATCH v4 2/3] Bluetooth: hci_qca: Add support for Qualcomm Bluetooth " Balakrishna Godavarthi
2018-05-05  1:17   ` Matthias Kaehlcke
2018-05-09  8:56     ` Balakrishna Godavarthi
2018-05-09  9:27     ` Balakrishna Godavarthi
2018-05-09 10:07     ` Balakrishna Godavarthi
2018-05-09 17:24       ` Matthias Kaehlcke
2018-05-10 16:01         ` Balakrishna Godavarthi [this message]
2018-05-05 19:21   ` kbuild test robot
2018-05-05 19:45   ` kbuild test robot
2018-05-05 20:11   ` [RFC PATCH] Bluetooth: hci_qca: btqca_disable_regulators() can be static kbuild test robot
2018-05-04 15:35 ` [PATCH v4 3/3] Bluetooth: btqca: Add wcn3990 firmware download support Balakrishna Godavarthi
2018-05-05 19:11   ` kbuild test robot
2018-05-05 19:14   ` kbuild test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=932e28f7f38f64f2f1a5aded07806185@codeaurora.org \
    --to=bgodavar@codeaurora.org \
    --cc=hemantg@codeaurora.org \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=mka@chromium.org \
    --cc=rtatiya@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).