All of lore.kernel.org
 help / color / mirror / Atom feed
* [chrome-os:chromeos-6.6 36/36] drivers/gpu/drm/mediatek/mtk_disp_outproc.c:61:8: warning: no previous prototype for function 'mtk_disp_outproc_crc_cnt'
@ 2025-12-09  1:31 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-12-09  1:31 UTC (permalink / raw)
  To: cros-kernel-buildreports; +Cc: oe-kbuild-all

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-6.6
head:   5df2e81b9f63652fba901d69ccdd1518f736ad21
commit: 128c3864e6ce89c2eae2231e0fd787f0a309c69f [36/36] CHROMIUM: drm/mediatek: Remove mtk_disp_outproc.h and migrate CRC headers
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251209/202512090902.2tc2BsdI-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251209/202512090902.2tc2BsdI-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512090902.2tc2BsdI-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:61:8: warning: no previous prototype for function 'mtk_disp_outproc_crc_cnt' [-Wmissing-prototypes]
      61 | size_t mtk_disp_outproc_crc_cnt(struct device *dev)
         |        ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:61:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      61 | size_t mtk_disp_outproc_crc_cnt(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:68:6: warning: no previous prototype for function 'mtk_disp_outproc_crc_entry' [-Wmissing-prototypes]
      68 | u32 *mtk_disp_outproc_crc_entry(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:68:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      68 | u32 *mtk_disp_outproc_crc_entry(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:75:6: warning: no previous prototype for function 'mtk_disp_outproc_crc_read' [-Wmissing-prototypes]
      75 | void mtk_disp_outproc_crc_read(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:75:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      75 | void mtk_disp_outproc_crc_read(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:82:6: warning: no previous prototype for function 'mtk_disp_outproc_register_vblank_cb' [-Wmissing-prototypes]
      82 | void mtk_disp_outproc_register_vblank_cb(struct device *dev,
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:82:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      82 | void mtk_disp_outproc_register_vblank_cb(struct device *dev,
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:92:6: warning: no previous prototype for function 'mtk_disp_outproc_unregister_vblank_cb' [-Wmissing-prototypes]
      92 | void mtk_disp_outproc_unregister_vblank_cb(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:92:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      92 | void mtk_disp_outproc_unregister_vblank_cb(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:100:6: warning: no previous prototype for function 'mtk_disp_outproc_enable_vblank' [-Wmissing-prototypes]
     100 | void mtk_disp_outproc_enable_vblank(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:100:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     100 | void mtk_disp_outproc_enable_vblank(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:108:6: warning: no previous prototype for function 'mtk_disp_outproc_disable_vblank' [-Wmissing-prototypes]
     108 | void mtk_disp_outproc_disable_vblank(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:108:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     108 | void mtk_disp_outproc_disable_vblank(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:137:6: warning: no previous prototype for function 'mtk_disp_outproc_config' [-Wmissing-prototypes]
     137 | void mtk_disp_outproc_config(struct device *dev, unsigned int w,
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:137:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     137 | void mtk_disp_outproc_config(struct device *dev, unsigned int w,
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:156:6: warning: no previous prototype for function 'mtk_disp_outproc_start' [-Wmissing-prototypes]
     156 | void mtk_disp_outproc_start(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:156:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     156 | void mtk_disp_outproc_start(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:184:6: warning: no previous prototype for function 'mtk_disp_outproc_stop' [-Wmissing-prototypes]
     184 | void mtk_disp_outproc_stop(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:184:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     184 | void mtk_disp_outproc_stop(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:207:6: warning: no previous prototype for function 'mtk_disp_outproc_crc_reset' [-Wmissing-prototypes]
     207 | void mtk_disp_outproc_crc_reset(struct device *dev, struct cmdq_pkt *cmdq_pkt)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:207:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     207 | void mtk_disp_outproc_crc_reset(struct device *dev, struct cmdq_pkt *cmdq_pkt)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:221:6: warning: no previous prototype for function 'mtk_disp_outproc_crc_attach' [-Wmissing-prototypes]
     221 | void mtk_disp_outproc_crc_attach(struct device *dev, struct mtk_crtc *data)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:221:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     221 | void mtk_disp_outproc_crc_attach(struct device *dev, struct mtk_crtc *data)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:228:6: warning: no previous prototype for function 'mtk_disp_outproc_crc_detach' [-Wmissing-prototypes]
     228 | void mtk_disp_outproc_crc_detach(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:228:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     228 | void mtk_disp_outproc_crc_detach(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:235:5: warning: no previous prototype for function 'mtk_disp_outproc_clk_enable' [-Wmissing-prototypes]
     235 | int mtk_disp_outproc_clk_enable(struct device *dev)
         |     ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:235:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     235 | int mtk_disp_outproc_clk_enable(struct device *dev)
         | ^
         | static 
>> drivers/gpu/drm/mediatek/mtk_disp_outproc.c:242:6: warning: no previous prototype for function 'mtk_disp_outproc_clk_disable' [-Wmissing-prototypes]
     242 | void mtk_disp_outproc_clk_disable(struct device *dev)
         |      ^
   drivers/gpu/drm/mediatek/mtk_disp_outproc.c:242:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     242 | void mtk_disp_outproc_clk_disable(struct device *dev)
         | ^
         | static 
   15 warnings generated.


vim +/mtk_disp_outproc_crc_cnt +61 drivers/gpu/drm/mediatek/mtk_disp_outproc.c

f3e6b1244e7c0a Nancy.Lin     2025-01-10   60  
b7c8e781f020aa Sunny.Shen    2024-09-11  @61  size_t mtk_disp_outproc_crc_cnt(struct device *dev)
b7c8e781f020aa Sunny.Shen    2024-09-11   62  {
b7c8e781f020aa Sunny.Shen    2024-09-11   63  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
b7c8e781f020aa Sunny.Shen    2024-09-11   64  
b7c8e781f020aa Sunny.Shen    2024-09-11   65  	return priv->crc.cnt;
b7c8e781f020aa Sunny.Shen    2024-09-11   66  }
b7c8e781f020aa Sunny.Shen    2024-09-11   67  
b7c8e781f020aa Sunny.Shen    2024-09-11  @68  u32 *mtk_disp_outproc_crc_entry(struct device *dev)
b7c8e781f020aa Sunny.Shen    2024-09-11   69  {
b7c8e781f020aa Sunny.Shen    2024-09-11   70  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
b7c8e781f020aa Sunny.Shen    2024-09-11   71  
b7c8e781f020aa Sunny.Shen    2024-09-11   72  	return priv->crc.va;
b7c8e781f020aa Sunny.Shen    2024-09-11   73  }
b7c8e781f020aa Sunny.Shen    2024-09-11   74  
b7c8e781f020aa Sunny.Shen    2024-09-11  @75  void mtk_disp_outproc_crc_read(struct device *dev)
b7c8e781f020aa Sunny.Shen    2024-09-11   76  {
b7c8e781f020aa Sunny.Shen    2024-09-11   77  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
b7c8e781f020aa Sunny.Shen    2024-09-11   78  
b7c8e781f020aa Sunny.Shen    2024-09-11   79  	mtk_crtc_read_crc(&priv->crc);
b7c8e781f020aa Sunny.Shen    2024-09-11   80  }
b7c8e781f020aa Sunny.Shen    2024-09-11   81  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  @82  void mtk_disp_outproc_register_vblank_cb(struct device *dev,
f3e6b1244e7c0a Nancy.Lin     2025-01-10   83  					 void (*vblank_cb)(void *),
f3e6b1244e7c0a Nancy.Lin     2025-01-10   84  					 void *vblank_cb_data)
f3e6b1244e7c0a Nancy.Lin     2025-01-10   85  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10   86  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10   87  
f3e6b1244e7c0a Nancy.Lin     2025-01-10   88  	priv->vblank_cb = vblank_cb;
f3e6b1244e7c0a Nancy.Lin     2025-01-10   89  	priv->vblank_cb_data = vblank_cb_data;
f3e6b1244e7c0a Nancy.Lin     2025-01-10   90  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10   91  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  @92  void mtk_disp_outproc_unregister_vblank_cb(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10   93  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10   94  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10   95  
f3e6b1244e7c0a Nancy.Lin     2025-01-10   96  	priv->vblank_cb = NULL;
f3e6b1244e7c0a Nancy.Lin     2025-01-10   97  	priv->vblank_cb_data = NULL;
f3e6b1244e7c0a Nancy.Lin     2025-01-10   98  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10   99  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @100  void mtk_disp_outproc_enable_vblank(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  101  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  102  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  103  
d5581be4f939c5 Jason-jh Lin  2025-10-31  104  	writel(OVL_OUTPROC_FME_CPL_INTEN | OVL_OUTPROC_FME_UND_INTEN,
d5581be4f939c5 Jason-jh Lin  2025-10-31  105  	       priv->regs + DISP_REG_OVL_OUTPROC_INTEN);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  106  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  107  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @108  void mtk_disp_outproc_disable_vblank(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  109  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  110  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  111  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  112  	writel(0x0, priv->regs + DISP_REG_OVL_OUTPROC_INTEN);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  113  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  114  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  115  static irqreturn_t mtk_disp_outproc_irq_handler(int irq, void *dev_id)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  116  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  117  	struct mtk_disp_outproc *priv = dev_id;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  118  	u32 val;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  119  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  120  	val = readl(priv->regs + DISP_REG_OVL_OUTPROC_INTSTA);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  121  	if (!val)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  122  		return IRQ_NONE;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  123  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  124  	writel(0x0, priv->regs + DISP_REG_OVL_OUTPROC_INTSTA);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  125  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  126  	if (priv->vblank_cb)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  127  		priv->vblank_cb(priv->vblank_cb_data);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  128  
d5581be4f939c5 Jason-jh Lin  2025-10-31  129  	if (val & OVL_OUTPROC_FME_CPL_INTEN)
d5581be4f939c5 Jason-jh Lin  2025-10-31  130  		DRM_DEV_DEBUG_DRIVER(priv->dev, "frame complete!\n");
d5581be4f939c5 Jason-jh Lin  2025-10-31  131  	if (val & OVL_OUTPROC_FME_UND_INTEN)
d5581be4f939c5 Jason-jh Lin  2025-10-31  132  		dev_err(priv->dev, "frame underflow!\n");
d5581be4f939c5 Jason-jh Lin  2025-10-31  133  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  134  	return IRQ_HANDLED;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  135  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  136  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @137  void mtk_disp_outproc_config(struct device *dev, unsigned int w,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  138  			     unsigned int h, unsigned int vrefresh,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  139  			     unsigned int bpc, struct cmdq_pkt *cmdq_pkt)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  140  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  141  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  142  	unsigned int tmp;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  143  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  144  	dev_dbg(dev, "%s-w:%d, h:%d\n", __func__, w, h);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  145  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  146  	tmp = readl(priv->regs + DISP_REG_OVL_OUTPROC_SHADOW_CTRL);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  147  	tmp = tmp | OVL_OUTPROC_BYPASS_SHADOW;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  148  	writel(tmp, priv->regs + DISP_REG_OVL_OUTPROC_SHADOW_CTRL);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  149  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  150  	mtk_ddp_write_mask(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  151  			   DISP_REG_OVL_OUTPROC_ROI_SIZE, ~0);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  152  	mtk_ddp_write_mask(cmdq_pkt, DATAPATH_CON_OUTPUT_CLAMP, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  153  			   DISP_REG_OVL_OUTPROC_DATAPATH_CON, DATAPATH_CON_OUTPUT_CLAMP);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  154  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  155  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @156  void mtk_disp_outproc_start(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  157  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  158  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
b7c8e781f020aa Sunny.Shen    2024-09-11  159  	unsigned int crc_mode_en  = OVL_OUTPROC_HG_FOVL_CK_ON |
b7c8e781f020aa Sunny.Shen    2024-09-11  160  				    OVL_OUTPROC_HF_FOVL_CK_ON |
b7c8e781f020aa Sunny.Shen    2024-09-11  161  				    OVL_OUTPROC_OP_8BIT_MODE;
f3e6b1244e7c0a Nancy.Lin     2025-01-10  162  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  163  	mtk_ddp_write_mask(NULL, OVL_OUTPROC_RST, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  164  			   DISP_REG_OVL_OUTPROC_RST, OVL_OUTPROC_RST);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  165  	mtk_ddp_write_mask(NULL, 0, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  166  			   DISP_REG_OVL_OUTPROC_RST, OVL_OUTPROC_RST);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  167  	mtk_ddp_write(NULL, 0, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  168  		      DISP_REG_OVL_OUTPROC_INTSTA);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  169  	mtk_ddp_write_mask(NULL, OVL_OUTPROC_OVL_EN, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  170  			   DISP_REG_OVL_OUTPROC_EN, OVL_OUTPROC_OVL_EN);
b7c8e781f020aa Sunny.Shen    2024-09-11  171  
b7c8e781f020aa Sunny.Shen    2024-09-11  172  	if (priv->crc.cnt) {
b7c8e781f020aa Sunny.Shen    2024-09-11  173  		mtk_ddp_write_mask(NULL, crc_mode_en, &priv->cmdq_reg, priv->regs,
b7c8e781f020aa Sunny.Shen    2024-09-11  174  				 DISP_REG_OVL_OUTPROC_MODE, crc_mode_en);
b7c8e781f020aa Sunny.Shen    2024-09-11  175  		mtk_ddp_write(NULL, OVL_OUTPROC_CRC_EN, &priv->cmdq_reg, priv->regs,
b7c8e781f020aa Sunny.Shen    2024-09-11  176  			      DISP_REG_OVL_OUTPROC_TRIG);
b7c8e781f020aa Sunny.Shen    2024-09-11  177  
b7c8e781f020aa Sunny.Shen    2024-09-11  178  #if IS_REACHABLE(CONFIG_MTK_CMDQ)
b7c8e781f020aa Sunny.Shen    2024-09-11  179  		mtk_crtc_start_crc_cmdq(&priv->crc);
b7c8e781f020aa Sunny.Shen    2024-09-11  180  #endif
b7c8e781f020aa Sunny.Shen    2024-09-11  181  	}
f3e6b1244e7c0a Nancy.Lin     2025-01-10  182  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  183  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @184  void mtk_disp_outproc_stop(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  185  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  186  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
b7c8e781f020aa Sunny.Shen    2024-09-11  187  	unsigned int crc_mode_en  = OVL_OUTPROC_HG_FOVL_CK_ON |
b7c8e781f020aa Sunny.Shen    2024-09-11  188  				    OVL_OUTPROC_HF_FOVL_CK_ON |
b7c8e781f020aa Sunny.Shen    2024-09-11  189  				    OVL_OUTPROC_OP_8BIT_MODE;
b7c8e781f020aa Sunny.Shen    2024-09-11  190  
b7c8e781f020aa Sunny.Shen    2024-09-11  191  	mtk_ddp_write(NULL, 0, &priv->cmdq_reg, priv->regs,
b7c8e781f020aa Sunny.Shen    2024-09-11  192  		      DISP_REG_OVL_OUTPROC_TRIG);
b7c8e781f020aa Sunny.Shen    2024-09-11  193  	mtk_ddp_write_mask(NULL, 0, &priv->cmdq_reg, priv->regs,
b7c8e781f020aa Sunny.Shen    2024-09-11  194  			   DISP_REG_OVL_OUTPROC_MODE, crc_mode_en);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  195  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  196  	mtk_ddp_write(NULL, 0, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  197  		      DISP_REG_OVL_OUTPROC_INTEN);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  198  	mtk_ddp_write_mask(NULL, 0, &priv->cmdq_reg, priv->regs,
f3e6b1244e7c0a Nancy.Lin     2025-01-10  199  			   DISP_REG_OVL_OUTPROC_EN, OVL_OUTPROC_OVL_EN);
b7c8e781f020aa Sunny.Shen    2024-09-11  200  
b7c8e781f020aa Sunny.Shen    2024-09-11  201  #if IS_REACHABLE(CONFIG_MTK_CMDQ)
b7c8e781f020aa Sunny.Shen    2024-09-11  202  	if (priv->crc.cnt)
b7c8e781f020aa Sunny.Shen    2024-09-11  203  		mtk_crtc_stop_crc_cmdq(&priv->crc);
b7c8e781f020aa Sunny.Shen    2024-09-11  204  #endif
f3e6b1244e7c0a Nancy.Lin     2025-01-10  205  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  206  
31d89b3b35a1b3 xiandong.wang 2025-11-24 @207  void mtk_disp_outproc_crc_reset(struct device *dev, struct cmdq_pkt *cmdq_pkt)
31d89b3b35a1b3 xiandong.wang 2025-11-24  208  {
31d89b3b35a1b3 xiandong.wang 2025-11-24  209  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
31d89b3b35a1b3 xiandong.wang 2025-11-24  210  	struct mtk_crtc_crc *crc = &priv->crc;
31d89b3b35a1b3 xiandong.wang 2025-11-24  211  
31d89b3b35a1b3 xiandong.wang 2025-11-24  212  	/* reset crc */
31d89b3b35a1b3 xiandong.wang 2025-11-24  213  	mtk_ddp_write_mask(cmdq_pkt, OVL_OUTPROC_CRC_CLR, &priv->cmdq_reg, priv->regs,
31d89b3b35a1b3 xiandong.wang 2025-11-24  214  			   crc->rst_ofs, crc->rst_msk);
31d89b3b35a1b3 xiandong.wang 2025-11-24  215  
31d89b3b35a1b3 xiandong.wang 2025-11-24  216  	/* clear reset bit */
31d89b3b35a1b3 xiandong.wang 2025-11-24  217  	mtk_ddp_write_mask(cmdq_pkt, 0, &priv->cmdq_reg, priv->regs,
31d89b3b35a1b3 xiandong.wang 2025-11-24  218  			   crc->rst_ofs, crc->rst_msk);
31d89b3b35a1b3 xiandong.wang 2025-11-24  219  }
31d89b3b35a1b3 xiandong.wang 2025-11-24  220  
31d89b3b35a1b3 xiandong.wang 2025-11-24 @221  void mtk_disp_outproc_crc_attach(struct device *dev, struct mtk_crtc *data)
31d89b3b35a1b3 xiandong.wang 2025-11-24  222  {
31d89b3b35a1b3 xiandong.wang 2025-11-24  223  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
31d89b3b35a1b3 xiandong.wang 2025-11-24  224  
31d89b3b35a1b3 xiandong.wang 2025-11-24  225  	mtk_crtc_create_crc_cmdq(&priv->crc, data);
31d89b3b35a1b3 xiandong.wang 2025-11-24  226  }
31d89b3b35a1b3 xiandong.wang 2025-11-24  227  
31d89b3b35a1b3 xiandong.wang 2025-11-24 @228  void mtk_disp_outproc_crc_detach(struct device *dev)
31d89b3b35a1b3 xiandong.wang 2025-11-24  229  {
31d89b3b35a1b3 xiandong.wang 2025-11-24  230  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
31d89b3b35a1b3 xiandong.wang 2025-11-24  231  
31d89b3b35a1b3 xiandong.wang 2025-11-24  232  	mtk_crtc_destroy_crc_cmdq(&priv->crc);
31d89b3b35a1b3 xiandong.wang 2025-11-24  233  }
31d89b3b35a1b3 xiandong.wang 2025-11-24  234  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @235  int mtk_disp_outproc_clk_enable(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  236  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  237  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  238  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  239  	return clk_prepare_enable(priv->clk);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  240  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  241  
f3e6b1244e7c0a Nancy.Lin     2025-01-10 @242  void mtk_disp_outproc_clk_disable(struct device *dev)
f3e6b1244e7c0a Nancy.Lin     2025-01-10  243  {
f3e6b1244e7c0a Nancy.Lin     2025-01-10  244  	struct mtk_disp_outproc *priv = dev_get_drvdata(dev);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  245  
f3e6b1244e7c0a Nancy.Lin     2025-01-10  246  	clk_disable_unprepare(priv->clk);
f3e6b1244e7c0a Nancy.Lin     2025-01-10  247  }
f3e6b1244e7c0a Nancy.Lin     2025-01-10  248  

:::::: The code at line 61 was first introduced by commit
:::::: b7c8e781f020aabd1461232257632f4c04ba97ca CHROMIUM: drm/mediatek: Add CRC support for MT8196

:::::: TO: Sunny.Shen <sunny.shen@mediatek.corp-partner.google.com>
:::::: CC: Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-12-09  1:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-09  1:31 [chrome-os:chromeos-6.6 36/36] drivers/gpu/drm/mediatek/mtk_disp_outproc.c:61:8: warning: no previous prototype for function 'mtk_disp_outproc_crc_cnt' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.