Devicetree
 help / color / mirror / Atom feed
From: Wei Deng <wei.deng@oss.qualcomm.com>
To: mani@kernel.org
Cc: dmitry.baryshkov@oss.qualcomm.com, andersson@kernel.org,
	konradybcio@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	conor+dt@kernel.org, brgl@kernel.org,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org,
	linux-pm@vger.kernel.org, wenst@chromium.org,
	mengshi.wu@oss.qualcomm.com, quic_chezhou@quicinc.com,
	cheng.jiang@oss.qualcomm.com, shuai.zhang@oss.qualcomm.com,
	jinwang.li@oss.qualcomm.com, xiuzhuo.shang@oss.qualcomm.com
Subject: Re: [PATCH 3/3] power: sequencing: pcie-m2: Deassert W_DISABLE2# when no UART serdev is created
Date: Wed, 15 Jul 2026 16:46:22 +0530	[thread overview]
Message-ID: <20260715111622.2561730-1-wei.deng@oss.qualcomm.com> (raw)
In-Reply-To: <bjcmn2euhpik54ytc7falqgcezvy2loimudm6v2ibzxx6autki@rex5cjq2o755>

On Tue, 14 Jul 2026, Manivannan Sadhasivam wrote:
> On Mon, Jul 13, 2026 at 02:46:16PM +0530, Wei Deng wrote:
> > On Thu, 9 Jul 2026, Dmitry Baryshkov wrote:
> > > On Thu, Jul 09, 2026 at 12:59:42PM +0530, Wei Deng wrote:
> > > > The pwrseq_m2_pci_ids[] table lists PCIe BT devices that use UART as the
> > > > BT transport and need a UART serdev created by the driver. When a PCIe
> > > > device under the M.2 connector does not match any entry in this table,
> > > > no UART serdev is created.
> > > > 
> > > > However, the BT subsystem of such a device may still require W_DISABLE2#
> > > > to be deasserted to power up. Rather than adding every possible non-UART
> > > > BT device ID to the table, add an else branch that deasserts W_DISABLE2#
> > > > whenever a PCIe device is detected under the connector but does not match
> > > > a UART BT entry. This allows any BT interface on the card (USB or other)
> > > > to enumerate without requiring explicit knowledge of its device ID.
> > > > 
> > > > The primary use case is USB BT variants of combo chips that share the
> > > > same PCIe device ID as their UART counterpart (e.g. WCN7851 NCM865 USB,
> > > > sub 0x3378, vs NCM865A UART, sub 0x337c): no UART serdev is needed, but
> > > > W_DISABLE2# must be deasserted so the USB BT device can enumerate.
> > > 
> > > Instead of forcibly toggling it, would it be more sensible to tie pwrseq
> > > into the USB too? The onboard-usb-dev implements the same idea (of
> > > powering up the USB device), but it predates pwrseq.
> > > 
> > > -- 
> > > With best wishes
> > > Dmitry
> > > 
> > 
> > Hi Dmitry,
> > 
> > There is a patch series from Chen-Yu Tsai that appears to implement what
> > you suggested:
> > 
> >   [PATCH v4 00/14] arm64: mediatek: Add M.2 E-key slot on Chromebooks
> >   https://lore.kernel.org/all/20260709095726.704448-1-wenst@chromium.org/
> > 
> > We have been testing this on the Qualcomm Hamoa IoT EVK with both UART BT
> > and USB BT M.2 cards.  Is this the direction you had in mind?
> > 
> 
> IMO, we should move towards Chen's series.
> 
> - Mani

Agreed.

While testing Chen-Yu's v4 on the Qualcomm Hamoa IoT EVK with a board
that needs to support both USB and UART BT cards, we found that the USB
hub holds a reference to the "usb" pwrseq target permanently (acquired
in hub_activate() and never released). When the UART BT driver later
calls pwrseq_power_off(), the bt_unit enable_count only drops to 1 and
bt_disable() is never invoked, leaving W_DISABLE2# deasserted. This
prevents the BT chip from being properly reset, causing the next
btmgmt power on to fail.

This issue is addressed in v5 Patch 14 by splitting the Bluetooth
pwrseq unit into independent uart and usb units, each with their own
reference count:

  [PATCH v5 00/16] arm64: mediatek: Add M.2 E-key slot on Chromebooks
  https://lore.kernel.org/all/20260715085348.3457359-1-wenst@chromium.org/

The series still needs review from you and other maintainers.

-- 
Best Regards,
Wei Deng

  reply	other threads:[~2026-07-15 11:16 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-09  7:29 [PATCH 0/3] power: sequencing: pcie-m2: Enable USB/UART BT coexistence on Hamoa EVK Wei Deng
2026-07-09  7:29 ` [PATCH 1/3] arm64: dts: qcom: hamoa-iot-evk: Describe the PCIe M.2 Key E connector Wei Deng
2026-07-09  7:42   ` sashiko-bot
2026-07-09  7:44   ` Dmitry Baryshkov
2026-07-09  8:12     ` Wei Deng
2026-07-10 13:50   ` Konrad Dybcio
2026-07-13  9:25     ` Wei Deng
2026-07-14 13:53   ` Manivannan Sadhasivam
2026-07-09  7:29 ` [PATCH 2/3] power: sequencing: pcie-m2: Match WCN6855 and WCN7851 UART BT variants by subdevice ID Wei Deng
2026-07-09  7:39   ` sashiko-bot
2026-07-14 13:55   ` Manivannan Sadhasivam
2026-07-16 13:56   ` Bartosz Golaszewski
2026-07-21  1:51     ` Wei Deng
2026-07-09  7:29 ` [PATCH 3/3] power: sequencing: pcie-m2: Deassert W_DISABLE2# when no UART serdev is created Wei Deng
2026-07-09  7:44   ` sashiko-bot
2026-07-09  7:56   ` Dmitry Baryshkov
2026-07-13  9:16     ` Wei Deng
2026-07-14 13:56       ` Manivannan Sadhasivam
2026-07-15 11:16         ` Wei Deng [this message]
2026-07-16 14:54           ` Manivannan Sadhasivam
2026-07-09  7:46 ` [PATCH 0/3] power: sequencing: pcie-m2: Enable USB/UART BT coexistence on Hamoa EVK Dmitry Baryshkov
2026-07-09  8:12   ` Wei Deng

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=20260715111622.2561730-1-wei.deng@oss.qualcomm.com \
    --to=wei.deng@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=brgl@kernel.org \
    --cc=cheng.jiang@oss.qualcomm.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=jinwang.li@oss.qualcomm.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=mengshi.wu@oss.qualcomm.com \
    --cc=quic_chezhou@quicinc.com \
    --cc=robh@kernel.org \
    --cc=shuai.zhang@oss.qualcomm.com \
    --cc=wenst@chromium.org \
    --cc=xiuzhuo.shang@oss.qualcomm.com \
    /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