xref: /openbsd-src/sys/dev/pci/drm/include/linux/soc/apple/rtkit.h (revision 5dd0baa8251145fcf503b060e3a9291086883454)
1*5dd0baa8Skettenis /* Public domain. */
2*5dd0baa8Skettenis 
3*5dd0baa8Skettenis #ifndef _LINUX_SOC_APPLE_RTKIT_H
4*5dd0baa8Skettenis #define _LINUX_SOC_APPLE_RTKIT_H
5*5dd0baa8Skettenis 
6*5dd0baa8Skettenis #include <linux/bitfield.h>
7*5dd0baa8Skettenis 
8*5dd0baa8Skettenis struct apple_rtkit;
9*5dd0baa8Skettenis 
10*5dd0baa8Skettenis struct apple_rtkit_shmem {
11*5dd0baa8Skettenis 	dma_addr_t iova;
12*5dd0baa8Skettenis 	void *buffer;
13*5dd0baa8Skettenis 	size_t size;
14*5dd0baa8Skettenis 	int is_mapped;
15*5dd0baa8Skettenis };
16*5dd0baa8Skettenis 
17*5dd0baa8Skettenis struct apple_rtkit_ops {
18*5dd0baa8Skettenis 	void (*crashed)(void *);
19*5dd0baa8Skettenis 	void (*recv_message)(void *, uint8_t, uint64_t);
20*5dd0baa8Skettenis 	int (*shmem_setup)(void *, struct apple_rtkit_shmem *);
21*5dd0baa8Skettenis 	void (*shmem_destroy)(void *, struct apple_rtkit_shmem *);
22*5dd0baa8Skettenis };
23*5dd0baa8Skettenis 
24*5dd0baa8Skettenis struct apple_rtkit *devm_apple_rtkit_init(struct device *, void *,
25*5dd0baa8Skettenis 	    const char *, int, const struct apple_rtkit_ops *);
26*5dd0baa8Skettenis 
27*5dd0baa8Skettenis int	apple_rtkit_send_message(struct apple_rtkit *, uint8_t, uint64_t,
28*5dd0baa8Skettenis 				 struct completion *, int);
29*5dd0baa8Skettenis int	apple_rtkit_start_ep(struct apple_rtkit *, uint8_t);
30*5dd0baa8Skettenis int	apple_rtkit_wake(struct apple_rtkit *);
31*5dd0baa8Skettenis 
32*5dd0baa8Skettenis #endif
33