[PATCH 4/4 v2] drm/bridge: adv7511: Initialize audio packet on adv7533

2016-09-06 Thread John Stultz
On Fri, Sep 2, 2016 at 2:49 AM, Archit Taneja  wrote:
> Hi,
>
>
> On 8/30/2016 5:11 AM, John Stultz wrote:
>>
>> From: Andy Green 
>>
>> Set the initial audio packet settings to allow the audio
>> driver to work.
>>
>> Cc: David Airlie 
>> Cc: Archit Taneja 
>> Cc: Laurent Pinchart 
>> Cc: Wolfram Sang 
>> Cc: Srinivas Kandagatla 
>> Cc: "Ville Syrjälä" 
>> Cc: Boris Brezillon 
>> Cc: Andy Green 
>> Cc: Dave Long 
>> Cc: Guodong Xu 
>> Cc: Zhangfei Gao 
>> Cc: Mark Brown 
>> Cc: Lars-Peter Clausen 
>> Cc: Jose Abreu 
>> Cc: dri-devel at lists.freedesktop.org
>> Signed-off-by: Andy Green 
>> [jstultz: Forward ported to mainline, changed to use register
>>   names rather then hex values, and removed config values set by
>>   audio driver.]
>> Signed-off-by: John Stultz 
>> ---
>>   drivers/gpu/drm/bridge/adv7511/adv7533.c | 22 ++
>>   1 file changed, 22 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c
>> b/drivers/gpu/drm/bridge/adv7511/adv7533.c
>> index 6798ecf..cced7c9 100644
>> --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
>> +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
>> @@ -104,6 +104,28 @@ void adv7533_dsi_power_on(struct adv7511 *adv)
>> /* disable test mode */
>> regmap_write(adv->regmap_cec, 0x55, 0x00);
>>
>> +   /* hide Audio infoframe updates */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_INFOFRAME_UPDATE,
>> +   BIT(5), BIT(5));
>> +   /* enable N/CTS, enable Audio sample packets */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
>> +   BIT(5), BIT(5));
>> +   /* enable N/CTS */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
>> +   BIT(6), BIT(6));
>> +   /* not copyrighted */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_AUDIO_CFG1,
>> +   BIT(5), BIT(5));
>> +   /* enable audio infoframes */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
>> +   BIT(3), BIT(3));
>> +   /* AV mute disable */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_GC(0),
>> +   BIT(7) | BIT(6), BIT(7));
>> +   /* use Audio infoframe updated info */
>> +   regmap_update_bits(adv->regmap, ADV7511_REG_GC(1),
>> +   BIT(5), 0);
>> +
>
>
> Wouldn't these writes be needed by ADV751x chips too? These seem to
> belong to the main ADV75xx regmap. These should probably be a separate func
> in adv7511_audio.c or adv7511_drv.c, and it should be called in
> adv7511_power_on, so that ADV751x chips can utilize this too.

Yea. It seems like folding this into the audio_startup() function is
the best thing here, so I've done so and it seems to be working well.
Will resend here shortly.

thanks
-john


[PATCH 4/4 v2] drm/bridge: adv7511: Initialize audio packet on adv7533

2016-09-02 Thread Archit Taneja
Hi,

