summaryrefslogtreecommitdiff
path: root/include/video
diff options
context:
space:
mode:
authorLiu Ying <victor.liu@nxp.com>2019-04-08 16:11:53 +0800
committerLiu Ying <victor.liu@nxp.com>2020-07-09 09:42:03 +0800
commitc30b395e8d940691440fd0b042c23af85298b8d7 (patch)
tree4a9d3a7f7986b88b8d5df83838a2260cd6cf3548 /include/video
parent97b5de8b94ffab07c6a2bd42884d0fd13d42b3a1 (diff)
MLK-21509-1 gpu: imx: dpu: common: Add signature unit support
This patch adds signature unit support in the dpu common driver. Signed-off-by: Liu Ying <victor.liu@nxp.com> Reviewed-by: Robby Cai <robby.cai@nxp.com>
Diffstat (limited to 'include/video')
-rw-r--r--include/video/dpu.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/include/video/dpu.h b/include/video/dpu.h
index 56989798184e..0155fbebf677 100644
--- a/include/video/dpu.h
+++ b/include/video/dpu.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2016 Freescale Semiconductor, Inc.
- * Copyright 2017-2019 NXP
+ * Copyright 2017-2020 NXP
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -325,6 +325,11 @@ enum {
FU_T_FW,
};
+enum dpu_crc_source {
+ DPU_CRC_SRC_NONE,
+ DPU_CRC_SRC_FRAMEGEN,
+};
+
struct dpu_fetchunit;
struct dpu_fetchunit_ops {
@@ -554,6 +559,36 @@ void layerblend_position(struct dpu_layerblend *lb, int x, int y);
struct dpu_layerblend *dpu_lb_get(struct dpu_soc *dpu, int id);
void dpu_lb_put(struct dpu_layerblend *lb);
+/* Signature Unit */
+#define MAX_DPU_SIGNATURE_WIN_NUM 8
+struct dpu_signature;
+void signature_shden(struct dpu_signature *sig, bool enable);
+void signature_shdldsel_local(struct dpu_signature *sig);
+void signature_shdldsel_global(struct dpu_signature *sig);
+void
+signature_global_panic(struct dpu_signature *sig, unsigned int win, bool enable);
+void
+signature_local_panic(struct dpu_signature *sig, unsigned int win, bool enable);
+void
+signature_alpha_mask(struct dpu_signature *sig, unsigned int win, bool enable);
+void signature_crc(struct dpu_signature *sig, unsigned int win, bool enable);
+void
+signature_eval_win(struct dpu_signature *sig, unsigned int win, bool enable);
+void signature_win(struct dpu_signature *sig, unsigned int win,
+ int xul, int yul, int xlr, int ylr);
+void signature_crc_value(struct dpu_signature *sig, unsigned int win,
+ u32 *red, u32 *green, u32 *blue);
+void signature_shdldreq(struct dpu_signature *sig, u8 win_mask);
+void signature_continuous_mode(struct dpu_signature *sig, bool enable);
+void signature_kick(struct dpu_signature *sig);
+bool signature_is_idle(struct dpu_signature *sig);
+void signature_wait_for_idle(struct dpu_signature *sig);
+bool signature_is_valid(struct dpu_signature *sig);
+bool signature_is_error(struct dpu_signature *sig, u8 *err_win_mask);
+struct dpu_signature *dpu_sig_get(struct dpu_soc *dpu, int id);
+void dpu_sig_put(struct dpu_signature *sig);
+struct dpu_signature *dpu_aux_sig_peek(struct dpu_signature *sig);
+
/* Store Unit */
struct dpu_store;
void store_pixengcfg_syncmode_fixup(struct dpu_store *st, bool enable);