|
@@ -259,6 +259,12 @@ struct rsnd_mod_ops {
|
|
|
int (*fallback)(struct rsnd_mod *mod,
|
|
|
struct rsnd_dai_stream *io,
|
|
|
struct rsnd_priv *priv);
|
|
|
+ int (*nolock_start)(struct rsnd_mod *mod,
|
|
|
+ struct rsnd_dai_stream *io,
|
|
|
+ struct rsnd_priv *priv);
|
|
|
+ int (*nolock_stop)(struct rsnd_mod *mod,
|
|
|
+ struct rsnd_dai_stream *io,
|
|
|
+ struct rsnd_priv *priv);
|
|
|
};
|
|
|
|
|
|
struct rsnd_dai_stream;
|
|
@@ -276,8 +282,9 @@ struct rsnd_mod {
|
|
|
/*
|
|
|
* status
|
|
|
*
|
|
|
- * 0xH0000CB0
|
|
|
+ * 0xH0000CBA
|
|
|
*
|
|
|
+ * A 0: nolock_start 1: nolock_stop
|
|
|
* B 0: init 1: quit
|
|
|
* C 0: start 1: stop
|
|
|
*
|
|
@@ -287,6 +294,8 @@ struct rsnd_mod {
|
|
|
* H 0: fallback
|
|
|
* H 0: hw_params
|
|
|
*/
|
|
|
+#define __rsnd_mod_shift_nolock_start 0
|
|
|
+#define __rsnd_mod_shift_nolock_stop 0
|
|
|
#define __rsnd_mod_shift_init 4
|
|
|
#define __rsnd_mod_shift_quit 4
|
|
|
#define __rsnd_mod_shift_start 8
|
|
@@ -300,6 +309,8 @@ struct rsnd_mod {
|
|
|
|
|
|
#define __rsnd_mod_add_probe 0
|
|
|
#define __rsnd_mod_add_remove 0
|
|
|
+#define __rsnd_mod_add_nolock_start 1
|
|
|
+#define __rsnd_mod_add_nolock_stop -1
|
|
|
#define __rsnd_mod_add_init 1
|
|
|
#define __rsnd_mod_add_quit -1
|
|
|
#define __rsnd_mod_add_start 1
|
|
@@ -319,6 +330,8 @@ struct rsnd_mod {
|
|
|
#define __rsnd_mod_call_pcm_new 0
|
|
|
#define __rsnd_mod_call_fallback 0
|
|
|
#define __rsnd_mod_call_hw_params 0
|
|
|
+#define __rsnd_mod_call_nolock_start 0
|
|
|
+#define __rsnd_mod_call_nolock_stop 1
|
|
|
|
|
|
#define rsnd_mod_to_priv(mod) ((mod)->priv)
|
|
|
#define rsnd_mod_id(mod) ((mod) ? (mod)->id : -1)
|