1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef __MXGPU_AI_H__
25 #define __MXGPU_AI_H__
26
27 #define AI_MAILBOX_POLL_ACK_TIMEDOUT 500
28 #define AI_MAILBOX_POLL_MSG_TIMEDOUT 12000
29 #define AI_MAILBOX_POLL_FLR_TIMEDOUT 500
30
31 enum idh_request {
32 IDH_REQ_GPU_INIT_ACCESS = 1,
33 IDH_REL_GPU_INIT_ACCESS,
34 IDH_REQ_GPU_FINI_ACCESS,
35 IDH_REL_GPU_FINI_ACCESS,
36 IDH_REQ_GPU_RESET_ACCESS,
37
38 IDH_IRQ_FORCE_DPM_LEVEL = 10,
39 IDH_IRQ_GET_PP_SCLK,
40 IDH_IRQ_GET_PP_MCLK,
41
42 IDH_LOG_VF_ERROR = 200,
43 };
44
45 enum idh_event {
46 IDH_CLR_MSG_BUF = 0,
47 IDH_READY_TO_ACCESS_GPU,
48 IDH_FLR_NOTIFICATION,
49 IDH_FLR_NOTIFICATION_CMPL,
50 IDH_SUCCESS,
51 IDH_FAIL,
52 IDH_QUERY_ALIVE,
53 IDH_EVENT_MAX
54 };
55
56 extern const struct amdgpu_virt_ops xgpu_ai_virt_ops;
57
58 void xgpu_ai_mailbox_set_irq_funcs(struct amdgpu_device *adev);
59 int xgpu_ai_mailbox_add_irq_id(struct amdgpu_device *adev);
60 int xgpu_ai_mailbox_get_irq(struct amdgpu_device *adev);
61 void xgpu_ai_mailbox_put_irq(struct amdgpu_device *adev);
62
63 #define AI_MAIBOX_CONTROL_TRN_OFFSET_BYTE SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_MAILBOX_CONTROL) * 4
64 #define AI_MAIBOX_CONTROL_RCV_OFFSET_BYTE SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_MAILBOX_CONTROL) * 4 + 1
65
66 #endif