[Intel-gfx] Intel Atom SoC Bay/Cherry Trail - HDMI Audio
poma
pomidorabelisima at gmail.com
Sat Mar 19 10:05:30 UTC 2016
... meanwhile ...
$ modinfo hdmi_audio
filename: /lib/modules/4.5.0-301.fc22.x86_64/kernel/sound/hdmi_audio/hdmi_audio.ko.xz
version: 0.01.003
license: GPL v2
description: Intel HDMI Audio driver
author: Vaibhav Agarwal <vaibhav.agarwal at intel.com>
author: Ramesh Babu K V <ramesh.babu at intel.com>
author: Sailaja Bandarupalli <sailaja.bandarupalli at intel.com>
srcversion: 3AA3766F4433DC0AC4234C3
alias: acpi*:HAD022A8:*
alias: acpi*:HAD0F28:*
depends: snd-pcm,i915,snd
intree: Y
vermagic: 4.5.0-301.fc22.x86_64 SMP mod_unload
parm: hdmi_card_index:Index value for INTEL Intel HDMI Audio controller. (int)
parm: hdmi_card_id:ID string for INTEL Intel HDMI Audio controller. (charp)
$ dmesg ...
had: ******** HAD DRIVER loading.. Ver: 0.01.003
HDMI Audio support on Atom w/o HDAUdio
w/ kernel-modules-4.5.0-301.fc22.x86_64
https://patchwork.freedesktop.org/series/4142/
https://kojipkgs.fedoraproject.org/packages/kernel/4.5.0/300.fc24/src/
---
...15-changes-for-non-HDAudio-HDMI-interface.patch | 27 +++++++++++-----------
...elated-changes-non-HDAudio-HDMI-interface.patch | 8 +++----
...-Atom-add-Atom-non-HDAudio-HDMI-interface.patch | 15 ++++++------
RFC-10-15-add-dependency-on-PM_RUNTIME.patch | 12 +++++-----
config-generic | 1 +
5 files changed, 32 insertions(+), 31 deletions(-)
diff --git a/RFC-05-15-drm-i915-changes-for-non-HDAudio-HDMI-interface.patch b/RFC-05-15-drm-i915-changes-for-non-HDAudio-HDMI-interface.patch
index fca2f41..2446dc2 100644
--- a/RFC-05-15-drm-i915-changes-for-non-HDAudio-HDMI-interface.patch
+++ b/RFC-05-15-drm-i915-changes-for-non-HDAudio-HDMI-interface.patch
@@ -3,7 +3,7 @@ diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index d1a46ef..556fa80 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -603,6 +603,31 @@ i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
+@@ -603,6 +603,31 @@
__i915_disable_pipestat(dev_priv, pipe, enable_mask, status_mask);
}
@@ -35,15 +35,15 @@ index d1a46ef..556fa80 100644
/**
* i915_enable_asle_pipestat - enable ASLE pipestat for OpRegion
* @dev: drm device
-@@ -1649,6 +1674,7 @@ static void valleyview_pipestat_irq_handler(struct drm_device *dev, u32 iir)
+@@ -1649,6 +1674,7 @@
struct drm_i915_private *dev_priv = dev->dev_private;
u32 pipe_stats[I915_MAX_PIPES] = { };
int pipe;
+ int lpe_stream;
spin_lock(&dev_priv->irq_lock);
-
-@@ -1719,6 +1745,24 @@ static void valleyview_pipestat_irq_handler(struct drm_device *dev, u32 iir)
+ for_each_pipe(dev_priv, pipe) {
+@@ -1713,6 +1739,24 @@
intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
}
@@ -68,7 +68,7 @@ index d1a46ef..556fa80 100644
if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS)
gmbus_irq_handler(dev);
}
-@@ -2804,6 +2848,43 @@ static void gen8_disable_vblank(struct drm_device *dev, unsigned int pipe)
+@@ -2790,6 +2834,43 @@
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
}
@@ -135,7 +135,7 @@ diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi
index 1beb155..8b6c31a 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
-@@ -1391,6 +1391,124 @@ intel_hdmi_set_edid(struct drm_connector *connector, bool force)
+@@ -1386,6 +1386,124 @@
return connected;
}
@@ -260,7 +260,7 @@ index 1beb155..8b6c31a 100644
static enum drm_connector_status
intel_hdmi_detect(struct drm_connector *connector, bool force)
{
-@@ -1399,6 +1517,8 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
+@@ -1394,6 +1512,8 @@
struct drm_i915_private *dev_priv = to_i915(connector->dev);
bool live_status = false;
unsigned int try;
@@ -269,7 +269,7 @@ index 1beb155..8b6c31a 100644
DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
connector->base.id, connector->name);
-@@ -1427,6 +1547,26 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
+@@ -1422,6 +1542,26 @@
intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS);
@@ -296,7 +296,7 @@ index 1beb155..8b6c31a 100644
return status;
}
-@@ -1450,12 +1590,22 @@ intel_hdmi_force(struct drm_connector *connector)
+@@ -1445,12 +1585,22 @@
static int intel_hdmi_get_modes(struct drm_connector *connector)
{
struct edid *edid;
@@ -320,7 +320,7 @@ index 1beb155..8b6c31a 100644
}
static bool
-@@ -2159,6 +2309,20 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
+@@ -2149,6 +2299,20 @@
u32 temp = I915_READ(PEG_BAND_GAP_DATA);
I915_WRITE(PEG_BAND_GAP_DATA, (temp & ~0xf) | 0xd);
}
@@ -341,17 +341,18 @@ index 1beb155..8b6c31a 100644
}
void intel_hdmi_init(struct drm_device *dev,
-@@ -2168,6 +2332,8 @@ void intel_hdmi_init(struct drm_device *dev,
+@@ -2157,6 +2321,9 @@
struct intel_digital_port *intel_dig_port;
struct intel_encoder *intel_encoder;
struct intel_connector *intel_connector;
++ struct drm_i915_private *dev_priv = dev->dev_private;
+ /* Added for HDMI Audio */
+ struct hdmi_audio_priv *hdmi_priv;
intel_dig_port = kzalloc(sizeof(*intel_dig_port), GFP_KERNEL);
if (!intel_dig_port)
-@@ -2239,4 +2405,19 @@ void intel_hdmi_init(struct drm_device *dev,
- intel_dig_port->max_lanes = 4;
+@@ -2226,4 +2393,19 @@
+ intel_dig_port->dp.output_reg = INVALID_MMIO_REG;
intel_hdmi_init_connector(intel_dig_port, intel_connector);
+
diff --git a/RFC-06-15-drm-i915-power-related-changes-non-HDAudio-HDMI-interface.patch b/RFC-06-15-drm-i915-power-related-changes-non-HDAudio-HDMI-interface.patch
index 572ffc7..50f52b0 100644
--- a/RFC-06-15-drm-i915-power-related-changes-non-HDAudio-HDMI-interface.patch
+++ b/RFC-06-15-drm-i915-power-related-changes-non-HDAudio-HDMI-interface.patch
@@ -501,9 +501,9 @@ index d33de95..dae77d1 100644
+#endif
+
/**
- * DOC: RC6
- *
-@@ -7098,6 +7109,7 @@ void intel_suspend_hw(struct drm_device *dev)
+ * RC6 is a special power stage which allows the GPU to enter an very
+ * low-voltage mode when idle, using down to 0V while at this stage. This
+@@ -6964,6 +6975,7 @@
void intel_init_pm(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
@@ -511,7 +511,7 @@ index d33de95..dae77d1 100644
intel_fbc_init(dev_priv);
-@@ -7398,3 +7410,44 @@ void intel_pm_setup(struct drm_device *dev)
+@@ -7257,3 +7269,44 @@
atomic_set(&dev_priv->pm.wakeref_count, 0);
atomic_set(&dev_priv->pm.atomic_seq, 0);
}
diff --git a/RFC-09-15-ALSA-Intel-Atom-add-Atom-non-HDAudio-HDMI-interface.patch b/RFC-09-15-ALSA-Intel-Atom-add-Atom-non-HDAudio-HDMI-interface.patch
index 1d22646..c5c95f6 100644
--- a/RFC-09-15-ALSA-Intel-Atom-add-Atom-non-HDAudio-HDMI-interface.patch
+++ b/RFC-09-15-ALSA-Intel-Atom-add-Atom-non-HDAudio-HDMI-interface.patch
@@ -40,23 +40,22 @@ diff --git a/sound/Kconfig b/sound/Kconfig
index 5a240e0..75c679e 100644
--- a/sound/Kconfig
+++ b/sound/Kconfig
-@@ -134,3 +134,11 @@ config AC97_BUS
+@@ -134,3 +134,10 @@
sound subsystem and other function drivers completely unrelated to
sound although they're sharing the AC97 bus. Concerned drivers
should "select" this.
+
+config SUPPORT_HDMI
-+ bool "SUPPORT_HDMI"
-+ depends on DRM_I915
-+ default n
-+ help
-+ Choose this option to support HDMI.
-+
++ bool "SUPPORT_HDMI"
++ depends on DRM_I915
++ default n
++ help
++ Choose this option to support HDMI.
diff --git a/sound/Makefile b/sound/Makefile
index 7732070..f2c5e82 100644
--- a/sound/Makefile
+++ b/sound/Makefile
-@@ -8,6 +8,7 @@ obj-$(CONFIG_DMASOUND) += oss/
+@@ -8,6 +8,7 @@
obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ sh/ synth/ usb/ \
firewire/ sparc/ spi/ parisc/ pcmcia/ mips/ soc/ atmel/ hda/
obj-$(CONFIG_SND_AOA) += aoa/
diff --git a/RFC-10-15-add-dependency-on-PM_RUNTIME.patch b/RFC-10-15-add-dependency-on-PM_RUNTIME.patch
index d7e8e50..e0ff9aa 100644
--- a/RFC-10-15-add-dependency-on-PM_RUNTIME.patch
+++ b/RFC-10-15-add-dependency-on-PM_RUNTIME.patch
@@ -21,11 +21,11 @@ diff --git a/sound/Kconfig b/sound/Kconfig
index 75c679e..b8b4fce 100644
--- a/sound/Kconfig
+++ b/sound/Kconfig
-@@ -138,6 +138,7 @@ config AC97_BUS
+@@ -138,6 +138,7 @@
config SUPPORT_HDMI
- bool "SUPPORT_HDMI"
- depends on DRM_I915
+ bool "SUPPORT_HDMI"
+ depends on DRM_I915
+ select PM_RUNTIME
- default n
- help
- Choose this option to support HDMI.
+ default n
+ help
+ Choose this option to support HDMI.
diff --git a/config-generic b/config-generic
index a970c65..eafd59c 100644
--- a/config-generic
+++ b/config-generic
@@ -3895,6 +3895,7 @@ CONFIG_SND_FIREWIRE_TASCAM=m
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
+CONFIG_SUPPORT_HDMI=y
#
# USB support
--
2.4.3
More information about the Intel-gfx
mailing list