| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | mes_v12_1.c | 42 static int mes_v12_1_xcc_hw_init(struct amdgpu_ip_block *ip_block, int xcc_id); 44 static int mes_v12_1_kiq_hw_init(struct amdgpu_device *adev, uint32_t xcc_id); 45 static int mes_v12_1_kiq_hw_fini(struct amdgpu_device *adev, uint32_t xcc_id); 46 static int mes_v12_1_setup_coop_mode(struct amdgpu_device *adev, int xcc_id); 156 int xcc_id, int pipe, void *pkt, in mes_v12_1_submit_pkt_and_poll_completion() argument 162 struct amdgpu_ring *ring = &mes->ring[MES_PIPE_INST(xcc_id, pipe)]; in mes_v12_1_submit_pkt_and_poll_completion() 163 spinlock_t *ring_lock = &mes->ring_lock[MES_PIPE_INST(xcc_id, pipe)]; in mes_v12_1_submit_pkt_and_poll_completion() 229 xcc_id, pipe, op_str, misc_op_str); in mes_v12_1_submit_pkt_and_poll_completion() 232 xcc_id, pipe, op_str); in mes_v12_1_submit_pkt_and_poll_completion() 235 xcc_id, pipe, x_pkt->header.opcode); in mes_v12_1_submit_pkt_and_poll_completion() [all …]
|
| H A D | gfx_v12_1.c | 193 static void gfx_v12_1_xcc_disable_gpa_mode(struct amdgpu_device *adev, int xcc_id); 203 u32 sh_num, u32 instance, int xcc_id); 210 static void gfx_v12_1_xcc_set_safe_mode(struct amdgpu_device *adev, int xcc_id); 211 static void gfx_v12_1_xcc_unset_safe_mode(struct amdgpu_device *adev, int xcc_id); 215 bool enable, int xcc_id); 280 seq, kiq_ring->xcc_id); in gfx_v12_1_kiq_unmap_queues() 390 scratch_reg0_offset = SOC15_REG_OFFSET(GC, GET_INST(GC, ring->xcc_id), regSCRATCH_REG0); in gfx_v12_1_ring_test_ring() 650 int xcc_id, num_xcc; in gfx_v12_1_init_rlcg_reg_access_ctrl() local 654 for (xcc_id = 0; xcc_id < num_xcc; xcc_id++) { in gfx_v12_1_init_rlcg_reg_access_ctrl() 655 reg_access_ctrl = &adev->gfx.rlc.reg_access_ctrl[GET_INST(GC, xcc_id)]; in gfx_v12_1_init_rlcg_reg_access_ctrl() [all …]
|
| H A D | gfx_v9_4_3.c | 171 static void gfx_v9_4_3_xcc_set_safe_mode(struct amdgpu_device *adev, int xcc_id); 172 static void gfx_v9_4_3_xcc_unset_safe_mode(struct amdgpu_device *adev, int xcc_id); 292 uint32_t xcc_id, uint32_t vmid) in gfx_v9_4_3_kiq_reset_hw_queue() argument 298 amdgpu_gfx_rlc_enter_safe_mode(adev, xcc_id); in gfx_v9_4_3_kiq_reset_hw_queue() 300 soc15_grbm_select(adev, me_id, pipe_id, queue_id, 0, xcc_id); in gfx_v9_4_3_kiq_reset_hw_queue() 303 WREG32_SOC15(GC, GET_INST(GC, xcc_id), regCP_HQD_DEQUEUE_REQUEST, 0x2); in gfx_v9_4_3_kiq_reset_hw_queue() 304 WREG32_SOC15(GC, GET_INST(GC, xcc_id), regSPI_COMPUTE_QUEUE_RESET, 0x1); in gfx_v9_4_3_kiq_reset_hw_queue() 307 if (!(RREG32_SOC15(GC, GET_INST(GC, xcc_id), regCP_HQD_ACTIVE) & 1)) in gfx_v9_4_3_kiq_reset_hw_queue() 320 amdgpu_gfx_rlc_exit_safe_mode(adev, xcc_id); in gfx_v9_4_3_kiq_reset_hw_queue() 425 scratch_reg0_offset = SOC15_REG_OFFSET(GC, GET_INST(GC, ring->xcc_id), regSCRATCH_REG0); in gfx_v9_4_3_ring_test_ring() [all …]
|
| H A D | amdgpu_mes.h | 73 #define MES_PIPE_INST(xcc_id, pipe_id) \ argument 74 (xcc_id * AMDGPU_MAX_MES_PIPES + pipe_id) 138 uint32_t xcc_id); 140 uint32_t xcc_id); 254 uint32_t xcc_id; member 288 uint32_t xcc_id; member 297 uint32_t xcc_id; member 307 uint32_t xcc_id; member 318 uint32_t xcc_id; member 328 uint32_t xcc_id; member [all …]
|
| H A D | amdgpu_mes.c | 319 int amdgpu_mes_suspend(struct amdgpu_device *adev, u32 xcc_id) in amdgpu_mes_suspend() argument 329 input.xcc_id = xcc_id; in amdgpu_mes_suspend() 347 int amdgpu_mes_resume(struct amdgpu_device *adev, u32 xcc_id) in amdgpu_mes_resume() argument 357 input.xcc_id = xcc_id; in amdgpu_mes_resume() 373 struct amdgpu_ring *ring, uint32_t xcc_id) in amdgpu_mes_map_legacy_queue() argument 380 queue_input.xcc_id = xcc_id; in amdgpu_mes_map_legacy_queue() 400 u64 gpu_addr, u64 seq, uint32_t xcc_id) in amdgpu_mes_unmap_legacy_queue() argument 405 queue_input.xcc_id = xcc_id; in amdgpu_mes_unmap_legacy_queue() 427 uint32_t xcc_id) in amdgpu_mes_reset_legacy_queue() argument 434 queue_input.xcc_id = xcc_id; in amdgpu_mes_reset_legacy_queue() [all …]
|
| H A D | amdgpu_gfx.c | 75 int xcc_id, int mec, int pipe, int queue) in amdgpu_gfx_is_mec_queue_enabled() argument 78 adev->gfx.mec_bitmap[xcc_id].queue_bitmap); in amdgpu_gfx_is_mec_queue_enabled() 274 struct amdgpu_ring *ring, int xcc_id) in amdgpu_gfx_kiq_acquire() argument 284 if (test_bit(queue_bit, adev->gfx.mec_bitmap[xcc_id].queue_bitmap)) in amdgpu_gfx_kiq_acquire() 308 int amdgpu_gfx_kiq_init_ring(struct amdgpu_device *adev, int xcc_id) in amdgpu_gfx_kiq_init_ring() argument 310 struct amdgpu_kiq *kiq = &adev->gfx.kiq[xcc_id]; in amdgpu_gfx_kiq_init_ring() 320 ring->xcc_id = xcc_id; in amdgpu_gfx_kiq_init_ring() 321 ring->vm_hub = AMDGPU_GFXHUB(xcc_id); in amdgpu_gfx_kiq_init_ring() 324 xcc_id * adev->doorbell_index.xcc_doorbell_range) in amdgpu_gfx_kiq_init_ring() 327 r = amdgpu_gfx_kiq_acquire(adev, ring, xcc_id); in amdgpu_gfx_kiq_init_ring() [all …]
|
| H A D | amdgpu_umr.h | 46 u32 xcc_id; member 50 u32 gpr_or_wave, se, sh, cu, wave, simd, xcc_id; member
|
| H A D | sdma_v7_1.c | 121 int xcc_id = adev->sdma.instance[instance].xcc_id; in sdma_v7_1_get_reg_offset() local 125 base = adev->reg_offset[GC_HWIP][xcc_id][1]; in sdma_v7_1_get_reg_offset() 129 base = adev->reg_offset[GC_HWIP][xcc_id][0]; in sdma_v7_1_get_reg_offset() 1287 u32 xcc_id; in sdma_v7_1_sw_init() local 1303 for (xcc_id = 0; xcc_id < fls(adev->gfx.xcc_mask); xcc_id++) { in sdma_v7_1_sw_init() 1304 if (adev->sdma.instance[i].xcc_id == GET_INST(GC, xcc_id)) in sdma_v7_1_sw_init() 1512 int inst, instances, queue, xcc_id = 0; sdma_v7_1_process_trap_irq() local [all...] |
| H A D | gmc_v12_1.c | 113 int ret, xcc_id = 0; in gmc_v12_1_process_interrupt() local 135 xcc_id = adev->gfx.funcs->ih_node_to_logical_xcc(adev, in gmc_v12_1_process_interrupt() 137 if (xcc_id < 0) in gmc_v12_1_process_interrupt() 138 xcc_id = 0; in gmc_v12_1_process_interrupt() 140 vmhub = xcc_id; in gmc_v12_1_process_interrupt() 417 input.xcc_id = inst; in gmc_v12_1_flush_gpu_tlb_pasid()
|
| H A D | gfx_v9_0.h | 30 u32 instance, int xcc_id);
|
| H A D | amdgpu_virt.c | 1417 …32 amdgpu_virt_rlcg_vfi_reg_rw(struct amdgpu_device *adev, u32 offset, u32 v, u32 flag, u32 xcc_id) in amdgpu_virt_rlcg_vfi_reg_rw() argument 1444 if (adev->gfx.xcc_mask && (((1 << xcc_id) & adev->gfx.xcc_mask) == 0)) { in amdgpu_virt_rlcg_vfi_reg_rw() 1445 dev_err(adev->dev, "VFi invalid XCC, xcc_id=0x%x\n", xcc_id); in amdgpu_virt_rlcg_vfi_reg_rw() 1452 reg_access_ctrl = &adev->gfx.rlc.reg_access_ctrl[xcc_id]; in amdgpu_virt_rlcg_vfi_reg_rw() 1544 u32 amdgpu_virt_rlcg_reg_rw(struct amdgpu_device *adev, u32 offset, u32 v, u32 flag, u32 xcc_id) in amdgpu_virt_rlcg_reg_rw() argument 1558 return amdgpu_virt_rlcg_vfi_reg_rw(adev, offset, v, flag, xcc_id); in amdgpu_virt_rlcg_reg_rw() 1566 if (adev->gfx.xcc_mask && (((1 << xcc_id) & adev->gfx.xcc_mask) == 0)) { in amdgpu_virt_rlcg_reg_rw() 1574 reg_access_ctrl = &adev->gfx.rlc.reg_access_ctrl[xcc_id]; in amdgpu_virt_rlcg_reg_rw() 1646 u32 acc_flags, u32 hwip, u32 xcc_id) in amdgpu_sriov_wreg() argument 1655 amdgpu_virt_rlcg_reg_rw(adev, offset, value, rlcg_flag, xcc_id); in amdgpu_sriov_wreg() [all …]
|
| H A D | amdgpu_debugfs.c | 290 rd->id.grbm.instance, rd->id.xcc_id); in amdgpu_debugfs_regs2_op() 296 rd->id.srbm.queue, rd->id.srbm.vmid, rd->id.xcc_id); in amdgpu_debugfs_regs2_op() 307 rd->id.xcc_id); in amdgpu_debugfs_regs2_op() 314 amdgpu_gfx_select_se_sh(adev, 0xffffffff, 0xffffffff, 0xffffffff, rd->id.xcc_id); in amdgpu_debugfs_regs2_op() 319 amdgpu_gfx_select_me_pipe_q(adev, 0, 0, 0, 0, rd->id.xcc_id); in amdgpu_debugfs_regs2_op() 376 rd->id.xcc_id = 0; 447 amdgpu_gfx_select_se_sh(adev, rd->id.se, rd->id.sh, rd->id.cu, rd->id.xcc_id); in amdgpu_debugfs_gprwave_read() 452 adev->gfx.funcs->read_wave_data(adev, rd->id.xcc_id, rd->id.simd, rd->id.wave, data, &x); in amdgpu_debugfs_gprwave_read() 457 adev->gfx.funcs->read_wave_vgprs(adev, rd->id.xcc_id, rd->id.simd, rd->id.wave, rd->id.gpr.thread, *pos, size>>2, data); in amdgpu_debugfs_gprwave_read() 460 adev->gfx.funcs->read_wave_sgprs(adev, rd->id.xcc_id, r in amdgpu_debugfs_gprwave_read() [all...] |
| H A D | gfx_v12_0.c | 278 u32 sh_num, u32 instance, int xcc_id); 287 static void gfx_v12_0_set_safe_mode(struct amdgpu_device *adev, int xcc_id); 288 static void gfx_v12_0_unset_safe_mode(struct amdgpu_device *adev, int xcc_id); 846 uint32_t xcc_id, in gfx_v12_0_read_wave_data() argument 883 uint32_t xcc_id, uint32_t simd, in gfx_v12_0_read_wave_sgprs() argument 895 uint32_t xcc_id, uint32_t simd, in gfx_v12_0_read_wave_vgprs() argument 906 u32 me, u32 pipe, u32 q, u32 vm, u32 xcc_id) in gfx_v12_0_select_me_pipe_q() argument 1409 int xcc_id = 0; in gfx_v12_0_sw_init() local 1582 r = amdgpu_gfx_kiq_init_ring(adev, xcc_id); in gfx_v12_0_sw_init() 1686 u32 sh_num, u32 instance, int xcc_id) in gfx_v12_0_select_se_sh() argument 4030 gfx_v12_0_set_safe_mode(struct amdgpu_device * adev,int xcc_id) gfx_v12_0_set_safe_mode() argument 4050 gfx_v12_0_unset_safe_mode(struct amdgpu_device * adev,int xcc_id) gfx_v12_0_unset_safe_mode() argument 4075 gfx_v12_0_update_spm_vmid(struct amdgpu_device * adev,int xcc_id,struct amdgpu_ring * ring,unsigned vmid) gfx_v12_0_update_spm_vmid() argument [all...] |
| H A D | gfx_v9_0.c | 924 static void gfx_v9_0_set_safe_mode(struct amdgpu_device *adev, int xcc_id); 925 static void gfx_v9_0_unset_safe_mode(struct amdgpu_device *adev, int xcc_id); 1046 uint32_t xcc_id, uint32_t vmid) in gfx_v9_0_kiq_reset_hw_queue() argument 1052 amdgpu_gfx_rlc_enter_safe_mode(adev, xcc_id); in gfx_v9_0_kiq_reset_hw_queue() 1074 amdgpu_gfx_rlc_exit_safe_mode(adev, xcc_id); in gfx_v9_0_kiq_reset_hw_queue() 1955 static void gfx_v9_0_read_wave_data(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, uin… in gfx_v9_0_read_wave_data() argument 1976 static void gfx_v9_0_read_wave_sgprs(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, in gfx_v9_0_read_wave_sgprs() argument 1985 static void gfx_v9_0_read_wave_vgprs(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, in gfx_v9_0_read_wave_vgprs() argument 1996 u32 me, u32 pipe, u32 q, u32 vm, u32 xcc_id) in gfx_v9_0_select_me_pipe_q() argument 2218 int xcc_id = 0; in gfx_v9_0_sw_init() local [all …]
|
| H A D | amdgpu_gmc.c | 1632 int num_xcc, xcc_id; in amdgpu_gmc_init_acpi_mem_ranges() 1638 for_each_inst(xcc_id, xcc_mask) { in amdgpu_gmc_init_acpi_mem_ranges() 1639 ret = amdgpu_acpi_get_mem_info(adev, xcc_id, &numa_info); in amdgpu_gmc_init_acpi_mem_ranges() 1635 int num_xcc, xcc_id; amdgpu_gmc_init_acpi_mem_ranges() local
|
| H A D | mes_v11_0.c | 70 static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev, uint32_t xcc_id); 71 static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev, uint32_t xcc_id); 1877 static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev, uint32_t xcc_id) in mes_v11_0_kiq_hw_init() argument 1932 static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev, uint32_t xcc_id) in mes_v11_0_kiq_hw_fini() argument
|
| H A D | amdgpu_ib.c | 243 adev->gfx.rlc.funcs->update_spm_vmid(adev, ring->xcc_id, ring, job->vmid); in amdgpu_ib_schedule()
|
| H A D | mes_v12_0.c | 45 static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev, uint32_t xcc_id); 46 static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev, uint32_t xcc_id); 1956 static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev, uint32_t xcc_id) in mes_v12_0_kiq_hw_init() argument 2018 static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev, uint32_t xcc_id) in mes_v12_0_kiq_hw_fini() argument
|
| H A D | gfx_v11_0.c | 352 u32 sh_num, u32 instance, int xcc_id); 363 static void gfx_v11_0_set_safe_mode(struct amdgpu_device *adev, int xcc_id); 364 static void gfx_v11_0_unset_safe_mode(struct amdgpu_device *adev, int xcc_id); 1016 static void gfx_v11_0_read_wave_data(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, uint32_t wave, uint32_t *dst, int *no_fields) in gfx_v11_0_read_wave_data() argument 1042 static void gfx_v11_0_read_wave_sgprs(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, in gfx_v11_0_read_wave_sgprs() argument 1053 static void gfx_v11_0_read_wave_vgprs(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, in gfx_v11_0_read_wave_vgprs() argument 1064 u32 me, u32 pipe, u32 q, u32 vm, u32 xcc_id) in gfx_v11_0_select_me_pipe_q() argument 1609 int xcc_id = 0; in gfx_v11_0_sw_init() local 1900 r = amdgpu_gfx_kiq_init_ring(adev, xcc_id); in gfx_v11_0_sw_init() 2011 u32 sh_num, u32 instance, int xcc_id) in gfx_v11_0_select_se_sh() argument 5443 gfx_v11_0_set_safe_mode(struct amdgpu_device * adev,int xcc_id) gfx_v11_0_set_safe_mode() argument 5462 gfx_v11_0_unset_safe_mode(struct amdgpu_device * adev,int xcc_id) gfx_v11_0_unset_safe_mode() argument 5715 gfx_v11_0_update_spm_vmid(struct amdgpu_device * adev,int xcc_id,struct amdgpu_ring * ring,unsigned vmid) gfx_v11_0_update_spm_vmid() argument [all...] |
| H A D | amdgpu_acpi.c | 1227 int amdgpu_acpi_get_mem_info(struct amdgpu_device *adev, int xcc_id, in amdgpu_acpi_get_mem_info() argument 1244 if (xcc_info->phy_id == xcc_id) { in amdgpu_acpi_get_mem_info()
|
| H A D | gfx_v8_0.c | 1897 int xcc_id = 0; in gfx_v8_0_sw_init() local 2019 r = amdgpu_gfx_kiq_init_ring(adev, xcc_id); in gfx_v8_0_sw_init() 3402 int xcc_id) in gfx_v8_0_select_se_sh() argument 3425 u32 me, u32 pipe, u32 q, u32 vm, u32 xcc_id) in gfx_v8_0_select_me_pipe_q() argument 5091 static void gfx_v8_0_read_wave_data(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, uin… in gfx_v8_0_read_wave_data() argument 5116 static void gfx_v8_0_read_wave_sgprs(struct amdgpu_device *adev, uint32_t xcc_id, uint32_t simd, in gfx_v8_0_read_wave_sgprs() argument 5447 static void gfx_v8_0_set_safe_mode(struct amdgpu_device *adev, int xcc_id) in gfx_v8_0_set_safe_mode() argument 5474 static void gfx_v8_0_unset_safe_mode(struct amdgpu_device *adev, int xcc_id) in gfx_v8_0_unset_safe_mode() argument 5491 static void gfx_v8_0_update_spm_vmid(struct amdgpu_device *adev, int xcc_id, in gfx_v8_0_update_spm_vmid() argument
|
| /linux/drivers/gpu/drm/amd/amdkfd/ |
| H A D | kfd_mqd_manager_v9.c | 655 int xcc_id, err = 0, inst = 0; in hiq_load_mqd_kiq_v9_4_3() local 659 for_each_inst(xcc_id, xcc_mask) { in hiq_load_mqd_kiq_v9_4_3() 663 p->doorbell_off, xcc_id); in hiq_load_mqd_kiq_v9_4_3() 679 int xcc_id, err = 0, inst = 0; in destroy_hiq_mqd_v9_4_3() local 684 for_each_inst(xcc_id, xcc_mask) { in destroy_hiq_mqd_v9_4_3() 690 err = amdgpu_amdkfd_unmap_hiq(mm->dev->adev, doorbell_off, xcc_id); in destroy_hiq_mqd_v9_4_3() 705 int inst = 0, xcc_id; in check_preemption_failed_v9_4_3() local 709 for_each_inst(xcc_id, xcc_mask) { in check_preemption_failed_v9_4_3() 910 int xcc_id, err = 0, inst = 0; in destroy_mqd_v9_4_3() local 918 for_each_inst(xcc_id, xcc_mask) { in destroy_mqd_v9_4_3() [all …]
|
| H A D | kfd_device_queue_manager.c | 156 int xcc_id; in program_sh_mem_settings() local 158 for_each_inst(xcc_id, xcc_mask) in program_sh_mem_settings() 162 qpd->sh_mem_bases, xcc_id); in program_sh_mem_settings() 268 queue_input.xcc_id = ffs(dqm->dev->xcc_mask) - 1; in add_queue_mes() 307 queue_input.xcc_id = ffs(dqm->dev->xcc_mask) - 1; in remove_queue_mes_on_reset_option() 480 queue_input.xcc_id = ffs(dqm->dev->xcc_mask) - 1; in reset_queues_mes() 657 int xcc_id; in allocate_vmid() 660 for_each_inst(xcc_id, xcc_mask) in allocate_vmid() 663 qpd->tma_addr, xcc_id); in allocate_vmid() 938 int xcc_id; in dbgdev_wave_reset_wavefronts() 637 int xcc_id; program_trap_handler_settings() local 918 int xcc_id; dbgdev_wave_reset_wavefronts() local 1710 int xcc_id, ret = 0; set_pasid_vmid_mapping() local 1725 unsigned int i, xcc_id; init_interrupts() local 2420 int xcc_id; detect_queue_hang() local 3969 int r = 0, xcc_id; dqm_debugfs_hqds() local [all...] |
| H A D | kfd_mqd_manager_v12_1.c | 536 int xcc_id, err, inst = 0; in destroy_mqd_v12_1() local 544 for_each_inst(xcc_id, xcc_mask) { in destroy_mqd_v12_1() 548 queue_id, xcc_id); in destroy_mqd_v12_1() 566 int xcc_id, err, inst = 0; in load_mqd_v12_1() local 570 for_each_inst(xcc_id, xcc_mask) { in load_mqd_v12_1() 575 xcc_id); in load_mqd_v12_1()
|
| /linux/drivers/gpu/drm/amd/pm/swsmu/smu15/ |
| H A D | smu_v15_0_8_ppt.c | 387 int ret, xcc_id; in smu_v15_0_8_get_smu_metrics_data() local 396 xcc_id = GET_INST(GC, 0); in smu_v15_0_8_get_smu_metrics_data() 397 *value = SMUQ10_ROUND(metrics->GfxclkFrequency[xcc_id]); in smu_v15_0_8_get_smu_metrics_data() 1690 int ret = 0, xcc_id, inst, i, j, idx; in smu_v15_0_8_get_gpu_metrics() local 1747 xcc_id = GET_INST(GC, i); in smu_v15_0_8_get_gpu_metrics() 1748 if (xcc_id >= 0) in smu_v15_0_8_get_gpu_metrics() 1749 gpu_metrics->temperature_xcd[i] = SMUQ10_ROUND(metrics->XcdTemperature[xcc_id]); in smu_v15_0_8_get_gpu_metrics() 1762 xcc_id = GET_INST(GC, i); in smu_v15_0_8_get_gpu_metrics() 1763 if (xcc_id >= 0) { in smu_v15_0_8_get_gpu_metrics() 1765 SMUQ10_ROUND(metrics->GfxclkFrequency[xcc_id]); in smu_v15_0_8_get_gpu_metrics()
|