jobs.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. *
  3. * (C) COPYRIGHT 2014-2016 ARM Limited. All rights reserved.
  4. *
  5. * This program is free software and is provided to you under the terms of the
  6. * GNU General Public License version 2 as published by the Free Software
  7. * Foundation, and any use by you of this program is subject to the terms
  8. * of such GNU licence.
  9. *
  10. * A copy of the licence is included with the program, and can also be obtained
  11. * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  12. * Boston, MA 02110-1301, USA.
  13. *
  14. */
  15. #ifndef __JOBS_H
  16. #define __JOBS_H
  17. struct job_descriptor_header {
  18. u32 exception_status;
  19. u32 first_incomplete_task;
  20. u64 fault_pointer;
  21. u8 job_descriptor_size : 1;
  22. u8 job_type : 7;
  23. u8 job_barrier : 1;
  24. u8 _reserved_01 : 1;
  25. u8 _reserved_1 : 1;
  26. u8 _reserved_02 : 1;
  27. u8 _reserved_03 : 1;
  28. u8 _reserved_2 : 1;
  29. u8 _reserved_04 : 1;
  30. u8 _reserved_05 : 1;
  31. u16 job_index;
  32. u16 job_dependency_index_1;
  33. u16 job_dependency_index_2;
  34. union {
  35. u64 _64;
  36. u64 _32;
  37. } next_job;
  38. } __attribute__((packed));
  39. typedef struct mali_jd_replay_payload {
  40. /**
  41. * Pointer to the first entry in the mali_jd_replay_jc list. These
  42. * will be replayed in @b reverse order (so that extra ones can be added
  43. * to the head in future soft jobs without affecting this soft job)
  44. */
  45. u64 tiler_jc_list;
  46. /**
  47. * Pointer to the fragment job chain.
  48. */
  49. u64 fragment_jc;
  50. /**
  51. * Pointer to the tiler heap free FBD field to be modified.
  52. */
  53. u64 tiler_heap_free;
  54. /**
  55. * Hierarchy mask for the replayed fragment jobs. May be zero.
  56. */
  57. u16 fragment_hierarchy_mask;
  58. /**
  59. * Hierarchy mask for the replayed tiler jobs. May be zero.
  60. */
  61. u16 tiler_hierarchy_mask;
  62. /**
  63. * Default weight to be used for hierarchy levels not in the original
  64. * mask.
  65. */
  66. u32 hierarchy_default_weight;
  67. /**
  68. * Core requirements for the tiler job chain
  69. */
  70. mali_jd_core_req tiler_core_req;
  71. /**
  72. * Core requirements for the fragment job chain
  73. */
  74. mali_jd_core_req fragment_core_req;
  75. u8 padding[4];
  76. } mali_jd_replay_payload;
  77. #endif