Lines Matching refs:mw
818 struct mlx4_mw *mw) in mlx4_mw_alloc() argument
832 mw->key = hw_index_to_key(index); in mlx4_mw_alloc()
833 mw->pd = pd; in mlx4_mw_alloc()
834 mw->type = type; in mlx4_mw_alloc()
835 mw->enabled = MLX4_MPT_DISABLED; in mlx4_mw_alloc()
841 int mlx4_mw_enable(struct mlx4_dev *dev, struct mlx4_mw *mw) in mlx4_mw_enable() argument
847 err = mlx4_mpt_alloc_icm(dev, key_to_hw_index(mw->key), GFP_KERNEL); in mlx4_mw_enable()
861 mpt_entry->key = cpu_to_be32(key_to_hw_index(mw->key)); in mlx4_mw_enable()
862 mpt_entry->pd_flags = cpu_to_be32(mw->pd); in mlx4_mw_enable()
863 if (mw->type == MLX4_MW_TYPE_2) { in mlx4_mw_enable()
870 key_to_hw_index(mw->key) & in mlx4_mw_enable()
876 mw->enabled = MLX4_MPT_EN_HW; in mlx4_mw_enable()
886 mlx4_mpt_free_icm(dev, key_to_hw_index(mw->key)); in mlx4_mw_enable()
891 void mlx4_mw_free(struct mlx4_dev *dev, struct mlx4_mw *mw) in mlx4_mw_free() argument
895 if (mw->enabled == MLX4_MPT_EN_HW) { in mlx4_mw_free()
897 key_to_hw_index(mw->key) & in mlx4_mw_free()
902 mw->enabled = MLX4_MPT_EN_SW; in mlx4_mw_free()
904 if (mw->enabled) in mlx4_mw_free()
905 mlx4_mpt_free_icm(dev, key_to_hw_index(mw->key)); in mlx4_mw_free()
906 mlx4_mpt_release(dev, key_to_hw_index(mw->key)); in mlx4_mw_free()