Lines Matching refs:qm_info

1331 	struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1333 kfree(qm_info->qm_pq_params);
1334 qm_info->qm_pq_params = NULL;
1335 kfree(qm_info->qm_vport_params);
1336 qm_info->qm_vport_params = NULL;
1337 kfree(qm_info->qm_port_params);
1338 qm_info->qm_port_params = NULL;
1339 kfree(qm_info->wfq_data);
1340 qm_info->wfq_data = NULL;
1533 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1537 qm_info->start_pq = (u16)RESC_START(p_hwfn, QED_PQ);
1538 qm_info->start_vport = (u8)RESC_START(p_hwfn, QED_VPORT);
1541 qm_info->vport_rl_en = true;
1542 qm_info->vport_wfq_en = true;
1548 qm_info->max_phys_tcs_per_port = four_port ? NUM_PHYS_TCS_4PORT_K2 :
1554 if (!qm_info->ooo_tc)
1555 qm_info->ooo_tc = four_port ? DCBX_TCP_OOO_K2_4PORT_TC :
1562 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1567 qm_info->qm_vport_params[i].wfq = 1;
1584 &p_hwfn->qm_info.qm_port_params[i];
1603 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1605 qm_info->num_pqs = 0;
1606 qm_info->num_vports = 0;
1607 qm_info->num_pf_rls = 0;
1608 qm_info->num_vf_pqs = 0;
1609 qm_info->first_vf_pq = 0;
1610 qm_info->first_mcos_pq = 0;
1611 qm_info->first_rl_pq = 0;
1616 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1618 qm_info->num_vports++;
1620 if (qm_info->num_vports > qed_init_qm_get_num_vports(p_hwfn))
1622 "vport overflow! qm_info->num_vports %d, qm_init_get_num_vports() %d\n",
1623 qm_info->num_vports, qed_init_qm_get_num_vports(p_hwfn));
1626 /* initialize a single pq and manage qm_info resources accounting.
1661 struct qed_qm_info *qm_info,
1664 u16 pq_idx = qm_info->num_pqs, max_pq = qed_init_qm_get_num_pqs(p_hwfn);
1671 qm_info->qm_pq_params[pq_idx].port_id = p_hwfn->port_id;
1672 qm_info->qm_pq_params[pq_idx].vport_id = qm_info->start_vport +
1673 qm_info->num_vports;
1674 qm_info->qm_pq_params[pq_idx].tc_id = tc;
1675 qm_info->qm_pq_params[pq_idx].wrr_group = PQ_INIT_DEFAULT_WRR_GROUP;
1676 qm_info->qm_pq_params[pq_idx].rl_valid =
1680 qm_info->num_pqs++;
1682 qm_info->num_vports++;
1685 qm_info->num_pf_rls++;
1687 if (qm_info->num_vports > qed_init_qm_get_num_vports(p_hwfn))
1689 "vport overflow! qm_info->num_vports %d, qm_init_get_num_vports() %d\n",
1690 qm_info->num_vports, qed_init_qm_get_num_vports(p_hwfn));
1692 if (qm_info->num_pf_rls > qed_init_qm_get_num_pf_rls(p_hwfn))
1694 "rl overflow! qm_info->num_pf_rls %d, qm_init_get_num_pf_rls() %d\n",
1695 qm_info->num_pf_rls, qed_init_qm_get_num_pf_rls(p_hwfn));
1702 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1718 return &qm_info->first_rl_pq;
1720 return &qm_info->first_mcos_pq;
1722 return &qm_info->pure_lb_pq;
1724 return &qm_info->ooo_pq;
1726 return &qm_info->pure_ack_pq;
1728 return &qm_info->first_ofld_pq;
1730 return &qm_info->first_llt_pq;
1732 return &qm_info->first_vf_pq;
1738 return &qm_info->start_pq;
1747 *base_pq_idx = p_hwfn->qm_info.start_pq + pq_val;
1765 return p_hwfn->qm_info.start_pq;
1781 return p_hwfn->qm_info.start_pq;
1815 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1820 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_LB, qm_info->num_pqs);
1821 qed_init_qm_pq(p_hwfn, qm_info, PURE_LB_TC, PQ_INIT_SHARE_VPORT);
1826 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1831 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_OOO, qm_info->num_pqs);
1832 qed_init_qm_pq(p_hwfn, qm_info, qm_info->ooo_tc, PQ_INIT_SHARE_VPORT);
1837 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1842 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_ACK, qm_info->num_pqs);
1843 qed_init_qm_pq(p_hwfn, qm_info, qed_get_offload_tc(p_hwfn),
1850 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1855 qed_init_qm_pq(p_hwfn, qm_info,
1863 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1868 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_OFLD, qm_info->num_pqs);
1874 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1879 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_LLT, qm_info->num_pqs);
1885 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1891 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_MCOS, qm_info->num_pqs);
1893 qed_init_qm_pq(p_hwfn, qm_info, tc_idx, PQ_INIT_SHARE_VPORT);
1898 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1904 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_VFS, qm_info->num_pqs);
1905 qm_info->num_vf_pqs = num_vfs;
1908 qm_info, PQ_INIT_DEFAULT_TC, PQ_INIT_VF_RL);
1914 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1919 qed_init_qm_set_idx(p_hwfn, PQ_FLAGS_RLS, qm_info->num_pqs);
1921 qed_init_qm_pq(p_hwfn, qm_info, qed_get_offload_tc(p_hwfn),
1980 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
1990 qm_info->start_pq,
1991 qm_info->start_vport,
1992 qm_info->pure_lb_pq,
1993 qm_info->first_ofld_pq,
1994 qm_info->first_llt_pq,
1995 qm_info->pure_ack_pq);
1999 qm_info->ooo_pq,
2000 qm_info->first_vf_pq,
2001 qm_info->num_pqs,
2002 qm_info->num_vf_pqs,
2003 qm_info->num_vports, qm_info->max_phys_tcs_per_port);
2007 qm_info->pf_rl_en,
2008 qm_info->pf_wfq_en,
2009 qm_info->vport_rl_en,
2010 qm_info->vport_wfq_en,
2011 qm_info->pf_wfq,
2012 qm_info->pf_rl,
2013 qm_info->num_pf_rls, qed_get_pq_flags(p_hwfn));
2017 port = &(qm_info->qm_port_params[i]);
2029 for (i = 0; i < qm_info->num_vports; i++) {
2030 vport = &(qm_info->qm_vport_params[i]);
2034 qm_info->start_vport + i, vport->wfq);
2043 for (i = 0; i < qm_info->num_pqs; i++) {
2044 pq = &(qm_info->qm_pq_params[i]);
2048 qm_info->start_pq + i,
2086 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
2096 qm_info->start_pq, qm_info->num_pqs);
2113 qm_info->start_pq, qm_info->num_pqs);
2123 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
2130 qm_info->qm_pq_params = kcalloc(qed_init_qm_get_num_pqs(p_hwfn),
2131 sizeof(*qm_info->qm_pq_params),
2133 if (!qm_info->qm_pq_params)
2136 qm_info->qm_vport_params = kcalloc(qed_init_qm_get_num_vports(p_hwfn),
2137 sizeof(*qm_info->qm_vport_params),
2139 if (!qm_info->qm_vport_params)
2142 qm_info->qm_port_params = kcalloc(p_hwfn->cdev->num_ports_in_engine,
2143 sizeof(*qm_info->qm_port_params),
2145 if (!qm_info->qm_port_params)
2148 qm_info->wfq_data = kcalloc(qed_init_qm_get_num_vports(p_hwfn),
2149 sizeof(*qm_info->wfq_data),
2151 if (!qm_info->wfq_data)
2656 struct qed_qm_info *qm_info = &p_hwfn->qm_info;
2679 qm_info->pf_rl_en = true;
2681 qm_info->pf_wfq_en = true;
2685 params->max_phys_tcs_per_port = qm_info->max_phys_tcs_per_port;
2686 params->pf_rl_en = qm_info->pf_rl_en;
2687 params->pf_wfq_en = qm_info->pf_wfq_en;
2688 params->global_rl_en = qm_info->vport_rl_en;
2689 params->vport_wfq_en = qm_info->vport_wfq_en;
2690 params->port_params = qm_info->qm_port_params;
2906 p_hwfn->qm_info.pf_wfq = p_info->bandwidth_min;
2909 p_hwfn->qm_info.pf_rl = 100000;
5031 vport_params = p_hwfn->qm_info.qm_vport_params;
5033 for (i = 0; i < p_hwfn->qm_info.num_vports; i++) {
5034 u32 wfq_speed = p_hwfn->qm_info.wfq_data[i].min_speed;
5050 for (i = 0; i < p_hwfn->qm_info.num_vports; i++)
5051 p_hwfn->qm_info.qm_vport_params[i].wfq = 1;
5061 vport_params = p_hwfn->qm_info.qm_vport_params;
5063 for (i = 0; i < p_hwfn->qm_info.num_vports; i++) {
5084 num_vports = p_hwfn->qm_info.num_vports;
5096 p_hwfn->qm_info.wfq_data[i].configured) {
5098 tmp_speed = p_hwfn->qm_info.wfq_data[i].min_speed;
5139 p_hwfn->qm_info.wfq_data[vport_id].min_speed = req_rate;
5140 p_hwfn->qm_info.wfq_data[vport_id].configured = true;
5143 if (p_hwfn->qm_info.wfq_data[i].configured)
5146 p_hwfn->qm_info.wfq_data[i].min_speed = left_rate_per_vp;
5161 p_hwfn->qm_info.wfq_data[vp_id].min_speed = rate;
5162 p_hwfn->qm_info.wfq_data[vp_id].configured = true;
5187 for (i = 0; i < p_hwfn->qm_info.num_vports; i++) {
5190 if (!p_hwfn->qm_info.wfq_data[i].configured)
5193 rate = p_hwfn->qm_info.wfq_data[i].min_speed;
5282 p_hwfn->qm_info.pf_rl = p_link->speed;
5289 p_hwfn->qm_info.pf_rl = 100000;
5292 p_hwfn->qm_info.pf_rl);
5343 p_hwfn->qm_info.pf_wfq = min_bw;
5412 memset(p_hwfn->qm_info.wfq_data, 0,
5413 sizeof(*p_hwfn->qm_info.wfq_data) * p_hwfn->qm_info.num_vports);