Skip to contentSkip to conversation

pciehp: Enable link state change notifications

PATCH In review Rajat Jain 1 participant 1 message Dec 17, 2013 PCI

lore
Share & tools
lore

Rajat Jain

author
#0 lore raw

PATCH v3 3/8 pciehp: Enable link state change notifications

Enabled the Link state notifications unconditionaly. Enable the presence detection notification only if attention button is absent. This was discussed at this thread:
http://marc.info/?t=138611014300001&r=1&w=2

---
v3: * created by splitting the patch v2 [2/4]
* Disable presence detect notification, when ATTN BTN is present
v2: (non existent)
v1: (non existent)

 drivers/pci/hotplug/pciehp_hpc.c |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
drivers/pci/hotplug/pciehp_hpc.c +11 -2
index 1e9f814..b45b568 100644
@@ -723,9 +723,17 @@ int 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)
@@ -733,7 +741,8 @@ int 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);
 
 	if (pcie_write_cmd(ctrl, cmd, mask)) {
 		ctrl_err(ctrl, "Cannot enable software notification\n");
Signature · 1 line
1.7.9.5