diff options
| author | Thomas Gleixner <[email protected]> | 2020-06-11 15:17:57 +0200 | 
|---|---|---|
| committer | Thomas Gleixner <[email protected]> | 2020-06-11 15:17:57 +0200 | 
| commit | f77d26a9fc525286bcef3d4f98b52e17482cf49c (patch) | |
| tree | 6b179c9aa84787773cb601a14a64255e2912154b /drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h | |
| parent | b6bea24d41519e8c31e4798f1c1a3f67e540c5d0 (diff) | |
| parent | f0178fc01fe46bab6a95415f5647d1a74efcad1b (diff) | |
Merge branch 'x86/entry' into ras/core
to fixup conflicts in arch/x86/kernel/cpu/mce/core.c so MCE specific follow
up patches can be applied without creating a horrible merge conflict
afterwards.
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h | 49 | 
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h index 5db0ef86e84c..d9ae2b49a402 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.h @@ -30,6 +30,55 @@ struct cg_flag_name  	const char *name;  }; +enum amdgpu_device_attr_flags { +	ATTR_FLAG_BASIC = (1 << 0), +	ATTR_FLAG_ONEVF = (1 << 16), +}; + +#define ATTR_FLAG_TYPE_MASK	(0x0000ffff) +#define ATTR_FLAG_MODE_MASK	(0xffff0000) +#define ATTR_FLAG_MASK_ALL	(0xffffffff) + +enum amdgpu_device_attr_states { +	ATTR_STATE_UNSUPPORTED = 0, +	ATTR_STATE_SUPPORTED, +}; + +struct amdgpu_device_attr { +	struct device_attribute dev_attr; +	enum amdgpu_device_attr_flags flags; +	int (*attr_update)(struct amdgpu_device *adev, struct amdgpu_device_attr *attr, +			   uint32_t mask, enum amdgpu_device_attr_states *states); + +}; + +struct amdgpu_device_attr_entry { +	struct list_head entry; +	struct amdgpu_device_attr *attr; +}; + +#define to_amdgpu_device_attr(_dev_attr) \ +	container_of(_dev_attr, struct amdgpu_device_attr, dev_attr) + +#define __AMDGPU_DEVICE_ATTR(_name, _mode, _show, _store, _flags, ...)	\ +	{ .dev_attr = __ATTR(_name, _mode, _show, _store),		\ +	  .flags = _flags,						\ +	  ##__VA_ARGS__, } + +#define AMDGPU_DEVICE_ATTR(_name, _mode, _flags, ...)			\ +	__AMDGPU_DEVICE_ATTR(_name, _mode,				\ +			     amdgpu_get_##_name, amdgpu_set_##_name,	\ +			     _flags, ##__VA_ARGS__) + +#define AMDGPU_DEVICE_ATTR_RW(_name, _flags, ...)			\ +	AMDGPU_DEVICE_ATTR(_name, S_IRUGO | S_IWUSR,			\ +			   _flags, ##__VA_ARGS__) + +#define AMDGPU_DEVICE_ATTR_RO(_name, _flags, ...)			\ +	__AMDGPU_DEVICE_ATTR(_name, S_IRUGO,				\ +			     amdgpu_get_##_name, NULL,			\ +			     _flags, ##__VA_ARGS__) +  void amdgpu_pm_acpi_event_handler(struct amdgpu_device *adev);  int amdgpu_pm_sysfs_init(struct amdgpu_device *adev);  int amdgpu_pm_virt_sysfs_init(struct amdgpu_device *adev);  |