unsigned int hdmi_set_cable_state(unsigned int state) { unsigned long flags; struct snd_pcm_substream *substream = hdmi_audio_stream_playback; spin_lock_irqsave(&hdmi_cable_state_lock, flags); hdmi_cable_state = state; spin_unlock_irqrestore(&hdmi_cable_state_lock, flags); if (check_hdmi_state() && substream) substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_START); return 0; }
unsigned int hdmi_set_blank_state(unsigned int state) { #if 0 unsigned long flags; struct snd_pcm_substream *substream = hdmi_audio_stream_playback; spin_lock_irqsave(&hdmi_blank_state_lock, flags); hdmi_blank_state = state; spin_unlock_irqrestore(&hdmi_blank_state_lock, flags); if (check_hdmi_state() && substream && hdmi_abort_state) { hdmi_abort_state = 0; substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_START); } #endif return 0; }
int mxc_hdmi_register_audio(struct snd_pcm_substream *substream) { unsigned long flags, flags1; int ret = 0; snd_pcm_stream_lock_irqsave(substream, flags); if (substream && check_hdmi_state()) { spin_lock_irqsave(&hdmi_audio_lock, flags1); if (hdmi_audio_stream_playback) { pr_err("%s unconsist hdmi auido stream!\n", __func__); ret = -EINVAL; } hdmi_audio_stream_playback = substream; spin_unlock_irqrestore(&hdmi_audio_lock, flags1); } else ret = -EINVAL; snd_pcm_stream_unlock_irqrestore(substream, flags); return ret; }