.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
---|
1 | 2 | /* |
---|
2 | 3 | * Copyright (c) 2012-2015, NVIDIA Corporation. |
---|
3 | | - * |
---|
4 | | - * This program is free software; you can redistribute it and/or modify it |
---|
5 | | - * under the terms and conditions of the GNU General Public License, |
---|
6 | | - * version 2, as published by the Free Software Foundation. |
---|
7 | | - * |
---|
8 | | - * This program is distributed in the hope it will be useful, but WITHOUT |
---|
9 | | - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
---|
10 | | - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
---|
11 | | - * more details. |
---|
12 | | - * |
---|
13 | | - * You should have received a copy of the GNU General Public License |
---|
14 | | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
---|
15 | 4 | */ |
---|
16 | 5 | |
---|
17 | 6 | #ifndef HOST1X_DEV_H |
---|
.. | .. |
---|
94 | 83 | int (*free_syncpt_irq)(struct host1x *host); |
---|
95 | 84 | }; |
---|
96 | 85 | |
---|
| 86 | +struct host1x_sid_entry { |
---|
| 87 | + unsigned int base; |
---|
| 88 | + unsigned int offset; |
---|
| 89 | + unsigned int limit; |
---|
| 90 | +}; |
---|
| 91 | + |
---|
97 | 92 | struct host1x_info { |
---|
98 | 93 | unsigned int nb_channels; /* host1x: number of channels supported */ |
---|
99 | 94 | unsigned int nb_pts; /* host1x: number of syncpoints supported */ |
---|
.. | .. |
---|
102 | 97 | int (*init)(struct host1x *host1x); /* initialize per SoC ops */ |
---|
103 | 98 | unsigned int sync_offset; /* offset of syncpoint registers */ |
---|
104 | 99 | u64 dma_mask; /* mask of addressable memory */ |
---|
| 100 | + bool has_wide_gather; /* supports GATHER_W opcode */ |
---|
105 | 101 | bool has_hypervisor; /* has hypervisor registers */ |
---|
| 102 | + unsigned int num_sid_entries; |
---|
| 103 | + const struct host1x_sid_entry *sid_table; |
---|
106 | 104 | }; |
---|
107 | 105 | |
---|
108 | 106 | struct host1x { |
---|
.. | .. |
---|
143 | 141 | struct list_head devices; |
---|
144 | 142 | |
---|
145 | 143 | struct list_head list; |
---|
| 144 | + |
---|
| 145 | + struct device_dma_parameters dma_parms; |
---|
146 | 146 | }; |
---|
147 | 147 | |
---|
148 | 148 | void host1x_hypervisor_writel(struct host1x *host1x, u32 r, u32 v); |
---|