18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * Copyright 2014 Advanced Micro Devices, Inc. 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a 58c2ecf20Sopenharmony_ci * copy of this software and associated documentation files (the "Software"), 68c2ecf20Sopenharmony_ci * to deal in the Software without restriction, including without limitation 78c2ecf20Sopenharmony_ci * the rights to use, copy, modify, merge, publish, distribute, sublicense, 88c2ecf20Sopenharmony_ci * and/or sell copies of the Software, and to permit persons to whom the 98c2ecf20Sopenharmony_ci * Software is furnished to do so, subject to the following conditions: 108c2ecf20Sopenharmony_ci * 118c2ecf20Sopenharmony_ci * The above copyright notice and this permission notice shall be included in 128c2ecf20Sopenharmony_ci * all copies or substantial portions of the Software. 138c2ecf20Sopenharmony_ci * 148c2ecf20Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 158c2ecf20Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 168c2ecf20Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 178c2ecf20Sopenharmony_ci * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 188c2ecf20Sopenharmony_ci * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 198c2ecf20Sopenharmony_ci * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 208c2ecf20Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE. 218c2ecf20Sopenharmony_ci * 228c2ecf20Sopenharmony_ci */ 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#ifndef __MXGPU_AI_H__ 258c2ecf20Sopenharmony_ci#define __MXGPU_AI_H__ 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#define AI_MAILBOX_POLL_ACK_TIMEDOUT 500 288c2ecf20Sopenharmony_ci#define AI_MAILBOX_POLL_MSG_TIMEDOUT 12000 298c2ecf20Sopenharmony_ci#define AI_MAILBOX_POLL_FLR_TIMEDOUT 5000 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_cienum idh_request { 328c2ecf20Sopenharmony_ci IDH_REQ_GPU_INIT_ACCESS = 1, 338c2ecf20Sopenharmony_ci IDH_REL_GPU_INIT_ACCESS, 348c2ecf20Sopenharmony_ci IDH_REQ_GPU_FINI_ACCESS, 358c2ecf20Sopenharmony_ci IDH_REL_GPU_FINI_ACCESS, 368c2ecf20Sopenharmony_ci IDH_REQ_GPU_RESET_ACCESS, 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci IDH_LOG_VF_ERROR = 200, 398c2ecf20Sopenharmony_ci}; 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_cienum idh_event { 428c2ecf20Sopenharmony_ci IDH_CLR_MSG_BUF = 0, 438c2ecf20Sopenharmony_ci IDH_READY_TO_ACCESS_GPU, 448c2ecf20Sopenharmony_ci IDH_FLR_NOTIFICATION, 458c2ecf20Sopenharmony_ci IDH_FLR_NOTIFICATION_CMPL, 468c2ecf20Sopenharmony_ci IDH_SUCCESS, 478c2ecf20Sopenharmony_ci IDH_FAIL, 488c2ecf20Sopenharmony_ci IDH_QUERY_ALIVE, 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci IDH_TEXT_MESSAGE = 255, 518c2ecf20Sopenharmony_ci}; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ciextern const struct amdgpu_virt_ops xgpu_ai_virt_ops; 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_civoid xgpu_ai_mailbox_set_irq_funcs(struct amdgpu_device *adev); 568c2ecf20Sopenharmony_ciint xgpu_ai_mailbox_add_irq_id(struct amdgpu_device *adev); 578c2ecf20Sopenharmony_ciint xgpu_ai_mailbox_get_irq(struct amdgpu_device *adev); 588c2ecf20Sopenharmony_civoid xgpu_ai_mailbox_put_irq(struct amdgpu_device *adev); 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci#define AI_MAIBOX_CONTROL_TRN_OFFSET_BYTE SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_MAILBOX_CONTROL) * 4 618c2ecf20Sopenharmony_ci#define AI_MAIBOX_CONTROL_RCV_OFFSET_BYTE SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_MAILBOX_CONTROL) * 4 + 1 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci#endif 64