PCI: pciehp: Remove ignored MRL sensor interrupt events
authorBjorn Helgaas <bhelgaas@google.com>
Wed, 1 Jul 2015 22:17:49 +0000 (17:17 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 10 Aug 2015 19:24:09 +0000 (14:24 -0500)
We queued interrupt events for the MRL being opened or closed, but the code
in interrupt_event_handler() that handles these events ignored them.

Stop enabling MRL interrupts and remove the ignored events.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/hotplug/pciehp.h
drivers/pci/hotplug/pciehp_hpc.c

index aca84e1b81be6caddf95242bf6a3d5db96c17bc4..62d6fe6c37145c5c35c62a4746093f486edd3457 100644 (file)
@@ -103,12 +103,10 @@ struct controller {
 
 #define INT_PRESENCE_ON                        1
 #define INT_PRESENCE_OFF               2
-#define INT_SWITCH_CLOSE               3
-#define INT_SWITCH_OPEN                        4
-#define INT_POWER_FAULT                        5
-#define INT_BUTTON_PRESS               6
-#define INT_LINK_UP                    7
-#define INT_LINK_DOWN                  8
+#define INT_POWER_FAULT                        3
+#define INT_BUTTON_PRESS               4
+#define INT_LINK_UP                    5
+#define INT_LINK_DOWN                  6
 
 #define STATIC_STATE                   0
 #define BLINKINGON_STATE               1
index 8f3d3cff3581b72ad7d384900e44a7394c4aa7a4..5c24e938042fd6bccb4e207d58dcb988d7c62611 100644 (file)
@@ -543,7 +543,7 @@ static irqreturn_t pcie_isr(int irq, void *dev_id)
        struct pci_dev *dev;
        struct slot *slot = ctrl->slot;
        u16 detected, intr_loc;
-       u8 open, present;
+       u8 present;
        bool link;
 
        /*
@@ -561,7 +561,7 @@ static irqreturn_t pcie_isr(int irq, void *dev_id)
                }
 
                detected &= (PCI_EXP_SLTSTA_ABP | PCI_EXP_SLTSTA_PFD |
-                            PCI_EXP_SLTSTA_MRLSC | PCI_EXP_SLTSTA_PDC |
+                            PCI_EXP_SLTSTA_PDC |
                             PCI_EXP_SLTSTA_CC | PCI_EXP_SLTSTA_DLLSC);
                detected &= ~intr_loc;
                intr_loc |= detected;
@@ -594,15 +594,6 @@ static irqreturn_t pcie_isr(int irq, void *dev_id)
        if (!(intr_loc & ~PCI_EXP_SLTSTA_CC))
                return IRQ_HANDLED;
 
-       /* Check MRL Sensor Changed */
-       if (intr_loc & PCI_EXP_SLTSTA_MRLSC) {
-               pciehp_get_latch_status(slot, &open);
-               ctrl_info(ctrl, "Latch %s on Slot(%s)\n",
-                         open ? "open" : "close", slot_name(slot));
-               pciehp_queue_interrupt_event(slot, open ? INT_SWITCH_OPEN :
-                                            INT_SWITCH_CLOSE);
-       }
-
        /* Check Attention Button Pressed */
        if (intr_loc & PCI_EXP_SLTSTA_ABP) {
                ctrl_info(ctrl, "Button pressed on Slot(%s)\n",
@@ -662,13 +653,11 @@ void pcie_enable_notification(struct controller *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)
                cmd |= PCI_EXP_SLTCTL_HPIE | PCI_EXP_SLTCTL_CCIE;
 
        mask = (PCI_EXP_SLTCTL_PDCE | PCI_EXP_SLTCTL_ABPE |
-               PCI_EXP_SLTCTL_MRLSCE | PCI_EXP_SLTCTL_PFDE |
+               PCI_EXP_SLTCTL_PFDE |
                PCI_EXP_SLTCTL_HPIE | PCI_EXP_SLTCTL_CCIE |
                PCI_EXP_SLTCTL_DLLSCE);