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

Commit c1b58640 authored by Ping-Ke Shih's avatar Ping-Ke Shih Committed by Kalle Valo
Browse files

rtlwifi: rtl_pci: Extend recognized interrupt parameters from two to four ISR



8822be checks H2CQ by int_d, so we extend to four ISR.
Also, irq_mask is extended to four.

Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Yan-Hsuan Chuang <yhchuang@realtek.com>
Cc: Birming Chiu <birming@realtek.com>
Cc: Shaofu <shaofu@realtek.com>
Cc: Steven Ting <steventing@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 68929a83
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -926,6 +926,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
	unsigned long flags;
	u32 inta = 0;
	u32 intb = 0;
	u32 intc = 0;
	u32 intd = 0;
	irqreturn_t ret = IRQ_HANDLED;

@@ -936,7 +937,7 @@ static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
	rtlpriv->cfg->ops->disable_interrupt(hw);

	/*read ISR: 4/8bytes */
	rtlpriv->cfg->ops->interrupt_recognized(hw, &inta, &intb);
	rtlpriv->cfg->ops->interrupt_recognized(hw, &inta, &intb, &intc, &intd);

	/*Shared IRQ or HW disappeared */
	if (!inta || inta == 0xffff)
+1 −1
Original line number Diff line number Diff line
@@ -211,7 +211,7 @@ struct rtl_pci {

	/*irq */
	u8 irq_alloc;
	u32 irq_mask[2];
	u32 irq_mask[4];	/* 0-1: normal, 2: unused, 3: h2c */
	u32 sys_irq_mask;

	/*Bcn control register setting */
+2 −1
Original line number Diff line number Diff line
@@ -1472,7 +1472,8 @@ void rtl88ee_card_disable(struct ieee80211_hw *hw)
}

void rtl88ee_interrupt_recognized(struct ieee80211_hw *hw,
				  u32 *p_inta, u32 *p_intb)
				  u32 *p_inta, u32 *p_intb,
				  u32 *p_intc, u32 *p_intd)
{
	struct rtl_priv *rtlpriv = rtl_priv(hw);
	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
+2 −1
Original line number Diff line number Diff line
@@ -29,7 +29,8 @@
void rtl88ee_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val);
void rtl88ee_read_eeprom_info(struct ieee80211_hw *hw);
void rtl88ee_interrupt_recognized(struct ieee80211_hw *hw,
				  u32 *p_inta, u32 *p_intb);
				  u32 *p_inta, u32 *p_intb,
				  u32 *p_intc, u32 *p_intd);
int rtl88ee_hw_init(struct ieee80211_hw *hw);
void rtl88ee_card_disable(struct ieee80211_hw *hw);
void rtl88ee_enable_interrupt(struct ieee80211_hw *hw);
+2 −1
Original line number Diff line number Diff line
@@ -1375,7 +1375,8 @@ void rtl92ce_card_disable(struct ieee80211_hw *hw)
}

void rtl92ce_interrupt_recognized(struct ieee80211_hw *hw,
				  u32 *p_inta, u32 *p_intb)
				  u32 *p_inta, u32 *p_intb,
				  u32 *p_intc, u32 *p_intd)
{
	struct rtl_priv *rtlpriv = rtl_priv(hw);
	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
Loading