mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 10:11:26 +03:00
rtl8852ce: Add v126-10 to fix disconnect with new channel
Issue - When WiFi operating channel is switched, at times the wifi role index and role bitmap show that there is already a role assigned for the channel context and this causes a failure in association. Kernel warning is shown when this occurs. Fix - Update driver to v126-10 that fixes this issue. [ 57.590860] Call trace: [ 57.590861] rtw_phl_chanctx_add+0x528/0x8f4 [rtl8852ce] [ 57.590947] rtw_clear_is_accepted_status+0x4a4/0xbb8 [rtl8852ce] [ 57.591033] cur_req_hdl+0x3c/0x4c [rtl8852ce] [ 57.591118] msg_dispatch+0x2dc/0x3f8 [rtl8852ce] [ 57.591204] dispr_thread_loop_hdl+0x270/0x2dc [rtl8852ce] [ 57.591289] dispr_share_thread_loop_hdl+0x10/0x1c [rtl8852ce] [ 57.591374] share_thread_hdl+0xb8/0x1a0 [rtl8852ce] [ 57.591459] kthread+0x110/0x124 [ 57.591466] ret_from_fork+0x10/0x20 Bug 5440351 Bug 5442104 Change-Id: Ie78c70c1ea7a789351a2ba4ad445c4d0062281da Signed-off-by: Shobek Attupurath <sattupurath@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3426784 GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com> Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
55bd49a633
commit
c9aa3b2f1b
47
drivers/net/wireless/realtek/rtl8852ce/phl/phl_int.h
Normal file
47
drivers/net/wireless/realtek/rtl8852ce/phl/phl_int.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2024 Realtek Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
*****************************************************************************/
|
||||
#ifndef _PHL_INT_H_
|
||||
#define _PHL_INT_H_
|
||||
|
||||
void rtw_phl_enable_interrupt_sync(struct rtw_phl_com_t* phl_com);
|
||||
void rtw_phl_disable_interrupt_sync(struct rtw_phl_com_t* phl_com);
|
||||
|
||||
static inline void phl_restore_interrupt_sync(struct rtw_phl_com_t* phl_com, bool wlock, bool rx)
|
||||
{
|
||||
#ifdef CONFIG_SYNC_INTERRUPT
|
||||
struct rtw_phl_evt_ops *evt_ops = &phl_com->evt_ops;
|
||||
|
||||
evt_ops->interrupt_restore(phl_com->drv_priv, rx);
|
||||
#else
|
||||
#if defined(CONFIG_PCI_HCI)
|
||||
struct phl_info_t *phl_info = (struct phl_info_t *)phl_com->phl_priv;
|
||||
|
||||
if (wlock) {
|
||||
void *drv = phl_to_drvpriv(phl_info);
|
||||
struct hci_info_t *hci_info = (struct hci_info_t *)phl_info->hci;
|
||||
_os_spinlockfg sp_flags;
|
||||
|
||||
_os_spinlock(drv, &hci_info->int_hdl_lock, _irq, &sp_flags);
|
||||
if (hci_info->int_disabled == false)
|
||||
rtw_hal_restore_interrupt(phl_com, phl_info->hal);
|
||||
_os_spinunlock(drv, &hci_info->int_hdl_lock, _irq, &sp_flags);
|
||||
} else {
|
||||
rtw_hal_restore_interrupt(phl_com, phl_info->hal);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /*_PHL_INT_H_*/
|
||||
Reference in New Issue
Block a user