Lines Matching full:pf
10 static int otx2_dmacflt_do_add(struct otx2_nic *pf, const u8 *mac, in otx2_dmacflt_do_add() argument
17 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_do_add()
19 req = otx2_mbox_alloc_msg_cgx_mac_addr_add(&pf->mbox); in otx2_dmacflt_do_add()
21 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_do_add()
26 err = otx2_sync_mbox_msg(&pf->mbox); in otx2_dmacflt_do_add()
30 otx2_mbox_get_rsp(&pf->mbox.mbox, 0, &req->hdr); in otx2_dmacflt_do_add()
32 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_do_add()
39 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_do_add()
43 static int otx2_dmacflt_add_pfmac(struct otx2_nic *pf, u32 *dmac_index) in otx2_dmacflt_add_pfmac() argument
49 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_add_pfmac()
51 req = otx2_mbox_alloc_msg_cgx_mac_addr_set(&pf->mbox); in otx2_dmacflt_add_pfmac()
53 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_add_pfmac()
59 ether_addr_copy(req->mac_addr, pf->netdev->dev_addr); in otx2_dmacflt_add_pfmac()
60 err = otx2_sync_mbox_msg(&pf->mbox); in otx2_dmacflt_add_pfmac()
66 otx2_mbox_get_rsp(&pf->mbox.mbox, 0, &req->hdr); in otx2_dmacflt_add_pfmac()
75 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_add_pfmac()
79 int otx2_dmacflt_add(struct otx2_nic *pf, const u8 *mac, u32 bit_pos) in otx2_dmacflt_add() argument
86 dmacindex = &pf->flow_cfg->bmap_to_dmacindex[bit_pos]; in otx2_dmacflt_add()
88 if (ether_addr_equal(mac, pf->netdev->dev_addr)) in otx2_dmacflt_add()
89 return otx2_dmacflt_add_pfmac(pf, dmacindex); in otx2_dmacflt_add()
91 return otx2_dmacflt_do_add(pf, mac, dmacindex); in otx2_dmacflt_add()
115 static int otx2_dmacflt_remove_pfmac(struct otx2_nic *pf, u32 dmac_index) in otx2_dmacflt_remove_pfmac() argument
120 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_remove_pfmac()
121 req = otx2_mbox_alloc_msg_cgx_mac_addr_reset(&pf->mbox); in otx2_dmacflt_remove_pfmac()
123 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_remove_pfmac()
128 err = otx2_sync_mbox_msg(&pf->mbox); in otx2_dmacflt_remove_pfmac()
130 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_remove_pfmac()
134 int otx2_dmacflt_remove(struct otx2_nic *pf, const u8 *mac, in otx2_dmacflt_remove() argument
137 u32 dmacindex = pf->flow_cfg->bmap_to_dmacindex[bit_pos]; in otx2_dmacflt_remove()
139 if (ether_addr_equal(mac, pf->netdev->dev_addr)) in otx2_dmacflt_remove()
140 return otx2_dmacflt_remove_pfmac(pf, dmacindex); in otx2_dmacflt_remove()
142 return otx2_dmacflt_do_remove(pf, mac, dmacindex); in otx2_dmacflt_remove()
149 int otx2_dmacflt_get_max_cnt(struct otx2_nic *pf) in otx2_dmacflt_get_max_cnt() argument
155 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_get_max_cnt()
156 msg = otx2_mbox_alloc_msg_cgx_mac_max_entries_get(&pf->mbox); in otx2_dmacflt_get_max_cnt()
159 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_get_max_cnt()
163 err = otx2_sync_mbox_msg(&pf->mbox); in otx2_dmacflt_get_max_cnt()
168 otx2_mbox_get_rsp(&pf->mbox.mbox, 0, &msg->hdr); in otx2_dmacflt_get_max_cnt()
175 pf->flow_cfg->dmacflt_max_flows = rsp->max_dmac_filters; in otx2_dmacflt_get_max_cnt()
178 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_get_max_cnt()
182 int otx2_dmacflt_update(struct otx2_nic *pf, u8 *mac, u32 bit_pos) in otx2_dmacflt_update() argument
188 mutex_lock(&pf->mbox.lock); in otx2_dmacflt_update()
190 req = otx2_mbox_alloc_msg_cgx_mac_addr_update(&pf->mbox); in otx2_dmacflt_update()
193 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_update()
198 req->index = pf->flow_cfg->bmap_to_dmacindex[bit_pos]; in otx2_dmacflt_update()
202 rc = otx2_sync_mbox_msg(&pf->mbox); in otx2_dmacflt_update()
207 otx2_mbox_get_rsp(&pf->mbox.mbox, 0, &req->hdr); in otx2_dmacflt_update()
213 pf->flow_cfg->bmap_to_dmacindex[bit_pos] = rsp->index; in otx2_dmacflt_update()
216 mutex_unlock(&pf->mbox.lock); in otx2_dmacflt_update()