Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d49f2c49 authored by Kenji Kaneshige's avatar Kenji Kaneshige Committed by Greg Kroah-Hartman
Browse files

[PATCH] shpchp: Mask Global SERR and Intr at controller release time



Global SERR and Interrupt should be masked at shpchp driver unload time.

Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Cc: Kristen Accardi <kristen.c.accardi@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent e7138723
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -798,7 +798,7 @@ static void hpc_release_ctlr(struct controller *ctrl)
	struct php_ctlr_state_s *php_ctlr = ctrl->hpc_ctlr_handle;
	struct php_ctlr_state_s *p, *p_prev;
	int i;
	u32 slot_reg;
	u32 slot_reg, serr_int;

	DBG_ENTER_ROUTINE 

@@ -822,6 +822,15 @@ static void hpc_release_ctlr(struct controller *ctrl)

	cleanup_slots(ctrl);

	/*
	 * Mask SERR and System Interrut generation
	 */
	serr_int = shpc_readl(ctrl, SERR_INTR_ENABLE);
	serr_int |= (GLOBAL_INTR_MASK  | GLOBAL_SERR_MASK |
		     COMMAND_INTR_MASK | ARBITER_SERR_MASK);
	serr_int &= ~SERR_INTR_RSVDZ_MASK;
	shpc_writel(ctrl, SERR_INTR_ENABLE, serr_int);

	if (shpchp_poll_mode) {
	    del_timer(&php_ctlr->int_poll_timer);
	} else {