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