Lines Matching refs:vdev
58 void *vnic_dev_priv(struct vnic_dev *vdev) in vnic_dev_priv() argument
60 return vdev->priv; in vnic_dev_priv()
63 static int vnic_dev_discover_res(struct vnic_dev *vdev, in vnic_dev_discover_res() argument
129 vdev->res[type].count = count; in vnic_dev_discover_res()
130 vdev->res[type].vaddr = (char __iomem *)bar->vaddr + bar_offset; in vnic_dev_discover_res()
136 unsigned int vnic_dev_get_res_count(struct vnic_dev *vdev, in vnic_dev_get_res_count() argument
139 return vdev->res[type].count; in vnic_dev_get_res_count()
142 void __iomem *vnic_dev_get_res(struct vnic_dev *vdev, enum vnic_res_type type, in vnic_dev_get_res() argument
145 if (!vdev->res[type].vaddr) in vnic_dev_get_res()
153 return (char __iomem *)vdev->res[type].vaddr + in vnic_dev_get_res()
156 return (char __iomem *)vdev->res[type].vaddr; in vnic_dev_get_res()
193 int vnic_dev_alloc_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring, in vnic_dev_alloc_desc_ring() argument
198 ring->descs_unaligned = pci_alloc_consistent(vdev->pdev, in vnic_dev_alloc_desc_ring()
221 void vnic_dev_free_desc_ring(struct vnic_dev *vdev, struct vnic_dev_ring *ring) in vnic_dev_free_desc_ring() argument
224 pci_free_consistent(vdev->pdev, in vnic_dev_free_desc_ring()
232 int vnic_dev_cmd(struct vnic_dev *vdev, enum vnic_devcmd_cmd cmd, in vnic_dev_cmd() argument
235 struct vnic_devcmd __iomem *devcmd = vdev->devcmd; in vnic_dev_cmd()
293 int vnic_dev_fw_info(struct vnic_dev *vdev, in vnic_dev_fw_info() argument
300 if (!vdev->fw_info) { in vnic_dev_fw_info()
301 vdev->fw_info = pci_alloc_consistent(vdev->pdev, in vnic_dev_fw_info()
303 &vdev->fw_info_pa); in vnic_dev_fw_info()
304 if (!vdev->fw_info) in vnic_dev_fw_info()
307 a0 = vdev->fw_info_pa; in vnic_dev_fw_info()
310 err = vnic_dev_cmd(vdev, CMD_MCPU_FW_INFO, &a0, &a1, wait); in vnic_dev_fw_info()
313 *fw_info = vdev->fw_info; in vnic_dev_fw_info()
318 int vnic_dev_spec(struct vnic_dev *vdev, unsigned int offset, unsigned int size, in vnic_dev_spec() argument
328 err = vnic_dev_cmd(vdev, CMD_DEV_SPEC, &a0, &a1, wait); in vnic_dev_spec()
351 int vnic_dev_stats_clear(struct vnic_dev *vdev) in vnic_dev_stats_clear() argument
355 return vnic_dev_cmd(vdev, CMD_STATS_CLEAR, &a0, &a1, wait); in vnic_dev_stats_clear()
358 int vnic_dev_stats_dump(struct vnic_dev *vdev, struct vnic_stats **stats) in vnic_dev_stats_dump() argument
363 if (!vdev->stats) { in vnic_dev_stats_dump()
364 vdev->stats = pci_alloc_consistent(vdev->pdev, in vnic_dev_stats_dump()
365 sizeof(struct vnic_stats), &vdev->stats_pa); in vnic_dev_stats_dump()
366 if (!vdev->stats) in vnic_dev_stats_dump()
370 *stats = vdev->stats; in vnic_dev_stats_dump()
371 a0 = vdev->stats_pa; in vnic_dev_stats_dump()
374 return vnic_dev_cmd(vdev, CMD_STATS_DUMP, &a0, &a1, wait); in vnic_dev_stats_dump()
377 int vnic_dev_close(struct vnic_dev *vdev) in vnic_dev_close() argument
381 return vnic_dev_cmd(vdev, CMD_CLOSE, &a0, &a1, wait); in vnic_dev_close()
384 int vnic_dev_enable(struct vnic_dev *vdev) in vnic_dev_enable() argument
388 return vnic_dev_cmd(vdev, CMD_ENABLE, &a0, &a1, wait); in vnic_dev_enable()
391 int vnic_dev_disable(struct vnic_dev *vdev) in vnic_dev_disable() argument
395 return vnic_dev_cmd(vdev, CMD_DISABLE, &a0, &a1, wait); in vnic_dev_disable()
398 int vnic_dev_open(struct vnic_dev *vdev, int arg) in vnic_dev_open() argument
402 return vnic_dev_cmd(vdev, CMD_OPEN, &a0, &a1, wait); in vnic_dev_open()
405 int vnic_dev_open_done(struct vnic_dev *vdev, int *done) in vnic_dev_open_done() argument
413 err = vnic_dev_cmd(vdev, CMD_OPEN_STATUS, &a0, &a1, wait); in vnic_dev_open_done()
422 int vnic_dev_soft_reset(struct vnic_dev *vdev, int arg) in vnic_dev_soft_reset() argument
426 return vnic_dev_cmd(vdev, CMD_SOFT_RESET, &a0, &a1, wait); in vnic_dev_soft_reset()
429 int vnic_dev_soft_reset_done(struct vnic_dev *vdev, int *done) in vnic_dev_soft_reset_done() argument
437 err = vnic_dev_cmd(vdev, CMD_SOFT_RESET_STATUS, &a0, &a1, wait); in vnic_dev_soft_reset_done()
446 int vnic_dev_hang_notify(struct vnic_dev *vdev) in vnic_dev_hang_notify() argument
450 return vnic_dev_cmd(vdev, CMD_HANG_NOTIFY, &a0, &a1, wait); in vnic_dev_hang_notify()
453 int vnic_dev_mac_addr(struct vnic_dev *vdev, u8 *mac_addr) in vnic_dev_mac_addr() argument
462 err = vnic_dev_cmd(vdev, CMD_MAC_ADDR, &a0, &a1, wait); in vnic_dev_mac_addr()
472 void vnic_dev_packet_filter(struct vnic_dev *vdev, int directed, int multicast, in vnic_dev_packet_filter() argument
485 err = vnic_dev_cmd(vdev, CMD_PACKET_FILTER, &a0, &a1, wait); in vnic_dev_packet_filter()
490 void vnic_dev_add_addr(struct vnic_dev *vdev, u8 *addr) in vnic_dev_add_addr() argument
500 err = vnic_dev_cmd(vdev, CMD_ADDR_ADD, &a0, &a1, wait); in vnic_dev_add_addr()
508 void vnic_dev_del_addr(struct vnic_dev *vdev, u8 *addr) in vnic_dev_del_addr() argument
518 err = vnic_dev_cmd(vdev, CMD_ADDR_DEL, &a0, &a1, wait); in vnic_dev_del_addr()
526 int vnic_dev_notify_set(struct vnic_dev *vdev, u16 intr) in vnic_dev_notify_set() argument
531 if (!vdev->notify) { in vnic_dev_notify_set()
532 vdev->notify = pci_alloc_consistent(vdev->pdev, in vnic_dev_notify_set()
534 &vdev->notify_pa); in vnic_dev_notify_set()
535 if (!vdev->notify) in vnic_dev_notify_set()
539 a0 = vdev->notify_pa; in vnic_dev_notify_set()
543 return vnic_dev_cmd(vdev, CMD_NOTIFY, &a0, &a1, wait); in vnic_dev_notify_set()
546 void vnic_dev_notify_unset(struct vnic_dev *vdev) in vnic_dev_notify_unset() argument
555 vnic_dev_cmd(vdev, CMD_NOTIFY, &a0, &a1, wait); in vnic_dev_notify_unset()
558 static int vnic_dev_notify_ready(struct vnic_dev *vdev) in vnic_dev_notify_ready() argument
565 if (!vdev->notify) in vnic_dev_notify_ready()
570 memcpy(&vdev->notify_copy, vdev->notify, in vnic_dev_notify_ready()
572 words = (u32 *)&vdev->notify_copy; in vnic_dev_notify_ready()
580 int vnic_dev_init(struct vnic_dev *vdev, int arg) in vnic_dev_init() argument
584 return vnic_dev_cmd(vdev, CMD_INIT, &a0, &a1, wait); in vnic_dev_init()
587 u16 vnic_dev_set_default_vlan(struct vnic_dev *vdev, u16 new_default_vlan) in vnic_dev_set_default_vlan() argument
593 old_vlan = vnic_dev_cmd(vdev, CMD_SET_DEFAULT_VLAN, &a0, &a1, wait); in vnic_dev_set_default_vlan()
597 int vnic_dev_link_status(struct vnic_dev *vdev) in vnic_dev_link_status() argument
599 if (vdev->linkstatus) in vnic_dev_link_status()
600 return *vdev->linkstatus; in vnic_dev_link_status()
602 if (!vnic_dev_notify_ready(vdev)) in vnic_dev_link_status()
605 return vdev->notify_copy.link_state; in vnic_dev_link_status()
608 u32 vnic_dev_port_speed(struct vnic_dev *vdev) in vnic_dev_port_speed() argument
610 if (!vnic_dev_notify_ready(vdev)) in vnic_dev_port_speed()
613 return vdev->notify_copy.port_speed; in vnic_dev_port_speed()
616 u32 vnic_dev_msg_lvl(struct vnic_dev *vdev) in vnic_dev_msg_lvl() argument
618 if (!vnic_dev_notify_ready(vdev)) in vnic_dev_msg_lvl()
621 return vdev->notify_copy.msglvl; in vnic_dev_msg_lvl()
624 u32 vnic_dev_mtu(struct vnic_dev *vdev) in vnic_dev_mtu() argument
626 if (!vnic_dev_notify_ready(vdev)) in vnic_dev_mtu()
629 return vdev->notify_copy.mtu; in vnic_dev_mtu()
632 u32 vnic_dev_link_down_cnt(struct vnic_dev *vdev) in vnic_dev_link_down_cnt() argument
634 if (!vnic_dev_notify_ready(vdev)) in vnic_dev_link_down_cnt()
637 return vdev->notify_copy.link_down_cnt; in vnic_dev_link_down_cnt()
640 void vnic_dev_set_intr_mode(struct vnic_dev *vdev, in vnic_dev_set_intr_mode() argument
643 vdev->intr_mode = intr_mode; in vnic_dev_set_intr_mode()
647 struct vnic_dev *vdev) in vnic_dev_get_intr_mode() argument
649 return vdev->intr_mode; in vnic_dev_get_intr_mode()
652 void vnic_dev_unregister(struct vnic_dev *vdev) in vnic_dev_unregister() argument
654 if (vdev) { in vnic_dev_unregister()
655 if (vdev->notify) in vnic_dev_unregister()
656 pci_free_consistent(vdev->pdev, in vnic_dev_unregister()
658 vdev->notify, in vnic_dev_unregister()
659 vdev->notify_pa); in vnic_dev_unregister()
660 if (vdev->linkstatus) in vnic_dev_unregister()
661 pci_free_consistent(vdev->pdev, in vnic_dev_unregister()
663 vdev->linkstatus, in vnic_dev_unregister()
664 vdev->linkstatus_pa); in vnic_dev_unregister()
665 if (vdev->stats) in vnic_dev_unregister()
666 pci_free_consistent(vdev->pdev, in vnic_dev_unregister()
668 vdev->stats, vdev->stats_pa); in vnic_dev_unregister()
669 if (vdev->fw_info) in vnic_dev_unregister()
670 pci_free_consistent(vdev->pdev, in vnic_dev_unregister()
672 vdev->fw_info, vdev->fw_info_pa); in vnic_dev_unregister()
673 kfree(vdev); in vnic_dev_unregister()
677 struct vnic_dev *vnic_dev_register(struct vnic_dev *vdev, in vnic_dev_register() argument
680 if (!vdev) { in vnic_dev_register()
681 vdev = kzalloc(sizeof(struct vnic_dev), GFP_KERNEL); in vnic_dev_register()
682 if (!vdev) in vnic_dev_register()
686 vdev->priv = priv; in vnic_dev_register()
687 vdev->pdev = pdev; in vnic_dev_register()
689 if (vnic_dev_discover_res(vdev, bar)) in vnic_dev_register()
692 vdev->devcmd = vnic_dev_get_res(vdev, RES_TYPE_DEVCMD, 0); in vnic_dev_register()
693 if (!vdev->devcmd) in vnic_dev_register()
696 return vdev; in vnic_dev_register()
699 vnic_dev_unregister(vdev); in vnic_dev_register()