PCI: pciehp: Enable link state change notifications
Enable the Link state notifications unconditionally. Enable the presence detection notification only if attention button is absent. This was discussed at this thread: https://lkml.kernel.org/r/529E5C0E.80903@gmail.com Signed-off-by: Rajat Jain <rajatxjain@gmail.com> Signed-off-by: Rajat Jain <rajatjain@juniper.net> Signed-off-by: Guenter Roeck <groeck@juniper.net> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
e48f1b67f6
commit
4f854f2a2a
|
@ -600,9 +600,17 @@ void pcie_enable_notification(struct controller *ctrl)
|
|||
* when it is cleared in the interrupt service routine, and
|
||||
* next power fault detected interrupt was notified again.
|
||||
*/
|
||||
cmd = PCI_EXP_SLTCTL_PDCE;
|
||||
|
||||
/*
|
||||
* Always enable link events: thus link-up and link-down shall
|
||||
* always be treated as hotplug and unplug respectively. Enable
|
||||
* presence detect only if Attention Button is not present.
|
||||
*/
|
||||
cmd = PCI_EXP_SLTCTL_DLLSCE;
|
||||
if (ATTN_BUTTN(ctrl))
|
||||
cmd |= PCI_EXP_SLTCTL_ABPE;
|
||||
else
|
||||
cmd |= PCI_EXP_SLTCTL_PDCE;
|
||||
if (MRL_SENS(ctrl))
|
||||
cmd |= PCI_EXP_SLTCTL_MRLSCE;
|
||||
if (!pciehp_poll_mode)
|
||||
|
@ -610,7 +618,8 @@ void pcie_enable_notification(struct controller *ctrl)
|
|||
|
||||
mask = (PCI_EXP_SLTCTL_PDCE | PCI_EXP_SLTCTL_ABPE |
|
||||
PCI_EXP_SLTCTL_MRLSCE | PCI_EXP_SLTCTL_PFDE |
|
||||
PCI_EXP_SLTCTL_HPIE | PCI_EXP_SLTCTL_CCIE);
|
||||
PCI_EXP_SLTCTL_HPIE | PCI_EXP_SLTCTL_CCIE |
|
||||
PCI_EXP_SLTCTL_DLLSCE);
|
||||
|
||||
pcie_write_cmd(ctrl, cmd, mask);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue