diff --git a/config/kernel/linux-rockchip-edge.config b/config/kernel/linux-rockchip-edge.config index 312332355..ad2e71c24 100644 --- a/config/kernel/linux-rockchip-edge.config +++ b/config/kernel/linux-rockchip-edge.config @@ -2,7 +2,6 @@ CONFIG_DEFAULT_HOSTNAME="localhost" CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y -CONFIG_USELIB=y CONFIG_NO_HZ_IDLE=y CONFIG_HIGH_RES_TIMERS=y CONFIG_BPF_SYSCALL=y @@ -386,7 +385,6 @@ CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m -CONFIG_IP_DCCP=m CONFIG_IP_SCTP=m CONFIG_RDS=m CONFIG_RDS_TCP=m @@ -1129,6 +1127,7 @@ CONFIG_MEDIA_TUNER_XC5000=y # CONFIG_DVB_CXD2099 is not set # CONFIG_DVB_SP2 is not set CONFIG_DRM=y +CONFIG_DRM_SIMPLEDRM=m CONFIG_DRM_ROCKCHIP=y CONFIG_ROCKCHIP_DW_HDMI=y CONFIG_ROCKCHIP_INNO_HDMI=y @@ -1138,7 +1137,6 @@ CONFIG_DRM_PANEL_SIMPLE=m CONFIG_DRM_DISPLAY_CONNECTOR=m CONFIG_DRM_SIMPLE_BRIDGE=m CONFIG_DRM_DW_HDMI_CEC=m -CONFIG_DRM_SIMPLEDRM=m CONFIG_DRM_LIMA=m CONFIG_DRM_PANFROST=m CONFIG_FB=y @@ -1559,8 +1557,8 @@ CONFIG_HID_SENSOR_ACCEL_3D=m CONFIG_AD7606_IFACE_SPI=m CONFIG_AD7768_1=m CONFIG_ROCKCHIP_SARADC=y -CONFIG_TI_ADS8344=m CONFIG_TI_ADS124S08=m +CONFIG_TI_ADS8344=m CONFIG_IIO_RESCALE=m CONFIG_BME680=m CONFIG_PMS7003=m @@ -1735,7 +1733,6 @@ CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_LSM="yama,loadpin,safesetid,integrity" CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_PCRYPT=m -CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ECDSA=m CONFIG_CRYPTO_ECRDSA=m CONFIG_CRYPTO_CURVE25519=m @@ -1782,7 +1779,6 @@ CONFIG_CRYPTO_NHPOLY1305_NEON=m CONFIG_CRYPTO_BLAKE2B_NEON=m CONFIG_CRYPTO_SHA1_ARM_NEON=m CONFIG_CRYPTO_SHA1_ARM_CE=m -CONFIG_CRYPTO_SHA2_ARM_CE=m CONFIG_CRYPTO_SHA512_ARM=m CONFIG_CRYPTO_AES_ARM_BS=m CONFIG_CRYPTO_AES_ARM_CE=m diff --git a/config/sources/families/rockchip.conf b/config/sources/families/rockchip.conf index 498dd1c03..b67437d54 100644 --- a/config/sources/families/rockchip.conf +++ b/config/sources/families/rockchip.conf @@ -56,7 +56,7 @@ case $BRANCH in edge) - declare -g KERNEL_MAJOR_MINOR="6.15" # Major and minor versions of this kernel. + declare -g KERNEL_MAJOR_MINOR="6.16" # Major and minor versions of this kernel. ;; esac diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-0011-v4l2-from-list.patch b/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-0011-v4l2-from-list.patch deleted file mode 100644 index ed0c61c2c..000000000 --- a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-0011-v4l2-from-list.patch +++ /dev/null @@ -1,659 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 6 Jul 2020 21:54:35 +0000 -Subject: [PATCH] media: v4l2-common: Add helpers to calculate bytesperline and - sizeimage - -Add helper functions to calculate plane bytesperline and sizeimage, these -new helpers consider block width and height when calculating plane -bytesperline and sizeimage. - -This prepare support for new pixel formats added in next patch that make -use of block width and height. - -Signed-off-by: Jonas Karlman ---- - drivers/media/v4l2-core/v4l2-common.c | 77 +++++++++++++-------------- - 1 file changed, 38 insertions(+), 39 deletions(-) - -diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c -index e0fbe6ba4b6c..cb2f1acab7cf 100644 ---- a/drivers/media/v4l2-core/v4l2-common.c -+++ b/drivers/media/v4l2-core/v4l2-common.c -@@ -338,6 +338,33 @@ static inline unsigned int v4l2_format_block_height(const struct v4l2_format_inf - return info->block_h[plane]; - } - -+static inline unsigned int v4l2_format_plane_width(const struct v4l2_format_info *info, int plane, -+ unsigned int width) -+{ -+ unsigned int hdiv = plane ? info->hdiv : 1; -+ unsigned int bytes = DIV_ROUND_UP(width * info->bpp[plane], -+ v4l2_format_block_width(info, plane) * -+ v4l2_format_block_height(info, plane)); -+ -+ return DIV_ROUND_UP(bytes, hdiv); -+} -+ -+static inline unsigned int v4l2_format_plane_height(const struct v4l2_format_info *info, int plane, -+ unsigned int height) -+{ -+ unsigned int vdiv = plane ? info->vdiv : 1; -+ unsigned int lines = ALIGN(height, v4l2_format_block_height(info, plane)); -+ -+ return DIV_ROUND_UP(lines, vdiv); -+} -+ -+static inline unsigned int v4l2_format_plane_size(const struct v4l2_format_info *info, int plane, -+ unsigned int width, unsigned int height) -+{ -+ return v4l2_format_plane_width(info, plane, width) * -+ v4l2_format_plane_height(info, plane, height); -+} -+ - void v4l2_apply_frmsize_constraints(u32 *width, u32 *height, - const struct v4l2_frmsize_stepwise *frmsize) - { -@@ -373,37 +400,19 @@ int v4l2_fill_pixfmt_mp(struct v4l2_pix_format_mplane *pixfmt, - - if (info->mem_planes == 1) { - plane = &pixfmt->plane_fmt[0]; -- plane->bytesperline = ALIGN(width, v4l2_format_block_width(info, 0)) * info->bpp[0] / info->bpp_div[0]; -+ plane->bytesperline = v4l2_format_plane_width(info, 0, width); - plane->sizeimage = 0; - -- for (i = 0; i < info->comp_planes; i++) { -- unsigned int hdiv = (i == 0) ? 1 : info->hdiv; -- unsigned int vdiv = (i == 0) ? 1 : info->vdiv; -- unsigned int aligned_width; -- unsigned int aligned_height; -- -- aligned_width = ALIGN(width, v4l2_format_block_width(info, i)); -- aligned_height = ALIGN(height, v4l2_format_block_height(info, i)); -- -- plane->sizeimage += info->bpp[i] * -- DIV_ROUND_UP(aligned_width, hdiv) * -- DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i]; -- } -+ for (i = 0; i < info->comp_planes; i++) -+ plane->sizeimage += -+ v4l2_format_plane_size(info, i, width, height); - } else { - for (i = 0; i < info->comp_planes; i++) { -- unsigned int hdiv = (i == 0) ? 1 : info->hdiv; -- unsigned int vdiv = (i == 0) ? 1 : info->vdiv; -- unsigned int aligned_width; -- unsigned int aligned_height; -- -- aligned_width = ALIGN(width, v4l2_format_block_width(info, i)); -- aligned_height = ALIGN(height, v4l2_format_block_height(info, i)); -- - plane = &pixfmt->plane_fmt[i]; - plane->bytesperline = -- info->bpp[i] * DIV_ROUND_UP(aligned_width, hdiv) / info->bpp_div[i]; -- plane->sizeimage = -- plane->bytesperline * DIV_ROUND_UP(aligned_height, vdiv); -+ v4l2_format_plane_width(info, i, width); -+ plane->sizeimage = plane->bytesperline * -+ v4l2_format_plane_height(info, i, height); - } - } - return 0; -@@ -427,22 +436,12 @@ int v4l2_fill_pixfmt(struct v4l2_pix_format *pixfmt, u32 pixelformat, - pixfmt->width = width; - pixfmt->height = height; - pixfmt->pixelformat = pixelformat; -- pixfmt->bytesperline = ALIGN(width, v4l2_format_block_width(info, 0)) * info->bpp[0] / info->bpp_div[0]; -+ pixfmt->bytesperline = v4l2_format_plane_width(info, 0, width); - pixfmt->sizeimage = 0; - -- for (i = 0; i < info->comp_planes; i++) { -- unsigned int hdiv = (i == 0) ? 1 : info->hdiv; -- unsigned int vdiv = (i == 0) ? 1 : info->vdiv; -- unsigned int aligned_width; -- unsigned int aligned_height; -- -- aligned_width = ALIGN(width, v4l2_format_block_width(info, i)); -- aligned_height = ALIGN(height, v4l2_format_block_height(info, i)); -- -- pixfmt->sizeimage += info->bpp[i] * -- DIV_ROUND_UP(aligned_width, hdiv) * -- DIV_ROUND_UP(aligned_height, vdiv) / info->bpp_div[i]; -- } -+ for (i = 0; i < info->comp_planes; i++) -+ pixfmt->sizeimage += -+ v4l2_format_plane_size(info, i, width, height); - return 0; - } - EXPORT_SYMBOL_GPL(v4l2_fill_pixfmt); - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 6 Jul 2020 21:54:36 +0000 -Subject: [PATCH] media: v4l2: Add NV15 and NV20 pixel formats - -Add NV15 and NV20 pixel formats used by the Rockchip Video Decoder for -10-bit buffers. - -NV15 and NV20 is a packed 10-bit 4:2:0/4:2:2 semi-planar Y/UV format -similar to P010 and P210 but has no padding between components. Instead, -luminance and chrominance samples are grouped into 4s so that each group is -packed into an integer number of bytes: - -YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes - -The '15' and '20' suffix refers to the optimum effective bits per pixel -which is achieved when the total number of luminance samples is a multiple -of 8 for NV15 and 4 for NV20. - -Signed-off-by: Jonas Karlman ---- - drivers/media/v4l2-core/v4l2-common.c | 3 +++ - drivers/media/v4l2-core/v4l2-ioctl.c | 2 ++ - include/uapi/linux/videodev2.h | 3 +++ - 3 files changed, 8 insertions(+) - -diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c -index cb2f1acab7cf..8446a1deffd8 100644 ---- a/drivers/media/v4l2-core/v4l2-common.c -+++ b/drivers/media/v4l2-core/v4l2-common.c -@@ -268,6 +268,9 @@ const struct v4l2_format_info *v4l2_format_info(u32 format) - { .format = V4L2_PIX_FMT_NV42, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 1, .vdiv = 1 }, - { .format = V4L2_PIX_FMT_P010, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 2, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 }, - -+ { .format = V4L2_PIX_FMT_NV15, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 5, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 2, .block_w = { 4, 2, 0, 0 }, .block_h = { 1, 1, 0, 0 } }, -+ { .format = V4L2_PIX_FMT_NV20, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 5, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1, .block_w = { 4, 2, 0, 0 }, .block_h = { 1, 1, 0, 0 } }, -+ - { .format = V4L2_PIX_FMT_YUV410, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 4, .vdiv = 4 }, - { .format = V4L2_PIX_FMT_YVU410, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 4, .vdiv = 4 }, - { .format = V4L2_PIX_FMT_YUV411P, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 4, .vdiv = 1 }, -diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c -index e6fd355a2e92..24771edaa4f2 100644 ---- a/drivers/media/v4l2-core/v4l2-ioctl.c -+++ b/drivers/media/v4l2-core/v4l2-ioctl.c -@@ -1354,6 +1354,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) - case V4L2_PIX_FMT_NV42: descr = "Y/VU 4:4:4"; break; - case V4L2_PIX_FMT_P010: descr = "10-bit Y/UV 4:2:0"; break; - case V4L2_PIX_FMT_P012: descr = "12-bit Y/UV 4:2:0"; break; -+ case V4L2_PIX_FMT_NV15: descr = "10-bit Y/UV 4:2:0 (Packed)"; break; -+ case V4L2_PIX_FMT_NV20: descr = "10-bit Y/UV 4:2:2 (Packed)"; break; - case V4L2_PIX_FMT_NV12_4L4: descr = "Y/UV 4:2:0 (4x4 Linear)"; break; - case V4L2_PIX_FMT_NV12_16L16: descr = "Y/UV 4:2:0 (16x16 Linear)"; break; - case V4L2_PIX_FMT_NV12_32L32: descr = "Y/UV 4:2:0 (32x32 Linear)"; break; -diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h -index 01e630f2ec78..cea44992aea3 100644 ---- a/include/uapi/linux/videodev2.h -+++ b/include/uapi/linux/videodev2.h -@@ -628,6 +628,9 @@ struct v4l2_pix_format { - #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/VU 4:4:4 */ - #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/UV 4:2:0 10-bit per component */ - -+#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/UV 4:2:0 10-bit packed */ -+#define V4L2_PIX_FMT_NV20 v4l2_fourcc('N', 'V', '2', '0') /* 20 Y/UV 4:2:2 10-bit packed */ -+ - /* two non contiguous planes - one Y, one Cr + Cb interleaved */ - #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/UV 4:2:0 */ - #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/VU 4:2:0 */ - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 6 Jul 2020 21:54:36 +0000 -Subject: [PATCH] media: rkvdec: h264: Use bytesperline and buffer height to - calculate stride - -Use bytesperline and buffer height to calculate the strides configured. - -This does not really change anything other than ensuring the bytesperline -that is signaled to userspace matches what is configured in HW. - -Signed-off-by: Jonas Karlman ---- - drivers/staging/media/rkvdec/rkvdec-h264.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c -index 4fc167b42cf0..a8635105e387 100644 ---- a/drivers/staging/media/rkvdec/rkvdec-h264.c -+++ b/drivers/staging/media/rkvdec/rkvdec-h264.c -@@ -896,9 +896,9 @@ static void config_registers(struct rkvdec_ctx *ctx, - dma_addr_t rlc_addr; - dma_addr_t refer_addr; - u32 rlc_len; -- u32 hor_virstride = 0; -- u32 ver_virstride = 0; -- u32 y_virstride = 0; -+ u32 hor_virstride; -+ u32 ver_virstride; -+ u32 y_virstride; - u32 yuv_virstride = 0; - u32 offset; - dma_addr_t dst_addr; -@@ -909,8 +909,8 @@ static void config_registers(struct rkvdec_ctx *ctx, - - f = &ctx->decoded_fmt; - dst_fmt = &f->fmt.pix_mp; -- hor_virstride = (sps->bit_depth_luma_minus8 + 8) * dst_fmt->width / 8; -- ver_virstride = round_up(dst_fmt->height, 16); -+ hor_virstride = dst_fmt->plane_fmt[0].bytesperline; -+ ver_virstride = dst_fmt->height; - y_virstride = hor_virstride * ver_virstride; - - if (sps->chroma_format_idc == 0) - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 6 Jul 2020 21:54:37 +0000 -Subject: [PATCH] media: rkvdec: Extract rkvdec_fill_decoded_pixfmt helper - method - -This extract setting decoded pixfmt into a helper method, current code is -replaced with a call to the new helper method. - -The helper method is also called from a new function in next patch. - -Signed-off-by: Jonas Karlman ---- - drivers/staging/media/rkvdec/rkvdec.c | 29 ++++++++++++++------------- - 1 file changed, 15 insertions(+), 14 deletions(-) - -diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c -index 7bab7586918c..40cc791aef26 100644 ---- a/drivers/staging/media/rkvdec/rkvdec.c -+++ b/drivers/staging/media/rkvdec/rkvdec.c -@@ -27,6 +27,17 @@ - #include "rkvdec.h" - #include "rkvdec-regs.h" - -+static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx, -+ struct v4l2_pix_format_mplane *pix_mp) -+{ -+ v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat, -+ pix_mp->width, pix_mp->height); -+ pix_mp->plane_fmt[0].sizeimage += 128 * -+ DIV_ROUND_UP(pix_mp->width, 16) * -+ DIV_ROUND_UP(pix_mp->height, 16); -+ pix_mp->field = V4L2_FIELD_NONE; -+} -+ - static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl) - { - struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl); -@@ -192,13 +203,9 @@ static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx) - - rkvdec_reset_fmt(ctx, f, ctx->coded_fmt_desc->decoded_fmts[0]); - f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; -- v4l2_fill_pixfmt_mp(&f->fmt.pix_mp, -- ctx->coded_fmt_desc->decoded_fmts[0], -- ctx->coded_fmt.fmt.pix_mp.width, -- ctx->coded_fmt.fmt.pix_mp.height); -- f->fmt.pix_mp.plane_fmt[0].sizeimage += 128 * -- DIV_ROUND_UP(f->fmt.pix_mp.width, 16) * -- DIV_ROUND_UP(f->fmt.pix_mp.height, 16); -+ f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width; -+ f->fmt.pix_mp.height = ctx->coded_fmt.fmt.pix_mp.height; -+ rkvdec_fill_decoded_pixfmt(ctx, &f->fmt.pix_mp); - } - - static int rkvdec_enum_framesizes(struct file *file, void *priv, -@@ -264,13 +271,7 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv, - &pix_mp->height, - &coded_desc->frmsize); - -- v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat, -- pix_mp->width, pix_mp->height); -- pix_mp->plane_fmt[0].sizeimage += -- 128 * -- DIV_ROUND_UP(pix_mp->width, 16) * -- DIV_ROUND_UP(pix_mp->height, 16); -- pix_mp->field = V4L2_FIELD_NONE; -+ rkvdec_fill_decoded_pixfmt(ctx, pix_mp); - - return 0; - } - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 6 Jul 2020 21:54:37 +0000 -Subject: [PATCH] media: rkvdec: Lock capture pixel format in s_ctrl and s_fmt - -Add an optional valid_fmt operation that should return the valid -pixelformat of CAPTURE buffers. - -This is used in next patch to ensure correct pixelformat is used for 10-bit -and 4:2:2 content. - -Signed-off-by: Jonas Karlman ---- - drivers/staging/media/rkvdec/rkvdec.c | 67 +++++++++++++++++++++++---- - drivers/staging/media/rkvdec/rkvdec.h | 2 + - 2 files changed, 61 insertions(+), 8 deletions(-) - -diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c -index 40cc791aef26..e93e1cb0f829 100644 ---- a/drivers/staging/media/rkvdec/rkvdec.c -+++ b/drivers/staging/media/rkvdec/rkvdec.c -@@ -38,19 +38,56 @@ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx, - pix_mp->field = V4L2_FIELD_NONE; - } - -+static u32 rkvdec_valid_fmt(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl) -+{ -+ const struct rkvdec_coded_fmt_desc *coded_desc = ctx->coded_fmt_desc; -+ -+ if (coded_desc->ops->valid_fmt) -+ return coded_desc->ops->valid_fmt(ctx, ctrl); -+ -+ return ctx->valid_fmt; -+} -+ - static int rkvdec_try_ctrl(struct v4l2_ctrl *ctrl) - { - struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl); - const struct rkvdec_coded_fmt_desc *desc = ctx->coded_fmt_desc; - -- if (desc->ops->try_ctrl) -- return desc->ops->try_ctrl(ctx, ctrl); -+ if (desc->ops->try_ctrl) { -+ int ret; -+ ret = desc->ops->try_ctrl(ctx, ctrl); -+ if (ret) -+ return ret; -+ } -+ -+ if (ctx->valid_fmt && ctx->valid_fmt != rkvdec_valid_fmt(ctx, ctrl)) -+ /* Only current valid format */ -+ return -EINVAL; -+ -+ return 0; -+} -+ -+static int rkvdec_s_ctrl(struct v4l2_ctrl *ctrl) -+{ -+ struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl); -+ -+ if (ctrl->id == V4L2_CID_STATELESS_H264_SPS && !ctx->valid_fmt) { -+ ctx->valid_fmt = rkvdec_valid_fmt(ctx, ctrl); -+ if (ctx->valid_fmt) { -+ struct v4l2_pix_format_mplane *pix_mp; -+ -+ pix_mp = &ctx->decoded_fmt.fmt.pix_mp; -+ pix_mp->pixelformat = ctx->valid_fmt; -+ rkvdec_fill_decoded_pixfmt(ctx, pix_mp); -+ } -+ } - - return 0; - } - - static const struct v4l2_ctrl_ops rkvdec_ctrl_ops = { - .try_ctrl = rkvdec_try_ctrl, -+ .s_ctrl = rkvdec_s_ctrl, - }; - - static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { -@@ -201,6 +238,7 @@ static void rkvdec_reset_decoded_fmt(struct rkvdec_ctx *ctx) - { - struct v4l2_format *f = &ctx->decoded_fmt; - -+ ctx->valid_fmt = 0; - rkvdec_reset_fmt(ctx, f, ctx->coded_fmt_desc->decoded_fmts[0]); - f->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; - f->fmt.pix_mp.width = ctx->coded_fmt.fmt.pix_mp.width; -@@ -256,13 +294,17 @@ static int rkvdec_try_capture_fmt(struct file *file, void *priv, - if (WARN_ON(!coded_desc)) - return -EINVAL; - -- for (i = 0; i < coded_desc->num_decoded_fmts; i++) { -- if (coded_desc->decoded_fmts[i] == pix_mp->pixelformat) -- break; -- } -+ if (ctx->valid_fmt) { -+ pix_mp->pixelformat = ctx->valid_fmt; -+ } else { -+ for (i = 0; i < coded_desc->num_decoded_fmts; i++) { -+ if (coded_desc->decoded_fmts[i] == pix_mp->pixelformat) -+ break; -+ } - -- if (i == coded_desc->num_decoded_fmts) -- pix_mp->pixelformat = coded_desc->decoded_fmts[0]; -+ if (i == coded_desc->num_decoded_fmts) -+ pix_mp->pixelformat = coded_desc->decoded_fmts[0]; -+ } - - /* Always apply the frmsize constraint of the coded end. */ - pix_mp->width = max(pix_mp->width, ctx->coded_fmt.fmt.pix_mp.width); -@@ -326,6 +368,7 @@ static int rkvdec_s_capture_fmt(struct file *file, void *priv, - return ret; - - ctx->decoded_fmt = *f; -+ ctx->valid_fmt = f->fmt.pix_mp.pixelformat; - return 0; - } - -@@ -429,6 +472,14 @@ static int rkvdec_enum_capture_fmt(struct file *file, void *priv, - if (WARN_ON(!ctx->coded_fmt_desc)) - return -EINVAL; - -+ if (ctx->valid_fmt) { -+ if (f->index) -+ return -EINVAL; -+ -+ f->pixelformat = ctx->valid_fmt; -+ return 0; -+ } -+ - if (f->index >= ctx->coded_fmt_desc->num_decoded_fmts) - return -EINVAL; - -diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h -index 633335ebb9c4..b9e219438bc9 100644 ---- a/drivers/staging/media/rkvdec/rkvdec.h -+++ b/drivers/staging/media/rkvdec/rkvdec.h -@@ -66,6 +66,7 @@ vb2_to_rkvdec_decoded_buf(struct vb2_buffer *buf) - struct rkvdec_coded_fmt_ops { - int (*adjust_fmt)(struct rkvdec_ctx *ctx, - struct v4l2_format *f); -+ u32 (*valid_fmt)(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl); - int (*start)(struct rkvdec_ctx *ctx); - void (*stop)(struct rkvdec_ctx *ctx); - int (*run)(struct rkvdec_ctx *ctx); -@@ -101,6 +102,7 @@ struct rkvdec_ctx { - struct v4l2_fh fh; - struct v4l2_format coded_fmt; - struct v4l2_format decoded_fmt; -+ u32 valid_fmt; - const struct rkvdec_coded_fmt_desc *coded_fmt_desc; - struct v4l2_ctrl_handler ctrl_hdl; - struct rkvdec_dev *dev; - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 6 Jul 2020 21:54:37 +0000 -Subject: [PATCH] media: rkvdec: h264: Support High 10 and 4:2:2 profiles - -Add support and enable decoding of H264 High 10 and 4:2:2 profiles. - -Decoded CAPTURE buffer width is aligned to 64 pixels to accommodate HW -requirement on 10-bit format buffers. - -The new valid_fmt operation is implemented and return a valid pixelformat -for the provided SPS control. - -Signed-off-by: Jonas Karlman ---- - drivers/staging/media/rkvdec/rkvdec-h264.c | 33 ++++++++++++++++------ - drivers/staging/media/rkvdec/rkvdec.c | 19 +++++++++---- - 2 files changed, 37 insertions(+), 15 deletions(-) - -diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c -index a8635105e387..0069d3d198db 100644 ---- a/drivers/staging/media/rkvdec/rkvdec-h264.c -+++ b/drivers/staging/media/rkvdec/rkvdec-h264.c -@@ -1031,19 +1031,14 @@ static int rkvdec_h264_validate_sps(struct rkvdec_ctx *ctx, - { - unsigned int width, height; - -- /* -- * TODO: The hardware supports 10-bit and 4:2:2 profiles, -- * but it's currently broken in the driver. -- * Reject them for now, until it's fixed. -- */ -- if (sps->chroma_format_idc > 1) -- /* Only 4:0:0 and 4:2:0 are supported */ -+ if (sps->chroma_format_idc > 2) -+ /* Only 4:0:0, 4:2:0 and 4:2:2 are supported */ - return -EINVAL; - if (sps->bit_depth_luma_minus8 != sps->bit_depth_chroma_minus8) - /* Luma and chroma bit depth mismatch */ - return -EINVAL; -- if (sps->bit_depth_luma_minus8 != 0) -- /* Only 8-bit is supported */ -+ if (sps->bit_depth_luma_minus8 != 0 && sps->bit_depth_luma_minus8 != 2) -+ /* Only 8-bit and 10-bit is supported */ - return -EINVAL; - - width = (sps->pic_width_in_mbs_minus1 + 1) * 16; -@@ -1064,6 +1059,25 @@ static int rkvdec_h264_validate_sps(struct rkvdec_ctx *ctx, - return 0; - } - -+static u32 rkvdec_h264_valid_fmt(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl) -+{ -+ const struct v4l2_ctrl_h264_sps *sps = ctrl->p_new.p_h264_sps; -+ -+ if (sps->bit_depth_luma_minus8 == 0) { -+ if (sps->chroma_format_idc == 2) -+ return V4L2_PIX_FMT_NV16; -+ else -+ return V4L2_PIX_FMT_NV12; -+ } else if (sps->bit_depth_luma_minus8 == 2) { -+ if (sps->chroma_format_idc == 2) -+ return V4L2_PIX_FMT_NV20; -+ else -+ return V4L2_PIX_FMT_NV15; -+ } -+ -+ return 0; -+} -+ - static int rkvdec_h264_start(struct rkvdec_ctx *ctx) - { - struct rkvdec_dev *rkvdec = ctx->dev; -@@ -1185,6 +1199,7 @@ static int rkvdec_h264_try_ctrl(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl) - - const struct rkvdec_coded_fmt_ops rkvdec_h264_fmt_ops = { - .adjust_fmt = rkvdec_h264_adjust_fmt, -+ .valid_fmt = rkvdec_h264_valid_fmt, - .start = rkvdec_h264_start, - .stop = rkvdec_h264_stop, - .run = rkvdec_h264_run, -diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c -index e93e1cb0f829..4f5436c89e08 100644 ---- a/drivers/staging/media/rkvdec/rkvdec.c -+++ b/drivers/staging/media/rkvdec/rkvdec.c -@@ -31,7 +31,7 @@ static void rkvdec_fill_decoded_pixfmt(struct rkvdec_ctx *ctx, - struct v4l2_pix_format_mplane *pix_mp) - { - v4l2_fill_pixfmt_mp(pix_mp, pix_mp->pixelformat, -- pix_mp->width, pix_mp->height); -+ ALIGN(pix_mp->width, 64), pix_mp->height); - pix_mp->plane_fmt[0].sizeimage += 128 * - DIV_ROUND_UP(pix_mp->width, 16) * - DIV_ROUND_UP(pix_mp->height, 16); -@@ -136,8 +136,11 @@ static const struct rkvdec_ctrls rkvdec_h264_ctrls = { - .num_ctrls = ARRAY_SIZE(rkvdec_h264_ctrl_descs), - }; - --static const u32 rkvdec_h264_vp9_decoded_fmts[] = { -+static const u32 rkvdec_h264_decoded_fmts[] = { - V4L2_PIX_FMT_NV12, -+ V4L2_PIX_FMT_NV15, -+ V4L2_PIX_FMT_NV16, -+ V4L2_PIX_FMT_NV20, - }; - - static const struct rkvdec_ctrl_desc rkvdec_vp9_ctrl_descs[] = { -@@ -160,6 +163,10 @@ static const struct rkvdec_ctrls rkvdec_vp9_ctrls = { - .num_ctrls = ARRAY_SIZE(rkvdec_vp9_ctrl_descs), - }; - -+static const u32 rkvdec_vp9_decoded_fmts[] = { -+ V4L2_PIX_FMT_NV12, -+}; -+ - static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = { - { - .fourcc = V4L2_PIX_FMT_H264_SLICE, -@@ -173,8 +180,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = { - }, - .ctrls = &rkvdec_h264_ctrls, - .ops = &rkvdec_h264_fmt_ops, -- .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts), -- .decoded_fmts = rkvdec_h264_vp9_decoded_fmts, -+ .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_decoded_fmts), -+ .decoded_fmts = rkvdec_h264_decoded_fmts, - .subsystem_flags = VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF, - }, - { -@@ -189,8 +196,8 @@ static const struct rkvdec_coded_fmt_desc rkvdec_coded_fmts[] = { - }, - .ctrls = &rkvdec_vp9_ctrls, - .ops = &rkvdec_vp9_fmt_ops, -- .num_decoded_fmts = ARRAY_SIZE(rkvdec_h264_vp9_decoded_fmts), -- .decoded_fmts = rkvdec_h264_vp9_decoded_fmts, -+ .num_decoded_fmts = ARRAY_SIZE(rkvdec_vp9_decoded_fmts), -+ .decoded_fmts = rkvdec_vp9_decoded_fmts, - } - }; - - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Alex Bee -Date: Sun, 27 Mar 2022 14:18:07 +0200 -Subject: [PATCH] media: rkvdec-h264: Don't hardcode SPS/PPS parameters - -Some SPS/PPS parameters are currently hardcoded in the driver -even though so do exist in the uapi which is stable by now. - -Use them instead of hardcoding them. - -Signed-off-by: Alex Bee ---- - drivers/staging/media/rkvdec/rkvdec-h264.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c -index 0069d3d198db..2c27acaba85e 100644 ---- a/drivers/staging/media/rkvdec/rkvdec-h264.c -+++ b/drivers/staging/media/rkvdec/rkvdec-h264.c -@@ -655,13 +655,14 @@ static void assemble_hw_pps(struct rkvdec_ctx *ctx, - - #define WRITE_PPS(value, field) set_ps_field(hw_ps->info, field, value) - /* write sps */ -- WRITE_PPS(0xf, SEQ_PARAMETER_SET_ID); -- WRITE_PPS(0xff, PROFILE_IDC); -- WRITE_PPS(1, CONSTRAINT_SET3_FLAG); -+ WRITE_PPS(sps->seq_parameter_set_id, SEQ_PARAMETER_SET_ID); -+ WRITE_PPS(sps->profile_idc, PROFILE_IDC); -+ WRITE_PPS((sps->constraint_set_flags & 1 << 3) ? 1 : 0, CONSTRAINT_SET3_FLAG); - WRITE_PPS(sps->chroma_format_idc, CHROMA_FORMAT_IDC); - WRITE_PPS(sps->bit_depth_luma_minus8, BIT_DEPTH_LUMA); - WRITE_PPS(sps->bit_depth_chroma_minus8, BIT_DEPTH_CHROMA); -- WRITE_PPS(0, QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG); -+ WRITE_PPS(!!(sps->flags & V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS), -+ QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG); - WRITE_PPS(sps->log2_max_frame_num_minus4, LOG2_MAX_FRAME_NUM_MINUS4); - WRITE_PPS(sps->max_num_ref_frames, MAX_NUM_REF_FRAMES); - WRITE_PPS(sps->pic_order_cnt_type, PIC_ORDER_CNT_TYPE); -@@ -688,8 +689,8 @@ static void assemble_hw_pps(struct rkvdec_ctx *ctx, - DIRECT_8X8_INFERENCE_FLAG); - - /* write pps */ -- WRITE_PPS(0xff, PIC_PARAMETER_SET_ID); -- WRITE_PPS(0x1f, PPS_SEQ_PARAMETER_SET_ID); -+ WRITE_PPS(pps->pic_parameter_set_id, PIC_PARAMETER_SET_ID); -+ WRITE_PPS(pps->seq_parameter_set_id, PPS_SEQ_PARAMETER_SET_ID); - WRITE_PPS(!!(pps->flags & V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE), - ENTROPY_CODING_MODE_FLAG); - WRITE_PPS(!!(pps->flags & V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT), diff --git a/patch/kernel/archive/rockchip-6.15/0000.patching_config.yaml b/patch/kernel/archive/rockchip-6.16/0000.patching_config.yaml similarity index 95% rename from patch/kernel/archive/rockchip-6.15/0000.patching_config.yaml rename to patch/kernel/archive/rockchip-6.16/0000.patching_config.yaml index 51feb9599..d291cdbc8 100644 --- a/patch/kernel/archive/rockchip-6.15/0000.patching_config.yaml +++ b/patch/kernel/archive/rockchip-6.16/0000.patching_config.yaml @@ -1,10 +1,10 @@ config: # Just some info stuff; not used by the patching scripts - name: rockchip-6.15 + name: rockchip-6.16 kind: kernel type: mainline # or: vendor - branch: linux-6.15.y - last-known-good-tag: v6.15.0 + branch: linux-6.16.y + last-known-good-tag: v6.16 maintainers: - { github: paolo.sabatino, name: Paolo Sabatino, email: paolo.sabatino@gmail.com, armbian-forum: jock } diff --git a/patch/kernel/archive/rockchip-6.15/armbian.series b/patch/kernel/archive/rockchip-6.16/armbian.series similarity index 100% rename from patch/kernel/archive/rockchip-6.15/armbian.series rename to patch/kernel/archive/rockchip-6.16/armbian.series diff --git a/patch/kernel/archive/rockchip-6.15/dt/rk322x-box.dts b/patch/kernel/archive/rockchip-6.16/dt/rk322x-box.dts similarity index 100% rename from patch/kernel/archive/rockchip-6.15/dt/rk322x-box.dts rename to patch/kernel/archive/rockchip-6.16/dt/rk322x-box.dts diff --git a/patch/kernel/archive/rockchip-6.15/dt/rk3288-xt-q8l-v10.dts b/patch/kernel/archive/rockchip-6.16/dt/rk3288-xt-q8l-v10.dts similarity index 100% rename from patch/kernel/archive/rockchip-6.15/dt/rk3288-xt-q8l-v10.dts rename to patch/kernel/archive/rockchip-6.16/dt/rk3288-xt-q8l-v10.dts diff --git a/patch/kernel/archive/rockchip-6.15/kernel-6.8-tools-cgroup-makefile.patch b/patch/kernel/archive/rockchip-6.16/kernel-6.8-tools-cgroup-makefile.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/kernel-6.8-tools-cgroup-makefile.patch rename to patch/kernel/archive/rockchip-6.16/kernel-6.8-tools-cgroup-makefile.patch diff --git a/patch/kernel/archive/rockchip-6.15/libreelec.series b/patch/kernel/archive/rockchip-6.16/libreelec.series similarity index 100% rename from patch/kernel/archive/rockchip-6.15/libreelec.series rename to patch/kernel/archive/rockchip-6.16/libreelec.series diff --git a/patch/kernel/archive/rockchip-6.15/overlay/Makefile b/patch/kernel/archive/rockchip-6.16/overlay/Makefile similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/Makefile rename to patch/kernel/archive/rockchip-6.16/overlay/Makefile diff --git a/patch/kernel/archive/rockchip-6.15/overlay/README.rk322x-overlays b/patch/kernel/archive/rockchip-6.16/overlay/README.rk322x-overlays similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/README.rk322x-overlays rename to patch/kernel/archive/rockchip-6.16/overlay/README.rk322x-overlays diff --git a/patch/kernel/archive/rockchip-6.15/overlay/README.rockchip-overlays b/patch/kernel/archive/rockchip-6.16/overlay/README.rockchip-overlays similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/README.rockchip-overlays rename to patch/kernel/archive/rockchip-6.16/overlay/README.rockchip-overlays diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-bt-8723cs.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-bt-8723cs.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-bt-8723cs.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-bt-8723cs.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-cpu-hs-lv.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-cpu-hs-lv.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-cpu-hs-lv.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-cpu-hs-lv.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-cpu-hs.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-cpu-hs.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-cpu-hs.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-cpu-hs.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-cpu-stability.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-cpu-stability.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-cpu-stability.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-cpu-stability.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-330.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-330.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-330.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-330.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-528.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-528.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-528.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-528.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-660.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-660.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-660.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-660.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-800.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-800.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-ddr3-800.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-ddr3-800.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-ddr-ph180.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-ddr-ph180.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-ddr-ph180.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-ddr-ph180.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-ddr-ph45.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-ddr-ph45.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-ddr-ph45.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-ddr-ph45.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-hs200.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-hs200.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-hs200.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-hs200.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-pins.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-pins.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc-pins.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc-pins.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-emmc.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-emmc.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-fixup.scr-cmd b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-fixup.scr-cmd similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-fixup.scr-cmd rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-fixup.scr-cmd diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-ir-wakeup.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-ir-wakeup.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-ir-wakeup.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-ir-wakeup.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf-default.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf-default.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf-default.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf-default.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf1.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf1.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf1.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf1.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf2.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf2.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf2.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf2.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf3.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf3.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf3.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf3.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf4.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf4.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf4.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf4.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf5.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf5.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf5.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf5.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf6.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf6.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf6.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf6.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf7.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf7.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf7.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf7.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf8.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf8.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-led-conf8.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-led-conf8.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-nand.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-nand.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-nand.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-nand.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-usb-otg-peripheral.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-usb-otg-peripheral.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-usb-otg-peripheral.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-usb-otg-peripheral.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rk322x-wlan-alt-wiring.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rk322x-wlan-alt-wiring.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rk322x-wlan-alt-wiring.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rk322x-wlan-alt-wiring.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-ds1307.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-ds1307.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-ds1307.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-ds1307.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-ds1307.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-ds1307.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-ds1307.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-ds1307.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-fixup.scr-cmd b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-fixup.scr-cmd similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-fixup.scr-cmd rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-fixup.scr-cmd diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c1.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c1.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c1.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c1.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c1.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c1.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c1.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c1.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c4.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c4.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c4.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c4.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c4.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c4.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-i2c4.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-i2c4.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-pwm1.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-pwm1.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-pwm1.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-pwm1.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-pwm2.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-pwm2.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-pwm2.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-pwm2.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-pwm3.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-pwm3.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-pwm3.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-pwm3.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi0.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi0.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi0.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi0.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi0.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi0.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi0.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi0.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi2.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi2.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi2.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi2.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi2.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi2.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spi2.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spi2.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev0.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev0.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev0.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev0.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev0.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev0.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev0.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev0.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev2.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev2.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev2.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev2.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev2.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev2.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-spidev2.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-spidev2.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart1.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart1.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart1.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart1.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart1.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart1.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart1.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart1.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart2.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart2.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart2.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart2.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart2.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart2.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart2.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart2.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart3.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart3.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart3.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart3.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart3.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart3.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart3.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart3.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart4.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart4.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart4.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart4.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart4.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart4.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-uart4.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-uart4.dtso diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-w1-gpio.dtbo b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-w1-gpio.dtbo similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-w1-gpio.dtbo rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-w1-gpio.dtbo diff --git a/patch/kernel/archive/rockchip-6.15/overlay/rockchip-w1-gpio.dtso b/patch/kernel/archive/rockchip-6.16/overlay/rockchip-w1-gpio.dtso similarity index 100% rename from patch/kernel/archive/rockchip-6.15/overlay/rockchip-w1-gpio.dtso rename to patch/kernel/archive/rockchip-6.16/overlay/rockchip-w1-gpio.dtso diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/bt-broadcom-serdev-workaround.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/bt-broadcom-serdev-workaround.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/bt-broadcom-serdev-workaround.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/bt-broadcom-serdev-workaround.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/clk-rk322x-composite-mmc-clk.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/clk-rk322x-composite-mmc-clk.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/clk-rk322x-composite-mmc-clk.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/clk-rk322x-composite-mmc-clk.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/clk-rockchip-max-frac-divider.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/clk-rockchip-max-frac-divider.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/clk-rockchip-max-frac-divider.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/clk-rockchip-max-frac-divider.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/driver-rk322x-audio-codec.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/driver-rk322x-audio-codec.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/driver-rk322x-audio-codec.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/driver-rk322x-audio-codec.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/driver-rk3288-gpiomem.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/driver-rk3288-gpiomem.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/driver-rk3288-gpiomem.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/driver-rk3288-gpiomem.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/driver-tinkerboard-alc4040-codec.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/driver-tinkerboard-alc4040-codec.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/driver-tinkerboard-alc4040-codec.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/driver-tinkerboard-alc4040-codec.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/drm-rk322x-plane-overlay.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/drm-rk322x-plane-overlay.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/drm-rk322x-plane-overlay.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/drm-rk322x-plane-overlay.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/drm-rk322x-yuv-10bit-modes.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/drm-rk322x-yuv-10bit-modes.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/drm-rk322x-yuv-10bit-modes.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/drm-rk322x-yuv-10bit-modes.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/drm-rockchip-hardware-cursor.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/drm-rockchip-hardware-cursor.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/drm-rockchip-hardware-cursor.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/drm-rockchip-hardware-cursor.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-fan.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-fan.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-fan.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-fan.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-hevc-rga.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-hevc-rga.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-hevc-rga.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-hevc-rga.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-mali-gpu.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-mali-gpu.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-mali-gpu.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-mali-gpu.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-regulator-fix.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-regulator-fix.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-miqi-regulator-fix.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-miqi-regulator-fix.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk322x-iep-node.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk322x-iep-node.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk322x-iep-node.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk322x-iep-node.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk322x-pinctrl-nand.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk322x-pinctrl-nand.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk322x-pinctrl-nand.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk322x-pinctrl-nand.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-disable-serial-dma.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-disable-serial-dma.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-disable-serial-dma.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-disable-serial-dma.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-fix-mmc-aliases.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-fix-mmc-aliases.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-fix-mmc-aliases.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-fix-mmc-aliases.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-gpu-500mhz-opp.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-gpu-500mhz-opp.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-gpu-500mhz-opp.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-gpu-500mhz-opp.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-pinctrl-spi2.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-pinctrl-spi2.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-pinctrl-spi2.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-pinctrl-spi2.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-thermal-rearrange-zones.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-thermal-rearrange-zones.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-rk3288-thermal-rearrange-zones.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-rk3288-thermal-rearrange-zones.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-bt-rtl8723bs.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-bt-rtl8723bs.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-bt-rtl8723bs.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-bt-rtl8723bs.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-bt-uart-pins.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-bt-uart-pins.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-bt-uart-pins.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-bt-uart-pins.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-hevc-rga.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-hevc-rga.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-hevc-rga.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-hevc-rga.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-sdio-wifi.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-sdio-wifi.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-sdio-wifi.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-sdio-wifi.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-sdmmc-properties.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-sdmmc-properties.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-sdmmc-properties.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-sdmmc-properties.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-spi-interface.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-spi-interface.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-tinkerboard-spi-interface.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-tinkerboard-spi-interface.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/dts-veyron-flag-cache-flush.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/dts-veyron-flag-cache-flush.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/dts-veyron-flag-cache-flush.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/dts-veyron-flag-cache-flush.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-add-overlay-compilation-support.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-add-overlay-compilation-support.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-add-overlay-compilation-support.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-add-overlay-compilation-support.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-add-overlay-configfs.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-add-overlay-configfs.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-add-overlay-configfs.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-add-overlay-configfs.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-add-restart-handler-for-act8846.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-add-restart-handler-for-act8846.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-add-restart-handler-for-act8846.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-add-restart-handler-for-act8846.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-fix-rk3288-reset-on-wake-quirk.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-fix-rk3288-reset-on-wake-quirk.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-fix-rk3288-reset-on-wake-quirk.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-fix-rk3288-reset-on-wake-quirk.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-fix-wait-peripheral.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-fix-wait-peripheral.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-fix-wait-peripheral.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-fix-wait-peripheral.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-fix-wait-time.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-fix-wait-time.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-fix-wait-time.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-fix-wait-time.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-nak-gadget.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-nak-gadget.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-dwc2-nak-gadget.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-dwc2-nak-gadget.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-fix-reboot-from-kwiboo.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-fix-reboot-from-kwiboo.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-fix-reboot-from-kwiboo.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-fix-reboot-from-kwiboo.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-increase-spdif-dma-burst.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-increase-spdif-dma-burst.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-increase-spdif-dma-burst.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-increase-spdif-dma-burst.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-linux-export-mm-trace-rss-stats.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-linux-export-mm-trace-rss-stats.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-linux-export-mm-trace-rss-stats.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-linux-export-mm-trace-rss-stats.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-01-fix-periodic-transfers.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-01-fix-periodic-transfers.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-01-fix-periodic-transfers.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-01-fix-periodic-transfers.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-02-add-support-for-interleaved-transfers.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-02-add-support-for-interleaved-transfers.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-02-add-support-for-interleaved-transfers.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-02-add-support-for-interleaved-transfers.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-04-bigger-mcode-buffer.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-04-bigger-mcode-buffer.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-04-bigger-mcode-buffer.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-04-bigger-mcode-buffer.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-05-fix-unbalanced-power-down.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-05-fix-unbalanced-power-down.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-05-fix-unbalanced-power-down.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-05-fix-unbalanced-power-down.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-06-fix-buffer-underruns.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-06-fix-buffer-underruns.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-pl330-06-fix-buffer-underruns.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-pl330-06-fix-buffer-underruns.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-rk322x-gpio-ir-driver.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-rk322x-gpio-ir-driver.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-rk322x-gpio-ir-driver.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-rk322x-gpio-ir-driver.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/general-rockchip-various-fixes.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/general-rockchip-various-fixes.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/general-rockchip-various-fixes.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/general-rockchip-various-fixes.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/ir-keymap-rk322x-box.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/ir-keymap-rk322x-box.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/ir-keymap-rk322x-box.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/ir-keymap-rk322x-box.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/ir-keymap-xt-q8l-v10.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/ir-keymap-xt-q8l-v10.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/ir-keymap-xt-q8l-v10.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/ir-keymap-xt-q8l-v10.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/misc-tinkerboard-spi-interface.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/misc-tinkerboard-spi-interface.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/misc-tinkerboard-spi-interface.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/misc-tinkerboard-spi-interface.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/mmc-tinkerboard-sdmmc-reboot-fix.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/mmc-tinkerboard-sdmmc-reboot-fix.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/mmc-tinkerboard-sdmmc-reboot-fix.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/mmc-tinkerboard-sdmmc-reboot-fix.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-01-sipv2-calls.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-01-sipv2-calls.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-01-sipv2-calls.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-01-sipv2-calls.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-02-sip-constants.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-02-sip-constants.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-02-sip-constants.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-02-sip-constants.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-03-dfi-driver.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-04-driver.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-04-driver.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dmc-driver-04-driver.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dmc-driver-04-driver.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dwc2-no-clock-gating.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dwc2-no-clock-gating.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-dwc2-no-clock-gating.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-dwc2-no-clock-gating.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-usb-reset-props.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-usb-reset-props.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/rk322x-usb-reset-props.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/rk322x-usb-reset-props.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-ath9k-no-bulk-EP3-EP4.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-ath9k-no-bulk-EP3-EP4.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-ath9k-no-bulk-EP3-EP4.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-ath9k-no-bulk-EP3-EP4.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-brcmfmac-add-bcm43342.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-brcmfmac-add-bcm43342.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-brcmfmac-add-bcm43342.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-brcmfmac-add-bcm43342.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-brcmfmac-ap6330-firmware.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-brcmfmac-ap6330-firmware.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-brcmfmac-ap6330-firmware.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-brcmfmac-ap6330-firmware.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-driver-esp8089.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-driver-esp8089.patch similarity index 99% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-driver-esp8089.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-driver-esp8089.patch index a8e34e49f..c2a323b31 100644 --- a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-driver-esp8089.patch +++ b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-driver-esp8089.patch @@ -3941,7 +3941,7 @@ index 000000000000..14186365fdd4 +#endif +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) -+ struct esp_vif *evif = from_timer(evif, t, beacon_timer); ++ struct esp_vif *evif = timer_container_of(evif, t, beacon_timer); + struct ieee80211_vif *vif = evif->epub->vif; +#else + struct ieee80211_vif *vif = (struct ieee80211_vif *) data; @@ -6273,7 +6273,7 @@ index 000000000000..6602a1e22ab1 +#endif +{ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)) -+ struct esp_sip *sip = from_timer(sip, t, credit_timer); ++ struct esp_sip *sip = timer_container_of(sip, t, credit_timer); +#else + struct esp_sip *sip = (struct esp_sip *) data; +#endif diff --git a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-driver-ssv6051.patch b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-driver-ssv6051.patch similarity index 99% rename from patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-driver-ssv6051.patch rename to patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-driver-ssv6051.patch index 24dbdd59e..c0e2abc31 100644 --- a/patch/kernel/archive/rockchip-6.15/patches.armbian/wifi-driver-ssv6051.patch +++ b/patch/kernel/archive/rockchip-6.16/patches.armbian/wifi-driver-ssv6051.patch @@ -35269,7 +35269,7 @@ new file mode 100644 index 000000000000..111111111111 --- /dev/null +++ b/drivers/net/wireless/ssv6051/smac/dev.c -@@ -0,0 +1,3881 @@ +@@ -0,0 +1,3884 @@ +/* + * Copyright (c) 2015 South Silicon Valley Microelectronics Inc. + * Copyright (c) 2015 iComm Corporation @@ -38453,6 +38453,9 @@ index 000000000000..111111111111 + .conf_tx = ssv6200_conf_tx, + .ampdu_action = ssv6200_ampdu_action, + .wake_tx_queue = ieee80211_handle_wake_tx_queue, ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, +#ifdef CONFIG_PM + .suspend = ssv6xxx_suspend, + .resume = ssv6xxx_resume, @@ -40533,7 +40536,7 @@ index 000000000000..111111111111 +{ + static u32 count = 0; + struct rssi_res_st *rssi_tmp0 = NULL, *rssi_tmp1 = NULL; -+ struct ssv_softc *sc = from_timer(sc, t, watchdog_timeout); ++ struct ssv_softc *sc = timer_container_of(sc, t, watchdog_timeout); + if (sc->watchdog_flag == WD_BARKING) { + ssv6xxx_watchdog_restart_hw(sc); + mod_timer(&sc->watchdog_timeout, jiffies + WATCHDOG_TIMEOUT); diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-0002-rockchip-from-list.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-0002-rockchip-from-list.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-0002-rockchip-from-list.patch rename to patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-0002-rockchip-from-list.patch diff --git a/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-0011-v4l2-from-list.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-0011-v4l2-from-list.patch new file mode 100644 index 000000000..5c3f00fd0 --- /dev/null +++ b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-0011-v4l2-from-list.patch @@ -0,0 +1,91 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jonas Karlman +Date: Mon, 6 Jul 2020 21:54:36 +0000 +Subject: [PATCH] media: v4l2: Add NV15 and NV20 pixel formats + +Add NV15 and NV20 pixel formats used by the Rockchip Video Decoder for +10-bit buffers. + +NV15 and NV20 is a packed 10-bit 4:2:0/4:2:2 semi-planar Y/UV format +similar to P010 and P210 but has no padding between components. Instead, +luminance and chrominance samples are grouped into 4s so that each group is +packed into an integer number of bytes: + +YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes + +The '15' and '20' suffix refers to the optimum effective bits per pixel +which is achieved when the total number of luminance samples is a multiple +of 8 for NV15 and 4 for NV20. + +Signed-off-by: Jonas Karlman +--- + drivers/media/v4l2-core/v4l2-common.c | 3 +++ + drivers/media/v4l2-core/v4l2-ioctl.c | 2 ++ + include/uapi/linux/videodev2.h | 3 +++ + 3 files changed, 8 insertions(+) + +diff --git a/drivers/media/v4l2-core/v4l2-common.c b/drivers/media/v4l2-core/v4l2-common.c +index cb2f1acab7cf..8446a1deffd8 100644 +--- a/drivers/media/v4l2-core/v4l2-common.c ++++ b/drivers/media/v4l2-core/v4l2-common.c +@@ -268,6 +268,9 @@ const struct v4l2_format_info *v4l2_format_info(u32 format) + { .format = V4L2_PIX_FMT_NV42, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 1, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 1, .vdiv = 1 }, + { .format = V4L2_PIX_FMT_P010, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 2, 2, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1 }, + ++ { .format = V4L2_PIX_FMT_NV15, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 5, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 2, .block_w = { 4, 2, 0, 0 }, .block_h = { 1, 1, 0, 0 } }, ++ { .format = V4L2_PIX_FMT_NV20, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 2, .bpp = { 5, 5, 0, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 2, .vdiv = 1, .block_w = { 4, 2, 0, 0 }, .block_h = { 1, 1, 0, 0 } }, ++ + { .format = V4L2_PIX_FMT_YUV410, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 4, .vdiv = 4 }, + { .format = V4L2_PIX_FMT_YVU410, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 4, .vdiv = 4 }, + { .format = V4L2_PIX_FMT_YUV411P, .pixel_enc = V4L2_PIXEL_ENC_YUV, .mem_planes = 1, .comp_planes = 3, .bpp = { 1, 1, 1, 0 }, .bpp_div = { 1, 1, 1, 1 }, .hdiv = 4, .vdiv = 1 }, +diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h +index 01e630f2ec78..cea44992aea3 100644 +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -628,6 +628,9 @@ struct v4l2_pix_format { + #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/VU 4:4:4 */ + #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* 24 Y/UV 4:2:0 10-bit per component */ + ++#define V4L2_PIX_FMT_NV15 v4l2_fourcc('N', 'V', '1', '5') /* 15 Y/UV 4:2:0 10-bit packed */ ++#define V4L2_PIX_FMT_NV20 v4l2_fourcc('N', 'V', '2', '0') /* 20 Y/UV 4:2:2 10-bit packed */ ++ + /* two non contiguous planes - one Y, one Cr + Cb interleaved */ + #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/UV 4:2:0 */ + #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/VU 4:2:0 */ + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jonas Karlman +Date: Mon, 6 Jul 2020 21:54:37 +0000 +Subject: [PATCH] media: rkvdec: Extract rkvdec_fill_decoded_pixfmt helper + method + +This extract setting decoded pixfmt into a helper method, current code is +replaced with a call to the new helper method. + +The helper method is also called from a new function in next patch. + +Signed-off-by: Jonas Karlman +--- + drivers/staging/media/rkvdec/rkvdec.c | 29 ++++++++++++++------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h +index 633335ebb9c4..b9e219438bc9 100644 +--- a/drivers/staging/media/rkvdec/rkvdec.h ++++ b/drivers/staging/media/rkvdec/rkvdec.h +@@ -66,6 +66,7 @@ vb2_to_rkvdec_decoded_buf(struct vb2_buffer *buf) + struct rkvdec_coded_fmt_ops { + int (*adjust_fmt)(struct rkvdec_ctx *ctx, + struct v4l2_format *f); ++ u32 (*valid_fmt)(struct rkvdec_ctx *ctx, struct v4l2_ctrl *ctrl); + int (*start)(struct rkvdec_ctx *ctx); + void (*stop)(struct rkvdec_ctx *ctx); + int (*run)(struct rkvdec_ctx *ctx); +@@ -101,6 +102,7 @@ struct rkvdec_ctx { + struct v4l2_fh fh; + struct v4l2_format coded_fmt; + struct v4l2_format decoded_fmt; ++ u32 valid_fmt; + const struct rkvdec_coded_fmt_desc *coded_fmt_desc; + struct v4l2_ctrl_handler ctrl_hdl; + struct rkvdec_dev *dev; diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1000-drm-rockchip.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1000-drm-rockchip.patch similarity index 93% rename from patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1000-drm-rockchip.patch rename to patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1000-drm-rockchip.patch index 6cf71cac0..2b83b0691 100644 --- a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1000-drm-rockchip.patch +++ b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1000-drm-rockchip.patch @@ -1,85 +1,3 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Sun, 3 May 2020 16:51:31 +0000 -Subject: [PATCH] drm/rockchip: vop: filter modes outside 0.5% pixel clock - tolerance - -Filter modes that require a pixel clock that differ more then 0.5% -from the requested pixel clock. - -This filter is only applied to tmds only connector and/or encoders. - -Signed-off-by: Jonas Karlman -Signed-off-by: Alex Bee ---- - drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 54 +++++++++++++++++++++ - 1 file changed, 54 insertions(+) - -diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -index dbe4d411b30f..fac23d370ee0 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -@@ -1207,6 +1207,59 @@ static void vop_crtc_disable_vblank(struct drm_crtc *crtc) - spin_unlock_irqrestore(&vop->irq_lock, flags); - } - -+static bool vop_crtc_is_tmds(struct drm_crtc *crtc) -+{ -+ struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc->state); -+ struct drm_encoder *encoder; -+ -+ switch (s->output_type) { -+ case DRM_MODE_CONNECTOR_LVDS: -+ case DRM_MODE_CONNECTOR_DSI: -+ return false; -+ case DRM_MODE_CONNECTOR_eDP: -+ case DRM_MODE_CONNECTOR_HDMIA: -+ case DRM_MODE_CONNECTOR_DisplayPort: -+ return true; -+ } -+ -+ drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) -+ if (encoder->encoder_type == DRM_MODE_ENCODER_TMDS) -+ return true; -+ -+ return false; -+} -+ -+/* -+ * The VESA DMT standard specifies a 0.5% pixel clock frequency tolerance. -+ * The CVT spec reuses that tolerance in its examples. -+ */ -+#define CLOCK_TOLERANCE_PER_MILLE 5 -+ -+static enum drm_mode_status vop_crtc_mode_valid5(struct drm_crtc *crtc, -+ const struct drm_display_mode *mode) -+{ -+ struct vop *vop = to_vop(crtc); -+ long rounded_rate; -+ long lowest, highest; -+ -+ if (!vop_crtc_is_tmds(crtc)) -+ return MODE_OK; -+ -+ rounded_rate = clk_round_rate(vop->dclk, mode->clock * 1000 + 999); -+ if (rounded_rate < 0) -+ return MODE_NOCLOCK; -+ -+ lowest = mode->clock * (1000 - CLOCK_TOLERANCE_PER_MILLE); -+ if (rounded_rate < lowest) -+ return MODE_CLOCK_LOW; -+ -+ highest = mode->clock * (1000 + CLOCK_TOLERANCE_PER_MILLE); -+ if (rounded_rate > highest) -+ return MODE_CLOCK_HIGH; -+ -+ return MODE_OK; -+} -+ - static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, - const struct drm_display_mode *mode, - struct drm_display_mode *adjusted_mode) - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Mon, 20 Jul 2020 15:15:50 +0000 @@ -98,107 +16,15 @@ index fac23d370ee0..9f7326c5b1f5 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1245,6 +1245,9 @@ static enum drm_mode_status vop_crtc_mode_valid(struct drm_crtc *crtc, - if (!vop_crtc_is_tmds(crtc)) - return MODE_OK; + if (vop->data->max_output.width && mode->hdisplay > vop->data->max_output.width) + return MODE_BAD_HVALUE; + if (mode->flags & DRM_MODE_FLAG_INTERLACE) + return MODE_NO_INTERLACE; + - rounded_rate = clk_round_rate(vop->dclk, mode->clock * 1000 + 999); - if (rounded_rate < 0) - return MODE_NOCLOCK; - -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Mon, 20 Jul 2020 11:46:16 +0000 -Subject: [PATCH] drm/rockchip: vop: filter modes above max output supported - -Filter any mode with a resolution not supported by the VOP. - -Signed-off-by: Jonas Karlman -Signed-off-by: Alex Bee ---- - drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 48 +++++++++++++++------ - 1 file changed, 34 insertions(+), 14 deletions(-) - -diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -index 9f7326c5b1f5..30e252ba7184 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c -@@ -1229,6 +1229,24 @@ static bool vop_crtc_is_tmds(struct drm_crtc *crtc) - return false; + return MODE_OK; } - -+static enum drm_mode_status vop_crtc_size_valid(struct drm_crtc *crtc, -+ const struct drm_display_mode *mode) -+{ -+ struct vop *vop = to_vop(crtc); -+ const struct vop_rect *max_output = &vop->data->max_output; -+ -+ if (max_output->width && max_output->height) { -+ /* only the size of the resulting rect matters */ -+ if(drm_mode_validate_size(mode, max_output->width, -+ max_output->height) != MODE_OK) { -+ return drm_mode_validate_size(mode, max_output->height, -+ max_output->width); -+ } -+ } -+ -+ return MODE_OK; -+} -+ - /* - * The VESA DMT standard specifies a 0.5% pixel clock frequency tolerance. - * The CVT spec reuses that tolerance in its examples. -@@ -1242,25 +1260,24 @@ static enum drm_mode_status vop_crtc_mode_valid(struct drm_crtc *crtc, - long rounded_rate; - long lowest, highest; - -- if (!vop_crtc_is_tmds(crtc)) -- return MODE_OK; -- - if (mode->flags & DRM_MODE_FLAG_INTERLACE) -- return MODE_NO_INTERLACE; -+ return MODE_NO_INTERLACE; - -- rounded_rate = clk_round_rate(vop->dclk, mode->clock * 1000 + 999); -- if (rounded_rate < 0) -- return MODE_NOCLOCK; -+ if (vop_crtc_is_tmds(crtc)) { -+ rounded_rate = clk_round_rate(vop->dclk, mode->clock * 1000 + 999); -+ if (rounded_rate < 0) -+ return MODE_NOCLOCK; - -- lowest = mode->clock * (1000 - CLOCK_TOLERANCE_PER_MILLE); -- if (rounded_rate < lowest) -- return MODE_CLOCK_LOW; -+ lowest = mode->clock * (1000 - CLOCK_TOLERANCE_PER_MILLE); -+ if (rounded_rate < lowest) -+ return MODE_CLOCK_LOW; - -- highest = mode->clock * (1000 + CLOCK_TOLERANCE_PER_MILLE); -- if (rounded_rate > highest) -- return MODE_CLOCK_HIGH; -+ highest = mode->clock * (1000 + CLOCK_TOLERANCE_PER_MILLE); -+ if (rounded_rate > highest) -+ return MODE_CLOCK_HIGH; -+ } - -- return MODE_OK; -+ return vop_crtc_size_valid(crtc, mode); - } - - static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, -@@ -1270,6 +1287,9 @@ static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, - struct vop *vop = to_vop(crtc); - unsigned long rate; - -+ if (vop_crtc_size_valid(crtc, adjusted_mode) != MODE_OK) -+ return false; -+ - /* - * Clock craziness. - * + From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonas Karlman diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1001-v4l2-rockchip.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1001-v4l2-rockchip.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1001-v4l2-rockchip.patch rename to patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1001-v4l2-rockchip.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1002-for-libreelec.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1002-for-libreelec.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-1002-for-libreelec.patch rename to patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-1002-for-libreelec.patch diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-2000-v4l2-wip-rkvdec-hevc.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-2000-v4l2-wip-rkvdec-hevc.patch similarity index 99% rename from patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-2000-v4l2-wip-rkvdec-hevc.patch rename to patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-2000-v4l2-wip-rkvdec-hevc.patch index 58b3e72e5..e5ab8823c 100644 --- a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-2000-v4l2-wip-rkvdec-hevc.patch +++ b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-2000-v4l2-wip-rkvdec-hevc.patch @@ -2620,16 +2620,7 @@ diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvde index f55abb7c377f..00a9bf583596 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c -@@ -74,7 +74,7 @@ static int rkvdec_s_ctrl(struct v4l2_ctrl *ctrl) - { - struct rkvdec_ctx *ctx = container_of(ctrl->handler, struct rkvdec_ctx, ctrl_hdl); - -- if (ctrl->id == V4L2_CID_STATELESS_H264_SPS && !ctx->valid_fmt) { -+ if (!ctx->valid_fmt) { - ctx->valid_fmt = rkvdec_valid_fmt(ctx, ctrl); - if (ctx->valid_fmt) { - struct v4l2_pix_format_mplane *pix_mp; -@@ -134,6 +134,62 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { +@@ -199,6 +203,67 @@ static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { }, }; @@ -2683,11 +2674,16 @@ index f55abb7c377f..00a9bf583596 100644 + .num_ctrls = ARRAY_SIZE(rkvdec_hevc_ctrl_descs), +}; + -+static const u32 rkvdec_hevc_decoded_fmts[] = { -+ V4L2_PIX_FMT_NV12, -+ V4L2_PIX_FMT_NV15, ++static const struct rkvdec_decoded_fmt_desc rkvdec_hevc_decoded_fmts[] = { ++ { ++ .fourcc = V4L2_PIX_FMT_NV12, ++ .image_fmt = RKVDEC_IMG_FMT_420_8BIT ++ }, ++ { ++ .fourcc = V4L2_PIX_FMT_NV15, ++ .image_fmt = RKVDEC_IMG_FMT_420_10BIT, ++ } +}; -+ + static const struct rkvdec_ctrls rkvdec_h264_ctrls = { .ctrls = rkvdec_h264_ctrl_descs, diff --git a/patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-2001-v4l2-wip-iep-driver.patch b/patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-2001-v4l2-wip-iep-driver.patch similarity index 100% rename from patch/kernel/archive/rockchip-6.15/patches.libreelec/linux-2001-v4l2-wip-iep-driver.patch rename to patch/kernel/archive/rockchip-6.16/patches.libreelec/linux-2001-v4l2-wip-iep-driver.patch diff --git a/patch/kernel/archive/rockchip-6.15/series.conf b/patch/kernel/archive/rockchip-6.16/series.conf similarity index 100% rename from patch/kernel/archive/rockchip-6.15/series.conf rename to patch/kernel/archive/rockchip-6.16/series.conf