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) <[email protected]>
:::::: CC: Liviu Dudau <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip
_______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
