diff mbox

omapdrm: hdmi4: Correct the SoC revision matching

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

Commit Message

Peter Ujfalusi Nov. 17, 2017, 8 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>
---
 drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

Comments

Tomi Valkeinen Nov. 17, 2017, 12:55 p.m. UTC | #1
On 17/11/17 10:00, 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>
> ---
>  drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
> index 62e451162d96..07945a40c33a 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
> @@ -902,9 +902,20 @@ static const struct hdmi4_features hdmi4_es3_features = {
>  };
>  
>  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 = &hdmi4_es1_features,
> +	},
> +	{
> +		.machine = "OMAP4430",
> +		.revision = "ES2.?",
> +		.data = &hdmi4_es2_features,
> +	},
> +	{
> +		.family = "OMAP4",
> +		.data = &hdmi4_es3_features,
> +	},
>  	{ /* sentinel */ }
>  };
>  
> 

Looks good to me.

Was there are reason to change the format from single-line to multi-line?

While at it, I think it would make sense to rename hdmi4_es3_features
to... hdmi4_features? It's not "ES3" in any way.

 Tomi
Peter Ujfalusi Nov. 17, 2017, 1:23 p.m. UTC | #2
On 2017-11-17 14:55, Tomi Valkeinen wrote:
> On 17/11/17 10:00, 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>
>> ---
>>  drivers/gpu/drm/omapdrm/dss/hdmi4_core.c | 17 ++++++++++++++---
>>  1 file changed, 14 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
>> index 62e451162d96..07945a40c33a 100644
>> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
>> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
>> @@ -902,9 +902,20 @@ static const struct hdmi4_features hdmi4_es3_features = {
>>  };
>>  
>>  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 = &hdmi4_es1_features,
>> +	},
>> +	{
>> +		.machine = "OMAP4430",
>> +		.revision = "ES2.?",
>> +		.data = &hdmi4_es2_features,
>> +	},
>> +	{
>> +		.family = "OMAP4",
>> +		.data = &hdmi4_es3_features,
>> +	},
>>  	{ /* sentinel */ }
>>  };
>>  
>>
> 
> Looks good to me.
> 
> Was there are reason to change the format from single-line to multi-line?

in one line it would beyond 80 and just breaking the .data to new line
looked ugly.

> While at it, I think it would make sense to rename hdmi4_es3_features
> to... hdmi4_features? It's not "ES3" in any way.

Yes, that would make sense, but then the hdmi4_es1/2 is not really
correct either as it should be omap4430_es1/2 ...

I'll resend it on Monday with this change.

> 
>  Tomi
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
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..07945a40c33a 100644
--- a/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
+++ b/drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
@@ -902,9 +902,20 @@  static const struct hdmi4_features hdmi4_es3_features = {
 };
 
 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 = &hdmi4_es1_features,
+	},
+	{
+		.machine = "OMAP4430",
+		.revision = "ES2.?",
+		.data = &hdmi4_es2_features,
+	},
+	{
+		.family = "OMAP4",
+		.data = &hdmi4_es3_features,
+	},
 	{ /* sentinel */ }
 };