[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
kbuild test robot
lkp at intel.com
Sat Feb 9 01:11:07 UTC 2019
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 at arm.com>
:::::: CC: Liviu Dudau <Liviu.Dudau at arm.com>
---
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/gzip
Size: 30903 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190209/68f8ae7f/attachment-0001.gz>
More information about the dri-devel
mailing list