[drm-tip:drm-tip 2/8] drivers/gpu/drm//arm/display/komeda/komeda_kms.c:33:2: error: unknown field 'driver_features' specified in initializer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
head:   d4794b009ccd1ef8816e15c833f07ab696911a8d
commit: bd6ee5d2d2032416ba36ec6c24bf513f4ff0d338 [2/8] Merge remote-tracking branch 'drm-misc/drm-misc-next' into drm-tip
config: i386-randconfig-h0-02082357 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        git checkout bd6ee5d2d2032416ba36ec6c24bf513f4ff0d338
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/gpu/drm//arm/display/komeda/komeda_dev.c: In function 'komeda_parse_pipe_dt':
   drivers/gpu/drm//arm/display/komeda/komeda_dev.c:27:3: error: implicit declaration of function 'DRM_ERROR' [-Werror=implicit-function-declaration]
      DRM_ERROR("get aclk for pipeline %d failed!\n", pipe_id);
      ^
   drivers/gpu/drm//arm/display/komeda/komeda_dev.c: In function 'komeda_dev_create':
   drivers/gpu/drm//arm/display/komeda/komeda_dev.c:127:2: error: implicit declaration of function 'DRM_INFO' [-Werror=implicit-function-declaration]
     DRM_INFO("Found ARM Mali-D%x version r%dp%d\n",
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_dev.c: In function 'komeda_dev_destroy':
>> drivers/gpu/drm//arm/display/komeda/komeda_dev.c:170:3: error: implicit declaration of function 'devm_iounmap' [-Werror=implicit-function-declaration]
      devm_iounmap(dev, mdev->reg_base);
      ^
   cc1: some warnings being treated as errors
--
   drivers/gpu/drm//arm/display/komeda/komeda_framebuffer.c: In function 'komeda_fb_create':
>> drivers/gpu/drm//arm/display/komeda/komeda_framebuffer.c:99:31: error: dereferencing pointer to incomplete type
     struct komeda_dev *mdev = dev->dev_private;
                                  ^
--
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:32:15: error: variable 'komeda_kms_driver' has initializer but incomplete type
    static struct drm_driver komeda_kms_driver = {
                  ^
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:33:2: error: unknown field 'driver_features' specified in initializer
     .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:33:21: error: 'DRIVER_GEM' undeclared here (not in a function)
     .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
                        ^
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:33:34: error: 'DRIVER_MODESET' undeclared here (not in a function)
     .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
                                     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:33:51: error: 'DRIVER_ATOMIC' undeclared here (not in a function)
     .driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
                                                      ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:34:7: error: 'DRIVER_PRIME' undeclared here (not in a function)
          DRIVER_PRIME,
          ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:34:7: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:34:7: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:35:2: error: unknown field 'lastclose' specified in initializer
     .lastclose   = drm_fb_helper_lastclose,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:35:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:35:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:36:2: error: unknown field 'gem_free_object_unlocked' specified in initializer
     .gem_free_object_unlocked = drm_gem_cma_free_object,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:36:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:36:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:37:2: error: unknown field 'gem_vm_ops' specified in initializer
     .gem_vm_ops   = &drm_gem_cma_vm_ops,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:37:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:37:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:38:2: error: unknown field 'dumb_create' specified in initializer
     .dumb_create   = komeda_gem_cma_dumb_create,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:38:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:38:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:39:2: error: unknown field 'prime_handle_to_fd' specified in initializer
     .prime_handle_to_fd  = drm_gem_prime_handle_to_fd,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:39:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:39:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:40:2: error: unknown field 'prime_fd_to_handle' specified in initializer
     .prime_fd_to_handle  = drm_gem_prime_fd_to_handle,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:40:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:40:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:41:2: error: unknown field 'gem_prime_export' specified in initializer
     .gem_prime_export  = drm_gem_prime_export,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:41:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:41:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:42:2: error: unknown field 'gem_prime_import' specified in initializer
     .gem_prime_import  = drm_gem_prime_import,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:42:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:42:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:43:2: error: unknown field 'gem_prime_get_sg_table' specified in initializer
     .gem_prime_get_sg_table  = drm_gem_cma_prime_get_sg_table,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:43:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:43:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:44:2: error: unknown field 'gem_prime_import_sg_table' specified in initializer
     .gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:44:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:44:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:45:2: error: unknown field 'gem_prime_vmap' specified in initializer
     .gem_prime_vmap   = drm_gem_cma_prime_vmap,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:45:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:45:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:46:2: error: unknown field 'gem_prime_vunmap' specified in initializer
     .gem_prime_vunmap  = drm_gem_cma_prime_vunmap,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:46:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:46:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:47:2: error: unknown field 'gem_prime_mmap' specified in initializer
     .gem_prime_mmap   = drm_gem_cma_prime_mmap,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:47:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:47:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:48:2: error: unknown field 'fops' specified in initializer
     .fops = &komeda_cma_fops,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:48:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:48:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:49:2: error: unknown field 'name' specified in initializer
     .name = "komeda",
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:49:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:49:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:50:2: error: unknown field 'desc' specified in initializer
     .desc = "Arm Komeda Display Processor driver",
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:50:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:50:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:51:2: error: unknown field 'date' specified in initializer
     .date = "20181101",
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:51:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:51:2: warning: (near initialization for 'komeda_kms_driver')
>> drivers/gpu/drm//arm/display/komeda/komeda_kms.c:52:2: error: unknown field 'major' specified in initializer
     .major = 0,
     ^
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:52:2: warning: excess elements in struct initializer
   drivers/gpu/drm//arm/display/komeda/komeda_kms.c:52:2: warning: (near initialization for 'komeda_kms_driver')
--
   In file included from drivers/gpu/drm//arm/display/komeda/komeda_crtc.c:15:0:
   drivers/gpu/drm//arm/display/komeda/komeda_kms.h:87:20: error: field 'base' has incomplete type
     struct drm_device base;
                       ^
   drivers/gpu/drm//arm/display/komeda/komeda_crtc.c: In function 'komeda_kms_setup_crtcs':
   drivers/gpu/drm//arm/display/komeda/komeda_crtc.c:45:3: error: implicit declaration of function 'DRM_INFO' [-Werror=implicit-function-declaration]
      DRM_INFO("crtc%d: master(pipe-%d) slave(%s) output: %s.\n",
      ^
   drivers/gpu/drm//arm/display/komeda/komeda_crtc.c: In function 'komeda_crtc_add':
>> drivers/gpu/drm//arm/display/komeda/komeda_crtc.c:88:2: error: implicit declaration of function 'drm_crtc_vblank_reset' [-Werror=implicit-function-declaration]
     drm_crtc_vblank_reset(crtc);
     ^
   cc1: some warnings being treated as errors

vim +/driver_features +33 drivers/gpu/drm//arm/display/komeda/komeda_kms.c

61f1c4a8 james qian wang (Arm Technology China  2019-01-03   31) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @32) static struct drm_driver komeda_kms_driver = {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @33) 	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @34) 			   DRIVER_PRIME,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @35) 	.lastclose			= drm_fb_helper_lastclose,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @36) 	.gem_free_object_unlocked	= drm_gem_cma_free_object,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @37) 	.gem_vm_ops			= &drm_gem_cma_vm_ops,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @38) 	.dumb_create			= komeda_gem_cma_dumb_create,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @39) 	.prime_handle_to_fd		= drm_gem_prime_handle_to_fd,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @40) 	.prime_fd_to_handle		= drm_gem_prime_fd_to_handle,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @41) 	.gem_prime_export		= drm_gem_prime_export,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @42) 	.gem_prime_import		= drm_gem_prime_import,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @43) 	.gem_prime_get_sg_table		= drm_gem_cma_prime_get_sg_table,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @44) 	.gem_prime_import_sg_table	= drm_gem_cma_prime_import_sg_table,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @45) 	.gem_prime_vmap			= drm_gem_cma_prime_vmap,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @46) 	.gem_prime_vunmap		= drm_gem_cma_prime_vunmap,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @47) 	.gem_prime_mmap			= drm_gem_cma_prime_mmap,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @48) 	.fops = &komeda_cma_fops,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @49) 	.name = "komeda",
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @50) 	.desc = "Arm Komeda Display Processor driver",
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @51) 	.date = "20181101",
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @52) 	.major = 0,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  @53) 	.minor = 1,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   54) };
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   55) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   56) static void komeda_kms_commit_tail(struct drm_atomic_state *old_state)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   57) {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   58) 	struct drm_device *dev = old_state->dev;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   59) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   60) 	drm_atomic_helper_commit_modeset_disables(dev, old_state);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   61) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   62) 	drm_atomic_helper_commit_planes(dev, old_state, 0);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   63) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   64) 	drm_atomic_helper_commit_modeset_enables(dev, old_state);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   65) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   66) 	drm_atomic_helper_wait_for_flip_done(dev, old_state);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   67) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   68) 	drm_atomic_helper_commit_hw_done(old_state);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   69) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   70) 	drm_atomic_helper_cleanup_planes(dev, old_state);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   71) }
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   72) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   73) static const struct drm_mode_config_helper_funcs komeda_mode_config_helpers = {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   74) 	.atomic_commit_tail = komeda_kms_commit_tail,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   75) };
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   76) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   77) static const struct drm_mode_config_funcs komeda_mode_config_funcs = {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   78) 	.fb_create		= komeda_fb_create,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   79) 	.atomic_check		= drm_atomic_helper_check,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   80) 	.atomic_commit		= drm_atomic_helper_commit,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   81) };
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   82) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   83) static void komeda_kms_mode_config_init(struct komeda_kms_dev *kms,
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   84) 					struct komeda_dev *mdev)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   85) {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   86) 	struct drm_mode_config *config = &kms->base.mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   87) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   88) 	drm_mode_config_init(&kms->base);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   89) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   90) 	komeda_kms_setup_crtcs(kms, mdev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   91) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   92) 	/* Get value from dev */
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   93) 	config->min_width	= 0;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   94) 	config->min_height	= 0;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   95) 	config->max_width	= 4096;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   96) 	config->max_height	= 4096;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   97) 	config->allow_fb_modifiers = false;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   98) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03   99) 	config->funcs = &komeda_mode_config_funcs;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  100) 	config->helper_private = &komeda_mode_config_helpers;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  101) }
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  102) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  103) struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  104) {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  105) 	struct komeda_kms_dev *kms = kzalloc(sizeof(*kms), GFP_KERNEL);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  106) 	struct drm_device *drm;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  107) 	int err;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  108) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  109) 	if (!kms)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  110) 		return ERR_PTR(-ENOMEM);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  111) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  112) 	drm = &kms->base;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03 @113) 	err = drm_dev_init(drm, &komeda_kms_driver, mdev->dev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  114) 	if (err)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  115) 		goto free_kms;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  116) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  117) 	drm->dev_private = mdev;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  118) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  119) 	komeda_kms_mode_config_init(kms, mdev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  120) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  121) 	err = komeda_kms_add_private_objs(kms, mdev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  122) 	if (err)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  123) 		goto cleanup_mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  124) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  125) 	err = komeda_kms_add_planes(kms, mdev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  126) 	if (err)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  127) 		goto cleanup_mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  128) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03 @129) 	err = drm_vblank_init(drm, kms->n_crtcs);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  130) 	if (err)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  131) 		goto cleanup_mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  132) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  133) 	err = komeda_kms_add_crtcs(kms, mdev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  134) 	if (err)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  135) 		goto cleanup_mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  136) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  137) 	err = component_bind_all(mdev->dev, kms);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  138) 	if (err)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  139) 		goto cleanup_mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  140) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  141) 	drm_mode_config_reset(drm);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  142) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03 @143) 	err = drm_dev_register(drm, 0);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  144) 	if (err)
874cf192 Liviu Dudau                            2019-01-15  145  		goto cleanup_mode_config;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  146) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  147) 	return kms;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  148) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  149) cleanup_mode_config:
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  150) 	drm_mode_config_cleanup(drm);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  151) free_kms:
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  152) 	kfree(kms);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  153) 	return ERR_PTR(err);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  154) }
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  155) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  156) void komeda_kms_detach(struct komeda_kms_dev *kms)
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  157) {
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  158) 	struct drm_device *drm = &kms->base;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  159) 	struct komeda_dev *mdev = drm->dev_private;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  160) 
61f1c4a8 james qian wang (Arm Technology China  2019-01-03 @161) 	drm_dev_unregister(drm);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  162) 	component_unbind_all(mdev->dev, drm);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  163) 	komeda_kms_cleanup_private_objs(mdev);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  164) 	drm_mode_config_cleanup(drm);
61f1c4a8 james qian wang (Arm Technology China  2019-01-03  165) 	drm->dev_private = NULL;
61f1c4a8 james qian wang (Arm Technology China  2019-01-03 @166) 	drm_dev_put(drm);

:::::: The code at line 33 was first introduced by commit
:::::: 61f1c4a8ab7575c0147ae6c0d220f9719fdc741e drm/komeda: Attach komeda_dev to DRM-KMS

:::::: TO: james qian wang (Arm Technology China) <james.qian.wang@xxxxxxx>
:::::: CC: Liviu Dudau <Liviu.Dudau@xxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

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

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux