diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-core.c b/drivers/media/platform/arm/mali-c55/mali-c55-core.c index 5a061ec5ec5c..241a625f7284 100644 --- a/drivers/media/platform/arm/mali-c55/mali-c55-core.c +++ b/drivers/media/platform/arm/mali-c55/mali-c55-core.c @@ -510,11 +510,16 @@ bool mali_c55_pipeline_ready(struct mali_c55 *mali_c55) struct mali_c55_params *params = &mali_c55->params; struct mali_c55_stats *stats = &mali_c55->stats; - return vb2_start_streaming_called(&fr->queue) && + /* Only wait for queues connected through enabled media links. */ + return (!media_pad_remote_pad_first(&fr->pad) || + vb2_start_streaming_called(&fr->queue)) && (!(mali_c55->capabilities & MALI_C55_GPS_DS_PIPE_FITTED) || + !media_pad_remote_pad_first(&ds->pad) || vb2_start_streaming_called(&ds->queue)) && - vb2_start_streaming_called(¶ms->queue) && - vb2_start_streaming_called(&stats->queue); + (!media_pad_remote_pad_first(¶ms->pad) || + vb2_start_streaming_called(¶ms->queue)) && + (!media_pad_remote_pad_first(&stats->pad) || + vb2_start_streaming_called(&stats->queue)); } static int mali_c55_check_hwcfg(struct mali_c55 *mali_c55)