diff mbox

gpu: ipu-v3: Fix BT1120 interlaced CCIR codes

Message ID 20180407130428.24833-1-marex@denx.de (mailing list archive)
State New, archived
Headers show

Commit Message

Marek Vasut April 7, 2018, 1:04 p.m. UTC
The BT1120 interlaced CCIR codes are the same as BT656 ones
and different than BT656 progressive CCIR codes, fix this.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Steve Longerbeam <steve_longerbeam@mentor.com>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/gpu/ipu-v3/ipu-csi.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Philipp Zabel May 18, 2018, 3:51 p.m. UTC | #1
Hi Marek,

On Sat, 2018-04-07 at 15:04 +0200, Marek Vasut wrote:
> The BT1120 interlaced CCIR codes are the same as BT656 ones
> and different than BT656 progressive CCIR codes, fix this.

thank you for the patch, and sorry for the delay.

> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Steve Longerbeam <steve_longerbeam@mentor.com>
> Cc: Philipp Zabel <p.zabel@pengutronix.de>
> ---
>  drivers/gpu/ipu-v3/ipu-csi.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/ipu-v3/ipu-csi.c b/drivers/gpu/ipu-v3/ipu-csi.c
> index caa05b0702e1..301a729581ce 100644
> --- a/drivers/gpu/ipu-v3/ipu-csi.c
> +++ b/drivers/gpu/ipu-v3/ipu-csi.c
> @@ -435,12 +435,16 @@ int ipu_csi_init_interface(struct ipu_csi *csi,
>  		break;
>  	case IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_DDR:
>  	case IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_SDR:
> -	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR:
> -	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR:
>  		ipu_csi_write(csi, 0x40030 | CSI_CCIR_ERR_DET_EN,
>  				   CSI_CCIR_CODE_1);
>  		ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3);
>  		break;
> +	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR:
> +	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR:
> +		ipu_csi_write(csi, 0x40596 | CSI_CCIR_ERR_DET_EN, CSI_CCIR_CODE_1);
> +		ipu_csi_write(csi, 0xD07DF, CSI_CCIR_CODE_2);
> +		ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3);

If these are the same as BT656 codes (so this case would be for PAL?),
could this just be moved up into the IPU_CSI_CLK_MODE_CCIR656_INTERLACED
case? Would the NTSC CCIR codes be the same as well?

regards
Philipp
Marek Vasut May 18, 2018, 4:21 p.m. UTC | #2
On 05/18/2018 05:51 PM, Philipp Zabel wrote:
> Hi Marek,
> 
> On Sat, 2018-04-07 at 15:04 +0200, Marek Vasut wrote:
>> The BT1120 interlaced CCIR codes are the same as BT656 ones
>> and different than BT656 progressive CCIR codes, fix this.
> 
> thank you for the patch, and sorry for the delay.
> 
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Steve Longerbeam <steve_longerbeam@mentor.com>
>> Cc: Philipp Zabel <p.zabel@pengutronix.de>
>> ---
>>  drivers/gpu/ipu-v3/ipu-csi.c | 8 ++++++--
>>  1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/ipu-v3/ipu-csi.c b/drivers/gpu/ipu-v3/ipu-csi.c
>> index caa05b0702e1..301a729581ce 100644
>> --- a/drivers/gpu/ipu-v3/ipu-csi.c
>> +++ b/drivers/gpu/ipu-v3/ipu-csi.c
>> @@ -435,12 +435,16 @@ int ipu_csi_init_interface(struct ipu_csi *csi,
>>  		break;
>>  	case IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_DDR:
>>  	case IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_SDR:
>> -	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR:
>> -	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR:
>>  		ipu_csi_write(csi, 0x40030 | CSI_CCIR_ERR_DET_EN,
>>  				   CSI_CCIR_CODE_1);
>>  		ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3);
>>  		break;
>> +	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR:
>> +	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR:
>> +		ipu_csi_write(csi, 0x40596 | CSI_CCIR_ERR_DET_EN, CSI_CCIR_CODE_1);
>> +		ipu_csi_write(csi, 0xD07DF, CSI_CCIR_CODE_2);
>> +		ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3);
> 
> If these are the same as BT656 codes (so this case would be for PAL?),
> could this just be moved up into the IPU_CSI_CLK_MODE_CCIR656_INTERLACED
> case? Would the NTSC CCIR codes be the same as well?

Dunno, I don't have any NTSC device to test. But the above was tested
with a PAL device I had.

I think the CCIR codes are different from BT656, although I might be wrong.
diff mbox

Patch

diff --git a/drivers/gpu/ipu-v3/ipu-csi.c b/drivers/gpu/ipu-v3/ipu-csi.c
index caa05b0702e1..301a729581ce 100644
--- a/drivers/gpu/ipu-v3/ipu-csi.c
+++ b/drivers/gpu/ipu-v3/ipu-csi.c
@@ -435,12 +435,16 @@  int ipu_csi_init_interface(struct ipu_csi *csi,
 		break;
 	case IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_DDR:
 	case IPU_CSI_CLK_MODE_CCIR1120_PROGRESSIVE_SDR:
-	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR:
-	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR:
 		ipu_csi_write(csi, 0x40030 | CSI_CCIR_ERR_DET_EN,
 				   CSI_CCIR_CODE_1);
 		ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3);
 		break;
+	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_DDR:
+	case IPU_CSI_CLK_MODE_CCIR1120_INTERLACED_SDR:
+		ipu_csi_write(csi, 0x40596 | CSI_CCIR_ERR_DET_EN, CSI_CCIR_CODE_1);
+		ipu_csi_write(csi, 0xD07DF, CSI_CCIR_CODE_2);
+		ipu_csi_write(csi, 0xFF0000, CSI_CCIR_CODE_3);
+		break;
 	case IPU_CSI_CLK_MODE_GATED_CLK:
 	case IPU_CSI_CLK_MODE_NONGATED_CLK:
 		ipu_csi_write(csi, 0, CSI_CCIR_CODE_1);