[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <655A8E36-F89F-4A4D-80A0-5223EBB638CE@holtmann.org>
Date: Thu, 25 Nov 2021 19:46:37 +0100
From: Marcel Holtmann <marcel@...tmann.org>
To: saluvala <saluvala@...eaurora.org>
Cc: Johan Hedberg <johan.hedberg@...il.com>, mka@...omium.org,
linux-kernel@...r.kernel.org, linux-bluetooth@...r.kernel.org,
hemantg@...eaurora.org, linux-arm-msm@...r.kernel.org,
bgodavar@...eaurora.org, rjliao@...eaurora.org,
hbandi@...eaurora.org, abhishekpandit@...omium.org,
mcchou@...omium.org
Subject: Re: [RFC PATCH v1] Bluetooth: hci_qca: Add new hci_uart proto
callback to power off voltage sources
Hi,
> This change adds a new hci_uart proto callback entry i.e., power off.
> This poweroff Callback is exposed to the drivers and called during BT OFF
> immediately after port close. This will ensure that Voltages sources are
> powered off after sending all the data before port close. Previously as
> part of hdev shutdown callback, voltages sources are powered off. But we
> have seen cases where post shutdown sequence completion some packets which
> are already queued are sent to UART. As controller is powered off, UART
> can’t send the data out or it is sending partial data due RTS line high.
>
> Signed-off-by: saluvala <saluvala@...eaurora.org>
this really has to stop. Read the documentation on how to submit patches and start configuring your .gitconfig correct so that you include you clear text name etc.
> ---
> drivers/bluetooth/hci_qca.c | 26 +++++++++++++++++++-------
> drivers/bluetooth/hci_serdev.c | 3 +++
> drivers/bluetooth/hci_uart.h | 1 +
> 3 files changed, 23 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
> index dd768a8..e1dee75 100644
> --- a/drivers/bluetooth/hci_qca.c
> +++ b/drivers/bluetooth/hci_qca.c
> @@ -231,6 +231,7 @@ static int qca_regulator_enable(struct qca_serdev *qcadev);
> static void qca_regulator_disable(struct qca_serdev *qcadev);
> static void qca_power_shutdown(struct hci_uart *hu);
> static int qca_power_off(struct hci_dev *hdev);
> +static int qca_power_off_reg(struct hci_uart *hu);
> static void qca_controller_memdump(struct work_struct *work);
>
> static enum qca_btsoc_type qca_soc_type(struct hci_uart *hu)
> @@ -554,7 +555,6 @@ static void qca_controller_memdump_timeout(struct work_struct *work)
> mutex_unlock(&qca->hci_memdump_lock);
> }
>
> -
> /* Initialize protocol */
> static int qca_open(struct hci_uart *hu)
> {
> @@ -1815,6 +1815,7 @@ static const struct hci_uart_proto qca_proto = {
> .flush = qca_flush,
> .setup = qca_setup,
> .recv = qca_recv,
> + .poweroff = qca_power_off_reg,
> .enqueue = qca_enqueue,
> .dequeue = qca_dequeue,
> };
I am not extending this. Write a clean serdev only driver for this hardware.
Regards
Marcel
Powered by blists - more mailing lists