diff mbox

drm/edid: request HDMI underscan by default

Message ID 1393514370-27548-1-git-send-email-drake@endlessm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Drake Feb. 27, 2014, 3:19 p.m. UTC
Working with HDMI TVs is a real pain as they tend to overscan by
default, meaning that the pixels around the edge of the framebuffer
are not displayed. This is well explained here:
http://mjg59.dreamwidth.org/8705.html

There is a bit in the HDMI info frame that can request that the
remote display shows the full pixel data ("underscan"). For the
remote display, the HDMI spec states that this is optional - it
doesn't have to listen. That means that most TVs will probably ignore
this.

But, maybe there are a handful of TVs for which this would help
the situation. As we live in a digital world, ask the remote
display not to overscan by default.

Signed-off-by: Daniel Drake <drake@endlessm.com>
---
 drivers/gpu/drm/drm_edid.c | 1 +
 1 file changed, 1 insertion(+)

Replaces the patch titled "video: hdmi: request underscan by default"
This version moves the change to the DRM layer, as requested by
Ville Syrjälä.

Comments

Ville Syrjala Feb. 27, 2014, 3:42 p.m. UTC | #1
On Thu, Feb 27, 2014 at 09:19:30AM -0600, Daniel Drake wrote:
> Working with HDMI TVs is a real pain as they tend to overscan by
> default, meaning that the pixels around the edge of the framebuffer
> are not displayed. This is well explained here:
> http://mjg59.dreamwidth.org/8705.html
> 
> There is a bit in the HDMI info frame that can request that the
> remote display shows the full pixel data ("underscan"). For the
> remote display, the HDMI spec states that this is optional - it
> doesn't have to listen. That means that most TVs will probably ignore
> this.
> 
> But, maybe there are a handful of TVs for which this would help
> the situation. As we live in a digital world, ask the remote
> display not to overscan by default.
> 
> Signed-off-by: Daniel Drake <drake@endlessm.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/drm_edid.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> Replaces the patch titled "video: hdmi: request underscan by default"
> This version moves the change to the DRM layer, as requested by
> Ville Syrjälä.
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index b924306..f8d8a1d 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -3599,6 +3599,7 @@ drm_hdmi_avi_infoframe_from_display_mode(struct hdmi_avi_infoframe *frame,
>  
>  	frame->picture_aspect = HDMI_PICTURE_ASPECT_NONE;
>  	frame->active_aspect = HDMI_ACTIVE_ASPECT_PICTURE;
> +	frame->scan_mode = HDMI_SCAN_MODE_UNDERSCAN;
>  
>  	return 0;
>  }
> -- 
> 1.8.3.2
Lespiau, Damien Feb. 27, 2014, 3:49 p.m. UTC | #2
On Thu, Feb 27, 2014 at 05:42:36PM +0200, Ville Syrjälä wrote:
> On Thu, Feb 27, 2014 at 09:19:30AM -0600, Daniel Drake wrote:
> > Working with HDMI TVs is a real pain as they tend to overscan by
> > default, meaning that the pixels around the edge of the framebuffer
> > are not displayed. This is well explained here:
> > http://mjg59.dreamwidth.org/8705.html
> > 
> > There is a bit in the HDMI info frame that can request that the
> > remote display shows the full pixel data ("underscan"). For the
> > remote display, the HDMI spec states that this is optional - it
> > doesn't have to listen. That means that most TVs will probably ignore
> > this.
> > 
> > But, maybe there are a handful of TVs for which this would help
> > the situation. As we live in a digital world, ask the remote
> > display not to overscan by default.
> > 
> > Signed-off-by: Daniel Drake <drake@endlessm.com>
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

As a small note, I never managed to find a TV (out of the 2 I have
around) that honour that flag, which is why I haven't pushed that patch
before. I also had the hope that we could automatically overscan with
the right amount at some point (with some sort of database) and with
that flag set, we don't know if the sink is overscanning or not, but
then I guess we could include whether the TV honour in that flag in a db
as well.

In any case, I echo the review:

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Daniel Vetter March 3, 2014, 5:58 p.m. UTC | #3
On Thu, Feb 27, 2014 at 03:49:10PM +0000, Damien Lespiau wrote:
> On Thu, Feb 27, 2014 at 05:42:36PM +0200, Ville Syrjälä wrote:
> > On Thu, Feb 27, 2014 at 09:19:30AM -0600, Daniel Drake wrote:
> > > Working with HDMI TVs is a real pain as they tend to overscan by
> > > default, meaning that the pixels around the edge of the framebuffer
> > > are not displayed. This is well explained here:
> > > http://mjg59.dreamwidth.org/8705.html
> > > 
> > > There is a bit in the HDMI info frame that can request that the
> > > remote display shows the full pixel data ("underscan"). For the
> > > remote display, the HDMI spec states that this is optional - it
> > > doesn't have to listen. That means that most TVs will probably ignore
> > > this.
> > > 
> > > But, maybe there are a handful of TVs for which this would help
> > > the situation. As we live in a digital world, ask the remote
> > > display not to overscan by default.
> > > 
> > > Signed-off-by: Daniel Drake <drake@endlessm.com>
> > 
> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> As a small note, I never managed to find a TV (out of the 2 I have
> around) that honour that flag, which is why I haven't pushed that patch
> before. I also had the hope that we could automatically overscan with
> the right amount at some point (with some sort of database) and with
> that flag set, we don't know if the sink is overscanning or not, but
> then I guess we could include whether the TV honour in that flag in a db
> as well.
> 
> In any case, I echo the review:
> 
> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>

Applied to my topic/core-stuff grab-bag branch, thanks for patch&review.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index b924306..f8d8a1d 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3599,6 +3599,7 @@  drm_hdmi_avi_infoframe_from_display_mode(struct hdmi_avi_infoframe *frame,
 
 	frame->picture_aspect = HDMI_PICTURE_ASPECT_NONE;
 	frame->active_aspect = HDMI_ACTIVE_ASPECT_PICTURE;
+	frame->scan_mode = HDMI_SCAN_MODE_UNDERSCAN;
 
 	return 0;
 }