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
13struct drm_color_lut;
14struct 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 */
22struct rcar_cmm_config {
23 struct {
24 struct drm_color_lut *table;
25 } lut;
26};
27
28#if IS_ENABLED(CONFIG_DRM_RCAR_CMM)
29int rcar_cmm_init(struct platform_device *pdev);
30
31int rcar_cmm_enable(struct platform_device *pdev);
32void rcar_cmm_disable(struct platform_device *pdev);
33
34int rcar_cmm_setup(struct platform_device *pdev,
35 const struct rcar_cmm_config *config);
36#else
37static inline int rcar_cmm_init(struct platform_device *pdev)
38{
39 return -ENODEV;
40}
41
42static inline int rcar_cmm_enable(struct platform_device *pdev)
43{
44 return 0;
45}
46
47static inline void rcar_cmm_disable(struct platform_device *pdev)
48{
49}
50
51static 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

source code of linux/drivers/gpu/drm/renesas/rcar-du/rcar_cmm.h