| .. | .. |
|---|
| 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); |
|---|