xref: /openbsd-src/sys/dev/pci/drm/i915/display/intel_backlight.h (revision 1bb76ff151c0aba8e3312a604e4cd2e5195cf4b7)
1b35a56d4Sjsg /* SPDX-License-Identifier: MIT */
2b35a56d4Sjsg /*
3b35a56d4Sjsg  * Copyright © 2021 Intel Corporation
4b35a56d4Sjsg  */
5b35a56d4Sjsg 
6b35a56d4Sjsg #ifndef __INTEL_BACKLIGHT_H__
7b35a56d4Sjsg #define __INTEL_BACKLIGHT_H__
8b35a56d4Sjsg 
9b35a56d4Sjsg #include <linux/types.h>
10b35a56d4Sjsg 
11b35a56d4Sjsg struct drm_connector_state;
12b35a56d4Sjsg struct intel_atomic_state;
13b35a56d4Sjsg struct intel_connector;
14b35a56d4Sjsg struct intel_crtc_state;
15b35a56d4Sjsg struct intel_encoder;
16b35a56d4Sjsg struct intel_panel;
17b35a56d4Sjsg enum pipe;
18b35a56d4Sjsg 
19*1bb76ff1Sjsg void intel_backlight_init_funcs(struct intel_panel *panel);
20*1bb76ff1Sjsg int intel_backlight_setup(struct intel_connector *connector, enum pipe pipe);
21*1bb76ff1Sjsg void intel_backlight_destroy(struct intel_panel *panel);
22*1bb76ff1Sjsg 
23*1bb76ff1Sjsg void intel_backlight_enable(const struct intel_crtc_state *crtc_state,
24b35a56d4Sjsg 			    const struct drm_connector_state *conn_state);
25*1bb76ff1Sjsg void intel_backlight_update(struct intel_atomic_state *state,
26b35a56d4Sjsg 			    struct intel_encoder *encoder,
27b35a56d4Sjsg 			    const struct intel_crtc_state *crtc_state,
28b35a56d4Sjsg 			    const struct drm_connector_state *conn_state);
29*1bb76ff1Sjsg void intel_backlight_disable(const struct drm_connector_state *old_conn_state);
30*1bb76ff1Sjsg 
31*1bb76ff1Sjsg void intel_backlight_set_acpi(const struct drm_connector_state *conn_state,
32*1bb76ff1Sjsg 			      u32 level, u32 max);
33*1bb76ff1Sjsg void intel_backlight_set_pwm_level(const struct drm_connector_state *conn_state,
34*1bb76ff1Sjsg 				   u32 level);
35*1bb76ff1Sjsg u32 intel_backlight_invert_pwm_level(struct intel_connector *connector, u32 level);
36*1bb76ff1Sjsg u32 intel_backlight_level_to_pwm(struct intel_connector *connector, u32 level);
37*1bb76ff1Sjsg u32 intel_backlight_level_from_pwm(struct intel_connector *connector, u32 val);
38b35a56d4Sjsg 
39b35a56d4Sjsg #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
40b35a56d4Sjsg int intel_backlight_device_register(struct intel_connector *connector);
41b35a56d4Sjsg void intel_backlight_device_unregister(struct intel_connector *connector);
42b35a56d4Sjsg #else /* CONFIG_BACKLIGHT_CLASS_DEVICE */
intel_backlight_device_register(struct intel_connector * connector)43b35a56d4Sjsg static inline int intel_backlight_device_register(struct intel_connector *connector)
44b35a56d4Sjsg {
45b35a56d4Sjsg 	return 0;
46b35a56d4Sjsg }
intel_backlight_device_unregister(struct intel_connector * connector)47b35a56d4Sjsg static inline void intel_backlight_device_unregister(struct intel_connector *connector)
48b35a56d4Sjsg {
49b35a56d4Sjsg }
50b35a56d4Sjsg #endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */
51b35a56d4Sjsg 
52b35a56d4Sjsg #endif /* __INTEL_BACKLIGHT_H__ */
53