Lines Matching full:handle

16 static struct hns_mac_cb *hns_get_mac_cb(struct hnae_handle *handle)  in hns_get_mac_cb()  argument
18 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_get_mac_cb()
28 static struct hns_ppe_cb *hns_get_ppe_cb(struct hnae_handle *handle) in hns_get_ppe_cb() argument
32 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_get_ppe_cb()
138 static void hns_ae_put_handle(struct hnae_handle *handle) in hns_ae_put_handle() argument
140 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_put_handle()
143 for (i = 0; i < handle->q_num; i++) in hns_ae_put_handle()
144 hns_ae_get_ring_pair(handle->qs[i])->used_by_vf = 0; in hns_ae_put_handle()
149 static int hns_ae_wait_flow_down(struct hnae_handle *handle) in hns_ae_wait_flow_down() argument
157 for (i = 0; i < handle->q_num; i++) { in hns_ae_wait_flow_down()
158 ret = hns_rcb_wait_tx_ring_clean(handle->qs[i]); in hns_ae_wait_flow_down()
163 ppe_cb = hns_get_ppe_cb(handle); in hns_ae_wait_flow_down()
168 dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_wait_flow_down()
171 ret = hns_dsaf_wait_pkt_clean(dsaf_dev, handle->dport_id); in hns_ae_wait_flow_down()
175 vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_wait_flow_down()
184 static void hns_ae_ring_enable_all(struct hnae_handle *handle, int val) in hns_ae_ring_enable_all() argument
186 int q_num = handle->q_num; in hns_ae_ring_enable_all()
190 hns_rcb_ring_enable_hw(handle->qs[i], val); in hns_ae_ring_enable_all()
203 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(q->handle); in hns_ae_fini_queue()
209 static int hns_ae_set_mac_address(struct hnae_handle *handle, const void *p) in hns_ae_set_mac_address() argument
212 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_set_mac_address()
215 dev_err(handle->owner_dev, "is not valid ether addr !\n"); in hns_ae_set_mac_address()
219 ret = hns_mac_change_vf_addr(mac_cb, handle->vf_id, p); in hns_ae_set_mac_address()
221 dev_err(handle->owner_dev, in hns_ae_set_mac_address()
229 static int hns_ae_add_uc_address(struct hnae_handle *handle, in hns_ae_add_uc_address() argument
232 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_add_uc_address()
237 return hns_mac_add_uc_addr(mac_cb, handle->vf_id, addr); in hns_ae_add_uc_address()
240 static int hns_ae_rm_uc_address(struct hnae_handle *handle, in hns_ae_rm_uc_address() argument
243 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_rm_uc_address()
248 return hns_mac_rm_uc_addr(mac_cb, handle->vf_id, addr); in hns_ae_rm_uc_address()
251 static int hns_ae_set_multicast_one(struct hnae_handle *handle, void *addr) in hns_ae_set_multicast_one() argument
255 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_set_multicast_one()
265 dev_err(handle->owner_dev, in hns_ae_set_multicast_one()
271 ret = hns_mac_get_inner_port_num(mac_cb, handle->vf_id, &port_num); in hns_ae_set_multicast_one()
277 dev_err(handle->owner_dev, in hns_ae_set_multicast_one()
284 static int hns_ae_clr_multicast(struct hnae_handle *handle) in hns_ae_clr_multicast() argument
286 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_clr_multicast()
291 return hns_mac_clr_multicast(mac_cb, handle->vf_id); in hns_ae_clr_multicast()
294 static int hns_ae_set_mtu(struct hnae_handle *handle, int new_mtu) in hns_ae_set_mtu() argument
296 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_set_mtu()
315 for (i = 0; i < handle->q_num; i++) { in hns_ae_set_mtu()
316 q = handle->qs[i]; in hns_ae_set_mtu()
325 static void hns_ae_set_tso_stats(struct hnae_handle *handle, int enable) in hns_ae_set_tso_stats() argument
327 struct hns_ppe_cb *ppe_cb = hns_get_ppe_cb(handle); in hns_ae_set_tso_stats()
332 static int hns_ae_start(struct hnae_handle *handle) in hns_ae_start() argument
336 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_start()
342 for (k = 0; k < handle->q_num; k++) { in hns_ae_start()
344 hns_rcb_int_clr_hw(handle->qs[k], in hns_ae_start()
347 hns_rcbv2_int_clr_hw(handle->qs[k], in hns_ae_start()
350 hns_ae_ring_enable_all(handle, 1); in hns_ae_start()
358 static void hns_ae_stop(struct hnae_handle *handle) in hns_ae_stop() argument
360 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_stop()
363 hns_rcb_wait_fbd_clean(handle->qs, handle->q_num, RCB_INT_FLAG_TX); in hns_ae_stop()
371 hns_ae_ring_enable_all(handle, 0); in hns_ae_stop()
374 hns_rcb_wait_fbd_clean(handle->qs, handle->q_num, RCB_INT_FLAG_RX); in hns_ae_stop()
379 static void hns_ae_reset(struct hnae_handle *handle) in hns_ae_reset() argument
381 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_reset()
413 static int hns_ae_get_link_status(struct hnae_handle *handle) in hns_ae_get_link_status() argument
416 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_get_link_status()
423 static int hns_ae_get_mac_info(struct hnae_handle *handle, in hns_ae_get_mac_info() argument
426 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_get_mac_info()
431 static bool hns_ae_need_adjust_link(struct hnae_handle *handle, int speed, in hns_ae_need_adjust_link() argument
434 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_need_adjust_link()
439 static void hns_ae_adjust_link(struct hnae_handle *handle, int speed, in hns_ae_adjust_link() argument
442 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_adjust_link()
452 if (hns_ae_wait_flow_down(handle)) { in hns_ae_adjust_link()
472 static void hns_ae_get_pauseparam(struct hnae_handle *handle, in hns_ae_get_pauseparam() argument
475 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_get_pauseparam()
483 if (handle->port_type == HNAE_PORT_SERVICE) in hns_ae_get_pauseparam()
487 static void hns_ae_set_promisc_mode(struct hnae_handle *handle, u32 en) in hns_ae_set_promisc_mode() argument
489 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_set_promisc_mode()
491 hns_dsaf_set_promisc_mode(hns_ae_get_dsaf_dev(handle->dev), en); in hns_ae_set_promisc_mode()
495 static int hns_ae_set_pauseparam(struct hnae_handle *handle, in hns_ae_set_pauseparam() argument
498 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_set_pauseparam()
507 if (handle->port_type == HNAE_PORT_SERVICE) { in hns_ae_set_pauseparam()
517 static void hns_ae_get_coalesce_usecs(struct hnae_handle *handle, in hns_ae_get_coalesce_usecs() argument
521 container_of(handle->qs[0], struct ring_pair_cb, q); in hns_ae_get_coalesce_usecs()
529 static void hns_ae_get_max_coalesced_frames(struct hnae_handle *handle, in hns_ae_get_max_coalesced_frames() argument
533 container_of(handle->qs[0], struct ring_pair_cb, q); in hns_ae_get_max_coalesced_frames()
534 struct dsaf_device *dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_get_max_coalesced_frames()
537 handle->port_type == HNAE_PORT_DEBUG) in hns_ae_get_max_coalesced_frames()
547 static int hns_ae_set_coalesce_usecs(struct hnae_handle *handle, in hns_ae_set_coalesce_usecs() argument
551 container_of(handle->qs[0], struct ring_pair_cb, q); in hns_ae_set_coalesce_usecs()
557 static int hns_ae_set_coalesce_frames(struct hnae_handle *handle, in hns_ae_set_coalesce_frames() argument
562 container_of(handle->qs[0], struct ring_pair_cb, q); in hns_ae_set_coalesce_frames()
563 struct dsaf_device *dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_set_coalesce_frames()
566 handle->port_type == HNAE_PORT_DEBUG) { in hns_ae_set_coalesce_frames()
587 static void hns_ae_get_coalesce_range(struct hnae_handle *handle, in hns_ae_get_coalesce_range() argument
595 assert(handle); in hns_ae_get_coalesce_range()
597 dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_get_coalesce_range()
603 handle->port_type == HNAE_PORT_DEBUG) in hns_ae_get_coalesce_range()
618 static void hns_ae_update_stats(struct hnae_handle *handle, in hns_ae_update_stats() argument
627 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_update_stats()
632 dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_update_stats()
636 ppe_cb = hns_get_ppe_cb(handle); in hns_ae_update_stats()
637 mac_cb = hns_get_mac_cb(handle); in hns_ae_update_stats()
639 for (idx = 0; idx < handle->q_num; idx++) { in hns_ae_update_stats()
640 queue = handle->qs[idx]; in hns_ae_update_stats()
701 static void hns_ae_get_stats(struct hnae_handle *handle, u64 *data) in hns_ae_get_stats() argument
709 if (!handle || !data) { in hns_ae_get_stats()
710 pr_err("hns_ae_get_stats NULL handle or data pointer!\n"); in hns_ae_get_stats()
714 vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_get_stats()
715 mac_cb = hns_get_mac_cb(handle); in hns_ae_get_stats()
716 ppe_cb = hns_get_ppe_cb(handle); in hns_ae_get_stats()
718 for (idx = 0; idx < handle->q_num; idx++) { in hns_ae_get_stats()
719 hns_rcb_get_stats(handle->qs[idx], p); in hns_ae_get_stats()
733 static void hns_ae_get_strings(struct hnae_handle *handle, u32 stringset, in hns_ae_get_strings() argument
740 struct dsaf_device *dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_get_strings()
743 assert(handle); in hns_ae_get_strings()
745 vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_get_strings()
747 mac_cb = hns_get_mac_cb(handle); in hns_ae_get_strings()
748 ppe_cb = hns_get_ppe_cb(handle); in hns_ae_get_strings()
750 for (idx = 0; idx < handle->q_num; idx++) in hns_ae_get_strings()
760 static int hns_ae_get_sset_count(struct hnae_handle *handle, int stringset) in hns_ae_get_sset_count() argument
764 struct dsaf_device *dsaf_dev = hns_ae_get_dsaf_dev(handle->dev); in hns_ae_get_sset_count()
766 assert(handle); in hns_ae_get_sset_count()
768 mac_cb = hns_get_mac_cb(handle); in hns_ae_get_sset_count()
770 sset_count += hns_rcb_get_ring_sset_count(stringset) * handle->q_num; in hns_ae_get_sset_count()
780 static int hns_ae_config_loopback(struct hnae_handle *handle, in hns_ae_config_loopback() argument
784 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_config_loopback()
785 struct hns_mac_cb *mac_cb = hns_get_mac_cb(handle); in hns_ae_config_loopback()
806 static void hns_ae_update_led_status(struct hnae_handle *handle) in hns_ae_update_led_status() argument
810 assert(handle); in hns_ae_update_led_status()
811 mac_cb = hns_get_mac_cb(handle); in hns_ae_update_led_status()
818 static int hns_ae_cpld_set_led_id(struct hnae_handle *handle, in hns_ae_cpld_set_led_id() argument
823 assert(handle); in hns_ae_cpld_set_led_id()
825 mac_cb = hns_get_mac_cb(handle); in hns_ae_cpld_set_led_id()
830 static void hns_ae_get_regs(struct hnae_handle *handle, void *data) in hns_ae_get_regs() argument
834 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_get_regs()
835 struct hns_ppe_cb *ppe_cb = hns_get_ppe_cb(handle); in hns_ae_get_regs()
843 for (i = 0; i < handle->q_num; i++) { in hns_ae_get_regs()
844 hns_rcb_get_ring_regs(handle->qs[i], p); in hns_ae_get_regs()
855 static int hns_ae_get_regs_len(struct hnae_handle *handle) in hns_ae_get_regs_len() argument
858 struct hnae_vf_cb *vf_cb = hns_ae_get_vf_cb(handle); in hns_ae_get_regs_len()
862 total_num += hns_rcb_get_ring_regs_count() * handle->q_num; in hns_ae_get_regs_len()
871 static u32 hns_ae_get_rss_key_size(struct hnae_handle *handle) in hns_ae_get_rss_key_size() argument
876 static u32 hns_ae_get_rss_indir_size(struct hnae_handle *handle) in hns_ae_get_rss_indir_size() argument
881 static int hns_ae_get_rss(struct hnae_handle *handle, u32 *indir, u8 *key, in hns_ae_get_rss() argument
884 struct hns_ppe_cb *ppe_cb = hns_get_ppe_cb(handle); in hns_ae_get_rss()
902 static int hns_ae_set_rss(struct hnae_handle *handle, const u32 *indir, in hns_ae_set_rss() argument
905 struct hns_ppe_cb *ppe_cb = hns_get_ppe_cb(handle); in hns_ae_set_rss()