diff mbox

drm/i915: set active format aspect ratio same as picture aspect ratio

Message ID 1369212495-29566-1-git-send-email-xiong.y.zhang@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zhang, Xiong Y May 22, 2013, 8:48 a.m. UTC
HDMI Compliance Testing fail on i915 driver, the error log show:
M1-M0=0b00(NO Data) of AVI InfoFrame Packet should correspond to the
aspect ratio of the viewed image.Skip because AVI R3-R0 is no 1000
(Same as picture aspect ratio)

the default value of active format aspect ratio is 0 which is invalid
accroding to CEA-861-D spec in page 79, So change the default value to
0x08.

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
---
 drivers/gpu/drm/i915/intel_drv.h  |    1 +
 drivers/gpu/drm/i915/intel_hdmi.c |    5 +++++
 2 files changed, 6 insertions(+)

Comments

Daniel Vetter May 22, 2013, 9:07 a.m. UTC | #1
On Wed, May 22, 2013 at 10:48 AM, Xiong Zhang <xiong.y.zhang@intel.com> wrote:
> HDMI Compliance Testing fail on i915 driver, the error log show:
> M1-M0=0b00(NO Data) of AVI InfoFrame Packet should correspond to the
> aspect ratio of the viewed image.Skip because AVI R3-R0 is no 1000
> (Same as picture aspect ratio)
>
> the default value of active format aspect ratio is 0 which is invalid
> accroding to CEA-861-D spec in page 79, So change the default value to
> 0x08.
>
> Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>

I think it'd be good if we move our infoframe code over to the new
helpers finally and then apply your fix on top of that. Paulo started
the conversion a while back, but there are some todos left:

https://patchwork.kernel.org/patch/2171801/

Can you perhaps take a look into this and maybe check with Paulo which
of the TODO items are still left open?

Thanks, Daniel
> ---
>  drivers/gpu/drm/i915/intel_drv.h  |    1 +
>  drivers/gpu/drm/i915/intel_hdmi.c |    5 +++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 75a7f22..91b345e 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -370,6 +370,7 @@ struct cxsr_latency {
>  #define DIP_TYPE_AVI    0x82
>  #define DIP_VERSION_AVI 0x2
>  #define DIP_LEN_AVI     13
> +#define DIP_AVI_FORMAT_ASPECT_RATIO_SAME  0x8
>  #define DIP_AVI_PR_1    0
>  #define DIP_AVI_PR_2    1
>  #define DIP_AVI_RGB_QUANT_RANGE_DEFAULT        (0 << 2)
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 18f8ce0..599c013 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -340,6 +340,11 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
>                 .len = DIP_LEN_AVI,
>         };
>
> +       /*since the default picture aspect ratio is no data
> +        *set the default active format aspect ratio is the
> +        *same as picture aspect ratio*/
> +       avi_if.body.avi.C_M_R = DIP_AVI_FORMAT_ASPECT_RATIO_SAME;
> +
>         if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
>                 avi_if.body.avi.YQ_CN_PR |= DIP_AVI_PR_2;
>
> --
> 1.7.9.5
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
Ville Syrjälä May 22, 2013, 10:10 a.m. UTC | #2
On Wed, May 22, 2013 at 04:48:15PM +0800, Xiong Zhang wrote:
> HDMI Compliance Testing fail on i915 driver, the error log show:
> M1-M0=0b00(NO Data) of AVI InfoFrame Packet should correspond to the
> aspect ratio of the viewed image.Skip because AVI R3-R0 is no 1000
> (Same as picture aspect ratio)
> 
> the default value of active format aspect ratio is 0 which is invalid
> accroding to CEA-861-D spec in page 79, So change the default value to
> 0x08.

If you look at Annex H, 0000 should actually be allowed. But since it
should be interpreted the same as 1000, I guess we might as well make
this change.

Also, please change intel_sdvo.c too.

> 
> Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_drv.h  |    1 +
>  drivers/gpu/drm/i915/intel_hdmi.c |    5 +++++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 75a7f22..91b345e 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -370,6 +370,7 @@ struct cxsr_latency {
>  #define DIP_TYPE_AVI    0x82
>  #define DIP_VERSION_AVI 0x2
>  #define DIP_LEN_AVI     13
> +#define DIP_AVI_FORMAT_ASPECT_RATIO_SAME  0x8
>  #define DIP_AVI_PR_1    0
>  #define DIP_AVI_PR_2    1
>  #define DIP_AVI_RGB_QUANT_RANGE_DEFAULT	(0 << 2)
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 18f8ce0..599c013 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -340,6 +340,11 @@ static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
>  		.len = DIP_LEN_AVI,
>  	};
>  
> +	/*since the default picture aspect ratio is no data
> +	 *set the default active format aspect ratio is the
> +	 *same as picture aspect ratio*/
> +	avi_if.body.avi.C_M_R = DIP_AVI_FORMAT_ASPECT_RATIO_SAME;
> +
>  	if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
>  		avi_if.body.avi.YQ_CN_PR |= DIP_AVI_PR_2;
>  
> -- 
> 1.7.9.5
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Lespiau, Damien Oct. 17, 2013, 4:43 p.m. UTC | #3
On Wed, May 22, 2013 at 04:48:15PM +0800, Xiong Zhang wrote:
> HDMI Compliance Testing fail on i915 driver, the error log show:
> M1-M0=0b00(NO Data) of AVI InfoFrame Packet should correspond to the
> aspect ratio of the viewed image.Skip because AVI R3-R0 is no 1000
> (Same as picture aspect ratio)
> 
> the default value of active format aspect ratio is 0 which is invalid
> accroding to CEA-861-D spec in page 79, So change the default value to
> 0x08.
> 
> Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>

For the record, with the port of our infoframe code to the common one,
we now set active aspect ratio to 8 (which is what this patch was
doing).
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 75a7f22..91b345e 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -370,6 +370,7 @@  struct cxsr_latency {
 #define DIP_TYPE_AVI    0x82
 #define DIP_VERSION_AVI 0x2
 #define DIP_LEN_AVI     13
+#define DIP_AVI_FORMAT_ASPECT_RATIO_SAME  0x8
 #define DIP_AVI_PR_1    0
 #define DIP_AVI_PR_2    1
 #define DIP_AVI_RGB_QUANT_RANGE_DEFAULT	(0 << 2)
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 18f8ce0..599c013 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -340,6 +340,11 @@  static void intel_hdmi_set_avi_infoframe(struct drm_encoder *encoder,
 		.len = DIP_LEN_AVI,
 	};
 
+	/*since the default picture aspect ratio is no data
+	 *set the default active format aspect ratio is the
+	 *same as picture aspect ratio*/
+	avi_if.body.avi.C_M_R = DIP_AVI_FORMAT_ASPECT_RATIO_SAME;
+
 	if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
 		avi_if.body.avi.YQ_CN_PR |= DIP_AVI_PR_2;