Patch "media: mediatek: vcodec: decoder: Fix 4K frame size enumeration" has been added to the 5.19-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: mediatek: vcodec: decoder: Fix 4K frame size enumeration

to the 5.19-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-mediatek-vcodec-decoder-fix-4k-frame-size-enum.patch
and it can be found in the queue-5.19 subdirectory.

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



commit a4f41504e096fae9dd4ee84e7d3130b8fce83bcc
Author: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
Date:   Wed Jul 6 09:21:34 2022 +0100

    media: mediatek: vcodec: decoder: Fix 4K frame size enumeration
    
    [ Upstream commit f1748f8f8174a65a885a8e6c0dc11658a6705ac2 ]
    
    This partially reverts commit b018be06f3c7 ("media: mediatek: vcodec:
    Read max resolution from dec_capability"). In this commit, the maximum
    resolution ended up being a function of both the firmware capability and
    the current set format.
    
    However, frame size enumeration for output (coded) formats should not
    depend on the format set, but should return supported resolutions for
    the format requested by userspace.
    
    Fix this so that the driver returns the supported resolutions correctly,
    even if the instance only has default settings, or if the output format
    is currently set to VP8F, which does not support 4K.
    
    This adds an copy of special casing for !VP8 and 4K support. The other
    existing copy will be removed when .max_{width,height} are removed from
    |struct mtk_vcodec_ctx| in a subsequent patch.
    
    Fixes: b018be06f3c7 ("media: mediatek: vcodec: Read max resolution from dec_capability")
    Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
    Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
index 01836a1c7d3f..393b127138f3 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
@@ -536,8 +536,6 @@ static int vidioc_enum_framesizes(struct file *file, void *priv,
 		fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE;
 		fsize->stepwise = dec_pdata->vdec_framesizes[i].stepwise;
 
-		fsize->stepwise.max_width = ctx->max_width;
-		fsize->stepwise.max_height = ctx->max_height;
 		mtk_v4l2_debug(1, "%x, %d %d %d %d %d %d",
 				ctx->dev->dec_capability,
 				fsize->stepwise.min_width,
diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c
index 16d55785d84b..9a4d3e3658aa 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c
@@ -360,6 +360,13 @@ static void mtk_vcodec_add_formats(unsigned int fourcc,
 
 		mtk_vdec_framesizes[count_framesizes].fourcc = fourcc;
 		mtk_vdec_framesizes[count_framesizes].stepwise = stepwise_fhd;
+		if (!(ctx->dev->dec_capability & VCODEC_CAPABILITY_4K_DISABLED) &&
+		    fourcc != V4L2_PIX_FMT_VP8_FRAME) {
+			mtk_vdec_framesizes[count_framesizes].stepwise.max_width =
+				VCODEC_DEC_4K_CODED_WIDTH;
+			mtk_vdec_framesizes[count_framesizes].stepwise.max_height =
+				VCODEC_DEC_4K_CODED_HEIGHT;
+		}
 		num_framesizes++;
 		break;
 	case V4L2_PIX_FMT_MM21:



[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