[pm:bleeding-edge 62/70] drivers/acpi/acpica/dbnames.c:576 acpi_db_walk_for_fields() error: double free of 'buffer.pointer'
by Dan Carpenter
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge
head: aaa43552df9b1f8c788d18df5f5989f8a13433f5
commit: 5fd033288a86676045d9e16243dfc5f988013371 [62/70] ACPICA: debugger: add command to dump all fields of particular subtype
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
smatch warnings:
drivers/acpi/acpica/dbnames.c:576 acpi_db_walk_for_fields() error: double free of 'buffer.pointer'
# https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commi...
git remote add pm https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
git remote update pm
git checkout 5fd033288a86676045d9e16243dfc5f988013371
vim +576 drivers/acpi/acpica/dbnames.c
5fd033288a8667 Erik Schmauss 2019-10-25 518 static acpi_status
5fd033288a8667 Erik Schmauss 2019-10-25 519 acpi_db_walk_for_fields(acpi_handle obj_handle,
5fd033288a8667 Erik Schmauss 2019-10-25 520 u32 nesting_level, void *context, void **return_value)
5fd033288a8667 Erik Schmauss 2019-10-25 521 {
5fd033288a8667 Erik Schmauss 2019-10-25 522 union acpi_object *ret_value;
5fd033288a8667 Erik Schmauss 2019-10-25 523 struct acpi_region_walk_info *info =
5fd033288a8667 Erik Schmauss 2019-10-25 524 (struct acpi_region_walk_info *)context;
5fd033288a8667 Erik Schmauss 2019-10-25 525 struct acpi_buffer buffer;
5fd033288a8667 Erik Schmauss 2019-10-25 526 acpi_status status;
5fd033288a8667 Erik Schmauss 2019-10-25 527 struct acpi_namespace_node *node = acpi_ns_validate_handle(obj_handle);
5fd033288a8667 Erik Schmauss 2019-10-25 528
5fd033288a8667 Erik Schmauss 2019-10-25 529 if (!node) {
5fd033288a8667 Erik Schmauss 2019-10-25 530 return (AE_OK);
5fd033288a8667 Erik Schmauss 2019-10-25 531 }
5fd033288a8667 Erik Schmauss 2019-10-25 532 if (node->object->field.region_obj->region.space_id !=
5fd033288a8667 Erik Schmauss 2019-10-25 533 info->address_space_id) {
5fd033288a8667 Erik Schmauss 2019-10-25 534 return (AE_OK);
5fd033288a8667 Erik Schmauss 2019-10-25 535 }
5fd033288a8667 Erik Schmauss 2019-10-25 536
5fd033288a8667 Erik Schmauss 2019-10-25 537 info->count++;
5fd033288a8667 Erik Schmauss 2019-10-25 538
5fd033288a8667 Erik Schmauss 2019-10-25 539 /* Get and display the full pathname to this object */
5fd033288a8667 Erik Schmauss 2019-10-25 540
5fd033288a8667 Erik Schmauss 2019-10-25 541 buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER;
5fd033288a8667 Erik Schmauss 2019-10-25 542 status = acpi_ns_handle_to_pathname(obj_handle, &buffer, TRUE);
5fd033288a8667 Erik Schmauss 2019-10-25 543 if (ACPI_FAILURE(status)) {
5fd033288a8667 Erik Schmauss 2019-10-25 544 acpi_os_printf("Could Not get pathname for object %p\n",
5fd033288a8667 Erik Schmauss 2019-10-25 545 obj_handle);
5fd033288a8667 Erik Schmauss 2019-10-25 546 return (AE_OK);
5fd033288a8667 Erik Schmauss 2019-10-25 547 }
5fd033288a8667 Erik Schmauss 2019-10-25 548
5fd033288a8667 Erik Schmauss 2019-10-25 549 acpi_os_printf("%s ", (char *)buffer.pointer);
5fd033288a8667 Erik Schmauss 2019-10-25 550 ACPI_FREE(buffer.pointer);
Freed here.
5fd033288a8667 Erik Schmauss 2019-10-25 551
5fd033288a8667 Erik Schmauss 2019-10-25 552 buffer.length = ACPI_ALLOCATE_LOCAL_BUFFER;
5fd033288a8667 Erik Schmauss 2019-10-25 553 acpi_evaluate_object(obj_handle, NULL, NULL, &buffer);
No error handling here so "buffer.pointer" isn't necessarily modified.
5fd033288a8667 Erik Schmauss 2019-10-25 554
5fd033288a8667 Erik Schmauss 2019-10-25 555 ret_value = (union acpi_object *)buffer.pointer;
5fd033288a8667 Erik Schmauss 2019-10-25 556 switch (ret_value->type) {
5fd033288a8667 Erik Schmauss 2019-10-25 557 case ACPI_TYPE_INTEGER:
5fd033288a8667 Erik Schmauss 2019-10-25 558
5fd033288a8667 Erik Schmauss 2019-10-25 559 acpi_os_printf("%8.8X%8.8X",
5fd033288a8667 Erik Schmauss 2019-10-25 560 ACPI_FORMAT_UINT64(ret_value->integer.value));
5fd033288a8667 Erik Schmauss 2019-10-25 561 break;
5fd033288a8667 Erik Schmauss 2019-10-25 562
5fd033288a8667 Erik Schmauss 2019-10-25 563 case ACPI_TYPE_BUFFER:
5fd033288a8667 Erik Schmauss 2019-10-25 564
5fd033288a8667 Erik Schmauss 2019-10-25 565 acpi_ut_dump_buffer(ret_value->buffer.pointer,
5fd033288a8667 Erik Schmauss 2019-10-25 566 ret_value->buffer.length,
5fd033288a8667 Erik Schmauss 2019-10-25 567 DB_DISPLAY_DATA_ONLY | DB_BYTE_DISPLAY, 0);
5fd033288a8667 Erik Schmauss 2019-10-25 568 break;
5fd033288a8667 Erik Schmauss 2019-10-25 569
5fd033288a8667 Erik Schmauss 2019-10-25 570 default:
5fd033288a8667 Erik Schmauss 2019-10-25 571
5fd033288a8667 Erik Schmauss 2019-10-25 572 break;
5fd033288a8667 Erik Schmauss 2019-10-25 573 }
5fd033288a8667 Erik Schmauss 2019-10-25 574 acpi_os_printf("\n");
5fd033288a8667 Erik Schmauss 2019-10-25 575
5fd033288a8667 Erik Schmauss 2019-10-25 @576 ACPI_FREE(buffer.pointer);
Double free.
5fd033288a8667 Erik Schmauss 2019-10-25 577
5fd033288a8667 Erik Schmauss 2019-10-25 578 return (AE_OK);
5fd033288a8667 Erik Schmauss 2019-10-25 579 }
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 2027/2647] include/kcl/kcl_fence.h:129:20: error: redefinition of 'dma_fence_set_error'
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: c53ae0e01db63d1b142681add947781668e3319c [2027/2647] drm/amdkcl: drop kcl_dma_fence_set_error
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout c53ae0e01db63d1b142681add947781668e3319c
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/scheduler/backport/backport.h:5:0,
from <command-line>:0:
include/kcl/kcl_fence.h: In function 'kcl_fence_get_rcu_safe':
include/kcl/kcl_fence.h:124:32: error: passing argument 1 of 'dma_fence_get_rcu_safe' from incompatible pointer type [-Werror=incompatible-pointer-types]
return dma_fence_get_rcu_safe(fencep);
^~~~~~
In file included from include/kcl/kcl_fence.h:9:0,
from drivers/gpu/drm/scheduler/backport/backport.h:5,
from <command-line>:0:
include/linux/dma-fence.h:315:1: note: expected 'struct dma_fence **' but argument is of type 'struct fence **'
dma_fence_get_rcu_safe(struct dma_fence __rcu **fencep)
^~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/scheduler/backport/backport.h:5:0,
from <command-line>:0:
include/kcl/kcl_fence.h:124:9: error: return from incompatible pointer type [-Werror=incompatible-pointer-types]
return dma_fence_get_rcu_safe(fencep);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kcl/kcl_fence.h: At top level:
>> include/kcl/kcl_fence.h:129:20: error: redefinition of 'dma_fence_set_error'
static inline void dma_fence_set_error(struct dma_fence *fence,
^~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_fence.h:9:0,
from drivers/gpu/drm/scheduler/backport/backport.h:5,
from <command-line>:0:
include/linux/dma-fence.h:517:20: note: previous definition of 'dma_fence_set_error' was here
static inline void dma_fence_set_error(struct dma_fence *fence,
^~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/scheduler/backport/backport.h:5:0,
from <command-line>:0:
include/kcl/kcl_fence.h: In function 'dma_fence_set_error':
>> include/kcl/kcl_fence.h:135:7: error: 'struct dma_fence' has no member named 'status'
fence->status = error;
^~
cc1: some warnings being treated as errors
vim +/dma_fence_set_error +129 include/kcl/kcl_fence.h
3
4 #include <linux/version.h>
5 #if !defined(HAVE_DMA_FENCE_DEFINED)
6 #include <linux/fence.h>
7 #include <kcl/kcl_fence_array.h>
8 #else
> 9 #include <linux/dma-fence.h>
10 #include <linux/dma-fence-array.h>
11 #endif
12
13 #if !defined(HAVE_DMA_FENCE_DEFINED)
14 #define dma_fence_cb fence_cb
15 #define dma_fence_ops fence_ops
16 #define dma_fence_array fence_array
17 #define dma_fence fence
18 #define DMA_FENCE_TRACE FENCE_TRACE
19 #define DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT FENCE_FLAG_ENABLE_SIGNAL_BIT
20 #define DMA_FENCE_FLAG_SIGNALED_BIT FENCE_FLAG_SIGNALED_BIT
21 #define dma_fence_wait fence_wait
22 #define dma_fence_get fence_get
23 #define dma_fence_put fence_put
24 #define dma_fence_is_signaled fence_is_signaled
25 #define dma_fence_signal fence_signal
26 #define dma_fence_signal_locked fence_signal_locked
27 #define dma_fence_get_rcu fence_get_rcu
28 #define dma_fence_array_create fence_array_create
29 #define dma_fence_add_callback fence_add_callback
30 #define dma_fence_remove_callback fence_remove_callback
31 #define dma_fence_default_wait fence_default_wait
32 #define dma_fence_enable_sw_signaling fence_enable_sw_signaling
33 typedef struct fence kcl_fence_t;
34 typedef struct fence_ops kcl_fence_ops_t;
35 #endif
36
37 #if !defined(HAVE_DMA_FENCE_DEFINED)
38 extern struct fence * _kcl_fence_get_rcu_safe(struct fence * __rcu *fencep);
39 extern u64 _kcl_fence_context_alloc(unsigned num);
40 extern void _kcl_fence_init(struct fence *fence, const struct fence_ops *ops,
41 spinlock_t *lock, u64 context, unsigned seqno);
42 extern signed long _kcl_fence_wait_timeout(struct fence *fence, bool intr,
43 signed long timeout);
44 #endif
45
46 /* commit v4.5-rc3-715-gb47bcb93bbf2
47 * fall back to HAVE_DMA_FENCE_DEFINED check directly
48 * as it's hard to detect the implementation in kernel
49 */
50 #if !defined(HAVE_DMA_FENCE_DEFINED)
51 static inline bool dma_fence_is_later(struct dma_fence *f1, struct dma_fence *f2)
52 {
53 if (WARN_ON(f1->context != f2->context))
54 return false;
55
56 return (int)(f1->seqno - f2->seqno) > 0;
57 }
58 #endif
59
60 #if !defined(HAVE_DMA_FENCE_DEFINED)
61 static inline u64 dma_fence_context_alloc(unsigned num)
62 {
63 return _kcl_fence_context_alloc(num);
64 }
65
66 static inline void
67 dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops,
68 spinlock_t *lock, u64 context, unsigned seqno)
69 {
70 return _kcl_fence_init(fence, ops, lock, context, seqno);
71 }
72 #endif
73
74 /* commit 796422f227ee(dma-fence: Allow wait_any_timeout for all fences) */
75 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
76 signed long
77 _kcl_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count,
78 bool intr, signed long timeout, uint32_t *idx);
79 #endif
80
81 static inline signed long
82 kcl_fence_wait_any_timeout(struct dma_fence **fences, uint32_t count,
83 bool intr, signed long timeout, uint32_t *idx)
84 {
85 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
86 return _kcl_fence_wait_any_timeout(fences, count, intr, timeout, idx);
87 #else
88 return dma_fence_wait_any_timeout(fences, count, intr, timeout, idx);
89 #endif
90 }
91
92 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
93 signed long
94 _kcl_fence_default_wait(struct dma_fence *fence, bool intr, signed long timeout);
95 #endif
96 static inline signed long
97 kcl_fence_default_wait(struct dma_fence *fence, bool intr, signed long timeout)
98 {
99 #if DRM_VERSION_CODE < DRM_VERSION(4, 19, 0)
100 return _kcl_fence_default_wait(fence, intr, timeout);
101 #else
102 return dma_fence_default_wait(fence, intr, timeout);
103 #endif
104 }
105
106 #if !defined(HAVE_DMA_FENCE_DEFINED)
107 static inline signed long
108 dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout)
109 {
110 return _kcl_fence_wait_timeout(fence, intr, timeout);
111 }
112 #endif
113
114 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
115 extern struct fence * _kcl_fence_get_rcu_safe(struct fence * __rcu *fencep);
116 #endif
117
118 static inline struct fence *
119 kcl_fence_get_rcu_safe(struct fence * __rcu *fencep)
120 {
121 #if !defined(HAVE_DMA_FENCE_DEFINED)
122 return _kcl_fence_get_rcu_safe(fencep);
123 #else
> 124 return dma_fence_get_rcu_safe(fencep);
125 #endif
126 }
127
128 #if !defined(HAVE_DMA_FENCE_SET_ERROR)
> 129 static inline void dma_fence_set_error(struct dma_fence *fence,
130 int error)
131 {
132 BUG_ON(test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags));
133 BUG_ON(error >= 0 || error < -MAX_ERRNO);
134
> 135 fence->status = error;
136 }
137 #endif
138
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 1967/2647] include/kcl/kcl_drm.h:313:9: error: implicit declaration of function 'drm_gem_object_unreference_unlocked'; did you mean 'drm_gem_object_put_unlocked'?
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: c3612b68d1358e8325c377ba5e1f690b39a6cea8 [1967/2647] drm/amdkcl: Test whether drm_gem_object_put_unlocked() is available
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout c3612b68d1358e8325c377ba5e1f690b39a6cea8
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
return drm_encoder_init(dev, encoder, funcs,
^~~~~~~~~~~~~~~~
In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
from include/drm/drm_atomic_helper.h:32,
from include/kcl/kcl_drm.h:10,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_encoder.h:183:5: note: declared here
int drm_encoder_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_crtc_init_with_planes':
include/kcl/kcl_drm.h:206:10: error: too few arguments to function 'drm_crtc_init_with_planes'
return drm_crtc_init_with_planes(dev, crtc, primary,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:68:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_crtc.h:1120:5: note: declared here
int drm_crtc_init_with_planes(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_universal_plane_init':
include/kcl/kcl_drm.h:227:29: error: incompatible type for argument 7 of 'drm_universal_plane_init'
formats, format_count, type);
^~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: expected 'const uint64_t * {aka const long long unsigned int *}' but argument is of type 'enum drm_plane_type'
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:226:10: error: too few arguments to function 'drm_universal_plane_init'
return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: declared here
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_gem_object_lookup':
include/kcl/kcl_drm.h:238:32: error: passing argument 1 of 'drm_gem_object_lookup' from incompatible pointer type [-Werror=incompatible-pointer-types]
return drm_gem_object_lookup(dev, filp, handle);
^~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: expected 'struct drm_file *' but argument is of type 'struct drm_device *'
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:238:37: warning: passing argument 2 of 'drm_gem_object_lookup' makes integer from pointer without a cast [-Wint-conversion]
return drm_gem_object_lookup(dev, filp, handle);
^~~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: expected 'u32 {aka unsigned int}' but argument is of type 'struct drm_file *'
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:238:10: error: too many arguments to function 'drm_gem_object_lookup'
return drm_gem_object_lookup(dev, filp, handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: At top level:
include/kcl/kcl_drm.h:281:8: error: redefinition of 'struct drm_format_name_buf'
struct drm_format_name_buf {
^~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:69:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fourcc.h:142:8: note: originally defined here
struct drm_format_name_buf {
^~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_gem_object_put_unlocked':
>> include/kcl/kcl_drm.h:313:9: error: implicit declaration of function 'drm_gem_object_unreference_unlocked'; did you mean 'drm_gem_object_put_unlocked'? [-Werror=implicit-function-declaration]
return drm_gem_object_unreference_unlocked(obj);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drm_gem_object_put_unlocked
include/kcl/kcl_drm.h:313:9: warning: 'return' with a value, in function returning void
return drm_gem_object_unreference_unlocked(obj);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/kcl/kcl_drm.h:310:20: note: declared here
static inline void kcl_drm_gem_object_put_unlocked(struct drm_gem_object *obj)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +313 include/kcl/kcl_drm.h
cc3188c9ec1202 Evan Quan 2017-05-11 309
7e18f7a415538c Evan Quan 2019-02-18 310 static inline void kcl_drm_gem_object_put_unlocked(struct drm_gem_object *obj)
7e18f7a415538c Evan Quan 2019-02-18 311 {
c3612b68d1358e Anatoli Antonovitch 2018-09-24 312 #if !defined(HAVE_DRM_GEM_OBJECT_PUT_UNLOCKED)
7e18f7a415538c Evan Quan 2019-02-18 @313 return drm_gem_object_unreference_unlocked(obj);
7e18f7a415538c Evan Quan 2019-02-18 314 #else
7e18f7a415538c Evan Quan 2019-02-18 315 return drm_gem_object_put_unlocked(obj);
7e18f7a415538c Evan Quan 2019-02-18 316 #endif
7e18f7a415538c Evan Quan 2019-02-18 317 }
7e18f7a415538c Evan Quan 2019-02-18 318
:::::: The code at line 313 was first introduced by commit
:::::: 7e18f7a415538c1bc14c60d30f7be8e5e2a50e1a drm/amdkcl: [4.10] kcl update for kcl_drm files conflicts
:::::: TO: Evan Quan <evan.quan(a)amd.com>
:::::: CC: Chengming Gui <Jack.Gui(a)amd.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 1966/2647] include/kcl/kcl_drm.h:281:8: error: redefinition of 'struct drm_format_name_buf'
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: 757a363a37449c5b612b3c7c3f62be125b1282e3 [1966/2647] drm/amdkcl: Test whether drm_get_format_name() is available
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout 757a363a37449c5b612b3c7c3f62be125b1282e3
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
include/kcl/kcl_drm.h:98:1: error: conflicting types for 'drm_fb_helper_remove_conflicting_framebuffers'
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:7:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fb_helper.h:589:1: note: previous definition of 'drm_fb_helper_remove_conflicting_framebuffers' was here
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_encoder_init':
include/kcl/kcl_drm.h:191:9: error: too few arguments to function 'drm_encoder_init'
return drm_encoder_init(dev, encoder, funcs,
^~~~~~~~~~~~~~~~
In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
from include/drm/drm_atomic_helper.h:32,
from include/kcl/kcl_drm.h:10,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_encoder.h:183:5: note: declared here
int drm_encoder_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_crtc_init_with_planes':
include/kcl/kcl_drm.h:206:10: error: too few arguments to function 'drm_crtc_init_with_planes'
return drm_crtc_init_with_planes(dev, crtc, primary,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:68:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_crtc.h:1120:5: note: declared here
int drm_crtc_init_with_planes(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_universal_plane_init':
include/kcl/kcl_drm.h:227:29: error: incompatible type for argument 7 of 'drm_universal_plane_init'
formats, format_count, type);
^~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: expected 'const uint64_t * {aka const long long unsigned int *}' but argument is of type 'enum drm_plane_type'
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:226:10: error: too few arguments to function 'drm_universal_plane_init'
return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: declared here
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_gem_object_lookup':
include/kcl/kcl_drm.h:238:32: error: passing argument 1 of 'drm_gem_object_lookup' from incompatible pointer type [-Werror=incompatible-pointer-types]
return drm_gem_object_lookup(dev, filp, handle);
^~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: expected 'struct drm_file *' but argument is of type 'struct drm_device *'
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:238:37: warning: passing argument 2 of 'drm_gem_object_lookup' makes integer from pointer without a cast [-Wint-conversion]
return drm_gem_object_lookup(dev, filp, handle);
^~~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: expected 'u32 {aka unsigned int}' but argument is of type 'struct drm_file *'
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:238:10: error: too many arguments to function 'drm_gem_object_lookup'
return drm_gem_object_lookup(dev, filp, handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: At top level:
>> include/kcl/kcl_drm.h:281:8: error: redefinition of 'struct drm_format_name_buf'
struct drm_format_name_buf {
^~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:69:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fourcc.h:142:8: note: originally defined here
struct drm_format_name_buf {
^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +281 include/kcl/kcl_drm.h
950c9c93299ece Junwei Zhang 2016-12-23 275
757a363a37449c Yifan Zhang 2019-07-16 276 #if !defined(HAVE_DRM_GET_FORMAT_NAME)
cc3188c9ec1202 Evan Quan 2017-05-11 277 /**
cc3188c9ec1202 Evan Quan 2017-05-11 278 * struct drm_format_name_buf - name of a DRM format
cc3188c9ec1202 Evan Quan 2017-05-11 279 * @str: string buffer containing the format name
cc3188c9ec1202 Evan Quan 2017-05-11 280 */
cc3188c9ec1202 Evan Quan 2017-05-11 @281 struct drm_format_name_buf {
cc3188c9ec1202 Evan Quan 2017-05-11 282 char str[32];
cc3188c9ec1202 Evan Quan 2017-05-11 283 };
cc3188c9ec1202 Evan Quan 2017-05-11 284
:::::: The code at line 281 was first introduced by commit
:::::: cc3188c9ec120284ad92543062dcf5b927e648d8 drm/amdkcl: [4.11] fix for struct drm_framebuffer change
:::::: TO: Evan Quan <evan.quan(a)amd.com>
:::::: CC: Chengming Gui <Jack.Gui(a)amd.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 1965/2647] include/kcl/kcl_drm.h:238:32: error: passing argument 1 of 'drm_gem_object_lookup' from incompatible pointer type
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: c450088041e3378cd3b78d99169e9bca8fd20a5b [1965/2647] drm/amdkcl: Test whether drm_gem_object_lookup() wants 2 args
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout c450088041e3378cd3b78d99169e9bca8fd20a5b
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:98:1: error: conflicting types for 'drm_fb_helper_remove_conflicting_framebuffers'
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:7:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fb_helper.h:589:1: note: previous definition of 'drm_fb_helper_remove_conflicting_framebuffers' was here
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_encoder_init':
include/kcl/kcl_drm.h:191:9: error: too few arguments to function 'drm_encoder_init'
return drm_encoder_init(dev, encoder, funcs,
^~~~~~~~~~~~~~~~
In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
from include/drm/drm_atomic_helper.h:32,
from include/kcl/kcl_drm.h:10,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_encoder.h:183:5: note: declared here
int drm_encoder_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_crtc_init_with_planes':
include/kcl/kcl_drm.h:206:10: error: too few arguments to function 'drm_crtc_init_with_planes'
return drm_crtc_init_with_planes(dev, crtc, primary,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:68:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_crtc.h:1120:5: note: declared here
int drm_crtc_init_with_planes(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_universal_plane_init':
include/kcl/kcl_drm.h:227:29: error: incompatible type for argument 7 of 'drm_universal_plane_init'
formats, format_count, type);
^~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: expected 'const uint64_t * {aka const long long unsigned int *}' but argument is of type 'enum drm_plane_type'
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:226:10: error: too few arguments to function 'drm_universal_plane_init'
return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: declared here
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_gem_object_lookup':
>> include/kcl/kcl_drm.h:238:32: error: passing argument 1 of 'drm_gem_object_lookup' from incompatible pointer type [-Werror=incompatible-pointer-types]
return drm_gem_object_lookup(dev, filp, handle);
^~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: expected 'struct drm_file *' but argument is of type 'struct drm_device *'
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:238:37: warning: passing argument 2 of 'drm_gem_object_lookup' makes integer from pointer without a cast [-Wint-conversion]
return drm_gem_object_lookup(dev, filp, handle);
^~~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: expected 'u32 {aka unsigned int}' but argument is of type 'struct drm_file *'
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
>> include/kcl/kcl_drm.h:238:10: error: too many arguments to function 'drm_gem_object_lookup'
return drm_gem_object_lookup(dev, filp, handle);
^~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:9:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_gem.h:386:24: note: declared here
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/drm_gem_object_lookup +238 include/kcl/kcl_drm.h
230
231 static inline struct drm_gem_object *
232 kcl_drm_gem_object_lookup(struct drm_device *dev, struct drm_file *filp,
233 u32 handle)
234 {
235 #if defined(HAVE_2ARGS_DRM_GEM_OBJECT_LOOKUP)
236 return drm_gem_object_lookup(filp, handle);
237 #else
> 238 return drm_gem_object_lookup(dev, filp, handle);
239 #endif
240 }
241
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
Re: [PATCH v2 1/2] pinctrl: Add pinmux & GPIO controller driver for a new SoC
by kbuild test robot
Hi Rahul,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on pinctrl/devel]
[also build test ERROR on v5.4-rc5 next-20191031]
[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/Rahul-Tanwar/pinctrl-Add-new-pin...
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
config: um-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=um
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/pinctrl/pinctrl-equilibrium.c: In function 'gpiochip_setup':
>> drivers/pinctrl/pinctrl-equilibrium.c:175:4: error: 'struct gpio_chip' has no member named 'of_node'
gc->of_node = desc->node;
^~
vim +175 drivers/pinctrl/pinctrl-equilibrium.c
166
167 static int gpiochip_setup(struct device *dev, struct eqbr_gpio_desc *desc)
168 {
169 struct gpio_irq_chip *girq;
170 struct gpio_chip *gc;
171
172 gc = &desc->chip;
173 gc->owner = THIS_MODULE;
174 gc->label = desc->name;
> 175 gc->of_node = desc->node;
176
177 if (!of_property_read_bool(desc->node, "interrupt-controller")) {
178 dev_info(dev, "gc %s: doesn't act as interrupt controller!\n",
179 desc->name);
180 return 0;
181 }
182
183 desc->ic.name = "gpio_irq";
184 desc->ic.irq_mask = eqbr_gpio_disable_irq;
185 desc->ic.irq_unmask = eqbr_gpio_enable_irq;
186 desc->ic.irq_ack = eqbr_gpio_ack_irq;
187 desc->ic.irq_mask_ack = eqbr_gpio_mask_ack_irq;
188 desc->ic.irq_set_type = eqbr_gpio_set_irq_type;
189
190 girq = &desc->chip.irq;
191 girq->chip = &desc->ic;
192 girq->parent_handler = eqbr_irq_handler;
193 girq->num_parents = 1;
194 girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents),
195 GFP_KERNEL);
196 if (!girq->parents)
197 return -ENOMEM;
198
199 girq->default_type = IRQ_TYPE_NONE;
200 girq->handler = handle_level_irq;
201 girq->parents[0] = desc->virq;
202
203 return 0;
204 }
205
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 1964/2647] include/kcl/kcl_drm.h:227:29: error: incompatible type for argument 7 of 'drm_universal_plane_init'
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: aa5f7e64d5afdf1b60cb7594bc78632997b6eb38 [1964/2647] drm/amdkcl: Test whether drm_universal_plane_init() wants 9 args or 8 args
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout aa5f7e64d5afdf1b60cb7594bc78632997b6eb38
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:98:1: error: conflicting types for 'drm_fb_helper_remove_conflicting_framebuffers'
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:7:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fb_helper.h:589:1: note: previous definition of 'drm_fb_helper_remove_conflicting_framebuffers' was here
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_encoder_init':
include/kcl/kcl_drm.h:191:9: error: too few arguments to function 'drm_encoder_init'
return drm_encoder_init(dev, encoder, funcs,
^~~~~~~~~~~~~~~~
In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
from include/drm/drm_atomic_helper.h:32,
from include/kcl/kcl_drm.h:10,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_encoder.h:183:5: note: declared here
int drm_encoder_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_crtc_init_with_planes':
include/kcl/kcl_drm.h:206:10: error: too few arguments to function 'drm_crtc_init_with_planes'
return drm_crtc_init_with_planes(dev, crtc, primary,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:68:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_crtc.h:1120:5: note: declared here
int drm_crtc_init_with_planes(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_universal_plane_init':
>> include/kcl/kcl_drm.h:227:29: error: incompatible type for argument 7 of 'drm_universal_plane_init'
formats, format_count, type);
^~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: expected 'const uint64_t * {aka const long long unsigned int *}' but argument is of type 'enum drm_plane_type'
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
>> include/kcl/kcl_drm.h:226:10: error: too few arguments to function 'drm_universal_plane_init'
return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_crtc.h:45:0,
from include/drm/drmP.h:68,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_plane.h:713:5: note: declared here
int drm_universal_plane_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~
vim +/drm_universal_plane_init +227 include/kcl/kcl_drm.h
950c9c93299ece Junwei Zhang 2016-12-23 210
950c9c93299ece Junwei Zhang 2016-12-23 211 static inline int kcl_drm_universal_plane_init(struct drm_device *dev, struct drm_plane *plane,
950c9c93299ece Junwei Zhang 2016-12-23 212 unsigned long possible_crtcs,
950c9c93299ece Junwei Zhang 2016-12-23 213 const struct drm_plane_funcs *funcs,
950c9c93299ece Junwei Zhang 2016-12-23 214 const uint32_t *formats, unsigned int format_count,
7e18f7a415538c Evan Quan 2019-02-18 215 const uint64_t *format_modifiers,
950c9c93299ece Junwei Zhang 2016-12-23 216 enum drm_plane_type type,
950c9c93299ece Junwei Zhang 2016-12-23 217 const char *name, ...)
950c9c93299ece Junwei Zhang 2016-12-23 218 {
aa5f7e64d5afdf Slava Grigorev 2018-07-17 219 #if defined(HAVE_9ARGS_DRM_UNIVERSAL_PLANE_INIT)
7e18f7a415538c Evan Quan 2019-02-18 220 return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
7e18f7a415538c Evan Quan 2019-02-18 221 formats, format_count, format_modifiers, type, name);
aa5f7e64d5afdf Slava Grigorev 2018-07-17 222 #elif defined(HAVE_8ARGS_DRM_UNIVERSAL_PLANE_INIT)
950c9c93299ece Junwei Zhang 2016-12-23 223 return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
950c9c93299ece Junwei Zhang 2016-12-23 224 formats, format_count, type, name);
950c9c93299ece Junwei Zhang 2016-12-23 225 #else
950c9c93299ece Junwei Zhang 2016-12-23 @226 return drm_universal_plane_init(dev, plane, possible_crtcs, funcs,
950c9c93299ece Junwei Zhang 2016-12-23 @227 formats, format_count, type);
950c9c93299ece Junwei Zhang 2016-12-23 228 #endif
950c9c93299ece Junwei Zhang 2016-12-23 229 }
950c9c93299ece Junwei Zhang 2016-12-23 230
:::::: The code at line 227 was first introduced by commit
:::::: 950c9c93299eceb8cca4b12eb09a04a48d383ec6 drm/amdkcl: [4.5] fix drm encoder and plane functions
:::::: TO: Junwei Zhang <Jerry.Zhang(a)amd.com>
:::::: CC: Chengming Gui <Jack.Gui(a)amd.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 1963/2647] include/kcl/kcl_drm.h:206:10: error: too few arguments to function 'drm_crtc_init_with_planes'
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: f2e0d469732d27bc612df52b42094309ba5877d9 [1963/2647] drm/amdkcl: Test whether drm_crtc_init_with_planes() wants name
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout f2e0d469732d27bc612df52b42094309ba5877d9
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:98:1: error: conflicting types for 'drm_fb_helper_remove_conflicting_framebuffers'
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:7:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fb_helper.h:589:1: note: previous definition of 'drm_fb_helper_remove_conflicting_framebuffers' was here
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_encoder_init':
include/kcl/kcl_drm.h:191:9: error: too few arguments to function 'drm_encoder_init'
return drm_encoder_init(dev, encoder, funcs,
^~~~~~~~~~~~~~~~
In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
from include/drm/drm_atomic_helper.h:32,
from include/kcl/kcl_drm.h:10,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_encoder.h:183:5: note: declared here
int drm_encoder_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_crtc_init_with_planes':
>> include/kcl/kcl_drm.h:206:10: error: too few arguments to function 'drm_crtc_init_with_planes'
return drm_crtc_init_with_planes(dev, crtc, primary,
^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drmP.h:68:0,
from include/kcl/kcl_drm.h:6,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_crtc.h:1120:5: note: declared here
int drm_crtc_init_with_planes(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~
vim +/drm_crtc_init_with_planes +206 include/kcl/kcl_drm.h
950c9c93299ece Junwei Zhang 2016-12-23 3
950c9c93299ece Junwei Zhang 2016-12-23 4 #include <linux/version.h>
7e18f7a415538c Evan Quan 2019-02-18 5 #include <linux/kconfig.h>
950c9c93299ece Junwei Zhang 2016-12-23 6 #include <drm/drmP.h>
950c9c93299ece Junwei Zhang 2016-12-23 7 #include <drm/drm_fb_helper.h>
950c9c93299ece Junwei Zhang 2016-12-23 8 #include <drm/drm_atomic.h>
950c9c93299ece Junwei Zhang 2016-12-23 9 #include <drm/drm_gem.h>
950c9c93299ece Junwei Zhang 2016-12-23 @10 #include <drm/drm_atomic_helper.h>
cc3188c9ec1202 Evan Quan 2017-05-11 11 #include <drm/drm_fourcc.h>
7e18f7a415538c Evan Quan 2019-02-18 12 #include <drm/drm_rect.h>
7e18f7a415538c Evan Quan 2019-02-18 13 #include <drm/drm_modes.h>
cc3188c9ec1202 Evan Quan 2017-05-11 14 #include <linux/ctype.h>
5027d12c82b867 changzhu 2019-04-03 15 #if DRM_VERSION_CODE >= DRM_VERSION(4, 13, 0)
5027d12c82b867 changzhu 2019-04-03 16 #include <drm/drm_syncobj.h>
5027d12c82b867 changzhu 2019-04-03 17 #endif
950c9c93299ece Junwei Zhang 2016-12-23 18
7e18f7a415538c Evan Quan 2019-02-18 19 #ifndef DRM_MODE_ROTATE_0
7e18f7a415538c Evan Quan 2019-02-18 20 #define DRM_MODE_ROTATE_0 (1<<0)
7e18f7a415538c Evan Quan 2019-02-18 21 #endif
7e18f7a415538c Evan Quan 2019-02-18 22 #ifndef DRM_MODE_ROTATE_90
7e18f7a415538c Evan Quan 2019-02-18 23 #define DRM_MODE_ROTATE_90 (1<<1)
7e18f7a415538c Evan Quan 2019-02-18 24 #endif
7e18f7a415538c Evan Quan 2019-02-18 25 #ifndef DRM_MODE_ROTATE_180
7e18f7a415538c Evan Quan 2019-02-18 26 #define DRM_MODE_ROTATE_180 (1<<2)
7e18f7a415538c Evan Quan 2019-02-18 27 #endif
7e18f7a415538c Evan Quan 2019-02-18 28 #ifndef DRM_MODE_ROTATE_270
7e18f7a415538c Evan Quan 2019-02-18 29 #define DRM_MODE_ROTATE_270 (1<<3)
7e18f7a415538c Evan Quan 2019-02-18 30 #endif
7e18f7a415538c Evan Quan 2019-02-18 31
7e18f7a415538c Evan Quan 2019-02-18 32 #ifndef DRM_MODE_ROTATE_MASK
7e18f7a415538c Evan Quan 2019-02-18 33 #define DRM_MODE_ROTATE_MASK (\
7e18f7a415538c Evan Quan 2019-02-18 34 DRM_MODE_ROTATE_0 | \
7e18f7a415538c Evan Quan 2019-02-18 35 DRM_MODE_ROTATE_90 | \
7e18f7a415538c Evan Quan 2019-02-18 36 DRM_MODE_ROTATE_180 | \
7e18f7a415538c Evan Quan 2019-02-18 37 DRM_MODE_ROTATE_270)
7e18f7a415538c Evan Quan 2019-02-18 38 #endif
7e18f7a415538c Evan Quan 2019-02-18 39
950c9c93299ece Junwei Zhang 2016-12-23 40 extern void (*_kcl_drm_fb_helper_set_suspend)(struct drm_fb_helper *fb_helper, int state);
950c9c93299ece Junwei Zhang 2016-12-23 41 extern void
950c9c93299ece Junwei Zhang 2016-12-23 42 (*_kcl_drm_atomic_helper_update_legacy_modeset_state)(struct drm_device *dev,
950c9c93299ece Junwei Zhang 2016-12-23 43 struct drm_atomic_state *old_state);
950c9c93299ece Junwei Zhang 2016-12-23 44
e36c5eb8e827b3 Slava Grigorev 2018-06-25 45 #if !defined(HAVE_DRM_MODESET_LOCK_ALL_CTX)
7e18f7a415538c Evan Quan 2019-02-18 46 int drm_modeset_lock_all_ctx(struct drm_device *dev,
7e18f7a415538c Evan Quan 2019-02-18 47 struct drm_modeset_acquire_ctx *ctx);
e36c5eb8e827b3 Slava Grigorev 2018-06-25 48 #endif
e36c5eb8e827b3 Slava Grigorev 2018-06-25 49
9f78b521bc9fc5 Slava Grigorev 2018-06-25 50 #if !defined(HAVE_DRM_ATOMIC_HELPER_DISABLE_ALL)
9f78b521bc9fc5 Slava Grigorev 2018-06-25 51 int drm_atomic_helper_disable_all(struct drm_device *dev,
9f78b521bc9fc5 Slava Grigorev 2018-06-25 52 struct drm_modeset_acquire_ctx *ctx);
9f78b521bc9fc5 Slava Grigorev 2018-06-25 53 #endif
9f78b521bc9fc5 Slava Grigorev 2018-06-25 54
fb33688c00aea9 Slava Grigorev 2018-06-26 55 #if !defined(HAVE_DRM_ATOMIC_HELPER_DUPLICATE_STATE)
7e18f7a415538c Evan Quan 2019-02-18 56 struct drm_atomic_state *
7e18f7a415538c Evan Quan 2019-02-18 57 drm_atomic_helper_duplicate_state(struct drm_device *dev,
7e18f7a415538c Evan Quan 2019-02-18 58 struct drm_modeset_acquire_ctx *ctx);
7e18f7a415538c Evan Quan 2019-02-18 59 #endif
fb33688c00aea9 Slava Grigorev 2018-06-26 60
92f741fc38a3f4 Slava Grigorev 2018-06-26 61 #if !defined(HAVE_DRM_ATOMIC_HELPER_SUSPEND)
92f741fc38a3f4 Slava Grigorev 2018-06-26 62 struct drm_atomic_state *drm_atomic_helper_suspend(struct drm_device *dev);
92f741fc38a3f4 Slava Grigorev 2018-06-26 63 #endif
92f741fc38a3f4 Slava Grigorev 2018-06-26 64
9400fab1ce949b Slava Grigorev 2018-06-26 65 #if !defined(HAVE_DRM_ATOMIC_HELPER_RESUME)
7e18f7a415538c Evan Quan 2019-02-18 66 int drm_atomic_helper_resume(struct drm_device *dev,
7e18f7a415538c Evan Quan 2019-02-18 67 struct drm_atomic_state *state);
7e18f7a415538c Evan Quan 2019-02-18 68 #endif
7e18f7a415538c Evan Quan 2019-02-18 69
e88cb29d12208d Slava Grigorev 2018-07-10 70 #if !defined(HAVE_DRM_CRTC_FORCE_DISABLE_ALL)
7e18f7a415538c Evan Quan 2019-02-18 71 extern int drm_crtc_force_disable_all(struct drm_device *dev);
7e18f7a415538c Evan Quan 2019-02-18 72 #endif
7e18f7a415538c Evan Quan 2019-02-18 73
14b8fa4fd168f0 Slava Grigorev 2018-07-13 74 #if !defined(HAVE_DRM_FB_HELPER_REMOVE_CONFLICTING_FRAMEBUFFERS)
7e18f7a415538c Evan Quan 2019-02-18 75
25c22db6ac59d5 Yifan Zhang 2019-07-12 76 #if !defined(IS_REACHABLE)
7e18f7a415538c Evan Quan 2019-02-18 77 #define __ARG_PLACEHOLDER_1 0,
7e18f7a415538c Evan Quan 2019-02-18 78 #define __take_second_arg(__ignored, val, ...) val
7e18f7a415538c Evan Quan 2019-02-18 79
7e18f7a415538c Evan Quan 2019-02-18 80 /*
7e18f7a415538c Evan Quan 2019-02-18 81 * The use of "&&" / "||" is limited in certain expressions.
7e18f7a415538c Evan Quan 2019-02-18 82 * The followings enable to calculate "and" / "or" with macro expansion only.
7e18f7a415538c Evan Quan 2019-02-18 83 */
7e18f7a415538c Evan Quan 2019-02-18 84 #define __and(x, y) ___and(x, y)
7e18f7a415538c Evan Quan 2019-02-18 85 #define ___and(x, y) ____and(__ARG_PLACEHOLDER_##x, y)
7e18f7a415538c Evan Quan 2019-02-18 86 #define ____and(arg1_or_junk, y) __take_second_arg(arg1_or_junk y, 0)
7e18f7a415538c Evan Quan 2019-02-18 87
7e18f7a415538c Evan Quan 2019-02-18 88 #define __or(x, y) ___or(x, y)
7e18f7a415538c Evan Quan 2019-02-18 89 #define ___or(x, y) ____or(__ARG_PLACEHOLDER_##x, y)
7e18f7a415538c Evan Quan 2019-02-18 90 #define ____or(arg1_or_junk, y) __take_second_arg(arg1_or_junk 1, y)
7e18f7a415538c Evan Quan 2019-02-18 91
7e18f7a415538c Evan Quan 2019-02-18 92 #define IS_REACHABLE(option) __or(IS_BUILTIN(option), \
7e18f7a415538c Evan Quan 2019-02-18 93 __and(IS_MODULE(option), __is_defined(MODULE)))
7e18f7a415538c Evan Quan 2019-02-18 94 #endif
7e18f7a415538c Evan Quan 2019-02-18 95
2707e9e12e8c57 Slava Grigorev 2018-07-12 96 #if !defined(HAVE_REMOVE_CONFLICTING_FRAMEBUFFERS_RETURNS_INT)
7e18f7a415538c Evan Quan 2019-02-18 97 static inline void
7e18f7a415538c Evan Quan 2019-02-18 98 drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
7e18f7a415538c Evan Quan 2019-02-18 99 const char *name, bool primary)
7e18f7a415538c Evan Quan 2019-02-18 100 {
7e18f7a415538c Evan Quan 2019-02-18 101 #if IS_REACHABLE(CONFIG_FB)
7e18f7a415538c Evan Quan 2019-02-18 102 remove_conflicting_framebuffers(a, name, primary);
7e18f7a415538c Evan Quan 2019-02-18 103 #else
7e18f7a415538c Evan Quan 2019-02-18 104 return;
7e18f7a415538c Evan Quan 2019-02-18 105 #endif
7e18f7a415538c Evan Quan 2019-02-18 106 }
7e18f7a415538c Evan Quan 2019-02-18 107 #else
7e18f7a415538c Evan Quan 2019-02-18 108 static inline int
7e18f7a415538c Evan Quan 2019-02-18 109 drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
7e18f7a415538c Evan Quan 2019-02-18 110 const char *name, bool primary)
7e18f7a415538c Evan Quan 2019-02-18 111 {
7e18f7a415538c Evan Quan 2019-02-18 112 #if IS_REACHABLE(CONFIG_FB)
7e18f7a415538c Evan Quan 2019-02-18 113 return remove_conflicting_framebuffers(a, name, primary);
7e18f7a415538c Evan Quan 2019-02-18 114 #else
7e18f7a415538c Evan Quan 2019-02-18 115 return 0;
7e18f7a415538c Evan Quan 2019-02-18 116 #endif
7e18f7a415538c Evan Quan 2019-02-18 117 }
7e18f7a415538c Evan Quan 2019-02-18 118 #endif
7e18f7a415538c Evan Quan 2019-02-18 119 #endif
7e18f7a415538c Evan Quan 2019-02-18 120
950c9c93299ece Junwei Zhang 2016-12-23 121 static inline void kcl_drm_fb_helper_set_suspend(struct drm_fb_helper *fb_helper, int state)
950c9c93299ece Junwei Zhang 2016-12-23 122 {
950c9c93299ece Junwei Zhang 2016-12-23 123 #ifdef BUILD_AS_DKMS
950c9c93299ece Junwei Zhang 2016-12-23 124 _kcl_drm_fb_helper_set_suspend(fb_helper, state);
950c9c93299ece Junwei Zhang 2016-12-23 125 #else
950c9c93299ece Junwei Zhang 2016-12-23 126 drm_fb_helper_set_suspend(fb_helper, state);
950c9c93299ece Junwei Zhang 2016-12-23 127 #endif
950c9c93299ece Junwei Zhang 2016-12-23 128 }
950c9c93299ece Junwei Zhang 2016-12-23 129
950c9c93299ece Junwei Zhang 2016-12-23 130 static inline void
950c9c93299ece Junwei Zhang 2016-12-23 131 kcl_drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
950c9c93299ece Junwei Zhang 2016-12-23 132 struct drm_atomic_state *old_state)
950c9c93299ece Junwei Zhang 2016-12-23 133 {
950c9c93299ece Junwei Zhang 2016-12-23 134 #ifdef BUILD_AS_DKMS
950c9c93299ece Junwei Zhang 2016-12-23 135 _kcl_drm_atomic_helper_update_legacy_modeset_state(dev, old_state);
950c9c93299ece Junwei Zhang 2016-12-23 136 #else
950c9c93299ece Junwei Zhang 2016-12-23 137 drm_atomic_helper_update_legacy_modeset_state(dev, old_state);
950c9c93299ece Junwei Zhang 2016-12-23 138 #endif
950c9c93299ece Junwei Zhang 2016-12-23 139 }
950c9c93299ece Junwei Zhang 2016-12-23 140
950c9c93299ece Junwei Zhang 2016-12-23 141 #ifndef DRM_DEBUG_VBL
950c9c93299ece Junwei Zhang 2016-12-23 142 #define DRM_UT_VBL 0x20
950c9c93299ece Junwei Zhang 2016-12-23 143 #define DRM_DEBUG_VBL(fmt, args...) \
950c9c93299ece Junwei Zhang 2016-12-23 144 do { \
950c9c93299ece Junwei Zhang 2016-12-23 145 if (unlikely(drm_debug & DRM_UT_VBL)) \
950c9c93299ece Junwei Zhang 2016-12-23 146 drm_ut_debug_printk(__func__, fmt, ##args); \
950c9c93299ece Junwei Zhang 2016-12-23 147 } while (0)
950c9c93299ece Junwei Zhang 2016-12-23 148 #endif
950c9c93299ece Junwei Zhang 2016-12-23 149
950c9c93299ece Junwei Zhang 2016-12-23 150 static inline bool kcl_drm_arch_can_wc_memory(void)
950c9c93299ece Junwei Zhang 2016-12-23 151 {
950c9c93299ece Junwei Zhang 2016-12-23 152 #if defined(CONFIG_PPC) && !defined(CONFIG_NOT_COHERENT_CACHE)
950c9c93299ece Junwei Zhang 2016-12-23 153 return false;
950c9c93299ece Junwei Zhang 2016-12-23 154 #elif defined(CONFIG_MIPS) && defined(CONFIG_CPU_LOONGSON3)
950c9c93299ece Junwei Zhang 2016-12-23 155 return false;
950c9c93299ece Junwei Zhang 2016-12-23 156 #else
950c9c93299ece Junwei Zhang 2016-12-23 157 return true;
950c9c93299ece Junwei Zhang 2016-12-23 158 #endif
950c9c93299ece Junwei Zhang 2016-12-23 159 }
950c9c93299ece Junwei Zhang 2016-12-23 160
5027d12c82b867 changzhu 2019-04-03 161 #if DRM_VERSION_CODE >= DRM_VERSION(4, 13, 0)
5027d12c82b867 changzhu 2019-04-03 162 static inline int kcl_drm_syncobj_find_fence(struct drm_file *file_private,
5027d12c82b867 changzhu 2019-04-03 163 u32 handle, u64 point, u64 flags,
5027d12c82b867 changzhu 2019-04-03 164 struct dma_fence **fence)
5027d12c82b867 changzhu 2019-04-03 165 {
5027d12c82b867 changzhu 2019-04-03 166 #if defined(BUILD_AS_DKMS)
5027d12c82b867 changzhu 2019-04-03 167 #if DRM_VERSION_CODE < DRM_VERSION(4, 14, 0)
5027d12c82b867 changzhu 2019-04-03 168 return drm_syncobj_fence_get(file_private, handle, fence);
5027d12c82b867 changzhu 2019-04-03 169 #elif DRM_VERSION_CODE < DRM_VERSION(4, 20, 0)
5027d12c82b867 changzhu 2019-04-03 170 return drm_syncobj_find_fence(file_private, handle, fence);
5027d12c82b867 changzhu 2019-04-03 171 #elif DRM_VERSION_CODE < DRM_VERSION(5, 0, 0)
5027d12c82b867 changzhu 2019-04-03 172 return drm_syncobj_find_fence(file_private, handle, point, fence);
5027d12c82b867 changzhu 2019-04-03 173 #else
5027d12c82b867 changzhu 2019-04-03 174 return drm_syncobj_find_fence(file_private, handle, point, flags, fence);
5027d12c82b867 changzhu 2019-04-03 175 #endif
5027d12c82b867 changzhu 2019-04-03 176 #else
5027d12c82b867 changzhu 2019-04-03 177 return drm_syncobj_find_fence(file_private, handle, point, flags, fence);
5027d12c82b867 changzhu 2019-04-03 178 #endif
5027d12c82b867 changzhu 2019-04-03 179 }
5027d12c82b867 changzhu 2019-04-03 180 #endif
5027d12c82b867 changzhu 2019-04-03 181
950c9c93299ece Junwei Zhang 2016-12-23 182 static inline int kcl_drm_encoder_init(struct drm_device *dev,
950c9c93299ece Junwei Zhang 2016-12-23 183 struct drm_encoder *encoder,
950c9c93299ece Junwei Zhang 2016-12-23 184 const struct drm_encoder_funcs *funcs,
950c9c93299ece Junwei Zhang 2016-12-23 185 int encoder_type, const char *name, ...)
950c9c93299ece Junwei Zhang 2016-12-23 186 {
35781c0b8d19ed Yifan Zhang 2019-07-15 187 #if defined(HAVE_DRM_ENCODER_INIT_VALID_WITH_NAME)
950c9c93299ece Junwei Zhang 2016-12-23 188 return drm_encoder_init(dev, encoder, funcs,
950c9c93299ece Junwei Zhang 2016-12-23 189 encoder_type, name);
950c9c93299ece Junwei Zhang 2016-12-23 190 #else
950c9c93299ece Junwei Zhang 2016-12-23 191 return drm_encoder_init(dev, encoder, funcs,
950c9c93299ece Junwei Zhang 2016-12-23 192 encoder_type);
950c9c93299ece Junwei Zhang 2016-12-23 193 #endif
950c9c93299ece Junwei Zhang 2016-12-23 194 }
950c9c93299ece Junwei Zhang 2016-12-23 195
950c9c93299ece Junwei Zhang 2016-12-23 196 static inline int kcl_drm_crtc_init_with_planes(struct drm_device *dev, struct drm_crtc *crtc,
950c9c93299ece Junwei Zhang 2016-12-23 197 struct drm_plane *primary,
950c9c93299ece Junwei Zhang 2016-12-23 198 struct drm_plane *cursor,
950c9c93299ece Junwei Zhang 2016-12-23 199 const struct drm_crtc_funcs *funcs,
950c9c93299ece Junwei Zhang 2016-12-23 200 const char *name, ...)
950c9c93299ece Junwei Zhang 2016-12-23 201 {
f2e0d469732d27 Slava Grigorev 2018-07-17 202 #if defined(HAVE_DRM_CRTC_INIT_WITH_PLANES_VALID_WITH_NAME)
950c9c93299ece Junwei Zhang 2016-12-23 203 return drm_crtc_init_with_planes(dev, crtc, primary,
950c9c93299ece Junwei Zhang 2016-12-23 204 cursor, funcs, name);
950c9c93299ece Junwei Zhang 2016-12-23 205 #else
950c9c93299ece Junwei Zhang 2016-12-23 @206 return drm_crtc_init_with_planes(dev, crtc, primary,
950c9c93299ece Junwei Zhang 2016-12-23 207 cursor, funcs);
950c9c93299ece Junwei Zhang 2016-12-23 208 #endif
950c9c93299ece Junwei Zhang 2016-12-23 209 }
950c9c93299ece Junwei Zhang 2016-12-23 210
:::::: The code at line 206 was first introduced by commit
:::::: 950c9c93299eceb8cca4b12eb09a04a48d383ec6 drm/amdkcl: [4.5] fix drm encoder and plane functions
:::::: TO: Junwei Zhang <Jerry.Zhang(a)amd.com>
:::::: CC: Chengming Gui <Jack.Gui(a)amd.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months
[radeon-alex:amd-mainline-dkms-5.2 1962/2647] include/kcl/kcl_drm.h:191:9: error: too few arguments to function 'drm_encoder_init'
by kbuild test robot
tree: git://people.freedesktop.org/~agd5f/linux.git amd-mainline-dkms-5.2
head: b027ed8d9051470f4ed6bc071fcde172fe1fc595
commit: 35781c0b8d19ed0d1bdb8cfa85780841ea7985ff [1962/2647] drm/amdkcl: Test whether drm_encoder_init() wants name
config: x86_64-randconfig-g002-201943 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
git checkout 35781c0b8d19ed0d1bdb8cfa85780841ea7985ff
# 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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h:98:1: error: conflicting types for 'drm_fb_helper_remove_conflicting_framebuffers'
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/kcl/kcl_drm.h:7:0,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_fb_helper.h:589:1: note: previous definition of 'drm_fb_helper_remove_conflicting_framebuffers' was here
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/ttm/backport/backport.h:6:0,
from <command-line>:0:
include/kcl/kcl_drm.h: In function 'kcl_drm_encoder_init':
>> include/kcl/kcl_drm.h:191:9: error: too few arguments to function 'drm_encoder_init'
return drm_encoder_init(dev, encoder, funcs,
^~~~~~~~~~~~~~~~
In file included from include/drm/drm_modeset_helper_vtables.h:33:0,
from include/drm/drm_atomic_helper.h:32,
from include/kcl/kcl_drm.h:10,
from drivers/gpu/drm/ttm/backport/backport.h:6,
from <command-line>:0:
include/drm/drm_encoder.h:183:5: note: declared here
int drm_encoder_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~
vim +/drm_encoder_init +191 include/kcl/kcl_drm.h
950c9c93299ece Junwei Zhang 2016-12-23 3
950c9c93299ece Junwei Zhang 2016-12-23 4 #include <linux/version.h>
7e18f7a415538c Evan Quan 2019-02-18 5 #include <linux/kconfig.h>
950c9c93299ece Junwei Zhang 2016-12-23 6 #include <drm/drmP.h>
950c9c93299ece Junwei Zhang 2016-12-23 @7 #include <drm/drm_fb_helper.h>
950c9c93299ece Junwei Zhang 2016-12-23 8 #include <drm/drm_atomic.h>
950c9c93299ece Junwei Zhang 2016-12-23 9 #include <drm/drm_gem.h>
950c9c93299ece Junwei Zhang 2016-12-23 10 #include <drm/drm_atomic_helper.h>
cc3188c9ec1202 Evan Quan 2017-05-11 11 #include <drm/drm_fourcc.h>
7e18f7a415538c Evan Quan 2019-02-18 12 #include <drm/drm_rect.h>
7e18f7a415538c Evan Quan 2019-02-18 13 #include <drm/drm_modes.h>
cc3188c9ec1202 Evan Quan 2017-05-11 14 #include <linux/ctype.h>
5027d12c82b867 changzhu 2019-04-03 15 #if DRM_VERSION_CODE >= DRM_VERSION(4, 13, 0)
5027d12c82b867 changzhu 2019-04-03 16 #include <drm/drm_syncobj.h>
5027d12c82b867 changzhu 2019-04-03 17 #endif
950c9c93299ece Junwei Zhang 2016-12-23 18
7e18f7a415538c Evan Quan 2019-02-18 19 #ifndef DRM_MODE_ROTATE_0
7e18f7a415538c Evan Quan 2019-02-18 20 #define DRM_MODE_ROTATE_0 (1<<0)
7e18f7a415538c Evan Quan 2019-02-18 21 #endif
7e18f7a415538c Evan Quan 2019-02-18 22 #ifndef DRM_MODE_ROTATE_90
7e18f7a415538c Evan Quan 2019-02-18 23 #define DRM_MODE_ROTATE_90 (1<<1)
7e18f7a415538c Evan Quan 2019-02-18 24 #endif
7e18f7a415538c Evan Quan 2019-02-18 25 #ifndef DRM_MODE_ROTATE_180
7e18f7a415538c Evan Quan 2019-02-18 26 #define DRM_MODE_ROTATE_180 (1<<2)
7e18f7a415538c Evan Quan 2019-02-18 27 #endif
7e18f7a415538c Evan Quan 2019-02-18 28 #ifndef DRM_MODE_ROTATE_270
7e18f7a415538c Evan Quan 2019-02-18 29 #define DRM_MODE_ROTATE_270 (1<<3)
7e18f7a415538c Evan Quan 2019-02-18 30 #endif
7e18f7a415538c Evan Quan 2019-02-18 31
7e18f7a415538c Evan Quan 2019-02-18 32 #ifndef DRM_MODE_ROTATE_MASK
7e18f7a415538c Evan Quan 2019-02-18 33 #define DRM_MODE_ROTATE_MASK (\
7e18f7a415538c Evan Quan 2019-02-18 34 DRM_MODE_ROTATE_0 | \
7e18f7a415538c Evan Quan 2019-02-18 35 DRM_MODE_ROTATE_90 | \
7e18f7a415538c Evan Quan 2019-02-18 36 DRM_MODE_ROTATE_180 | \
7e18f7a415538c Evan Quan 2019-02-18 37 DRM_MODE_ROTATE_270)
7e18f7a415538c Evan Quan 2019-02-18 38 #endif
7e18f7a415538c Evan Quan 2019-02-18 39
950c9c93299ece Junwei Zhang 2016-12-23 40 extern void (*_kcl_drm_fb_helper_set_suspend)(struct drm_fb_helper *fb_helper, int state);
950c9c93299ece Junwei Zhang 2016-12-23 41 extern void
950c9c93299ece Junwei Zhang 2016-12-23 42 (*_kcl_drm_atomic_helper_update_legacy_modeset_state)(struct drm_device *dev,
950c9c93299ece Junwei Zhang 2016-12-23 43 struct drm_atomic_state *old_state);
950c9c93299ece Junwei Zhang 2016-12-23 44
e36c5eb8e827b3 Slava Grigorev 2018-06-25 45 #if !defined(HAVE_DRM_MODESET_LOCK_ALL_CTX)
7e18f7a415538c Evan Quan 2019-02-18 46 int drm_modeset_lock_all_ctx(struct drm_device *dev,
7e18f7a415538c Evan Quan 2019-02-18 47 struct drm_modeset_acquire_ctx *ctx);
e36c5eb8e827b3 Slava Grigorev 2018-06-25 48 #endif
e36c5eb8e827b3 Slava Grigorev 2018-06-25 49
9f78b521bc9fc5 Slava Grigorev 2018-06-25 50 #if !defined(HAVE_DRM_ATOMIC_HELPER_DISABLE_ALL)
9f78b521bc9fc5 Slava Grigorev 2018-06-25 51 int drm_atomic_helper_disable_all(struct drm_device *dev,
9f78b521bc9fc5 Slava Grigorev 2018-06-25 52 struct drm_modeset_acquire_ctx *ctx);
9f78b521bc9fc5 Slava Grigorev 2018-06-25 53 #endif
9f78b521bc9fc5 Slava Grigorev 2018-06-25 54
fb33688c00aea9 Slava Grigorev 2018-06-26 55 #if !defined(HAVE_DRM_ATOMIC_HELPER_DUPLICATE_STATE)
7e18f7a415538c Evan Quan 2019-02-18 56 struct drm_atomic_state *
7e18f7a415538c Evan Quan 2019-02-18 57 drm_atomic_helper_duplicate_state(struct drm_device *dev,
7e18f7a415538c Evan Quan 2019-02-18 58 struct drm_modeset_acquire_ctx *ctx);
7e18f7a415538c Evan Quan 2019-02-18 59 #endif
fb33688c00aea9 Slava Grigorev 2018-06-26 60
92f741fc38a3f4 Slava Grigorev 2018-06-26 61 #if !defined(HAVE_DRM_ATOMIC_HELPER_SUSPEND)
92f741fc38a3f4 Slava Grigorev 2018-06-26 62 struct drm_atomic_state *drm_atomic_helper_suspend(struct drm_device *dev);
92f741fc38a3f4 Slava Grigorev 2018-06-26 63 #endif
92f741fc38a3f4 Slava Grigorev 2018-06-26 64
9400fab1ce949b Slava Grigorev 2018-06-26 65 #if !defined(HAVE_DRM_ATOMIC_HELPER_RESUME)
7e18f7a415538c Evan Quan 2019-02-18 66 int drm_atomic_helper_resume(struct drm_device *dev,
7e18f7a415538c Evan Quan 2019-02-18 67 struct drm_atomic_state *state);
7e18f7a415538c Evan Quan 2019-02-18 68 #endif
7e18f7a415538c Evan Quan 2019-02-18 69
e88cb29d12208d Slava Grigorev 2018-07-10 70 #if !defined(HAVE_DRM_CRTC_FORCE_DISABLE_ALL)
7e18f7a415538c Evan Quan 2019-02-18 71 extern int drm_crtc_force_disable_all(struct drm_device *dev);
7e18f7a415538c Evan Quan 2019-02-18 72 #endif
7e18f7a415538c Evan Quan 2019-02-18 73
14b8fa4fd168f0 Slava Grigorev 2018-07-13 74 #if !defined(HAVE_DRM_FB_HELPER_REMOVE_CONFLICTING_FRAMEBUFFERS)
7e18f7a415538c Evan Quan 2019-02-18 75
25c22db6ac59d5 Yifan Zhang 2019-07-12 76 #if !defined(IS_REACHABLE)
7e18f7a415538c Evan Quan 2019-02-18 77 #define __ARG_PLACEHOLDER_1 0,
7e18f7a415538c Evan Quan 2019-02-18 78 #define __take_second_arg(__ignored, val, ...) val
7e18f7a415538c Evan Quan 2019-02-18 79
7e18f7a415538c Evan Quan 2019-02-18 80 /*
7e18f7a415538c Evan Quan 2019-02-18 81 * The use of "&&" / "||" is limited in certain expressions.
7e18f7a415538c Evan Quan 2019-02-18 82 * The followings enable to calculate "and" / "or" with macro expansion only.
7e18f7a415538c Evan Quan 2019-02-18 83 */
7e18f7a415538c Evan Quan 2019-02-18 84 #define __and(x, y) ___and(x, y)
7e18f7a415538c Evan Quan 2019-02-18 85 #define ___and(x, y) ____and(__ARG_PLACEHOLDER_##x, y)
7e18f7a415538c Evan Quan 2019-02-18 86 #define ____and(arg1_or_junk, y) __take_second_arg(arg1_or_junk y, 0)
7e18f7a415538c Evan Quan 2019-02-18 87
7e18f7a415538c Evan Quan 2019-02-18 88 #define __or(x, y) ___or(x, y)
7e18f7a415538c Evan Quan 2019-02-18 89 #define ___or(x, y) ____or(__ARG_PLACEHOLDER_##x, y)
7e18f7a415538c Evan Quan 2019-02-18 90 #define ____or(arg1_or_junk, y) __take_second_arg(arg1_or_junk 1, y)
7e18f7a415538c Evan Quan 2019-02-18 91
7e18f7a415538c Evan Quan 2019-02-18 92 #define IS_REACHABLE(option) __or(IS_BUILTIN(option), \
7e18f7a415538c Evan Quan 2019-02-18 93 __and(IS_MODULE(option), __is_defined(MODULE)))
7e18f7a415538c Evan Quan 2019-02-18 94 #endif
7e18f7a415538c Evan Quan 2019-02-18 95
2707e9e12e8c57 Slava Grigorev 2018-07-12 96 #if !defined(HAVE_REMOVE_CONFLICTING_FRAMEBUFFERS_RETURNS_INT)
7e18f7a415538c Evan Quan 2019-02-18 97 static inline void
7e18f7a415538c Evan Quan 2019-02-18 98 drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
7e18f7a415538c Evan Quan 2019-02-18 99 const char *name, bool primary)
7e18f7a415538c Evan Quan 2019-02-18 100 {
7e18f7a415538c Evan Quan 2019-02-18 101 #if IS_REACHABLE(CONFIG_FB)
7e18f7a415538c Evan Quan 2019-02-18 102 remove_conflicting_framebuffers(a, name, primary);
7e18f7a415538c Evan Quan 2019-02-18 103 #else
7e18f7a415538c Evan Quan 2019-02-18 104 return;
7e18f7a415538c Evan Quan 2019-02-18 105 #endif
7e18f7a415538c Evan Quan 2019-02-18 106 }
7e18f7a415538c Evan Quan 2019-02-18 107 #else
7e18f7a415538c Evan Quan 2019-02-18 108 static inline int
7e18f7a415538c Evan Quan 2019-02-18 109 drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
7e18f7a415538c Evan Quan 2019-02-18 110 const char *name, bool primary)
7e18f7a415538c Evan Quan 2019-02-18 111 {
7e18f7a415538c Evan Quan 2019-02-18 112 #if IS_REACHABLE(CONFIG_FB)
7e18f7a415538c Evan Quan 2019-02-18 113 return remove_conflicting_framebuffers(a, name, primary);
7e18f7a415538c Evan Quan 2019-02-18 114 #else
7e18f7a415538c Evan Quan 2019-02-18 115 return 0;
7e18f7a415538c Evan Quan 2019-02-18 116 #endif
7e18f7a415538c Evan Quan 2019-02-18 117 }
7e18f7a415538c Evan Quan 2019-02-18 118 #endif
7e18f7a415538c Evan Quan 2019-02-18 119 #endif
7e18f7a415538c Evan Quan 2019-02-18 120
950c9c93299ece Junwei Zhang 2016-12-23 121 static inline void kcl_drm_fb_helper_set_suspend(struct drm_fb_helper *fb_helper, int state)
950c9c93299ece Junwei Zhang 2016-12-23 122 {
950c9c93299ece Junwei Zhang 2016-12-23 123 #ifdef BUILD_AS_DKMS
950c9c93299ece Junwei Zhang 2016-12-23 124 _kcl_drm_fb_helper_set_suspend(fb_helper, state);
950c9c93299ece Junwei Zhang 2016-12-23 125 #else
950c9c93299ece Junwei Zhang 2016-12-23 126 drm_fb_helper_set_suspend(fb_helper, state);
950c9c93299ece Junwei Zhang 2016-12-23 127 #endif
950c9c93299ece Junwei Zhang 2016-12-23 128 }
950c9c93299ece Junwei Zhang 2016-12-23 129
950c9c93299ece Junwei Zhang 2016-12-23 130 static inline void
950c9c93299ece Junwei Zhang 2016-12-23 131 kcl_drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
950c9c93299ece Junwei Zhang 2016-12-23 132 struct drm_atomic_state *old_state)
950c9c93299ece Junwei Zhang 2016-12-23 133 {
950c9c93299ece Junwei Zhang 2016-12-23 134 #ifdef BUILD_AS_DKMS
950c9c93299ece Junwei Zhang 2016-12-23 135 _kcl_drm_atomic_helper_update_legacy_modeset_state(dev, old_state);
950c9c93299ece Junwei Zhang 2016-12-23 136 #else
950c9c93299ece Junwei Zhang 2016-12-23 137 drm_atomic_helper_update_legacy_modeset_state(dev, old_state);
950c9c93299ece Junwei Zhang 2016-12-23 138 #endif
950c9c93299ece Junwei Zhang 2016-12-23 139 }
950c9c93299ece Junwei Zhang 2016-12-23 140
950c9c93299ece Junwei Zhang 2016-12-23 141 #ifndef DRM_DEBUG_VBL
950c9c93299ece Junwei Zhang 2016-12-23 142 #define DRM_UT_VBL 0x20
950c9c93299ece Junwei Zhang 2016-12-23 143 #define DRM_DEBUG_VBL(fmt, args...) \
950c9c93299ece Junwei Zhang 2016-12-23 144 do { \
950c9c93299ece Junwei Zhang 2016-12-23 145 if (unlikely(drm_debug & DRM_UT_VBL)) \
950c9c93299ece Junwei Zhang 2016-12-23 146 drm_ut_debug_printk(__func__, fmt, ##args); \
950c9c93299ece Junwei Zhang 2016-12-23 147 } while (0)
950c9c93299ece Junwei Zhang 2016-12-23 148 #endif
950c9c93299ece Junwei Zhang 2016-12-23 149
950c9c93299ece Junwei Zhang 2016-12-23 150 static inline bool kcl_drm_arch_can_wc_memory(void)
950c9c93299ece Junwei Zhang 2016-12-23 151 {
950c9c93299ece Junwei Zhang 2016-12-23 152 #if defined(CONFIG_PPC) && !defined(CONFIG_NOT_COHERENT_CACHE)
950c9c93299ece Junwei Zhang 2016-12-23 153 return false;
950c9c93299ece Junwei Zhang 2016-12-23 154 #elif defined(CONFIG_MIPS) && defined(CONFIG_CPU_LOONGSON3)
950c9c93299ece Junwei Zhang 2016-12-23 155 return false;
950c9c93299ece Junwei Zhang 2016-12-23 156 #else
950c9c93299ece Junwei Zhang 2016-12-23 157 return true;
950c9c93299ece Junwei Zhang 2016-12-23 158 #endif
950c9c93299ece Junwei Zhang 2016-12-23 159 }
950c9c93299ece Junwei Zhang 2016-12-23 160
5027d12c82b867 changzhu 2019-04-03 161 #if DRM_VERSION_CODE >= DRM_VERSION(4, 13, 0)
5027d12c82b867 changzhu 2019-04-03 162 static inline int kcl_drm_syncobj_find_fence(struct drm_file *file_private,
5027d12c82b867 changzhu 2019-04-03 163 u32 handle, u64 point, u64 flags,
5027d12c82b867 changzhu 2019-04-03 164 struct dma_fence **fence)
5027d12c82b867 changzhu 2019-04-03 165 {
5027d12c82b867 changzhu 2019-04-03 166 #if defined(BUILD_AS_DKMS)
5027d12c82b867 changzhu 2019-04-03 167 #if DRM_VERSION_CODE < DRM_VERSION(4, 14, 0)
5027d12c82b867 changzhu 2019-04-03 168 return drm_syncobj_fence_get(file_private, handle, fence);
5027d12c82b867 changzhu 2019-04-03 169 #elif DRM_VERSION_CODE < DRM_VERSION(4, 20, 0)
5027d12c82b867 changzhu 2019-04-03 170 return drm_syncobj_find_fence(file_private, handle, fence);
5027d12c82b867 changzhu 2019-04-03 171 #elif DRM_VERSION_CODE < DRM_VERSION(5, 0, 0)
5027d12c82b867 changzhu 2019-04-03 172 return drm_syncobj_find_fence(file_private, handle, point, fence);
5027d12c82b867 changzhu 2019-04-03 173 #else
5027d12c82b867 changzhu 2019-04-03 174 return drm_syncobj_find_fence(file_private, handle, point, flags, fence);
5027d12c82b867 changzhu 2019-04-03 175 #endif
5027d12c82b867 changzhu 2019-04-03 176 #else
5027d12c82b867 changzhu 2019-04-03 177 return drm_syncobj_find_fence(file_private, handle, point, flags, fence);
5027d12c82b867 changzhu 2019-04-03 178 #endif
5027d12c82b867 changzhu 2019-04-03 179 }
5027d12c82b867 changzhu 2019-04-03 180 #endif
5027d12c82b867 changzhu 2019-04-03 181
950c9c93299ece Junwei Zhang 2016-12-23 182 static inline int kcl_drm_encoder_init(struct drm_device *dev,
950c9c93299ece Junwei Zhang 2016-12-23 183 struct drm_encoder *encoder,
950c9c93299ece Junwei Zhang 2016-12-23 184 const struct drm_encoder_funcs *funcs,
950c9c93299ece Junwei Zhang 2016-12-23 185 int encoder_type, const char *name, ...)
950c9c93299ece Junwei Zhang 2016-12-23 186 {
35781c0b8d19ed Yifan Zhang 2019-07-15 187 #if defined(HAVE_DRM_ENCODER_INIT_VALID_WITH_NAME)
950c9c93299ece Junwei Zhang 2016-12-23 188 return drm_encoder_init(dev, encoder, funcs,
950c9c93299ece Junwei Zhang 2016-12-23 189 encoder_type, name);
950c9c93299ece Junwei Zhang 2016-12-23 190 #else
950c9c93299ece Junwei Zhang 2016-12-23 @191 return drm_encoder_init(dev, encoder, funcs,
950c9c93299ece Junwei Zhang 2016-12-23 192 encoder_type);
950c9c93299ece Junwei Zhang 2016-12-23 193 #endif
950c9c93299ece Junwei Zhang 2016-12-23 194 }
950c9c93299ece Junwei Zhang 2016-12-23 195
:::::: The code at line 191 was first introduced by commit
:::::: 950c9c93299eceb8cca4b12eb09a04a48d383ec6 drm/amdkcl: [4.5] fix drm encoder and plane functions
:::::: TO: Junwei Zhang <Jerry.Zhang(a)amd.com>
:::::: CC: Chengming Gui <Jack.Gui(a)amd.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
2 years, 9 months