mirror of
https://github.com/torvalds/linux.git
synced 2026-09-13 15:40:03 +02:00
media: verisilicon: hantro: bound G2 HEVC tile loop to the buffer capacity
prepare_tile_info_buffer() writes one entry per tile into the tile_sizes
DMA buffer, sized for a grid equal to the PPS uAPI array capacity. Use the
bounded v4l2_hevc_pps_num_tile_columns() / v4l2_hevc_pps_num_tile_rows()
helpers so the loops stay inside the buffer.
Fixes: cb5dd5a0fa ("media: hantro: Introduce G2/HEVC decoder")
Assisted-by: Claude:claude-opus-4-8
Cc: stable@vger.kernel.org
Signed-off-by: Michael Bommarito <michael.bommarito@gmail.com>
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
parent
81ad46bb33
commit
06236b094c
|
|
@ -5,6 +5,8 @@
|
|||
* Copyright (C) 2020 Safran Passenger Innovations LLC
|
||||
*/
|
||||
|
||||
#include <media/v4l2-hevc.h>
|
||||
|
||||
#include "hantro_hw.h"
|
||||
#include "hantro_g2_regs.h"
|
||||
|
||||
|
|
@ -15,8 +17,8 @@ static void prepare_tile_info_buffer(struct hantro_ctx *ctx)
|
|||
const struct v4l2_ctrl_hevc_pps *pps = ctrls->pps;
|
||||
const struct v4l2_ctrl_hevc_sps *sps = ctrls->sps;
|
||||
u16 *p = (u16 *)((u8 *)ctx->hevc_dec.tile_sizes.cpu);
|
||||
unsigned int num_tile_rows = pps->num_tile_rows_minus1 + 1;
|
||||
unsigned int num_tile_cols = pps->num_tile_columns_minus1 + 1;
|
||||
unsigned int num_tile_rows = v4l2_hevc_pps_num_tile_rows(pps);
|
||||
unsigned int num_tile_cols = v4l2_hevc_pps_num_tile_columns(pps);
|
||||
unsigned int pic_width_in_ctbs, pic_height_in_ctbs;
|
||||
unsigned int max_log2_ctb_size, ctb_size;
|
||||
bool tiles_enabled, uniform_spacing;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user