Lines Matching refs:cgr

269 	struct qm_mcc_cgr cgr;
1457 struct qman_cgr *cgr;
1476 list_for_each_entry(cgr, &p->cgr_cbs, node)
1477 if (cgr->cb && qman_cgrs_get(&c, cgr->cgrid))
1478 cgr->cb(p, cgr, qman_cgrs_get(&rr, cgr->cgrid));
2180 static int qman_query_cgr(struct qman_cgr *cgr,
2189 mcc->cgr.cgid = cgr->cgrid;
2208 int qman_query_cgr_congested(struct qman_cgr *cgr, bool *result)
2213 err = qman_query_cgr(cgr, &query_cgr);
2217 *result = !!query_cgr.cgr.cs;
2354 static int qm_modify_cgr(struct qman_cgr *cgr, u32 flags,
2366 mcc->initcgr.cgid = cgr->cgrid;
2387 static void qm_cgr_cscn_targ_set(struct __qm_mc_cgr *cgr, int pi, u32 val)
2390 cgr->cscn_targ_upd_ctrl = cpu_to_be16(pi |
2393 cgr->cscn_targ = cpu_to_be32(val | QM_CGR_TARG_PORTAL(pi));
2396 static void qm_cgr_cscn_targ_clear(struct __qm_mc_cgr *cgr, int pi, u32 val)
2399 cgr->cscn_targ_upd_ctrl = cpu_to_be16(pi);
2401 cgr->cscn_targ = cpu_to_be32(val & ~QM_CGR_TARG_PORTAL(pi));
2408 struct qman_cgr cgr;
2411 for (cgr.cgrid = 0; cgr.cgrid < CGR_NUM; cgr.cgrid++) {
2412 if (qm_modify_cgr(&cgr, QMAN_CGR_FLAG_USE_INIT, NULL))
2421 int qman_create_cgr(struct qman_cgr *cgr, u32 flags,
2434 if (cgr->cgrid >= CGR_NUM)
2439 qman_cgr_cpus[cgr->cgrid] = smp_processor_id();
2442 cgr->chan = p->config->channel;
2448 ret = qman_query_cgr(cgr, &cgr_state);
2452 qm_cgr_cscn_targ_set(&local_opts.cgr, PORTAL_IDX(p),
2453 be32_to_cpu(cgr_state.cgr.cscn_targ));
2458 ret = qm_modify_cgr(cgr, QMAN_CGR_FLAG_USE_INIT,
2461 ret = qm_modify_cgr(cgr, 0, &local_opts);
2466 list_add(&cgr->node, &p->cgr_cbs);
2469 ret = qman_query_cgr(cgr, &cgr_state);
2476 if (cgr->cb && cgr_state.cgr.cscn_en &&
2477 qman_cgrs_get(&p->cgrs[1], cgr->cgrid))
2478 cgr->cb(p, cgr, 1);
2486 int qman_delete_cgr(struct qman_cgr *cgr)
2495 if (cgr->chan != p->config->channel) {
2499 cgr->chan, p->config->channel);
2506 list_del(&cgr->node);
2512 if (i->cgrid == cgr->cgrid && i->cb)
2514 ret = qman_query_cgr(cgr, &cgr_state);
2517 list_add(&cgr->node, &p->cgr_cbs);
2522 qm_cgr_cscn_targ_clear(&local_opts.cgr, PORTAL_IDX(p),
2523 be32_to_cpu(cgr_state.cgr.cscn_targ));
2525 ret = qm_modify_cgr(cgr, 0, &local_opts);
2528 list_add(&cgr->node, &p->cgr_cbs);
2538 struct qman_cgr *cgr;
2547 void qman_delete_cgr_safe(struct qman_cgr *cgr)
2550 if (qman_cgr_cpus[cgr->cgrid] != smp_processor_id()) {
2551 smp_call_function_single(qman_cgr_cpus[cgr->cgrid],
2552 qman_delete_cgr_smp_call, cgr, true);
2557 qman_delete_cgr(cgr);