hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
....@@ -34,6 +34,14 @@
3434 return audio->read(hdmi, offset);
3535 }
3636
37
+static inline void hdmi_update_bits(struct dw_hdmi_i2s_audio_data *audio,
38
+ u8 data, u8 mask, unsigned int reg)
39
+{
40
+ struct dw_hdmi *hdmi = audio->hdmi;
41
+
42
+ audio->mod(hdmi, data, mask, reg);
43
+}
44
+
3745 static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
3846 struct hdmi_codec_daifmt *fmt,
3947 struct hdmi_codec_params *hparms)
....@@ -52,7 +60,8 @@
5260 }
5361
5462 /* Reset the FIFOs before applying new params */
55
- hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0);
63
+ hdmi_update_bits(audio, HDMI_AUD_CONF0_SW_RESET,
64
+ HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0);
5665 hdmi_write(audio, (u8)~HDMI_MC_SWRSTZ_I2SSWRST_REQ, HDMI_MC_SWRSTZ);
5766
5867 inputclkfs = HDMI_AUD_INPUTCLKFS_64FS;
....@@ -136,17 +145,7 @@
136145 struct hdmi_codec_daifmt *fmt,
137146 struct hdmi_codec_params *hparms)
138147 {
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;
148
+ return dw_hdmi_i2s_hw_params(dev, data, fmt, hparms);
150149 }
151150
152151 static int dw_hdmi_i2s_audio_startup(struct device *dev, void *data)