Commit 6e018822 authored by Lijo Lazar's avatar Lijo Lazar Committed by Alex Deucher
Browse files

drm/amdgpu: Add API to get tmr info from acpi



In certain configs, TMR information is available from ACPI. Add API to
fetch the information.

Signed-off-by: default avatarLijo Lazar <lijo.lazar@amd.com>
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4d5275ab
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1400,6 +1400,8 @@ int amdgpu_acpi_power_shift_control(struct amdgpu_device *adev,
				    u8 dev_state, bool drv_state);
int amdgpu_acpi_smart_shift_update(struct drm_device *dev, enum amdgpu_ss ss_state);
int amdgpu_acpi_pcie_notify_device_ready(struct amdgpu_device *adev);
int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset,
			     u64 *tmr_size);

void amdgpu_acpi_get_backlight_caps(struct amdgpu_dm_backlight_caps *caps);
bool amdgpu_acpi_should_gpu_reset(struct amdgpu_device *adev);
@@ -1407,6 +1409,11 @@ void amdgpu_acpi_detect(void);
void amdgpu_acpi_release(void);
#else
static inline int amdgpu_acpi_init(struct amdgpu_device *adev) { return 0; }
static inline int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev,
					   u64 *tmr_offset, u64 *tmr_size)
{
	return -EINVAL;
}
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 void amdgpu_acpi_detect(void) { }
+20 −0
Original line number Diff line number Diff line
@@ -1072,6 +1072,26 @@ static int amdgpu_acpi_enumerate_xcc(void)
	return 0;
}

int amdgpu_acpi_get_tmr_info(struct amdgpu_device *adev, u64 *tmr_offset,
			     u64 *tmr_size)
{
	struct amdgpu_acpi_dev_info *dev_info;
	u16 bdf;

	if (!tmr_offset || !tmr_size)
		return -EINVAL;

	bdf = (adev->pdev->bus->number << 8) | adev->pdev->devfn;
	dev_info = amdgpu_acpi_get_dev(bdf);
	if (!dev_info)
		return -ENOENT;

	*tmr_offset = dev_info->tmr_base;
	*tmr_size = dev_info->tmr_size;

	return 0;
}

/**
 * amdgpu_acpi_event - handle notify events
 *