All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Kaehlcke <mka@chromium.org>
To: Rocky Liao <rjliao@codeaurora.org>
Cc: marcel@holtmann.org, johan.hedberg@gmail.com,
	linux-kernel@vger.kernel.org, linux-bluetooth@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, bgodavar@codeaurora.org,
	hemantg@codeaurora.org
Subject: Re: [PATCH v4 1/3] Bluetooth: hci_qca: Add QCA Rome power off support to the qca_power_shutdown()
Date: Wed, 15 Jan 2020 09:26:33 -0800	[thread overview]
Message-ID: <20200115172633.GM89495@google.com> (raw)
In-Reply-To: <20200115085552.11483-1-rjliao@codeaurora.org>

On Wed, Jan 15, 2020 at 04:55:50PM +0800, Rocky Liao wrote:
> Current qca_power_shutdown() only supports wcn399x, this patch adds Rome
> power off support to it. For Rome it just needs to pull down the bt_en
> GPIO to power off it. This patch also replaces all the power off operation
> in qca_close() with the unified qca_power_shutdown() call.
> 
> Signed-off-by: Rocky Liao <rjliao@codeaurora.org>
> ---
> 
> Changes in v2: None
> Changes in v3: None
> Changes in v4:
>   -rebased the patch with latest code base
>   -moved the change from qca_power_off() to qca_power_shutdown()
>   -replaced all the power off operation in qca_close() with
>    qca_power_shutdown()
>   -updated commit message
> 
>  drivers/bluetooth/hci_qca.c | 28 ++++++++++++++++------------
>  1 file changed, 16 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index 992622dc1263..ecb74965be10 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -663,7 +663,6 @@ static int qca_flush(struct hci_uart *hu)
>  /* Close protocol */
>  static int qca_close(struct hci_uart *hu)
>  {
> -	struct qca_serdev *qcadev;
>  	struct qca_data *qca = hu->priv;
>  
>  	BT_DBG("hu %p qca close", hu);
> @@ -679,14 +678,7 @@ static int qca_close(struct hci_uart *hu)
>  	destroy_workqueue(qca->workqueue);
>  	qca->hu = NULL;
>  
> -	if (hu->serdev) {
> -		qcadev = serdev_device_get_drvdata(hu->serdev);
> -		if (qca_is_wcn399x(qcadev->btsoc_type))
> -			qca_power_shutdown(hu);
> -		else
> -			gpiod_set_value_cansleep(qcadev->bt_en, 0);
> -
> -	}
> +	qca_power_shutdown(hu);
>  
>  	kfree_skb(qca->rx_skb);
>  
> @@ -1685,6 +1677,7 @@ static void qca_power_shutdown(struct hci_uart *hu)
>  	struct qca_serdev *qcadev;
>  	struct qca_data *qca = hu->priv;
>  	unsigned long flags;
> +	enum qca_btsoc_type soc_type = qca_soc_type(hu);
>  
>  	qcadev = serdev_device_get_drvdata(hu->serdev);
>  
> @@ -1697,11 +1690,22 @@ static void qca_power_shutdown(struct hci_uart *hu)
>  	qca_flush(hu);
>  	spin_unlock_irqrestore(&qca->hci_ibs_lock, flags);
>  
> -	host_set_baudrate(hu, 2400);
> -	qca_send_power_pulse(hu, false);
> -	qca_regulator_disable(qcadev);
>  	hu->hdev->hw_error = NULL;
>  	hu->hdev->cmd_timeout = NULL;

This is now done before the power off and not after, I suppose it doesn't
make a difference.

> +
> +	/* Non-serdev device usually is powered by external power
> +	 * and don't need additional action in driver for power down
> +	 */
> +	if (!hu->serdev)
> +		return;
> +
> +	if (qca_is_wcn399x(soc_type)) {
> +		host_set_baudrate(hu, 2400);
> +		qca_send_power_pulse(hu, false);
> +		qca_regulator_disable(qcadev);
> +	} else {
> +		gpiod_set_value_cansleep(qcadev->bt_en, 0);
> +	}
>  }

