1/* SPDX-License-Identifier: MIT
2 *
3 * Copyright © 2024 Intel Corporation
4 */
5
6#ifndef _INTEL_ALPM_H
7#define _INTEL_ALPM_H
8
9#include <linux/types.h>
10
11struct intel_dp;
12struct intel_crtc_state;
13struct drm_connector_state;
14struct intel_connector;
15struct intel_atomic_state;
16struct intel_crtc;
17
18void intel_alpm_init(struct intel_dp *intel_dp);
19bool intel_alpm_compute_params(struct intel_dp *intel_dp,
20 const struct intel_crtc_state *crtc_state);
21void intel_alpm_lobf_compute_config(struct intel_dp *intel_dp,
22 struct intel_crtc_state *crtc_state,
23 struct drm_connector_state *conn_state);
24void intel_alpm_configure(struct intel_dp *intel_dp,
25 const struct intel_crtc_state *crtc_state);
26void intel_alpm_enable_sink(struct intel_dp *intel_dp,
27 const struct intel_crtc_state *crtc_state);
28void intel_alpm_pre_plane_update(struct intel_atomic_state *state,
29 struct intel_crtc *crtc);
30void intel_alpm_port_configure(struct intel_dp *intel_dp,
31 const struct intel_crtc_state *crtc_state);
32void intel_alpm_post_plane_update(struct intel_atomic_state *state,
33 struct intel_crtc *crtc);
34void intel_alpm_lobf_debugfs_add(struct intel_connector *connector);
35bool intel_alpm_aux_wake_supported(struct intel_dp *intel_dp);
36bool intel_alpm_aux_less_wake_supported(struct intel_dp *intel_dp);
37bool intel_alpm_is_alpm_aux_less(struct intel_dp *intel_dp,
38 const struct intel_crtc_state *crtc_state);
39void intel_alpm_disable(struct intel_dp *intel_dp);
40bool intel_alpm_get_error(struct intel_dp *intel_dp);
41#endif
42