On 8/30/2016 5:11 AM, John Stultz wrote:
> From: Andy Green 
>
> Set the initial audio packet settings to allow the audio
> driver to work.
>
> Cc: David Airlie 
> Cc: Archit Taneja 
> Cc: Laurent Pinchart 
> Cc: Wolfram Sang 
> Cc: Srinivas Kandagatla 
> Cc: "Ville Syrjälä" 
> Cc: Boris Brezillon 
> Cc: Andy Green 
> Cc: Dave Long 
> Cc: Guodong Xu 
> Cc: Zhangfei Gao 
> Cc: Mark Brown 
> Cc: Lars-Peter Clausen 
> Cc: Jose Abreu 
> Cc: dri-devel at lists.freedesktop.org
> Signed-off-by: Andy Green 
> [jstultz: Forward ported to mainline, changed to use register
>   names rather then hex values, and removed config values set by
>   audio driver.]
> Signed-off-by: John Stultz 
> ---
>   drivers/gpu/drm/bridge/adv7511/adv7533.c | 22 ++
>   1 file changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c 
> b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> index 6798ecf..cced7c9 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> @@ -104,6 +104,28 @@ void adv7533_dsi_power_on(struct adv7511 *adv)
>   /* disable test mode */
>   regmap_write(adv->regmap_cec, 0x55, 0x00);
>
> + /* hide Audio infoframe updates */
> + regmap_update_bits(adv->regmap, ADV7511_REG_INFOFRAME_UPDATE,
> + BIT(5), BIT(5));
> + /* enable N/CTS, enable Audio sample packets */
> + regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
> + BIT(5), BIT(5));
> + /* enable N/CTS */
> + regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
> + BIT(6), BIT(6));
> + /* not copyrighted */
> + regmap_update_bits(adv->regmap, ADV7511_REG_AUDIO_CFG1,
> + BIT(5), BIT(5));
> + /* enable audio infoframes */
> + regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
> + BIT(3), BIT(3));
> + /* AV mute disable */
> + regmap_update_bits(adv->regmap, ADV7511_REG_GC(0),
> + BIT(7) | BIT(6), BIT(7));
> + /* use Audio infoframe updated info */
> + regmap_update_bits(adv->regmap, ADV7511_REG_GC(1),
> + BIT(5), 0);
> +

Wouldn't these writes be needed by ADV751x chips too? These seem to
belong to the main ADV75xx regmap. These should probably be a separate 
func in adv7511_audio.c or adv7511_drv.c, and it should be called in
adv7511_power_on, so that ADV751x chips can utilize this too.

Thanks,
Archit

>   regmap_register_patch(adv->regmap_cec, adv7533_cec_fixed_registers,
> ARRAY_SIZE(adv7533_cec_fixed_registers));
>   }
>

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project


[PATCH 4/4 v2] drm/bridge: adv7511: Initialize audio packet on adv7533

2016-08-29 Thread John Stultz
From: Andy Green 

Set the initial audio packet settings to allow the audio
driver to work.

Cc: David Airlie 
Cc: Archit Taneja 
Cc: Laurent Pinchart 
Cc: Wolfram Sang 
Cc: Srinivas Kandagatla 
Cc: "Ville Syrjälä" 
Cc: Boris Brezillon 
Cc: Andy Green 
Cc: Dave Long 
Cc: Guodong Xu 
Cc: Zhangfei Gao 
Cc: Mark Brown 
Cc: Lars-Peter Clausen 
Cc: Jose Abreu 
Cc: dri-devel at lists.freedesktop.org
Signed-off-by: Andy Green 
[jstultz: Forward ported to mainline, changed to use register
 names rather then hex values, and removed config values set by
 audio driver.]
Signed-off-by: John Stultz 
---
 drivers/gpu/drm/bridge/adv7511/adv7533.c | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c 
b/drivers/gpu/drm/bridge/adv7511/adv7533.c
index 6798ecf..cced7c9 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
@@ -104,6 +104,28 @@ void adv7533_dsi_power_on(struct adv7511 *adv)
/* disable test mode */
regmap_write(adv->regmap_cec, 0x55, 0x00);

+   /* hide Audio infoframe updates */
+   regmap_update_bits(adv->regmap, ADV7511_REG_INFOFRAME_UPDATE,
+   BIT(5), BIT(5));
+   /* enable N/CTS, enable Audio sample packets */
+   regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
+   BIT(5), BIT(5));
+   /* enable N/CTS */
+   regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
+   BIT(6), BIT(6));
+   /* not copyrighted */
+   regmap_update_bits(adv->regmap, ADV7511_REG_AUDIO_CFG1,
+   BIT(5), BIT(5));
+   /* enable audio infoframes */
+   regmap_update_bits(adv->regmap, ADV7511_REG_PACKET_ENABLE1,
+   BIT(3), BIT(3));
+   /* AV mute disable */
+   regmap_update_bits(adv->regmap, ADV7511_REG_GC(0),
+   BIT(7) | BIT(6), BIT(7));
+   /* use Audio infoframe updated info */
+   regmap_update_bits(adv->regmap, ADV7511_REG_GC(1),
+   BIT(5), 0);
+
regmap_register_patch(adv->regmap_cec, adv7533_cec_fixed_registers,
  ARRAY_SIZE(adv7533_cec_fixed_registers));
 }
-- 
1.9.1