linux-next: build failure after merge of the drm-misc tree

From: Stephen Rothwell
Date: Mon Jan 07 2019 - 19:12:47 EST


Hi all,

After merging the drm-misc tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c: In function 'amdgpu_dm_mode_config_init':
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1695:30: error: passing argument 1 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
drm_atomic_private_obj_init(&adev->dm.atomic_obj,
^~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_dp_mst_helper.h:27,
from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
include/drm/drm_atomic.h:437:53: note: expected 'struct drm_device *' but argument is of type 'struct drm_private_obj *'
void drm_atomic_private_obj_init(struct drm_device *dev,
~~~~~~~~~~~~~~~~~~~^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1696:9: error: passing argument 2 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
&state->base,
^~~~~~~~~~~~
In file included from include/drm/drm_dp_mst_helper.h:27,
from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
include/drm/drm_atomic.h:438:30: note: expected 'struct drm_private_obj *' but argument is of type 'struct drm_private_state *'
struct drm_private_obj *obj,
~~~~~~~~~~~~~~~~~~~~~~~~^~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1697:9: error: passing argument 3 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types]
&dm_atomic_state_funcs);
^~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_dp_mst_helper.h:27,
from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
include/drm/drm_atomic.h:439:32: note: expected 'struct drm_private_state *' but argument is of type 'struct drm_private_state_funcs *'
struct drm_private_state *state,
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1695:2: error: too few arguments to function 'drm_atomic_private_obj_init'
drm_atomic_private_obj_init(&adev->dm.atomic_obj,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/drm/drm_dp_mst_helper.h:27,
from drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h:46,
from drivers/gpu/drm/amd/amdgpu/amdgpu.h:57,
from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:34:
include/drm/drm_atomic.h:437:6: note: declared here
void drm_atomic_private_obj_init(struct drm_device *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~~

Caused by commit

b962a12050a3 ("drm/atomic: integrate modeset lock with private objects")

interacting with commit

eb3dc8978596 ("drm/amd/display: Use private obj helpers for dm_atomic_state")

from Linus' tree (merged during the merge window).

Its not obvious how to fix this up, so I have used the drm-misc tree
from next-20190107 for today.

--
Cheers,
Stephen Rothwell