mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-26 14:17:26 -04:00
drm/amdgpu: Add API to get numa information of XCC
Add interface to get numa information of ACPI XCC object. The interface uses logical id to identify an XCC. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Le Ma <le.ma@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
1cc823011a
commit
fa0497c34e
2 changed files with 40 additions and 6 deletions
|
@ -1383,6 +1383,12 @@ struct amdgpu_afmt_acr amdgpu_afmt_acr(uint32_t clock);
|
||||||
|
|
||||||
/* amdgpu_acpi.c */
|
/* amdgpu_acpi.c */
|
||||||
|
|
||||||
|
struct amdgpu_numa_info {
|
||||||
|
uint64_t size;
|
||||||
|
int pxm;
|
||||||
|
int nid;
|
||||||
|
};
|
||||||
|
|
||||||
/* ATCS Device/Driver State */
|
/* ATCS Device/Driver State */
|
||||||
#define AMDGPU_ATCS_PSC_DEV_STATE_D0 0
|
#define AMDGPU_ATCS_PSC_DEV_STATE_D0 0
|
||||||
#define AMDGPU_ATCS_PSC_DEV_STATE_D3_HOT 3
|
#define AMDGPU_ATCS_PSC_DEV_STATE_D3_HOT 3
|
||||||
|
@ -1402,6 +1408,8 @@ int amdgpu_acpi_smart_shift_update(struct drm_device *dev, enum amdgpu_ss ss_sta
|
||||||
int amdgpu_acpi_pcie_notify_device_ready(struct amdgpu_device *adev);
|
int amdgpu_acpi_pcie_notify_device_ready(struct amdgpu_device *adev);
|
||||||
int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset,
|
int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset,
|
||||||
u64 *tmr_size);
|
u64 *tmr_size);
|
||||||
|
int amdgpu_acpi_get_mem_info(struct amdgpu_device *adev, int xcc_id,
|
||||||
|
struct amdgpu_numa_info *numa_info);
|
||||||
|
|
||||||
void amdgpu_acpi_get_backlight_caps(struct amdgpu_dm_backlight_caps *caps);
|
void amdgpu_acpi_get_backlight_caps(struct amdgpu_dm_backlight_caps *caps);
|
||||||
bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev);
|
bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev);
|
||||||
|
@ -1414,6 +1422,12 @@ static inline int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev,
|
||||||
{
|
{
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
static inline int amdgpu_acpi_get_mem_info(struct amdgpu_device *adev,
|
||||||
|
int xcc_id,
|
||||||
|
struct amdgpu_numa_info *numa_info)
|
||||||
|
{
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
static inline void amdgpu_acpi_fini(struct amdgpu_device *adev) { }
|
static inline void amdgpu_acpi_fini(struct amdgpu_device *adev) { }
|
||||||
static inline bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) { return false; }
|
static inline bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev) { return false; }
|
||||||
static inline void amdgpu_acpi_detect(void) { }
|
static inline void amdgpu_acpi_detect(void) { }
|
||||||
|
|
|
@ -54,12 +54,6 @@ static const guid_t amd_xcc_dsm_guid = GUID_INIT(0x8267f5d5, 0xa556, 0x44f2,
|
||||||
|
|
||||||
#define AMD_XCC_MAX_HID 24
|
#define AMD_XCC_MAX_HID 24
|
||||||
|
|
||||||
struct amdgpu_numa_info {
|
|
||||||
uint64_t size;
|
|
||||||
int pxm;
|
|
||||||
int nid;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct xarray numa_info_xa;
|
struct xarray numa_info_xa;
|
||||||
|
|
||||||
/* Encapsulates the XCD acpi object information */
|
/* Encapsulates the XCD acpi object information */
|
||||||
|
@ -1156,6 +1150,32 @@ int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int amdgpu_acpi_get_mem_info(struct amdgpu_device *adev, int xcc_id,
|
||||||
|
struct amdgpu_numa_info *numa_info)
|
||||||
|
{
|
||||||
|
struct amdgpu_acpi_dev_info *dev_info;
|
||||||
|
struct amdgpu_acpi_xcc_info *xcc_info;
|
||||||
|
u16 bdf;
|
||||||
|
|
||||||
|
if (!numa_info)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
bdf = (adev->pdev->bus->number << 8) | adev->pdev->devfn;
|
||||||
|
dev_info = amdgpu_acpi_get_dev(bdf);
|
||||||
|
if (!dev_info)
|
||||||
|
return -ENOENT;
|
||||||
|
|
||||||
|
list_for_each_entry(xcc_info, &dev_info->xcc_list, list) {
|
||||||
|
if (xcc_info->phy_id == xcc_id) {
|
||||||
|
memcpy(numa_info, xcc_info->numa_info,
|
||||||
|
sizeof(*numa_info));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -ENOENT;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* amdgpu_acpi_event - handle notify events
|
* amdgpu_acpi_event - handle notify events
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue