Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * R-Car Display Unit Color Management Module
0004  *
0005  * Copyright (C) 2019 Jacopo Mondi <jacopo+renesas@jmondi.org>
0006  */
0007 
0008 #ifndef __RCAR_CMM_H__
0009 #define __RCAR_CMM_H__
0010 
0011 #define CM2_LUT_SIZE        256
0012 
0013 struct drm_color_lut;
0014 struct platform_device;
0015 
0016 /**
0017  * struct rcar_cmm_config - CMM configuration
0018  *
0019  * @lut:    1D-LUT configuration
0020  * @lut.table:  1D-LUT table entries. Disable LUT operations when NULL
0021  */
0022 struct rcar_cmm_config {
0023     struct {
0024         struct drm_color_lut *table;
0025     } lut;
0026 };
0027 
0028 #if IS_ENABLED(CONFIG_DRM_RCAR_CMM)
0029 int rcar_cmm_init(struct platform_device *pdev);
0030 
0031 int rcar_cmm_enable(struct platform_device *pdev);
0032 void rcar_cmm_disable(struct platform_device *pdev);
0033 
0034 int rcar_cmm_setup(struct platform_device *pdev,
0035            const struct rcar_cmm_config *config);
0036 #else
0037 static inline int rcar_cmm_init(struct platform_device *pdev)
0038 {
0039     return -ENODEV;
0040 }
0041 
0042 static inline int rcar_cmm_enable(struct platform_device *pdev)
0043 {
0044     return 0;
0045 }
0046 
0047 static inline void rcar_cmm_disable(struct platform_device *pdev)
0048 {
0049 }
0050 
0051 static inline int rcar_cmm_setup(struct platform_device *pdev,
0052                  const struct rcar_cmm_config *config)
0053 {
0054     return 0;
0055 }
0056 #endif /* IS_ENABLED(CONFIG_DRM_RCAR_CMM) */
0057 
0058 #endif /* __RCAR_CMM_H__ */