Lines Matching refs:cgr

269 	struct qm_mcc_cgr cgr;  member
1457 struct qman_cgr *cgr; in qm_congestion_task() local
1479 list_for_each_entry(cgr, &p->cgr_cbs, node) in qm_congestion_task()
1480 if (cgr->cb && qman_cgrs_get(&c, cgr->cgrid)) in qm_congestion_task()
1481 cgr->cb(p, cgr, qman_cgrs_get(&rr, cgr->cgrid)); in qm_congestion_task()
2183 static int qman_query_cgr(struct qman_cgr *cgr, in qman_query_cgr() argument
2192 mcc->cgr.cgid = cgr->cgrid; in qman_query_cgr()
2211 int qman_query_cgr_congested(struct qman_cgr *cgr, bool *result) in qman_query_cgr_congested() argument
2216 err = qman_query_cgr(cgr, &query_cgr); in qman_query_cgr_congested()
2220 *result = !!query_cgr.cgr.cs; in qman_query_cgr_congested()
2357 static int qm_modify_cgr(struct qman_cgr *cgr, u32 flags, in qm_modify_cgr() argument
2369 mcc->initcgr.cgid = cgr->cgrid; in qm_modify_cgr()
2390 static void qm_cgr_cscn_targ_set(struct __qm_mc_cgr *cgr, int pi, u32 val) in qm_cgr_cscn_targ_set() argument
2393 cgr->cscn_targ_upd_ctrl = cpu_to_be16(pi | in qm_cgr_cscn_targ_set()
2396 cgr->cscn_targ = cpu_to_be32(val | QM_CGR_TARG_PORTAL(pi)); in qm_cgr_cscn_targ_set()
2399 static void qm_cgr_cscn_targ_clear(struct __qm_mc_cgr *cgr, int pi, u32 val) in qm_cgr_cscn_targ_clear() argument
2402 cgr->cscn_targ_upd_ctrl = cpu_to_be16(pi); in qm_cgr_cscn_targ_clear()
2404 cgr->cscn_targ = cpu_to_be32(val & ~QM_CGR_TARG_PORTAL(pi)); in qm_cgr_cscn_targ_clear()
2411 struct qman_cgr cgr; in qman_init_cgr_all() local
2414 for (cgr.cgrid = 0; cgr.cgrid < CGR_NUM; cgr.cgrid++) { in qman_init_cgr_all()
2415 if (qm_modify_cgr(&cgr, QMAN_CGR_FLAG_USE_INIT, NULL)) in qman_init_cgr_all()
2424 int qman_create_cgr(struct qman_cgr *cgr, u32 flags, in qman_create_cgr() argument
2437 if (cgr->cgrid >= CGR_NUM) in qman_create_cgr()
2442 qman_cgr_cpus[cgr->cgrid] = smp_processor_id(); in qman_create_cgr()
2445 cgr->chan = p->config->channel; in qman_create_cgr()
2451 ret = qman_query_cgr(cgr, &cgr_state); in qman_create_cgr()
2455 qm_cgr_cscn_targ_set(&local_opts.cgr, PORTAL_IDX(p), in qman_create_cgr()
2456 be32_to_cpu(cgr_state.cgr.cscn_targ)); in qman_create_cgr()
2461 ret = qm_modify_cgr(cgr, QMAN_CGR_FLAG_USE_INIT, in qman_create_cgr()
2464 ret = qm_modify_cgr(cgr, 0, &local_opts); in qman_create_cgr()
2469 list_add(&cgr->node, &p->cgr_cbs); in qman_create_cgr()
2472 ret = qman_query_cgr(cgr, &cgr_state); in qman_create_cgr()
2479 if (cgr->cb && cgr_state.cgr.cscn_en && in qman_create_cgr()
2480 qman_cgrs_get(&p->cgrs[1], cgr->cgrid)) in qman_create_cgr()
2481 cgr->cb(p, cgr, 1); in qman_create_cgr()
2489 static struct qman_portal *qman_cgr_get_affine_portal(struct qman_cgr *cgr) in qman_cgr_get_affine_portal() argument
2493 if (cgr->chan != p->config->channel) { in qman_cgr_get_affine_portal()
2497 cgr->chan, p->config->channel); in qman_cgr_get_affine_portal()
2505 int qman_delete_cgr(struct qman_cgr *cgr) in qman_delete_cgr() argument
2512 struct qman_portal *p = qman_cgr_get_affine_portal(cgr); in qman_delete_cgr()
2519 list_del(&cgr->node); in qman_delete_cgr()
2525 if (i->cgrid == cgr->cgrid && i->cb) in qman_delete_cgr()
2527 ret = qman_query_cgr(cgr, &cgr_state); in qman_delete_cgr()
2530 list_add(&cgr->node, &p->cgr_cbs); in qman_delete_cgr()
2535 qm_cgr_cscn_targ_clear(&local_opts.cgr, PORTAL_IDX(p), in qman_delete_cgr()
2536 be32_to_cpu(cgr_state.cgr.cscn_targ)); in qman_delete_cgr()
2538 ret = qm_modify_cgr(cgr, 0, &local_opts); in qman_delete_cgr()
2541 list_add(&cgr->node, &p->cgr_cbs); in qman_delete_cgr()
2550 struct qman_cgr *cgr; member
2559 void qman_delete_cgr_safe(struct qman_cgr *cgr) in qman_delete_cgr_safe() argument
2562 if (qman_cgr_cpus[cgr->cgrid] != smp_processor_id()) { in qman_delete_cgr_safe()
2563 smp_call_function_single(qman_cgr_cpus[cgr->cgrid], in qman_delete_cgr_safe()
2564 qman_delete_cgr_smp_call, cgr, true); in qman_delete_cgr_safe()
2569 qman_delete_cgr(cgr); in qman_delete_cgr_safe()
2574 static int qman_update_cgr(struct qman_cgr *cgr, struct qm_mcc_initcgr *opts) in qman_update_cgr() argument
2578 struct qman_portal *p = qman_cgr_get_affine_portal(cgr); in qman_update_cgr()
2584 ret = qm_modify_cgr(cgr, 0, opts); in qman_update_cgr()
2591 struct qman_cgr *cgr; member
2600 params->ret = qman_update_cgr(params->cgr, params->opts); in qman_update_cgr_smp_call()
2603 int qman_update_cgr_safe(struct qman_cgr *cgr, struct qm_mcc_initcgr *opts) in qman_update_cgr_safe() argument
2606 .cgr = cgr, in qman_update_cgr_safe()
2611 if (qman_cgr_cpus[cgr->cgrid] != smp_processor_id()) in qman_update_cgr_safe()
2612 smp_call_function_single(qman_cgr_cpus[cgr->cgrid], in qman_update_cgr_safe()
2616 params.ret = qman_update_cgr(cgr, opts); in qman_update_cgr_safe()