Jani Nikula | 44c1220a | 2019-04-05 14:00:14 +0300 | [diff] [blame] | 1 | /* SPDX-License-Identifier: MIT */ |
| 2 | /* |
| 3 | * Copyright © 2019 Intel Corporation |
| 4 | */ |
| 5 | |
| 6 | #ifndef __INTEL_PANEL_H__ |
| 7 | #define __INTEL_PANEL_H__ |
| 8 | |
| 9 | #include <linux/types.h> |
| 10 | |
Jani Nikula | 6cc42fb | 2021-08-25 14:06:50 +0300 | [diff] [blame] | 11 | enum drm_connector_status; |
Ville Syrjälä | f0a5779 | 2022-03-11 19:24:21 +0200 | [diff] [blame] | 12 | enum drrs_type; |
Jani Nikula | 44c1220a | 2019-04-05 14:00:14 +0300 | [diff] [blame] | 13 | struct drm_connector; |
| 14 | struct drm_connector_state; |
| 15 | struct drm_display_mode; |
Jani Nikula | 15d045f | 2023-01-25 13:10:52 +0200 | [diff] [blame] | 16 | struct drm_edid; |
Jani Nikula | 6cc42fb | 2021-08-25 14:06:50 +0300 | [diff] [blame] | 17 | struct drm_i915_private; |
Jani Nikula | 44c1220a | 2019-04-05 14:00:14 +0300 | [diff] [blame] | 18 | struct intel_connector; |
Jani Nikula | 44c1220a | 2019-04-05 14:00:14 +0300 | [diff] [blame] | 19 | struct intel_crtc_state; |
Ville Syrjälä | 5248cc7 | 2022-03-23 20:29:33 +0200 | [diff] [blame] | 20 | struct intel_encoder; |
Jani Nikula | 44c1220a | 2019-04-05 14:00:14 +0300 | [diff] [blame] | 21 | |
Ville Syrjälä | f70f815 | 2022-11-25 19:31:48 +0200 | [diff] [blame] | 22 | void intel_panel_init_alloc(struct intel_connector *connector); |
Jani Nikula | 15d045f | 2023-01-25 13:10:52 +0200 | [diff] [blame] | 23 | int intel_panel_init(struct intel_connector *connector, |
| 24 | const struct drm_edid *fixed_edid); |
Ville Syrjälä | 5d2fd49 | 2022-03-23 20:29:27 +0200 | [diff] [blame] | 25 | void intel_panel_fini(struct intel_connector *connector); |
Ville Syrjälä | b81dddb | 2020-09-10 19:42:56 +0300 | [diff] [blame] | 26 | enum drm_connector_status |
| 27 | intel_panel_detect(struct drm_connector *connector, bool force); |
Jani Nikula | 3c6a4a0 | 2021-08-18 13:11:08 +0300 | [diff] [blame] | 28 | bool intel_panel_use_ssc(struct drm_i915_private *i915); |
Ville Syrjälä | 0927067 | 2022-03-11 19:24:18 +0200 | [diff] [blame] | 29 | const struct drm_display_mode * |
Ville Syrjälä | 43af674 | 2022-03-11 19:24:20 +0200 | [diff] [blame] | 30 | intel_panel_preferred_fixed_mode(struct intel_connector *connector); |
| 31 | const struct drm_display_mode * |
Ville Syrjälä | 0927067 | 2022-03-11 19:24:18 +0200 | [diff] [blame] | 32 | intel_panel_fixed_mode(struct intel_connector *connector, |
| 33 | const struct drm_display_mode *mode); |
| 34 | const struct drm_display_mode * |
| 35 | intel_panel_downclock_mode(struct intel_connector *connector, |
| 36 | const struct drm_display_mode *adjusted_mode); |
Ville Syrjälä | 74d6f31 | 2022-09-07 12:10:54 +0300 | [diff] [blame] | 37 | const struct drm_display_mode * |
| 38 | intel_panel_highest_mode(struct intel_connector *connector, |
| 39 | const struct drm_display_mode *adjusted_mode); |
Ville Syrjälä | 53f64f3 | 2022-03-11 19:24:19 +0200 | [diff] [blame] | 40 | int intel_panel_get_modes(struct intel_connector *connector); |
Ville Syrjälä | f0a5779 | 2022-03-11 19:24:21 +0200 | [diff] [blame] | 41 | enum drrs_type intel_panel_drrs_type(struct intel_connector *connector); |
Ville Syrjälä | 0824360 | 2021-09-23 23:01:04 +0300 | [diff] [blame] | 42 | enum drm_mode_status |
| 43 | intel_panel_mode_valid(struct intel_connector *connector, |
| 44 | const struct drm_display_mode *mode); |
Jani Nikula | 4b93f49 | 2021-08-25 14:06:52 +0300 | [diff] [blame] | 45 | int intel_panel_fitting(struct intel_crtc_state *crtc_state, |
| 46 | const struct drm_connector_state *conn_state); |
Ville Syrjälä | cff4c2c | 2021-09-27 21:52:07 +0300 | [diff] [blame] | 47 | int intel_panel_compute_config(struct intel_connector *connector, |
| 48 | struct drm_display_mode *adjusted_mode); |
Ville Syrjälä | 6e93973 | 2022-05-31 22:18:41 +0300 | [diff] [blame] | 49 | void intel_panel_add_edid_fixed_modes(struct intel_connector *connector, |
Ville Syrjälä | eb89e83 | 2022-09-27 21:06:13 +0300 | [diff] [blame] | 50 | bool use_alt_fixed_modes); |
Ville Syrjälä | db10c14 | 2022-03-31 14:28:13 +0300 | [diff] [blame] | 51 | void intel_panel_add_vbt_lfp_fixed_mode(struct intel_connector *connector); |
| 52 | void intel_panel_add_vbt_sdvo_fixed_mode(struct intel_connector *connector); |
| 53 | void intel_panel_add_encoder_fixed_mode(struct intel_connector *connector, |
| 54 | struct intel_encoder *encoder); |
Jani Nikula | 44c1220a | 2019-04-05 14:00:14 +0300 | [diff] [blame] | 55 | |
| 56 | #endif /* __INTEL_PANEL_H__ */ |