diff mbox series

[v2] drm/tegra: sor: Enable HDA interrupts at plugin

Message ID 1563787632-19762-1-git-send-email-viswanathl@nvidia.com
State New
Headers show
Series [v2] drm/tegra: sor: Enable HDA interrupts at plugin | expand

Commit Message

Viswanath L July 22, 2019, 9:27 a.m. UTC
HDMI plugout calls runtime suspend, which clears interrupt registers
and causes audio functionality to break on subsequent plugin; setting
interrupt registers in sor_audio_prepare() solves the issue

Signed-off-by: Viswanath L <viswanathl@nvidia.com>
---
 drivers/gpu/drm/tegra/sor.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

Comments

Dmitry Osipenko July 23, 2019, 12:30 a.m. UTC | #1
22.07.2019 12:27, Viswanath L пишет:
> HDMI plugout calls runtime suspend, which clears interrupt registers
> and causes audio functionality to break on subsequent plugin; setting
> interrupt registers in sor_audio_prepare() solves the issue

Hello Viswanath,

A dot should be in the end of sentence, please. And should be better to
s/plugin/plug-in/ in the commit's message/title because 'plugin' sounds
as a noun.

Please don't version patch as v2 if v1 wasn't ever sent out.

You should add a stable tag here to get patch backported into stable
kernel versions:

Cc: <stable@vger.kernel.org>

> Signed-off-by: Viswanath L <viswanathl@nvidia.com>

The kernel upstreaming rules require a full name. I'm pretty sure that L
isn't yours surname.

> ---
>  drivers/gpu/drm/tegra/sor.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> index 5be5a08..0470cfe 100644
> --- a/drivers/gpu/drm/tegra/sor.c
> +++ b/drivers/gpu/drm/tegra/sor.c
> @@ -2164,6 +2164,15 @@ static void tegra_sor_audio_prepare(struct tegra_sor *sor)
>  
>  	value = SOR_AUDIO_HDA_PRESENSE_ELDV | SOR_AUDIO_HDA_PRESENSE_PD;
>  	tegra_sor_writel(sor, value, SOR_AUDIO_HDA_PRESENSE);
> +
> +	/*
> +	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
> +	 * is used for interoperability between the HDA codec driver and the
> +	 * HDMI/DP driver.
> +	 */
> +	value = SOR_INT_CODEC_SCRATCH1 | SOR_INT_CODEC_SCRATCH0;
> +	tegra_sor_writel(sor, value, SOR_INT_ENABLE);
> +	tegra_sor_writel(sor, value, SOR_INT_MASK);
>  }
>  
>  static void tegra_sor_audio_unprepare(struct tegra_sor *sor)
> @@ -2913,15 +2922,6 @@ static int tegra_sor_init(struct host1x_client *client)
>  	if (err < 0)
>  		return err;
>  
> -	/*
> -	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
> -	 * is used for interoperability between the HDA codec driver and the
> -	 * HDMI/DP driver.
> -	 */
> -	value = SOR_INT_CODEC_SCRATCH1 | SOR_INT_CODEC_SCRATCH0;
> -	tegra_sor_writel(sor, value, SOR_INT_ENABLE);
> -	tegra_sor_writel(sor, value, SOR_INT_MASK);
> -
>  	return 0;
>  }
>  
>
Viswanath L July 23, 2019, 10:11 a.m. UTC | #2
Thanks for your comments, Dmitry. Please see my responses inline.

On 7/23/2019 6:00 AM, Dmitry Osipenko wrote:
> 22.07.2019 12:27, Viswanath L пишет:
>> HDMI plugout calls runtime suspend, which clears interrupt registers
>> and causes audio functionality to break on subsequent plugin; setting
>> interrupt registers in sor_audio_prepare() solves the issue
> Hello Viswanath,
>
> A dot should be in the end of sentence, please. And should be better to
> s/plugin/plug-in/ in the commit's message/title because 'plugin' sounds
> as a noun.
[VL] Yes, I'll make the above changes.
>
> Please don't version patch as v2 if v1 wasn't ever sent out.
[VL] Now that I have sent v2, shall I continue with v2 for the next 
patch? Apologies for this oversight.
>
> You should add a stable tag here to get patch backported into stable
> kernel versions:
>
> Cc: <stable@vger.kernel.org>
[VL] Yes, will add.
>
>> Signed-off-by: Viswanath L <viswanathl@nvidia.com>
> The kernel upstreaming rules require a full name. I'm pretty sure that L
> isn't yours surname.
[VL] My name appears as "Viswanath L" in all company records and email 
lists. I would strongly prefer to keep it this way, unless that is an 
absolute no-no.
>> ---
>>   drivers/gpu/drm/tegra/sor.c | 18 +++++++++---------
>>   1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
>> index 5be5a08..0470cfe 100644
>> --- a/drivers/gpu/drm/tegra/sor.c
>> +++ b/drivers/gpu/drm/tegra/sor.c
>> @@ -2164,6 +2164,15 @@ static void tegra_sor_audio_prepare(struct tegra_sor *sor)
>>   
>>   	value = SOR_AUDIO_HDA_PRESENSE_ELDV | SOR_AUDIO_HDA_PRESENSE_PD;
>>   	tegra_sor_writel(sor, value, SOR_AUDIO_HDA_PRESENSE);
>> +
>> +	/*
>> +	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
>> +	 * is used for interoperability between the HDA codec driver and the
>> +	 * HDMI/DP driver.
>> +	 */
>> +	value = SOR_INT_CODEC_SCRATCH1 | SOR_INT_CODEC_SCRATCH0;
>> +	tegra_sor_writel(sor, value, SOR_INT_ENABLE);
>> +	tegra_sor_writel(sor, value, SOR_INT_MASK);
>>   }
>>   
>>   static void tegra_sor_audio_unprepare(struct tegra_sor *sor)
>> @@ -2913,15 +2922,6 @@ static int tegra_sor_init(struct host1x_client *client)
>>   	if (err < 0)
>>   		return err;
>>   
>> -	/*
>> -	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
>> -	 * is used for interoperability between the HDA codec driver and the
>> -	 * HDMI/DP driver.
>> -	 */
>> -	value = SOR_INT_CODEC_SCRATCH1 | SOR_INT_CODEC_SCRATCH0;
>> -	tegra_sor_writel(sor, value, SOR_INT_ENABLE);
>> -	tegra_sor_writel(sor, value, SOR_INT_MASK);
>> -
>>   	return 0;
>>   }
>>   
>>
Dmitry Osipenko July 23, 2019, 10:18 a.m. UTC | #3
23.07.2019 13:11, Viswanath L пишет:
> Thanks for your comments, Dmitry. Please see my responses inline.
> 
> On 7/23/2019 6:00 AM, Dmitry Osipenko wrote:
>> 22.07.2019 12:27, Viswanath L пишет:
>>> HDMI plugout calls runtime suspend, which clears interrupt registers
>>> and causes audio functionality to break on subsequent plugin; setting
>>> interrupt registers in sor_audio_prepare() solves the issue
>> Hello Viswanath,
>>
>> A dot should be in the end of sentence, please. And should be better to
>> s/plugin/plug-in/ in the commit's message/title because 'plugin' sounds
>> as a noun.
> [VL] Yes, I'll make the above changes.
>>
>> Please don't version patch as v2 if v1 wasn't ever sent out.
> [VL] Now that I have sent v2, shall I continue with v2 for the next
> patch? Apologies for this oversight.

