| .. | .. |
|---|
| 51 | 51 | u8 inputclkfs = 0; |
|---|
| 52 | 52 | u8 val; |
|---|
| 53 | 53 | |
|---|
| 54 | + dw_hdmi_audio_disable(hdmi); |
|---|
| 55 | + |
|---|
| 54 | 56 | /* it cares I2S only */ |
|---|
| 55 | 57 | if ((fmt->fmt != HDMI_I2S) || |
|---|
| 56 | 58 | (fmt->bit_clk_master | fmt->frame_clk_master)) { |
|---|
| .. | .. |
|---|
| 202 | 204 | return 0; |
|---|
| 203 | 205 | } |
|---|
| 204 | 206 | |
|---|
| 205 | | -static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data) |
|---|
| 206 | | -{ |
|---|
| 207 | | - struct dw_hdmi_i2s_audio_data *audio = data; |
|---|
| 208 | | - struct dw_hdmi *hdmi = audio->hdmi; |
|---|
| 209 | | - |
|---|
| 210 | | - dw_hdmi_audio_disable(hdmi); |
|---|
| 211 | | - |
|---|
| 212 | | - hdmi_update_bits(audio, |
|---|
| 213 | | - HDMI_AUD_CONF0_SW_RESET, |
|---|
| 214 | | - HDMI_AUD_CONF0_SW_RESET | |
|---|
| 215 | | - (HDMI_AUD_CONF0_I2S_ALL_ENABLE ^ |
|---|
| 216 | | - HDMI_AUD_CONF0_I2S_SELECT_MASK), |
|---|
| 217 | | - HDMI_AUD_CONF0); |
|---|
| 218 | | -} |
|---|
| 219 | | - |
|---|
| 220 | 207 | static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component, |
|---|
| 221 | 208 | struct device_node *endpoint) |
|---|
| 222 | 209 | { |
|---|
| .. | .. |
|---|
| 249 | 236 | |
|---|
| 250 | 237 | static struct hdmi_codec_ops dw_hdmi_i2s_ops = { |
|---|
| 251 | 238 | .hw_params = dw_hdmi_i2s_hw_params, |
|---|
| 252 | | - .audio_shutdown = dw_hdmi_i2s_audio_shutdown, |
|---|
| 253 | 239 | .get_dai_id = dw_hdmi_i2s_get_dai_id, |
|---|
| 254 | 240 | .hook_plugged_cb = dw_hdmi_i2s_hook_plugged_cb, |
|---|
| 255 | 241 | }; |
|---|