PCI: pciehp: Add pciehp_set_indicators() to set both indicators
Add pciehp_set_indicators() to set power and attention indicators with a single register write. This is a minor optimization because we frequently set both indicators and this can do it with a single command. It also reduces the number of interfaces related to the indicators and makes them more discoverable because callers use the PCI_EXP_SLTCTL_ATTN_IND_* and PCI_EXP_SLTCTL_PWR_IND_* definitions directly. [bhelgaas: extend commit log, s/PCI_EXP_SLTCTL_.*_IND_NONE/INDICATOR_NOOP/ so they don't look like things defined by the spec, add function doc, mask commands to make it obvious we only send valid commands (pcie_do_write_cmd() does mask it, but requires more effort to verify)] Link: https://lore.kernel.org/r/20190903111021.1559-2-efremov@linux.com Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:

committed by
Bjorn Helgaas

parent
5f9e832c13
commit
688033f52d
@@ -167,6 +167,9 @@ int pciehp_power_on_slot(struct controller *ctrl);
|
||||
void pciehp_power_off_slot(struct controller *ctrl);
|
||||
void pciehp_get_power_status(struct controller *ctrl, u8 *status);
|
||||
|
||||
#define INDICATOR_NOOP -1 /* Leave indicator unchanged */
|
||||
void pciehp_set_indicators(struct controller *ctrl, int pwr, int attn);
|
||||
|
||||
void pciehp_set_attention_status(struct controller *ctrl, u8 status);
|
||||
void pciehp_get_latch_status(struct controller *ctrl, u8 *status);
|
||||
int pciehp_query_power_fault(struct controller *ctrl);
|
||||
|
Reference in New Issue
Block a user