Noted that if we get "node link is not enabled", then we also
get the videobuf2 splat for the driver not cleaning up correctly
on a failed start_streaming, and indeed we weren't returning the
buffers.
Checking the other error paths, noted that the "FE enabled, but
FE_CONFIG node is not" path was not calling pm_runtime_put.
Fix both paths.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
if (!check_state(cfe, NODE_ENABLED, node->id)) {
cfe_err("%s node link is not enabled.\n",
node_desc[node->id].name);
- return -EINVAL;
+ ret = -EINVAL;
+ goto err_streaming;
}
ret = pm_runtime_resume_and_get(&cfe->pdev->dev);
!check_state(cfe, NODE_ENABLED, cfe->node[FE_CONFIG].id)) {
cfe_err("FE enabled, but FE_CONFIG node is not\n");
ret = -EINVAL;
- goto err_streaming;
+ goto err_pm_put;
}
ret = media_pipeline_start(&node->pad, &cfe->pipe);