amdgpu.h (770d13b19fdf365a99e559f1d47f1380910a947d) amdgpu.h (132f34e4b558488cc8d153a1d18833054a76e44c)
1/*
2 * Copyright 2008 Advanced Micro Devices, Inc.
3 * Copyright 2008 Red Hat Inc.
4 * Copyright 2009 Jerome Glisse.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation

--- 319 unchanged lines hidden (view full) ---

328
329 /* for linear pte/pde updates without addr mapping */
330 void (*set_pte_pde)(struct amdgpu_ib *ib,
331 uint64_t pe,
332 uint64_t addr, unsigned count,
333 uint32_t incr, uint64_t flags);
334};
335
1/*
2 * Copyright 2008 Advanced Micro Devices, Inc.
3 * Copyright 2008 Red Hat Inc.
4 * Copyright 2009 Jerome Glisse.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation

--- 319 unchanged lines hidden (view full) ---

328
329 /* for linear pte/pde updates without addr mapping */
330 void (*set_pte_pde)(struct amdgpu_ib *ib,
331 uint64_t pe,
332 uint64_t addr, unsigned count,
333 uint32_t incr, uint64_t flags);
334};
335
336/* provided by the gmc block */
337struct amdgpu_gart_funcs {
338 /* flush the vm tlb via mmio */
339 void (*flush_gpu_tlb)(struct amdgpu_device *adev,
340 uint32_t vmid);
341 /* write pte/pde updates using the cpu */
342 int (*set_pte_pde)(struct amdgpu_device *adev,
343 void *cpu_pt_addr, /* cpu addr of page table */
344 uint32_t gpu_page_idx, /* pte/pde to update */
345 uint64_t addr, /* addr to write into pte/pde */
346 uint64_t flags); /* access flags */
347 /* enable/disable PRT support */
348 void (*set_prt)(struct amdgpu_device *adev, bool enable);
349 /* set pte flags based per asic */
350 uint64_t (*get_vm_pte_flags)(struct amdgpu_device *adev,
351 uint32_t flags);
352 /* get the pde for a given mc addr */
353 void (*get_vm_pde)(struct amdgpu_device *adev, int level,
354 u64 *dst, u64 *flags);
355 uint32_t (*get_invalidate_req)(unsigned int vmid);
356};
357
358/* provided by the ih block */
359struct amdgpu_ih_funcs {
360 /* ring read/write ptr handling, called from interrupt context */
361 u32 (*get_wptr)(struct amdgpu_device *adev);
362 bool (*prescreen_iv)(struct amdgpu_device *adev);
363 void (*decode_iv)(struct amdgpu_device *adev,
364 struct amdgpu_iv_entry *entry);
365 void (*set_rptr)(struct amdgpu_device *adev);

--- 1426 unchanged lines hidden (view full) ---

1792#define amdgpu_set_pcie_lanes(adev, l) (adev)->asic_funcs->set_pcie_lanes((adev), (l))
1793#define amdgpu_asic_get_gpu_clock_counter(adev) (adev)->asic_funcs->get_gpu_clock_counter((adev))
1794#define amdgpu_asic_read_disabled_bios(adev) (adev)->asic_funcs->read_disabled_bios((adev))
1795#define amdgpu_asic_read_bios_from_rom(adev, b, l) (adev)->asic_funcs->read_bios_from_rom((adev), (b), (l))
1796#define amdgpu_asic_read_register(adev, se, sh, offset, v)((adev)->asic_funcs->read_register((adev), (se), (sh), (offset), (v)))
1797#define amdgpu_asic_get_config_memsize(adev) (adev)->asic_funcs->get_config_memsize((adev))
1798#define amdgpu_asic_flush_hdp(adev) (adev)->asic_funcs->flush_hdp((adev))
1799#define amdgpu_asic_invalidate_hdp(adev) (adev)->asic_funcs->invalidate_hdp((adev))
336/* provided by the ih block */
337struct amdgpu_ih_funcs {
338 /* ring read/write ptr handling, called from interrupt context */
339 u32 (*get_wptr)(struct amdgpu_device *adev);
340 bool (*prescreen_iv)(struct amdgpu_device *adev);
341 void (*decode_iv)(struct amdgpu_device *adev,
342 struct amdgpu_iv_entry *entry);
343 void (*set_rptr)(struct amdgpu_device *adev);

--- 1426 unchanged lines hidden (view full) ---

1770#define amdgpu_set_pcie_lanes(adev, l) (adev)->asic_funcs->set_pcie_lanes((adev), (l))
1771#define amdgpu_asic_get_gpu_clock_counter(adev) (adev)->asic_funcs->get_gpu_clock_counter((adev))
1772#define amdgpu_asic_read_disabled_bios(adev) (adev)->asic_funcs->read_disabled_bios((adev))
1773#define amdgpu_asic_read_bios_from_rom(adev, b, l) (adev)->asic_funcs->read_bios_from_rom((adev), (b), (l))
1774#define amdgpu_asic_read_register(adev, se, sh, offset, v)((adev)->asic_funcs->read_register((adev), (se), (sh), (offset), (v)))
1775#define amdgpu_asic_get_config_memsize(adev) (adev)->asic_funcs->get_config_memsize((adev))
1776#define amdgpu_asic_flush_hdp(adev) (adev)->asic_funcs->flush_hdp((adev))
1777#define amdgpu_asic_invalidate_hdp(adev) (adev)->asic_funcs->invalidate_hdp((adev))
1800#define amdgpu_gart_flush_gpu_tlb(adev, vmid) (adev)->gart.gart_funcs->flush_gpu_tlb((adev), (vmid))
1801#define amdgpu_gart_set_pte_pde(adev, pt, idx, addr, flags) (adev)->gart.gart_funcs->set_pte_pde((adev), (pt), (idx), (addr), (flags))
1802#define amdgpu_gart_get_vm_pde(adev, level, dst, flags) (adev)->gart.gart_funcs->get_vm_pde((adev), (level), (dst), (flags))
1778#define amdgpu_gmc_flush_gpu_tlb(adev, vmid) (adev)->gmc.gmc_funcs->flush_gpu_tlb((adev), (vmid))
1779#define amdgpu_gmc_set_pte_pde(adev, pt, idx, addr, flags) (adev)->gmc.gmc_funcs->set_pte_pde((adev), (pt), (idx), (addr), (flags))
1780#define amdgpu_gmc_get_vm_pde(adev, level, dst, flags) (adev)->gmc.gmc_funcs->get_vm_pde((adev), (level), (dst), (flags))
1781#define amdgpu_gmc_get_pte_flags(adev, flags) (adev)->gmc.gmc_funcs->get_vm_pte_flags((adev),(flags))
1803#define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count)))
1804#define amdgpu_vm_write_pte(adev, ib, pe, value, count, incr) ((adev)->vm_manager.vm_pte_funcs->write_pte((ib), (pe), (value), (count), (incr)))
1805#define amdgpu_vm_set_pte_pde(adev, ib, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->set_pte_pde((ib), (pe), (addr), (count), (incr), (flags)))
1782#define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count)))
1783#define amdgpu_vm_write_pte(adev, ib, pe, value, count, incr) ((adev)->vm_manager.vm_pte_funcs->write_pte((ib), (pe), (value), (count), (incr)))
1784#define amdgpu_vm_set_pte_pde(adev, ib, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->set_pte_pde((ib), (pe), (addr), (count), (incr), (flags)))
1806#define amdgpu_vm_get_pte_flags(adev, flags) (adev)->gart.gart_funcs->get_vm_pte_flags((adev),(flags))
1807#define amdgpu_ring_parse_cs(r, p, ib) ((r)->funcs->parse_cs((p), (ib)))
1808#define amdgpu_ring_test_ring(r) (r)->funcs->test_ring((r))
1809#define amdgpu_ring_test_ib(r, t) (r)->funcs->test_ib((r), (t))
1810#define amdgpu_ring_get_rptr(r) (r)->funcs->get_rptr((r))
1811#define amdgpu_ring_get_wptr(r) (r)->funcs->get_wptr((r))
1812#define amdgpu_ring_set_wptr(r) (r)->funcs->set_wptr((r))
1813#define amdgpu_ring_emit_ib(r, ib, vmid, c) (r)->funcs->emit_ib((r), (ib), (vmid), (c))
1814#define amdgpu_ring_emit_pipeline_sync(r) (r)->funcs->emit_pipeline_sync((r))

--- 142 unchanged lines hidden ---
1785#define amdgpu_ring_parse_cs(r, p, ib) ((r)->funcs->parse_cs((p), (ib)))
1786#define amdgpu_ring_test_ring(r) (r)->funcs->test_ring((r))
1787#define amdgpu_ring_test_ib(r, t) (r)->funcs->test_ib((r), (t))
1788#define amdgpu_ring_get_rptr(r) (r)->funcs->get_rptr((r))
1789#define amdgpu_ring_get_wptr(r) (r)->funcs->get_wptr((r))
1790#define amdgpu_ring_set_wptr(r) (r)->funcs->set_wptr((r))
1791#define amdgpu_ring_emit_ib(r, ib, vmid, c) (r)->funcs->emit_ib((r), (ib), (vmid), (c))
1792#define amdgpu_ring_emit_pipeline_sync(r) (r)->funcs->emit_pipeline_sync((r))

--- 142 unchanged lines hidden ---