diff options
-rw-r--r-- | sound/pci/hda/hda_codec.c | 3 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.h | 1 | ||||
-rw-r--r-- | sound/pci/hda/patch_analog.c | 7 |
3 files changed, 11 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 13c1e7703c49..644e3f14f8ca 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -1284,6 +1284,9 @@ void __snd_hda_codec_cleanup_stream(struct hda_codec *codec, hda_nid_t nid, | |||
1284 | if (!nid) | 1284 | if (!nid) |
1285 | return; | 1285 | return; |
1286 | 1286 | ||
1287 | if (codec->no_sticky_stream) | ||
1288 | do_now = 1; | ||
1289 | |||
1287 | snd_printdd("hda_codec_cleanup_stream: NID=0x%x\n", nid); | 1290 | snd_printdd("hda_codec_cleanup_stream: NID=0x%x\n", nid); |
1288 | p = get_hda_cvt_setup(codec, nid); | 1291 | p = get_hda_cvt_setup(codec, nid); |
1289 | if (p) { | 1292 | if (p) { |
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index ebf8eb02e3c2..fdf8d44f8b6b 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h | |||
@@ -850,6 +850,7 @@ struct hda_codec { | |||
850 | unsigned int pin_amp_workaround:1; /* pin out-amp takes index | 850 | unsigned int pin_amp_workaround:1; /* pin out-amp takes index |
851 | * (e.g. Conexant codecs) | 851 | * (e.g. Conexant codecs) |
852 | */ | 852 | */ |
853 | unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */ | ||
853 | unsigned int pins_shutup:1; /* pins are shut up */ | 854 | unsigned int pins_shutup:1; /* pins are shut up */ |
854 | unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */ | 855 | unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */ |
855 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 856 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 507523d5ed42..f7ff3f7ccb8e 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -1276,6 +1276,7 @@ static int patch_ad1986a(struct hda_codec *codec) | |||
1276 | spec->multiout.no_share_stream = 1; | 1276 | spec->multiout.no_share_stream = 1; |
1277 | 1277 | ||
1278 | codec->no_trigger_sense = 1; | 1278 | codec->no_trigger_sense = 1; |
1279 | codec->no_sticky_stream = 1; | ||
1279 | 1280 | ||
1280 | return 0; | 1281 | return 0; |
1281 | } | 1282 | } |
@@ -1463,6 +1464,7 @@ static int patch_ad1983(struct hda_codec *codec) | |||
1463 | codec->patch_ops = ad198x_patch_ops; | 1464 | codec->patch_ops = ad198x_patch_ops; |
1464 | 1465 | ||
1465 | codec->no_trigger_sense = 1; | 1466 | codec->no_trigger_sense = 1; |
1467 | codec->no_sticky_stream = 1; | ||
1466 | 1468 | ||
1467 | return 0; | 1469 | return 0; |
1468 | } | 1470 | } |
@@ -1917,6 +1919,7 @@ static int patch_ad1981(struct hda_codec *codec) | |||
1917 | } | 1919 | } |
1918 | 1920 | ||
1919 | codec->no_trigger_sense = 1; | 1921 | codec->no_trigger_sense = 1; |
1922 | codec->no_sticky_stream = 1; | ||
1920 | 1923 | ||
1921 | return 0; | 1924 | return 0; |
1922 | } | 1925 | } |
@@ -3236,6 +3239,7 @@ static int patch_ad1988(struct hda_codec *codec) | |||
3236 | spec->vmaster_nid = 0x04; | 3239 | spec->vmaster_nid = 0x04; |
3237 | 3240 | ||
3238 | codec->no_trigger_sense = 1; | 3241 | codec->no_trigger_sense = 1; |
3242 | codec->no_sticky_stream = 1; | ||
3239 | 3243 | ||
3240 | return 0; | 3244 | return 0; |
3241 | } | 3245 | } |
@@ -3450,6 +3454,7 @@ static int patch_ad1884(struct hda_codec *codec) | |||
3450 | codec->patch_ops = ad198x_patch_ops; | 3454 | codec->patch_ops = ad198x_patch_ops; |
3451 | 3455 | ||
3452 | codec->no_trigger_sense = 1; | 3456 | codec->no_trigger_sense = 1; |
3457 | codec->no_sticky_stream = 1; | ||
3453 | 3458 | ||
3454 | return 0; | 3459 | return 0; |
3455 | } | 3460 | } |
@@ -4423,6 +4428,7 @@ static int patch_ad1884a(struct hda_codec *codec) | |||
4423 | } | 4428 | } |
4424 | 4429 | ||
4425 | codec->no_trigger_sense = 1; | 4430 | codec->no_trigger_sense = 1; |
4431 | codec->no_sticky_stream = 1; | ||
4426 | 4432 | ||
4427 | return 0; | 4433 | return 0; |
4428 | } | 4434 | } |
@@ -4762,6 +4768,7 @@ static int patch_ad1882(struct hda_codec *codec) | |||
4762 | } | 4768 | } |
4763 | 4769 | ||
4764 | codec->no_trigger_sense = 1; | 4770 | codec->no_trigger_sense = 1; |
4771 | codec->no_sticky_stream = 1; | ||
4765 | 4772 | ||
4766 | return 0; | 4773 | return 0; |
4767 | } | 4774 | } |