All of lore.kernel.org
 help / color / mirror / Atom feed
* Intel Atom SoC Bay/Cherry Trail - HDMI Audio
@ 2016-03-18 19:32 poma
  2016-03-19 10:05 ` poma
  0 siblings, 1 reply; 2+ messages in thread
From: poma @ 2016-03-18 19:32 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: Intel Graphics Development

Hi Fi

$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.6.tar.xz
$ tar xf linux-4.4.6.tar.xz 
$ cd linux-4.4.6/

$ curl -s https://patchwork.freedesktop.org/api/1.0/series/4142/revisions/1/mbox/ | patch -p1
...
patching file drivers/gpu/drm/i915/i915_reg.h
Hunk #1 succeeded at 1993 with fuzz 2 (offset -69 lines).
Hunk #2 FAILED at 3369.
Hunk #3 FAILED at 3378.
2 out of 3 hunks FAILED -- saving rejects to file drivers/gpu/drm/i915/i915_reg.h.rej
...

$ cat drivers/gpu/drm/i915/i915_reg.h.rej
--- drivers/gpu/drm/i915/i915_reg.h
+++ drivers/gpu/drm/i915/i915_reg.h
@@ -3369,6 +3374,7 @@ enum skl_disp_power_wells {
 #define _GEN3_SDVOC	0x61160
 #define GEN3_SDVOB	_MMIO(_GEN3_SDVOB)
 #define GEN3_SDVOC	_MMIO(_GEN3_SDVOC)
+#define HDMIB	(dev_priv->info.display_mmio_offset + 0x61140)
 #define GEN4_HDMIB	GEN3_SDVOB
 #define GEN4_HDMIC	GEN3_SDVOC
 #define VLV_HDMIB	_MMIO(VLV_DISPLAY_BASE + 0x61140)
@@ -3378,6 +3384,7 @@ enum skl_disp_power_wells {
 #define PCH_HDMIB	PCH_SDVOB
 #define PCH_HDMIC	_MMIO(0xe1150)
 #define PCH_HDMID	_MMIO(0xe1160)
+#define PORT_ENABLE	(1 << 31)
 
 #define PORT_DFT_I9XX				_MMIO(0x61150)
 #define   DC_BALANCE_RESET			(1 << 25)


"_MMIO"s came with
drm/i915: Type safe register read/write
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/drivers/gpu/drm/i915/i915_reg.h?h=linux-4.5.y&id=f0f59a0
so I guess this hdmi_audio code goes on top of >= 4.5 kernel series (current mainline),
not as the https://github.com/plbossart/sound/commits/baytrail-stick-rebase-4.4

Beside https://lists.freedesktop.org/archives/intel-gfx/
and https://patchwork.freedesktop.org/project/intel-gfx/
is there a branch at https://cgit.freedesktop.org/drm-intel/
or a repo at https://git.kernel.org/cgit/ in which this hdmi_audio code exists?

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Intel Atom SoC Bay/Cherry Trail - HDMI Audio
  2016-03-18 19:32 Intel Atom SoC Bay/Cherry Trail - HDMI Audio poma
@ 2016-03-19 10:05 ` poma
  0 siblings, 0 replies; 2+ messages in thread
From: poma @ 2016-03-19 10:05 UTC (permalink / raw)
  To: Pierre-Louis Bossart; +Cc: Intel Graphics Development


... 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@intel.com>
author:         Ramesh Babu K V <ramesh.babu@intel.com>
author:         Sailaja Bandarupalli <sailaja.bandarupalli@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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-03-19 10:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-18 19:32 Intel Atom SoC Bay/Cherry Trail - HDMI Audio poma
2016-03-19 10:05 ` poma

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.