diff options
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/Kconfig | 1 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.c | 16 | ||||
-rw-r--r-- | sound/pci/hda/hda_codec.h | 12 | ||||
-rw-r--r-- | sound/pci/hda/hda_local.h | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_analog.c | 4 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 10 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 6 | ||||
-rw-r--r-- | sound/pci/hda/patch_via.c | 4 |
8 files changed, 25 insertions, 30 deletions
diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index 7489b4608551..bb7e102d6726 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig | |||
@@ -243,6 +243,7 @@ config SND_HDA_GENERIC | |||
243 | 243 | ||
244 | config SND_HDA_POWER_SAVE | 244 | config SND_HDA_POWER_SAVE |
245 | bool "Aggressive power-saving on HD-audio" | 245 | bool "Aggressive power-saving on HD-audio" |
246 | depends on PM | ||
246 | help | 247 | help |
247 | Say Y here to enable more aggressive power-saving mode on | 248 | Say Y here to enable more aggressive power-saving mode on |
248 | HD-audio driver. The power-saving timeout can be configured | 249 | HD-audio driver. The power-saving timeout can be configured |
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index c0e83ed0b351..27b0c78abb5b 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -1101,7 +1101,7 @@ void snd_hda_shutup_pins(struct hda_codec *codec) | |||
1101 | } | 1101 | } |
1102 | EXPORT_SYMBOL_HDA(snd_hda_shutup_pins); | 1102 | EXPORT_SYMBOL_HDA(snd_hda_shutup_pins); |
1103 | 1103 | ||
1104 | #ifdef SND_HDA_NEEDS_RESUME | 1104 | #ifdef CONFIG_PM |
1105 | /* Restore the pin controls cleared previously via snd_hda_shutup_pins() */ | 1105 | /* Restore the pin controls cleared previously via snd_hda_shutup_pins() */ |
1106 | static void restore_shutup_pins(struct hda_codec *codec) | 1106 | static void restore_shutup_pins(struct hda_codec *codec) |
1107 | { | 1107 | { |
@@ -1499,7 +1499,7 @@ static void purify_inactive_streams(struct hda_codec *codec) | |||
1499 | } | 1499 | } |
1500 | } | 1500 | } |
1501 | 1501 | ||
1502 | #ifdef SND_HDA_NEEDS_RESUME | 1502 | #ifdef CONFIG_PM |
1503 | /* clean up all streams; called from suspend */ | 1503 | /* clean up all streams; called from suspend */ |
1504 | static void hda_cleanup_all_streams(struct hda_codec *codec) | 1504 | static void hda_cleanup_all_streams(struct hda_codec *codec) |
1505 | { | 1505 | { |
@@ -1838,7 +1838,7 @@ int snd_hda_codec_amp_stereo(struct hda_codec *codec, hda_nid_t nid, | |||
1838 | } | 1838 | } |
1839 | EXPORT_SYMBOL_HDA(snd_hda_codec_amp_stereo); | 1839 | EXPORT_SYMBOL_HDA(snd_hda_codec_amp_stereo); |
1840 | 1840 | ||
1841 | #ifdef SND_HDA_NEEDS_RESUME | 1841 | #ifdef CONFIG_PM |
1842 | /** | 1842 | /** |
1843 | * snd_hda_codec_resume_amp - Resume all AMP commands from the cache | 1843 | * snd_hda_codec_resume_amp - Resume all AMP commands from the cache |
1844 | * @codec: HD-audio codec | 1844 | * @codec: HD-audio codec |
@@ -1868,7 +1868,7 @@ void snd_hda_codec_resume_amp(struct hda_codec *codec) | |||
1868 | } | 1868 | } |
1869 | } | 1869 | } |
1870 | EXPORT_SYMBOL_HDA(snd_hda_codec_resume_amp); | 1870 | EXPORT_SYMBOL_HDA(snd_hda_codec_resume_amp); |
1871 | #endif /* SND_HDA_NEEDS_RESUME */ | 1871 | #endif /* CONFIG_PM */ |
1872 | 1872 | ||
1873 | static u32 get_amp_max_value(struct hda_codec *codec, hda_nid_t nid, int dir, | 1873 | static u32 get_amp_max_value(struct hda_codec *codec, hda_nid_t nid, int dir, |
1874 | unsigned int ofs) | 1874 | unsigned int ofs) |
@@ -3082,7 +3082,7 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid) | |||
3082 | } | 3082 | } |
3083 | EXPORT_SYMBOL_HDA(snd_hda_create_spdif_in_ctls); | 3083 | EXPORT_SYMBOL_HDA(snd_hda_create_spdif_in_ctls); |
3084 | 3084 | ||
3085 | #ifdef SND_HDA_NEEDS_RESUME | 3085 | #ifdef CONFIG_PM |
3086 | /* | 3086 | /* |
3087 | * command cache | 3087 | * command cache |
3088 | */ | 3088 | */ |
@@ -3199,7 +3199,7 @@ void snd_hda_sequence_write_cache(struct hda_codec *codec, | |||
3199 | seq->param); | 3199 | seq->param); |
3200 | } | 3200 | } |
3201 | EXPORT_SYMBOL_HDA(snd_hda_sequence_write_cache); | 3201 | EXPORT_SYMBOL_HDA(snd_hda_sequence_write_cache); |
3202 | #endif /* SND_HDA_NEEDS_RESUME */ | 3202 | #endif /* CONFIG_PM */ |
3203 | 3203 | ||
3204 | /* | 3204 | /* |
3205 | * set power state of the codec | 3205 | * set power state of the codec |
@@ -3274,7 +3274,7 @@ static void hda_exec_init_verbs(struct hda_codec *codec) | |||
3274 | static inline void hda_exec_init_verbs(struct hda_codec *codec) {} | 3274 | static inline void hda_exec_init_verbs(struct hda_codec *codec) {} |
3275 | #endif | 3275 | #endif |
3276 | 3276 | ||
3277 | #ifdef SND_HDA_NEEDS_RESUME | 3277 | #ifdef CONFIG_PM |
3278 | /* | 3278 | /* |
3279 | * call suspend and power-down; used both from PM and power-save | 3279 | * call suspend and power-down; used both from PM and power-save |
3280 | */ | 3280 | */ |
@@ -3315,7 +3315,7 @@ static void hda_call_codec_resume(struct hda_codec *codec) | |||
3315 | snd_hda_codec_resume_cache(codec); | 3315 | snd_hda_codec_resume_cache(codec); |
3316 | } | 3316 | } |
3317 | } | 3317 | } |
3318 | #endif /* SND_HDA_NEEDS_RESUME */ | 3318 | #endif /* CONFIG_PM */ |
3319 | 3319 | ||
3320 | 3320 | ||
3321 | /** | 3321 | /** |
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index 82161466d3b0..663aa4fc384a 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h | |||
@@ -26,10 +26,6 @@ | |||
26 | #include <sound/pcm.h> | 26 | #include <sound/pcm.h> |
27 | #include <sound/hwdep.h> | 27 | #include <sound/hwdep.h> |
28 | 28 | ||
29 | #if defined(CONFIG_PM) || defined(CONFIG_SND_HDA_POWER_SAVE) | ||
30 | #define SND_HDA_NEEDS_RESUME /* resume control code is required */ | ||
31 | #endif | ||
32 | |||
33 | /* | 29 | /* |
34 | * nodes | 30 | * nodes |
35 | */ | 31 | */ |
@@ -704,17 +700,15 @@ struct hda_codec_ops { | |||
704 | int (*init)(struct hda_codec *codec); | 700 | int (*init)(struct hda_codec *codec); |
705 | void (*free)(struct hda_codec *codec); | 701 | void (*free)(struct hda_codec *codec); |
706 | void (*unsol_event)(struct hda_codec *codec, unsigned int res); | 702 | void (*unsol_event)(struct hda_codec *codec, unsigned int res); |
707 | #ifdef SND_HDA_NEEDS_RESUME | 703 | #ifdef CONFIG_PM |
708 | int (*suspend)(struct hda_codec *codec, pm_message_t state); | 704 | int (*suspend)(struct hda_codec *codec, pm_message_t state); |
705 | int (*pre_resume)(struct hda_codec *codec); | ||
709 | int (*resume)(struct hda_codec *codec); | 706 | int (*resume)(struct hda_codec *codec); |
710 | #endif | 707 | #endif |
711 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 708 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
712 | int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid); | 709 | int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid); |
713 | #endif | 710 | #endif |
714 | void (*reboot_notify)(struct hda_codec *codec); | 711 | void (*reboot_notify)(struct hda_codec *codec); |
715 | #ifdef SND_HDA_NEEDS_RESUME | ||
716 | int (*pre_resume)(struct hda_codec *codec); | ||
717 | #endif | ||
718 | }; | 712 | }; |
719 | 713 | ||
720 | /* record for amp information cache */ | 714 | /* record for amp information cache */ |
@@ -930,7 +924,7 @@ void snd_hda_sequence_write(struct hda_codec *codec, | |||
930 | int snd_hda_queue_unsol_event(struct hda_bus *bus, u32 res, u32 res_ex); | 924 | int snd_hda_queue_unsol_event(struct hda_bus *bus, u32 res, u32 res_ex); |
931 | 925 | ||
932 | /* cached write */ | 926 | /* cached write */ |
933 | #ifdef SND_HDA_NEEDS_RESUME | 927 | #ifdef CONFIG_PM |
934 | int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid, | 928 | int snd_hda_codec_write_cache(struct hda_codec *codec, hda_nid_t nid, |
935 | int direct, unsigned int verb, unsigned int parm); | 929 | int direct, unsigned int verb, unsigned int parm); |
936 | void snd_hda_sequence_write_cache(struct hda_codec *codec, | 930 | void snd_hda_sequence_write_cache(struct hda_codec *codec, |
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index 88b277e97409..2e7ac31afa8d 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h | |||
@@ -131,7 +131,7 @@ int snd_hda_codec_amp_update(struct hda_codec *codec, hda_nid_t nid, int ch, | |||
131 | int direction, int idx, int mask, int val); | 131 | int direction, int idx, int mask, int val); |
132 | int snd_hda_codec_amp_stereo(struct hda_codec *codec, hda_nid_t nid, | 132 | int snd_hda_codec_amp_stereo(struct hda_codec *codec, hda_nid_t nid, |
133 | int dir, int idx, int mask, int val); | 133 | int dir, int idx, int mask, int val); |
134 | #ifdef SND_HDA_NEEDS_RESUME | 134 | #ifdef CONFIG_PM |
135 | void snd_hda_codec_resume_amp(struct hda_codec *codec); | 135 | void snd_hda_codec_resume_amp(struct hda_codec *codec); |
136 | #endif | 136 | #endif |
137 | 137 | ||
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 1362c8ba4d1f..8648917acffb 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -563,7 +563,7 @@ static void ad198x_free(struct hda_codec *codec) | |||
563 | snd_hda_detach_beep_device(codec); | 563 | snd_hda_detach_beep_device(codec); |
564 | } | 564 | } |
565 | 565 | ||
566 | #ifdef SND_HDA_NEEDS_RESUME | 566 | #ifdef CONFIG_PM |
567 | static int ad198x_suspend(struct hda_codec *codec, pm_message_t state) | 567 | static int ad198x_suspend(struct hda_codec *codec, pm_message_t state) |
568 | { | 568 | { |
569 | ad198x_shutup(codec); | 569 | ad198x_shutup(codec); |
@@ -579,7 +579,7 @@ static const struct hda_codec_ops ad198x_patch_ops = { | |||
579 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 579 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
580 | .check_power_status = ad198x_check_power_status, | 580 | .check_power_status = ad198x_check_power_status, |
581 | #endif | 581 | #endif |
582 | #ifdef SND_HDA_NEEDS_RESUME | 582 | #ifdef CONFIG_PM |
583 | .suspend = ad198x_suspend, | 583 | .suspend = ad198x_suspend, |
584 | #endif | 584 | #endif |
585 | .reboot_notify = ad198x_shutup, | 585 | .reboot_notify = ad198x_shutup, |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 569d2aa4eeb5..694327ae8b71 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -2386,7 +2386,7 @@ static int alc_suspend(struct hda_codec *codec, pm_message_t state) | |||
2386 | } | 2386 | } |
2387 | #endif | 2387 | #endif |
2388 | 2388 | ||
2389 | #ifdef SND_HDA_NEEDS_RESUME | 2389 | #ifdef CONFIG_PM |
2390 | static int alc_resume(struct hda_codec *codec) | 2390 | static int alc_resume(struct hda_codec *codec) |
2391 | { | 2391 | { |
2392 | msleep(150); /* to avoid pop noise */ | 2392 | msleep(150); /* to avoid pop noise */ |
@@ -2406,7 +2406,7 @@ static const struct hda_codec_ops alc_patch_ops = { | |||
2406 | .init = alc_init, | 2406 | .init = alc_init, |
2407 | .free = alc_free, | 2407 | .free = alc_free, |
2408 | .unsol_event = alc_unsol_event, | 2408 | .unsol_event = alc_unsol_event, |
2409 | #ifdef SND_HDA_NEEDS_RESUME | 2409 | #ifdef CONFIG_PM |
2410 | .resume = alc_resume, | 2410 | .resume = alc_resume, |
2411 | #endif | 2411 | #endif |
2412 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 2412 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
@@ -4413,7 +4413,7 @@ static void alc269_shutup(struct hda_codec *codec) | |||
4413 | } | 4413 | } |
4414 | } | 4414 | } |
4415 | 4415 | ||
4416 | #ifdef SND_HDA_NEEDS_RESUME | 4416 | #ifdef CONFIG_PM |
4417 | static int alc269_resume(struct hda_codec *codec) | 4417 | static int alc269_resume(struct hda_codec *codec) |
4418 | { | 4418 | { |
4419 | if ((alc_read_coef_idx(codec, 0) & 0x00ff) == 0x018) { | 4419 | if ((alc_read_coef_idx(codec, 0) & 0x00ff) == 0x018) { |
@@ -4436,7 +4436,7 @@ static int alc269_resume(struct hda_codec *codec) | |||
4436 | hda_call_check_power_status(codec, 0x01); | 4436 | hda_call_check_power_status(codec, 0x01); |
4437 | return 0; | 4437 | return 0; |
4438 | } | 4438 | } |
4439 | #endif /* SND_HDA_NEEDS_RESUME */ | 4439 | #endif /* CONFIG_PM */ |
4440 | 4440 | ||
4441 | static void alc269_fixup_hweq(struct hda_codec *codec, | 4441 | static void alc269_fixup_hweq(struct hda_codec *codec, |
4442 | const struct alc_fixup *fix, int action) | 4442 | const struct alc_fixup *fix, int action) |
@@ -4728,7 +4728,7 @@ static int patch_alc269(struct hda_codec *codec) | |||
4728 | spec->vmaster_nid = 0x02; | 4728 | spec->vmaster_nid = 0x02; |
4729 | 4729 | ||
4730 | codec->patch_ops = alc_patch_ops; | 4730 | codec->patch_ops = alc_patch_ops; |
4731 | #ifdef SND_HDA_NEEDS_RESUME | 4731 | #ifdef CONFIG_PM |
4732 | codec->patch_ops.resume = alc269_resume; | 4732 | codec->patch_ops.resume = alc269_resume; |
4733 | #endif | 4733 | #endif |
4734 | if (board_config == ALC_MODEL_AUTO) | 4734 | if (board_config == ALC_MODEL_AUTO) |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 8f80796c366f..fcf4c7142103 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4934,7 +4934,7 @@ static void stac927x_proc_hook(struct snd_info_buffer *buffer, | |||
4934 | #define stac927x_proc_hook NULL | 4934 | #define stac927x_proc_hook NULL |
4935 | #endif | 4935 | #endif |
4936 | 4936 | ||
4937 | #ifdef SND_HDA_NEEDS_RESUME | 4937 | #ifdef CONFIG_PM |
4938 | static int stac92xx_pre_resume(struct hda_codec *codec) | 4938 | static int stac92xx_pre_resume(struct hda_codec *codec) |
4939 | { | 4939 | { |
4940 | struct sigmatel_spec *spec = codec->spec; | 4940 | struct sigmatel_spec *spec = codec->spec; |
@@ -5030,7 +5030,7 @@ static int stac92xx_suspend(struct hda_codec *codec, pm_message_t state) | |||
5030 | stac92xx_shutup(codec); | 5030 | stac92xx_shutup(codec); |
5031 | return 0; | 5031 | return 0; |
5032 | } | 5032 | } |
5033 | #endif | 5033 | #endif /* CONFIG_PM */ |
5034 | 5034 | ||
5035 | static const struct hda_codec_ops stac92xx_patch_ops = { | 5035 | static const struct hda_codec_ops stac92xx_patch_ops = { |
5036 | .build_controls = stac92xx_build_controls, | 5036 | .build_controls = stac92xx_build_controls, |
@@ -5038,7 +5038,7 @@ static const struct hda_codec_ops stac92xx_patch_ops = { | |||
5038 | .init = stac92xx_init, | 5038 | .init = stac92xx_init, |
5039 | .free = stac92xx_free, | 5039 | .free = stac92xx_free, |
5040 | .unsol_event = stac92xx_unsol_event, | 5040 | .unsol_event = stac92xx_unsol_event, |
5041 | #ifdef SND_HDA_NEEDS_RESUME | 5041 | #ifdef CONFIG_PM |
5042 | .suspend = stac92xx_suspend, | 5042 | .suspend = stac92xx_suspend, |
5043 | .resume = stac92xx_resume, | 5043 | .resume = stac92xx_resume, |
5044 | .pre_resume = stac92xx_pre_resume, | 5044 | .pre_resume = stac92xx_pre_resume, |
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index f38160b00e16..84d8798bf33a 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -1708,7 +1708,7 @@ static void via_unsol_event(struct hda_codec *codec, | |||
1708 | via_gpio_control(codec); | 1708 | via_gpio_control(codec); |
1709 | } | 1709 | } |
1710 | 1710 | ||
1711 | #ifdef SND_HDA_NEEDS_RESUME | 1711 | #ifdef CONFIG_PM |
1712 | static int via_suspend(struct hda_codec *codec, pm_message_t state) | 1712 | static int via_suspend(struct hda_codec *codec, pm_message_t state) |
1713 | { | 1713 | { |
1714 | struct via_spec *spec = codec->spec; | 1714 | struct via_spec *spec = codec->spec; |
@@ -1736,7 +1736,7 @@ static const struct hda_codec_ops via_patch_ops = { | |||
1736 | .init = via_init, | 1736 | .init = via_init, |
1737 | .free = via_free, | 1737 | .free = via_free, |
1738 | .unsol_event = via_unsol_event, | 1738 | .unsol_event = via_unsol_event, |
1739 | #ifdef SND_HDA_NEEDS_RESUME | 1739 | #ifdef CONFIG_PM |
1740 | .suspend = via_suspend, | 1740 | .suspend = via_suspend, |
1741 | #endif | 1741 | #endif |
1742 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 1742 | #ifdef CONFIG_SND_HDA_POWER_SAVE |