dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@avionic-design.de>
To: Paulo Zanoni <przanoni@gmail.com>
Cc: intel-gfx@lists.freedesktop.org,
	Paulo Zanoni <paulo.r.zanoni@intel.com>,
	dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: set the AVI VIC of the HDMI mode
Date: Thu, 22 Nov 2012 07:46:48 +0100	[thread overview]
Message-ID: <20121122064648.GA22143@avionic-0098.adnet.avionic-design.de> (raw)
In-Reply-To: <1353512389-16261-1-git-send-email-przanoni@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 3069 bytes --]

On Wed, Nov 21, 2012 at 01:39:48PM -0200, Paulo Zanoni wrote:
> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
> 
> We currently set "0" as the VIC value of the AVI InfoFrames. According
> to the specs this should be fine and work for every mode, so to my
> point of view we can't consider the current behavior as a bug. The
> problem is that  we recently received a bug report (Kernel bug #50371)
> from a user that has an AV receiver that gives a black screen for any
> mode with VIC set to 0.
> 
> So in order to make at least some modes work for him, this patch sets
> the correct VIC number when sending AVI InfoFrames. We add a generic
> drm function to calculate the VIC number and then call it from the
> i915 driver.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=50371
> Cc: Thierry Reding <thierry.reding@avionic-design.de>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> ---
>  drivers/gpu/drm/drm_edid.c        |   19 +++++++++++++++++++
>  drivers/gpu/drm/drm_modes.c       |    3 ++-
>  drivers/gpu/drm/i915/intel_hdmi.c |    2 ++
>  include/drm/drm_crtc.h            |    4 +++-
>  4 files changed, 26 insertions(+), 2 deletions(-)
> 
> Patch applies on top of Daniel's drm-intel-next-queued. I'm not sure who exactly
> is going to merge this (Dave or Daniel).
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index fadcd44..c57fc46 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -2062,3 +2062,22 @@ int drm_add_modes_noedid(struct drm_connector *connector,
>  	return num_modes;
>  }
>  EXPORT_SYMBOL(drm_add_modes_noedid);
> +
> +/**
> + * drm_mode_vic - return the CEA-861 VIC of a given mode

The name in the comment here doesn't match the actual function name.

> + * @mode: mode
> + *
> + * RETURNS:
> + * The VIC number, 0 in case it's not a CEA-861 mode.
> + */
> +uint8_t drm_mode_cea_vic(const struct drm_display_mode *mode)

I understand the reason for returning an uint8_t here, but ...

> +{
> +	uint8_t i;
> +
> +	for (i = 0; i < drm_num_cea_modes; i++)

... maybe unsigned int would be better for the iteration variable here.
Looking at drm_edid_modes.h, drm_num_cea_modes is actually signed, which
isn't necessary to store an array size, so maybe that should be changed
as well.

> +		if (drm_mode_equal(mode, &edid_cea_modes[i]))
> +			return i + 1;
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL(drm_mode_cea_vic);
> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
> index 59450f3..9ef6750 100644
> --- a/drivers/gpu/drm/drm_modes.c
> +++ b/drivers/gpu/drm/drm_modes.c
> @@ -768,7 +768,8 @@ EXPORT_SYMBOL(drm_mode_duplicate);
>   * RETURNS:
>   * True if the modes are equal, false otherwise.
>   */
> -bool drm_mode_equal(struct drm_display_mode *mode1, struct drm_display_mode *mode2)
> +bool drm_mode_equal(const struct drm_display_mode *mode1,
> +		    const struct drm_display_mode *mode2)

I think this change warrants a separate commit.

Thierry

[-- Attachment #1.2: Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2012-11-22  6:46 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-21 15:39 [PATCH] drm/i915: set the AVI VIC of the HDMI mode Paulo Zanoni
2012-11-21 15:47 ` Thierry Reding
2012-11-21 16:08   ` Daniel Vetter
2012-11-21 16:09     ` Daniel Vetter
2012-11-22  6:50       ` Thierry Reding
2012-11-22  6:48     ` Thierry Reding
2012-11-22  8:00       ` Rafał Miłecki
2012-11-22  8:05         ` Thierry Reding
2012-11-22  6:46 ` Thierry Reding [this message]
2012-11-23 13:46   ` Paulo Zanoni
2012-11-23 13:50     ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121122064648.GA22143@avionic-0098.adnet.avionic-design.de \
    --to=thierry.reding@avionic-design.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=paulo.r.zanoni@intel.com \
    --cc=przanoni@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox