Re: linux-next: manual merge of the amdgpu tree with Linus' tree

Stephen Rothwell
2019-12-12T00:11:26Z

[-- Attachment #1: Type: text/plain, Size: 9478 bytes --]

Hi all,

Just cc'ing Dave.

On Thu, 12 Dec 2019 11:03:37 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> Today's linux-next merge of the amdgpu tree got conflicts in:
>
> drivers/gpu/drm/amd/display/dc/calcs/Makefile
> drivers/gpu/drm/amd/display/dc/dcn20/Makefile
> drivers/gpu/drm/amd/display/dc/dcn21/Makefile
> drivers/gpu/drm/amd/display/dc/dml/Makefile
> drivers/gpu/drm/amd/display/dc/dsc/Makefile
>
> between commits:
>
> c868868f6b6a ("drm/amdgpu: fix stack alignment ABI mismatch for Clang")
> 00db297106e8 ("drm/amdgpu: fix stack alignment ABI mismatch for GCC 7.1+")
>
> from Linus' tree and commit:
>
> 86462415d58d ("amdgpu: Enable initial DCN support on POWER")
>
> from the amdgpu tree.
>
> I fixed it up (I think .. see below) and can carry the fix as
> necessary. This is now fixed as far as linux-next is concerned, but any
> non trivial conflicts should be mentioned to your upstream maintainer
> when your tree is submitted for merging. You may also want to consider
> cooperating with the maintainer of the conflicting tree to minimise any
> particularly complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc drivers/gpu/drm/amd/display/dc/calcs/Makefile
> index 26c6d735cdc7,4d3006bd4337..000000000000
> --- a/drivers/gpu/drm/amd/display/dc/calcs/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/calcs/Makefile
> @@@ -24,22 -25,23 +25,30 @@@
> # It calculates Bandwidth and Watermarks values for HW programming
> #
>
> -ifneq ($(call cc-option, -mpreferred-stack-boundary=4),)
> - cc_stack_align := -mpreferred-stack-boundary=4
> -else ifneq ($(call cc-option, -mstack-alignment=16),)
> - cc_stack_align := -mstack-alignment=16
> ++ifdef CONFIG_X86
> +calcs_ccflags := -mhard-float -msse
> + endif
> +
> -ifdef CONFIG_X86
> -calcs_ccflags := -mhard-float -msse $(cc_stack_align)
> ++ifdef CONFIG_PPC64
> ++calcs_ccflags := -mhard-float -maltivec
> ++endif
>
> -ifdef CONFIG_CC_IS_CLANG
> -calcs_ccflags += -msse2
> +ifdef CONFIG_CC_IS_GCC
> +ifeq ($(call cc-ifversion, -lt, 0701, y), y)
> +IS_OLD_GCC = 1
> endif
> endif
>
> -ifdef CONFIG_PPC64
> -calcs_ccflags := -mhard-float -maltivec $(cc_stack_align)
> +ifdef IS_OLD_GCC
> +# Stack alignment mismatch, proceed with caution.
> +# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
> +# (8B stack alignment).
> +calcs_ccflags += -mpreferred-stack-boundary=4
> +else
> ++ifdef CONFIG_X86
> +calcs_ccflags += -msse2
> +endif
> + endif
>
> CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calcs.o := $(calcs_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/calcs/dcn_calc_auto.o := $(calcs_ccflags)
> diff --cc drivers/gpu/drm/amd/display/dc/dcn20/Makefile
> index 63f3bddba7da,07f652d40f86..000000000000
> --- a/drivers/gpu/drm/amd/display/dc/dcn20/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dcn20/Makefile
> @@@ -6,26 -7,25 +7,32 @@@ DCN20 = dcn20_resource.o dcn20_init.o d
> dcn20_stream_encoder.o dcn20_link_encoder.o dcn20_dccg.o \
> dcn20_vmid.o dcn20_dwb.o dcn20_dwb_scl.o
>
> - ifdef CONFIG_DRM_AMD_DC_DSC_SUPPORT
> DCN20 += dcn20_dsc.o
> - endif
>
> -ifneq ($(call cc-option, -mpreferred-stack-boundary=4),)
> - cc_stack_align := -mpreferred-stack-boundary=4
> -else ifneq ($(call cc-option, -mstack-alignment=16),)
> - cc_stack_align := -mstack-alignment=16
> ++ifdef CONFIG_X86
> +CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mhard-float -msse
> + endif
> +
> -ifdef CONFIG_X86
> -CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mhard-float -msse $(cc_stack_align)
> ++ifdef CONFIG_PPC64
> ++CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mhard-float -maltivec
> ++endif
>
> -ifdef CONFIG_CC_IS_CLANG
> -CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o += -msse2
> +ifdef CONFIG_CC_IS_GCC
> +ifeq ($(call cc-ifversion, -lt, 0701, y), y)
> +IS_OLD_GCC = 1
> endif
> endif
>
> -ifdef CONFIG_PPC64
> -CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o := -mhard-float -maltivec $(cc_stack_align)
> +ifdef IS_OLD_GCC
> +# Stack alignment mismatch, proceed with caution.
> +# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
> +# (8B stack alignment).
> +CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o += -mpreferred-stack-boundary=4
> +else
> ++ifdef CONFIG_X86
> +CFLAGS_$(AMDDALPATH)/dc/dcn20/dcn20_resource.o += -msse2
> +endif
> + endif
>
> AMD_DAL_DCN20 = $(addprefix $(AMDDALPATH)/dc/dcn20/,$(DCN20))
>
> diff --cc drivers/gpu/drm/amd/display/dc/dcn21/Makefile
> index 14113ccf498d,041464d001bd..000000000000
> --- a/drivers/gpu/drm/amd/display/dc/dcn21/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dcn21/Makefile
> @@@ -1,24 -2,26 +2,33 @@@
> #
> # Makefile for DCN21.
>
> - DCN21 = dcn21_hubp.o dcn21_hubbub.o dcn21_resource.o dcn21_hwseq.o dcn21_link_encoder.o
> + DCN21 = dcn21_init.o dcn21_hubp.o dcn21_hubbub.o dcn21_resource.o \
> + dcn21_hwseq.o dcn21_link_encoder.o
>
> -ifneq ($(call cc-option, -mpreferred-stack-boundary=4),)
> - cc_stack_align := -mpreferred-stack-boundary=4
> -else ifneq ($(call cc-option, -mstack-alignment=16),)
> - cc_stack_align := -mstack-alignment=16
> ++ifdef CONFIG_X86
> +CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mhard-float -msse
> + endif
> +
> -ifdef CONFIG_X86
> -CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mhard-float -msse $(cc_stack_align)
> ++ifdef CONFIG_PPC64
> ++CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mhard-float -maltivec
> ++endif
>
> -ifdef CONFIG_CC_IS_CLANG
> -CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o += -msse2
> +ifdef CONFIG_CC_IS_GCC
> +ifeq ($(call cc-ifversion, -lt, 0701, y), y)
> +IS_OLD_GCC = 1
> endif
> endif
>
> -ifdef CONFIG_PPC64
> -CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o := -mhard-float -maltivec $(cc_stack_align)
> +ifdef IS_OLD_GCC
> +# Stack alignment mismatch, proceed with caution.
> +# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
> +# (8B stack alignment).
> +CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o += -mpreferred-stack-boundary=4
> +else
> ++ifdef CONFIG_X86
> +CFLAGS_$(AMDDALPATH)/dc/dcn21/dcn21_resource.o += -msse2
> +endif
> + endif
>
> AMD_DAL_DCN21 = $(addprefix $(AMDDALPATH)/dc/dcn21/,$(DCN21))
>
> diff --cc drivers/gpu/drm/amd/display/dc/dml/Makefile
> index 8df251626e22,82c8978c81ab..000000000000
> --- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
> @@@ -24,22 -25,23 +25,30 @@@
> # It provides the general basic services required by other DAL
> # subcomponents.
>
> -ifneq ($(call cc-option, -mpreferred-stack-boundary=4),)
> - cc_stack_align := -mpreferred-stack-boundary=4
> -else ifneq ($(call cc-option, -mstack-alignment=16),)
> - cc_stack_align := -mstack-alignment=16
> ++ifdef CONFIG_X86
> +dml_ccflags := -mhard-float -msse
> + endif
> +
> -ifdef CONFIG_X86
> -dml_ccflags := -mhard-float -msse $(cc_stack_align)
> ++ifdef CONFIG_PPC64
> ++dml_ccflags := -mhard-float -maltivec
> ++endif
>
> -ifdef CONFIG_CC_IS_CLANG
> -dml_ccflags += -msse2
> +ifdef CONFIG_CC_IS_GCC
> +ifeq ($(call cc-ifversion, -lt, 0701, y), y)
> +IS_OLD_GCC = 1
> endif
> endif
>
> -ifdef CONFIG_PPC64
> -dml_ccflags := -mhard-float -maltivec $(cc_stack_align)
> +ifdef IS_OLD_GCC
> +# Stack alignment mismatch, proceed with caution.
> +# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
> +# (8B stack alignment).
> +dml_ccflags += -mpreferred-stack-boundary=4
> +else
> ++ifdef CONFIG_X86
> +dml_ccflags += -msse2
> +endif
> + endif
>
> CFLAGS_$(AMDDALPATH)/dc/dml/display_mode_lib.o := $(dml_ccflags)
>
> diff --cc drivers/gpu/drm/amd/display/dc/dsc/Makefile
> index 970737217e53,08edd919ec82..000000000000
> --- a/drivers/gpu/drm/amd/display/dc/dsc/Makefile
> +++ b/drivers/gpu/drm/amd/display/dc/dsc/Makefile
> @@@ -1,22 -2,23 +2,30 @@@
> #
> # Makefile for the 'dsc' sub-component of DAL.
>
> -ifneq ($(call cc-option, -mpreferred-stack-boundary=4),)
> - cc_stack_align := -mpreferred-stack-boundary=4
> -else ifneq ($(call cc-option, -mstack-alignment=16),)
> - cc_stack_align := -mstack-alignment=16
> ++ifdef CONFIG_X86
> +dsc_ccflags := -mhard-float -msse
> + endif
> +
> -ifdef CONFIG_X86
> -dsc_ccflags := -mhard-float -msse $(cc_stack_align)
> ++ifdef CONFIG_PPC64
> ++dsc_ccflags := -mhard-float -maltivec
> ++endif
>
> -ifdef CONFIG_CC_IS_CLANG
> -dsc_ccflags += -msse2
> +ifdef CONFIG_CC_IS_GCC
> +ifeq ($(call cc-ifversion, -lt, 0701, y), y)
> +IS_OLD_GCC = 1
> endif
> endif
>
> -ifdef CONFIG_PPC64
> -dsc_ccflags := -mhard-float -maltivec $(cc_stack_align)
> +ifdef IS_OLD_GCC
> +# Stack alignment mismatch, proceed with caution.
> +# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
> +# (8B stack alignment).
> +dsc_ccflags += -mpreferred-stack-boundary=4
> +else
> ++ifdef CONFIG_X86
> +dsc_ccflags += -msse2
> +endif
> + endif
>
> CFLAGS_$(AMDDALPATH)/dc/dsc/rc_calc.o := $(dsc_ccflags)
> CFLAGS_$(AMDDALPATH)/dc/dsc/rc_calc_dpi.o := $(dsc_ccflags)