rcar_cmm.h 1.2 KB

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