v3 should be good.

>> You should add a stable tag here to get patch backported into stable
>> kernel versions:
>>
>> Cc: <stable@vger.kernel.org>
> [VL] Yes, will add.
>>
>>> Signed-off-by: Viswanath L <viswanathl@nvidia.com>
>> The kernel upstreaming rules require a full name. I'm pretty sure that L
>> isn't yours surname.
> [VL] My name appears as "Viswanath L" in all company records and email
> lists. I would strongly prefer to keep it this way, unless that is an
> absolute no-no.

I guess it should be okay, but a full name is much more preferable.
Viswanath L July 24, 2019, 6:41 a.m. UTC | #4
Hello Dmitry, I have pushed new patch set v3 
(https://patchwork.ozlabs.org/patch/1135605/). Request you to kindly review.

Thanks.

On 7/23/2019 3:48 PM, Dmitry Osipenko wrote:
> 23.07.2019 13:11, Viswanath L пишет:
>> Thanks for your comments, Dmitry. Please see my responses inline.
>>
>> On 7/23/2019 6:00 AM, Dmitry Osipenko wrote:
>>> 22.07.2019 12:27, Viswanath L пишет:
>>>> HDMI plugout calls runtime suspend, which clears interrupt registers
>>>> and causes audio functionality to break on subsequent plugin; setting
>>>> interrupt registers in sor_audio_prepare() solves the issue
>>> Hello Viswanath,
>>>
>>> A dot should be in the end of sentence, please. And should be better to
>>> s/plugin/plug-in/ in the commit's message/title because 'plugin' sounds
>>> as a noun.
>> [VL] Yes, I'll make the above changes.
>>> Please don't version patch as v2 if v1 wasn't ever sent out.
>> [VL] Now that I have sent v2, shall I continue with v2 for the next
>> patch? Apologies for this oversight.
> v3 should be good.
>
>>> You should add a stable tag here to get patch backported into stable
>>> kernel versions:
>>>
>>> Cc: <stable@vger.kernel.org>
>> [VL] Yes, will add.
>>>> Signed-off-by: Viswanath L <viswanathl@nvidia.com>
>>> The kernel upstreaming rules require a full name. I'm pretty sure that L
>>> isn't yours surname.
>> [VL] My name appears as "Viswanath L" in all company records and email
>> lists. I would strongly prefer to keep it this way, unless that is an
>> absolute no-no.
> I guess it should be okay, but a full name is much more preferable.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 5be5a08..0470cfe 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -2164,6 +2164,15 @@  static void tegra_sor_audio_prepare(struct tegra_sor *sor)
 
 	value = SOR_AUDIO_HDA_PRESENSE_ELDV | SOR_AUDIO_HDA_PRESENSE_PD;
 	tegra_sor_writel(sor, value, SOR_AUDIO_HDA_PRESENSE);
+
+	/*
+	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
+	 * is used for interoperability between the HDA codec driver and the
+	 * HDMI/DP driver.
+	 */
+	value = SOR_INT_CODEC_SCRATCH1 | SOR_INT_CODEC_SCRATCH0;
+	tegra_sor_writel(sor, value, SOR_INT_ENABLE);
+	tegra_sor_writel(sor, value, SOR_INT_MASK);
 }
 
 static void tegra_sor_audio_unprepare(struct tegra_sor *sor)
@@ -2913,15 +2922,6 @@  static int tegra_sor_init(struct host1x_client *client)
 	if (err < 0)
 		return err;
 
-	/*
-	 * Enable and unmask the HDA codec SCRATCH0 register interrupt. This
-	 * is used for interoperability between the HDA codec driver and the
-	 * HDMI/DP driver.
-	 */
-	value = SOR_INT_CODEC_SCRATCH1 | SOR_INT_CODEC_SCRATCH0;
-	tegra_sor_writel(sor, value, SOR_INT_ENABLE);
-	tegra_sor_writel(sor, value, SOR_INT_MASK);
-
 	return 0;
 }