From 7f242a51f610d29d333eadaff951f0ec40e9b585 Mon Sep 17 00:00:00 2001 From: Alpha Lin Date: Mon, 10 Aug 2015 16:05:12 +0800 Subject: [PATCH] VCODEC: detect hevc resolution to determine the running frequency. Signed-off-by: Alpha Lin --- arch/arm/mach-rockchip/vcodec_service.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/mach-rockchip/vcodec_service.c b/arch/arm/mach-rockchip/vcodec_service.c index cb260d89d414..d4b7f22c9422 100755 --- a/arch/arm/mach-rockchip/vcodec_service.c +++ b/arch/arm/mach-rockchip/vcodec_service.c @@ -1000,6 +1000,12 @@ static inline int reg_probe_width(vpu_reg *reg) return width_in_mb * 16; } +static inline int reg_probe_hevc_y_stride(vpu_reg *reg) +{ + int y_virstride = reg->reg[8]; + return y_virstride; +} + #if defined(CONFIG_VCODEC_MMU) static int vcodec_fd_to_iova(struct vpu_subdev_data *data, vpu_reg *reg,int fd) { @@ -1292,6 +1298,10 @@ static vpu_reg *reg_init(struct vpu_subdev_data *data, } } } + if (data->hw_info->hw_id == HEVC_ID) { + if (reg_probe_hevc_y_stride(reg) > 60000) + reg->freq = VPU_FREQ_400M; + } if (reg->type == VPU_PP) { reg->freq = VPU_FREQ_400M; } -- 2.34.1