Lines Matching refs:qpc

727 static int handle_counter(struct mlx4_dev *dev, struct mlx4_qp_context *qpc,
734 struct mlx4_qp_context *qpc = inbox->buf + 8; in update_vport_qp_param() local
740 port = (qpc->pri_path.sched_queue & 0x40) ? 2 : 1; in update_vport_qp_param()
743 qp_type = (be32_to_cpu(qpc->flags) >> 16) & 0xff; in update_vport_qp_param()
745 err = handle_counter(dev, qpc, slave, port); in update_vport_qp_param()
763 qpc->param3 &= ~cpu_to_be32(MLX4_STRIP_VLAN); in update_vport_qp_param()
774 qpc->pri_path.vlan_control &= in update_vport_qp_param()
778 qpc->pri_path.vlan_control |= in update_vport_qp_param()
786 qpc->pri_path.vlan_control |= in update_vport_qp_param()
791 qpc->pri_path.vlan_control |= in update_vport_qp_param()
796 qpc->pri_path.fvl_rx |= MLX4_FVL_RX_FORCE_ETH_VLAN; in update_vport_qp_param()
797 qpc->pri_path.vlan_index = vp_oper->vlan_idx; in update_vport_qp_param()
798 qpc->pri_path.fl |= MLX4_FL_CV | MLX4_FL_ETH_HIDE_CQE_VLAN; in update_vport_qp_param()
799 qpc->pri_path.feup |= MLX4_FEUP_FORCE_ETH_UP | MLX4_FVL_FORCE_ETH_VLAN; in update_vport_qp_param()
800 qpc->pri_path.sched_queue &= 0xC7; in update_vport_qp_param()
801 qpc->pri_path.sched_queue |= (vp_oper->state.default_qos) << 3; in update_vport_qp_param()
802 qpc->qos_vport = vp_oper->state.qos_vport; in update_vport_qp_param()
805 qpc->pri_path.feup |= MLX4_FSM_FORCE_ETH_SRC_MAC; in update_vport_qp_param()
806 qpc->pri_path.grh_mylmc = (0x80 & qpc->pri_path.grh_mylmc) + vp_oper->mac_idx; in update_vport_qp_param()
922 struct mlx4_qp_context *qpc, u8 slave, in handle_unexisting_counter() argument
938 qpc->pri_path.counter_index = counter->com.res_id; in handle_unexisting_counter()
954 qpc->pri_path.counter_index = counter_idx; in handle_unexisting_counter()
956 __func__, slave, qpc->pri_path.counter_index); in handle_unexisting_counter()
963 static int handle_counter(struct mlx4_dev *dev, struct mlx4_qp_context *qpc, in handle_counter() argument
966 if (qpc->pri_path.counter_index != MLX4_SINK_COUNTER_INDEX(dev)) in handle_counter()
968 qpc->pri_path.counter_index); in handle_counter()
970 return handle_unexisting_counter(dev, qpc, slave, port); in handle_counter()
2629 static int qp_get_mtt_addr(struct mlx4_qp_context *qpc) in qp_get_mtt_addr() argument
2631 return be32_to_cpu(qpc->mtt_base_addr_l) & 0xfffffff8; in qp_get_mtt_addr()
2639 static int qp_get_mtt_size(struct mlx4_qp_context *qpc) in qp_get_mtt_size() argument
2641 int page_shift = (qpc->log_page_size & 0x3f) + 12; in qp_get_mtt_size()
2642 int log_sq_size = (qpc->sq_size_stride >> 3) & 0xf; in qp_get_mtt_size()
2643 int log_sq_sride = qpc->sq_size_stride & 7; in qp_get_mtt_size()
2644 int log_rq_size = (qpc->rq_size_stride >> 3) & 0xf; in qp_get_mtt_size()
2645 int log_rq_stride = qpc->rq_size_stride & 7; in qp_get_mtt_size()
2646 int srq = (be32_to_cpu(qpc->srqn) >> 24) & 1; in qp_get_mtt_size()
2647 int rss = (be32_to_cpu(qpc->flags) >> 13) & 1; in qp_get_mtt_size()
2648 u32 ts = (be32_to_cpu(qpc->flags) >> 16) & 0xff; in qp_get_mtt_size()
2654 int page_offset = (be32_to_cpu(qpc->params2) >> 6) & 0x3f; in qp_get_mtt_size()
2842 static int qp_get_rcqn(struct mlx4_qp_context *qpc) in qp_get_rcqn() argument
2844 return be32_to_cpu(qpc->cqn_recv) & 0xffffff; in qp_get_rcqn()
2847 static int qp_get_scqn(struct mlx4_qp_context *qpc) in qp_get_scqn() argument
2849 return be32_to_cpu(qpc->cqn_send) & 0xffffff; in qp_get_scqn()
2852 static u32 qp_get_srqn(struct mlx4_qp_context *qpc) in qp_get_srqn() argument
2854 return be32_to_cpu(qpc->srqn) & 0x1ffffff; in qp_get_srqn()
2871 struct mlx4_qp_context *qpc,
2884 struct mlx4_qp_context *qpc = inbox->buf + 8; in mlx4_RST2INIT_QP_wrapper() local
2885 int mtt_base = qp_get_mtt_addr(qpc) / dev->caps.mtt_entry_sz; in mlx4_RST2INIT_QP_wrapper()
2886 int mtt_size = qp_get_mtt_size(qpc); in mlx4_RST2INIT_QP_wrapper()
2889 int rcqn = qp_get_rcqn(qpc); in mlx4_RST2INIT_QP_wrapper()
2890 int scqn = qp_get_scqn(qpc); in mlx4_RST2INIT_QP_wrapper()
2891 u32 srqn = qp_get_srqn(qpc) & 0xffffff; in mlx4_RST2INIT_QP_wrapper()
2892 int use_srq = (qp_get_srqn(qpc) >> 24) & 1; in mlx4_RST2INIT_QP_wrapper()
2894 int local_qpn = be32_to_cpu(qpc->local_qpn) & 0xffffff; in mlx4_RST2INIT_QP_wrapper()
2896 err = adjust_qp_sched_queue(dev, slave, qpc, inbox); in mlx4_RST2INIT_QP_wrapper()
2911 qp->qpc_flags = be32_to_cpu(qpc->flags); in mlx4_RST2INIT_QP_wrapper()
2938 adjust_proxy_tun_qkey(dev, vhcr, qpc); in mlx4_RST2INIT_QP_wrapper()
3688 struct mlx4_qp_context *qpc, in adjust_qp_sched_queue() argument
3694 dev, slave, (qpc->pri_path.sched_queue >> 6 & 1) + 1) - 1; in adjust_qp_sched_queue()
3699 pri_sched_queue = (qpc->pri_path.sched_queue & ~(1 << 6)) | in adjust_qp_sched_queue()
3703 qpc->pri_path.sched_queue || mlx4_is_eth(dev, port + 1)) { in adjust_qp_sched_queue()
3704 qpc->pri_path.sched_queue = pri_sched_queue; in adjust_qp_sched_queue()
3709 dev, slave, (qpc->alt_path.sched_queue >> 6 & 1) in adjust_qp_sched_queue()
3713 qpc->alt_path.sched_queue = in adjust_qp_sched_queue()
3714 (qpc->alt_path.sched_queue & ~(1 << 6)) | in adjust_qp_sched_queue()
3721 struct mlx4_qp_context *qpc, in roce_verify_mac() argument
3726 u32 ts = (be32_to_cpu(qpc->flags) >> 16) & 0xff; in roce_verify_mac()
3732 smac_ix = qpc->pri_path.grh_mylmc & 0x7f; in roce_verify_mac()
3746 struct mlx4_qp_context *qpc = inbox->buf + 8; in mlx4_INIT2RTR_QP_wrapper() local
3750 __be32 orig_param3 = qpc->param3; in mlx4_INIT2RTR_QP_wrapper()
3751 u8 orig_vlan_control = qpc->pri_path.vlan_control; in mlx4_INIT2RTR_QP_wrapper()
3752 u8 orig_fvl_rx = qpc->pri_path.fvl_rx; in mlx4_INIT2RTR_QP_wrapper()
3753 u8 orig_pri_path_fl = qpc->pri_path.fl; in mlx4_INIT2RTR_QP_wrapper()
3754 u8 orig_vlan_index = qpc->pri_path.vlan_index; in mlx4_INIT2RTR_QP_wrapper()
3755 u8 orig_feup = qpc->pri_path.feup; in mlx4_INIT2RTR_QP_wrapper()
3757 err = adjust_qp_sched_queue(dev, slave, qpc, inbox); in mlx4_INIT2RTR_QP_wrapper()
3764 if (roce_verify_mac(dev, slave, qpc, inbox)) in mlx4_INIT2RTR_QP_wrapper()
3769 adjust_proxy_tun_qkey(dev, vhcr, qpc); in mlx4_INIT2RTR_QP_wrapper()
3770 orig_sched_queue = qpc->pri_path.sched_queue; in mlx4_INIT2RTR_QP_wrapper()