From: Jonas Karlman jonas@kwiboo.se
[ Upstream commit d5e0aa61470c48ddc04d433a00e79cef8716377a ]
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 jonas@kwiboo.se Reviewed-by: Nicolas Dufresne nicolas.dufresne@collabora.com Tested-by: Nicolas Dufresne nicolas.dufresne@collabora.com Tested-by: Christopher Obbard chris.obbard@collabora.com Signed-off-by: Nicolas Dufresne nicolas.dufresne@collabora.com Signed-off-by: Hans Verkuil hverkuil@xs4all.nl Signed-off-by: Sasha Levin sashal@kernel.org ---
### Key Reasons for NO Backport: 1. **Not a Bug Fix**: The commit message explicitly states "This does not really change anything other than ensuring the bytesperline that is signaled to userspace matches what is configured in HW." This is not fixing a functional bug but rather improving consistency between userspace and hardware configuration. 2. **Code Quality/Consistency Improvement**: The changes are primarily about code correctness and consistency rather than fixing a critical issue that affects users. This aligns with similar commits #1, #2, and #4 which were marked as NO for backporting. 3. **Staging Driver**: The rkvdec driver is in `drivers/staging/media/`, which indicates it's still under development and not considered stable. Staging drivers typically have more relaxed backporting requirements. 4. **Specific Code Changes Analysis**: - **Before**: `hor_virstride = (sps->bit_depth_luma_minus8 + 8) 0001-Fix-Clippy-warnings.patch 0002-Enhance-inference-prompt-to-utilize-CVEKERNELDIR-whe.patch 0003-Update-to-latest-version-of-clap.patch Cargo.lock Cargo.toml LICENSE README.md adreno_acd_support_analysis.md amd_display_ips_sequential_ono_backport_analysis.md analyze_merge_commit.sh dpp_rcg_backport_analysis.md drm_amd_display_vertical_interrupt_dcn32_dcn401_backport_analysis.md drm_bridge_analysis.txt drm_format_helper_24bit_analysis.md drm_imagination_register_update_analysis.md drm_mediatek_mtk_dpi_refactoring_analysis.md intel_ipu6_constify_analysis.md io_uring_analysis.txt ksmbd_analysis.txt merge_commit_analysis.txt model prompt src target test_gpio_cleanup.txt test_patch.txt verisilicon_av1_4k_analysis.md dst_fmt->width / 8;` - **After**: `hor_virstride = dst_fmt->plane_fmt[0].bytesperline;` - **Before**: `ver_virstride = round_up(dst_fmt->height, 16);` - **After**: `ver_virstride = dst_fmt->height;` 5. **No Risk Indication**: The changes don't indicate they're fixing crashes, data corruption, security issues, or other critical problems that would warrant stable backporting. 6. **Pattern Match with Similar Commits**: Looking at the provided examples: - Similar commits #1, #2, #4, and #5 that make stride/calculation improvements were marked as NO - Only commit #3 that increased max supported height (a clear functional limitation fix) was marked as YES 7. **No Stable Tree Mention**: The commit message contains no indication of stable tree inclusion via Fixes: tags or explicit stable tree requests. ### Conclusion: This commit improves code consistency by using the actual bytesperline values from userspace instead of calculating them from SPS parameters, but it doesn't fix a user-impacting bug. It's a code quality improvement that follows the pattern of other NO-backport commits in the provided examples.
drivers/staging/media/rkvdec/rkvdec-h264.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/staging/media/rkvdec/rkvdec-h264.c b/drivers/staging/media/rkvdec/rkvdec-h264.c index 438252fa19441..46e01037b7112 100644 --- a/drivers/staging/media/rkvdec/rkvdec-h264.c +++ b/drivers/staging/media/rkvdec/rkvdec-h264.c @@ -907,9 +907,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; @@ -920,16 +920,16 @@ 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) yuv_virstride = y_virstride; else if (sps->chroma_format_idc == 1) - yuv_virstride += y_virstride + y_virstride / 2; + yuv_virstride = y_virstride + y_virstride / 2; else if (sps->chroma_format_idc == 2) - yuv_virstride += 2 * y_virstride; + yuv_virstride = 2 * y_virstride;
reg = RKVDEC_Y_HOR_VIRSTRIDE(hor_virstride / 16) | RKVDEC_UV_HOR_VIRSTRIDE(hor_virstride / 16) |