| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. |
|---|
| 2 | | - * |
|---|
| 3 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 4 | | - * it under the terms of the GNU General Public License version 2 and |
|---|
| 5 | | - * only version 2 as published by the Free Software Foundation. |
|---|
| 6 | | - * |
|---|
| 7 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 8 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 9 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 10 | | - * GNU General Public License for more details. |
|---|
| 11 | 3 | */ |
|---|
| 12 | 4 | |
|---|
| 13 | 5 | #ifndef _DPU_HW_CTL_H |
|---|
| .. | .. |
|---|
| 99 | 91 | u32 flushbits); |
|---|
| 100 | 92 | |
|---|
| 101 | 93 | /** |
|---|
| 94 | + * OR in the given flushbits to the cached pending_intf_flush_mask |
|---|
| 95 | + * No effect on hardware |
|---|
| 96 | + * @ctx : ctl path ctx pointer |
|---|
| 97 | + * @flushbits : module flushmask |
|---|
| 98 | + */ |
|---|
| 99 | + void (*update_pending_intf_flush)(struct dpu_hw_ctl *ctx, |
|---|
| 100 | + u32 flushbits); |
|---|
| 101 | + |
|---|
| 102 | + /** |
|---|
| 102 | 103 | * Write the value of the pending_flush_mask to hardware |
|---|
| 103 | 104 | * @ctx : ctl path ctx pointer |
|---|
| 104 | 105 | */ |
|---|
| .. | .. |
|---|
| 138 | 139 | uint32_t (*get_bitmask_mixer)(struct dpu_hw_ctl *ctx, |
|---|
| 139 | 140 | enum dpu_lm blk); |
|---|
| 140 | 141 | |
|---|
| 142 | + uint32_t (*get_bitmask_dspp)(struct dpu_hw_ctl *ctx, |
|---|
| 143 | + enum dpu_dspp blk); |
|---|
| 144 | + |
|---|
| 145 | + /** |
|---|
| 146 | + * Query the value of the intf flush mask |
|---|
| 147 | + * No effect on hardware |
|---|
| 148 | + * @ctx : ctl path ctx pointer |
|---|
| 149 | + */ |
|---|
| 141 | 150 | int (*get_bitmask_intf)(struct dpu_hw_ctl *ctx, |
|---|
| 142 | 151 | u32 *flushbits, |
|---|
| 143 | 152 | enum dpu_intf blk); |
|---|
| 144 | 153 | |
|---|
| 145 | | - int (*get_bitmask_cdm)(struct dpu_hw_ctl *ctx, |
|---|
| 146 | | - u32 *flushbits, |
|---|
| 147 | | - enum dpu_cdm blk); |
|---|
| 154 | + /** |
|---|
| 155 | + * Query the value of the intf active flush mask |
|---|
| 156 | + * No effect on hardware |
|---|
| 157 | + * @ctx : ctl path ctx pointer |
|---|
| 158 | + */ |
|---|
| 159 | + int (*get_bitmask_active_intf)(struct dpu_hw_ctl *ctx, |
|---|
| 160 | + u32 *flushbits, enum dpu_intf blk); |
|---|
| 148 | 161 | |
|---|
| 149 | 162 | /** |
|---|
| 150 | 163 | * Set all blend stages to disabled |
|---|
| .. | .. |
|---|
| 171 | 184 | * @mixer_count: number of mixers |
|---|
| 172 | 185 | * @mixer_hw_caps: mixer hardware capabilities |
|---|
| 173 | 186 | * @pending_flush_mask: storage for pending ctl_flush managed via ops |
|---|
| 187 | + * @pending_intf_flush_mask: pending INTF flush |
|---|
| 174 | 188 | * @ops: operation list |
|---|
| 175 | 189 | */ |
|---|
| 176 | 190 | struct dpu_hw_ctl { |
|---|
| .. | .. |
|---|
| 183 | 197 | int mixer_count; |
|---|
| 184 | 198 | const struct dpu_lm_cfg *mixer_hw_caps; |
|---|
| 185 | 199 | u32 pending_flush_mask; |
|---|
| 200 | + u32 pending_intf_flush_mask; |
|---|
| 186 | 201 | |
|---|
| 187 | 202 | /* ops */ |
|---|
| 188 | 203 | struct dpu_hw_ctl_ops ops; |
|---|
| .. | .. |
|---|
| 207 | 222 | */ |
|---|
| 208 | 223 | struct dpu_hw_ctl *dpu_hw_ctl_init(enum dpu_ctl idx, |
|---|
| 209 | 224 | void __iomem *addr, |
|---|
| 210 | | - struct dpu_mdss_cfg *m); |
|---|
| 225 | + const struct dpu_mdss_cfg *m); |
|---|
| 211 | 226 | |
|---|
| 212 | 227 | /** |
|---|
| 213 | 228 | * dpu_hw_ctl_destroy(): Destroys ctl driver context |
|---|