projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ASoC: atmel_ssc_dai: Don't unconditionally reset SSC on stream startup
[firefly-linux-kernel-4.4.55.git]
/
sound
/
hda
/
ext
/
hdac_ext_stream.c
diff --git
a/sound/hda/ext/hdac_ext_stream.c
b/sound/hda/ext/hdac_ext_stream.c
index 33ba77dd32f2f174fd4d57dd52ff979ec9b0b510..cb89ec7c8147b2d44a90061ac531514ef5ce4de2 100644
(file)
--- a/
sound/hda/ext/hdac_ext_stream.c
+++ b/
sound/hda/ext/hdac_ext_stream.c
@@
-227,7
+227,7
@@
EXPORT_SYMBOL_GPL(snd_hdac_ext_link_stream_setup);
void snd_hdac_ext_link_set_stream_id(struct hdac_ext_link *link,
int stream)
{
void snd_hdac_ext_link_set_stream_id(struct hdac_ext_link *link,
int stream)
{
- snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV, (1 << stream),
0
);
+ snd_hdac_updatew(link->ml_addr, AZX_REG_ML_LOSIDV, (1 << stream),
1 << stream
);
}
EXPORT_SYMBOL_GPL(snd_hdac_ext_link_set_stream_id);
}
EXPORT_SYMBOL_GPL(snd_hdac_ext_link_set_stream_id);
@@
-385,14
+385,13
@@
void snd_hdac_ext_stream_release(struct hdac_ext_stream *stream, int type)
break;
case HDAC_EXT_STREAM_TYPE_HOST:
break;
case HDAC_EXT_STREAM_TYPE_HOST:
- if (stream->decoupled
) {
+ if (stream->decoupled
&& !stream->link_locked)
snd_hdac_ext_stream_decouple(ebus, stream, false);
snd_hdac_ext_stream_decouple(ebus, stream, false);
- snd_hdac_stream_release(&stream->hstream);
- }
+ snd_hdac_stream_release(&stream->hstream);
break;
case HDAC_EXT_STREAM_TYPE_LINK:
break;
case HDAC_EXT_STREAM_TYPE_LINK:
- if (stream->decoupled)
+ if (stream->decoupled
&& !stream->hstream.opened
)
snd_hdac_ext_stream_decouple(ebus, stream, false);
spin_lock_irq(&bus->reg_lock);
stream->link_locked = 0;
snd_hdac_ext_stream_decouple(ebus, stream, false);
spin_lock_irq(&bus->reg_lock);
stream->link_locked = 0;