X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0742-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch;fp=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0742-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch;h=0000000000000000000000000000000000000000;hb=7d7aa2fd924c27829ec25f825481554dd81bce97;hp=9c9a0bf6bbc6e34674164b00945827ec5b8af881;hpb=e7bfda2c243e66a75ff966ba04c28b1590b5d24c;p=openwrt%2Fstaging%2Fchunkeey.git diff --git a/target/linux/brcm2708/patches-4.19/950-0742-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch b/target/linux/brcm2708/patches-4.19/950-0742-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch deleted file mode 100644 index 9c9a0bf6bb..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0742-staging-bcm2835-codec-Add-support-for-ENUM_FRAMESIZE.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 9894906ad424f266853b61a6996b2da8b119c6e6 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Fri, 13 Sep 2019 17:19:33 +0100 -Subject: [PATCH] staging:bcm2835-codec: Add support for - ENUM_FRAMESIZES - -Required for compliance testing for the encoder. - -Signed-off-by: Dave Stevenson ---- - .../bcm2835-codec/bcm2835-v4l2-codec.c | 48 +++++++++++++++++-- - 1 file changed, 44 insertions(+), 4 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c -+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c -@@ -496,9 +496,10 @@ struct bcm2835_codec_fmt *get_default_fo - return &dev->supported_fmts[capture ? 1 : 0].list[0]; - } - --static struct bcm2835_codec_fmt *find_format(struct v4l2_format *f, -- struct bcm2835_codec_dev *dev, -- bool capture) -+static -+struct bcm2835_codec_fmt *find_format_pix_fmt(u32 pix_fmt, -+ struct bcm2835_codec_dev *dev, -+ bool capture) - { - struct bcm2835_codec_fmt *fmt; - unsigned int k; -@@ -507,7 +508,7 @@ static struct bcm2835_codec_fmt *find_fo - - for (k = 0; k < fmts->num_entries; k++) { - fmt = &fmts->list[k]; -- if (fmt->fourcc == f->fmt.pix_mp.pixelformat) -+ if (fmt->fourcc == pix_fmt) - break; - } - if (k == fmts->num_entries) -@@ -516,6 +517,14 @@ static struct bcm2835_codec_fmt *find_fo - return &fmts->list[k]; - } - -+static inline -+struct bcm2835_codec_fmt *find_format(struct v4l2_format *f, -+ struct bcm2835_codec_dev *dev, -+ bool capture) -+{ -+ return find_format_pix_fmt(f->fmt.pix_mp.pixelformat, dev, capture); -+} -+ - static inline struct bcm2835_codec_ctx *file2ctx(struct file *file) - { - return container_of(file->private_data, struct bcm2835_codec_ctx, fh); -@@ -1792,6 +1801,36 @@ static int vidioc_encoder_cmd(struct fil - return 0; - } - -+static int vidioc_enum_framesizes(struct file *file, void *fh, -+ struct v4l2_frmsizeenum *fsize) -+{ -+ struct bcm2835_codec_fmt *fmt; -+ -+ fmt = find_format_pix_fmt(fsize->pixel_format, file2ctx(file)->dev, -+ true); -+ if (!fmt) -+ fmt = find_format_pix_fmt(fsize->pixel_format, -+ file2ctx(file)->dev, -+ false); -+ -+ if (!fmt) -+ return -EINVAL; -+ -+ if (fsize->index) -+ return -EINVAL; -+ -+ fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE; -+ -+ fsize->stepwise.min_width = MIN_W; -+ fsize->stepwise.max_width = MAX_W; -+ fsize->stepwise.step_width = 1; -+ fsize->stepwise.min_height = MIN_H; -+ fsize->stepwise.max_height = MAX_H; -+ fsize->stepwise.step_height = 1; -+ -+ return 0; -+} -+ - static const struct v4l2_ioctl_ops bcm2835_codec_ioctl_ops = { - .vidioc_querycap = vidioc_querycap, - -@@ -1829,6 +1868,7 @@ static const struct v4l2_ioctl_ops bcm28 - .vidioc_try_decoder_cmd = vidioc_try_decoder_cmd, - .vidioc_encoder_cmd = vidioc_encoder_cmd, - .vidioc_try_encoder_cmd = vidioc_try_encoder_cmd, -+ .vidioc_enum_framesizes = vidioc_enum_framesizes, - }; - - static int bcm2835_codec_set_ctrls(struct bcm2835_codec_ctx *ctx)