@@ -126,15 +126,28 @@ static void msm_hdmi_config_avi_infoframe(struct hdmi *hdmi)
126
126
hdmi_write (hdmi , REG_HDMI_INFOFRAME_CTRL1 , val );
127
127
}
128
128
129
+ static void msm_hdmi_set_timings (struct hdmi * hdmi ,
130
+ const struct drm_display_mode * mode );
131
+
129
132
static void msm_hdmi_bridge_atomic_pre_enable (struct drm_bridge * bridge ,
130
133
struct drm_atomic_state * state )
131
134
{
132
135
struct hdmi_bridge * hdmi_bridge = to_hdmi_bridge (bridge );
133
136
struct hdmi * hdmi = hdmi_bridge -> hdmi ;
134
137
struct hdmi_phy * phy = hdmi -> phy ;
138
+ struct drm_encoder * encoder = bridge -> encoder ;
139
+ struct drm_connector * connector ;
140
+ struct drm_connector_state * conn_state ;
141
+ struct drm_crtc_state * crtc_state ;
135
142
136
143
DBG ("power up" );
137
144
145
+ connector = drm_atomic_get_new_connector_for_encoder (state , encoder );
146
+ conn_state = drm_atomic_get_new_connector_state (state , connector );
147
+ crtc_state = drm_atomic_get_new_crtc_state (state , conn_state -> crtc );
148
+
149
+ msm_hdmi_set_timings (hdmi , & crtc_state -> adjusted_mode );
150
+
138
151
if (!hdmi -> power_on ) {
139
152
msm_hdmi_phy_resource_enable (phy );
140
153
msm_hdmi_power_on (bridge );
@@ -177,17 +190,12 @@ static void msm_hdmi_bridge_atomic_post_disable(struct drm_bridge *bridge,
177
190
}
178
191
}
179
192
180
- static void msm_hdmi_bridge_mode_set (struct drm_bridge * bridge ,
181
- const struct drm_display_mode * mode ,
182
- const struct drm_display_mode * adjusted_mode )
193
+ static void msm_hdmi_set_timings (struct hdmi * hdmi ,
194
+ const struct drm_display_mode * mode )
183
195
{
184
- struct hdmi_bridge * hdmi_bridge = to_hdmi_bridge (bridge );
185
- struct hdmi * hdmi = hdmi_bridge -> hdmi ;
186
196
int hstart , hend , vstart , vend ;
187
197
uint32_t frame_ctrl ;
188
198
189
- mode = adjusted_mode ;
190
-
191
199
hdmi -> pixclock = mode -> clock * 1000 ;
192
200
193
201
hstart = mode -> htotal - mode -> hsync_start ;
@@ -306,7 +314,6 @@ static const struct drm_bridge_funcs msm_hdmi_bridge_funcs = {
306
314
.atomic_reset = drm_atomic_helper_bridge_reset ,
307
315
.atomic_pre_enable = msm_hdmi_bridge_atomic_pre_enable ,
308
316
.atomic_post_disable = msm_hdmi_bridge_atomic_post_disable ,
309
- .mode_set = msm_hdmi_bridge_mode_set ,
310
317
.mode_valid = msm_hdmi_bridge_mode_valid ,
311
318
.edid_read = msm_hdmi_bridge_edid_read ,
312
319
.detect = msm_hdmi_bridge_detect ,
0 commit comments