From: Bjorn Helgaas <helgaas@kernel.org>
To: manivannan.sadhasivam@oss.qualcomm.com
Cc: "Manivannan Sadhasivam" <mani@kernel.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
linux-pci@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org, "Chen-Yu Tsai" <wens@kernel.org>,
"Brian Norris" <briannorris@chromium.org>,
"Krishna Chaitanya Chundru" <krishna.chundru@oss.qualcomm.com>,
"Niklas Cassel" <cassel@kernel.org>,
"Alex Elder" <elder@riscstar.com>,
"Bartosz Golaszewski" <bartosz.golaszewski@oss.qualcomm.com>,
"Chen-Yu Tsai" <wenst@chromium.org>
Subject: Re: [PATCH v4 2/8] PCI/pwrctrl: Add 'struct pci_pwrctrl::power_{on/off}' callbacks
Date: Sun, 11 Jan 2026 21:27:11 -0600 [thread overview]
Message-ID: <20260112032711.GA694710@bhelgaas> (raw)
In-Reply-To: <20260105-pci-pwrctrl-rework-v4-2-6d41a7a49789@oss.qualcomm.com>
On Mon, Jan 05, 2026 at 07:25:42PM +0530, Manivannan Sadhasivam via B4 Relay wrote:
> From: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
>
> To allow the pwrctrl core to control the power on/off sequences of the
> pwrctrl drivers, add the 'struct pci_pwrctrl::power_{on/off}' callbacks and
> populate them in the respective pwrctrl drivers.
>
> The pwrctrl drivers still power on the resources on their own now. So there
> is no functional change.
>
> Co-developed-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
> Signed-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
> Tested-by: Chen-Yu Tsai <wenst@chromium.org>
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
> ---
> drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 27 ++++++++++++++---
> drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c | 22 ++++++++++----
> drivers/pci/pwrctrl/slot.c | 50 +++++++++++++++++++++++---------
> include/linux/pci-pwrctrl.h | 4 +++
> 4 files changed, 79 insertions(+), 24 deletions(-)
I had a hard time reading this because of the gratuitous differences
in names of pwrseq, tc9563, and slot structs, members, and pointers.
These are all corresponding private structs that could be named
similarly:
struct pci_pwrctrl_pwrseq_data
struct tc9563_pwrctrl_ctx
struct pci_pwrctrl_slot_data
These are all corresponding members:
struct pci_pwrctrl_pwrseq_data.ctx
struct tc9563_pwrctrl_ctx.pwrctrl (last in struct instead of first)
struct pci_pwrctrl_slot_data.ctx
And these are all corresponding pointers or parameters:
struct pci_pwrctrl_pwrseq_data *data
struct tc9563_pwrctrl_ctx *ctx
struct pci_pwrctrl_slot_data *slot
There's no need for this confusion, so I reworked those names to make
them a *little* more consistent:
structs:
struct pci_pwrctrl_pwrseq
struct pci_pwrctrl_tc9563
struct pci_pwrctrl_slot
member:
struct pci_pwrctrl pwrctrl (for all)
pointers/parameters:
struct pci_pwrctrl_pwrseq *pwrseq
struct pci_pwrctrl_tc9563 *tc9563
struct pci_pwrctrl_slot *slot
The file names, function names, and driver names are still not very
consistent, but I didn't do anything with them:
pci-pwrctrl-pwrseq.c pci_pwrctrl_pwrseq_probe() "pci-pwrctrl-pwrseq"
pci-pwrctrl-tc9563.c tc9563_pwrctrl_probe() "pwrctrl-tc9563"
slot.c pci_pwrctrl_slot_probe() ""pci-pwrctrl-slot"
> +++ b/drivers/pci/pwrctrl/slot.c
> @@ -17,13 +17,38 @@ struct pci_pwrctrl_slot_data {
> struct pci_pwrctrl ctx;
> struct regulator_bulk_data *supplies;
> int num_supplies;
> + struct clk *clk;
> };
>
> -static void devm_pci_pwrctrl_slot_power_off(void *data)
> +static int pci_pwrctrl_slot_power_on(struct pci_pwrctrl *ctx)
> {
> - struct pci_pwrctrl_slot_data *slot = data;
> + struct pci_pwrctrl_slot_data *slot = container_of(ctx, struct pci_pwrctrl_slot_data, ctx);
> + int ret;
> +
> + ret = regulator_bulk_enable(slot->num_supplies, slot->supplies);
> + if (ret < 0) {
> + dev_err(slot->ctx.dev, "Failed to enable slot regulators\n");
> + return ret;
> + }
> +
> + return clk_prepare_enable(slot->clk);
It would be nice if we could add a preparatory patch to factor out
pci_pwrctrl_slot_power_on() before this one. Then the slot.c patch
would look more like the pwrseq and tc9563 ones.
Bjorn
next prev parent reply other threads:[~2026-01-12 3:27 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-05 13:55 [PATCH v4 0/8] PCI/pwrctrl: Major rework to integrate pwrctrl devices with controller drivers Manivannan Sadhasivam via B4 Relay
2026-01-05 13:55 ` [PATCH v4 1/8] PCI/pwrctrl: tc9563: Use put_device() instead of i2c_put_adapter() Manivannan Sadhasivam via B4 Relay
2026-01-05 13:55 ` [PATCH v4 2/8] PCI/pwrctrl: Add 'struct pci_pwrctrl::power_{on/off}' callbacks Manivannan Sadhasivam via B4 Relay
2026-01-06 13:45 ` Bartosz Golaszewski
2026-01-12 3:27 ` Bjorn Helgaas [this message]
2026-01-14 16:17 ` Bjorn Helgaas
2026-01-14 16:36 ` Manivannan Sadhasivam
2026-01-05 13:55 ` [PATCH v4 3/8] PCI/pwrctrl: Add APIs for explicitly creating and destroying pwrctrl devices Manivannan Sadhasivam via B4 Relay
2026-01-05 13:55 ` [PATCH v4 4/8] PCI/pwrctrl: Add APIs to power on/off the " Manivannan Sadhasivam via B4 Relay
2026-01-12 3:27 ` Bjorn Helgaas
2026-01-05 13:55 ` [PATCH v4 5/8] PCI/pwrctrl: Switch to the new pwrctrl APIs Manivannan Sadhasivam via B4 Relay
2026-01-05 13:55 ` [PATCH v4 6/8] PCI: qcom: Drop the assert_perst() callbacks Manivannan Sadhasivam via B4 Relay
2026-01-05 13:55 ` [PATCH v4 7/8] PCI: Drop the assert_perst() callback Manivannan Sadhasivam via B4 Relay
2026-01-06 13:46 ` Bartosz Golaszewski
2026-01-05 13:55 ` [PATCH v4 8/8] PCI: qcom: Rename PERST# assert/deassert helpers for uniformity Manivannan Sadhasivam via B4 Relay
2026-01-12 3:31 ` [PATCH v4 0/8] PCI/pwrctrl: Major rework to integrate pwrctrl devices with controller drivers Bjorn Helgaas
2026-01-12 7:53 ` Manivannan Sadhasivam
2026-01-12 12:13 ` Bjorn Helgaas
2026-01-13 17:15 ` Sean Anderson
2026-01-14 8:48 ` Manivannan Sadhasivam
2026-01-14 10:02 ` Chen-Yu Tsai
2026-01-15 19:26 ` Sean Anderson
2026-01-16 6:24 ` Manivannan Sadhasivam
2026-01-16 13:40 ` Niklas Cassel
2026-01-16 14:13 ` Manivannan Sadhasivam
2026-01-16 14:48 ` Shawn Lin
2026-01-16 14:51 ` Manivannan Sadhasivam
2026-01-16 8:02 ` Shawn Lin
2026-01-16 8:30 ` Manivannan Sadhasivam
2026-01-16 8:43 ` Shawn Lin
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=20260112032711.GA694710@bhelgaas \
--to=helgaas@kernel.org \
--cc=bartosz.golaszewski@oss.qualcomm.com \
--cc=bhelgaas@google.com \
--cc=brgl@bgdev.pl \
--cc=briannorris@chromium.org \
--cc=cassel@kernel.org \
--cc=elder@riscstar.com \
--cc=krishna.chundru@oss.qualcomm.com \
--cc=kwilczynski@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=manivannan.sadhasivam@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=wens@kernel.org \
--cc=wenst@chromium.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox