[PATCH] drm: rcar-du: crtc: force depends on cmm

kernel test robot lkp at intel.com
Wed Jul 28 19:34:53 UTC 2021


Hi Jackie,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on pinchartl-media/drm/du/next]
[also build test ERROR on drm-intel/for-linux-next drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next v5.14-rc3 next-20210727]
[cannot apply to drm/drm-next]
[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]

url:    https://github.com/0day-ci/linux/commits/Jackie-Liu/drm-rcar-du-crtc-force-depends-on-cmm/20210728-222353
base:   git://linuxtv.org/pinchartl/media.git drm/du/next
config: arm-defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.3.0
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/0day-ci/linux/commit/d8277431962a65912c00e968b5df7bf103cda67a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Jackie-Liu/drm-rcar-du-crtc-force-depends-on-cmm/20210728-222353
        git checkout d8277431962a65912c00e968b5df7bf103cda67a
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/gpu/drm/rcar-du/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

>> drivers/gpu/drm/rcar-du/rcar_cmm.c:81:5: error: redefinition of 'rcar_cmm_setup'
      81 | int rcar_cmm_setup(struct platform_device *pdev,
         |     ^~~~~~~~~~~~~~
   In file included from drivers/gpu/drm/rcar-du/rcar_cmm.c:16:
   drivers/gpu/drm/rcar-du/rcar_cmm.h:51:19: note: previous definition of 'rcar_cmm_setup' was here
      51 | static inline int rcar_cmm_setup(struct platform_device *pdev,
         |                   ^~~~~~~~~~~~~~
>> drivers/gpu/drm/rcar-du/rcar_cmm.c:121:5: error: redefinition of 'rcar_cmm_enable'
     121 | int rcar_cmm_enable(struct platform_device *pdev)
         |     ^~~~~~~~~~~~~~~
   In file included from drivers/gpu/drm/rcar-du/rcar_cmm.c:16:
   drivers/gpu/drm/rcar-du/rcar_cmm.h:42:19: note: previous definition of 'rcar_cmm_enable' was here
      42 | static inline int rcar_cmm_enable(struct platform_device *pdev)
         |                   ^~~~~~~~~~~~~~~
>> drivers/gpu/drm/rcar-du/rcar_cmm.c:143:6: error: redefinition of 'rcar_cmm_disable'
     143 | void rcar_cmm_disable(struct platform_device *pdev)
         |      ^~~~~~~~~~~~~~~~
   In file included from drivers/gpu/drm/rcar-du/rcar_cmm.c:16:
   drivers/gpu/drm/rcar-du/rcar_cmm.h:47:20: note: previous definition of 'rcar_cmm_disable' was here
      47 | static inline void rcar_cmm_disable(struct platform_device *pdev)
         |                    ^~~~~~~~~~~~~~~~
>> drivers/gpu/drm/rcar-du/rcar_cmm.c:161:5: error: redefinition of 'rcar_cmm_init'
     161 | int rcar_cmm_init(struct platform_device *pdev)
         |     ^~~~~~~~~~~~~
   In file included from drivers/gpu/drm/rcar-du/rcar_cmm.c:16:
   drivers/gpu/drm/rcar-du/rcar_cmm.h:37:19: note: previous definition of 'rcar_cmm_init' was here
      37 | static inline int rcar_cmm_init(struct platform_device *pdev)
         |                   ^~~~~~~~~~~~~


vim +/rcar_cmm_setup +81 drivers/gpu/drm/rcar-du/rcar_cmm.c

e08e934d6c289ed Jacopo Mondi  2019-10-17   64  
e08e934d6c289ed Jacopo Mondi  2019-10-17   65  /*
e08e934d6c289ed Jacopo Mondi  2019-10-17   66   * rcar_cmm_setup() - Configure the CMM unit
e08e934d6c289ed Jacopo Mondi  2019-10-17   67   * @pdev: The platform device associated with the CMM instance
e08e934d6c289ed Jacopo Mondi  2019-10-17   68   * @config: The CMM unit configuration
e08e934d6c289ed Jacopo Mondi  2019-10-17   69   *
e08e934d6c289ed Jacopo Mondi  2019-10-17   70   * Configure the CMM unit with the given configuration. Currently enabling,
e08e934d6c289ed Jacopo Mondi  2019-10-17   71   * disabling and programming of the 1-D LUT unit is supported.
e08e934d6c289ed Jacopo Mondi  2019-10-17   72   *
e08e934d6c289ed Jacopo Mondi  2019-10-17   73   * As rcar_cmm_setup() accesses the CMM registers the unit should be powered
e08e934d6c289ed Jacopo Mondi  2019-10-17   74   * and its functional clock enabled. To guarantee this, before any call to
e08e934d6c289ed Jacopo Mondi  2019-10-17   75   * this function is made, the CMM unit has to be enabled by calling
e08e934d6c289ed Jacopo Mondi  2019-10-17   76   * rcar_cmm_enable() first.
e08e934d6c289ed Jacopo Mondi  2019-10-17   77   *
e08e934d6c289ed Jacopo Mondi  2019-10-17   78   * TODO: Add support for LUT double buffer operations to avoid updating the
e08e934d6c289ed Jacopo Mondi  2019-10-17   79   * LUT table entries while a frame is being displayed.
e08e934d6c289ed Jacopo Mondi  2019-10-17   80   */
e08e934d6c289ed Jacopo Mondi  2019-10-17  @81  int rcar_cmm_setup(struct platform_device *pdev,
e08e934d6c289ed Jacopo Mondi  2019-10-17   82  		   const struct rcar_cmm_config *config)
e08e934d6c289ed Jacopo Mondi  2019-10-17   83  {
e08e934d6c289ed Jacopo Mondi  2019-10-17   84  	struct rcar_cmm *rcmm = platform_get_drvdata(pdev);
e08e934d6c289ed Jacopo Mondi  2019-10-17   85  
e08e934d6c289ed Jacopo Mondi  2019-10-17   86  	/* Disable LUT if no table is provided. */
e08e934d6c289ed Jacopo Mondi  2019-10-17   87  	if (!config->lut.table) {
e08e934d6c289ed Jacopo Mondi  2019-10-17   88  		if (rcmm->lut.enabled) {
e08e934d6c289ed Jacopo Mondi  2019-10-17   89  			rcar_cmm_write(rcmm, CM2_LUT_CTRL, 0);
e08e934d6c289ed Jacopo Mondi  2019-10-17   90  			rcmm->lut.enabled = false;
e08e934d6c289ed Jacopo Mondi  2019-10-17   91  		}
e08e934d6c289ed Jacopo Mondi  2019-10-17   92  
e08e934d6c289ed Jacopo Mondi  2019-10-17   93  		return 0;
e08e934d6c289ed Jacopo Mondi  2019-10-17   94  	}
e08e934d6c289ed Jacopo Mondi  2019-10-17   95  
e08e934d6c289ed Jacopo Mondi  2019-10-17   96  	/* Enable LUT and program the new gamma table values. */
e08e934d6c289ed Jacopo Mondi  2019-10-17   97  	if (!rcmm->lut.enabled) {
e08e934d6c289ed Jacopo Mondi  2019-10-17   98  		rcar_cmm_write(rcmm, CM2_LUT_CTRL, CM2_LUT_CTRL_LUT_EN);
e08e934d6c289ed Jacopo Mondi  2019-10-17   99  		rcmm->lut.enabled = true;
e08e934d6c289ed Jacopo Mondi  2019-10-17  100  	}
e08e934d6c289ed Jacopo Mondi  2019-10-17  101  
e08e934d6c289ed Jacopo Mondi  2019-10-17  102  	rcar_cmm_lut_write(rcmm, config->lut.table);
e08e934d6c289ed Jacopo Mondi  2019-10-17  103  
e08e934d6c289ed Jacopo Mondi  2019-10-17  104  	return 0;
e08e934d6c289ed Jacopo Mondi  2019-10-17  105  }
e08e934d6c289ed Jacopo Mondi  2019-10-17  106  EXPORT_SYMBOL_GPL(rcar_cmm_setup);
e08e934d6c289ed Jacopo Mondi  2019-10-17  107  
e08e934d6c289ed Jacopo Mondi  2019-10-17  108  /*
e08e934d6c289ed Jacopo Mondi  2019-10-17  109   * rcar_cmm_enable() - Enable the CMM unit
e08e934d6c289ed Jacopo Mondi  2019-10-17  110   * @pdev: The platform device associated with the CMM instance
e08e934d6c289ed Jacopo Mondi  2019-10-17  111   *
e08e934d6c289ed Jacopo Mondi  2019-10-17  112   * When the output of the corresponding DU channel is routed to the CMM unit,
e08e934d6c289ed Jacopo Mondi  2019-10-17  113   * the unit shall be enabled before the DU channel is started, and remain
e08e934d6c289ed Jacopo Mondi  2019-10-17  114   * enabled until the channel is stopped. The CMM unit shall be disabled with
e08e934d6c289ed Jacopo Mondi  2019-10-17  115   * rcar_cmm_disable().
e08e934d6c289ed Jacopo Mondi  2019-10-17  116   *
e08e934d6c289ed Jacopo Mondi  2019-10-17  117   * Calls to rcar_cmm_enable() and rcar_cmm_disable() are not reference-counted.
e08e934d6c289ed Jacopo Mondi  2019-10-17  118   * It is an error to attempt to enable an already enabled CMM unit, or to
e08e934d6c289ed Jacopo Mondi  2019-10-17  119   * attempt to disable a disabled unit.
e08e934d6c289ed Jacopo Mondi  2019-10-17  120   */
e08e934d6c289ed Jacopo Mondi  2019-10-17 @121  int rcar_cmm_enable(struct platform_device *pdev)
e08e934d6c289ed Jacopo Mondi  2019-10-17  122  {
e08e934d6c289ed Jacopo Mondi  2019-10-17  123  	int ret;
e08e934d6c289ed Jacopo Mondi  2019-10-17  124  
136ce7684bc1ff4 Qinglang Miao 2020-11-27  125  	ret = pm_runtime_resume_and_get(&pdev->dev);
e08e934d6c289ed Jacopo Mondi  2019-10-17  126  	if (ret < 0)
e08e934d6c289ed Jacopo Mondi  2019-10-17  127  		return ret;
e08e934d6c289ed Jacopo Mondi  2019-10-17  128  
e08e934d6c289ed Jacopo Mondi  2019-10-17  129  	return 0;
e08e934d6c289ed Jacopo Mondi  2019-10-17  130  }
e08e934d6c289ed Jacopo Mondi  2019-10-17  131  EXPORT_SYMBOL_GPL(rcar_cmm_enable);
e08e934d6c289ed Jacopo Mondi  2019-10-17  132  
e08e934d6c289ed Jacopo Mondi  2019-10-17  133  /*
e08e934d6c289ed Jacopo Mondi  2019-10-17  134   * rcar_cmm_disable() - Disable the CMM unit
e08e934d6c289ed Jacopo Mondi  2019-10-17  135   * @pdev: The platform device associated with the CMM instance
e08e934d6c289ed Jacopo Mondi  2019-10-17  136   *
e08e934d6c289ed Jacopo Mondi  2019-10-17  137   * See rcar_cmm_enable() for usage information.
e08e934d6c289ed Jacopo Mondi  2019-10-17  138   *
e08e934d6c289ed Jacopo Mondi  2019-10-17  139   * Disabling the CMM unit disable all the internal processing blocks. The CMM
e08e934d6c289ed Jacopo Mondi  2019-10-17  140   * state shall thus be restored with rcar_cmm_setup() when re-enabling the CMM
e08e934d6c289ed Jacopo Mondi  2019-10-17  141   * unit after the next rcar_cmm_enable() call.
e08e934d6c289ed Jacopo Mondi  2019-10-17  142   */
e08e934d6c289ed Jacopo Mondi  2019-10-17 @143  void rcar_cmm_disable(struct platform_device *pdev)
e08e934d6c289ed Jacopo Mondi  2019-10-17  144  {
e08e934d6c289ed Jacopo Mondi  2019-10-17  145  	struct rcar_cmm *rcmm = platform_get_drvdata(pdev);
e08e934d6c289ed Jacopo Mondi  2019-10-17  146  
e08e934d6c289ed Jacopo Mondi  2019-10-17  147  	rcar_cmm_write(rcmm, CM2_LUT_CTRL, 0);
e08e934d6c289ed Jacopo Mondi  2019-10-17  148  	rcmm->lut.enabled = false;
e08e934d6c289ed Jacopo Mondi  2019-10-17  149  
e08e934d6c289ed Jacopo Mondi  2019-10-17  150  	pm_runtime_put(&pdev->dev);
e08e934d6c289ed Jacopo Mondi  2019-10-17  151  }
e08e934d6c289ed Jacopo Mondi  2019-10-17  152  EXPORT_SYMBOL_GPL(rcar_cmm_disable);
e08e934d6c289ed Jacopo Mondi  2019-10-17  153  
e08e934d6c289ed Jacopo Mondi  2019-10-17  154  /*
e08e934d6c289ed Jacopo Mondi  2019-10-17  155   * rcar_cmm_init() - Initialize the CMM unit
e08e934d6c289ed Jacopo Mondi  2019-10-17  156   * @pdev: The platform device associated with the CMM instance
e08e934d6c289ed Jacopo Mondi  2019-10-17  157   *
e08e934d6c289ed Jacopo Mondi  2019-10-17  158   * Return: 0 on success, -EPROBE_DEFER if the CMM is not available yet,
e08e934d6c289ed Jacopo Mondi  2019-10-17  159   *         -ENODEV if the DRM_RCAR_CMM config option is disabled
e08e934d6c289ed Jacopo Mondi  2019-10-17  160   */
e08e934d6c289ed Jacopo Mondi  2019-10-17 @161  int rcar_cmm_init(struct platform_device *pdev)
e08e934d6c289ed Jacopo Mondi  2019-10-17  162  {
e08e934d6c289ed Jacopo Mondi  2019-10-17  163  	struct rcar_cmm *rcmm = platform_get_drvdata(pdev);
e08e934d6c289ed Jacopo Mondi  2019-10-17  164  
e08e934d6c289ed Jacopo Mondi  2019-10-17  165  	if (!rcmm)
e08e934d6c289ed Jacopo Mondi  2019-10-17  166  		return -EPROBE_DEFER;
e08e934d6c289ed Jacopo Mondi  2019-10-17  167  
e08e934d6c289ed Jacopo Mondi  2019-10-17  168  	return 0;
e08e934d6c289ed Jacopo Mondi  2019-10-17  169  }
e08e934d6c289ed Jacopo Mondi  2019-10-17  170  EXPORT_SYMBOL_GPL(rcar_cmm_init);
e08e934d6c289ed Jacopo Mondi  2019-10-17  171  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 54032 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20210729/0c452db5/attachment-0001.gz>


More information about the dri-devel mailing list