All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King <rmk+kernel@arm.linux.org.uk>
To: linux-rockchip@lists.infradead.org, alsa-devel@alsa-project.org,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Cc: Philipp Zabel <p.zabel@pengutronix.de>,
	Andy Yan <andy.yan@rock-chips.com>,
	Yakir Yang <ykk@rock-chips.com>,
	Fabio Estevam <fabio.estevam@freescale.com>,
	Mark Brown <broonie@kernel.org>, Takashi Iwai <tiwai@suse.de>,
	Jaroslav Kysela <perex@perex.cz>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Jon Nettleton <jon.nettleton@gmail.com>,
	David Airlie <airlied@linux.ie>
Subject: [PATCH 8/9] drm: bridge/dw_hdmi: replace CTS calculation for the ACR
Date: Sat, 08 Aug 2015 17:10:42 +0100	[thread overview]
Message-ID: <E1ZO6hm-0003Ni-E0@rmk-PC.arm.linux.org.uk> (raw)
In-Reply-To: <20150808160936.GN7557@n2100.arm.linux.org.uk>

Given the TDMS clock, audio sample rate, and the N parameter, we can
calculate the CTS value for the audio clock regenerator (ACR) using the
following calculation given in the HDMI specification:

	CTS = ftdms * N / (128 * fs)

The specification says that the CTS value is an average value, which is
true if the source hardware measures it.  Where source hardware needs it
to be programmed, it is particularly difficult to alternate it between
two values correctly to ensure that we achieve a correct "average"
fractional value at the sink.

Also, there's the problem that our "ftdms" is not a fully accurate
value; it is rounded to a kHz value.  This introduces an unnecessary
(and harmless) fractional value into the above equation for combinations
like 148.5MHz/1.001 for 44100Hz - we still calculate the correct CTS
value.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/gpu/drm/bridge/dw_hdmi.c | 92 +++++++---------------------------------
 1 file changed, 16 insertions(+), 76 deletions(-)

diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c
index 60487bff48e3..a4f9aecf1862 100644
--- a/drivers/gpu/drm/bridge/dw_hdmi.c
+++ b/drivers/gpu/drm/bridge/dw_hdmi.c
@@ -272,89 +272,29 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk)
 	return n;
 }
 
-static unsigned int hdmi_compute_cts(unsigned int freq, unsigned long pixel_clk)
-{
-	unsigned int cts = 0;
-
-	pr_debug("%s: freq: %d pixel_clk: %ld\n", __func__, freq, pixel_clk);
-
-	switch (freq) {
-	case 32000:
-		if (pixel_clk == 297000000) {
-			cts = 222750;
-			break;
-		}
-	case 48000:
-	case 96000:
-	case 192000:
-		switch (pixel_clk) {
-		case 25200000:
-		case 27000000:
-		case 54000000:
-		case 74250000:
-		case 148500000:
-			cts = pixel_clk / 1000;
-			break;
-		case 297000000:
-			cts = 247500;
-			break;
-		/*
-		 * All other TMDS clocks are not supported by
-		 * DWC_hdmi_tx. The TMDS clocks divided or
-		 * multiplied by 1,001 coefficients are not
-		 * supported.
-		 */
-		default:
-			break;
-		}
-		break;
-	case 44100:
-	case 88200:
-	case 176400:
-		switch (pixel_clk) {
-		case 25200000:
-			cts = 28000;
-			break;
-		case 27000000:
-			cts = 30000;
-			break;
-		case 54000000:
-			cts = 60000;
-			break;
-		case 74250000:
-			cts = 82500;
-			break;
-		case 148500000:
-			cts = 165000;
-			break;
-		case 297000000:
-			cts = 247500;
-			break;
-		default:
-			break;
-		}
-		break;
-	default:
-		break;
-	}
-	return cts;
-}
-
 static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi,
 	unsigned long pixel_clk, unsigned int sample_rate)
 {
+	unsigned long ftdms = pixel_clk;
 	unsigned int n, cts;
+	u64 tmp;
 
 	n = hdmi_compute_n(sample_rate, pixel_clk);
-	cts = hdmi_compute_cts(sample_rate, pixel_clk);
-	if (!cts) {
-		dev_err(hdmi->dev,
-			"%s: pixel clock/sample rate not supported: %luMHz / %ukHz\n",
-			__func__, pixel_clk, sample_rate);
-	}
 
-	dev_dbg(hdmi->dev, "%s: samplerate=%ukHz pixelclk=%luMHz N=%d cts=%d\n",
-		__func__, sample_rate, pixel_clk, n, cts);
+	/*
+	 * Compute the CTS value from the N value.  Note that CTS and N
+	 * can be up to 20 bits in total, so we need 64-bit math.  Also
+	 * note that our TDMS clock is not fully accurate; it is accurate
+	 * to kHz.  This can introduce an unnecessary remainder in the
+	 * calculation below, so we don't try to warn about that.
+	 */
+	tmp = (u64)ftdms * n;
+	do_div(tmp, 128 * sample_rate);
+	cts = tmp;
+
+	dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n",
+		__func__, sample_rate, ftdms / 1000000, (ftdms / 1000) % 1000,
+		n, cts);
 
 	spin_lock_irq(&hdmi->audio_lock);
 	hdmi->audio_n = n;
