• Ping-Ke Shih's avatar
    rtlwifi: rf_lock use non-irqsave spin_lock · 92541dd9
    Ping-Ke Shih authored
    rf_lock is used to protect RF register access, but they will not called
    from interrupt context, so *_irqsave version isn't necessary. Then, these
    delays don't affect IRQ services.
    
    The old code holds spin_lock_irqsave() that will be detected a long delay
    as below:
    
      kworker/-276     4d...    0us : _raw_spin_lock_irqsave
      kworker/-276     4d...    0us : rtl8723_phy_rf_serial_read <-rtl8723de_phy_set_rf_reg
      kworker/-276     4d...    1us : rtl8723_phy_query_bb_reg <-rtl8723_phy_rf_serial_read
      kworker/-276     4d...    3us : rtl8723_phy_set_bb_reg <-rtl8723_phy_rf_serial_read
      kworker/-276     4d...    4us : __const_udelay <-rtl8723_phy_rf_serial_read
      kworker/-276     4d...    4us!: delay_mwaitx <-rtl8723_phy_rf_serial_read
      kworker/-276     4d... 1004us : rtl8723_phy_set_bb_reg <-rtl8723_phy_rf_serial_read
      [...]
    Reported-by: default avatarLucas Stach <dev@lynxeye.de>
    Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    92541dd9
phy.c 47.3 KB