]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: mgb4: Unify the outputs padding logic with the inputs
authorMartin Tůma <martin.tuma@digiteqautomotive.com>
Wed, 20 Nov 2024 14:48:44 +0000 (15:48 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Mon, 2 Dec 2024 13:05:26 +0000 (14:05 +0100)
Write the padding to the HW registers at the same place as the input logic
does.

Signed-off-by: Martin Tůma <martin.tuma@digiteqautomotive.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/pci/mgb4/mgb4_vout.c

index 6b2791e29de15e5124c5a05ed5bf1a9e2668f6d5..600f858918e7689a0029daa7993edae08b707d70 100644 (file)
@@ -180,7 +180,10 @@ static void stop_streaming(struct vb2_queue *vq)
 
        xdma_disable_user_irq(mgbdev->xdev, irq);
        cancel_work_sync(&voutdev->dma_work);
+
        mgb4_mask_reg(&mgbdev->video, voutdev->config->regs.config, 0x2, 0x0);
+       mgb4_write_reg(&mgbdev->video, voutdev->config->regs.padding, 0);
+
        return_all_buffers(voutdev, VB2_BUF_STATE_ERROR);
 }
 
@@ -196,6 +199,7 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
        int rv;
        u32 addr;
 
+       mgb4_write_reg(video, config->regs.padding, voutdev->padding);
        mgb4_mask_reg(video, config->regs.config, 0x2, 0x2);
 
        addr = mgb4_read_reg(video, config->regs.address);
@@ -359,7 +363,6 @@ static int vidioc_s_fmt(struct file *file, void *priv, struct v4l2_format *f)
 
        voutdev->padding = (f->fmt.pix.bytesperline - (f->fmt.pix.width
                            * pixelsize)) / pixelsize;
-       mgb4_write_reg(video, voutdev->config->regs.padding, voutdev->padding);
 
        return 0;
 }