-- 
2.1.0


WARNING: multiple messages have this Message-ID (diff)
From: rmk+kernel@arm.linux.org.uk (Russell King)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 8/9] drm: bridge/dw_hdmi: replace CTS calculation for the ACR
Date: Sat, 08 Aug 2015 17:10:42 +0100	[thread overview]
Message-ID: <E1ZO6hm-0003Ni-E0@rmk-PC.arm.linux.org.uk> (raw)
In-Reply-To: <20150808160936.GN7557@n2100.arm.linux.org.uk>

Given the TDMS clock, audio sample rate, and the N parameter, we can
calculate the CTS value for the audio clock regenerator (ACR) using the
following calculation given in the HDMI specification:

	CTS = ftdms * N / (128 * fs)

The specification says that the CTS value is an average value, which is
true if the source hardware measures it.  Where source hardware needs it
to be programmed, it is particularly difficult to alternate it between
two values correctly to ensure that we achieve a correct "average"
fractional value at the sink.

Also, there's the problem that our "ftdms" is not a fully accurate
value; it is rounded to a kHz value.  This introduces an unnecessary
(and harmless) fractional value into the above equation for combinations
like 148.5MHz/1.001 for 44100Hz - we still calculate the correct CTS
value.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/gpu/drm/bridge/dw_hdmi.c | 92 +++++++---------------------------------
 1 file changed, 16 insertions(+), 76 deletions(-)

diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c
index 60487bff48e3..a4f9aecf1862 100644
--- a/drivers/gpu/drm/bridge/dw_hdmi.c
+++ b/drivers/gpu/drm/bridge/dw_hdmi.c
@@ -272,89 +272,29 @@ static unsigned int hdmi_compute_n(unsigned int freq, unsigned long pixel_clk)
 	return n;
 }
 
