diff options
author | Tejas Upadhyay <tejas.upadhyay@intel.com> | 2023-09-14 14:55:14 +0300 |
---|---|---|
committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2023-12-21 19:41:14 +0300 |
commit | 8f965392c4d915195307979640295189eec94df4 (patch) | |
tree | a0ac3d18ee4a1a64878079e00536a0371ccf5d79 /drivers/gpu/drm/xe/xe_drm_client.h | |
parent | cb90d469183cc8335d646484d66bd3c3643683cc (diff) | |
download | linux-8f965392c4d915195307979640295189eec94df4.tar.xz |
drm/xe: Add drm-client infrastructure
Add drm-client infrastructure to record stats of consumption
done by individual drm client.
V2:
- Typo - CI
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Signed-off-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/xe_drm_client.h')
-rw-r--r-- | drivers/gpu/drm/xe/xe_drm_client.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/xe_drm_client.h b/drivers/gpu/drm/xe/xe_drm_client.h new file mode 100644 index 000000000000..be097cdf5d12 --- /dev/null +++ b/drivers/gpu/drm/xe/xe_drm_client.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2023 Intel Corporation + */ + +#ifndef _XE_DRM_CLIENT_H_ +#define _XE_DRM_CLIENT_H_ + +#include <linux/kref.h> +#include <linux/list.h> +#include <linux/pid.h> +#include <linux/rcupdate.h> +#include <linux/sched.h> +#include <linux/spinlock.h> + +struct drm_file; +struct drm_printer; + +struct xe_drm_client { + struct kref kref; + unsigned int id; +}; + + static inline struct xe_drm_client * +xe_drm_client_get(struct xe_drm_client *client) +{ + kref_get(&client->kref); + return client; +} + +void __xe_drm_client_free(struct kref *kref); + +static inline void xe_drm_client_put(struct xe_drm_client *client) +{ + kref_put(&client->kref, __xe_drm_client_free); +} + +struct xe_drm_client *xe_drm_client_alloc(void); +static inline struct xe_drm_client * +xe_drm_client_get(struct xe_drm_client *client); +static inline void xe_drm_client_put(struct xe_drm_client *client); + +#endif |