Lines Matching defs:addr_cam

137 static int rtw89_cam_get_addr_cam_key_idx(struct rtw89_addr_cam_entry *addr_cam,
149 switch (addr_cam->sec_ent_mode) {
153 idx = find_first_zero_bit(addr_cam->sec_cam_map,
161 idx = find_next_zero_bit(addr_cam->sec_cam_map,
170 idx = find_next_zero_bit(addr_cam->sec_cam_map,
179 idx = find_next_zero_bit(addr_cam->sec_cam_map,
187 if (test_bit(6, addr_cam->sec_cam_map))
194 idx = find_next_zero_bit(addr_cam->sec_cam_map,
203 idx = find_next_zero_bit(addr_cam->sec_cam_map,
222 struct rtw89_addr_cam_entry *addr_cam;
232 addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta);
234 for_each_set_bit(i, addr_cam->sec_cam_map, RTW89_SEC_CAM_IN_ADDR_CAM) {
235 if (addr_cam->sec_ent[i] != sec_cam->sec_cam_idx)
238 clear_bit(i, addr_cam->sec_cam_map);
262 struct rtw89_addr_cam_entry *addr_cam;
272 addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta);
276 addr_cam->sec_ent_mode = RTW89_ADDR_CAM_SEC_ALL_UNI;
278 ret = rtw89_cam_get_addr_cam_key_idx(addr_cam, sec_cam, key, &key_idx);
281 addr_cam->sec_ent_mode, sec_cam->type);
285 addr_cam->sec_ent_keyid[key_idx] = key->keyidx;
286 addr_cam->sec_ent[key_idx] = sec_cam->sec_cam_idx;
287 set_bit(key_idx, addr_cam->sec_cam_map);
298 clear_bit(key_idx, addr_cam->sec_cam_map);
467 struct rtw89_addr_cam_entry *addr_cam)
471 addr_cam->valid = false;
472 clear_bit(addr_cam->addr_cam_idx, cam_info->addr_cam_map);
486 struct rtw89_addr_cam_entry *addr_cam = &rtwvif->addr_cam;
489 rtw89_cam_deinit_addr_cam(rtwdev, addr_cam);
534 struct rtw89_addr_cam_entry *addr_cam,
541 if (unlikely(addr_cam->valid)) {
553 addr_cam->addr_cam_idx = addr_cam_idx;
554 addr_cam->len = rtw89_get_addr_cam_entry_size(rtwdev);
555 addr_cam->offset = 0;
556 addr_cam->valid = true;
557 addr_cam->addr_mask = 0;
558 addr_cam->mask_sel = RTW89_NO_MSK;
559 addr_cam->sec_ent_mode = RTW89_ADDR_CAM_SEC_NORMAL;
560 bitmap_zero(addr_cam->sec_cam_map, RTW89_SEC_CAM_IN_ADDR_CAM);
563 addr_cam->sec_ent_keyid[i] = 0;
564 addr_cam->sec_ent[i] = 0;
568 addr_cam->bssid_cam_idx = bssid_cam->bssid_cam_idx;
630 struct rtw89_addr_cam_entry *addr_cam = &rtwvif->addr_cam;
640 ret = rtw89_cam_init_addr_cam(rtwdev, addr_cam, bssid_cam);
699 struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta);
707 if (addr_cam->addr_mask != 0) {
708 addr_msk_start = __ffs(addr_cam->addr_mask);
709 if (addr_cam->mask_sel == RTW89_SMA)
711 else if (addr_cam->mask_sel == RTW89_TMA)
717 FWCMD_SET_ADDR_IDX(cmd, addr_cam->addr_cam_idx);
718 FWCMD_SET_ADDR_OFFSET(cmd, addr_cam->offset);
719 FWCMD_SET_ADDR_LEN(cmd, addr_cam->len);
721 FWCMD_SET_ADDR_VALID(cmd, addr_cam->valid);
726 FWCMD_SET_ADDR_ADDR_MASK(cmd, addr_cam->addr_mask);
727 FWCMD_SET_ADDR_MASK_SEL(cmd, addr_cam->mask_sel);
731 FWCMD_SET_ADDR_BSSID_CAM_IDX(cmd, addr_cam->bssid_cam_idx);
761 FWCMD_SET_ADDR_WAPI(cmd, addr_cam->wapi);
762 FWCMD_SET_ADDR_SEC_ENT_MODE(cmd, addr_cam->sec_ent_mode);
763 FWCMD_SET_ADDR_SEC_ENT0_KEYID(cmd, addr_cam->sec_ent_keyid[0]);
764 FWCMD_SET_ADDR_SEC_ENT1_KEYID(cmd, addr_cam->sec_ent_keyid[1]);
765 FWCMD_SET_ADDR_SEC_ENT2_KEYID(cmd, addr_cam->sec_ent_keyid[2]);
766 FWCMD_SET_ADDR_SEC_ENT3_KEYID(cmd, addr_cam->sec_ent_keyid[3]);
767 FWCMD_SET_ADDR_SEC_ENT4_KEYID(cmd, addr_cam->sec_ent_keyid[4]);
768 FWCMD_SET_ADDR_SEC_ENT5_KEYID(cmd, addr_cam->sec_ent_keyid[5]);
769 FWCMD_SET_ADDR_SEC_ENT6_KEYID(cmd, addr_cam->sec_ent_keyid[6]);
771 FWCMD_SET_ADDR_SEC_ENT_VALID(cmd, addr_cam->sec_cam_map[0] & 0xff);
772 FWCMD_SET_ADDR_SEC_ENT0(cmd, addr_cam->sec_ent[0]);
773 FWCMD_SET_ADDR_SEC_ENT1(cmd, addr_cam->sec_ent[1]);
774 FWCMD_SET_ADDR_SEC_ENT2(cmd, addr_cam->sec_ent[2]);
775 FWCMD_SET_ADDR_SEC_ENT3(cmd, addr_cam->sec_ent[3]);
776 FWCMD_SET_ADDR_SEC_ENT4(cmd, addr_cam->sec_ent[4]);
777 FWCMD_SET_ADDR_SEC_ENT5(cmd, addr_cam->sec_ent[5]);
778 FWCMD_SET_ADDR_SEC_ENT6(cmd, addr_cam->sec_ent[6]);
786 struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta);
794 h2c->w4 = le32_encode_bits(addr_cam->sec_ent_keyid[0],
796 le32_encode_bits(addr_cam->sec_ent_keyid[1],
798 le32_encode_bits(addr_cam->sec_ent_keyid[2],
800 le32_encode_bits(addr_cam->sec_ent_keyid[3],
802 le32_encode_bits(addr_cam->sec_ent_keyid[4],
804 le32_encode_bits(addr_cam->sec_ent_keyid[5],
806 le32_encode_bits(addr_cam->sec_ent_keyid[6],
816 h2c->w5 = le32_encode_bits(addr_cam->sec_cam_map[0] & 0xff,
818 le32_encode_bits(addr_cam->sec_ent[0],
820 le32_encode_bits(addr_cam->sec_ent[1],
822 le32_encode_bits(addr_cam->sec_ent[2],
829 h2c->w6 = le32_encode_bits(addr_cam->sec_ent[3],
831 le32_encode_bits(addr_cam->sec_ent[4],
833 le32_encode_bits(addr_cam->sec_ent[5],
835 le32_encode_bits(addr_cam->sec_ent[6],
865 struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta);
873 h2c->w4 = le32_encode_bits(addr_cam->sec_ent_keyid[0],
875 le32_encode_bits(addr_cam->sec_ent_keyid[1],
877 le32_encode_bits(addr_cam->sec_ent_keyid[2],
879 le32_encode_bits(addr_cam->sec_ent_keyid[3],
881 le32_encode_bits(addr_cam->sec_ent_keyid[4],
883 le32_encode_bits(addr_cam->sec_ent_keyid[5],
885 le32_encode_bits(addr_cam->sec_ent_keyid[6],
895 h2c->w5 = le32_encode_bits(addr_cam->sec_cam_map[0],
897 le32_encode_bits(addr_cam->sec_ent[0],
902 h2c->w6 = le32_encode_bits(addr_cam->sec_ent[1],
904 le32_encode_bits(addr_cam->sec_ent[2],
906 le32_encode_bits(addr_cam->sec_ent[3],
908 le32_encode_bits(addr_cam->sec_ent[4],
915 h2c->w7 = le32_encode_bits(addr_cam->sec_ent[5],
917 le32_encode_bits(addr_cam->sec_ent[6],