-static unsigned int hdmi_compute_cts(unsigned int freq, unsigned long pixel_clk)
-{
-	unsigned int cts = 0;
-
-	pr_debug("%s: freq: %d pixel_clk: %ld\n", __func__, freq, pixel_clk);
-
-	switch (freq) {
-	case 32000:
-		if (pixel_clk == 297000000) {
-			cts = 222750;
-			break;
-		}
-	case 48000:
-	case 96000:
-	case 192000:
-		switch (pixel_clk) {
-		case 25200000:
-		case 27000000:
-		case 54000000:
-		case 74250000:
-		case 148500000:
-			cts = pixel_clk / 1000;
-			break;
-		case 297000000:
-			cts = 247500;
-			break;
-		/*
-		 * All other TMDS clocks are not supported by
-		 * DWC_hdmi_tx. The TMDS clocks divided or
-		 * multiplied by 1,001 coefficients are not
-		 * supported.
-		 */
-		default:
-			break;
-		}
-		break;
-	case 44100:
-	case 88200:
-	case 176400:
-		switch (pixel_clk) {
-		case 25200000:
-			cts = 28000;
-			break;
-		case 27000000:
-			cts = 30000;
-			break;
-		case 54000000:
-			cts = 60000;
-			break;
-		case 74250000:
-			cts = 82500;
-			break;
-		case 148500000:
-			cts = 165000;
-			break;
-		case 297000000:
-			cts = 247500;
-			break;
-		default:
-			break;
-		}
-		break;
-	default:
-		break;
-	}
-	return cts;
-}
-
 static void hdmi_set_clk_regenerator(struct dw_hdmi *hdmi,
 	unsigned long pixel_clk, unsigned int sample_rate)
 {
+	unsigned long ftdms = pixel_clk;
 	unsigned int n, cts;
+	u64 tmp;
 
 	n = hdmi_compute_n(sample_rate, pixel_clk);
-	cts = hdmi_compute_cts(sample_rate, pixel_clk);
-	if (!cts) {
-		dev_err(hdmi->dev,
-			"%s: pixel clock/sample rate not supported: %luMHz / %ukHz\n",
-			__func__, pixel_clk, sample_rate);
-	}
 
-	dev_dbg(hdmi->dev, "%s: samplerate=%ukHz pixelclk=%luMHz N=%d cts=%d\n",
-		__func__, sample_rate, pixel_clk, n, cts);
+	/*
+	 * Compute the CTS value from the N value.  Note that CTS and N
+	 * can be up to 20 bits in total, so we need 64-bit math.  Also
+	 * note that our TDMS clock is not fully accurate; it is accurate
+	 * to kHz.  This can introduce an unnecessary remainder in the
+	 * calculation below, so we don't try to warn about that.
+	 */
+	tmp = (u64)ftdms * n;
+	do_div(tmp, 128 * sample_rate);
+	cts = tmp;
+
+	dev_dbg(hdmi->dev, "%s: fs=%uHz ftdms=%lu.%03luMHz N=%d cts=%d\n",
+		__func__, sample_rate, ftdms / 1000000, (ftdms / 1000) % 1000,
+		n, cts);
 
 	spin_lock_irq(&hdmi->audio_lock);
 	hdmi->audio_n = n;
-- 
2.1.0

  parent reply	other threads:[~2015-08-08 16:11 UTC|newest]

Thread overview: 226+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-08 16:02 [PATCH 00/12] dw-hdmi development Russell King - ARM Linux
2015-08-08 16:02 ` Russell King - ARM Linux
2015-08-08 16:02 ` Russell King - ARM Linux
2015-08-08 16:03 ` [PATCH 01/12] drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs Russell King
2015-08-08 16:03   ` Russell King
2015-08-08 16:03 ` [PATCH 02/12] drm: bridge/dw_hdmi: don't support any pixel doubled modes Russell King
2015-08-08 16:03   ` Russell King
2015-08-08 16:03 ` [PATCH 03/12] gpu: imx: simplify sync polarity setting Russell King
2015-08-08 16:03   ` Russell King
2015-10-06 17:57   ` Fabio Estevam
2015-10-06 17:57     ` Fabio Estevam
2015-10-06 17:57     ` Fabio Estevam
2015-08-08 16:03 ` [PATCH 04/12] gpu: imx: fix support for interlaced modes Russell King
2015-08-08 16:03   ` Russell King
2015-08-27  8:39   ` Philipp Zabel
2015-08-27  8:39     ` Philipp Zabel
2015-08-27  8:39     ` Philipp Zabel
2015-08-27  8:54     ` Russell King - ARM Linux
2015-08-27  8:54       ` Russell King - ARM Linux
2015-08-27  8:54       ` Russell King - ARM Linux
2015-08-27  9:40       ` Philipp Zabel
2015-08-27  9:40         ` Philipp Zabel
2015-08-27  9:40         ` Philipp Zabel
2015-10-06 17:59   ` Fabio Estevam
2015-10-06 17:59     ` Fabio Estevam
2015-10-06 17:59     ` Fabio Estevam
2015-08-08 16:03 ` [PATCH 05/12] drm: bridge/dw_hdmi: add support for interlaced video modes Russell King
2015-08-08 16:03   ` Russell King
2015-08-08 16:03   ` Russell King
2015-10-06 18:00   ` Fabio Estevam
2015-10-06 18:00     ` Fabio Estevam
2015-10-06 18:00     ` Fabio Estevam
2015-08-08 16:03 ` [PATCH 06/12] drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling Russell King
2015-08-08 16:03   ` Russell King
2015-10-07  3:40   ` Yakir Yang
2015-10-07  3:40     ` Yakir Yang
2015-10-07  3:40     ` Yakir Yang
2015-08-08 16:03 ` [PATCH 07/12] drm: bridge/dw_hdmi: enable audio only if sink supports audio Russell King
2015-08-08 16:03   ` Russell King
2015-10-07  3:42   ` Yakir Yang
2015-10-07  3:42     ` Yakir Yang
2015-10-07  3:42     ` Yakir Yang
2015-08-08 16:04 ` [PATCH 08/12] drm: bridge/dw_hdmi: avoid enabling interface in mode_set Russell King
2015-08-08 16:04   ` Russell King
2015-10-07  3:50   ` Yakir Yang
2015-10-07  3:50     ` Yakir Yang
2015-10-07  9:18     ` Russell King - ARM Linux
2015-10-07  9:18       ` Russell King - ARM Linux
2015-10-07  9:18       ` Russell King - ARM Linux
2015-10-07  9:35       ` Yakir Yang
2015-10-07  9:35         ` Yakir Yang
2015-10-07  9:35         ` Yakir Yang
2015-08-08 16:04 ` [PATCH 09/12] drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power() Russell King
2015-08-08 16:04   ` Russell King
2015-08-08 16:04   ` Russell King
2015-10-07  4:00   ` Yakir Yang
2015-08-08 16:04 ` [PATCH 10/12] drm: bridge/dw_hdmi: fix phy enable/disable handling Russell King
2015-08-08 16:04   ` Russell King
2015-08-08 16:04   ` Russell King
2015-10-07  4:05   ` Yakir Yang
2015-10-07  9:48     ` Russell King - ARM Linux
2015-10-07  9:48       ` Russell King - ARM Linux
2015-10-07  9:48       ` Russell King - ARM Linux
2015-10-07 10:40       ` Yakir Yang
2015-10-07 19:17         ` Russell King - ARM Linux
2015-10-07 19:17           ` Russell King - ARM Linux
2015-10-07 19:17           ` Russell King - ARM Linux
2015-10-08  8:35           ` Yakir Yang
2015-10-08  8:35             ` Yakir Yang
2015-10-08  8:35             ` Yakir Yang
2015-08-08 16:04 ` [PATCH 11/12] drm: bridge/dw_hdmi: add connector mode forcing Russell King
2015-08-08 16:04   ` Russell King
2015-08-08 16:04   ` Russell King
2015-10-06 18:01   ` Fabio Estevam
2015-10-06 18:01     ` Fabio Estevam
2015-10-06 18:01     ` Fabio Estevam
2015-08-08 16:04 ` [PATCH 12/12] drm: bridge/dw_hdmi: improve HDMI enable/disable handling Russell King
2015-08-08 16:04   ` Russell King
2015-10-06 18:03   ` Fabio Estevam
2015-10-06 18:03     ` Fabio Estevam
2015-10-06 18:03     ` Fabio Estevam
2015-08-08 16:09 ` [PATCH 0/9] dw-hdmi audio support Russell King - ARM Linux
2015-08-08 16:09   ` Russell King - ARM Linux
2015-08-08 16:09   ` Russell King - ARM Linux
2015-08-08 16:10   ` [PATCH 1/9] drm: bridge/dw_hdmi-ahb-audio: add audio driver Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10     ` Russell King
2015-08-10 10:05     ` Takashi Iwai
2015-08-10 10:05       ` Takashi Iwai
2015-08-10 10:05       ` Takashi Iwai
2015-08-10 10:39       ` Russell King - ARM Linux
2015-08-10 10:39         ` Russell King - ARM Linux
2015-08-10 10:39         ` Russell King - ARM Linux
2015-08-10 12:23         ` Takashi Iwai
2015-08-10 12:23           ` Takashi Iwai
2015-08-10 12:23           ` Takashi Iwai
2015-08-10 16:49           ` Russell King - ARM Linux
2015-08-10 16:49             ` Russell King - ARM Linux
2015-08-10 16:49             ` Russell King - ARM Linux
2015-08-10 18:16             ` Mark Brown
2015-08-10 18:16               ` Mark Brown
2015-08-14 13:54       ` [PATCH v2 1/9] drm: bridge/dw_hdmi-ahb-audio: add audio driver David Airlie <airlied@linux.ie>, Sascha Hauer <s.hauer@pengutronix.de>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Jaroslav Kysela <perex@perex.cz>, linux-rockchip@lists.infradead.org, Mark Brown <broonie@kernel.org>, Philipp Zabel <p.zabel@pengutronix.de>, Yakir Yang <ykk@rock-chips.com>, Andy Yan <andy.yan@rock-chips.com>, Jon Nettleton <jon.nettleton@gmail.com>, linux-arm-kernel@lists.infradead.org Russell King
2015-08-14 13:54         ` Russell King
2015-08-14 13:54         ` Russell King
2015-08-14 14:04       ` [PATCH v2 1/9] drm: bridge/dw_hdmi-ahb-audio: add audio driver Russell King
2015-08-14 14:04         ` Russell King
2015-08-14 14:04         ` Russell King
2015-08-14 14:34         ` [alsa-devel] " Takashi Iwai
2015-08-14 14:34           ` Takashi Iwai
2015-08-14 14:34           ` Takashi Iwai
2015-10-06 18:07     ` [PATCH " Fabio Estevam
2015-10-06 18:07       ` Fabio Estevam
2015-10-06 18:07       ` Fabio Estevam
2015-10-06 18:18       ` Russell King - ARM Linux
2015-10-06 18:18         ` Russell King - ARM Linux
2015-10-06 18:18         ` Russell King - ARM Linux
2015-10-06 18:45         ` Fabio Estevam
2015-10-06 18:45           ` Fabio Estevam
2015-10-06 18:45           ` Fabio Estevam
2015-10-06 18:54           ` Russell King - ARM Linux
2015-10-06 18:54             ` Russell King - ARM Linux
2015-10-06 18:54             ` Russell King - ARM Linux
2015-10-06 20:25             ` Fabio Estevam
2015-10-06 20:25               ` Fabio Estevam
2015-10-06 20:25               ` Fabio Estevam
2015-10-09 16:00               ` Russell King - ARM Linux
2015-10-09 16:00                 ` Russell King - ARM Linux
2015-10-09 16:00                 ` Russell King - ARM Linux
2015-10-09 16:02                 ` Fabio Estevam
2015-10-09 16:02                   ` Fabio Estevam
2015-10-09 16:02                   ` Fabio Estevam
2015-10-09 16:11                   ` Russell King - ARM Linux
2015-10-09 16:11                     ` Russell King - ARM Linux
2015-10-09 16:11                     ` Russell King - ARM Linux
2015-08-08 16:10   ` [PATCH 2/9] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10   ` [PATCH 3/9] drm: bridge/dw_hdmi-ahb-audio: basic support for multi-channel PCM audio Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10   ` [PATCH 4/9] drm: bridge/dw_hdmi-ahb-audio: allow larger buffer sizes Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10   ` [PATCH 5/9] drm: bridge/dw_hdmi: avoid being recursive in N calculation Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10     ` Russell King
2015-09-04 17:50     ` Doug Anderson
2015-09-04 17:50       ` Doug Anderson
2015-09-04 17:50       ` Doug Anderson
2015-08-08 16:10   ` [PATCH 6/9] drm: bridge/dw_hdmi: adjust pixel clock values " Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10     ` Russell King
2015-09-04 18:21     ` Doug Anderson
2015-09-04 18:21       ` Doug Anderson
2015-09-04 18:21       ` Doug Anderson
2015-09-04 19:48       ` Doug Anderson
2015-09-04 19:48         ` Doug Anderson
2015-09-04 19:48         ` Doug Anderson
2015-09-04 21:24         ` Russell King - ARM Linux
2015-09-04 21:24           ` Russell King - ARM Linux
2015-09-04 21:24           ` Russell King - ARM Linux
2015-09-04 23:50           ` Doug Anderson
2015-09-04 23:50             ` Doug Anderson
2015-09-04 23:50             ` Doug Anderson
2015-09-05  0:27             ` Russell King - ARM Linux
2015-09-05  0:27               ` Russell King - ARM Linux
2015-09-05  0:27               ` Russell King - ARM Linux
2015-09-05  2:03               ` Doug Anderson
2015-09-05  2:03                 ` Doug Anderson
2015-09-05  2:03                 ` Doug Anderson
2015-09-05  8:31                 ` Russell King - ARM Linux
2015-09-05  8:31                   ` Russell King - ARM Linux
2015-09-05  8:31                   ` Russell King - ARM Linux
2015-09-05 13:46                   ` Doug Anderson
2015-09-05 13:46                     ` Doug Anderson
2015-09-05 13:46                     ` Doug Anderson
2015-09-05 14:01                     ` Russell King - ARM Linux
2015-09-05 14:01                       ` Russell King - ARM Linux
2015-09-05 14:01                       ` Russell King - ARM Linux
2015-09-05 19:44                       ` Doug Anderson
2015-09-05 19:44                         ` Doug Anderson
2015-09-05 19:44                         ` Doug Anderson
2015-09-05  8:34                 ` Russell King - ARM Linux
2015-09-05  8:34                   ` Russell King - ARM Linux
2015-09-05  8:34                   ` Russell King - ARM Linux
2015-09-05 13:50                   ` Doug Anderson
2015-09-05 13:50                     ` Doug Anderson
2015-09-05 13:50                     ` Doug Anderson
2015-08-08 16:10   ` [PATCH 7/9] drm: bridge/dw_hdmi: remove ratio support from ACR code Russell King
2015-08-08 16:10     ` Russell King
2015-08-08 16:10     ` Russell King
2015-09-04 18:24     ` Doug Anderson
2015-09-04 18:24       ` Doug Anderson
2015-09-04 18:24       ` Doug Anderson
2015-08-08 16:10   ` Russell King [this message]
2015-08-08 16:10     ` [PATCH 8/9] drm: bridge/dw_hdmi: replace CTS calculation for the ACR Russell King
2015-09-04 20:00     ` Doug Anderson
2015-09-04 20:00       ` Doug Anderson
2015-09-04 20:00       ` Doug Anderson
2015-08-08 16:10   ` [PATCH 9/9] drm: bridge/dw_hdmi-i2s-audio: add audio driver Russell King
2015-08-08 16:10     ` Russell King
2015-08-10 15:48     ` Russell King - ARM Linux
2015-08-10 15:48       ` Russell King - ARM Linux
2015-08-10 15:48       ` Russell King - ARM Linux
2015-08-10 16:26       ` Yakir Yang
2015-08-10 16:26         ` Yakir Yang
2015-08-10 16:26         ` Yakir Yang
2015-08-27  8:42   ` [PATCH 0/9] dw-hdmi audio support Philipp Zabel
2015-08-27  8:42     ` Philipp Zabel
2015-08-27  8:42     ` Philipp Zabel
2016-01-05 15:40     ` [alsa-devel] " Jean-Michel Hautbois
2016-01-05 15:40       ` Jean-Michel Hautbois
2016-01-05 15:54       ` Fabio Estevam
2016-01-05 15:54         ` Fabio Estevam
2016-01-05 15:54         ` Fabio Estevam
2016-01-05 16:04       ` Russell King - ARM Linux
2016-01-05 16:04         ` Russell King - ARM Linux
2016-01-05 16:04         ` Russell King - ARM Linux
2016-01-07  8:21         ` Jean-Michel Hautbois
2016-01-07  8:21           ` Jean-Michel Hautbois
2016-01-07  8:21           ` Jean-Michel Hautbois
2015-08-10 12:21 ` [PATCH 00/12] dw-hdmi development Thierry Reding
2015-08-10 12:21   ` Thierry Reding
2015-08-10 12:21   ` Thierry Reding
2015-08-18 10:37   ` Russell King - ARM Linux
2015-08-18 10:37     ` Russell King - ARM Linux
2015-08-18 10:37     ` Russell King - ARM Linux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1ZO6hm-0003Ni-E0@rmk-PC.arm.linux.org.uk \
    --to=rmk+kernel@arm.linux.org.uk \
    --cc=airlied@linux.ie \
    --cc=alsa-devel@alsa-project.org \
    --cc=andy.yan@rock-chips.com \
    --cc=broonie@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=fabio.estevam@freescale.com \
    --cc=jon.nettleton@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=p.zabel@pengutronix.de \
    --cc=perex@perex.cz \
    --cc=s.hauer@pengutronix.de \
    --cc=tiwai@suse.de \
    --cc=ykk@rock-chips.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.