commit 4773ff0a77bbc48364e774809ce5abb27068ce7e Author: Ping-Ke Shih Date: Tue Sep 8 15:57:49 2026 +0800 print ba cam Signed-off-by: Ping-Ke Shih diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c index 572d9c65a2dd..7e04da1fdf90 100644 --- a/drivers/net/wireless/realtek/rtw89/core.c +++ b/drivers/net/wireless/realtek/rtw89/core.c @@ -5624,7 +5624,14 @@ int rtw89_core_acquire_sta_ba_entry(struct rtw89_dev *rtwdev, lockdep_assert_wiphy(rtwdev->hw->wiphy); + printk("%s:%d\n", __func__, __LINE__); + idx = rtw89_core_acquire_bit_map(cam_info->ba_cam_map, chip->bacam_num); + + printk("\t%s:%d acquire entry=%d all=%*ph rtwsta_link=%p tid=%d\n", __func__, __LINE__, + idx, (int)sizeof(cam_info->ba_cam_map), cam_info->ba_cam_map, + rtwsta_link, tid); + if (idx == chip->bacam_num) { /* allocate a static BA CAM to tid=0/5, so replace the existing * one if BA CAM is full. Hardware will process the original tid @@ -5640,7 +5647,12 @@ int rtw89_core_acquire_sta_ba_entry(struct rtw89_dev *rtwdev, idx = i; entry = tmp; - list_del(&entry->list); + + printk("\t%s:%d replace entry=%d all=%*ph rtwsta_link=%p tid=%d\n", __func__, __LINE__, + idx, (int)sizeof(cam_info->ba_cam_map), cam_info->ba_cam_map, + rtwsta_link, tid); + + list_del_init(&entry->list); break; } @@ -5650,6 +5662,10 @@ int rtw89_core_acquire_sta_ba_entry(struct rtw89_dev *rtwdev, entry = &cam_info->ba_cam_entry[idx]; } + printk("\t%s:%d add entry=%d all=%*ph rtwsta_link=%p tid=%d\n", __func__, __LINE__, + idx, (int)sizeof(cam_info->ba_cam_map), cam_info->ba_cam_map, + rtwsta_link, tid); + entry->tid = tid; list_add_tail(&entry->list, &rtwsta_link->ba_cam_list); @@ -5668,14 +5684,25 @@ int rtw89_core_release_sta_ba_entry(struct rtw89_dev *rtwdev, lockdep_assert_wiphy(rtwdev->hw->wiphy); + printk("%s:%d\n", __func__, __LINE__); + list_for_each_entry_safe(entry, tmp, &rtwsta_link->ba_cam_list, list) { if (entry->tid != tid) continue; + printk("\t%s:%d release entry=%d all=%*ph rtwsta_link=%p tid=%d (before)\n", __func__, __LINE__, + idx, (int)sizeof(cam_info->ba_cam_map), cam_info->ba_cam_map, + rtwsta_link, tid); + idx = entry - cam_info->ba_cam_entry; - list_del(&entry->list); + list_del_init(&entry->list); rtw89_core_release_bit_map(cam_info->ba_cam_map, idx); + + printk("\t%s:%d release entry=%d all=%*ph rtwsta_link=%p tid=%d (after)\n", __func__, __LINE__, + idx, (int)sizeof(cam_info->ba_cam_map), cam_info->ba_cam_map, + rtwsta_link, tid); + *cam_idx = idx; return 0; }