RE: [PATCH 1/2] dt-bindings: net: bluetooth: nxp: add support for supply and reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> Sent: Tuesday, November 19, 2024 6:18 AM
> To: Sherry Sun <sherry.sun@xxxxxxx>
> Cc: POPESCU Catalin <catalin.popescu@xxxxxxxxxxxxxxxxxxxx>; Amitkumar
> Karwar <amitkumar.karwar@xxxxxxx>; Neeraj Sanjay Kale
> <neeraj.sanjaykale@xxxxxxx>; marcel@xxxxxxxxxxxx; luiz.dentz@xxxxxxxxx;
> robh@xxxxxxxxxx; krzk+dt@xxxxxxxxxx; conor+dt@xxxxxxxxxx;
> p.zabel@xxxxxxxxxxxxxx; linux-bluetooth@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; GEO-CHHER-bsp-
> development <bsp-development.geo@xxxxxxxxxxxxxxxxxxxx>; Krzysztof
> Kozlowski <krzk@xxxxxxxxxx>
> Subject: Re: [PATCH 1/2] dt-bindings: net: bluetooth: nxp: add support for supply
> and reset
> 
> Hi,
> 
> gentle ping on this discussion since I'm still convinced that this the correct
> approach to add the reset mechanism and handle the power.

Hi Marco,

Sorry for the late reply. After internal discussion, we still have some confusion regarding this new feature.
This patch do improve the independent handling of wifi/BT, but with the controlling granularity segmentation, many different wifi/BT use cases need to be considered.
For the case -- WLAN (SDIO) not used + BT (UART) used:
The ideal behavior of BT should be reset and the standalone BT FW should be re-downloaded when unloading and re-loading the BT driver.
However, due to the regulator control and PDn reset control are bound to the SDIO bus instead of the WLAN device, the SDIO bus may be ready after kernel boot up. Although the WLAN is not used(WLAN driver is not loaded and WLAN FW is not downloaded), the corresponding regulator count and PDn reset count are both incremented by 1 through MMC pwrseq. Then with the BT driver remove & re-probe, the PDn reset cannot truly reset the BT chip due to the count been +1 by MMC pwrseq. So the BT will not reset and BT FW won't be re-downloaded when re-loading the BT driver, right?

Best Regards
Sherry
> 
> Regards,
>   Marco
> 
> On 24-10-28, Marco Felsch wrote:
> > On 24-10-28, Sherry Sun wrote:
> > >
> > > > From: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> > > >
> > > > On 24-10-28, Sherry Sun wrote:
> > > > >
> > > > > > From: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> > > > > >
> > > > > > Hi,
> > > > > >
> > > > > > On 24-10-28, Sherry Sun wrote:
> > > > > > >
> > > > > > > > From: POPESCU Catalin
> > > > > > > > <catalin.popescu@xxxxxxxxxxxxxxxxxxxx>
> > > > > > > >
> > > > > > > > We use the NXP downstream driver mwifiex which doesn't
> > > > > > > > have support for regulator or PDn.
> > > > > > > >
> > > > > > > > However, regulator is already supported by the MMC core
> > > > > > > > (vmmc-
> > > > supply).
> > > > > > > >
> > > > > > > > For PDn, we use mmc pwrseq simple driver that has been
> > > > > > > > patched to add support for reset-control.
> > > > > > >
> > > > > > > Ok, thanks, the mmc change looks good for me, so there is no
> > > > > > > problem with the NXP SDIO wifi.
> > > > > > >
> > > > > > > But how do you plan to handle the NXP PCIe wifi? We also
> > > > > > > need to make sure the BT patch won't break the PCIe wifi function.
> > > > > >
> > > > > > Can you please elaborate how this could break the PCIe use-case?
> > > > >
> > > > > Similar to the SDIO wifi, if no corresponding reset control for
> > > > > the PDn pin in PCIe wifi driver, the wifi part will be
> > > > > unexpectedly powered off when removing the BT driver.
> > > >
> > > > Nope it's not that easy for PCIe case since the phy + link layer
> > > > handling is much more complex compared to the MMC case. For the
> > > > PCIe case the intial handling is very strict according to the PCIe
> > > > spec and we can't handle the BT device independently.
> > > >
> > > > _BUT_ this patch doesn't cause any regression for the PCIe
> > > > use-case since the support added by Catalin is optional which
> > > > means that the user don't have to use these options.
> > > >
> > > > To sum up:
> > > >
> > > > WLAN (PCIe) used + BT (UART) used -> no independent handling
> > > >                                      possible. BT depends on WLAN.
> > > >
> > > > WLAN (PCIe) not used + BT (UART) used -> This patchset allow us to
> > > >                                          handle BT. Without the patchset
> > > > 					 this is not possible.
> > > >
> > > > WLAN (SDIO) + BT (UART) -> This patchset and the mmc-power-seq
> patchset
> > > >                            allow us to handle WLAN and BT independently
> > > > 			   regardless if BT or WLAN is used or not.
> > >
> > > If we add the reset-gpios property in the BT dts node when using the
> > > SDIO wifi chip, my concern is for some host platforms, taking
> > > i.MX95-19x19-EVK as an example, it supports both SDIO and PCIe
> > > interface wifi chip through the M.2 connector, when customers want
> > > to plug in the PCIe wifi chip, they have to remove the reset-gpios
> > > in the BT dts node to avoid the PCIe WLAN been affected by BT, right?
> >
> > I don't know the i.MX95-19x19-EVK platform since it is not upstream.
> > If you want to support both:
> >
> > > > WLAN (PCIe) used + BT (UART) used -> no independent handling
> > > >                                      possible. BT depends on WLAN.
> >
> > and
> >
> > > > WLAN (SDIO) + BT (UART) -> This patchset and the mmc-power-seq
> patchset
> > > >                            allow us to handle WLAN and BT independently
> > > > 			   regardless if BT or WLAN is used or not.
> >
> > you need to stick with the dependent handling which is no problem once
> > this patchset get applied if your system support hot-plug. If hot-plug
> > is not possible you could consider unsing overlays.
> >
> > However, this patchset does _NOT_ cause any regression neither for the
> > MMC nor the PCIe use-case, and you don't have to touch your DTS files.
> > It would be an improvement for platforms (not speaking of NXP EVK
> > platforms) which utilize the MMC+UART interfaces only.
> >
> > > And it looks strange that we can only add the reset-gpios BT
> > > property to the hosts that only support SDIO WLAN, we hope there is
> > > a solution for the PCIe WLAN too.
> >
> > "We hope there is a solution" <-- This is not how upstream work.
> >
> > Also as said: The WLAN PCIe interface must/should be compatible with
> > the PCIe Spec. There is no way that we can handle both devices
> > independent since the PCIe spec specifies the power-up-sequence very
> > strict.
> >
> > If for example, we do handle it independent and the BT part brings the
> > device out-of-reset while the PCIe bus is not yet ready, the device's
> > WLAN PCIe subsystem may get confused.
> >
> > There are two solution NXP could provide:
> >
> >  - The PCIe WLAN/BT devices exposes all devices WLAN + BT via PCIe, this
> >    would eliminate the UART part.
> >  - All new WLAN/BT devices do have a separate hw reset line for each
> >    radio the device supports.
> >
> > Regards,
> >   Marco





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux