Hi Thomas,

I love your patch! Yet something to improve:

[auto build test ERROR on next-20200305]
[also build test ERROR on v5.6-rc4]
[cannot apply to rockchip/for-next shawnguo/for-next sunxi/sunxi/for-next 
tegra/for-next linus/master v5.6-rc4 v5.6-rc3 v5.6-rc2]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/drm-Convert-drivers-to-drm_simple_encoder_init/20200306-045931
base:    47466dcf84ee66a973ea7d2fca7e582fe9328932
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-5) 7.5.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

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

All errors (new ones prefixed by >>):

   drivers/gpu/drm/gma500/psb_intel_lvds.c: In function 'psb_intel_lvds_init':
>> drivers/gpu/drm/gma500/psb_intel_lvds.c:676:2: error: implicit declaration 
>> of function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/cdv_intel_crt.c: In function 'cdv_intel_crt_init':
>> drivers/gpu/drm/gma500/cdv_intel_crt.c:267:2: error: implicit declaration of 
>> function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_DAC);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/cdv_intel_hdmi.c: In function 'cdv_hdmi_init':
>> drivers/gpu/drm/gma500/cdv_intel_hdmi.c:315:2: error: implicit declaration 
>> of function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/cdv_intel_dp.c: In function 'cdv_intel_dp_init':
>> drivers/gpu/drm/gma500/cdv_intel_dp.c:2010:2: error: implicit declaration of 
>> function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/cdv_intel_lvds.c: In function 'cdv_intel_lvds_init':
>> drivers/gpu/drm/gma500/cdv_intel_lvds.c:611:2: error: implicit declaration 
>> of function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/oaktrail_lvds.c: In function 'oaktrail_lvds_init':
>> drivers/gpu/drm/gma500/oaktrail_lvds.c:316:2: error: implicit declaration of 
>> function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/oaktrail_hdmi.c: In function 'oaktrail_hdmi_init':
>> drivers/gpu/drm/gma500/oaktrail_hdmi.c:646:2: error: implicit declaration of 
>> function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/gma500/mdfld_dsi_dpi.c: In function 'mdfld_dsi_dpi_init':
>> drivers/gpu/drm/gma500/mdfld_dsi_dpi.c:998:2: error: implicit declaration of 
>> function 'drm_simple_encoder_init'; did you mean 'drm_encoder_init'? 
>> [-Werror=implicit-function-declaration]
     drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS);
     ^~~~~~~~~~~~~~~~~~~~~~~
     drm_encoder_init
   cc1: some warnings being treated as errors

