ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [TECH TOPIC] Introducing the power sequencing subsystem
@ 2024-05-29 15:24 Bartosz Golaszewski
  2024-06-03  8:23 ` Linus Walleij
  0 siblings, 1 reply; 3+ messages in thread
From: Bartosz Golaszewski @ 2024-05-29 15:24 UTC (permalink / raw)
  To: ksummit

Hi!

Here's my submission for the kernel summit track at LPC24.

Note: The power sequencing subsystem has not yet made its way into
mainline but as there's a lot of time left between when I'm writing
this and the LPC24 in Vienna I think it should at least make it into
next by the time of the presentation (there do not seem to be any
showstopper objections on the mailing list).

Thanks,
Bartosz

---

There is a class of physical devices that contain several discrete
modules in a single package but which are represented in the kernel as
separate entities. An example of such devices is the Qualcomm WCN/QCA
family of WLAN/Bluetooth adapter chipsets.

Typically the WLAN and Bluetooth modules will have their own
device-tree nodes - one under the PCI bridge (WLAN) and one under the
serial node (Bluetooth). The relevant drivers will bind to these
devices and consume assigned resources (which are usually already
reference counted).

The problem arises when the two modules packaged together have
interdependencies - for instance: a chipset may require a certain
delay between powering-up the Bluetooth and WLAN modules (an example:
Qualcomm QCA6490). In this case, reference counting alone is not
sufficient and we need more fine-grained serialization.

In order to support such devices, a new driver subsystem has been
proposed: the power sequencing framework[1]. It allows to abstract the
shared powering-up/-down operations for multiple devices into a
separate power sequence provider which knows about any possible
interactions between the modules it services. The new subsystem allows
for a flexible representation of the underlying hardware (e.g.: the
power management unit of the WCN/QCA chips is the device node to which
the power sequencer binds but on the device-tree it is represented as
a PMIC exposing a set of regulators consumed by WLAN and Bluetooth
nodes).

This talk will present the idea behind the new subsystem, the provider
and consumer programming interfaces for drivers and how we enabled
WiFi and Bluetooth support upstream for several Qualcomm platforms
with the first driver based on the pwrseq framework.

[1] https://lore.kernel.org/netdev/20240528-pwrseq-v8-0-d354d52b763c@linaro.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [TECH TOPIC] Introducing the power sequencing subsystem
  2024-05-29 15:24 [TECH TOPIC] Introducing the power sequencing subsystem Bartosz Golaszewski
@ 2024-06-03  8:23 ` Linus Walleij
  2024-06-06 12:37   ` Javier Martinez Canillas
  0 siblings, 1 reply; 3+ messages in thread
From: Linus Walleij @ 2024-06-03  8:23 UTC (permalink / raw)
  To: Bartosz Golaszewski, Ulf Hansson, Doug Anderson,
	Javier Martinez Canillas
  Cc: ksummit

On Wed, May 29, 2024 at 5:24 PM Bartosz Golaszewski
<bartosz.golaszewski@linaro.org> wrote:

> Here's my submission for the kernel summit track at LPC24.
>
> Note: The power sequencing subsystem has not yet made its way into
> mainline but as there's a lot of time left between when I'm writing
> this and the LPC24 in Vienna I think it should at least make it into
> next by the time of the presentation (there do not seem to be any
> showstopper objections on the mailing list).

I think this is a good in-person discussion topic, because the power
sequence stuff is very debatable and hard to get right, I would include
Ulf Hansson, Javier Martinez Canillas and Doug Anderson (IIRC) in
any such discussion since they already invented the power sequence
code for MMC/SD in 2014 and probably have valuable feedback and
ideas.

> [1] https://lore.kernel.org/netdev/20240528-pwrseq-v8-0-d354d52b763c@linaro.org/

Interesting!

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [TECH TOPIC] Introducing the power sequencing subsystem
  2024-06-03  8:23 ` Linus Walleij
@ 2024-06-06 12:37   ` Javier Martinez Canillas
  0 siblings, 0 replies; 3+ messages in thread
From: Javier Martinez Canillas @ 2024-06-06 12:37 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, Ulf Hansson, Doug Anderson; +Cc: ksummit

Linus Walleij <linus.walleij@linaro.org> writes:

> On Wed, May 29, 2024 at 5:24 PM Bartosz Golaszewski
> <bartosz.golaszewski@linaro.org> wrote:
>
>> Here's my submission for the kernel summit track at LPC24.
>>
>> Note: The power sequencing subsystem has not yet made its way into
>> mainline but as there's a lot of time left between when I'm writing
>> this and the LPC24 in Vienna I think it should at least make it into
>> next by the time of the presentation (there do not seem to be any
>> showstopper objections on the mailing list).
>
> I think this is a good in-person discussion topic, because the power
> sequence stuff is very debatable and hard to get right, I would include
> Ulf Hansson, Javier Martinez Canillas and Doug Anderson (IIRC) in
> any such discussion since they already invented the power sequence
> code for MMC/SD in 2014 and probably have valuable feedback and
> ideas.
>
>> [1] https://lore.kernel.org/netdev/20240528-pwrseq-v8-0-d354d52b763c@linaro.org/
>

Thanks Linus for looping me. I was not aware of this patch-series, I'll
take a look!

Unfortunately I won't be in LPC this year, so I can't participate in the
in-person discussions.

-- 
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-06-06 12:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-29 15:24 [TECH TOPIC] Introducing the power sequencing subsystem Bartosz Golaszewski
2024-06-03  8:23 ` Linus Walleij
2024-06-06 12:37   ` Javier Martinez Canillas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox