aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dsi.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dsi.h')
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_dsi.h b/drivers/gpu/drm/i915/intel_dsi.h
index ad7c1cb32983..ee93137f4433 100644
--- a/drivers/gpu/drm/i915/intel_dsi.h
+++ b/drivers/gpu/drm/i915/intel_dsi.h
@@ -81,14 +81,21 @@ struct intel_dsi {
81 u16 dcs_backlight_ports; 81 u16 dcs_backlight_ports;
82 u16 dcs_cabc_ports; 82 u16 dcs_cabc_ports;
83 83
84 /* RGB or BGR */
85 bool bgr_enabled;
86
84 u8 pixel_overlap; 87 u8 pixel_overlap;
85 u32 port_bits; 88 u32 port_bits;
86 u32 bw_timer; 89 u32 bw_timer;
87 u32 dphy_reg; 90 u32 dphy_reg;
91
92 /* data lanes dphy timing */
93 u32 dphy_data_lane_reg;
88 u32 video_frmt_cfg_bits; 94 u32 video_frmt_cfg_bits;
89 u16 lp_byte_clk; 95 u16 lp_byte_clk;
90 96
91 /* timeouts in byte clocks */ 97 /* timeouts in byte clocks */
98 u16 hs_tx_timeout;
92 u16 lp_rx_timeout; 99 u16 lp_rx_timeout;
93 u16 turn_arnd_val; 100 u16 turn_arnd_val;
94 u16 rst_timer_val; 101 u16 rst_timer_val;
@@ -129,9 +136,31 @@ static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder *encoder)
129 return container_of(encoder, struct intel_dsi, base.base); 136 return container_of(encoder, struct intel_dsi, base.base);
130} 137}
131 138
139static inline bool is_vid_mode(struct intel_dsi *intel_dsi)
140{
141 return intel_dsi->operation_mode == INTEL_DSI_VIDEO_MODE;
142}
143
144static inline bool is_cmd_mode(struct intel_dsi *intel_dsi)
145{
146 return intel_dsi->operation_mode == INTEL_DSI_COMMAND_MODE;
147}
148
149/* intel_dsi.c */
150int intel_dsi_bitrate(const struct intel_dsi *intel_dsi);
151int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi);
152enum drm_panel_orientation
153intel_dsi_get_panel_orientation(struct intel_connector *connector);
154
132/* vlv_dsi.c */ 155/* vlv_dsi.c */
133void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port); 156void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port);
134enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt); 157enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt);
158int intel_dsi_get_modes(struct drm_connector *connector);
159enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector,
160 struct drm_display_mode *mode);
161struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
162 const struct mipi_dsi_host_ops *funcs,
163 enum port port);
135 164
136/* vlv_dsi_pll.c */ 165/* vlv_dsi_pll.c */
137int vlv_dsi_pll_compute(struct intel_encoder *encoder, 166int vlv_dsi_pll_compute(struct intel_encoder *encoder,
@@ -158,5 +187,6 @@ bool intel_dsi_vbt_init(struct intel_dsi *intel_dsi, u16 panel_id);
158int intel_dsi_vbt_get_modes(struct intel_dsi *intel_dsi); 187int intel_dsi_vbt_get_modes(struct intel_dsi *intel_dsi);
159void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi, 188void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
160 enum mipi_seq seq_id); 189 enum mipi_seq seq_id);
190void intel_dsi_msleep(struct intel_dsi *intel_dsi, int msec);
161 191
162#endif /* _INTEL_DSI_H */ 192#endif /* _INTEL_DSI_H */