blob: dbe52a217c20e0c50e8e0fbca06bb46b746a9952 [file] [log] [blame]
Gopikrishnaiah Anandane0e5e0c2016-05-25 11:05:33 -07001
2/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 */
14
15#ifndef _SDE_COLOR_PROCESSING_H
16#define _SDE_COLOR_PROCESSING_H
17#include <drm/drm_crtc.h>
18
19/**
20 * sde_cp_crtc_init(): Initialize color processing lists for a crtc.
21 * Should be called during crtc initialization.
22 * @crtc: Pointer to sde_crtc.
23 */
24void sde_cp_crtc_init(struct drm_crtc *crtc);
25
26/**
27 * sde_cp_crtc_install_properties(): Installs the color processing
28 * properties for a crtc.
29 * Should be called during crtc initialization.
30 * @crtc: Pointer to crtc.
31 */
32void sde_cp_crtc_install_properties(struct drm_crtc *crtc);
33
34/**
35 * sde_cp_crtc_destroy_properties: Destroys color processing
36 * properties for a crtc.
37 * should be called during crtc de-initialization.
38 * @crtc: Pointer to crtc.
39 */
40void sde_cp_crtc_destroy_properties(struct drm_crtc *crtc);
41
42/**
43 * sde_cp_crtc_set_property: Set a color processing property
44 * for a crtc.
45 * Should be during atomic set property.
46 * @crtc: Pointer to crtc.
47 * @property: Property that needs to enabled/disabled.
48 * @val: Value of property.
49 */
50int sde_cp_crtc_set_property(struct drm_crtc *crtc,
51 struct drm_property *property, uint64_t val);
52
53/**
54 * sde_cp_crtc_apply_properties: Enable/disable properties
55 * for a crtc.
56 * Should be called during atomic commit call.
57 * @crtc: Pointer to crtc.
58 */
59void sde_cp_crtc_apply_properties(struct drm_crtc *crtc);
60
61/**
62 * sde_cp_crtc_get_property: Get value of color processing property
63 * for a crtc.
64 * Should be during atomic get property.
65 * @crtc: Pointer to crtc.
66 * @property: Property that needs to enabled/disabled.
67 * @val: Value of property.
68 *
69 */
70int sde_cp_crtc_get_property(struct drm_crtc *crtc,
71 struct drm_property *property, uint64_t *val);
Gopikrishnaiah Anandan7f6ef942016-06-20 15:50:00 -070072
73/**
74 * sde_cp_crtc_suspend: Suspend the crtc features
75 * @crtc: Pointer to crtc.
76 */
77void sde_cp_crtc_suspend(struct drm_crtc *crtc);
78
79/**
80 * sde_cp_crtc_resume: Resume the crtc features
81 * @crtc: Pointer to crtc.
82 */
83void sde_cp_crtc_resume(struct drm_crtc *crtc);
Gopikrishnaiah Anandane0e5e0c2016-05-25 11:05:33 -070084#endif /*_SDE_COLOR_PROCESSING_H */