From: Bjorn Helgaas <helgaas@kernel.org>
To: Timothy Pearson <tpearson@raptorengineering.com>
Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-pci <linux-pci@vger.kernel.org>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
christophe leroy <christophe.leroy@csgroup.eu>,
Naveen N Rao <naveen@kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>,
Shawn Anastasio <sanastasio@raptorengineering.com>
Subject: Re: [PATCH v2 6/6] pci/hotplug/pnv_php: Enable third attention indicator
Date: Wed, 18 Jun 2025 14:01:46 -0500 [thread overview]
Message-ID: <20250618190146.GA1213349@bhelgaas> (raw)
In-Reply-To: <300098407.1310656.1750265939231.JavaMail.zimbra@raptorengineeringinc.com>
On Wed, Jun 18, 2025 at 11:58:59AM -0500, Timothy Pearson wrote:
> state
Weird wrapping of last word of subject to here.
> The PCIe specification allows three attention indicator states,
> on, off, and blink. Enable all three states instead of basic
> on / off control.
>
> Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
> ---
> drivers/pci/hotplug/pnv_php.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/hotplug/pnv_php.c b/drivers/pci/hotplug/pnv_php.c
> index 0ceb4a2c3c79..c3005324be3d 100644
> --- a/drivers/pci/hotplug/pnv_php.c
> +++ b/drivers/pci/hotplug/pnv_php.c
> @@ -440,10 +440,23 @@ static int pnv_php_get_adapter_state(struct hotplug_slot *slot, u8 *state)
> return ret;
> }
>
> +static int pnv_php_get_raw_indicator_status(struct hotplug_slot *slot, u8 *state)
> +{
> + struct pnv_php_slot *php_slot = to_pnv_php_slot(slot);
> + struct pci_dev *bridge = php_slot->pdev;
> + u16 status;
> +
> + pcie_capability_read_word(bridge, PCI_EXP_SLTCTL, &status);
> + *state = (status & (PCI_EXP_SLTCTL_AIC | PCI_EXP_SLTCTL_PIC)) >> 6;
Should be able to do this with FIELD_GET().
Is the PCI_EXP_SLTCTL_PIC part needed? It wasn't there before, commit
log doesn't mention it, and as far as I can tell, this would be the
only driver to do that. Most expose only the attention status (0=off,
1=on, 2=identify/blink).
> + return 0;
> +}
> +
> +
> static int pnv_php_get_attention_state(struct hotplug_slot *slot, u8 *state)
> {
> struct pnv_php_slot *php_slot = to_pnv_php_slot(slot);
>
> + pnv_php_get_raw_indicator_status(slot, &php_slot->attention_state);
This is a change worth noting. Previously we didn't read the AIC
state from PCI_EXP_SLTCTL at all; we used php_slot->attention_state to
keep track of whatever had been previously set via
pnv_php_set_attention_state().
Now we read the current state from PCI_EXP_SLTCTL. It's not clear
that php_slot->attention_state is still needed at all.
Previously, the user could write any value at all to the sysfs
"attention" file and then read that same value back. After this
patch, the user can still write anything, but reads will only return
values with PCI_EXP_SLTCTL_AIC and PCI_EXP_SLTCTL_PIC.
> *state = php_slot->attention_state;
> return 0;
> }
> @@ -461,7 +474,7 @@ static int pnv_php_set_attention_state(struct hotplug_slot *slot, u8 state)
> mask = PCI_EXP_SLTCTL_AIC;
>
> if (state)
> - new = PCI_EXP_SLTCTL_ATTN_IND_ON;
> + new = FIELD_PREP(PCI_EXP_SLTCTL_AIC, state);
This changes the behavior in some cases:
write 0: previously turned indicator off, now writes reserved value
write 2: previously turned indicator on, now sets to blink
write 3: previously turned indicator on, now turns it off
> else
> new = PCI_EXP_SLTCTL_ATTN_IND_OFF;
>
> --
> 2.39.5
next prev parent reply other threads:[~2025-06-18 19:01 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-18 16:54 [PATCH v2 0/6] PowerNV PCIe Hotplug Driver Fixes Timothy Pearson
2025-06-18 16:56 ` [PATCH v2 1/6] pci/hotplug/pnv_php: Properly clean up allocated IRQs on Timothy Pearson
2025-06-18 16:56 ` [PATCH v2 2/6] pci/hotplug/pnv_php: Work around switches with broken Timothy Pearson
2025-06-18 19:44 ` Bjorn Helgaas
2025-06-18 19:50 ` Timothy Pearson
2025-06-18 20:17 ` Bjorn Helgaas
2025-06-19 19:29 ` Timothy Pearson
2025-06-20 7:52 ` Lukas Wunner
2025-06-20 16:45 ` Timothy Pearson
2025-06-25 8:45 ` Lukas Wunner
2025-06-18 16:57 ` [PATCH v2 3/6] powerpc/eeh: Export eeh_unfreeze_pe() Timothy Pearson
2025-06-18 16:57 ` [PATCH v2 4/6] powerpc/eeh: Make EEH driver device hotplug safe Timothy Pearson
2025-06-18 16:58 ` [PATCH v2 5/6] pci/hotplug/pnv_php: Fix surprise plug detection and Timothy Pearson
2025-06-18 19:15 ` Bjorn Helgaas
2025-06-19 19:22 ` Timothy Pearson
2025-06-18 16:58 ` [PATCH v2 6/6] pci/hotplug/pnv_php: Enable third attention indicator Timothy Pearson
2025-06-18 19:01 ` Bjorn Helgaas [this message]
2025-06-19 0:37 ` Timothy Pearson
2025-06-20 9:26 ` Krishna Kumar
2025-06-21 9:59 ` Lukas Wunner
2025-06-25 4:08 ` Krishna Kumar
2025-06-25 8:08 ` Lukas Wunner
2025-06-25 10:55 ` Krishna Kumar
2025-06-21 15:05 ` Timothy Pearson
2025-06-24 7:07 ` Krishna Kumar
2025-06-24 16:34 ` Timothy Pearson
2025-06-24 22:34 ` Bjorn Helgaas
2025-07-07 8:01 ` Krishna Kumar
2025-07-11 18:18 ` Timothy Pearson
2025-07-11 21:05 ` Bjorn Helgaas
2025-07-15 21:41 ` Timothy Pearson
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=20250618190146.GA1213349@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=christophe.leroy@csgroup.eu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=naveen@kernel.org \
--cc=sanastasio@raptorengineering.com \
--cc=tpearson@raptorengineering.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;
as well as URLs for NNTP newsgroup(s).