/openbmc/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_ib.c | 45 * command ring and the hw will fetch the commands from the IB 48 * put in IBs for execution by the requested ring. 52 * amdgpu_ib_get - request an IB (Indirect Buffer) 62 * Returns 0 on success, error on failure. 71 r = amdgpu_sa_bo_new(&adev->ib_pools[pool_type], in amdgpu_ib_get() 72 &ib->sa_bo, size); in amdgpu_ib_get() 74 dev_err(adev->dev, "failed to get a new IB (%d)\n", r); in amdgpu_ib_get() 78 ib->ptr = amdgpu_sa_bo_cpu_addr(ib->sa_bo); in amdgpu_ib_get() 80 ib->flags = AMDGPU_IB_FLAG_EMIT_MEM_SYNC; in amdgpu_ib_get() 83 ib->gpu_addr = amdgpu_sa_bo_gpu_addr(ib->sa_bo); in amdgpu_ib_get() [all …]
|
H A D | amdgpu_job.c | 36 struct amdgpu_ring *ring = to_amdgpu_ring(s_job->sched); in amdgpu_job_timedout() local 37 struct amdgpu_job *job = to_amdgpu_job(s_job); in amdgpu_job_timedout() local 39 struct amdgpu_device *adev = ring->adev; in amdgpu_job_timedout() 44 DRM_INFO("%s - device unplugged skipping recovery on scheduler:%s", in amdgpu_job_timedout() 45 __func__, s_job->sched->name); in amdgpu_job_timedout() 47 /* Effectively the job is aborted as the device is gone */ in amdgpu_job_timedout() 51 memset(&ti, 0, sizeof(struct amdgpu_task_info)); in amdgpu_job_timedout() 52 adev->job_hang = true; in amdgpu_job_timedout() 55 amdgpu_ring_soft_recovery(ring, job->vmid, s_job->s_fence->parent)) { in amdgpu_job_timedout() 56 DRM_ERROR("ring %s timeout, but soft recovered\n", in amdgpu_job_timedout() [all …]
|
H A D | amdgpu_ids.c | 26 #include <linux/dma-fence-array.h> 50 * amdgpu_pasid_alloc - Allocate a PASID 56 * Returns a positive integer on success. Returns %-EINVAL if bits==0. 57 * Returns %-ENOSPC if no PASID was available. Returns %-ENOMEM on 62 int pasid = -EINVAL; in amdgpu_pasid_alloc() 64 for (bits = min(bits, 31U); bits > 0; bits--) { in amdgpu_pasid_alloc() 66 1U << (bits - 1), 1U << bits, in amdgpu_pasid_alloc() 68 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() 72 if (pasid >= 0) in amdgpu_pasid_alloc() 79 * amdgpu_pasid_free - Free a PASID [all …]
|
H A D | amdgpu_fence.c | 15 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 48 * are no longer in use by the associated ring on the GPU and 56 struct amdgpu_ring *ring; member 65 "amdgpu_fence", sizeof(struct amdgpu_fence), 0, in amdgpu_fence_slab_init() 68 return -ENOMEM; in amdgpu_fence_slab_init() 69 return 0; in amdgpu_fence_slab_init() 86 if (__f->base.ops == &amdgpu_fence_ops || in to_amdgpu_fence() 87 __f->base.ops == &amdgpu_job_fence_ops) in to_amdgpu_fence() 94 * amdgpu_fence_write - write a fence value 96 * @ring: ring the fence is associated with [all …]
|
H A D | amdgpu_trace.h | 35 #define AMDGPU_JOB_GET_TIMELINE_NAME(job) \ argument 36 job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished) 47 __entry->did = did; 48 __entry->reg = reg; 49 __entry->value = value; 51 TP_printk("0x%04lx, 0x%08lx, 0x%08lx", 52 (unsigned long)__entry->did, 53 (unsigned long)__entry->reg, 54 (unsigned long)__entry->value) 66 __entry->did = did; [all …]
|
H A D | amdgpu_ring.h | 57 #define AMDGPU_FENCE_OWNER_UNDEFINED ((void *)0ul) 61 #define AMDGPU_FENCE_FLAG_64BIT (1 << 0) 89 /* Direct submission to the ring buffer during init and reset. */ 114 /* sync_seq is protected by ring emission lock */ 128 void amdgpu_fence_driver_clear_job_fences(struct amdgpu_ring *ring); 129 void amdgpu_fence_driver_set_error(struct amdgpu_ring *ring, int error); 130 void amdgpu_fence_driver_force_completion(struct amdgpu_ring *ring); 132 int amdgpu_fence_driver_init_ring(struct amdgpu_ring *ring); 133 int amdgpu_fence_driver_start_ring(struct amdgpu_ring *ring, 140 int amdgpu_fence_emit(struct amdgpu_ring *ring, struct dma_fence **fence, struct amdgpu_job *job, [all …]
|
H A D | amdgpu_vce.c | 15 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 85 static int amdgpu_vce_get_create_msg(struct amdgpu_ring *ring, uint32_t handle, 87 static int amdgpu_vce_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle, 91 * amdgpu_vce_sw_init - allocate memory, load vce firmware 105 switch (adev->asic_type) { in amdgpu_vce_sw_init() 158 return -EINVAL; in amdgpu_vce_sw_init() 161 r = amdgpu_ucode_request(adev, &adev->vce.fw, fw_name); in amdgpu_vce_sw_init() 163 dev_err(adev->dev, "amdgpu_vce: Can't validate firmware \"%s\"\n", in amdgpu_vce_sw_init() 165 amdgpu_ucode_release(&adev->vce.fw); in amdgpu_vce_sw_init() 169 hdr = (const struct common_firmware_header *)adev->vce.fw->data; in amdgpu_vce_sw_init() [all …]
|
H A D | uvd_v6_0.c | 57 * uvd_v6_0_enc_support - get encode support status 65 return ((adev->asic_type >= CHIP_POLARIS10) && in uvd_v6_0_enc_support() 66 (adev->asic_type <= CHIP_VEGAM) && in uvd_v6_0_enc_support() 67 (!adev->uvd.fw_version || adev->uvd.fw_version >= FW_1_130_16)); in uvd_v6_0_enc_support() 71 * uvd_v6_0_ring_get_rptr - get read pointer 73 * @ring: amdgpu_ring pointer 77 static uint64_t uvd_v6_0_ring_get_rptr(struct amdgpu_ring *ring) in uvd_v6_0_ring_get_rptr() argument 79 struct amdgpu_device *adev = ring->adev; in uvd_v6_0_ring_get_rptr() 85 * uvd_v6_0_enc_ring_get_rptr - get enc read pointer 87 * @ring: amdgpu_ring pointer [all …]
|
H A D | amdgpu_vcn.c | 15 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 94 r = amdgpu_ucode_request(adev, &adev->vcn.fw, fw_name); in amdgpu_vcn_early_init() 96 amdgpu_ucode_release(&adev->vcn.fw); in amdgpu_vcn_early_init() 109 INIT_DELAYED_WORK(&adev->vcn.idle_work, amdgpu_vcn_idle_work_handler); in amdgpu_vcn_sw_init() 110 mutex_init(&adev->vcn.vcn_pg_lock); in amdgpu_vcn_sw_init() 111 mutex_init(&adev->vcn.vcn1_jpeg1_workaround); in amdgpu_vcn_sw_init() 112 atomic_set(&adev->vcn.total_submission_cnt, 0); in amdgpu_vcn_sw_init() 113 for (i = 0; i < adev->vcn.num_vcn_inst; i++) in amdgpu_vcn_sw_init() 114 atomic_set(&adev->vcn.inst[i].dpg_enc_submission_cnt, 0); in amdgpu_vcn_sw_init() 116 if ((adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) && in amdgpu_vcn_sw_init() [all …]
|
H A D | uvd_v7_0.c | 44 …UVD_PG0_CC_UVD_HARVESTING 0x00c7 47 …0_CC_UVD_HARVESTING__UVD_DISABLE__SHIFT 0x1 48 …_HARVESTING__UVD_DISABLE_MASK 0x00000002L 65 * uvd_v7_0_ring_get_rptr - get read pointer 67 * @ring: amdgpu_ring pointer 71 static uint64_t uvd_v7_0_ring_get_rptr(struct amdgpu_ring *ring) in uvd_v7_0_ring_get_rptr() argument 73 struct amdgpu_device *adev = ring->adev; in uvd_v7_0_ring_get_rptr() 75 return RREG32_SOC15(UVD, ring->me, mmUVD_RBC_RB_RPTR); in uvd_v7_0_ring_get_rptr() 79 * uvd_v7_0_enc_ring_get_rptr - get enc read pointer 81 * @ring: amdgpu_ring pointer [all …]
|
H A D | amdgpu_jpeg.c | 15 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 39 INIT_DELAYED_WORK(&adev->jpeg.idle_work, amdgpu_jpeg_idle_work_handler); in amdgpu_jpeg_sw_init() 40 mutex_init(&adev->jpeg.jpeg_pg_lock); in amdgpu_jpeg_sw_init() 41 atomic_set(&adev->jpeg.total_submission_cnt, 0); in amdgpu_jpeg_sw_init() 43 return 0; in amdgpu_jpeg_sw_init() 50 for (i = 0; i < adev->jpeg.num_jpeg_inst; ++i) { in amdgpu_jpeg_sw_fini() 51 if (adev->jpeg.harvest_config & (1 << i)) in amdgpu_jpeg_sw_fini() 54 for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) in amdgpu_jpeg_sw_fini() 55 amdgpu_ring_fini(&adev->jpeg.inst[i].ring_dec[j]); in amdgpu_jpeg_sw_fini() 58 mutex_destroy(&adev->jpeg.jpeg_pg_lock); in amdgpu_jpeg_sw_fini() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/powerpc/fsl/ |
H A D | raideng.txt | 3 RAID Engine nodes are defined to describe on-chip RAID accelerators. Each RAID 11 - compatible: Should contain "fsl,raideng-v1.0" as the value 13 major number whereas 0 represents minor number. The 15 - reg: offset and length of the register set for the device 16 - ranges: standard ranges property specifying the translation 22 compatible = "fsl,raideng-v1.0"; 23 #address-cells = <1>; 24 #size-cells = <1>; 25 reg = <0x320000 0x10000>; 26 ranges = <0 0x320000 0x10000>; [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/crypto/ |
H A D | fsl-sec6.txt | 4 -SEC 6 Node 5 -Job Ring Node 6 -Full Example 20 - compatible 23 Definition: Must include "fsl,sec-v6.0". 25 - fsl,sec-era 31 - #address-cells 37 - #size-cells 44 - reg 46 Value type: <prop-encoded-array> [all …]
|
H A D | fsl,sec-v4.0.yaml | 1 # SPDX-License-Identifier: GPL-2.0 2 # Copyright (C) 2008-2011 Freescale Semiconductor Inc. 4 --- 5 $id: http://devicetree.org/schemas/crypto/fsl,sec-v4.0.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 11 - '"Horia Geantă" <horia.geanta@nxp.com>' 12 - Pankaj Gupta <pankaj.gupta@nxp.com> 13 - Gaurav Jain <gaurav.jain@nxp.com> 21 2. Job Rings (HW interface between cores & SEC 4 registers). 25 HW interface between QM & SEC 4 and also BM & SEC 4, on DPAA-enabled parts [all …]
|
/openbmc/linux/arch/powerpc/boot/dts/fsl/ |
H A D | qoriq-sec6.0-0.dtsi | 35 compatible = "fsl,sec-v6.0", "fsl,sec-v5.0", 36 "fsl,sec-v4.0"; 37 fsl,sec-era = <6>; 38 #address-cells = <1>; 39 #size-cells = <1>; 42 compatible = "fsl,sec-v6.0-job-ring", 43 "fsl,sec-v5.2-job-ring", 44 "fsl,sec-v5.0-job-ring", 45 "fsl,sec-v4.4-job-ring", 46 "fsl,sec-v4.0-job-ring"; [all …]
|
H A D | qoriq-sec5.2-0.dtsi | 2 * QorIQ Sec/Crypto 5.2 device tree stub [ controller @ offset 0x300000 ] 4 * Copyright 2011-2012 Freescale Semiconductor Inc. 36 compatible = "fsl,sec-v5.2", "fsl,sec-v5.0", "fsl,sec-v4.0"; 37 fsl,sec-era = <5>; 38 #address-cells = <1>; 39 #size-cells = <1>; 40 reg = <0x300000 0x10000>; 41 ranges = <0 0x300000 0x10000>; 42 interrupts = <92 2 0 0>; 45 compatible = "fsl,sec-v5.2-job-ring", [all …]
|
H A D | qoriq-sec5.3-0.dtsi | 2 * QorIQ Sec/Crypto 5.3 device tree stub [ controller @ offset 0x300000 ] 36 compatible = "fsl,sec-v5.3", "fsl,sec-v5.0", "fsl,sec-v4.0"; 37 fsl,sec-era = <4>; 38 #address-cells = <1>; 39 #size-cells = <1>; 40 reg = <0x300000 0x10000>; 41 ranges = <0 0x300000 0x10000>; 42 interrupts = <92 2 0 0>; 45 compatible = "fsl,sec-v5.3-job-ring", 46 "fsl,sec-v5.0-job-ring", [all …]
|
H A D | pq3-sec4.4-0.dtsi | 2 * PQ3 Sec/Crypto 4.4 device tree stub [ controller @ offset 0x30000 ] 36 compatible = "fsl,sec-v4.4", "fsl,sec-v4.0"; 37 fsl,sec-era = <3>; 38 #address-cells = <1>; 39 #size-cells = <1>; 40 ranges = <0x0 0x30000 0x10000>; 41 reg = <0x30000 0x10000>; 42 interrupts = <58 2 0 0>; 45 compatible = "fsl,sec-v4.4-job-ring", "fsl,sec-v4.0-job-ring"; 46 reg = <0x1000 0x1000>; [all …]
|
H A D | qoriq-sec5.0-0.dtsi | 2 * QorIQ Sec/Crypto 5.0 device tree stub [ controller @ offset 0x300000 ] 36 compatible = "fsl,sec-v5.0", "fsl,sec-v4.0"; 37 fsl,sec-era = <5>; 38 #address-cells = <1>; 39 #size-cells = <1>; 40 reg = <0x300000 0x10000>; 41 ranges = <0 0x300000 0x10000>; 42 interrupts = <92 2 0 0>; 45 compatible = "fsl,sec-v5.0-job-ring", 46 "fsl,sec-v4.0-job-ring"; [all …]
|
H A D | qoriq-sec4.2-0.dtsi | 2 * QorIQ Sec/Crypto 4.2 device tree stub [ controller @ offset 0x300000 ] 36 compatible = "fsl,sec-v4.2", "fsl,sec-v4.0"; 37 fsl,sec-era = <3>; 38 #address-cells = <1>; 39 #size-cells = <1>; 40 reg = <0x300000 0x10000>; 41 ranges = <0 0x300000 0x10000>; 42 interrupts = <92 2 0 0>; 45 compatible = "fsl,sec-v4.2-job-ring", 46 "fsl,sec-v4.0-job-ring"; [all …]
|
H A D | qoriq-raid1.0-0.dtsi | 2 * QorIQ RAID 1.0 device tree stub [ controller @ offset 0x320000 ] 36 compatible = "fsl,raideng-v1.0"; 37 #address-cells = <1>; 38 #size-cells = <1>; 39 reg = <0x320000 0x10000>; 40 ranges = <0 0x320000 0x10000>; 43 compatible = "fsl,raideng-v1.0-job-queue"; 44 #address-cells = <1>; 45 #size-cells = <1>; 46 reg = <0x1000 0x1000>; [all …]
|
/openbmc/linux/drivers/gpu/drm/msm/ |
H A D | msm_ringbuffer.c | 1 // SPDX-License-Identifier: GPL-2.0-only 14 static struct dma_fence *msm_job_run(struct drm_sched_job *job) in msm_job_run() argument 16 struct msm_gem_submit *submit = to_msm_submit(job); in msm_job_run() 17 struct msm_fence_context *fctx = submit->ring->fctx; in msm_job_run() 18 struct msm_gpu *gpu = submit->gpu; in msm_job_run() 19 struct msm_drm_private *priv = gpu->dev->dev_private; in msm_job_run() 22 msm_fence_init(submit->hw_fence, fctx); in msm_job_run() 24 mutex_lock(&priv->lru.lock); in msm_job_run() 26 for (i = 0; i < submit->nr_bos; i++) { in msm_job_run() 27 struct drm_gem_object *obj = submit->bos[i].obj; in msm_job_run() [all …]
|
/openbmc/linux/drivers/crypto/caam/ |
H A D | jr.c | 1 // SPDX-License-Identifier: GPL-2.0+ 6 * Copyright 2008-2012 Freescale Semiconductor, Inc. 42 jrpriv->hwrng = !caam_rng_init(dev); in register_algs() 54 if (--active_devs != 0) in unregister_algs() 72 /* Free the resources of crypto-engine */ in caam_jr_crypto_engine_exit() 73 crypto_engine_exit(jrpriv->engine); in caam_jr_crypto_engine_exit() 87 if (rd_reg32(&jrp->rregs->jrintstatus) & JRINT_ERR_HALT_INPROGRESS) in caam_jr_stop_processing() 91 clrsetbits_32(&jrp->rregs->jrintstatus, JRINT_ERR_HALT_MASK, 0); in caam_jr_stop_processing() 94 wr_reg32(&jrp->rregs->jrcommand, jrcr_bits); in caam_jr_stop_processing() 97 while (((rd_reg32(&jrp->rregs->jrintstatus) & JRINT_ERR_HALT_MASK) == in caam_jr_stop_processing() [all …]
|
H A D | intern.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 6 * Copyright 2008-2011 Freescale Semiconductor, Inc. 16 /* Currently comes from Kconfig param as a ^2 (driver-required) */ 20 * Maximum size for crypto-engine software queue based on Job Ring 21 * size (JOBR_DEPTH) and a THRESHOLD (reserved for the non-crypto-API 22 * requests that are not passed through crypto-engine) 25 #define CRYPTO_ENGINE_MAX_QLEN (JOBR_DEPTH - THRESHOLD) 33 #define JOBR_INTC 0 34 #define JOBR_INTC_TIME_THLD 0 35 #define JOBR_INTC_COUNT_THLD 0 [all …]
|
/openbmc/linux/drivers/dma/ |
H A D | fsl_raid.h | 13 * Copyright (c) 2010-2012 Freescale Semiconductor, Inc. 47 #define FSL_RE_GFM_POLY 0x1d000000 50 #define FSL_RE_CFG1_CBSI 0x08000000 51 #define FSL_RE_CFG1_CBS0 0x00080000 56 #define FSL_RE_PQ_OPCODE 0x1B 57 #define FSL_RE_XOR_OPCODE 0x1A 58 #define FSL_RE_MOVE_OPCODE 0x8 60 #define FSL_RE_BLOCK_SIZE 0x3 /* 4096 bytes */ 61 #define FSL_RE_CACHEABLE_IO 0x0 62 #define FSL_RE_BUFFER_OUTPUT 0x0 [all …]
|