Re: [Patch v3 07/15] media: s5p-mfc: Add support for VP9 encoder.
From: kernel test robot <hidden>
Date: 2022-10-12 16:10:06
Also in:
linux-media, lkml, llvm
Hi aakarsh, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on media-tree/master] [also build test WARNING on robh/for-next arm/for-next arm64/for-next/core kvmarm/next rockchip/for-next shawnguo/for-next soc/for-next] [cannot apply to xilinx-xlnx/master] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/aakarsh-jain/dt-bindings-media-s5p-mfc-Add-new-DT-schema-for-MFC/20221012-115313 base: git://linuxtv.org/media_tree.git master config: hexagon-randconfig-r012-20221012 compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 791a7ae1ba3efd6bca96338e10ffde557ba83920) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/f20d380a7e03f8535b3991efd821fc32fe2baf6e git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review aakarsh-jain/dt-bindings-media-s5p-mfc-Add-new-DT-schema-for-MFC/20221012-115313 git checkout f20d380a7e03f8535b3991efd821fc32fe2baf6e # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/media/platform/samsung/s5p-mfc/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot [off-list ref] All warnings (new ones prefixed by >>):
quoted
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c:1667:5: warning: no previous prototype for function 's5p_mfc_set_enc_params_vp9' [-Wmissing-prototypes]
int s5p_mfc_set_enc_params_vp9(struct s5p_mfc_ctx *ctx)
^
drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c:1667:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int s5p_mfc_set_enc_params_vp9(struct s5p_mfc_ctx *ctx)
^
static
1 warning generated.
vim +/s5p_mfc_set_enc_params_vp9 +1667 drivers/media/platform/samsung/s5p-mfc/s5p_mfc_opr_v6.c
1666 1667 int s5p_mfc_set_enc_params_vp9(struct s5p_mfc_ctx *ctx)
1668 {
1669 struct s5p_mfc_dev *dev = ctx->dev;
1670 const struct s5p_mfc_regs *mfc_regs = dev->mfc_regs;
1671 struct s5p_mfc_enc_params *p = &ctx->enc_params;
1672 struct s5p_mfc_vp9_enc_params *p_vp9 = &p->codec.vp9;
1673 unsigned int reg = 0;
1674 int i;
1675
1676 mfc_debug_enter();
1677
1678 s5p_mfc_set_enc_params(ctx);
1679
1680 /* profile*/
1681 reg = 0;
1682 reg |= (p_vp9->vp9_profile);
1683 writel(reg, mfc_regs->e_picture_profile);
1684
1685 reg = 0;
1686 reg |= ((p_vp9->ivf_header & 0x1) << 12);
1687 reg |= ((p_vp9->hier_qp_enable & 0x1) << 11);
1688 reg |= (p_vp9->max_partition_depth & 0x1) << 3;
1689 reg |= (p_vp9->intra_pu_split_disable & 0x1) << 1;
1690 reg |= (p_vp9->num_refs_for_p - 1) & 0x1;
1691 writel(reg, mfc_regs->e_vp9_options);
1692
1693 reg = 0;
1694 reg |= (p_vp9->vp9_goldenframesel & 0x1);
1695 reg |= (p_vp9->vp9_gfrefreshperiod & 0xffff) << 1;
1696 writel(reg, mfc_regs->e_vp9_golden_frame_option);
1697
1698 reg = 0;
1699 if (p_vp9->num_hier_layer) {
1700 reg |= p_vp9->num_hier_layer & 0x3;
1701 writel(reg, mfc_regs->e_num_t_layer);
1702 /* QP value for each layer */
1703 if (p_vp9->hier_qp_enable) {
1704 for (i = 0; i < (p_vp9->num_hier_layer & 0x3); i++)
1705 writel(p_vp9->hier_qp_layer[i],
1706 mfc_regs->e_hier_qp_layer0
1707 + i * 4);
1708 }
1709 if (p_vp9->hier_rc_enable) {
1710 for (i = 0; i < (p_vp9->num_hier_layer & 0x3); i++)
1711 writel(p_vp9->hier_bit_layer[i],
1712 mfc_regs->e_hier_bit_rate_layer0
1713 + i * 4);
1714 }
1715 }
1716 /* number of coding layer should be zero when hierarchical is disable */
1717 reg |= p_vp9->num_hier_layer;
1718 writel(reg, mfc_regs->e_num_t_layer);
1719
1720 /* qp */
1721 writel(0x0, mfc_regs->e_fixed_picture_qp);
1722 if (!p->rc_frame && !p->rc_mb) {
1723 reg = 0;
1724 reg &= ~(0xff << 8);
1725 reg |= (p_vp9->rc_p_frame_qp << 8);
1726 reg &= ~(0xff);
1727 reg |= p_vp9->rc_frame_qp;
1728 writel(reg, mfc_regs->e_fixed_picture_qp);
1729 }
1730
1731 /* frame rate */
1732 if (p->rc_frame) {
1733 reg = 0;
1734 reg &= ~(0xffff << 16);
1735 reg |= ((p_vp9->rc_framerate * FRAME_DELTA_DEFAULT) << 16);
1736 reg &= ~(0xffff);
1737 reg |= FRAME_DELTA_DEFAULT;
1738 writel(reg, mfc_regs->e_rc_frame_rate);
1739 }
1740
1741 /* rate control config. */
1742 reg = readl(mfc_regs->e_rc_config);
1743 /** macroblock level rate control */
1744 reg &= ~(0x1 << 8);
1745 reg |= ((p->rc_mb & 0x1) << 8);
1746 writel(reg, mfc_regs->e_rc_config);
1747
1748 /* max & min value of QP */
1749 reg = 0;
1750 /** max QP */
1751 reg &= ~(0xFF << 8);
1752 reg |= (p_vp9->rc_max_qp << 8);
1753 /** min QP */
1754 reg &= ~(0xFF);
1755 reg |= p_vp9->rc_min_qp;
1756 writel(reg, mfc_regs->e_rc_qp_bound);
1757
1758 mfc_debug_leave();
1759
1760 return 0;
1761 }
1762
--
0-DAY CI Kernel Test Service
https://01.org/lkp