Lines Matching refs:mdev

188 		rc = mlx4_flow_detach(priv->mdev->dev, filter->reg_id);  in mlx4_en_filter_work()
193 rc = mlx4_flow_attach(priv->mdev->dev, &rule, &filter->reg_id); in mlx4_en_filter_work()
259 rc = mlx4_flow_detach(priv->mdev->dev, filter->reg_id); in mlx4_en_filter_free()
341 queue_work(priv->mdev->workqueue, &filter->work); in mlx4_en_filter_rfs()
406 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_vlan_rx_add_vid() local
418 mutex_lock(&mdev->state_lock); in mlx4_en_vlan_rx_add_vid()
419 if (mdev->device_up && priv->port_up) { in mlx4_en_vlan_rx_add_vid()
420 err = mlx4_SET_VLAN_FLTR(mdev->dev, priv); in mlx4_en_vlan_rx_add_vid()
424 if (mlx4_register_vlan(mdev->dev, priv->port, vid, &idx)) in mlx4_en_vlan_rx_add_vid()
426 mutex_unlock(&mdev->state_lock); in mlx4_en_vlan_rx_add_vid()
433 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_vlan_rx_kill_vid() local
444 mutex_lock(&mdev->state_lock); in mlx4_en_vlan_rx_kill_vid()
445 mlx4_unregister_vlan(mdev->dev, priv->port, vid); in mlx4_en_vlan_rx_kill_vid()
447 if (mdev->device_up && priv->port_up) { in mlx4_en_vlan_rx_kill_vid()
448 err = mlx4_SET_VLAN_FLTR(mdev->dev, priv); in mlx4_en_vlan_rx_kill_vid()
452 mutex_unlock(&mdev->state_lock); in mlx4_en_vlan_rx_kill_vid()
461 if (priv->mdev->dev->caps.tunnel_offload_mode != MLX4_TUNNEL_OFFLOAD_MODE_VXLAN || in mlx4_en_tunnel_steer_add()
462 priv->mdev->dev->caps.dmfs_high_steer_mode == MLX4_STEERING_DMFS_A0_STATIC) in mlx4_en_tunnel_steer_add()
465 err = mlx4_tunnel_steer_add(priv->mdev->dev, addr, priv->port, qpn, in mlx4_en_tunnel_steer_add()
478 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_uc_steer_add() local
479 struct mlx4_dev *dev = mdev->dev; in mlx4_en_uc_steer_add()
530 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_uc_steer_release() local
531 struct mlx4_dev *dev = mdev->dev; in mlx4_en_uc_steer_release()
556 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_get_qp() local
557 struct mlx4_dev *dev = mdev->dev; in mlx4_en_get_qp()
592 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_put_qp() local
593 struct mlx4_dev *dev = mdev->dev; in mlx4_en_put_qp()
738 queue_work(priv->mdev->workqueue, &priv->rx_mode_task); in mlx4_en_set_rx_mode()
742 struct mlx4_en_dev *mdev) in mlx4_en_set_promisc_mode() argument
750 switch (mdev->dev->caps.steering_mode) { in mlx4_en_set_promisc_mode()
752 err = mlx4_flow_steer_promisc_add(mdev->dev, in mlx4_en_set_promisc_mode()
762 err = mlx4_unicast_promisc_add(mdev->dev, in mlx4_en_set_promisc_mode()
772 err = mlx4_multicast_promisc_add(mdev->dev, in mlx4_en_set_promisc_mode()
782 err = mlx4_SET_PORT_qpn_calc(mdev->dev, in mlx4_en_set_promisc_mode()
792 err = mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, in mlx4_en_set_promisc_mode()
800 struct mlx4_en_dev *mdev) in mlx4_en_clear_promisc_mode() argument
807 switch (mdev->dev->caps.steering_mode) { in mlx4_en_clear_promisc_mode()
809 err = mlx4_flow_steer_promisc_remove(mdev->dev, in mlx4_en_clear_promisc_mode()
818 err = mlx4_unicast_promisc_remove(mdev->dev, in mlx4_en_clear_promisc_mode()
825 err = mlx4_multicast_promisc_remove(mdev->dev, in mlx4_en_clear_promisc_mode()
835 err = mlx4_SET_PORT_qpn_calc(mdev->dev, in mlx4_en_clear_promisc_mode()
846 struct mlx4_en_dev *mdev) in mlx4_en_do_multicast() argument
858 err = mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, in mlx4_en_do_multicast()
865 switch (mdev->dev->caps.steering_mode) { in mlx4_en_do_multicast()
867 err = mlx4_flow_steer_promisc_add(mdev->dev, in mlx4_en_do_multicast()
874 err = mlx4_multicast_promisc_add(mdev->dev, in mlx4_en_do_multicast()
889 switch (mdev->dev->caps.steering_mode) { in mlx4_en_do_multicast()
891 err = mlx4_flow_steer_promisc_remove(mdev->dev, in mlx4_en_do_multicast()
897 err = mlx4_multicast_promisc_remove(mdev->dev, in mlx4_en_do_multicast()
910 err = mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, in mlx4_en_do_multicast()
916 mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, ETH_BCAST, in mlx4_en_do_multicast()
924 mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, in mlx4_en_do_multicast()
927 err = mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, in mlx4_en_do_multicast()
939 err = mlx4_multicast_detach(mdev->dev, in mlx4_en_do_multicast()
948 err = mlx4_flow_detach(priv->mdev->dev, addr_list->tunnel_reg_id); in mlx4_en_do_multicast()
961 err = mlx4_multicast_attach(mdev->dev, in mlx4_en_do_multicast()
981 struct mlx4_en_dev *mdev) in mlx4_en_do_unicast() argument
1013 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_do_set_rx_mode() local
1016 mutex_lock(&mdev->state_lock); in mlx4_en_do_set_rx_mode()
1017 if (!mdev->device_up) { in mlx4_en_do_set_rx_mode()
1025 if (!mlx4_en_QUERY_PORT(mdev, priv->port)) { in mlx4_en_do_set_rx_mode()
1040 mlx4_en_do_unicast(priv, dev, mdev); in mlx4_en_do_set_rx_mode()
1045 mlx4_en_set_promisc_mode(priv, mdev); in mlx4_en_do_set_rx_mode()
1048 mlx4_en_clear_promisc_mode(priv, mdev); in mlx4_en_do_set_rx_mode()
1052 mlx4_en_do_multicast(priv, dev, mdev); in mlx4_en_do_set_rx_mode()
1054 mutex_unlock(&mdev->state_lock); in mlx4_en_do_set_rx_mode()
1060 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_watchdog_timeout() local
1063 queue_work(mdev->workqueue, &priv->watchdog_task); in mlx4_en_watchdog_timeout()
1185 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_do_get_stats() local
1188 mutex_lock(&mdev->state_lock); in mlx4_en_do_get_stats()
1189 if (mdev->device_up) { in mlx4_en_do_get_stats()
1191 if (mlx4_is_slave(mdev->dev)) in mlx4_en_do_get_stats()
1192 err = mlx4_en_get_vport_stats(mdev, priv->port); in mlx4_en_do_get_stats()
1194 err = mlx4_en_DUMP_ETH_STATS(mdev, priv->port, 0); in mlx4_en_do_get_stats()
1201 queue_delayed_work(mdev->workqueue, &priv->stats_task, STATS_DELAY); in mlx4_en_do_get_stats()
1203 mutex_unlock(&mdev->state_lock); in mlx4_en_do_get_stats()
1214 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_service_task() local
1216 mutex_lock(&mdev->state_lock); in mlx4_en_service_task()
1217 if (mdev->device_up) { in mlx4_en_service_task()
1218 queue_delayed_work(mdev->workqueue, &priv->service_task, in mlx4_en_service_task()
1221 mutex_unlock(&mdev->state_lock); in mlx4_en_service_task()
1228 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_linkstate() local
1231 mutex_lock(&mdev->state_lock); in mlx4_en_linkstate()
1248 if (mlx4_en_QUERY_PORT(priv->mdev, priv->port)) in mlx4_en_linkstate()
1257 mutex_unlock(&mdev->state_lock); in mlx4_en_linkstate()
1264 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_start_port() local
1326 mdev->mac_removed[priv->port] = 0; in mlx4_en_start_port()
1329 mlx4_get_default_counter_index(mdev->dev, priv->port); in mlx4_en_start_port()
1380 err = mlx4_SET_PORT_general(mdev->dev, priv->port, in mlx4_en_start_port()
1392 err = mlx4_SET_PORT_qpn_calc(mdev->dev, priv->port, priv->base_qpn, 0); in mlx4_en_start_port()
1400 err = mlx4_INIT_PORT(mdev->dev, priv->port); in mlx4_en_start_port()
1409 if (mlx4_multicast_attach(mdev->dev, &priv->rss_map.indir_qp, mc_list, in mlx4_en_start_port()
1412 mlx4_warn(mdev, "Failed Attaching Broadcast\n"); in mlx4_en_start_port()
1418 queue_work(mdev->workqueue, &priv->rx_mode_task); in mlx4_en_start_port()
1457 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_stop_port() local
1472 mlx4_CLOSE_PORT(mdev->dev, priv->port); in mlx4_en_stop_port()
1476 priv->counter_index = MLX4_SINK_COUNTER_INDEX(mdev->dev); in mlx4_en_stop_port()
1479 if (mdev->dev->caps.steering_mode == in mlx4_en_stop_port()
1483 mlx4_flow_steer_promisc_remove(mdev->dev, in mlx4_en_stop_port()
1486 mlx4_flow_steer_promisc_remove(mdev->dev, in mlx4_en_stop_port()
1493 mlx4_unicast_promisc_remove(mdev->dev, priv->base_qpn, in mlx4_en_stop_port()
1498 mlx4_multicast_promisc_remove(mdev->dev, priv->base_qpn, in mlx4_en_stop_port()
1519 mlx4_multicast_detach(mdev->dev, &priv->rss_map.indir_qp, mc_list, in mlx4_en_stop_port()
1524 mlx4_multicast_detach(mdev->dev, &priv->rss_map.indir_qp, in mlx4_en_stop_port()
1534 mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, 0, 1, MLX4_MCAST_CONFIG); in mlx4_en_stop_port()
1552 mdev->mac_removed[priv->port] = 1; in mlx4_en_stop_port()
1570 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_restart() local
1593 mutex_lock(&mdev->state_lock); in mlx4_en_restart()
1601 mutex_unlock(&mdev->state_lock); in mlx4_en_restart()
1607 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_clear_stats() local
1610 if (!mlx4_is_slave(mdev->dev)) in mlx4_en_clear_stats()
1611 if (mlx4_en_DUMP_ETH_STATS(mdev, priv->port, 1)) in mlx4_en_clear_stats()
1637 struct mlx4_en_dev *mdev; in mlx4_en_open() local
1642 mdev = priv->mdev; in mlx4_en_open()
1646 mutex_lock(&mdev->state_lock); in mlx4_en_open()
1648 if (!mdev->device_up) { in mlx4_en_open()
1661 mutex_unlock(&mdev->state_lock); in mlx4_en_open()
1766 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_destroy_netdev() local
1781 mutex_lock(&mdev->state_lock); in mlx4_en_destroy_netdev()
1783 mutex_unlock(&mdev->state_lock); in mlx4_en_destroy_netdev()
1790 mlx4_free_hwq_res(mdev->dev, &priv->res, MLX4_EN_PAGE_SIZE); in mlx4_en_destroy_netdev()
1795 flush_workqueue(mdev->workqueue); in mlx4_en_destroy_netdev()
1799 mutex_lock(&mdev->state_lock); in mlx4_en_destroy_netdev()
1800 mdev->pndev[priv->port] = NULL; in mlx4_en_destroy_netdev()
1801 mutex_unlock(&mdev->state_lock); in mlx4_en_destroy_netdev()
1821 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_change_mtu() local
1832 mutex_lock(&mdev->state_lock); in mlx4_en_change_mtu()
1835 if (!mdev->device_up) { in mlx4_en_change_mtu()
1845 queue_work(mdev->workqueue, &priv->watchdog_task); in mlx4_en_change_mtu()
1849 mutex_unlock(&mdev->state_lock); in mlx4_en_change_mtu()
1941 error = -mlx4_SET_PORT_general(priv->mdev->dev, priv->port, in mlx4_en_media_change()
1952 struct mlx4_en_dev *mdev; in mlx4_en_ioctl() local
1969 mdev = priv->mdev; in mlx4_en_ioctl()
1979 mutex_lock(&mdev->state_lock); in mlx4_en_ioctl()
1981 mutex_unlock(&mdev->state_lock); in mlx4_en_ioctl()
1986 mutex_lock(&mdev->state_lock); in mlx4_en_ioctl()
1991 mutex_unlock(&mdev->state_lock); in mlx4_en_ioctl()
2003 mutex_lock(&mdev->state_lock); in mlx4_en_ioctl()
2067 mutex_unlock(&mdev->state_lock); in mlx4_en_ioctl()
2085 error = mlx4_get_module_info(mdev->dev, priv->port, in mlx4_en_ioctl()
2098 mutex_lock(&mdev->state_lock); in mlx4_en_ioctl()
2104 mutex_unlock(&mdev->state_lock); in mlx4_en_ioctl()
2108 mutex_lock(&mdev->state_lock); in mlx4_en_ioctl()
2110 mutex_unlock(&mdev->state_lock); in mlx4_en_ioctl()
2137 int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, in mlx4_en_init_netdev() argument
2155 mdev->pdev->dev.bsddev) * MLX4_MAX_PORTS) + port - 1); in mlx4_en_init_netdev()
2182 priv->mdev = mdev; in mlx4_en_init_netdev()
2183 priv->ddev = &mdev->pdev->dev; in mlx4_en_init_netdev()
2189 priv->num_tx_rings_p_up = mdev->profile.num_tx_rings_p_up; in mlx4_en_init_netdev()
2205 priv->cqe_factor = (mdev->dev->caps.cqe_size == 64) ? 1 : 0; in mlx4_en_init_netdev()
2211 if (!mlx4_is_slave(priv->mdev->dev)) { in mlx4_en_init_netdev()
2214 if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ETS_CFG) { in mlx4_en_init_netdev()
2224 priv->max_mtu = mdev->dev->caps.eth_mtu_cap[priv->port]; in mlx4_en_init_netdev()
2225 priv->mac = mdev->dev->caps.def_mac[priv->port]; in mlx4_en_init_netdev()
2245 err = mlx4_alloc_hwq_res(mdev->dev, &priv->res, in mlx4_en_init_netdev()
2263 if (mdev->LSO_support) in mlx4_en_init_netdev()
2290 mdev->pndev[priv->port] = dev; in mlx4_en_init_netdev()
2323 err = mlx4_SET_PORT_general(mdev->dev, priv->port, in mlx4_en_init_netdev()
2335 err = mlx4_INIT_PORT(mdev->dev, priv->port); in mlx4_en_init_netdev()
2341 queue_delayed_work(mdev->workqueue, &priv->stats_task, STATS_DELAY); in mlx4_en_init_netdev()
2343 if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_TS) in mlx4_en_init_netdev()
2344 queue_delayed_work(mdev->workqueue, &priv->service_task, SERVICE_TASK_DELAY); in mlx4_en_init_netdev()
2357 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_set_ring_size() local
2372 mutex_lock(&mdev->state_lock); in mlx4_en_set_ring_size()
2391 mutex_unlock(&mdev->state_lock); in mlx4_en_set_ring_size()
2431 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_get_module_info() local
2436 ret = mlx4_get_module_info(mdev->dev, priv->port, in mlx4_en_get_module_info()
2479 struct mlx4_en_dev *mdev = priv->mdev; in mlx4_en_get_module_eeprom() local
2493 ret = mlx4_get_module_info(mdev->dev, priv->port, in mlx4_en_get_module_eeprom()
2597 error = -mlx4_SET_PORT_general(priv->mdev->dev, priv->port, in mlx4_en_set_tx_ppp()
2610 struct mlx4_en_dev *mdev; in mlx4_en_set_rx_ppp() local
2617 mdev = priv->mdev; in mlx4_en_set_rx_ppp()
2626 mutex_lock(&mdev->state_lock); in mlx4_en_set_rx_ppp()
2641 mutex_unlock(&mdev->state_lock); in mlx4_en_set_rx_ppp()
2646 error = -mlx4_SET_PORT_general(priv->mdev->dev, priv->port, in mlx4_en_set_rx_ppp()
2667 pnameunit = device_get_nameunit(priv->mdev->pdev->dev.bsddev); in mlx4_en_sysctl_conf()
2904 mutex_lock(&priv->mdev->state_lock); in mlx4_en_debugnet_init()
2908 mutex_unlock(&priv->mdev->state_lock); in mlx4_en_debugnet_init()
2942 mlx4_poll_interrupts(priv->mdev->dev); in mlx4_en_debugnet_poll()