PCI: pciehp: Remove pciehp_set_attention_status()
Remove pciehp_set_attention_status() and use pciehp_set_indicators() instead, since the code is mostly the same. Link: https://lore.kernel.org/r/20190903111021.1559-4-efremov@linux.com Signed-off-by: Denis Efremov <efremov@linux.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
This commit is contained in:
parent
94719ba090
commit
106feb2fdc
|
@ -170,7 +170,6 @@ void pciehp_get_power_status(struct controller *ctrl, u8 *status);
|
||||||
#define INDICATOR_NOOP -1 /* Leave indicator unchanged */
|
#define INDICATOR_NOOP -1 /* Leave indicator unchanged */
|
||||||
void pciehp_set_indicators(struct controller *ctrl, int pwr, int attn);
|
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);
|
void pciehp_get_latch_status(struct controller *ctrl, u8 *status);
|
||||||
int pciehp_query_power_fault(struct controller *ctrl);
|
int pciehp_query_power_fault(struct controller *ctrl);
|
||||||
void pciehp_green_led_on(struct controller *ctrl);
|
void pciehp_green_led_on(struct controller *ctrl);
|
||||||
|
|
|
@ -95,15 +95,20 @@ static void cleanup_slot(struct controller *ctrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set_attention_status - Turns the Amber LED for a slot on, off or blink
|
* set_attention_status - Turns the Attention Indicator on, off or blinking
|
||||||
*/
|
*/
|
||||||
static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status)
|
static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status)
|
||||||
{
|
{
|
||||||
struct controller *ctrl = to_ctrl(hotplug_slot);
|
struct controller *ctrl = to_ctrl(hotplug_slot);
|
||||||
struct pci_dev *pdev = ctrl->pcie->port;
|
struct pci_dev *pdev = ctrl->pcie->port;
|
||||||
|
|
||||||
|
if (status)
|
||||||
|
status <<= PCI_EXP_SLTCTL_ATTN_IND_SHIFT;
|
||||||
|
else
|
||||||
|
status = PCI_EXP_SLTCTL_ATTN_IND_OFF;
|
||||||
|
|
||||||
pci_config_pm_runtime_get(pdev);
|
pci_config_pm_runtime_get(pdev);
|
||||||
pciehp_set_attention_status(ctrl, status);
|
pciehp_set_indicators(ctrl, INDICATOR_NOOP, status);
|
||||||
pci_config_pm_runtime_put(pdev);
|
pci_config_pm_runtime_put(pdev);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,31 +418,6 @@ int pciehp_set_raw_indicator_status(struct hotplug_slot *hotplug_slot,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pciehp_set_attention_status(struct controller *ctrl, u8 value)
|
|
||||||
{
|
|
||||||
u16 slot_cmd;
|
|
||||||
|
|
||||||
if (!ATTN_LED(ctrl))
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (value) {
|
|
||||||
case 0: /* turn off */
|
|
||||||
slot_cmd = PCI_EXP_SLTCTL_ATTN_IND_OFF;
|
|
||||||
break;
|
|
||||||
case 1: /* turn on */
|
|
||||||
slot_cmd = PCI_EXP_SLTCTL_ATTN_IND_ON;
|
|
||||||
break;
|
|
||||||
case 2: /* turn blink */
|
|
||||||
slot_cmd = PCI_EXP_SLTCTL_ATTN_IND_BLINK;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
pcie_write_cmd_nowait(ctrl, slot_cmd, PCI_EXP_SLTCTL_AIC);
|
|
||||||
ctrl_dbg(ctrl, "%s: SLOTCTRL %x write cmd %x\n", __func__,
|
|
||||||
pci_pcie_cap(ctrl->pcie->port) + PCI_EXP_SLTCTL, slot_cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* pciehp_set_indicators() - set attention indicator, power indicator, or both
|
* pciehp_set_indicators() - set attention indicator, power indicator, or both
|
||||||
* @ctrl: PCIe hotplug controller
|
* @ctrl: PCIe hotplug controller
|
||||||
|
|
|
@ -591,6 +591,7 @@
|
||||||
#define PCI_EXP_SLTCTL_CCIE 0x0010 /* Command Completed Interrupt Enable */
|
#define PCI_EXP_SLTCTL_CCIE 0x0010 /* Command Completed Interrupt Enable */
|
||||||
#define PCI_EXP_SLTCTL_HPIE 0x0020 /* Hot-Plug Interrupt Enable */
|
#define PCI_EXP_SLTCTL_HPIE 0x0020 /* Hot-Plug Interrupt Enable */
|
||||||
#define PCI_EXP_SLTCTL_AIC 0x00c0 /* Attention Indicator Control */
|
#define PCI_EXP_SLTCTL_AIC 0x00c0 /* Attention Indicator Control */
|
||||||
|
#define PCI_EXP_SLTCTL_ATTN_IND_SHIFT 6 /* Attention Indicator shift */
|
||||||
#define PCI_EXP_SLTCTL_ATTN_IND_ON 0x0040 /* Attention Indicator on */
|
#define PCI_EXP_SLTCTL_ATTN_IND_ON 0x0040 /* Attention Indicator on */
|
||||||
#define PCI_EXP_SLTCTL_ATTN_IND_BLINK 0x0080 /* Attention Indicator blinking */
|
#define PCI_EXP_SLTCTL_ATTN_IND_BLINK 0x0080 /* Attention Indicator blinking */
|
||||||
#define PCI_EXP_SLTCTL_ATTN_IND_OFF 0x00c0 /* Attention Indicator off */
|
#define PCI_EXP_SLTCTL_ATTN_IND_OFF 0x00c0 /* Attention Indicator off */
|
||||||
|
|
Loading…
Reference in New Issue