1 /* SPDX-License-Identifier: MIT */ 2 3 #ifndef __CRCC37D_H__ 4 #define __CRCC37D_H__ 5 6 #include <linux/types.h> 7 8 #include "crc.h" 9 10 #define CRCC37D_MAX_ENTRIES 2047 11 #define CRCC37D_FLIP_THRESHOLD (CRCC37D_MAX_ENTRIES - 30) 12 13 struct crcc37d_notifier { 14 u32 status; 15 16 /* reserved */ 17 u32:32; 18 u32:32; 19 u32:32; 20 u32:32; 21 u32:32; 22 u32:32; 23 u32:32; 24 25 struct crcc37d_entry { 26 u32 status[2]; 27 u32:32; /* reserved */ 28 u32 compositor_crc; 29 u32 rg_crc; 30 u32 output_crc[2]; 31 u32:32; /* reserved */ 32 } entries[CRCC37D_MAX_ENTRIES]; 33 } __packed; 34 35 int crcc37d_set_ctx(struct nv50_head *head, struct nv50_crc_notifier_ctx *ctx); 36 u32 crcc37d_get_entry(struct nv50_head *head, struct nv50_crc_notifier_ctx *ctx, 37 enum nv50_crc_source source, int idx); 38 bool crcc37d_ctx_finished(struct nv50_head *head, struct nv50_crc_notifier_ctx *ctx); 39 40 #endif /* !__CRCC37D_H__ */ 41