1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | /* |
3 | * R-Car Display Unit Color Management Module |
4 | * |
5 | * Copyright (C) 2019 Jacopo Mondi <jacopo+renesas@jmondi.org> |
6 | */ |
7 | |
8 | #ifndef __RCAR_CMM_H__ |
9 | #define __RCAR_CMM_H__ |
10 | |
11 | #define CM2_LUT_SIZE 256 |
12 | |
13 | struct drm_color_lut; |
14 | struct platform_device; |
15 | |
16 | /** |
17 | * struct rcar_cmm_config - CMM configuration |
18 | * |
19 | * @lut: 1D-LUT configuration |
20 | * @lut.table: 1D-LUT table entries. Disable LUT operations when NULL |
21 | */ |
22 | struct rcar_cmm_config { |
23 | struct { |
24 | struct drm_color_lut *table; |
25 | } lut; |
26 | }; |
27 | |
28 | #if IS_ENABLED(CONFIG_DRM_RCAR_CMM) |
29 | int rcar_cmm_init(struct platform_device *pdev); |
30 | |
31 | int rcar_cmm_enable(struct platform_device *pdev); |
32 | void rcar_cmm_disable(struct platform_device *pdev); |
33 | |
34 | int rcar_cmm_setup(struct platform_device *pdev, |
35 | const struct rcar_cmm_config *config); |
36 | #else |
37 | static inline int rcar_cmm_init(struct platform_device *pdev) |
38 | { |
39 | return -ENODEV; |
40 | } |
41 | |
42 | static inline int rcar_cmm_enable(struct platform_device *pdev) |
43 | { |
44 | return 0; |
45 | } |
46 | |
47 | static inline void rcar_cmm_disable(struct platform_device *pdev) |
48 | { |
49 | } |
50 | |
51 | static inline int rcar_cmm_setup(struct platform_device *pdev, |
52 | const struct rcar_cmm_config *config) |
53 | { |
54 | return 0; |
55 | } |
56 | #endif /* IS_ENABLED(CONFIG_DRM_RCAR_CMM) */ |
57 | |
58 | #endif /* __RCAR_CMM_H__ */ |
59 | |