summaryrefslogtreecommitdiff
path: root/samsung/exynos_drm_dqe.h
diff options
context:
space:
mode:
Diffstat (limited to 'samsung/exynos_drm_dqe.h')
-rw-r--r--samsung/exynos_drm_dqe.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/samsung/exynos_drm_dqe.h b/samsung/exynos_drm_dqe.h
index d578114..5760adb 100644
--- a/samsung/exynos_drm_dqe.h
+++ b/samsung/exynos_drm_dqe.h
@@ -26,6 +26,13 @@ struct exynos_dqe_funcs {
u32 width, u32 height);
};
+enum histogram_run_state {
+ HSTATE_DISABLED, /* histogram is disabled */
+ HSTATE_HIBERNATION, /* histogram is disabled due hibernation */
+ HSTATE_PENDING_FRAMEDONE, /* histogram is enabled, can be read on frame done */
+ HSTATE_IDLE, /* histogram is enabled, can be read at any time*/
+};
+
struct exynos_dqe_state {
const struct drm_color_lut *degamma_lut;
const struct exynos_matrix *linear_matrix;
@@ -35,15 +42,18 @@ struct exynos_dqe_state {
struct dither_config *disp_dither_config;
struct dither_config *cgc_dither_config;
bool enabled;
+ bool rcd_enabled;
+ struct drm_gem_object *cgc_gem;
+ spinlock_t histogram_slock;
+ struct exynos_drm_pending_histogram_event *event;
struct histogram_roi *roi;
struct histogram_weights *weights;
struct histogram_bins *bins;
- struct exynos_drm_pending_histogram_event *event;
u32 histogram_threshold;
- spinlock_t histogram_slock;
enum exynos_prog_pos histogram_pos;
- bool rcd_enabled;
- struct drm_gem_object *cgc_gem;
+ enum histogram_state hist_state;
+ enum histogram_run_state hist_run_state;
+ struct histogram_bins histogram_cached_bins;
};
struct dither_debug_override {
@@ -151,6 +161,7 @@ void handle_histogram_event(struct exynos_dqe *dqe);
void exynos_dqe_update(struct exynos_dqe *dqe, struct exynos_dqe_state *state,
u32 width, u32 height);
void exynos_dqe_reset(struct exynos_dqe *dqe);
+void exynos_dqe_hibernation_enter(struct exynos_dqe *dqe);
struct exynos_dqe *exynos_dqe_register(struct decon_device *decon);
void exynos_dqe_save_lpd_data(struct exynos_dqe *dqe);
void exynos_dqe_restore_lpd_data(struct exynos_dqe *dqe);