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

From: Timothy Pearson <[email-masked]>
Date: Wed, 11 Dec 2019 18:16:27 -0600 (CST)

The new version looks OK from my side.

----- Original Message -----
> From: "Stephen Rothwell" <[email-masked]>
> To: "Alex Deucher" <[email-masked]>
> Cc: "Linux Next Mailing List" <[email-masked]>, "linux-kernel" <[email-masked]>, "Nick
> Desaulniers" <[email-masked]>, "Timothy Pearson" <[email-masked]>
> Sent: Wednesday, December 11, 2019 6:03:37 PM
> Subject: linux-next: manual merge of the amdgpu tree with Linus' tree

> Hi all,
> 
> 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)