[PATCH 33/74] media: qcom: camss: vfe: Add support for stopping outputs which contain multiple write masters

From: Bryan O'Donoghue

Date: Mon Oct 05 2026 - 13:34:32 EST


Signed-off-by: Bryan O'Donoghue <bod@xxxxxxxxxx>
---
drivers/media/platform/qcom/camss/camss-vfe.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c
index 23c86e08776ea..f7907287c8ed4 100644
--- a/drivers/media/platform/qcom/camss/camss-vfe.c
+++ b/drivers/media/platform/qcom/camss/camss-vfe.c
@@ -968,13 +968,17 @@ int vfe_put_output(struct vfe_line *line)
static int vfe_disable_output(struct vfe_line *line)
{
struct vfe_device *vfe = to_vfe(line);
+ const struct vfe_hw_ops *ops = vfe->res->hw_ops;
struct vfe_output *output = &line->output[0];
unsigned long flags;
unsigned int i;

spin_lock_irqsave(&vfe->output_lock, flags);
for (i = 0; i < output->wm_num; i++)
- vfe->res->hw_ops->vfe_wm_stop(vfe, output->wm[i].bus_client);
+ if (ops->vfe_output_stop)
+ ops->vfe_output_stop(vfe, output);
+ else
+ ops->vfe_wm_stop(vfe, output->wm[i].bus_client);
output->gen2.active_num = 0;
spin_unlock_irqrestore(&vfe->output_lock, flags);


--
2.55.0