Hi Daniel,
[auto build test ERROR on drm/drm-next]
[also build test ERROR on next-20161215]
[cannot apply to v4.9]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Daniel-Vetter/drm-Convert-all-helpers-to-drm_connector_list_iter/20161216-061508
base: git://people.freedesktop.org/~airlied/linux.git drm-next
config: i386-randconfig-x003-201650 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All error/warnings (new ones prefixed by >>):
drivers/gpu/drm/drm_crtc_helper.c: In function 'drm_helper_encoder_in_use':
drivers/gpu/drm/drm_crtc_helper.c:91:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:104:2: error: implicit declaration of function 'drm_connector_list_iter_get' [-Werror=implicit-function-declaration]
drm_connector_list_iter_get(dev, &conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:105:2: error: implicit declaration of function 'drm_for_each_connector_iter' [-Werror=implicit-function-declaration]
drm_for_each_connector_iter(connector, &conn_iter) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:105:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_crtc_helper.c:91:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c: In function 'drm_crtc_helper_disable':
drivers/gpu/drm/drm_crtc_helper.c:446:34: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:452:54: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_crtc_helper.c:446:34: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c: In function 'drm_crtc_helper_set_config':
drivers/gpu/drm/drm_crtc_helper.c:521:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:588:3: error: expected ';' before 'save_connector_encoders'
save_connector_encoders[count++] = connector->encoder;
^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:589:2: error: implicit declaration of function 'drm_connector_list_iter_put' [-Werror=implicit-function-declaration]
drm_connector_list_iter_put(&conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:633:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_crtc_helper.c:675:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_crtc_helper.c:767:3: error: expected ';' before 'connector'
connector->encoder = save_connector_encoders[count++];
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:521:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:517:49: warning: unused variable 'new_encoder' [-Wunused-variable]
struct drm_encoder **save_connector_encoders, *new_encoder, *encoder;
^~~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:516:41: warning: unused variable 'new_crtc' [-Wunused-variable]
struct drm_crtc **save_encoder_crtcs, *new_crtc;
^~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c: In function 'drm_helper_choose_encoder_dpms':
drivers/gpu/drm/drm_crtc_helper.c:795:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
In file included from include/linux/linkage.h:4:0,
from include/linux/kernel.h:6,
from drivers/gpu/drm/drm_crtc_helper.c:32:
include/linux/compiler.h:149:2: error: expected ';' before 'if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
include/linux/compiler.h:147:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:800:3: note: in expansion of macro 'if'
if (connector->encoder == encoder)
^~
drivers/gpu/drm/drm_crtc_helper.c:795:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c: In function 'drm_helper_choose_crtc_dpms':
drivers/gpu/drm/drm_crtc_helper.c:836:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
In file included from include/linux/linkage.h:4:0,
from include/linux/kernel.h:6,
from drivers/gpu/drm/drm_crtc_helper.c:32:
include/linux/compiler.h:149:2: error: expected ';' before 'if'
if (__builtin_constant_p(!!(cond)) ? !!(cond) : \
^
include/linux/compiler.h:147:23: note: in expansion of macro '__trace_if'
#define if(cond, ...) __trace_if( (cond , ## __VA_ARGS__) )
^~~~~~~~~~
drivers/gpu/drm/drm_crtc_helper.c:841:3: note: in expansion of macro 'if'
if (connector->encoder && connector->encoder->crtc == crtc)
^~
drivers/gpu/drm/drm_crtc_helper.c:836:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/gpu/drm/drm_probe_helper.c: In function 'drm_kms_helper_poll_enable_locked':
drivers/gpu/drm/drm_probe_helper.c:132:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:140:2: error: implicit declaration of function 'drm_connector_list_iter_get' [-Werror=implicit-function-declaration]
drm_connector_list_iter_get(dev, &conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:141:2: error: implicit declaration of function 'drm_for_each_connector_iter' [-Werror=implicit-function-declaration]
drm_for_each_connector_iter(connector, &conn_iter) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:141:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_probe_helper.c:132:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c: In function 'output_poll_execute':
drivers/gpu/drm/drm_probe_helper.c:388:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:405:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_probe_helper.c:389:28: warning: unused variable 'old_status' [-Wunused-variable]
enum drm_connector_status old_status;
^~~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:388:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c: In function 'drm_helper_hpd_irq_event':
drivers/gpu/drm/drm_probe_helper.c:570:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:579:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_probe_helper.c:571:28: warning: unused variable 'old_status' [-Wunused-variable]
enum drm_connector_status old_status;
^~~~~~~~~~
drivers/gpu/drm/drm_probe_helper.c:570:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/gpu/drm/drm_plane_helper.c: In function 'get_connectors_for_crtc':
drivers/gpu/drm/drm_plane_helper.c:77:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_plane_helper.c:87:2: error: implicit declaration of function 'drm_connector_list_iter_get' [-Werror=implicit-function-declaration]
drm_connector_list_iter_get(dev, &conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_plane_helper.c:88:2: error: implicit declaration of function 'drm_for_each_connector_iter' [-Werror=implicit-function-declaration]
drm_for_each_connector_iter(connector, &conn_iter) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_plane_helper.c:88:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_plane_helper.c:77:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/gpu/drm/drm_atomic_helper.c: In function 'handle_conflicting_encoders':
drivers/gpu/drm/drm_atomic_helper.c:97:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:148:2: error: implicit declaration of function 'drm_connector_list_iter_get' [-Werror=implicit-function-declaration]
drm_connector_list_iter_get(state->dev, &conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:149:2: error: implicit declaration of function 'drm_for_each_connector_iter' [-Werror=implicit-function-declaration]
drm_for_each_connector_iter(connector, &conn_iter) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:149:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_atomic_helper.c:98:22: warning: unused variable 'encoder' [-Wunused-variable]
struct drm_encoder *encoder;
^~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:97:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c: In function 'drm_atomic_helper_disable_all':
drivers/gpu/drm/drm_atomic_helper.c:2452:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:2462:48: error: expected ';' before '{' token
drm_for_each_connector_iter(conn, &conn_iter) {
^
drivers/gpu/drm/drm_atomic_helper.c:2480:2: error: implicit declaration of function 'drm_connector_list_iter_put' [-Werror=implicit-function-declaration]
drm_connector_list_iter_put(&conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:2479:1: warning: label 'free' defined but not used [-Wunused-label]
free:
^~~~
drivers/gpu/drm/drm_atomic_helper.c:2452:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c: In function 'drm_atomic_helper_connector_dpms':
drivers/gpu/drm/drm_atomic_helper.c:2853:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:2882:57: error: expected ';' before '{' token
drm_for_each_connector_iter(tmp_connector, &conn_iter) {
^
drivers/gpu/drm/drm_atomic_helper.c:2853:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c: In function 'drm_atomic_helper_duplicate_state':
drivers/gpu/drm/drm_atomic_helper.c:3269:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_atomic_helper.c:3301:48: error: expected ';' before '{' token
drm_for_each_connector_iter(conn, &conn_iter) {
^
drivers/gpu/drm/drm_atomic_helper.c:3269:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/gpu/drm/drm_modeset_helper.c: In function 'drm_helper_move_panel_connectors_to_head':
drivers/gpu/drm/drm_modeset_helper.c:51:33: error: 'struct drm_mode_config' has no member named 'connector_list_lock'; did you mean 'connector_list'?
spin_lock_irq(&dev->mode_config.connector_list_lock);
^
drivers/gpu/drm/drm_modeset_helper.c:61:35: error: 'struct drm_mode_config' has no member named 'connector_list_lock'; did you mean 'connector_list'?
spin_unlock_irq(&dev->mode_config.connector_list_lock);
^
--
drivers/gpu/drm/drm_fb_helper.c: In function 'drm_fb_helper_single_add_all_connectors':
drivers/gpu/drm/drm_fb_helper.c:123:33: error: storage size of 'conn_iter' isn't known
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
drivers/gpu/drm/drm_fb_helper.c:130:2: error: implicit declaration of function 'drm_connector_list_iter_get' [-Werror=implicit-function-declaration]
drm_connector_list_iter_get(dev, &conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_fb_helper.c:131:2: error: implicit declaration of function 'drm_for_each_connector_iter' [-Werror=implicit-function-declaration]
drm_for_each_connector_iter(connector, &conn_iter) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_fb_helper.c:131:53: error: expected ';' before '{' token
drm_for_each_connector_iter(connector, &conn_iter) {
^
drivers/gpu/drm/drm_fb_helper.c:151:2: error: implicit declaration of function 'drm_connector_list_iter_put' [-Werror=implicit-function-declaration]
drm_connector_list_iter_put(&conn_iter);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_fb_helper.c:150:1: warning: label 'out' defined but not used [-Wunused-label]
out:
^~~
drivers/gpu/drm/drm_fb_helper.c:139:1: warning: label 'fail' defined but not used [-Wunused-label]
fail:
^~~~
drivers/gpu/drm/drm_fb_helper.c:123:33: warning: unused variable 'conn_iter' [-Wunused-variable]
struct drm_connector_list_iter conn_iter;
^~~~~~~~~
cc1: some warnings being treated as errors
vim +91 drivers/gpu/drm/drm_crtc_helper.c
26 * Keith Packard
27 * Eric Anholt <eric@xxxxxxxxxx>
28 * Dave Airlie <airlied@xxxxxxxx>
29 * Jesse Barnes <jesse.barnes@xxxxxxxxx>
30 */
31
> 32 #include <linux/kernel.h>
33 #include <linux/export.h>
34 #include <linux/moduleparam.h>
35
36 #include <drm/drmP.h>
37 #include <drm/drm_atomic.h>
38 #include <drm/drm_crtc.h>
39 #include <drm/drm_fourcc.h>
40 #include <drm/drm_crtc_helper.h>
41 #include <drm/drm_fb_helper.h>
42 #include <drm/drm_plane_helper.h>
43 #include <drm/drm_atomic_helper.h>
44 #include <drm/drm_edid.h>
45
46 /**
47 * DOC: overview
48 *
49 * The CRTC modeset helper library provides a default set_config implementation
50 * in drm_crtc_helper_set_config(). Plus a few other convenience functions using
51 * the same callbacks which drivers can use to e.g. restore the modeset
52 * configuration on resume with drm_helper_resume_force_mode().
53 *
54 * Note that this helper library doesn't track the current power state of CRTCs
55 * and encoders. It can call callbacks like ->dpms() even though the hardware is
56 * already in the desired state. This deficiency has been fixed in the atomic
57 * helpers.
58 *
59 * The driver callbacks are mostly compatible with the atomic modeset helpers,
60 * except for the handling of the primary plane: Atomic helpers require that the
61 * primary plane is implemented as a real standalone plane and not directly tied
62 * to the CRTC state. For easier transition this library provides functions to
63 * implement the old semantics required by the CRTC helpers using the new plane
64 * and atomic helper callbacks.
65 *
66 * Drivers are strongly urged to convert to the atomic helpers (by way of first
67 * converting to the plane helpers). New drivers must not use these functions
68 * but need to implement the atomic interface instead, potentially using the
69 * atomic helpers for that.
70 *
71 * These legacy modeset helpers use the same function table structures as
72 * all other modesetting helpers. See the documentation for struct
73 * &drm_crtc_helper_funcs, struct &drm_encoder_helper_funcs and struct
74 * &drm_connector_helper_funcs.
75 */
76
77 /**
78 * drm_helper_encoder_in_use - check if a given encoder is in use
79 * @encoder: encoder to check
80 *
81 * Checks whether @encoder is with the current mode setting output configuration
82 * in use by any connector. This doesn't mean that it is actually enabled since
83 * the DPMS state is tracked separately.
84 *
85 * Returns:
86 * True if @encoder is used, false otherwise.
87 */
88 bool drm_helper_encoder_in_use(struct drm_encoder *encoder)
89 {
90 struct drm_connector *connector;
> 91 struct drm_connector_list_iter conn_iter;
92 struct drm_device *dev = encoder->dev;
93
94 /*
95 * We can expect this mutex to be locked if we are not panicking.
96 * Locking is currently fubar in the panic handler.
97 */
98 if (!oops_in_progress) {
99 WARN_ON(!mutex_is_locked(&dev->mode_config.mutex));
100 WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex));
101 }
102
103
> 104 drm_connector_list_iter_get(dev, &conn_iter);
> 105 drm_for_each_connector_iter(connector, &conn_iter) {
106 if (connector->encoder == encoder) {
107 drm_connector_list_iter_put(&conn_iter);
108 return true;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation