From: Alpha Lin Date: Mon, 10 Aug 2015 08:05:12 +0000 (+0800) Subject: VCODEC: detect hevc resolution to determine the running frequency. X-Git-Tag: firefly_0821_release~3856 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7f242a51f610d29d333eadaff951f0ec40e9b585;p=firefly-linux-kernel-4.4.55.git VCODEC: detect hevc resolution to determine the running frequency. Signed-off-by: Alpha Lin --- 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; }