tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   24085f70a6e1b0cb647ec92623284641d8270637
commit: def2fbffe62c00c330c7f41584a356001179c59c kconfig: allow symbols implied 
by y to become m
date:   9 weeks ago
config: arm64-randconfig-r034-20200513 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout def2fbffe62c00c330c7f41584a356001179c59c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross 
ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function 
`rcar_du_cmm_setup':
>> drivers/gpu/drm/rcar-du/rcar_du_crtc.c:515: undefined reference to 
>> `rcar_cmm_setup'
aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function 
`rcar_du_crtc_atomic_enable':
>> drivers/gpu/drm/rcar-du/rcar_du_crtc.c:720: undefined reference to 
>> `rcar_cmm_enable'
aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function 
`rcar_du_crtc_stop':
>> drivers/gpu/drm/rcar-du/rcar_du_crtc.c:664: undefined reference to 
>> `rcar_cmm_disable'
aarch64-linux-ld: drivers/gpu/drm/rcar-du/rcar_du_kms.o: in function 
`rcar_du_cmm_init':
>> drivers/gpu/drm/rcar-du/rcar_du_kms.c:678: undefined reference to 
>> `rcar_cmm_init'

vim +515 drivers/gpu/drm/rcar-du/rcar_du_crtc.c

78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  502  
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  503  static void 
rcar_du_cmm_setup(struct drm_crtc *crtc)
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  504  {
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  505         struct 
drm_property_blob *drm_lut = crtc->state->gamma_lut;
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  506         struct rcar_du_crtc 
*rcrtc = to_rcar_crtc(crtc);
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  507         struct rcar_cmm_config 
cmm_config = {};
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  508  
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  509         if (!rcrtc->cmm)
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  510                 return;
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  511  
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  512         if (drm_lut)
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  513                 
cmm_config.lut.table = (struct drm_color_lut *)drm_lut->data;
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  514  
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17 @515         
rcar_cmm_setup(rcrtc->cmm, &cmm_config);
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  516  }
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  517  
17f6b8a0270f7a Laurent Pinchart 2015-02-18  518  /* 
-----------------------------------------------------------------------------
17f6b8a0270f7a Laurent Pinchart 2015-02-18  519   * Start/Stop and 
Suspend/Resume
17f6b8a0270f7a Laurent Pinchart 2015-02-18  520   */
17f6b8a0270f7a Laurent Pinchart 2015-02-18  521  
f4112469cdb6da Laurent Pinchart 2017-06-27  522  static void 
rcar_du_crtc_setup(struct rcar_du_crtc *rcrtc)
4bf8e1962f91ee Laurent Pinchart 2013-06-19  523  {
4bf8e1962f91ee Laurent Pinchart 2013-06-19  524         /* Set display off and 
background to black */
4bf8e1962f91ee Laurent Pinchart 2013-06-19  525         
rcar_du_crtc_write(rcrtc, DOOR, DOOR_RGB(0, 0, 0));
4bf8e1962f91ee Laurent Pinchart 2013-06-19  526         
rcar_du_crtc_write(rcrtc, BPOR, BPOR_RGB(0, 0, 0));
4bf8e1962f91ee Laurent Pinchart 2013-06-19  527  
4bf8e1962f91ee Laurent Pinchart 2013-06-19  528         /* Configure display 
timings and output routing */
4bf8e1962f91ee Laurent Pinchart 2013-06-19  529         
rcar_du_crtc_set_display_timing(rcrtc);
2fd22dba23e384 Laurent Pinchart 2013-06-17  530         
rcar_du_group_set_routing(rcrtc->group);
4bf8e1962f91ee Laurent Pinchart 2013-06-19  531  
52055bafa1ffcd Laurent Pinchart 2015-02-23  532         /* Start with all 
planes disabled. */
52055bafa1ffcd Laurent Pinchart 2015-02-23  533         
rcar_du_group_write(rcrtc->group, rcrtc->index % 2 ? DS2PR : DS1PR, 0);
4bf8e1962f91ee Laurent Pinchart 2013-06-19  534  
f4112469cdb6da Laurent Pinchart 2017-06-27  535         /* Enable the VSP 
compositor. */
b764f2f66ed48c Kieran Bingham   2019-03-15  536         if 
(rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_VSP1_SOURCE))
f4112469cdb6da Laurent Pinchart 2017-06-27  537                 
rcar_du_vsp_enable(rcrtc);
f4112469cdb6da Laurent Pinchart 2017-06-27  538  
f4112469cdb6da Laurent Pinchart 2017-06-27  539         /* Turn vertical 
blanking interrupt reporting on. */
f4112469cdb6da Laurent Pinchart 2017-06-27  540         
drm_crtc_vblank_on(&rcrtc->crtc);
f4112469cdb6da Laurent Pinchart 2017-06-27  541  }
f4112469cdb6da Laurent Pinchart 2017-06-27  542  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  543  static int 
rcar_du_crtc_get(struct rcar_du_crtc *rcrtc)
0bb63534fdf3bc Laurent Pinchart 2017-07-14  544  {
0bb63534fdf3bc Laurent Pinchart 2017-07-14  545         int ret;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  546  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  547         /*
0bb63534fdf3bc Laurent Pinchart 2017-07-14  548          * Guard against 
double-get, as the function is called from both the
0bb63534fdf3bc Laurent Pinchart 2017-07-14  549          * .atomic_enable() and 
.atomic_begin() handlers.
0bb63534fdf3bc Laurent Pinchart 2017-07-14  550          */
0bb63534fdf3bc Laurent Pinchart 2017-07-14  551         if (rcrtc->initialized)
0bb63534fdf3bc Laurent Pinchart 2017-07-14  552                 return 0;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  553  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  554         ret = 
clk_prepare_enable(rcrtc->clock);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  555         if (ret < 0)
0bb63534fdf3bc Laurent Pinchart 2017-07-14  556                 return ret;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  557  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  558         ret = 
clk_prepare_enable(rcrtc->extclock);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  559         if (ret < 0)
0bb63534fdf3bc Laurent Pinchart 2017-07-14  560                 goto 
error_clock;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  561  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  562         ret = 
rcar_du_group_get(rcrtc->group);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  563         if (ret < 0)
0bb63534fdf3bc Laurent Pinchart 2017-07-14  564                 goto 
error_group;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  565  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  566         
rcar_du_crtc_setup(rcrtc);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  567         rcrtc->initialized = 
true;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  568  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  569         return 0;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  570  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  571  error_group:
0bb63534fdf3bc Laurent Pinchart 2017-07-14  572         
clk_disable_unprepare(rcrtc->extclock);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  573  error_clock:
0bb63534fdf3bc Laurent Pinchart 2017-07-14  574         
clk_disable_unprepare(rcrtc->clock);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  575         return ret;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  576  }
0bb63534fdf3bc Laurent Pinchart 2017-07-14  577  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  578  static void 
rcar_du_crtc_put(struct rcar_du_crtc *rcrtc)
0bb63534fdf3bc Laurent Pinchart 2017-07-14  579  {
0bb63534fdf3bc Laurent Pinchart 2017-07-14  580         
rcar_du_group_put(rcrtc->group);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  581  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  582         
clk_disable_unprepare(rcrtc->extclock);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  583         
clk_disable_unprepare(rcrtc->clock);
0bb63534fdf3bc Laurent Pinchart 2017-07-14  584  
0bb63534fdf3bc Laurent Pinchart 2017-07-14  585         rcrtc->initialized = 
false;
0bb63534fdf3bc Laurent Pinchart 2017-07-14  586  }
0bb63534fdf3bc Laurent Pinchart 2017-07-14  587  
f4112469cdb6da Laurent Pinchart 2017-06-27  588  static void 
rcar_du_crtc_start(struct rcar_du_crtc *rcrtc)
f4112469cdb6da Laurent Pinchart 2017-06-27  589  {
f4112469cdb6da Laurent Pinchart 2017-06-27  590         bool interlaced;
f4112469cdb6da Laurent Pinchart 2017-06-27  591  
f3bafc123ba867 Laurent Pinchart 2017-07-11  592         /*
f3bafc123ba867 Laurent Pinchart 2017-07-11  593          * Select master sync 
mode. This enables display operation in master
4bf8e1962f91ee Laurent Pinchart 2013-06-19  594          * sync mode (with the 
HSYNC and VSYNC signals configured as outputs and
4bf8e1962f91ee Laurent Pinchart 2013-06-19  595          * actively driven).
4bf8e1962f91ee Laurent Pinchart 2013-06-19  596          */
906eff7fcada41 Laurent Pinchart 2014-12-09  597         interlaced = 
rcrtc->crtc.mode.flags & DRM_MODE_FLAG_INTERLACE;
9144adc5e5a995 Laurent Pinchart 2018-08-22  598         
rcar_du_crtc_dsysr_clr_set(rcrtc, DSYSR_TVM_MASK | DSYSR_SCM_MASK,
906eff7fcada41 Laurent Pinchart 2014-12-09  599                                 
   (interlaced ? DSYSR_SCM_INT_VIDEO : 0) |
906eff7fcada41 Laurent Pinchart 2014-12-09  600                                 
   DSYSR_TVM_MASTER);
4bf8e1962f91ee Laurent Pinchart 2013-06-19  601  
cb2025d2509ffa Laurent Pinchart 2013-06-16  602         
rcar_du_group_start_stop(rcrtc->group, true);
4bf8e1962f91ee Laurent Pinchart 2013-06-19  603  }
4bf8e1962f91ee Laurent Pinchart 2013-06-19  604  
641307df71fe77 Laurent Pinchart 2017-07-29  605  static void 
rcar_du_crtc_disable_planes(struct rcar_du_crtc *rcrtc)
641307df71fe77 Laurent Pinchart 2017-07-29  606  {
b764f2f66ed48c Kieran Bingham   2019-03-15  607         struct rcar_du_device 
*rcdu = rcrtc->dev;
641307df71fe77 Laurent Pinchart 2017-07-29  608         struct drm_crtc *crtc = 
&rcrtc->crtc;
641307df71fe77 Laurent Pinchart 2017-07-29  609         u32 status;
641307df71fe77 Laurent Pinchart 2017-07-29  610  
641307df71fe77 Laurent Pinchart 2017-07-29  611         /* Make sure vblank 
interrupts are enabled. */
641307df71fe77 Laurent Pinchart 2017-07-29  612         
drm_crtc_vblank_get(crtc);
641307df71fe77 Laurent Pinchart 2017-07-29  613  
641307df71fe77 Laurent Pinchart 2017-07-29  614         /*
641307df71fe77 Laurent Pinchart 2017-07-29  615          * Disable planes and 
calculate how many vertical blanking interrupts we
641307df71fe77 Laurent Pinchart 2017-07-29  616          * have to wait for. If 
a vertical blanking interrupt has been triggered
641307df71fe77 Laurent Pinchart 2017-07-29  617          * but not processed 
yet, we don't know whether it occurred before or
641307df71fe77 Laurent Pinchart 2017-07-29  618          * after the planes got 
disabled. We thus have to wait for two vblank
641307df71fe77 Laurent Pinchart 2017-07-29  619          * interrupts in that 
case.
641307df71fe77 Laurent Pinchart 2017-07-29  620          */
641307df71fe77 Laurent Pinchart 2017-07-29  621         
spin_lock_irq(&rcrtc->vblank_lock);
641307df71fe77 Laurent Pinchart 2017-07-29  622         
rcar_du_group_write(rcrtc->group, rcrtc->index % 2 ? DS2PR : DS1PR, 0);
641307df71fe77 Laurent Pinchart 2017-07-29  623         status = 
rcar_du_crtc_read(rcrtc, DSSR);
641307df71fe77 Laurent Pinchart 2017-07-29  624         rcrtc->vblank_count = 
status & DSSR_VBK ? 2 : 1;
641307df71fe77 Laurent Pinchart 2017-07-29  625         
spin_unlock_irq(&rcrtc->vblank_lock);
641307df71fe77 Laurent Pinchart 2017-07-29  626  
641307df71fe77 Laurent Pinchart 2017-07-29  627         if 
(!wait_event_timeout(rcrtc->vblank_wait, rcrtc->vblank_count == 0,
641307df71fe77 Laurent Pinchart 2017-07-29  628                                 
msecs_to_jiffies(100)))
641307df71fe77 Laurent Pinchart 2017-07-29  629                 
dev_warn(rcdu->dev, "vertical blanking timeout\n");
641307df71fe77 Laurent Pinchart 2017-07-29  630  
641307df71fe77 Laurent Pinchart 2017-07-29  631         
drm_crtc_vblank_put(crtc);
641307df71fe77 Laurent Pinchart 2017-07-29  632  }
641307df71fe77 Laurent Pinchart 2017-07-29  633  
4bf8e1962f91ee Laurent Pinchart 2013-06-19  634  static void 
rcar_du_crtc_stop(struct rcar_du_crtc *rcrtc)
4bf8e1962f91ee Laurent Pinchart 2013-06-19  635  {
4bf8e1962f91ee Laurent Pinchart 2013-06-19  636         struct drm_crtc *crtc = 
&rcrtc->crtc;
4bf8e1962f91ee Laurent Pinchart 2013-06-19  637  
f3bafc123ba867 Laurent Pinchart 2017-07-11  638         /*
f3bafc123ba867 Laurent Pinchart 2017-07-11  639          * Disable all planes 
and wait for the change to take effect. This is
641307df71fe77 Laurent Pinchart 2017-07-29  640          * required as the 
plane enable registers are updated on vblank, and no
641307df71fe77 Laurent Pinchart 2017-07-29  641          * vblank will occur 
once the CRTC is stopped. Disabling planes when
641307df71fe77 Laurent Pinchart 2017-07-29  642          * starting the CRTC 
thus wouldn't be enough as it would start scanning
641307df71fe77 Laurent Pinchart 2017-07-29  643          * out immediately from 
old frame buffers until the next vblank.
911316fe2f4113 Laurent Pinchart 2015-05-14  644          *
911316fe2f4113 Laurent Pinchart 2015-05-14  645          * This increases the 
CRTC stop delay, especially when multiple CRTCs
911316fe2f4113 Laurent Pinchart 2015-05-14  646          * are stopped in one 
operation as we now wait for one vblank per CRTC.
911316fe2f4113 Laurent Pinchart 2015-05-14  647          * Whether this can be 
improved needs to be researched.
911316fe2f4113 Laurent Pinchart 2015-05-14  648          */
641307df71fe77 Laurent Pinchart 2017-07-29  649         
rcar_du_crtc_disable_planes(rcrtc);
911316fe2f4113 Laurent Pinchart 2015-05-14  650  
f3bafc123ba867 Laurent Pinchart 2017-07-11  651         /*
f3bafc123ba867 Laurent Pinchart 2017-07-11  652          * Disable vertical 
blanking interrupt reporting. We first need to wait
0cd90a542885a1 Laurent Pinchart 2015-02-18  653          * for page flip 
completion before stopping the CRTC as userspace
0cd90a542885a1 Laurent Pinchart 2015-02-18  654          * expects page flips 
to eventually complete.
36693f3c3254d9 Laurent Pinchart 2015-02-18  655          */
36693f3c3254d9 Laurent Pinchart 2015-02-18  656         
rcar_du_crtc_wait_page_flip(rcrtc);
0cd90a542885a1 Laurent Pinchart 2015-02-18  657         
drm_crtc_vblank_off(crtc);
36693f3c3254d9 Laurent Pinchart 2015-02-18  658  
6d62ef3ac30be7 Laurent Pinchart 2015-09-07  659         /* Disable the VSP 
compositor. */
b764f2f66ed48c Kieran Bingham   2019-03-15  660         if 
(rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_VSP1_SOURCE))
6d62ef3ac30be7 Laurent Pinchart 2015-09-07  661                 
rcar_du_vsp_disable(rcrtc);
6d62ef3ac30be7 Laurent Pinchart 2015-09-07  662  
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  663         if (rcrtc->cmm)
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17 @664                 
rcar_cmm_disable(rcrtc->cmm);
78b6bb1d24dbf0 Jacopo Mondi     2019-10-17  665  
f3bafc123ba867 Laurent Pinchart 2017-07-11  666         /*
f3bafc123ba867 Laurent Pinchart 2017-07-11  667          * Select switch sync 
mode. This stops display operation and configures
4bf8e1962f91ee Laurent Pinchart 2013-06-19  668          * the HSYNC and VSYNC 
signals as inputs.
ffd15c3e7898cf Laurent Pinchart 2018-08-22  669          *
ffd15c3e7898cf Laurent Pinchart 2018-08-22  670          * TODO: Find another 
way to stop the display for DUs that don't support
ffd15c3e7898cf Laurent Pinchart 2018-08-22  671          * TVM sync.
4bf8e1962f91ee Laurent Pinchart 2013-06-19  672          */
b764f2f66ed48c Kieran Bingham   2019-03-15  673         if 
(rcar_du_has(rcrtc->dev, RCAR_DU_FEATURE_TVM_SYNC))
ffd15c3e7898cf Laurent Pinchart 2018-08-22  674                 
rcar_du_crtc_dsysr_clr_set(rcrtc, DSYSR_TVM_MASK,
ffd15c3e7898cf Laurent Pinchart 2018-08-22  675                                 
           DSYSR_TVM_SWITCH);
4bf8e1962f91ee Laurent Pinchart 2013-06-19  676  
cb2025d2509ffa Laurent Pinchart 2013-06-16  677         
rcar_du_group_start_stop(rcrtc->group, false);
4bf8e1962f91ee Laurent Pinchart 2013-06-19  678  }
4bf8e1962f91ee Laurent Pinchart 2013-06-19  679  

:::::: The code at line 515 was first introduced by commit
:::::: 78b6bb1d24dbf094a4743bae1ee7c020e8193f25 drm: rcar-du: crtc: Control CMM 
operations

:::::: TO: Jacopo Mondi <jacopo+rene...@jmondi.org>
:::::: CC: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to