aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_codec.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/hda/hda_codec.h')
-rw-r--r--sound/pci/hda/hda_codec.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 99552fb5f756..1d541b7f5547 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -255,9 +255,13 @@ enum {
255 * in HD-audio specification 255 * in HD-audio specification
256 */ 256 */
257#define AC_PINCAP_HDMI (1<<7) /* HDMI pin */ 257#define AC_PINCAP_HDMI (1<<7) /* HDMI pin */
258#define AC_PINCAP_DP (1<<24) /* DisplayPort pin, can
259 * coexist with AC_PINCAP_HDMI
260 */
258#define AC_PINCAP_VREF (0x37<<8) 261#define AC_PINCAP_VREF (0x37<<8)
259#define AC_PINCAP_VREF_SHIFT 8 262#define AC_PINCAP_VREF_SHIFT 8
260#define AC_PINCAP_EAPD (1<<16) /* EAPD capable */ 263#define AC_PINCAP_EAPD (1<<16) /* EAPD capable */
264#define AC_PINCAP_HBR (1<<27) /* High Bit Rate */
261/* Vref status (used in pin cap) */ 265/* Vref status (used in pin cap) */
262#define AC_PINCAP_VREF_HIZ (1<<0) /* Hi-Z */ 266#define AC_PINCAP_VREF_HIZ (1<<0) /* Hi-Z */
263#define AC_PINCAP_VREF_50 (1<<1) /* 50% */ 267#define AC_PINCAP_VREF_50 (1<<1) /* 50% */
@@ -286,6 +290,10 @@ enum {
286#define AC_PWRST_D1SUP (1<<1) 290#define AC_PWRST_D1SUP (1<<1)
287#define AC_PWRST_D2SUP (1<<2) 291#define AC_PWRST_D2SUP (1<<2)
288#define AC_PWRST_D3SUP (1<<3) 292#define AC_PWRST_D3SUP (1<<3)
293#define AC_PWRST_D3COLDSUP (1<<4)
294#define AC_PWRST_S3D3COLDSUP (1<<29)
295#define AC_PWRST_CLKSTOP (1<<30)
296#define AC_PWRST_EPSS (1U<<31)
289 297
290/* Power state values */ 298/* Power state values */
291#define AC_PWRST_SETTING (0xf<<0) 299#define AC_PWRST_SETTING (0xf<<0)
@@ -631,6 +639,7 @@ struct hda_bus {
631 unsigned int rirb_error:1; /* error in codec communication */ 639 unsigned int rirb_error:1; /* error in codec communication */
632 unsigned int response_reset:1; /* controller was reset */ 640 unsigned int response_reset:1; /* controller was reset */
633 unsigned int in_reset:1; /* during reset operation */ 641 unsigned int in_reset:1; /* during reset operation */
642 unsigned int power_keep_link_on:1; /* don't power off HDA link */
634}; 643};
635 644
636/* 645/*
@@ -674,6 +683,7 @@ struct hda_codec_ops {
674#ifdef CONFIG_SND_HDA_POWER_SAVE 683#ifdef CONFIG_SND_HDA_POWER_SAVE
675 int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid); 684 int (*check_power_status)(struct hda_codec *codec, hda_nid_t nid);
676#endif 685#endif
686 void (*reboot_notify)(struct hda_codec *codec);
677}; 687};
678 688
679/* record for amp information cache */ 689/* record for amp information cache */
@@ -771,6 +781,7 @@ struct hda_codec {
771 781
772 /* beep device */ 782 /* beep device */
773 struct hda_beep *beep; 783 struct hda_beep *beep;
784 unsigned int beep_mode;
774 785
775 /* widget capabilities cache */ 786 /* widget capabilities cache */
776 unsigned int num_nodes; 787 unsigned int num_nodes;
@@ -811,6 +822,9 @@ struct hda_codec {
811 unsigned int power_transition :1; /* power-state in transition */ 822 unsigned int power_transition :1; /* power-state in transition */
812 int power_count; /* current (global) power refcount */ 823 int power_count; /* current (global) power refcount */
813 struct delayed_work power_work; /* delayed task for powerdown */ 824 struct delayed_work power_work; /* delayed task for powerdown */
825 unsigned long power_on_acct;
826 unsigned long power_off_acct;
827 unsigned long power_jiffies;
814#endif 828#endif
815 829
816 /* codec-specific additional proc output */ 830 /* codec-specific additional proc output */
@@ -910,6 +924,7 @@ int snd_hda_is_supported_format(struct hda_codec *codec, hda_nid_t nid,
910 * Misc 924 * Misc
911 */ 925 */
912void snd_hda_get_codec_name(struct hda_codec *codec, char *name, int namelen); 926void snd_hda_get_codec_name(struct hda_codec *codec, char *name, int namelen);
927void snd_hda_bus_reboot_notify(struct hda_bus *bus);
913 928
914/* 929/*
915 * power management 930 * power management
@@ -933,6 +948,7 @@ const char *snd_hda_get_jack_location(u32 cfg);
933void snd_hda_power_up(struct hda_codec *codec); 948void snd_hda_power_up(struct hda_codec *codec);
934void snd_hda_power_down(struct hda_codec *codec); 949void snd_hda_power_down(struct hda_codec *codec);
935#define snd_hda_codec_needs_resume(codec) codec->power_count 950#define snd_hda_codec_needs_resume(codec) codec->power_count
951void snd_hda_update_power_acct(struct hda_codec *codec);
936#else 952#else
937static inline void snd_hda_power_up(struct hda_codec *codec) {} 953static inline void snd_hda_power_up(struct hda_codec *codec) {}
938static inline void snd_hda_power_down(struct hda_codec *codec) {} 954static inline void snd_hda_power_down(struct hda_codec *codec) {}