diff mbox

[v2] omapdrm: hdmi4: Correct the SoC revision matching

Message ID 20171120095140.12969-1-peter.ujfalusi@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Peter Ujfalusi Nov. 20, 2017, 9:51 a.m. UTC
I believe the intention of the commit 2c9fc9bf45f8
("drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver")
was to identify omap4430 ES1.x, omap4430 ES2.x and other OMAP4 revisions,
like omap4460.

By using family=OMAP4 in the match the code will treat omap4460 ES1.x in a
same way as it would treat omap4430 ES1.x

This breaks HDMI audio on OMAP4460 devices (PandaES for example).

Correct the match rule so we are not going to get false positive match.

Fixes: 2c9fc9bf45f8 ("drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver")

CC: stable@vger.kernel.org # 4.14
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
Hi,

Changes since v1:
- fix the hdmi4_features structure names for clarity.

Regards,
Peter

 drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

Comments

Laurent Pinchart Nov. 21, 2017, 7:04 a.m. UTC | #1
Hi Peter,

Thank you for the patch.

On Monday, 20 November 2017 11:51:40 EET Peter Ujfalusi wrote:
> I believe the intention of the commit 2c9fc9bf45f8
> ("drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver")
> was to identify omap4430 ES1.x, omap4430 ES2.x and other OMAP4 revisions,
> like omap4460.
> 
> By using family=OMAP4 in the match the code will treat omap4460 ES1.x in a
> same way as it would treat omap4430 ES1.x
> 
> This breaks HDMI audio on OMAP4460 devices (PandaES for example).

Sorry for breaking this :-(

> Correct the match rule so we are not going to get false positive match.
> 
> Fixes: 2c9fc9bf45f8 ("drm: omapdrm: Move FEAT_HDMI_* features to hdmi4
> driver")
> 
> CC: stable@vger.kernel.org # 4.14
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
> Hi,
> 
> Changes since v1:
> - fix the hdmi4_features structure names for clarity.
> 
> Regards,
> Peter
> 
>  drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
> b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c index 62e451162d96..b06f9956e733
> 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
> @@ -886,25 +886,36 @@ struct hdmi4_features {
>  	bool audio_use_mclk;
>  };
> 
> -static const struct hdmi4_features hdmi4_es1_features = {
> +static const struct hdmi4_features hdmi4430_es1_features = {
>  	.cts_swmode = false,
>  	.audio_use_mclk = false,
>  };
> 
> -static const struct hdmi4_features hdmi4_es2_features = {
> +static const struct hdmi4_features hdmi4430_es2_features = {
>  	.cts_swmode = true,
>  	.audio_use_mclk = false,
>  };
> 
> -static const struct hdmi4_features hdmi4_es3_features = {
> +static const struct hdmi4_features hdmi4_features = {
>  	.cts_swmode = true,
>  	.audio_use_mclk = true,
>  };
> 
>  static const struct soc_device_attribute hdmi4_soc_devices[] = {
> -	{ .family = "OMAP4", .revision = "ES1.?", .data = &hdmi4_es1_features },
> -	{ .family = "OMAP4", .revision = "ES2.?", .data = &hdmi4_es2_features },
> -	{ .family = "OMAP4",			  .data = &hdmi4_es3_features },
> +	{
> +		.machine = "OMAP4430",
> +		.revision = "ES1.?",
> +		.data = &hdmi4430_es1_features,
> +	},
> +	{
> +		.machine = "OMAP4430",
> +		.revision = "ES2.?",
> +		.data = &hdmi4430_es2_features,
> +	},
> +	{
> +		.family = "OMAP4",
> +		.data = &hdmi4_features,
> +	},
>  	{ /* sentinel */ }
>  };
Tomi Valkeinen Nov. 21, 2017, 10:23 a.m. UTC | #2
On 20/11/17 11:51, Peter Ujfalusi wrote:
> I believe the intention of the commit 2c9fc9bf45f8
> ("drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver")
> was to identify omap4430 ES1.x, omap4430 ES2.x and other OMAP4 revisions,
> like omap4460.
> 
> By using family=OMAP4 in the match the code will treat omap4460 ES1.x in a
> same way as it would treat omap4430 ES1.x
> 
> This breaks HDMI audio on OMAP4460 devices (PandaES for example).
> 
> Correct the match rule so we are not going to get false positive match.
> 
> Fixes: 2c9fc9bf45f8 ("drm: omapdrm: Move FEAT_HDMI_* features to hdmi4 driver")
> 
> CC: stable@vger.kernel.org # 4.14
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

Thanks, I have picked this up.

 Tomi
diff mbox

Patch

diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
index 62e451162d96..b06f9956e733 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
@@ -886,25 +886,36 @@  struct hdmi4_features {
 	bool audio_use_mclk;
 };
 
-static const struct hdmi4_features hdmi4_es1_features = {
+static const struct hdmi4_features hdmi4430_es1_features = {
 	.cts_swmode = false,
 	.audio_use_mclk = false,
 };
 
-static const struct hdmi4_features hdmi4_es2_features = {
+static const struct hdmi4_features hdmi4430_es2_features = {
 	.cts_swmode = true,
 	.audio_use_mclk = false,
 };
 
-static const struct hdmi4_features hdmi4_es3_features = {
+static const struct hdmi4_features hdmi4_features = {
 	.cts_swmode = true,
 	.audio_use_mclk = true,
 };
 
 static const struct soc_device_attribute hdmi4_soc_devices[] = {
-	{ .family = "OMAP4", .revision = "ES1.?", .data = &hdmi4_es1_features },
-	{ .family = "OMAP4", .revision = "ES2.?", .data = &hdmi4_es2_features },
-	{ .family = "OMAP4",			  .data = &hdmi4_es3_features },
+	{
+		.machine = "OMAP4430",
+		.revision = "ES1.?",
+		.data = &hdmi4430_es1_features,
+	},
+	{
+		.machine = "OMAP4430",
+		.revision = "ES2.?",
+		.data = &hdmi4430_es2_features,
+	},
+	{
+		.family = "OMAP4",
+		.data = &hdmi4_features,
+	},
 	{ /* sentinel */ }
 };