| /* SPDX-License-Identifier: MIT */ |
| #ifndef __NVKM_CHID_H__ |
| #define __NVKM_CHID_H__ |
| #include <core/event.h> |
| |
| struct nvkm_chid { |
| struct kref kref; |
| int nr; |
| u32 mask; |
| |
| struct nvkm_event event; |
| |
| void **data; |
| |
| spinlock_t lock; |
| unsigned long used[]; |
| }; |
| |
| int nvkm_chid_new(const struct nvkm_event_func *, struct nvkm_subdev *, |
| int nr, int first, int count, struct nvkm_chid **pchid); |
| struct nvkm_chid *nvkm_chid_ref(struct nvkm_chid *); |
| void nvkm_chid_unref(struct nvkm_chid **); |
| int nvkm_chid_get(struct nvkm_chid *, void *data); |
| void nvkm_chid_put(struct nvkm_chid *, int id, spinlock_t *data_lock); |
| #endif |