| /linux/drivers/accel/amdxdna/ |
| H A D | amdxdna_iommu.c | 18 static struct iova *amdxdna_iommu_alloc_iova(struct amdxdna_dev *xdna, in amdxdna_iommu_alloc_iova() argument 26 end = xdna->domain->geometry.aperture_end; in amdxdna_iommu_alloc_iova() 27 shift = iova_shift(&xdna->iovad); in amdxdna_iommu_alloc_iova() 28 size = iova_align(&xdna->iovad, size); in amdxdna_iommu_alloc_iova() 30 iova = alloc_iova(&xdna->iovad, size >> shift, end >> shift, size_aligned); in amdxdna_iommu_alloc_iova() 34 *dma_addr = iova_dma_addr(&xdna->iovad, iova); in amdxdna_iommu_alloc_iova() 39 int amdxdna_dma_map_bo(struct amdxdna_dev *xdna, struct amdxdna_gem_obj *abo) in amdxdna_dma_map_bo() argument 52 XDNA_ERR(xdna, "Get sgt failed, ret %ld", PTR_ERR(sgt)); in amdxdna_dma_map_bo() 57 XDNA_ERR(xdna, "sgl is zero length"); in amdxdna_dma_map_bo() 61 if (amdxdna_iova_on(xdna)) { in amdxdna_dma_map_bo() [all …]
|
| H A D | amdxdna_pci_drv.c | 79 struct amdxdna_dev *xdna = client->xdna; in amdxdna_sva_init() local 81 client->sva = iommu_sva_bind_device(xdna->ddev.dev, client->mm); in amdxdna_sva_init() 83 XDNA_ERR(xdna, "SVA bind device failed, ret %ld", PTR_ERR(client->sva)); in amdxdna_sva_init() 91 XDNA_ERR(xdna, "SVA get pasid failed"); in amdxdna_sva_init() 110 struct amdxdna_dev *xdna = to_xdna_dev(ddev); in amdxdna_drm_open() local 123 client->xdna = xdna; in amdxdna_drm_open() 127 if (!amdxdna_iova_on(xdna)) { in amdxdna_drm_open() 130 XDNA_WARN(xdna, "PASID not available for pid %d", client->pid); in amdxdna_drm_open() 131 if (!amdxdna_use_carveout(xdna)) { in amdxdna_drm_open() 132 XDNA_ERR(xdna, "PASID unavailable and carveout not configured"); in amdxdna_drm_open() [all …]
|
| H A D | aie2_pci.c | 94 XDNA_ERR(ndev->aie.xdna, "Invalid mbox magic 0x%x", info_regs.magic); in aie2_get_mgmt_chann_info() 147 XDNA_ERR(ndev->aie.xdna, "Set type %d value %d failed", in aie2_runtime_cfg() 162 XDNA_ERR(ndev->aie.xdna, "Suspend firmware failed"); in aie2_xdna_reset() 168 XDNA_ERR(ndev->aie.xdna, "Resume firmware failed"); in aie2_xdna_reset() 181 XDNA_ERR(ndev->aie.xdna, "Runtime config failed"); in aie2_mgmt_fw_init() 187 XDNA_ERR(ndev->aie.xdna, "Can not assign PASID"); in aie2_mgmt_fw_init() 193 XDNA_ERR(ndev->aie.xdna, "Failed to update execution time quantum"); in aie2_mgmt_fw_init() 199 XDNA_ERR(ndev->aie.xdna, "Reset firmware failed"); in aie2_mgmt_fw_init() 210 ret = aie2_query_firmware_version(ndev, &ndev->aie.xdna->fw_ver); in aie2_mgmt_fw_query() 212 XDNA_ERR(ndev->aie.xdna, "query firmware version failed"); in aie2_mgmt_fw_query() [all …]
|
| H A D | aie2_ctx.c | 44 static inline void aie2_tdr_signal(struct amdxdna_dev *xdna) in aie2_tdr_signal() argument 46 WRITE_ONCE(xdna->dev_handle->last_signal_ts, jiffies); in aie2_tdr_signal() 49 static bool aie2_tdr_detect(struct amdxdna_dev *xdna) in aie2_tdr_detect() argument 51 struct amdxdna_dev_hdl *ndev = xdna->dev_handle; in aie2_tdr_detect() 60 XDNA_ERR(xdna, "TDR timeout detected"); in aie2_tdr_detect() 99 static void aie2_hwctx_stop(struct amdxdna_dev *xdna, struct amdxdna_hwctx *hwctx, in aie2_hwctx_stop() argument 103 aie2_destroy_context(xdna->dev_handle, hwctx); in aie2_hwctx_stop() 107 static int aie2_hwctx_restart(struct amdxdna_dev *xdna, struct amdxdna_hwctx *hwctx) in aie2_hwctx_restart() argument 113 ret = aie2_create_context(xdna->dev_handle, hwctx); in aie2_hwctx_restart() 115 XDNA_ERR(xdna, "Create hwctx failed, ret %d", ret); in aie2_hwctx_restart() [all …]
|
| H A D | amdxdna_pm.c | 16 struct amdxdna_dev *xdna = to_xdna_dev(dev_get_drvdata(dev)); in amdxdna_pm_suspend() local 19 guard(mutex)(&xdna->dev_lock); in amdxdna_pm_suspend() 20 if (xdna->dev_info->ops->suspend) in amdxdna_pm_suspend() 21 ret = xdna->dev_info->ops->suspend(xdna); in amdxdna_pm_suspend() 23 XDNA_DBG(xdna, "Suspend done ret %d", ret); in amdxdna_pm_suspend() 29 struct amdxdna_dev *xdna = to_xdna_dev(dev_get_drvdata(dev)); in amdxdna_pm_resume() local 32 guard(mutex)(&xdna->dev_lock); in amdxdna_pm_resume() 33 if (xdna->dev_info->ops->resume) in amdxdna_pm_resume() 34 ret = xdna->dev_info->ops->resume(xdna); in amdxdna_pm_resume() 36 XDNA_DBG(xdna, "Resume done ret %d", ret); in amdxdna_pm_resume() [all …]
|
| H A D | amdxdna_ctx.c | 85 struct amdxdna_dev *xdna = client->xdna; in amdxdna_hwctx_destroy_rcu() local 90 xdna->dev_info->ops->hwctx_fini(hwctx); in amdxdna_hwctx_destroy_rcu() 213 XDNA_DBG(client->xdna, "PID %d close HW context %d", in amdxdna_hwctx_remove_all() 224 struct amdxdna_dev *xdna = to_xdna_dev(dev); in amdxdna_drm_create_hwctx_ioctl() local 231 if (!xdna->dev_info->ops->hwctx_init) in amdxdna_drm_create_hwctx_ioctl() 239 XDNA_ERR(xdna, "Access QoS info failed"); in amdxdna_drm_create_hwctx_ioctl() 252 guard(mutex)(&xdna->dev_lock); in amdxdna_drm_create_hwctx_ioctl() 259 ret = xdna->dev_info->ops->hwctx_init(hwctx); in amdxdna_drm_create_hwctx_ioctl() 261 XDNA_ERR(xdna, "Init hwctx failed, ret %d", ret); in amdxdna_drm_create_hwctx_ioctl() 275 XDNA_ERR(xdna, "Allocate hwctx ID failed, ret %d", ret); in amdxdna_drm_create_hwctx_ioctl() [all …]
|
| H A D | amdxdna_pci_drv.h | 17 #define XDNA_INFO(xdna, fmt, args...) drm_info(&(xdna)->ddev, fmt, ##args) argument 18 #define XDNA_WARN(xdna, fmt, args...) drm_warn(&(xdna)->ddev, "%s: "fmt, __func__, ##args) argument 19 #define XDNA_ERR(xdna, fmt, args...) drm_err(&(xdna)->ddev, "%s: "fmt, __func__, ##args) argument 20 #define XDNA_DBG(xdna, fmt, args...) drm_dbg(&(xdna)->ddev, fmt, ##args) argument 21 #define XDNA_INFO_ONCE(xdna, fmt, args...) drm_info_once(&(xdna)->ddev, fmt, ##args) argument 23 #define XDNA_MBZ_DBG(xdna, ptr, sz) \ argument 30 XDNA_DBG(xdna, "MBZ check failed"); \ 55 int (*init)(struct amdxdna_dev *xdna); 56 void (*fini)(struct amdxdna_dev *xdna); 57 int (*resume)(struct amdxdna_dev *xdna); [all …]
|
| H A D | aie2_message.c | 28 #define EXEC_MSG_OPS(xdna) ((xdna)->dev_handle->exec_msg_ops) argument 37 XDNA_ERR(ndev->aie.xdna, "Failed to suspend fw, ret %d", ret); in aie2_suspend_fw() 61 XDNA_ERR(ndev->aie.xdna, "Failed to set runtime config, ret %d", ret); in aie2_set_runtime_cfg() 76 XDNA_ERR(ndev->aie.xdna, "Failed to get runtime config, ret %d", ret); in aie2_get_runtime_cfg() 97 struct amdxdna_dev *xdna = ndev->aie.xdna; in aie2_query_aie_version() local 104 XDNA_DBG(xdna, "Query AIE version - major: %u minor: %u completed", in aie2_query_aie_version() 172 struct amdxdna_dev *xdna = ndev->aie.xdna; in aie2_destroy_context_req() local 178 XDNA_WARN(xdna, "Destroy context failed, ret %d", ret); in aie2_destroy_context_req() 180 XDNA_DBG(xdna, "Destroy context: device already stopped"); in aie2_destroy_context_req() 208 struct amdxdna_dev *xdna = ndev->aie.xdna; in aie2_create_context() local [all …]
|
| H A D | amdxdna_gem.c | 36 struct amdxdna_dev *xdna = client->xdna; in amdxdna_init_dev_bo() local 42 XDNA_DBG(xdna, "Empty heap xa"); in amdxdna_init_dev_bo() 49 XDNA_ERR(xdna, "Failed to load heap %d", heap_id); in amdxdna_init_dev_bo() 67 XDNA_ERR(xdna, "Failed to load heap %d", heap_id); in amdxdna_init_dev_bo() 72 XDNA_ERR(xdna, "Heap %d is not mapped", heap_id); in amdxdna_init_dev_bo() 77 XDNA_ERR(xdna, "Heap %d uva is not contiguous", heap_id); in amdxdna_init_dev_bo() 89 XDNA_DBG(xdna, "Can not find heap end"); in amdxdna_init_dev_bo() 102 struct amdxdna_dev *xdna = client->xdna; in amdxdna_gem_heap_alloc() local 111 if (!mem->size || mem->size > xdna->dev_info->dev_heap_max_size) { in amdxdna_gem_heap_alloc() 112 XDNA_ERR(xdna, "Invalid dev bo size 0x%lx, max heap 0x%lx", in amdxdna_gem_heap_alloc() [all …]
|
| H A D | amdxdna_pm.h | 13 int amdxdna_pm_resume_get(struct amdxdna_dev *xdna); 14 void amdxdna_pm_suspend_put(struct amdxdna_dev *xdna); 15 void amdxdna_pm_init(struct amdxdna_dev *xdna); 16 void amdxdna_pm_fini(struct amdxdna_dev *xdna); 18 static inline int amdxdna_pm_resume_get_locked(struct amdxdna_dev *xdna) in amdxdna_pm_resume_get_locked() argument 22 mutex_unlock(&xdna->dev_lock); in amdxdna_pm_resume_get_locked() 23 ret = amdxdna_pm_resume_get(xdna); in amdxdna_pm_resume_get_locked() 24 mutex_lock(&xdna->dev_lock); in amdxdna_pm_resume_get_locked()
|
| H A D | aie2_pci.h | 22 #define NDEV2PDEV(ndev) (to_pci_dev((ndev)->aie.xdna->ddev.dev)) 40 pci_resource_len(NDEV2PDEV(_ndev), (_ndev)->aie.xdna->dev_info->mbox_bar); \
|