hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
....@@ -132,6 +132,23 @@
132132 return 0;
133133 }
134134
135
+static int dw_hdmi_i2s_prepare(struct device *dev, void *data,
136
+ struct hdmi_codec_daifmt *fmt,
137
+ struct hdmi_codec_params *hparms)
138
+{
139
+ struct dw_hdmi_i2s_audio_data *audio = data;
140
+ struct dw_hdmi *hdmi = audio->hdmi;
141
+
142
+ dw_hdmi_audio_disable(hdmi);
143
+
144
+ hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0);
145
+ hdmi_write(audio, (u8)~HDMI_MC_SWRSTZ_I2SSWRST_REQ, HDMI_MC_SWRSTZ);
146
+
147
+ dw_hdmi_audio_enable(hdmi);
148
+
149
+ return 0;
150
+}
151
+
135152 static int dw_hdmi_i2s_audio_startup(struct device *dev, void *data)
136153 {
137154 struct dw_hdmi_i2s_audio_data *audio = data;
....@@ -198,6 +215,7 @@
198215
199216 static struct hdmi_codec_ops dw_hdmi_i2s_ops = {
200217 .hw_params = dw_hdmi_i2s_hw_params,
218
+ .prepare = dw_hdmi_i2s_prepare,
201219 .audio_startup = dw_hdmi_i2s_audio_startup,
202220 .audio_shutdown = dw_hdmi_i2s_audio_shutdown,
203221 .get_eld = dw_hdmi_i2s_get_eld,