hda_intel.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. */
  16. #ifndef __SOUND_HDA_INTEL_H
  17. #define __SOUND_HDA_INTEL_H
  18. #include <drm/i915_component.h>
  19. #include "hda_controller.h"
  20. struct hda_intel {
  21. struct azx chip;
  22. /* for pending irqs */
  23. struct work_struct irq_pending_work;
  24. /* sync probing */
  25. struct completion probe_wait;
  26. struct work_struct probe_work;
  27. /* card list (for power_save trigger) */
  28. struct list_head list;
  29. /* extra flags */
  30. unsigned int irq_pending_warned:1;
  31. /* VGA-switcheroo setup */
  32. unsigned int use_vga_switcheroo:1;
  33. unsigned int vga_switcheroo_registered:1;
  34. unsigned int init_failed:1; /* delayed init failed */
  35. /* secondary power domain for hdmi audio under vga device */
  36. struct dev_pm_domain hdmi_pm_domain;
  37. /* i915 component interface */
  38. struct i915_audio_component audio_component;
  39. };
  40. #ifdef CONFIG_SND_HDA_I915
  41. int hda_display_power(struct hda_intel *hda, bool enable);
  42. void haswell_set_bclk(struct hda_intel *hda);
  43. int hda_i915_init(struct hda_intel *hda);
  44. int hda_i915_exit(struct hda_intel *hda);
  45. #else
  46. static inline int hda_display_power(struct hda_intel *hda, bool enable)
  47. {
  48. return 0;
  49. }
  50. static inline void haswell_set_bclk(struct hda_intel *hda) { return; }
  51. static inline int hda_i915_init(struct hda_intel *hda)
  52. {
  53. return -ENODEV;
  54. }
  55. static inline int hda_i915_exit(struct hda_intel *hda)
  56. {
  57. return 0;
  58. }
  59. #endif
  60. #endif