vim +676 drivers/gpu/drm/gma500/psb_intel_lvds.c

   625  
   626  /**
   627   * psb_intel_lvds_init - setup LVDS connectors on this device
   628   * @dev: drm device
   629   *
   630   * Create the connector, register the LVDS DDC bus, and try to figure 
out what
   631   * modes we can display on the LVDS panel (if present).
   632   */
   633  void psb_intel_lvds_init(struct drm_device *dev,
   634                           struct psb_intel_mode_device *mode_dev)
   635  {
   636          struct gma_encoder *gma_encoder;
   637          struct gma_connector *gma_connector;
   638          struct psb_intel_lvds_priv *lvds_priv;
   639          struct drm_connector *connector;
   640          struct drm_encoder *encoder;
   641          struct drm_display_mode *scan;  /* *modes, *bios_mode; */
   642          struct drm_crtc *crtc;
   643          struct drm_psb_private *dev_priv = dev->dev_private;
   644          u32 lvds;
   645          int pipe;
   646  
   647          gma_encoder = kzalloc(sizeof(struct gma_encoder), GFP_KERNEL);
   648          if (!gma_encoder) {
   649                  dev_err(dev->dev, "gma_encoder allocation error\n");
   650                  return;
   651          }
   652  
   653          gma_connector = kzalloc(sizeof(struct gma_connector), 
GFP_KERNEL);
   654          if (!gma_connector) {
   655                  dev_err(dev->dev, "gma_connector allocation error\n");
   656                  goto failed_encoder;
   657          }
   658  
   659          lvds_priv = kzalloc(sizeof(struct psb_intel_lvds_priv), 
GFP_KERNEL);
   660          if (!lvds_priv) {
   661                  dev_err(dev->dev, "LVDS private allocation error\n");
   662                  goto failed_connector;
   663          }
   664  
   665          gma_encoder->dev_priv = lvds_priv;
   666  
   667          connector = &gma_connector->base;
   668          gma_connector->save = psb_intel_lvds_save;
   669          gma_connector->restore = psb_intel_lvds_restore;
   670  
   671          encoder = &gma_encoder->base;
   672          drm_connector_init(dev, connector,
   673                             &psb_intel_lvds_connector_funcs,
   674                             DRM_MODE_CONNECTOR_LVDS);
   675  
 > 676          drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS);
   677  
   678          gma_connector_attach_encoder(gma_connector, gma_encoder);
   679          gma_encoder->type = INTEL_OUTPUT_LVDS;
   680  
   681          drm_encoder_helper_add(encoder, &psb_intel_lvds_helper_funcs);
   682          drm_connector_helper_add(connector,
   683                                   
&psb_intel_lvds_connector_helper_funcs);
   684          connector->display_info.subpixel_order = SubPixelHorizontalRGB;
   685          connector->interlace_allowed = false;
   686          connector->doublescan_allowed = false;
   687  
   688          /*Attach connector properties*/
   689          drm_object_attach_property(&connector->base,
   690                                        
dev->mode_config.scaling_mode_property,
   691                                        DRM_MODE_SCALE_FULLSCREEN);
   692          drm_object_attach_property(&connector->base,
   693                                        dev_priv->backlight_property,
   694                                        BRIGHTNESS_MAX_LEVEL);
   695  
   696          /*
   697           * Set up I2C bus
   698           * FIXME: distroy i2c_bus when exit
   699           */
   700          lvds_priv->i2c_bus = psb_intel_i2c_create(dev, GPIOB, 
"LVDSBLC_B");
   701          if (!lvds_priv->i2c_bus) {
   702                  dev_printk(KERN_ERR,
   703                          &dev->pdev->dev, "I2C bus registration 
failed.\n");
   704                  goto failed_blc_i2c;
   705          }
   706          lvds_priv->i2c_bus->slave_addr = 0x2C;
   707          dev_priv->lvds_i2c_bus =  lvds_priv->i2c_bus;
   708  
   709          /*
   710           * LVDS discovery:
   711           * 1) check for EDID on DDC
   712           * 2) check for VBT data
   713           * 3) check to see if LVDS is already on
   714           *    if none of the above, no panel
   715           * 4) make sure lid is open
   716           *    if closed, act like it's not there for now
   717           */
   718  
   719          /* Set up the DDC bus. */
   720          lvds_priv->ddc_bus = psb_intel_i2c_create(dev, GPIOC, 
"LVDSDDC_C");
   721          if (!lvds_priv->ddc_bus) {
   722                  dev_printk(KERN_ERR, &dev->pdev->dev,
   723                             "DDC bus registration " "failed.\n");
   724                  goto failed_ddc;
   725          }
   726  
   727          /*
   728           * Attempt to get the fixed panel mode from DDC.  Assume that 
the
   729           * preferred mode is the right one.
   730           */
   731          mutex_lock(&dev->mode_config.mutex);
   732          psb_intel_ddc_get_modes(connector, 
&lvds_priv->ddc_bus->adapter);
   733          list_for_each_entry(scan, &connector->probed_modes, head) {
   734                  if (scan->type & DRM_MODE_TYPE_PREFERRED) {
   735                          mode_dev->panel_fixed_mode =
   736                              drm_mode_duplicate(dev, scan);
   737                          DRM_DEBUG_KMS("Using mode from DDC\n");
   738                          goto out;       /* FIXME: check for quirks */
   739                  }
   740          }
   741  
   742          /* Failed to get EDID, what about VBT? do we need this? */
   743          if (dev_priv->lfp_lvds_vbt_mode) {
   744                  mode_dev->panel_fixed_mode =
   745                          drm_mode_duplicate(dev, 
dev_priv->lfp_lvds_vbt_mode);
   746  
   747                  if (mode_dev->panel_fixed_mode) {
   748                          mode_dev->panel_fixed_mode->type |=
   749                                  DRM_MODE_TYPE_PREFERRED;
   750                          DRM_DEBUG_KMS("Using mode from VBT\n");
   751                          goto out;
   752                  }
   753          }
   754  
   755          /*
   756           * If we didn't get EDID, try checking if the panel is already 
turned
   757           * on.  If so, assume that whatever is currently programmed is 
the
   758           * correct mode.
   759           */
   760          lvds = REG_READ(LVDS);
   761          pipe = (lvds & LVDS_PIPEB_SELECT) ? 1 : 0;
   762          crtc = psb_intel_get_crtc_from_pipe(dev, pipe);
   763  
   764          if (crtc && (lvds & LVDS_PORT_EN)) {
   765                  mode_dev->panel_fixed_mode =
   766                      psb_intel_crtc_mode_get(dev, crtc);
   767                  if (mode_dev->panel_fixed_mode) {
   768                          mode_dev->panel_fixed_mode->type |=
   769                              DRM_MODE_TYPE_PREFERRED;
   770                          DRM_DEBUG_KMS("Using pre-programmed mode\n");
   771                          goto out;       /* FIXME: check for quirks */
   772                  }
   773          }
   774  
   775          /* If we still don't have a mode after all that, give up. */
   776          if (!mode_dev->panel_fixed_mode) {
   777                  dev_err(dev->dev, "Found no modes on the lvds, ignoring 
the LVDS\n");
   778                  goto failed_find;
   779          }
   780  
   781          /*
   782           * Blacklist machines with BIOSes that list an LVDS panel 
without
   783           * actually having one.
   784           */
   785  out:
   786          mutex_unlock(&dev->mode_config.mutex);
   787          drm_connector_register(connector);
   788          return;
   789  
   790  failed_find:
   791          mutex_unlock(&dev->mode_config.mutex);
   792          psb_intel_i2c_destroy(lvds_priv->ddc_bus);
   793  failed_ddc:
   794          psb_intel_i2c_destroy(lvds_priv->i2c_bus);
   795  failed_blc_i2c:
   796          drm_encoder_cleanup(encoder);
   797          drm_connector_cleanup(connector);
   798  failed_connector:
   799          kfree(gma_connector);
   800  failed_encoder:
   801          kfree(gma_encoder);
   802  }
   803  

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to