Lines Matching refs:pool
774 static void dce112_resource_destruct(struct dce110_resource_pool *pool) in dce112_resource_destruct() argument
778 for (i = 0; i < pool->base.pipe_count; i++) { in dce112_resource_destruct()
779 if (pool->base.opps[i] != NULL) in dce112_resource_destruct()
780 dce110_opp_destroy(&pool->base.opps[i]); in dce112_resource_destruct()
782 if (pool->base.transforms[i] != NULL) in dce112_resource_destruct()
783 dce112_transform_destroy(&pool->base.transforms[i]); in dce112_resource_destruct()
785 if (pool->base.ipps[i] != NULL) in dce112_resource_destruct()
786 dce_ipp_destroy(&pool->base.ipps[i]); in dce112_resource_destruct()
788 if (pool->base.mis[i] != NULL) { in dce112_resource_destruct()
789 kfree(TO_DCE_MEM_INPUT(pool->base.mis[i])); in dce112_resource_destruct()
790 pool->base.mis[i] = NULL; in dce112_resource_destruct()
793 if (pool->base.timing_generators[i] != NULL) { in dce112_resource_destruct()
794 kfree(DCE110TG_FROM_TG(pool->base.timing_generators[i])); in dce112_resource_destruct()
795 pool->base.timing_generators[i] = NULL; in dce112_resource_destruct()
799 for (i = 0; i < pool->base.res_cap->num_ddc; i++) { in dce112_resource_destruct()
800 if (pool->base.engines[i] != NULL) in dce112_resource_destruct()
801 dce110_engine_destroy(&pool->base.engines[i]); in dce112_resource_destruct()
802 if (pool->base.hw_i2cs[i] != NULL) { in dce112_resource_destruct()
803 kfree(pool->base.hw_i2cs[i]); in dce112_resource_destruct()
804 pool->base.hw_i2cs[i] = NULL; in dce112_resource_destruct()
806 if (pool->base.sw_i2cs[i] != NULL) { in dce112_resource_destruct()
807 kfree(pool->base.sw_i2cs[i]); in dce112_resource_destruct()
808 pool->base.sw_i2cs[i] = NULL; in dce112_resource_destruct()
812 for (i = 0; i < pool->base.stream_enc_count; i++) { in dce112_resource_destruct()
813 if (pool->base.stream_enc[i] != NULL) in dce112_resource_destruct()
814 kfree(DCE110STRENC_FROM_STRENC(pool->base.stream_enc[i])); in dce112_resource_destruct()
817 for (i = 0; i < pool->base.clk_src_count; i++) { in dce112_resource_destruct()
818 if (pool->base.clock_sources[i] != NULL) { in dce112_resource_destruct()
819 dce112_clock_source_destroy(&pool->base.clock_sources[i]); in dce112_resource_destruct()
823 if (pool->base.dp_clock_source != NULL) in dce112_resource_destruct()
824 dce112_clock_source_destroy(&pool->base.dp_clock_source); in dce112_resource_destruct()
826 for (i = 0; i < pool->base.audio_count; i++) { in dce112_resource_destruct()
827 if (pool->base.audios[i] != NULL) { in dce112_resource_destruct()
828 dce_aud_destroy(&pool->base.audios[i]); in dce112_resource_destruct()
832 if (pool->base.abm != NULL) in dce112_resource_destruct()
833 dce_abm_destroy(&pool->base.abm); in dce112_resource_destruct()
835 if (pool->base.dmcu != NULL) in dce112_resource_destruct()
836 dce_dmcu_destroy(&pool->base.dmcu); in dce112_resource_destruct()
838 if (pool->base.irqs != NULL) { in dce112_resource_destruct()
839 dal_irq_service_destroy(&pool->base.irqs); in dce112_resource_destruct()
845 const struct resource_pool *pool, in find_matching_pll() argument
850 return pool->clock_sources[DCE112_CLK_SRC_PLL0]; in find_matching_pll()
852 return pool->clock_sources[DCE112_CLK_SRC_PLL1]; in find_matching_pll()
854 return pool->clock_sources[DCE112_CLK_SRC_PLL2]; in find_matching_pll()
856 return pool->clock_sources[DCE112_CLK_SRC_PLL3]; in find_matching_pll()
858 return pool->clock_sources[DCE112_CLK_SRC_PLL4]; in find_matching_pll()
860 return pool->clock_sources[DCE112_CLK_SRC_PLL5]; in find_matching_pll()
1039 static void dce112_destroy_resource_pool(struct resource_pool **pool) in dce112_destroy_resource_pool() argument
1041 struct dce110_resource_pool *dce110_pool = TO_DCE110_RES_POOL(*pool); in dce112_destroy_resource_pool()
1045 *pool = NULL; in dce112_destroy_resource_pool()
1220 struct dce110_resource_pool *pool) in dce112_resource_construct() argument
1227 pool->base.res_cap = dce112_resource_cap(&ctx->asic_id); in dce112_resource_construct()
1228 pool->base.funcs = &dce112_res_pool_funcs; in dce112_resource_construct()
1233 pool->base.underlay_pipe_index = NO_UNDERLAY_PIPE; in dce112_resource_construct()
1234 pool->base.pipe_count = pool->base.res_cap->num_timing_generator; in dce112_resource_construct()
1235 pool->base.timing_generator_count = pool->base.res_cap->num_timing_generator; in dce112_resource_construct()
1248 pool->base.clock_sources[DCE112_CLK_SRC_PLL0] = in dce112_resource_construct()
1253 pool->base.clock_sources[DCE112_CLK_SRC_PLL1] = in dce112_resource_construct()
1258 pool->base.clock_sources[DCE112_CLK_SRC_PLL2] = in dce112_resource_construct()
1263 pool->base.clock_sources[DCE112_CLK_SRC_PLL3] = in dce112_resource_construct()
1268 pool->base.clock_sources[DCE112_CLK_SRC_PLL4] = in dce112_resource_construct()
1273 pool->base.clock_sources[DCE112_CLK_SRC_PLL5] = in dce112_resource_construct()
1278 pool->base.clk_src_count = DCE112_CLK_SRC_TOTAL; in dce112_resource_construct()
1280 pool->base.dp_clock_source = dce112_clock_source_create( in dce112_resource_construct()
1285 for (i = 0; i < pool->base.clk_src_count; i++) { in dce112_resource_construct()
1286 if (pool->base.clock_sources[i] == NULL) { in dce112_resource_construct()
1293 pool->base.dmcu = dce_dmcu_create(ctx, in dce112_resource_construct()
1297 if (pool->base.dmcu == NULL) { in dce112_resource_construct()
1303 pool->base.abm = dce_abm_create(ctx, in dce112_resource_construct()
1307 if (pool->base.abm == NULL) { in dce112_resource_construct()
1316 pool->base.irqs = dal_irq_service_dce110_create(&init_data); in dce112_resource_construct()
1317 if (!pool->base.irqs) in dce112_resource_construct()
1321 for (i = 0; i < pool->base.pipe_count; i++) { in dce112_resource_construct()
1322 pool->base.timing_generators[i] = in dce112_resource_construct()
1327 if (pool->base.timing_generators[i] == NULL) { in dce112_resource_construct()
1333 pool->base.mis[i] = dce112_mem_input_create(ctx, i); in dce112_resource_construct()
1334 if (pool->base.mis[i] == NULL) { in dce112_resource_construct()
1341 pool->base.ipps[i] = dce112_ipp_create(ctx, i); in dce112_resource_construct()
1342 if (pool->base.ipps[i] == NULL) { in dce112_resource_construct()
1349 pool->base.transforms[i] = dce112_transform_create(ctx, i); in dce112_resource_construct()
1350 if (pool->base.transforms[i] == NULL) { in dce112_resource_construct()
1357 pool->base.opps[i] = dce112_opp_create( in dce112_resource_construct()
1360 if (pool->base.opps[i] == NULL) { in dce112_resource_construct()
1368 for (i = 0; i < pool->base.res_cap->num_ddc; i++) { in dce112_resource_construct()
1369 pool->base.engines[i] = dce112_aux_engine_create(ctx, i); in dce112_resource_construct()
1370 if (pool->base.engines[i] == NULL) { in dce112_resource_construct()
1376 pool->base.hw_i2cs[i] = dce112_i2c_hw_create(ctx, i); in dce112_resource_construct()
1377 if (pool->base.hw_i2cs[i] == NULL) { in dce112_resource_construct()
1383 pool->base.sw_i2cs[i] = NULL; in dce112_resource_construct()
1386 if (!resource_construct(num_virtual_links, dc, &pool->base, in dce112_resource_construct()
1390 dc->caps.max_planes = pool->base.pipe_count; in dce112_resource_construct()
1405 dce112_resource_destruct(pool); in dce112_resource_construct()
1413 struct dce110_resource_pool *pool = in dce112_create_resource_pool() local
1416 if (!pool) in dce112_create_resource_pool()
1419 if (dce112_resource_construct(num_virtual_links, dc, pool)) in dce112_create_resource_pool()
1420 return &pool->base; in dce112_create_resource_pool()
1422 kfree(pool); in dce112_create_resource_pool()