Reviewed-by: Matthias Kaehlcke <mka@chromium.org>

  parent reply	other threads:[~2020-01-15 17:26 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-25  6:03 [PATCH v1 1/4] Bluetooth: hci_qca: Add QCA Rome power off support to the qca_power_off() Rocky Liao
2019-12-25  6:03 ` [PATCH v1 2/4] Bluetooth: hci_qca: Retry btsoc initialize when it fails Rocky Liao
2019-12-25  6:03 ` [PATCH v1 3/4] Bluetooth: hci_qca: Enable power off/on support during hci down/up for QCA Rome Rocky Liao
2019-12-25  6:03 ` [PATCH v1 4/4] Bluetooth: hci_qca: Add HCI command timeout handling Rocky Liao
2019-12-26  3:04   ` kbuild test robot
2019-12-26  3:04     ` kbuild test robot
2019-12-26  7:46   ` kbuild test robot
2019-12-26  7:46     ` kbuild test robot
2019-12-26 23:33   ` kbuild test robot
2019-12-26 23:33     ` kbuild test robot
2019-12-26  6:45 ` [PATCH v2 1/4] Bluetooth: hci_qca: Add QCA Rome power off support to the qca_power_off() Rocky Liao
2019-12-26  6:45   ` [PATCH v2 2/4] Bluetooth: hci_qca: Retry btsoc initialize when it fails Rocky Liao
2019-12-26  6:45   ` [PATCH v2 3/4] Bluetooth: hci_qca: Enable power off/on support during hci down/up for QCA Rome Rocky Liao
2019-12-26 20:30     ` Marcel Holtmann
2019-12-26  6:45   ` [PATCH v2 4/4] Bluetooth: hci_qca: Add HCI command timeout handling Rocky Liao
2019-12-26 20:29     ` Marcel Holtmann
2019-12-27  7:21 ` [PATCH v3 1/4] Bluetooth: hci_qca: Add QCA Rome power off support to the qca_power_off() Rocky Liao
2019-12-27  7:21   ` [PATCH v3 2/4] Bluetooth: hci_qca: Retry btsoc initialize when it fails Rocky Liao
2020-01-02 18:41     ` Matthias Kaehlcke
2020-01-03  6:31       ` rjliao
2020-01-03 16:27         ` Matthias Kaehlcke
2020-01-07  5:34           ` Rocky Liao
2019-12-27  7:21   ` [PATCH v3 3/4] Bluetooth: hci_qca: Enable power off/on support during hci down/up for QCA Rome Rocky Liao
2019-12-27  7:21   ` [PATCH v3 4/4] Bluetooth: hci_qca: Add HCI command timeout handling Rocky Liao
2020-01-02 19:07     ` Matthias Kaehlcke
2020-01-03  6:33       ` rjliao
2020-01-03  9:02         ` Rocky Liao
2020-01-15  8:55 ` [PATCH v4 1/3] Bluetooth: hci_qca: Add QCA Rome power off support to the qca_power_shutdown() Rocky Liao
2020-01-15  8:55   ` [PATCH v4 2/3] Bluetooth: hci_qca: Retry btsoc initialize when it fails Rocky Liao
2020-01-15 17:33     ` Matthias Kaehlcke
2020-01-15 21:37     ` Marcel Holtmann
2020-01-15  8:55   ` [PATCH v4 3/3] Bluetooth: hci_qca: Enable power off/on support during hci down/up for QCA Rome Rocky Liao
2020-01-15 18:02     ` Matthias Kaehlcke
2020-01-15 17:26   ` Matthias Kaehlcke [this message]
2020-01-15 21:37   ` [PATCH v4 1/3] Bluetooth: hci_qca: Add QCA Rome power off support to the qca_power_shutdown() Marcel Holtmann
2020-01-16  3:22 ` [PATCH v5] Bluetooth: hci_qca: Enable power off/on support during hci down/up for QCA Rome Rocky Liao
2020-01-16  5:31   ` Marcel Holtmann

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=20200115172633.GM89495@google.com \
    --to=mka@chromium.org \
    --cc=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=linux-kernel@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=rjliao@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.