2019-07-22 09:48:10

by Viswanath L

[permalink] [raw]
Subject: [PATCH v2] drm/tegra: sor: Enable HDA interrupts at plugin

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 <[email protected]>
---
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;
}

--
2.7.4


2019-07-23 08:42:36

by Dmitry Osipenko

[permalink] [raw]
Subject: Re: [PATCH v2] drm/tegra: sor: Enable HDA interrupts at plugin

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: <[email protected]>

> Signed-off-by: Viswanath L <[email protected]>

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;
> }
>
>

2019-07-23 20:04:16

by Viswanath L

[permalink] [raw]
Subject: Re: [PATCH v2] drm/tegra: sor: Enable HDA interrupts at plugin

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: <[email protected]>
[VL] Yes, will add.
>
>> Signed-off-by: Viswanath L <[email protected]>
> 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;
>> }
>>
>>

2019-07-23 20:04:58

by Dmitry Osipenko

[permalink] [raw]
Subject: Re: [PATCH v2] drm/tegra: sor: Enable HDA interrupts at plugin

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: <[email protected]>
> [VL] Yes, will add.
>>
>>> Signed-off-by: Viswanath L <[email protected]>
>> 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.

2019-07-24 06:42:57

by Viswanath L

[permalink] [raw]
Subject: Re: [PATCH v2] drm/tegra: sor: Enable HDA interrupts at plugin

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: <[email protected]>
>> [VL] Yes, will add.
>>>> Signed-off-by: Viswanath L <[email protected]>
>>> 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.