diff options
-rw-r--r-- | drivers/pci/hotplug/shpchp_hpc.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/shpchp_hpc.c b/drivers/pci/hotplug/shpchp_hpc.c index e2a8671545f2..8b63f772a6f2 100644 --- a/drivers/pci/hotplug/shpchp_hpc.c +++ b/drivers/pci/hotplug/shpchp_hpc.c | |||
@@ -798,7 +798,7 @@ static void hpc_release_ctlr(struct controller *ctrl) | |||
798 | struct php_ctlr_state_s *php_ctlr = ctrl->hpc_ctlr_handle; | 798 | struct php_ctlr_state_s *php_ctlr = ctrl->hpc_ctlr_handle; |
799 | struct php_ctlr_state_s *p, *p_prev; | 799 | struct php_ctlr_state_s *p, *p_prev; |
800 | int i; | 800 | int i; |
801 | u32 slot_reg; | 801 | u32 slot_reg, serr_int; |
802 | 802 | ||
803 | DBG_ENTER_ROUTINE | 803 | DBG_ENTER_ROUTINE |
804 | 804 | ||
@@ -822,6 +822,15 @@ static void hpc_release_ctlr(struct controller *ctrl) | |||
822 | 822 | ||
823 | cleanup_slots(ctrl); | 823 | cleanup_slots(ctrl); |
824 | 824 | ||
825 | /* | ||
826 | * Mask SERR and System Interrut generation | ||
827 | */ | ||
828 | serr_int = shpc_readl(ctrl, SERR_INTR_ENABLE); | ||
829 | serr_int |= (GLOBAL_INTR_MASK | GLOBAL_SERR_MASK | | ||
830 | COMMAND_INTR_MASK | ARBITER_SERR_MASK); | ||
831 | serr_int &= ~SERR_INTR_RSVDZ_MASK; | ||
832 | shpc_writel(ctrl, SERR_INTR_ENABLE, serr_int); | ||
833 | |||
825 | if (shpchp_poll_mode) { | 834 | if (shpchp_poll_mode) { |
826 | del_timer(&php_ctlr->int_poll_timer); | 835 | del_timer(&php_ctlr->int_poll_timer); |
827 | } else { | 836 | } else { |