mirror of
https://github.com/RinCat/RTL88x2BU-Linux-Driver.git
synced 2026-01-29 07:16:35 +00:00
Update to 5.13.1 from upstream
This commit is contained in:
@@ -49,6 +49,9 @@ s32 rtl8822bu_init_xmit_priv(PADAPTER);
|
||||
void rtl8822bu_free_xmit_priv(PADAPTER);
|
||||
s32 rtl8822bu_mgnt_xmit(PADAPTER, struct xmit_frame *);
|
||||
s32 rtl8822bu_hal_xmit(PADAPTER, struct xmit_frame *);
|
||||
#ifdef CONFIG_RTW_MGMT_QUEUE
|
||||
s32 rtl8822bu_hal_mgmt_xmitframe_enqueue(PADAPTER, struct xmit_frame *);
|
||||
#endif
|
||||
s32 rtl8822bu_hal_xmitframe_enqueue(PADAPTER, struct xmit_frame *);
|
||||
s32 rtl8822bu_hostap_mgnt_xmit_entry(PADAPTER, _pkt *);
|
||||
#ifdef CONFIG_XMIT_THREAD_MODE
|
||||
|
||||
@@ -255,6 +255,7 @@ exit:
|
||||
|
||||
u32 rtl8822bu_inirp_init(PADAPTER padapter)
|
||||
{
|
||||
struct registry_priv *regsty = adapter_to_regsty(padapter);
|
||||
u8 i, status;
|
||||
struct recv_buf *precvbuf;
|
||||
struct dvobj_priv *pdev = adapter_to_dvobj(padapter);
|
||||
@@ -285,7 +286,7 @@ u32 rtl8822bu_inirp_init(PADAPTER padapter)
|
||||
|
||||
/* issue Rx irp to receive data */
|
||||
precvbuf = (struct recv_buf *)precvpriv->precv_buf;
|
||||
for (i = 0; i < NR_RECVBUFF; i++) {
|
||||
for (i = 0; i < regsty->recvbuf_nr; i++) {
|
||||
if (_read_port(pintfhdl, precvpriv->ff_hwaddr, 0, (u8 *)precvbuf) == _FALSE) {
|
||||
status = _FAIL;
|
||||
goto exit;
|
||||
|
||||
@@ -198,11 +198,6 @@ static u8 rtl8822bu_ps_func(PADAPTER padapter, HAL_INTF_PS_FUNC efunc_id, u8 *va
|
||||
|
||||
switch (efunc_id) {
|
||||
|
||||
#if defined(CONFIG_AUTOSUSPEND) && defined(SUPPORT_HW_RFOFF_DETECTED)
|
||||
case HAL_USB_SELECT_SUSPEND:
|
||||
break;
|
||||
#endif /* CONFIG_AUTOSUSPEND && SUPPORT_HW_RFOFF_DETECTED */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -321,6 +316,9 @@ void rtl8822bu_set_hal_ops(PADAPTER padapter)
|
||||
|
||||
ops->hal_xmit = rtl8822bu_hal_xmit;
|
||||
ops->mgnt_xmit = rtl8822bu_mgnt_xmit;
|
||||
#ifdef CONFIG_RTW_MGMT_QUEUE
|
||||
ops->hal_mgmt_xmitframe_enqueue = rtl8822bu_hal_mgmt_xmitframe_enqueue;
|
||||
#endif
|
||||
ops->hal_xmitframe_enqueue = rtl8822bu_hal_xmitframe_enqueue;
|
||||
|
||||
#ifdef CONFIG_HOSTAPD_MLME
|
||||
|
||||
@@ -132,10 +132,8 @@ static s32 update_txdesc(struct xmit_frame *pxmitframe, u8 *pmem, s32 sz, u8 bag
|
||||
|
||||
rtl8822b_fill_txdesc_vcs(padapter, pattrib, ptxdesc);
|
||||
|
||||
#ifdef CONFIG_CONCURRENT_MODE
|
||||
if (bmcst)
|
||||
rtl8822b_fill_txdesc_force_bmc_camid(pattrib, ptxdesc);
|
||||
#endif
|
||||
#ifdef CONFIG_SUPPORT_DYNAMIC_TXPWR
|
||||
rtw_phydm_set_dyntxpwr(padapter, ptxdesc, pattrib->mac_id);
|
||||
#endif
|
||||
@@ -392,7 +390,7 @@ static s32 rtw_dump_xframe(PADAPTER padapter, struct xmit_frame *pxmitframe)
|
||||
(pxmitframe->attrib.ether_type != 0x888e) &&
|
||||
(pxmitframe->attrib.ether_type != 0x88b4) &&
|
||||
(pxmitframe->attrib.dhcp_pkt != 1))
|
||||
rtw_issue_addbareq_cmd(padapter, pxmitframe);
|
||||
rtw_issue_addbareq_cmd(padapter, pxmitframe, _FALSE);
|
||||
#endif /* CONFIG_80211N_HT */
|
||||
|
||||
mem_addr = pxmitframe->buf_addr;
|
||||
@@ -499,7 +497,14 @@ static s32 rtl8822bu_xmitframe_complete(PADAPTER padapter, struct xmit_priv *pxm
|
||||
int res = _SUCCESS;
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef CONFIG_RTW_MGMT_QUEUE
|
||||
/* dump management frame directly */
|
||||
pxmitframe = rtw_dequeue_mgmt_xframe(pxmitpriv);
|
||||
if (pxmitframe) {
|
||||
rtw_dump_xframe(padapter, pxmitframe);
|
||||
return _TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* check xmitbuffer is ok */
|
||||
if (pxmitbuf == NULL) {
|
||||
@@ -711,7 +716,7 @@ agg_end:
|
||||
(pfirstframe->attrib.ether_type != 0x888e) &&
|
||||
(pfirstframe->attrib.ether_type != 0x88b4) &&
|
||||
(pfirstframe->attrib.dhcp_pkt != 1))
|
||||
rtw_issue_addbareq_cmd(padapter, pfirstframe);
|
||||
rtw_issue_addbareq_cmd(padapter, pfirstframe, _FALSE);
|
||||
#endif /* CONFIG_80211N_HT */
|
||||
#ifndef CONFIG_USE_USB_BUFFER_ALLOC_TX
|
||||
/* 3. update first frame txdesc */
|
||||
@@ -782,6 +787,14 @@ static s32 rtl8822bu_xmitframe_complete(PADAPTER padapter, struct xmit_priv *pxm
|
||||
phwxmits = pxmitpriv->hwxmits;
|
||||
hwentry = pxmitpriv->hwxmit_entry;
|
||||
|
||||
#ifdef CONFIG_RTW_MGMT_QUEUE
|
||||
/* dump management frame directly */
|
||||
pxmitframe = rtw_dequeue_mgmt_xframe(pxmitpriv);
|
||||
if (pxmitframe) {
|
||||
rtw_dump_xframe(padapter, pxmitframe);
|
||||
return _TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (pxmitbuf == NULL) {
|
||||
pxmitbuf = rtw_alloc_xmitbuf(pxmitpriv);
|
||||
@@ -963,6 +976,25 @@ s32 rtl8822bu_hal_xmit(PADAPTER padapter, struct xmit_frame *pxmitframe)
|
||||
return pre_xmitframe(padapter, pxmitframe);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_RTW_MGMT_QUEUE
|
||||
s32 rtl8822bu_hal_mgmt_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe)
|
||||
{
|
||||
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
|
||||
s32 err;
|
||||
|
||||
err = rtw_mgmt_xmitframe_enqueue(padapter, pxmitframe);
|
||||
if (err != _SUCCESS) {
|
||||
rtw_free_xmitframe(pxmitpriv, pxmitframe);
|
||||
pxmitpriv->tx_drop++;
|
||||
} else {
|
||||
#ifdef PLATFORM_LINUX
|
||||
tasklet_hi_schedule(&pxmitpriv->xmit_tasklet);
|
||||
#endif
|
||||
}
|
||||
return err;
|
||||
}
|
||||
#endif
|
||||
|
||||
s32 rtl8822bu_hal_xmitframe_enqueue(PADAPTER padapter, struct xmit_frame *pxmitframe)
|
||||
{
|
||||
struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
|
||||
|
||||
Reference in New Issue
Block a user