Commit | Line | Data |
---|---|---|
99a2008d WX |
1 | /* |
2 | * This program is free software; you can redistribute it and/or modify it | |
3 | * under the terms of the GNU General Public License as published by the Free | |
4 | * Software Foundation; either version 2 of the License, or (at your option) | |
5 | * any later version. | |
6 | * | |
7 | * This program is distributed in the hope that it will be useful, but WITHOUT | |
8 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
9 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
10 | * more details. | |
11 | * | |
12 | * You should have received a copy of the GNU General Public License along with | |
13 | * this program; if not, write to the Free Software Foundation, Inc., 59 | |
14 | * Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
15 | */ | |
347de1f8 ID |
16 | #ifndef __SOUND_HDA_INTEL_H |
17 | #define __SOUND_HDA_INTEL_H | |
18 | ||
d7055bd6 | 19 | #include <drm/i915_component.h> |
89a93fea | 20 | #include "hda_controller.h" |
347de1f8 ID |
21 | |
22 | struct hda_intel { | |
23 | struct azx chip; | |
24 | ||
25 | /* for pending irqs */ | |
26 | struct work_struct irq_pending_work; | |
27 | ||
28 | /* sync probing */ | |
29 | struct completion probe_wait; | |
30 | struct work_struct probe_work; | |
31 | ||
32 | /* card list (for power_save trigger) */ | |
33 | struct list_head list; | |
34 | ||
35 | /* extra flags */ | |
36 | unsigned int irq_pending_warned:1; | |
37 | ||
38 | /* VGA-switcheroo setup */ | |
39 | unsigned int use_vga_switcheroo:1; | |
40 | unsigned int vga_switcheroo_registered:1; | |
41 | unsigned int init_failed:1; /* delayed init failed */ | |
42 | ||
43 | /* secondary power domain for hdmi audio under vga device */ | |
44 | struct dev_pm_domain hdmi_pm_domain; | |
d7055bd6 ID |
45 | |
46 | /* i915 component interface */ | |
47 | struct i915_audio_component audio_component; | |
347de1f8 | 48 | }; |
99a2008d WX |
49 | |
50 | #ifdef CONFIG_SND_HDA_I915 | |
926981ae ID |
51 | int hda_display_power(struct hda_intel *hda, bool enable); |
52 | void haswell_set_bclk(struct hda_intel *hda); | |
53 | int hda_i915_init(struct hda_intel *hda); | |
54 | int hda_i915_exit(struct hda_intel *hda); | |
99a2008d | 55 | #else |
926981ae ID |
56 | static inline int hda_display_power(struct hda_intel *hda, bool enable) |
57 | { | |
58 | return 0; | |
59 | } | |
60 | static inline void haswell_set_bclk(struct hda_intel *hda) { return; } | |
61 | static inline int hda_i915_init(struct hda_intel *hda) | |
99a2008d WX |
62 | { |
63 | return -ENODEV; | |
64 | } | |
926981ae | 65 | static inline int hda_i915_exit(struct hda_intel *hda) |
99a2008d WX |
66 | { |
67 | return 0; | |
68 | } | |
69 | #endif | |
70 | ||
71 | #endif |