tree:   git://anongit.freedesktop.org/drm-intel topic/drm-misc
head:   5ee4c8f064719f5c62ea53f304845f75f87f2804
commit: d25bcfb8c2e18b9b36f037f38be4d4792ebf8d57 [10/25] drm/hisilicon: Don't 
set drm_device->platformdev
config: arm64-allmodconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609
reproduce:
        wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout d25bcfb8c2e18b9b36f037f38be4d4792ebf8d57
        # save the attached .config to linux build tree
        make.cross ARCH=arm64 

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/list.h:8:0,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from include/linux/of_platform.h:14,
                    from drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c:18:
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c: In function 
'kirin_drm_kms_init':
   include/linux/kernel.h:831:48: error: initialization from incompatible 
pointer type [-Werror=incompatible-pointer-types]
     const typeof( ((type *)0)->member ) *__mptr = (ptr); \
                                                   ^
>> include/linux/platform_device.h:43:31: note: in expansion of macro 
>> 'container_of'
    #define to_platform_device(x) container_of((x), struct platform_device, dev)
                                  ^
>> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c:106:21: note: in expansion 
>> of macro 'to_platform_device'
     ret = dc_ops->init(to_platform_device(dev));
                        ^
>> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c:140:18: error: passing 
>> argument 1 of 'dc_ops->cleanup' from incompatible pointer type 
>> [-Werror=incompatible-pointer-types]
     dc_ops->cleanup(dev);
                     ^
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c:140:18: note: expected 
'struct platform_device *' but argument is of type 'struct drm_device *'
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c: In function 'ade_drm_init':
>> drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c:994:52: error: 'dev' 
>> undeclared (first use in this function)
     struct drm_device *drm_dev = platform_get_drvdata(dev);
                                                       ^
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c:994:52: note: each 
undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c:994:21: warning: unused 
>> variable 'drm_dev' [-Wunused-variable]
     struct drm_device *drm_dev = platform_get_drvdata(dev);
                        ^
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c: In function 
'ade_drm_cleanup':
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c:1055:52: error: 'dev' 
undeclared (first use in this function)
     struct drm_device *drm_dev = platform_get_drvdata(dev);
                                                       ^
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c:1055:21: warning: unused 
variable 'drm_dev' [-Wunused-variable]
     struct drm_device *drm_dev = platform_get_drvdata(dev);
                        ^
   drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c: At top level:
>> drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c:1065:1: error: expected '}' 
>> before ';' token
    ;
    ^

vim +140 drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c

