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 13c1e7703c4..644e3f14f8c 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 ebf8eb02e3c..fdf8d44f8b6 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 507523d5ed4..f7ff3f7ccb8 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 | } |
