nouveau_chan.h 835 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef __NOUVEAU_CHAN_H__
  2. #define __NOUVEAU_CHAN_H__
  3. struct nouveau_cli;
  4. struct nouveau_channel {
  5. struct nouveau_cli *cli;
  6. struct nouveau_drm *drm;
  7. u32 handle;
  8. u32 vram;
  9. u32 gart;
  10. struct {
  11. struct nouveau_bo *buffer;
  12. struct nouveau_vma vma;
  13. u32 handle;
  14. } push;
  15. /* TODO: this will be reworked in the near future */
  16. bool accel_done;
  17. void *fence;
  18. struct {
  19. int max;
  20. int free;
  21. int cur;
  22. int put;
  23. int ib_base;
  24. int ib_max;
  25. int ib_free;
  26. int ib_put;
  27. } dma;
  28. u32 user_get_hi;
  29. u32 user_get;
  30. u32 user_put;
  31. struct nouveau_object *object;
  32. };
  33. int nouveau_channel_new(struct nouveau_drm *, struct nouveau_cli *,
  34. u32 parent, u32 handle, u32 arg0, u32 arg1,
  35. struct nouveau_channel **);
  36. void nouveau_channel_del(struct nouveau_channel **);
  37. int nouveau_channel_idle(struct nouveau_channel *);
  38. #endif