Am 05.09.2018 um 17:28 schrieb shaoyunl: > From: Alex Deucher <alexander.deucher at amd.com> > > Used to populate the xgmi info on vega20. > > v2: PF_MAX_REGION is val - 1 (Ray) > > Acked-by: Huang Rui <ray.huang at amd.com> > Acked-by: Slava Abramov <slava.abramov at amd.com> > Reviewed-by :Shaoyun liu <Shaoyun.liu at amd.com> > Signed-off-by: Alex Deucher <alexander.deucher at amd.com> Acked-by: Christian König <christian.koenig at amd.com> > > Change-Id: Ia7b7f112880e69cdbcf73a8abf04cd6ef303940c > --- > drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- > drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c | 50 ++++++++++++++++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.h | 29 ++++++++++++++++++ > 3 files changed, 80 insertions(+), 1 deletion(-) > create mode 100644 drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c > create mode 100644 drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.h > > diff --git a/drivers/gpu/drm/amd/amdgpu/Makefile b/drivers/gpu/drm/amd/amdgpu/Makefile > index 847536b..e83ba7b 100644 > --- a/drivers/gpu/drm/amd/amdgpu/Makefile > +++ b/drivers/gpu/drm/amd/amdgpu/Makefile > @@ -74,7 +74,7 @@ amdgpu-y += \ > amdgpu-y += \ > gmc_v7_0.o \ > gmc_v8_0.o \ > - gfxhub_v1_0.o mmhub_v1_0.o gmc_v9_0.o > + gfxhub_v1_0.o mmhub_v1_0.o gmc_v9_0.o gfxhub_v1_1.o > > # add IH block > amdgpu-y += \ > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c > new file mode 100644 > index 0000000..d4170cb > --- /dev/null > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.c > @@ -0,0 +1,50 @@ > +/* > + * Copyright 2018 Advanced Micro Devices, Inc. > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + * > + */ > +#include "amdgpu.h" > +#include "gfxhub_v1_1.h" > + > +#include "gc/gc_9_2_1_offset.h" > +#include "gc/gc_9_2_1_sh_mask.h" > + > +#include "soc15_common.h" > + > +int gfxhub_v1_1_get_xgmi_info(struct amdgpu_device *adev) > +{ > + u32 xgmi_lfb_cntl = RREG32_SOC15(GC, 0, mmMC_VM_XGMI_LFB_CNTL); > + u32 max_region = > + REG_GET_FIELD(xgmi_lfb_cntl, MC_VM_XGMI_LFB_CNTL, PF_MAX_REGION); > + > + /* PF_MAX_REGION=0 means xgmi is disabled */ > + if (max_region) { > + adev->gmc.xgmi.num_physical_nodes = max_region + 1; > + if (adev->gmc.xgmi.num_physical_nodes > 4) > + return -EINVAL; > + > + adev->gmc.xgmi.physical_node_id = > + REG_GET_FIELD(xgmi_lfb_cntl, MC_VM_XGMI_LFB_CNTL, PF_LFB_REGION); > + if (adev->gmc.xgmi.physical_node_id > 3) > + return -EINVAL; > + } > + > + return 0; > +} > diff --git a/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.h b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.h > new file mode 100644 > index 0000000..d753cf2 > --- /dev/null > +++ b/drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.h > @@ -0,0 +1,29 @@ > +/* > + * Copyright 2018 Advanced Micro Devices, Inc. > + * > + * Permission is hereby granted, free of charge, to any person obtaining a > + * copy of this software and associated documentation files (the "Software"), > + * to deal in the Software without restriction, including without limitation > + * the rights to use, copy, modify, merge, publish, distribute, sublicense, > + * and/or sell copies of the Software, and to permit persons to whom the > + * Software is furnished to do so, subject to the following conditions: > + * > + * The above copyright notice and this permission notice shall be included in > + * all copies or substantial portions of the Software. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR > + * OTHER DEALINGS IN THE SOFTWARE. > + * > + */ > + > +#ifndef __GFXHUB_V1_1_H__ > +#define __GFXHUB_V1_1_H__ > + > +int gfxhub_v1_1_get_xgmi_info(struct amdgpu_device *adev); > + > +#endif