Message ID | 20181212114413.30448-1-mika.kuoppala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/amd: Compile fix for amdgpu_dm.c | expand |
On Wed, 12 Dec 2018 13:44:13 +0200 Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote: > Fix compilation issue with CONFIG_DRM_AMDGPU on: > 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:1666:30: error: passing argument 1 of ‘drm_atomic_private_obj_init’ from incompatible pointer type > > Fixes: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") > Cc: Rob Clark <robdclark@gmail.com> > Cc: Boris Brezillon <boris.brezillon@bootlin.com> Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com> And sorry for the mess :-/. > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 1691864bf59b..fd3ed2ce9cb1 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -1663,7 +1663,8 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) > > dc_resource_state_copy_construct_current(adev->dm.dc, state->context); > > - drm_atomic_private_obj_init(&adev->dm.atomic_obj, > + drm_atomic_private_obj_init(adev->ddev, > + &adev->dm.atomic_obj, > &state->base, > &dm_atomic_state_funcs); >
On Wed, 12 Dec 2018 13:44:13 +0200 Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote: > Fix compilation issue with CONFIG_DRM_AMDGPU on: > 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:1666:30: error: passing argument 1 of ‘drm_atomic_private_obj_init’ from incompatible pointer type > > Fixes: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") > Cc: Rob Clark <robdclark@gmail.com> > Cc: Boris Brezillon <boris.brezillon@bootlin.com> > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 1691864bf59b..fd3ed2ce9cb1 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -1663,7 +1663,8 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) > > dc_resource_state_copy_construct_current(adev->dm.dc, state->context); > > - drm_atomic_private_obj_init(&adev->dm.atomic_obj, > + drm_atomic_private_obj_init(adev->ddev, > + &adev->dm.atomic_obj, > &state->base, > &dm_atomic_state_funcs); Hm, looks like drm-misc-next does not have this call to drm_atomic_private_obj_init() which explains why I didn't patch the file.
Boris Brezillon <boris.brezillon@bootlin.com> writes: > On Wed, 12 Dec 2018 13:44:13 +0200 > Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote: > >> Fix compilation issue with CONFIG_DRM_AMDGPU on: >> 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:1666:30: error: passing argument 1 of ‘drm_atomic_private_obj_init’ from incompatible pointer type >> >> Fixes: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") >> Cc: Rob Clark <robdclark@gmail.com> >> Cc: Boris Brezillon <boris.brezillon@bootlin.com> >> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> >> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> >> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> >> --- >> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c >> index 1691864bf59b..fd3ed2ce9cb1 100644 >> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c >> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c >> @@ -1663,7 +1663,8 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) >> >> dc_resource_state_copy_construct_current(adev->dm.dc, state->context); >> >> - drm_atomic_private_obj_init(&adev->dm.atomic_obj, >> + drm_atomic_private_obj_init(adev->ddev, >> + &adev->dm.atomic_obj, >> &state->base, >> &dm_atomic_state_funcs); > > Hm, looks like drm-misc-next does not have this call to > drm_atomic_private_obj_init() which explains why I didn't patch the > file. Hmm, merge conflict it is then...sorry for pointing at wrong direction. -Mika
On Wed, 12 Dec 2018 13:54:48 +0100 Boris Brezillon <boris.brezillon@bootlin.com> wrote: > On Wed, 12 Dec 2018 13:44:13 +0200 > Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote: > > > Fix compilation issue with CONFIG_DRM_AMDGPU on: > > 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:1666:30: error: passing argument 1 of ‘drm_atomic_private_obj_init’ from incompatible pointer type > > > > Fixes: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") > > Cc: Rob Clark <robdclark@gmail.com> > > Cc: Boris Brezillon <boris.brezillon@bootlin.com> > > Cc: Daniel Vetter <daniel.vetter@ffwll.ch> > > Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> > > Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> > > --- > > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > index 1691864bf59b..fd3ed2ce9cb1 100644 > > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > > @@ -1663,7 +1663,8 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) > > > > dc_resource_state_copy_construct_current(adev->dm.dc, state->context); > > > > - drm_atomic_private_obj_init(&adev->dm.atomic_obj, > > + drm_atomic_private_obj_init(adev->ddev, > > + &adev->dm.atomic_obj, > > &state->base, > > &dm_atomic_state_funcs); > > Hm, looks like drm-misc-next does not have this call to > drm_atomic_private_obj_init() which explains why I didn't patch the > file. Looks like this call to drm_atomic_private_obj_init() was introduced by eb3dc8978596 ("drm/amd/display: Use private obj helpers for dm_atomic_state") which is present in drm-next. Dave, Daniel, Sean, Marteen, not sure how you want to fix that. Should we merge drm-next in drm-misc-next and fix the conflict there, or should Dave fix it when merging drm-misc-next in drm-next? Another option would be to simply revert the change and apply it in the next release.
Hi Mika, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on next-20181213] [cannot apply to v4.20-rc6] [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/Mika-Kuoppala/drm-amd-Compile-fix-for-amdgpu_dm-c/20181213-062039 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=arm All errors (new ones prefixed by >>): 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:1666: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->ddev, ^~~~ In file included from include/drm/drm_dp_mst_helper.h:27:0, 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:31: include/drm/drm_atomic.h:403:6: note: expected 'struct drm_private_obj *' but argument is of type 'struct drm_device *' void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1667:9: error: passing argument 2 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types] &adev->dm.atomic_obj, ^ In file included from include/drm/drm_dp_mst_helper.h:27:0, 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:31: include/drm/drm_atomic.h:403:6: note: expected 'struct drm_private_state *' but argument is of type 'struct drm_private_obj *' void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1668:9: error: passing argument 3 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:0, 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:31: include/drm/drm_atomic.h:403:6: note: expected 'const struct drm_private_state_funcs *' but argument is of type 'struct drm_private_state *' void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1666:2: error: too many arguments to function 'drm_atomic_private_obj_init' drm_atomic_private_obj_init(adev->ddev, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/drm/drm_dp_mst_helper.h:27:0, 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:31: include/drm/drm_atomic.h:403:6: note: declared here void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/drm_atomic_private_obj_init +1666 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c 1631 1632 static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) 1633 { 1634 struct dm_atomic_state *state; 1635 int r; 1636 1637 adev->mode_info.mode_config_initialized = true; 1638 1639 adev->ddev->mode_config.funcs = (void *)&amdgpu_dm_mode_funcs; 1640 adev->ddev->mode_config.helper_private = &amdgpu_dm_mode_config_helperfuncs; 1641 1642 adev->ddev->mode_config.max_width = 16384; 1643 adev->ddev->mode_config.max_height = 16384; 1644 1645 adev->ddev->mode_config.preferred_depth = 24; 1646 adev->ddev->mode_config.prefer_shadow = 1; 1647 /* indicates support for immediate flip */ 1648 adev->ddev->mode_config.async_page_flip = true; 1649 1650 adev->ddev->mode_config.fb_base = adev->gmc.aper_base; 1651 1652 drm_modeset_lock_init(&adev->dm.atomic_obj_lock); 1653 1654 state = kzalloc(sizeof(*state), GFP_KERNEL); 1655 if (!state) 1656 return -ENOMEM; 1657 1658 state->context = dc_create_state(); 1659 if (!state->context) { 1660 kfree(state); 1661 return -ENOMEM; 1662 } 1663 1664 dc_resource_state_copy_construct_current(adev->dm.dc, state->context); 1665 > 1666 drm_atomic_private_obj_init(adev->ddev, 1667 &adev->dm.atomic_obj, 1668 &state->base, 1669 &dm_atomic_state_funcs); 1670 1671 r = amdgpu_display_modeset_create_props(adev); 1672 if (r) 1673 return r; 1674 1675 return 0; 1676 } 1677 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Mika, Thank you for the patch! Yet something to improve: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on next-20181219] [cannot apply to v4.20-rc7] [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/Mika-Kuoppala/drm-amd-Compile-fix-for-amdgpu_dm-c/20181213-062039 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: sparc64-allyesconfig (attached as .config) compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=sparc64 All errors (new ones prefixed by >>): 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:1666: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->ddev, ^~~~ In file included from include/drm/drm_dp_mst_helper.h:27:0, 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:31: include/drm/drm_atomic.h:403:6: note: expected 'struct drm_private_obj *' but argument is of type 'struct drm_device *' void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1667:9: error: passing argument 2 of 'drm_atomic_private_obj_init' from incompatible pointer type [-Werror=incompatible-pointer-types] &adev->dm.atomic_obj, ^ In file included from include/drm/drm_dp_mst_helper.h:27:0, 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:31: include/drm/drm_atomic.h:403:6: note: expected 'struct drm_private_state *' but argument is of type 'struct drm_private_obj *' void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1668:9: error: passing argument 3 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:0, 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:31: include/drm/drm_atomic.h:403:6: note: expected 'const struct drm_private_state_funcs *' but argument is of type 'struct drm_private_state *' void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:1666:2: error: too many arguments to function 'drm_atomic_private_obj_init' drm_atomic_private_obj_init(adev->ddev, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/drm/drm_dp_mst_helper.h:27:0, 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:31: include/drm/drm_atomic.h:403:6: note: declared here void drm_atomic_private_obj_init(struct drm_private_obj *obj, ^~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/drm_atomic_private_obj_init +1666 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c 1631 1632 static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) 1633 { 1634 struct dm_atomic_state *state; 1635 int r; 1636 1637 adev->mode_info.mode_config_initialized = true; 1638 1639 adev->ddev->mode_config.funcs = (void *)&amdgpu_dm_mode_funcs; 1640 adev->ddev->mode_config.helper_private = &amdgpu_dm_mode_config_helperfuncs; 1641 1642 adev->ddev->mode_config.max_width = 16384; 1643 adev->ddev->mode_config.max_height = 16384; 1644 1645 adev->ddev->mode_config.preferred_depth = 24; 1646 adev->ddev->mode_config.prefer_shadow = 1; 1647 /* indicates support for immediate flip */ 1648 adev->ddev->mode_config.async_page_flip = true; 1649 1650 adev->ddev->mode_config.fb_base = adev->gmc.aper_base; 1651 1652 drm_modeset_lock_init(&adev->dm.atomic_obj_lock); 1653 1654 state = kzalloc(sizeof(*state), GFP_KERNEL); 1655 if (!state) 1656 return -ENOMEM; 1657 1658 state->context = dc_create_state(); 1659 if (!state->context) { 1660 kfree(state); 1661 return -ENOMEM; 1662 } 1663 1664 dc_resource_state_copy_construct_current(adev->dm.dc, state->context); 1665 > 1666 drm_atomic_private_obj_init(adev->ddev, 1667 &adev->dm.atomic_obj, 1668 &state->base, 1669 &dm_atomic_state_funcs); 1670 1671 r = amdgpu_display_modeset_create_props(adev); 1672 if (r) 1673 return r; 1674 1675 return 0; 1676 } 1677 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 1691864bf59b..fd3ed2ce9cb1 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -1663,7 +1663,8 @@ static int amdgpu_dm_mode_config_init(struct amdgpu_device *adev) dc_resource_state_copy_construct_current(adev->dm.dc, state->context); - drm_atomic_private_obj_init(&adev->dm.atomic_obj, + drm_atomic_private_obj_init(adev->ddev, + &adev->dm.atomic_obj, &state->base, &dm_atomic_state_funcs);
Fix compilation issue with CONFIG_DRM_AMDGPU on: 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:1666:30: error: passing argument 1 of ‘drm_atomic_private_obj_init’ from incompatible pointer type Fixes: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") Cc: Rob Clark <robdclark@gmail.com> Cc: Boris Brezillon <boris.brezillon@bootlin.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)