abm 651 drivers/gpu/drm/amd/amdgpu/si_dpm.h bool abm; abm 1979 drivers/gpu/drm/amd/display/dc/core/dc.c if (stream_update->abm_level && pipe_ctx->stream_res.abm) { abm 1983 drivers/gpu/drm/amd/display/dc/core/dc.c pipe_ctx->stream_res.abm->funcs->set_abm_level( abm 1984 drivers/gpu/drm/amd/display/dc/core/dc.c pipe_ctx->stream_res.abm, stream->abm_level); abm 1986 drivers/gpu/drm/amd/display/dc/core/dc.c pipe_ctx->stream_res.abm->funcs->set_abm_level( abm 1987 drivers/gpu/drm/amd/display/dc/core/dc.c pipe_ctx->stream_res.abm, stream->abm_level); abm 2364 drivers/gpu/drm/amd/display/dc/core/dc.c struct abm *abm = dc->res_pool->abm; abm 2366 drivers/gpu/drm/amd/display/dc/core/dc.c if (abm) abm 2367 drivers/gpu/drm/amd/display/dc/core/dc.c return abm->funcs->get_current_backlight(abm); abm 2374 drivers/gpu/drm/amd/display/dc/core/dc.c struct abm *abm = dc->res_pool->abm; abm 2376 drivers/gpu/drm/amd/display/dc/core/dc.c if (abm) abm 2377 drivers/gpu/drm/amd/display/dc/core/dc.c return abm->funcs->get_target_backlight(abm); abm 2309 drivers/gpu/drm/amd/display/dc/core/dc_link.c struct abm *abm = link->ctx->dc->res_pool->abm; abm 2311 drivers/gpu/drm/amd/display/dc/core/dc_link.c if (abm == NULL || abm->funcs->get_current_backlight == NULL) abm 2314 drivers/gpu/drm/amd/display/dc/core/dc_link.c return (int) abm->funcs->get_current_backlight(abm); abm 2322 drivers/gpu/drm/amd/display/dc/core/dc_link.c struct abm *abm = core_dc->res_pool->abm; abm 2330 drivers/gpu/drm/amd/display/dc/core/dc_link.c (abm == NULL) || abm 2331 drivers/gpu/drm/amd/display/dc/core/dc_link.c (abm->funcs->set_backlight_level_pwm == NULL)) abm 2361 drivers/gpu/drm/amd/display/dc/core/dc_link.c abm->funcs->set_backlight_level_pwm( abm 2362 drivers/gpu/drm/amd/display/dc/core/dc_link.c abm, abm 2375 drivers/gpu/drm/amd/display/dc/core/dc_link.c struct abm *abm = core_dc->res_pool->abm; abm 2377 drivers/gpu/drm/amd/display/dc/core/dc_link.c if ((abm == NULL) || (abm->funcs->set_backlight_level_pwm == NULL)) abm 2380 drivers/gpu/drm/amd/display/dc/core/dc_link.c abm->funcs->set_abm_immediate_disable(abm); abm 1290 drivers/gpu/drm/amd/display/dc/core/dc_resource.c free_pipe->stream_res.abm = tail_pipe->stream_res.abm; abm 1988 drivers/gpu/drm/amd/display/dc/core/dc_resource.c pipe_ctx->stream_res.abm = pool->abm; abm 37 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c #define TO_DCE_ABM(abm)\ abm 38 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c container_of(abm, struct dce_abm, base) abm 48 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->ctx->logger abm 58 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static bool dce_abm_set_pipe(struct abm *abm, uint32_t controller_id) abm 60 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 63 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c if (abm->dmcu_is_running == false) abm 251 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static void dce_abm_init(struct abm *abm) abm 253 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 291 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static unsigned int dce_abm_get_current_backlight(struct abm *abm) abm 293 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 302 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static unsigned int dce_abm_get_target_backlight(struct abm *abm) abm 304 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 313 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static bool dce_abm_set_level(struct abm *abm, uint32_t level) abm 315 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 317 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c if (abm->dmcu_is_running == false) abm 334 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static bool dce_abm_immediate_disable(struct abm *abm) abm 336 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 338 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c if (abm->dmcu_is_running == false) abm 341 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c dce_abm_set_pipe(abm, MCP_DISABLE_ABM_IMMEDIATELY); abm 343 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_CNTL = abm 345 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_CNTL2 = abm 347 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_PERIOD_CNTL = abm 351 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c &abm->stored_backlight_registers.LVTMA_PWRSEQ_REF_DIV_BL_PWM_REF_DIV); abm 355 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c static bool dce_abm_init_backlight(struct abm *abm) abm 357 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 366 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c if (abm->stored_backlight_registers.BL_PWM_CNTL != 0) { abm 368 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_CNTL); abm 370 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_CNTL2); abm 372 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_PERIOD_CNTL); abm 375 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers. abm 385 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_CNTL = abm 387 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_CNTL2 = abm 389 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm->stored_backlight_registers.BL_PWM_PERIOD_CNTL = abm 393 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c &abm->stored_backlight_registers. abm 415 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct abm *abm, abm 421 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(abm); abm 456 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct abm *base = &abm_dce->base; abm 471 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct abm *dce_abm_create( abm 491 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c void dce_abm_destroy(struct abm **abm) abm 493 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c struct dce_abm *abm_dce = TO_DCE_ABM(*abm); abm 496 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c abm_dce->base.funcs->set_abm_immediate_disable(*abm); abm 499 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c *abm = NULL; abm 230 drivers/gpu/drm/amd/display/dc/dce/dce_abm.h struct abm base; abm 236 drivers/gpu/drm/amd/display/dc/dce/dce_abm.h struct abm *dce_abm_create( abm 242 drivers/gpu/drm/amd/display/dc/dce/dce_abm.h void dce_abm_destroy(struct abm **abm); abm 738 drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c if (pool->base.abm != NULL) abm 739 drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c dce_abm_destroy(&pool->base.abm); abm 971 drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c pool->base.abm = dce_abm_create(ctx, abm 975 drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c if (pool->base.abm == NULL) { abm 2371 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c struct abm *abm; abm 2419 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c abm = dc->res_pool->abm; abm 2420 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c if (abm != NULL) { abm 2421 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c abm->funcs->init_backlight(abm); abm 2422 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c abm->funcs->abm_init(abm); abm 2426 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c if (dmcu != NULL && abm != NULL) abm 2427 drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c abm->dmcu_is_running = dmcu->funcs->is_dmcu_initialized(dmcu); abm 797 drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c if (pool->base.abm != NULL) abm 798 drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c dce_abm_destroy(&pool->base.abm); abm 1343 drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c pool->base.abm = dce_abm_create(ctx, abm 1347 drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c if (pool->base.abm == NULL) { abm 759 drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c if (pool->base.abm != NULL) abm 760 drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c dce_abm_destroy(&pool->base.abm); abm 1227 drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c pool->base.abm = dce_abm_create(ctx, abm 1231 drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c if (pool->base.abm == NULL) { abm 609 drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c if (pool->base.abm != NULL) abm 610 drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c dce_abm_destroy(&pool->base.abm); abm 1065 drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c pool->base.abm = dce_abm_create(ctx, abm 1069 drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c if (pool->base.abm == NULL) { abm 779 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c if (pool->base.abm != NULL) abm 780 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c dce_abm_destroy(&pool->base.abm); abm 952 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c pool->base.abm = dce_abm_create(ctx, abm 956 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c if (pool->base.abm == NULL) { abm 1149 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c pool->base.abm = dce_abm_create(ctx, abm 1153 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c if (pool->base.abm == NULL) { abm 1342 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c pool->base.abm = dce_abm_create(ctx, abm 1346 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c if (pool->base.abm == NULL) { abm 1178 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c struct abm *abm = dc->res_pool->abm; abm 1279 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c if (abm != NULL) { abm 1280 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c abm->funcs->init_backlight(abm); abm 1281 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c abm->funcs->abm_init(abm); abm 1287 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c if (abm != NULL && dmcu != NULL) abm 1288 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c abm->dmcu_is_running = dmcu->funcs->is_dmcu_initialized(dmcu); abm 2440 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c if (stream_res->abm) { abm 2441 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c stream_res->abm->funcs->set_pipe(stream_res->abm, stream_res->tg->inst + 1); abm 2442 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c stream_res->abm->funcs->set_abm_level(stream_res->abm, stream->abm_level); abm 2445 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c if (stream_res->abm) abm 2446 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c stream_res->abm->funcs->set_abm_immediate_disable(stream_res->abm); abm 961 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c if (pool->base.abm != NULL) abm 962 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c dce_abm_destroy(&pool->base.abm); abm 1107 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c idle_pipe->stream_res.abm = head_pipe->stream_res.abm; abm 1372 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c pool->base.abm = dce_abm_create(ctx, abm 1376 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c if (pool->base.abm == NULL) { abm 872 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c if (stream_res->abm) abm 873 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c stream_res->abm->funcs->set_abm_immediate_disable(stream_res->abm); abm 901 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c if (stream_res->abm) { abm 902 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c stream_res->abm->funcs->set_pipe(stream_res->abm, stream_res->tg->inst + 1); abm 903 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c stream_res->abm->funcs->set_abm_level(stream_res->abm, stream->abm_level); abm 1401 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c if (pool->base.abm != NULL) abm 1402 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c dce_abm_destroy(&pool->base.abm); abm 3549 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c pool->base.abm = dce_abm_create(ctx, abm 3553 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c if (pool->base.abm == NULL) { abm 929 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c if (pool->base.abm != NULL) abm 930 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c dce_abm_destroy(&pool->base.abm); abm 225 drivers/gpu/drm/amd/display/dc/inc/core_types.h struct abm *abm; abm 248 drivers/gpu/drm/amd/display/dc/inc/core_types.h struct abm *abm; abm 46 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h void (*abm_init)(struct abm *abm); abm 47 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h bool (*set_abm_level)(struct abm *abm, unsigned int abm_level); abm 48 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h bool (*set_abm_immediate_disable)(struct abm *abm); abm 49 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h bool (*set_pipe)(struct abm *abm, unsigned int controller_id); abm 50 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h bool (*init_backlight)(struct abm *abm); abm 55 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h bool (*set_backlight_level_pwm)(struct abm *abm, abm 61 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h unsigned int (*get_current_backlight)(struct abm *abm); abm 62 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h unsigned int (*get_target_backlight)(struct abm *abm); abm 2677 drivers/gpu/drm/radeon/btc_dpm.c eg_pi->abm = true; abm 2117 drivers/gpu/drm/radeon/cypress_dpm.c eg_pi->abm = true; abm 67 drivers/gpu/drm/radeon/cypress_dpm.h bool abm; abm 4178 drivers/gpu/drm/radeon/ni_dpm.c eg_pi->abm = true; abm 21 drivers/net/ethernet/netronome/nfp/abm/cls.c nfp_abm_u32_check_knode(struct nfp_abm *abm, struct tc_cls_u32_knode *knode, abm 57 drivers/net/ethernet/netronome/nfp/abm/cls.c if (knode->res && knode->res->classid >= abm->num_bands) { abm 92 drivers/net/ethernet/netronome/nfp/abm/cls.c if (be32_to_cpu(k->mask) >> tos_off & ~abm->dscp_mask) { abm 94 drivers/net/ethernet/netronome/nfp/abm/cls.c nfp_err(abm->app->cpp, abm 96 drivers/net/ethernet/netronome/nfp/abm/cls.c be32_to_cpu(k->mask) >> tos_off, abm->dscp_mask); abm 122 drivers/net/ethernet/netronome/nfp/abm/cls.c struct nfp_abm *abm = alink->abm; abm 127 drivers/net/ethernet/netronome/nfp/abm/cls.c bits_per_prio = roundup_pow_of_two(order_base_2(abm->num_bands)); abm 132 drivers/net/ethernet/netronome/nfp/abm/cls.c base_shift = 8 - order_base_2(abm->num_prios); abm 134 drivers/net/ethernet/netronome/nfp/abm/cls.c for (i = 0; i < abm->num_prios; i++) { abm 179 drivers/net/ethernet/netronome/nfp/abm/cls.c if (!nfp_abm_u32_check_knode(alink->abm, knode, proto, extack)) abm 52 drivers/net/ethernet/netronome/nfp/abm/ctrl.c struct nfp_cpp *cpp = alink->abm->app->cpp; abm 75 drivers/net/ethernet/netronome/nfp/abm/ctrl.c int __nfp_abm_ctrl_set_q_lvl(struct nfp_abm *abm, unsigned int id, u32 val) abm 77 drivers/net/ethernet/netronome/nfp/abm/ctrl.c struct nfp_cpp *cpp = abm->app->cpp; abm 81 drivers/net/ethernet/netronome/nfp/abm/ctrl.c __clear_bit(id, abm->threshold_undef); abm 82 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (abm->thresholds[id] == val) abm 86 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = __nfp_rtsym_writel(cpp, abm->q_lvls, 4, 0, sym_offset, val); abm 94 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->thresholds[id] = val; abm 105 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return __nfp_abm_ctrl_set_q_lvl(alink->abm, threshold, val); abm 108 drivers/net/ethernet/netronome/nfp/abm/ctrl.c int __nfp_abm_ctrl_set_q_act(struct nfp_abm *abm, unsigned int id, abm 111 drivers/net/ethernet/netronome/nfp/abm/ctrl.c struct nfp_cpp *cpp = abm->app->cpp; abm 115 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (abm->actions[id] == act) abm 119 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = __nfp_rtsym_writel(cpp, abm->q_lvls, 4, 0, sym_offset, act); abm 127 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->actions[id] = act; abm 138 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return __nfp_abm_ctrl_set_q_act(alink->abm, qid, act); abm 146 drivers/net/ethernet/netronome/nfp/abm/ctrl.c for (band = 0; band < alink->abm->num_bands; band++) { abm 147 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (nfp_abm_ctrl_stat(alink, alink->abm->qm_stats, abm 162 drivers/net/ethernet/netronome/nfp/abm/ctrl.c for (band = 0; band < alink->abm->num_bands; band++) { abm 163 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (nfp_abm_ctrl_stat(alink, alink->abm->qm_stats, abm 177 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (!nfp_abm_has_prio(alink->abm)) { abm 189 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return nfp_abm_ctrl_stat(alink, alink->abm->q_stats, abm 210 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = nfp_abm_ctrl_stat(alink, alink->abm->q_lvls, NFP_QLVL_STRIDE, abm 216 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = nfp_abm_ctrl_stat(alink, alink->abm->q_lvls, abm 222 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = nfp_abm_ctrl_stat(alink, alink->abm->qm_stats, abm 228 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return nfp_abm_ctrl_stat(alink, alink->abm->qm_stats, abm 239 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = nfp_abm_ctrl_stat(alink, alink->abm->qm_stats, abm 245 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return nfp_abm_ctrl_stat(alink, alink->abm->qm_stats, abm 250 drivers/net/ethernet/netronome/nfp/abm/ctrl.c int nfp_abm_ctrl_qm_enable(struct nfp_abm *abm) abm 252 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return nfp_mbox_cmd(abm->app->pf, NFP_MBOX_PCIE_ABM_ENABLE, abm 256 drivers/net/ethernet/netronome/nfp/abm/ctrl.c int nfp_abm_ctrl_qm_disable(struct nfp_abm *abm) abm 258 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return nfp_mbox_cmd(abm->app->pf, NFP_MBOX_PCIE_ABM_DISABLE, abm 269 drivers/net/ethernet/netronome/nfp/abm/ctrl.c err = nfp_net_mbox_lock(nn, alink->abm->prio_map_len); abm 275 drivers/net/ethernet/netronome/nfp/abm/ctrl.c alink->abm->prio_map_len); abm 277 drivers/net/ethernet/netronome/nfp/abm/ctrl.c for (i = 0; i < alink->abm->prio_map_len; i += sizeof(u32)) abm 283 drivers/net/ethernet/netronome/nfp/abm/ctrl.c nfp_err(alink->abm->app->cpp, abm 290 drivers/net/ethernet/netronome/nfp/abm/ctrl.c struct nfp_abm *abm = alink->abm; abm 294 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (!nfp_abm_has_prio(alink->abm)) abm 297 drivers/net/ethernet/netronome/nfp/abm/ctrl.c min_mbox_sz = NFP_NET_ABM_MBOX_DATA + alink->abm->prio_map_len; abm 299 drivers/net/ethernet/netronome/nfp/abm/ctrl.c nfp_err(abm->app->pf->cpp, "vNIC mailbox too small for prio offload: %u, need: %u\n", abm 315 drivers/net/ethernet/netronome/nfp/abm/ctrl.c static unsigned int nfp_abm_ctrl_prio_map_size(struct nfp_abm *abm) abm 319 drivers/net/ethernet/netronome/nfp/abm/ctrl.c size = roundup_pow_of_two(order_base_2(abm->num_bands)); abm 320 drivers/net/ethernet/netronome/nfp/abm/ctrl.c size = DIV_ROUND_UP(size * abm->num_prios, BITS_PER_BYTE); abm 347 drivers/net/ethernet/netronome/nfp/abm/ctrl.c nfp_abm_ctrl_find_q_rtsym(struct nfp_abm *abm, const char *name_fmt, abm 352 drivers/net/ethernet/netronome/nfp/abm/ctrl.c size = array3_size(size, abm->num_bands, NFP_NET_MAX_RX_RINGS); abm 354 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->pf_id, nfp_abm_has_prio(abm) ? "_per_band" : ""); abm 356 drivers/net/ethernet/netronome/nfp/abm/ctrl.c return nfp_abm_ctrl_find_rtsym(abm->app->pf, pf_symbol, size); abm 359 drivers/net/ethernet/netronome/nfp/abm/ctrl.c int nfp_abm_ctrl_find_addrs(struct nfp_abm *abm) abm 361 drivers/net/ethernet/netronome/nfp/abm/ctrl.c struct nfp_pf *pf = abm->app->pf; abm 365 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->pf_id = nfp_cppcore_pcie_unit(pf->cpp); abm 371 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->red_support = res; abm 377 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->num_bands = res; abm 382 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->num_prios = res; abm 389 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->action_mask = res; abm 391 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->prio_map_len = nfp_abm_ctrl_prio_map_size(abm); abm 392 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->dscp_mask = GENMASK(7, 8 - order_base_2(abm->num_prios)); abm 395 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (!is_power_of_2(abm->num_bands) || !is_power_of_2(abm->num_prios) || abm 396 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->num_bands > U16_MAX || abm->num_prios > U16_MAX || abm 397 drivers/net/ethernet/netronome/nfp/abm/ctrl.c (abm->num_bands == 1) != (abm->num_prios == 1)) { abm 400 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->num_bands, abm->num_prios); abm 405 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (!abm->red_support) abm 408 drivers/net/ethernet/netronome/nfp/abm/ctrl.c sym = nfp_abm_ctrl_find_q_rtsym(abm, NFP_QLVL_SYM_NAME, abm 412 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->q_lvls = sym; abm 414 drivers/net/ethernet/netronome/nfp/abm/ctrl.c sym = nfp_abm_ctrl_find_q_rtsym(abm, NFP_QMSTAT_SYM_NAME, abm 418 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->qm_stats = sym; abm 420 drivers/net/ethernet/netronome/nfp/abm/ctrl.c if (nfp_abm_has_prio(abm)) { abm 421 drivers/net/ethernet/netronome/nfp/abm/ctrl.c sym = nfp_abm_ctrl_find_q_rtsym(abm, NFP_Q_STAT_SYM_NAME, abm 425 drivers/net/ethernet/netronome/nfp/abm/ctrl.c abm->q_stats = sym; abm 114 drivers/net/ethernet/netronome/nfp/abm/main.c port->pf_id = alink->abm->pf_id; abm 167 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_reprs(struct nfp_abm *abm, struct nfp_abm_link *alink) abm 169 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_repr(abm->app, alink, NFP_REPR_TYPE_PF); abm 170 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_repr(abm->app, alink, NFP_REPR_TYPE_PHYS_PORT); abm 173 drivers/net/ethernet/netronome/nfp/abm/main.c static void nfp_abm_kill_reprs_all(struct nfp_abm *abm) abm 175 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_pf *pf = abm->app->pf; abm 179 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_reprs(abm, (struct nfp_abm_link *)nn->app_priv); abm 184 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_abm *abm = app->priv; abm 186 drivers/net/ethernet/netronome/nfp/abm/main.c return abm->eswitch_mode; abm 189 drivers/net/ethernet/netronome/nfp/abm/main.c static int nfp_abm_eswitch_set_legacy(struct nfp_abm *abm) abm 191 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_reprs_all(abm); abm 192 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_ctrl_qm_disable(abm); abm 194 drivers/net/ethernet/netronome/nfp/abm/main.c abm->eswitch_mode = DEVLINK_ESWITCH_MODE_LEGACY; abm 198 drivers/net/ethernet/netronome/nfp/abm/main.c static void nfp_abm_eswitch_clean_up(struct nfp_abm *abm) abm 200 drivers/net/ethernet/netronome/nfp/abm/main.c if (abm->eswitch_mode != DEVLINK_ESWITCH_MODE_LEGACY) abm 201 drivers/net/ethernet/netronome/nfp/abm/main.c WARN_ON(nfp_abm_eswitch_set_legacy(abm)); abm 204 drivers/net/ethernet/netronome/nfp/abm/main.c static int nfp_abm_eswitch_set_switchdev(struct nfp_abm *abm) abm 206 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_app *app = abm->app; abm 211 drivers/net/ethernet/netronome/nfp/abm/main.c if (!abm->red_support) abm 214 drivers/net/ethernet/netronome/nfp/abm/main.c err = nfp_abm_ctrl_qm_enable(abm); abm 230 drivers/net/ethernet/netronome/nfp/abm/main.c abm->eswitch_mode = DEVLINK_ESWITCH_MODE_SWITCHDEV; abm 234 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_reprs_all(abm); abm 235 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_ctrl_qm_disable(abm); abm 241 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_abm *abm = app->priv; abm 243 drivers/net/ethernet/netronome/nfp/abm/main.c if (abm->eswitch_mode == mode) abm 248 drivers/net/ethernet/netronome/nfp/abm/main.c return nfp_abm_eswitch_set_legacy(abm); abm 250 drivers/net/ethernet/netronome/nfp/abm/main.c return nfp_abm_eswitch_set_switchdev(abm); abm 257 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_vnic_set_mac(struct nfp_pf *pf, struct nfp_abm *abm, struct nfp_net *nn, abm 273 drivers/net/ethernet/netronome/nfp/abm/main.c eth_port->eth_index, abm->pf_id); abm 316 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_abm *abm = app->priv; abm 324 drivers/net/ethernet/netronome/nfp/abm/main.c alink->abm = abm; abm 335 drivers/net/ethernet/netronome/nfp/abm/main.c alink->prio_map = kzalloc(abm->prio_map_len, GFP_KERNEL); abm 350 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_vnic_set_mac(app->pf, abm, nn, id); abm 366 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_kill_reprs(alink->abm, alink); abm 376 drivers/net/ethernet/netronome/nfp/abm/main.c if (nfp_abm_has_prio(alink->abm)) abm 428 drivers/net/ethernet/netronome/nfp/abm/main.c static int nfp_abm_fw_init_reset(struct nfp_abm *abm) abm 432 drivers/net/ethernet/netronome/nfp/abm/main.c if (!abm->red_support) abm 435 drivers/net/ethernet/netronome/nfp/abm/main.c for (i = 0; i < abm->num_bands * NFP_NET_MAX_RX_RINGS; i++) { abm 436 drivers/net/ethernet/netronome/nfp/abm/main.c __nfp_abm_ctrl_set_q_lvl(abm, i, NFP_ABM_LVL_INFINITY); abm 437 drivers/net/ethernet/netronome/nfp/abm/main.c __nfp_abm_ctrl_set_q_act(abm, i, NFP_ABM_ACT_DROP); abm 440 drivers/net/ethernet/netronome/nfp/abm/main.c return nfp_abm_ctrl_qm_disable(abm); abm 447 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_abm *abm; abm 464 drivers/net/ethernet/netronome/nfp/abm/main.c abm = kzalloc(sizeof(*abm), GFP_KERNEL); abm 465 drivers/net/ethernet/netronome/nfp/abm/main.c if (!abm) abm 467 drivers/net/ethernet/netronome/nfp/abm/main.c app->priv = abm; abm 468 drivers/net/ethernet/netronome/nfp/abm/main.c abm->app = app; abm 470 drivers/net/ethernet/netronome/nfp/abm/main.c err = nfp_abm_ctrl_find_addrs(abm); abm 475 drivers/net/ethernet/netronome/nfp/abm/main.c abm->num_thresholds = array_size(abm->num_bands, NFP_NET_MAX_RX_RINGS); abm 476 drivers/net/ethernet/netronome/nfp/abm/main.c abm->threshold_undef = bitmap_zalloc(abm->num_thresholds, GFP_KERNEL); abm 477 drivers/net/ethernet/netronome/nfp/abm/main.c if (!abm->threshold_undef) abm 480 drivers/net/ethernet/netronome/nfp/abm/main.c abm->thresholds = kvcalloc(abm->num_thresholds, abm 481 drivers/net/ethernet/netronome/nfp/abm/main.c sizeof(*abm->thresholds), GFP_KERNEL); abm 482 drivers/net/ethernet/netronome/nfp/abm/main.c if (!abm->thresholds) abm 485 drivers/net/ethernet/netronome/nfp/abm/main.c abm->actions = kvcalloc(abm->num_thresholds, sizeof(*abm->actions), abm 487 drivers/net/ethernet/netronome/nfp/abm/main.c if (!abm->actions) abm 491 drivers/net/ethernet/netronome/nfp/abm/main.c err = nfp_abm_fw_init_reset(abm); abm 511 drivers/net/ethernet/netronome/nfp/abm/main.c kvfree(abm->actions); abm 513 drivers/net/ethernet/netronome/nfp/abm/main.c kvfree(abm->thresholds); abm 515 drivers/net/ethernet/netronome/nfp/abm/main.c bitmap_free(abm->threshold_undef); abm 517 drivers/net/ethernet/netronome/nfp/abm/main.c kfree(abm); abm 524 drivers/net/ethernet/netronome/nfp/abm/main.c struct nfp_abm *abm = app->priv; abm 526 drivers/net/ethernet/netronome/nfp/abm/main.c nfp_abm_eswitch_clean_up(abm); abm 529 drivers/net/ethernet/netronome/nfp/abm/main.c bitmap_free(abm->threshold_undef); abm 530 drivers/net/ethernet/netronome/nfp/abm/main.c kvfree(abm->actions); abm 531 drivers/net/ethernet/netronome/nfp/abm/main.c kvfree(abm->thresholds); abm 532 drivers/net/ethernet/netronome/nfp/abm/main.c kfree(abm); abm 207 drivers/net/ethernet/netronome/nfp/abm/main.h struct nfp_abm *abm; abm 225 drivers/net/ethernet/netronome/nfp/abm/main.h static inline bool nfp_abm_has_prio(struct nfp_abm *abm) abm 227 drivers/net/ethernet/netronome/nfp/abm/main.h return abm->num_bands > 1; abm 230 drivers/net/ethernet/netronome/nfp/abm/main.h static inline bool nfp_abm_has_drop(struct nfp_abm *abm) abm 232 drivers/net/ethernet/netronome/nfp/abm/main.h return abm->action_mask & BIT(NFP_ABM_ACT_DROP); abm 235 drivers/net/ethernet/netronome/nfp/abm/main.h static inline bool nfp_abm_has_mark(struct nfp_abm *abm) abm 237 drivers/net/ethernet/netronome/nfp/abm/main.h return abm->action_mask & BIT(NFP_ABM_ACT_MARK_DROP); abm 253 drivers/net/ethernet/netronome/nfp/abm/main.h int nfp_abm_ctrl_find_addrs(struct nfp_abm *abm); abm 254 drivers/net/ethernet/netronome/nfp/abm/main.h int __nfp_abm_ctrl_set_q_lvl(struct nfp_abm *abm, unsigned int id, u32 val); abm 257 drivers/net/ethernet/netronome/nfp/abm/main.h int __nfp_abm_ctrl_set_q_act(struct nfp_abm *abm, unsigned int id, abm 269 drivers/net/ethernet/netronome/nfp/abm/main.h int nfp_abm_ctrl_qm_enable(struct nfp_abm *abm); abm 270 drivers/net/ethernet/netronome/nfp/abm/main.h int nfp_abm_ctrl_qm_disable(struct nfp_abm *abm); abm 271 drivers/net/ethernet/netronome/nfp/abm/main.h void nfp_abm_prio_map_update(struct nfp_abm *abm); abm 48 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_cpp *cpp = alink->abm->app->cpp; abm 125 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_warn(alink->abm->app->cpp, "Offload of '%08x' stopped\n", abm 153 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_err(alink->abm->app->cpp, abm 161 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_err(alink->abm->app->cpp, abm 215 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < alink->abm->num_bands; i++) { abm 247 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_abm *abm = alink->abm; abm 254 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < abm->num_bands; i++) abm 255 drivers/net/ethernet/netronome/nfp/abm/qdisc.c __bitmap_set(abm->threshold_undef, abm 277 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < abm->num_thresholds; i++) abm 278 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (test_bit(i, abm->threshold_undef)) abm 279 drivers/net/ethernet/netronome/nfp/abm/qdisc.c __nfp_abm_ctrl_set_q_lvl(abm, i, NFP_ABM_LVL_INFINITY); abm 365 drivers/net/ethernet/netronome/nfp/abm/qdisc.c nfp_err(alink->abm->app->cpp, abm 519 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_cpp *cpp = alink->abm->app->cpp; abm 520 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_abm *abm = alink->abm; abm 533 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (opt->set.dp_cnt != abm->num_bands) { abm 535 drivers/net/ethernet/netronome/nfp/abm/qdisc.c abm->num_bands, opt->parent, opt->handle); abm 539 drivers/net/ethernet/netronome/nfp/abm/qdisc.c for (i = 0; i < abm->num_bands; i++) { abm 544 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!band->is_ecn && !nfp_abm_has_drop(abm)) { abm 549 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (band->is_ecn && !nfp_abm_has_mark(abm)) { abm 664 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_cpp *cpp = alink->abm->app->cpp; abm 665 drivers/net/ethernet/netronome/nfp/abm/qdisc.c struct nfp_abm *abm = alink->abm; abm 667 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (!opt->set.is_ecn && !nfp_abm_has_drop(abm)) { abm 672 drivers/net/ethernet/netronome/nfp/abm/qdisc.c if (opt->set.is_ecn && !nfp_abm_has_mark(abm)) {