Patch "media: rcar-vin: Fix YUYV8_1X16 handling for CSI-2" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    media: rcar-vin: Fix YUYV8_1X16 handling for CSI-2

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     media-rcar-vin-fix-yuyv8_1x16-handling-for-csi-2.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 1c68607274fd8da3ae52e8fba283efa7f496e0f5
Author: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
Date:   Mon Jun 17 18:11:24 2024 +0200

    media: rcar-vin: Fix YUYV8_1X16 handling for CSI-2
    
    [ Upstream commit 9caf253e8ad6f4c66f5591bac900f9f68b6b6620 ]
    
    The YUYV8_1X16 and UYVY8_1X16 formats are treated as 'ITU-R
    BT.601/BT.1358 16-bit YCbCr-422 input' (YUV16 - 0x5) in the R-Car VIN
    driver and are thus disallowed when capturing frames from the R-Car
    CSI-2 interface according to the hardware manual.
    
    As the 1X16 format variants are meant to be used with serial busses they
    have to be treated as 'YCbCr-422 8-bit data input' (0x1) when capturing
    from CSI-2, which is a valid setting for CSI-2.
    
    Commit 78b3f9d75a62 ("media: rcar-vin: Add check that input interface
    and format are valid") disallowed capturing YUV16 when using the CSI-2
    interface. Fix this by using YUV8_BT601 for YCbCr422 when CSI-2 is in
    use.
    
    Fixes: 78b3f9d75a62 ("media: rcar-vin: Add check that input interface and format are valid")
    Signed-off-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
    Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
    Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>
    Tested-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240617161135.130719-2-jacopo.mondi@xxxxxxxxxxxxxxxx
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/media/platform/renesas/rcar-vin/rcar-dma.c b/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
index ef5adffae1972..8bfb020b2f260 100644
--- a/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
+++ b/drivers/media/platform/renesas/rcar-vin/rcar-dma.c
@@ -665,12 +665,22 @@ static int rvin_setup(struct rvin_dev *vin)
 	 */
 	switch (vin->mbus_code) {
 	case MEDIA_BUS_FMT_YUYV8_1X16:
-		/* BT.601/BT.1358 16bit YCbCr422 */
-		vnmc |= VNMC_INF_YUV16;
+		if (vin->is_csi)
+			/* YCbCr422 8-bit */
+			vnmc |= VNMC_INF_YUV8_BT601;
+		else
+			/* BT.601/BT.1358 16bit YCbCr422 */
+			vnmc |= VNMC_INF_YUV16;
 		input_is_yuv = true;
 		break;
 	case MEDIA_BUS_FMT_UYVY8_1X16:
-		vnmc |= VNMC_INF_YUV16 | VNMC_YCAL;
+		if (vin->is_csi)
+			/* YCbCr422 8-bit */
+			vnmc |= VNMC_INF_YUV8_BT601;
+		else
+			/* BT.601/BT.1358 16bit YCbCr422 */
+			vnmc |= VNMC_INF_YUV16;
+		vnmc |= VNMC_YCAL;
 		input_is_yuv = true;
 		break;
 	case MEDIA_BUS_FMT_UYVY8_2X8:




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux