1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2021 Intel Corporation
6 #ifndef __INTEL_BACKLIGHT_H__
7 #define __INTEL_BACKLIGHT_H__
9 #include <linux/types.h>
11 struct drm_connector_state;
12 struct intel_atomic_state;
13 struct intel_connector;
14 struct intel_crtc_state;
19 void intel_backlight_init_funcs(struct intel_panel *panel);
20 int intel_backlight_setup(struct intel_connector *connector, enum pipe pipe);
21 void intel_backlight_destroy(struct intel_panel *panel);
23 void intel_backlight_enable(const struct intel_crtc_state *crtc_state,
24 const struct drm_connector_state *conn_state);
25 void intel_backlight_update(struct intel_atomic_state *state,
26 struct intel_encoder *encoder,
27 const struct intel_crtc_state *crtc_state,
28 const struct drm_connector_state *conn_state);
29 void intel_backlight_disable(const struct drm_connector_state *old_conn_state);
31 void intel_backlight_set_acpi(const struct drm_connector_state *conn_state,
33 void intel_backlight_set_pwm_level(const struct drm_connector_state *conn_state,
35 u32 intel_backlight_invert_pwm_level(struct intel_connector *connector, u32 level);
36 u32 intel_backlight_level_to_pwm(struct intel_connector *connector, u32 level);
37 u32 intel_backlight_level_from_pwm(struct intel_connector *connector, u32 val);
39 #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
40 int intel_backlight_device_register(struct intel_connector *connector);
41 void intel_backlight_device_unregister(struct intel_connector *connector);
42 #else /* CONFIG_BACKLIGHT_CLASS_DEVICE */
43 static inline int intel_backlight_device_register(struct intel_connector *connector)
47 static inline void intel_backlight_device_unregister(struct intel_connector *connector)
50 #endif /* CONFIG_BACKLIGHT_CLASS_DEVICE */
52 #endif /* __INTEL_BACKLIGHT_H__ */