lkml.org 
[lkml]   [2019]   [Dec]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 122/199] rtlwifi: rtl8192de: Fix missing enable interrupt flag
    Date
    From: Larry Finger <Larry.Finger@lwfinger.net>

    commit 330bb7117101099c687e9c7f13d48068670b9c62 upstream.

    In commit 38506ecefab9 ("rtlwifi: rtl_pci: Start modification for
    new drivers"), the flag that indicates that interrupts are enabled was
    never set.

    In addition, there are several places when enable/disable interrupts
    were commented out are restored. A sychronize_interrupts() call is
    removed.

    Fixes: 38506ecefab9 ("rtlwifi: rtl_pci: Start modification for new drivers")
    Cc: Stable <stable@vger.kernel.org> # v3.18+
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
    +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
    @@ -1209,6 +1209,7 @@ void rtl92de_enable_interrupt(struct iee

    rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF);
    rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF);
    + rtlpci->irq_enabled = true;
    }

    void rtl92de_disable_interrupt(struct ieee80211_hw *hw)
    @@ -1218,7 +1219,7 @@ void rtl92de_disable_interrupt(struct ie

    rtl_write_dword(rtlpriv, REG_HIMR, IMR8190_DISABLED);
    rtl_write_dword(rtlpriv, REG_HIMRE, IMR8190_DISABLED);
    - synchronize_irq(rtlpci->pdev->irq);
    + rtlpci->irq_enabled = false;
    }

    static void _rtl92de_poweroff_adapter(struct ieee80211_hw *hw)
    @@ -1389,7 +1390,7 @@ void rtl92de_set_beacon_related_register

    bcn_interval = mac->beacon_interval;
    atim_window = 2;
    - /*rtl92de_disable_interrupt(hw); */
    + rtl92de_disable_interrupt(hw);
    rtl_write_word(rtlpriv, REG_ATIMWND, atim_window);
    rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
    rtl_write_word(rtlpriv, REG_BCNTCFG, 0x660f);
    @@ -1409,9 +1410,9 @@ void rtl92de_set_beacon_interval(struct

    RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG,
    "beacon_interval:%d\n", bcn_interval);
    - /* rtl92de_disable_interrupt(hw); */
    + rtl92de_disable_interrupt(hw);
    rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval);
    - /* rtl92de_enable_interrupt(hw); */
    + rtl92de_enable_interrupt(hw);
    }

    void rtl92de_update_interrupt_mask(struct ieee80211_hw *hw,

    \
     
     \ /
      Last update: 2019-12-19 19:48    [W:4.034 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site