1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Tegra host1x Job 4 * 5 * Copyright (c) 2011-2013, NVIDIA Corporation. 6 */ 7 8 #ifndef __HOST1X_JOB_H 9 #define __HOST1X_JOB_H 10 11 #include <linux/dma-direction.h> 12 13 struct host1x_job_gather { 14 unsigned int words; 15 dma_addr_t base; 16 struct host1x_bo *bo; 17 unsigned int offset; 18 bool handled; 19 }; 20 21 struct host1x_job_wait { 22 u32 id; 23 u32 threshold; 24 u32 next_class; 25 bool relative; 26 }; 27 28 struct host1x_job_cmd { 29 bool is_wait; 30 31 union { 32 struct host1x_job_gather gather; 33 struct host1x_job_wait wait; 34 }; 35 }; 36 37 struct host1x_job_unpin_data { 38 struct host1x_bo *bo; 39 struct sg_table *sgt; 40 struct device *dev; 41 size_t size; 42 enum dma_data_direction dir; 43 }; 44 45 /* 46 * Dump contents of job to debug output. 47 */ 48 void host1x_job_dump(struct device *dev, struct host1x_job *job); 49 50 #endif 51