| .. | .. |
|---|
| 119 | 119 | * struct venus_core - holds core parameters valid for all instances |
|---|
| 120 | 120 | * |
|---|
| 121 | 121 | * @base: IO memory base address |
|---|
| 122 | + * @vbif_base IO memory vbif base address |
|---|
| 123 | + * @cpu_base IO memory cpu base address |
|---|
| 124 | + * @cpu_cs_base IO memory cpu_cs base address |
|---|
| 125 | + * @cpu_ic_base IO memory cpu_ic base address |
|---|
| 126 | + * @wrapper_base IO memory wrapper base address |
|---|
| 122 | 127 | * @irq: Venus irq |
|---|
| 123 | 128 | * @clks: an array of struct clk pointers |
|---|
| 124 | 129 | * @vcodec0_clks: an array of vcodec0 struct clk pointers |
|---|
| .. | .. |
|---|
| 152 | 157 | */ |
|---|
| 153 | 158 | struct venus_core { |
|---|
| 154 | 159 | void __iomem *base; |
|---|
| 160 | + void __iomem *vbif_base; |
|---|
| 161 | + void __iomem *cpu_base; |
|---|
| 162 | + void __iomem *cpu_cs_base; |
|---|
| 163 | + void __iomem *cpu_ic_base; |
|---|
| 164 | + void __iomem *wrapper_base; |
|---|
| 155 | 165 | int irq; |
|---|
| 156 | 166 | struct clk *clks[VIDC_CLKS_NUM_MAX]; |
|---|
| 157 | 167 | struct clk *vcodec0_clks[VIDC_VCODEC_CLKS_NUM_MAX]; |
|---|
| .. | .. |
|---|
| 283 | 293 | VENUS_DEC_STATE_DRAIN = 5, |
|---|
| 284 | 294 | VENUS_DEC_STATE_DECODING = 6, |
|---|
| 285 | 295 | VENUS_DEC_STATE_DRC = 7, |
|---|
| 286 | | - VENUS_DEC_STATE_DRC_FLUSH_DONE = 8, |
|---|
| 287 | 296 | }; |
|---|
| 288 | 297 | |
|---|
| 289 | 298 | struct venus_ts_metadata { |
|---|
| .. | .. |
|---|
| 348 | 357 | * @priv: a private for HFI operations callbacks |
|---|
| 349 | 358 | * @session_type: the type of the session (decoder or encoder) |
|---|
| 350 | 359 | * @hprop: a union used as a holder by get property |
|---|
| 351 | | - * @last_buf: last capture buffer for dynamic-resoluton-change |
|---|
| 360 | + * @next_buf_last: a flag to mark next queued capture buffer as last |
|---|
| 352 | 361 | */ |
|---|
| 353 | 362 | struct venus_inst { |
|---|
| 354 | 363 | struct list_head list; |
|---|
| .. | .. |
|---|
| 410 | 419 | union hfi_get_property hprop; |
|---|
| 411 | 420 | unsigned int core_acquired: 1; |
|---|
| 412 | 421 | unsigned int bit_depth; |
|---|
| 413 | | - struct vb2_buffer *last_buf; |
|---|
| 422 | + bool next_buf_last; |
|---|
| 423 | + bool drain_active; |
|---|
| 414 | 424 | }; |
|---|
| 415 | 425 | |
|---|
| 416 | 426 | #define IS_V1(core) ((core)->res->hfi_version == HFI_VERSION_1XX) |
|---|
| 417 | 427 | #define IS_V3(core) ((core)->res->hfi_version == HFI_VERSION_3XX) |
|---|
| 418 | 428 | #define IS_V4(core) ((core)->res->hfi_version == HFI_VERSION_4XX) |
|---|
| 429 | +#define IS_V6(core) ((core)->res->hfi_version == HFI_VERSION_6XX) |
|---|
| 419 | 430 | |
|---|
| 420 | 431 | #define ctrl_to_inst(ctrl) \ |
|---|
| 421 | 432 | container_of((ctrl)->handler, struct venus_inst, ctrl_handler) |
|---|