23e7b2ab9 Xinliang Liu  2015-10-09   12   * This program is free software; you 
can redistribute it and/or modify
23e7b2ab9 Xinliang Liu  2015-10-09   13   * it under the terms of the GNU 
General Public License version 2 as
23e7b2ab9 Xinliang Liu  2015-10-09   14   * published by the Free Software 
Foundation.
23e7b2ab9 Xinliang Liu  2015-10-09   15   *
23e7b2ab9 Xinliang Liu  2015-10-09   16   */
23e7b2ab9 Xinliang Liu  2015-10-09   17  
23e7b2ab9 Xinliang Liu  2015-10-09  @18  #include <linux/of_platform.h>
23e7b2ab9 Xinliang Liu  2015-10-09   19  #include <linux/component.h>
23e7b2ab9 Xinliang Liu  2015-10-09   20  #include <linux/of_graph.h>
23e7b2ab9 Xinliang Liu  2015-10-09   21  
23e7b2ab9 Xinliang Liu  2015-10-09   22  #include <drm/drmP.h>
23e7b2ab9 Xinliang Liu  2015-10-09   23  #include <drm/drm_gem_cma_helper.h>
23e7b2ab9 Xinliang Liu  2015-10-09   24  #include <drm/drm_fb_cma_helper.h>
23e7b2ab9 Xinliang Liu  2015-10-09   25  #include <drm/drm_atomic_helper.h>
6b7a59654 Xinliang Liu  2015-10-10   26  #include <drm/drm_crtc_helper.h>
23e7b2ab9 Xinliang Liu  2015-10-09   27  
23e7b2ab9 Xinliang Liu  2015-10-09   28  #include "kirin_drm_drv.h"
23e7b2ab9 Xinliang Liu  2015-10-09   29  
23e7b2ab9 Xinliang Liu  2015-10-09   30  static struct kirin_dc_ops *dc_ops;
23e7b2ab9 Xinliang Liu  2015-10-09   31  
23e7b2ab9 Xinliang Liu  2015-10-09   32  static int 
kirin_drm_kms_cleanup(struct drm_device *dev)
23e7b2ab9 Xinliang Liu  2015-10-09   33  {
783ad972c Xinliang Liu  2015-10-10   34         struct kirin_drm_private *priv 
= dev->dev_private;
783ad972c Xinliang Liu  2015-10-10   35  
6b7a59654 Xinliang Liu  2015-10-10   36  #ifdef CONFIG_DRM_FBDEV_EMULATION
6b7a59654 Xinliang Liu  2015-10-10   37         if (priv->fbdev) {
6b7a59654 Xinliang Liu  2015-10-10   38                 
drm_fbdev_cma_fini(priv->fbdev);
6b7a59654 Xinliang Liu  2015-10-10   39                 priv->fbdev = NULL;
6b7a59654 Xinliang Liu  2015-10-10   40         }
6b7a59654 Xinliang Liu  2015-10-10   41  #endif
6b7a59654 Xinliang Liu  2015-10-10   42         drm_kms_helper_poll_fini(dev);
bc4611e80 Xinliang Liu  2015-10-10   43         drm_vblank_cleanup(dev);
d25bcfb8c Daniel Vetter 2016-08-12   44         
dc_ops->cleanup(to_platform_device(dev->dev));
23e7b2ab9 Xinliang Liu  2015-10-09   45         drm_mode_config_cleanup(dev);
783ad972c Xinliang Liu  2015-10-10   46         devm_kfree(dev->dev, priv);
783ad972c Xinliang Liu  2015-10-10   47         dev->dev_private = NULL;
23e7b2ab9 Xinliang Liu  2015-10-09   48  
23e7b2ab9 Xinliang Liu  2015-10-09   49         return 0;
23e7b2ab9 Xinliang Liu  2015-10-09   50  }
23e7b2ab9 Xinliang Liu  2015-10-09   51  
6b7a59654 Xinliang Liu  2015-10-10   52  #ifdef CONFIG_DRM_FBDEV_EMULATION
6b7a59654 Xinliang Liu  2015-10-10   53  static void 
kirin_fbdev_output_poll_changed(struct drm_device *dev)
6b7a59654 Xinliang Liu  2015-10-10   54  {
6b7a59654 Xinliang Liu  2015-10-10   55         struct kirin_drm_private *priv 
= dev->dev_private;
6b7a59654 Xinliang Liu  2015-10-10   56  
6b7a59654 Xinliang Liu  2015-10-10   57         if (priv->fbdev) {
6b7a59654 Xinliang Liu  2015-10-10   58                 
drm_fbdev_cma_hotplug_event(priv->fbdev);
6b7a59654 Xinliang Liu  2015-10-10   59         } else {
6b7a59654 Xinliang Liu  2015-10-10   60                 priv->fbdev = 
drm_fbdev_cma_init(dev, 32,
6b7a59654 Xinliang Liu  2015-10-10   61                                 
dev->mode_config.num_crtc,
6b7a59654 Xinliang Liu  2015-10-10   62                                 
dev->mode_config.num_connector);
6b7a59654 Xinliang Liu  2015-10-10   63                 if (IS_ERR(priv->fbdev))
6b7a59654 Xinliang Liu  2015-10-10   64                         priv->fbdev = 
NULL;
6b7a59654 Xinliang Liu  2015-10-10   65         }
6b7a59654 Xinliang Liu  2015-10-10   66  }
6b7a59654 Xinliang Liu  2015-10-10   67  #endif
6b7a59654 Xinliang Liu  2015-10-10   68  
23e7b2ab9 Xinliang Liu  2015-10-09   69  static const struct 
drm_mode_config_funcs kirin_drm_mode_config_funcs = {
23e7b2ab9 Xinliang Liu  2015-10-09   70         .fb_create = drm_fb_cma_create,
6b7a59654 Xinliang Liu  2015-10-10   71  #ifdef CONFIG_DRM_FBDEV_EMULATION
6b7a59654 Xinliang Liu  2015-10-10   72         .output_poll_changed = 
kirin_fbdev_output_poll_changed,
6b7a59654 Xinliang Liu  2015-10-10   73  #endif
23e7b2ab9 Xinliang Liu  2015-10-09   74         .atomic_check = 
drm_atomic_helper_check,
23e7b2ab9 Xinliang Liu  2015-10-09   75         .atomic_commit = 
drm_atomic_helper_commit,
23e7b2ab9 Xinliang Liu  2015-10-09   76  };
23e7b2ab9 Xinliang Liu  2015-10-09   77  
23e7b2ab9 Xinliang Liu  2015-10-09   78  static void 
kirin_drm_mode_config_init(struct drm_device *dev)
23e7b2ab9 Xinliang Liu  2015-10-09   79  {
23e7b2ab9 Xinliang Liu  2015-10-09   80         dev->mode_config.min_width = 0;
23e7b2ab9 Xinliang Liu  2015-10-09   81         dev->mode_config.min_height = 0;
23e7b2ab9 Xinliang Liu  2015-10-09   82  
23e7b2ab9 Xinliang Liu  2015-10-09   83         dev->mode_config.max_width = 
2048;
23e7b2ab9 Xinliang Liu  2015-10-09   84         dev->mode_config.max_height = 
2048;
23e7b2ab9 Xinliang Liu  2015-10-09   85  
23e7b2ab9 Xinliang Liu  2015-10-09   86         dev->mode_config.funcs = 
&kirin_drm_mode_config_funcs;
23e7b2ab9 Xinliang Liu  2015-10-09   87  }
23e7b2ab9 Xinliang Liu  2015-10-09   88  
23e7b2ab9 Xinliang Liu  2015-10-09   89  static int kirin_drm_kms_init(struct 
drm_device *dev)
23e7b2ab9 Xinliang Liu  2015-10-09   90  {
783ad972c Xinliang Liu  2015-10-10   91         struct kirin_drm_private *priv;
23e7b2ab9 Xinliang Liu  2015-10-09   92         int ret;
23e7b2ab9 Xinliang Liu  2015-10-09   93  
783ad972c Xinliang Liu  2015-10-10   94         priv = devm_kzalloc(dev->dev, 
sizeof(*priv), GFP_KERNEL);
783ad972c Xinliang Liu  2015-10-10   95         if (!priv)
783ad972c Xinliang Liu  2015-10-10   96                 return -ENOMEM;
783ad972c Xinliang Liu  2015-10-10   97  
783ad972c Xinliang Liu  2015-10-10   98         dev->dev_private = priv;
23e7b2ab9 Xinliang Liu  2015-10-09   99         dev_set_drvdata(dev->dev, dev);
23e7b2ab9 Xinliang Liu  2015-10-09  100  
23e7b2ab9 Xinliang Liu  2015-10-09  101         /* dev->mode_config 
initialization */
23e7b2ab9 Xinliang Liu  2015-10-09  102         drm_mode_config_init(dev);
23e7b2ab9 Xinliang Liu  2015-10-09  103         kirin_drm_mode_config_init(dev);
23e7b2ab9 Xinliang Liu  2015-10-09  104  
23e7b2ab9 Xinliang Liu  2015-10-09  105         /* display controller init */
d25bcfb8c Daniel Vetter 2016-08-12 @106         ret = 
dc_ops->init(to_platform_device(dev));
23e7b2ab9 Xinliang Liu  2015-10-09  107         if (ret)
23e7b2ab9 Xinliang Liu  2015-10-09  108                 goto 
err_mode_config_cleanup;
23e7b2ab9 Xinliang Liu  2015-10-09  109  
23e7b2ab9 Xinliang Liu  2015-10-09  110         /* bind and init sub drivers */
23e7b2ab9 Xinliang Liu  2015-10-09  111         ret = 
component_bind_all(dev->dev, dev);
23e7b2ab9 Xinliang Liu  2015-10-09  112         if (ret) {
23e7b2ab9 Xinliang Liu  2015-10-09  113                 DRM_ERROR("failed to 
bind all component.\n");
23e7b2ab9 Xinliang Liu  2015-10-09  114                 goto err_dc_cleanup;
23e7b2ab9 Xinliang Liu  2015-10-09  115         }
23e7b2ab9 Xinliang Liu  2015-10-09  116  
bc4611e80 Xinliang Liu  2015-10-10  117         /* vblank init */
bc4611e80 Xinliang Liu  2015-10-10  118         ret = drm_vblank_init(dev, 
dev->mode_config.num_crtc);
bc4611e80 Xinliang Liu  2015-10-10  119         if (ret) {
bc4611e80 Xinliang Liu  2015-10-10  120                 DRM_ERROR("failed to 
initialize vblank.\n");
bc4611e80 Xinliang Liu  2015-10-10  121                 goto err_unbind_all;
bc4611e80 Xinliang Liu  2015-10-10  122         }
bc4611e80 Xinliang Liu  2015-10-10  123         /* with irq_enabled = true, we 
can use the vblank feature. */
bc4611e80 Xinliang Liu  2015-10-10  124         dev->irq_enabled = true;
bc4611e80 Xinliang Liu  2015-10-10  125  
23e7b2ab9 Xinliang Liu  2015-10-09  126         /* reset all the states of 
crtc/plane/encoder/connector */
23e7b2ab9 Xinliang Liu  2015-10-09  127         drm_mode_config_reset(dev);
23e7b2ab9 Xinliang Liu  2015-10-09  128  
6b7a59654 Xinliang Liu  2015-10-10  129         /* init kms poll for handling 
hpd */
6b7a59654 Xinliang Liu  2015-10-10  130         drm_kms_helper_poll_init(dev);
6b7a59654 Xinliang Liu  2015-10-10  131  
6b7a59654 Xinliang Liu  2015-10-10  132         /* force detection after 
connectors init */
6b7a59654 Xinliang Liu  2015-10-10  133         
(void)drm_helper_hpd_irq_event(dev);
6b7a59654 Xinliang Liu  2015-10-10  134  
23e7b2ab9 Xinliang Liu  2015-10-09  135         return 0;
23e7b2ab9 Xinliang Liu  2015-10-09  136  
bc4611e80 Xinliang Liu  2015-10-10  137  err_unbind_all:
bc4611e80 Xinliang Liu  2015-10-10  138         component_unbind_all(dev->dev, 
dev);
23e7b2ab9 Xinliang Liu  2015-10-09  139  err_dc_cleanup:
23e7b2ab9 Xinliang Liu  2015-10-09 @140         dc_ops->cleanup(dev);
23e7b2ab9 Xinliang Liu  2015-10-09  141  err_mode_config_cleanup:
23e7b2ab9 Xinliang Liu  2015-10-09  142         drm_mode_config_cleanup(dev);
783ad972c Xinliang Liu  2015-10-10  143         devm_kfree(dev->dev, priv);

:::::: The code at line 140 was first introduced by commit
:::::: 23e7b2ab9a8ff5653e8140248a494c3f3171dce3 drm/hisilicon: Add hisilicon 
kirin drm master driver

:::::: TO: Xinliang Liu <xinliang.liu at linaro.org>
:::::: CC: Xinliang Liu <xinliang.liu at linaro.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/octet-stream
Size: 51365 bytes
Desc: not available
URL: 
<https://lists.freedesktop.org/archives/dri-devel/attachments/20160817/01faa652/attachment-0001.obj>

Reply via email to