All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH 07/11] drm/edid: Use GTF2 for inferred modes
Date: Fri, 2 Sep 2022 15:45:54 +0300	[thread overview]
Message-ID: <YxH7ApmwbP99kKr4@intel.com> (raw)
In-Reply-To: <87v8q6dku4.fsf@intel.com>

On Fri, Sep 02, 2022 at 03:25:39PM +0300, Jani Nikula wrote:
> On Sat, 27 Aug 2022, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > For some resaon we only use the secondary GTF curve for the
> > standard timings. Use it for inferred modes as well.
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/drm_edid.c | 35 ++++++++++++++++++++++++++++++++++-
> >  1 file changed, 34 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> > index 0c7cbe9b44f5..fed2bdd55c09 100644
> > --- a/drivers/gpu/drm/drm_edid.c
> > +++ b/drivers/gpu/drm/drm_edid.c
> > @@ -3546,6 +3546,35 @@ static int drm_gtf_modes_for_range(struct drm_connector *connector,
> >  	return modes;
> >  }
> >  
> > +static int drm_gtf2_modes_for_range(struct drm_connector *connector,
> > +				    const struct drm_edid *drm_edid,
> > +				    const struct detailed_timing *timing)
> > +{
> > +	int i, modes = 0;
> > +	struct drm_display_mode *newmode;
> > +	struct drm_device *dev = connector->dev;
> > +
> > +	for (i = 0; i < ARRAY_SIZE(extra_modes); i++) {
> > +		const struct minimode *m = &extra_modes[i];
> > +
> > +		newmode = drm_gtf2_mode(dev, drm_edid, m->w, m->h, m->r);
> > +		if (!newmode)
> > +			return modes;
> > +
> > +		drm_mode_fixup_1366x768(newmode);
> > +		if (!mode_in_range(newmode, drm_edid, timing) ||
> > +		    !valid_inferred_mode(connector, newmode)) {
> > +			drm_mode_destroy(dev, newmode);
> > +			continue;
> > +		}
> > +
> > +		drm_mode_probed_add(connector, newmode);
> > +		modes++;
> > +	}
> > +
> > +	return modes;
> > +}
> > +
> >  static int drm_cvt_modes_for_range(struct drm_connector *connector,
> >  				   const struct drm_edid *drm_edid,
> >  				   const struct detailed_timing *timing)
> > @@ -3594,7 +3623,11 @@ do_inferred_modes(const struct detailed_timing *timing, void *c)
> >  		return; /* GTF not defined yet */
> >  
> >  	switch (range->flags) {
> > -	case DRM_EDID_SECONDARY_GTF_SUPPORT_FLAG: /* XXX could do more */
> > +	case DRM_EDID_SECONDARY_GTF_SUPPORT_FLAG:
> > +		closure->modes += drm_gtf2_modes_for_range(closure->connector,
> > +							   closure->drm_edid,
> > +							   timing);
> > +		break;
> >  	case DRM_EDID_DEFAULT_GTF_SUPPORT_FLAG:
> 
> Additionally, per spec:
> 
> * Default GTF supported if bit 0 in Feature Support Byte at address 18h = 1
> 
> * Secondary GTF supported --- requires support for Default GTF
> 
> So I guess both of these would need the edid->features &
> DRM_EDID_FEATURE_DEFAULT_GTF check?

There is one actually
	if (drm_edid->edid->features & DRM_EDID_FEATURE_DEFAULT_GTF)
	                num_modes += add_inferred_modes(connector, drm_edid);

Though as I think I mentioned in some of these patches a lot of
real world EDIDs don't set the default gtf/continuous frequency
bit but still include a range descriptor. While illegal, I think
a reasonable interpretation might be that they want us to use 
the formula specified in the range descriptor for the non-DMT
standard timings, while still indicating that other timings
generated by said formula are not supported. 

> 
> Other than that,
> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> 
> 
> 
> >  		closure->modes += drm_gtf_modes_for_range(closure->connector,
> >  							  closure->drm_edid,
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

-- 
Ville Syrjälä
Intel

  reply	other threads:[~2022-09-02 12:46 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-26 21:34 [Intel-gfx] [PATCH 00/11] drm/edid: Range descriptor stuff Ville Syrjala
2022-08-26 21:34 ` Ville Syrjala
2022-08-26 21:34 ` [Intel-gfx] [PATCH 01/11] drm/edid: Handle EDID 1.4 range descriptor h/vfreq offsets Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-27  1:40   ` [Intel-gfx] " Navare, Manasi
2022-08-27  1:40     ` Navare, Manasi
2022-08-27  1:40     ` Navare, Manasi
2022-09-02 13:44     ` [Intel-gfx] " Ville Syrjälä
2022-09-02 13:44       ` Ville Syrjälä
2022-09-02 13:44       ` Ville Syrjälä
2022-08-26 21:34 ` [PATCH 02/11] drm/edid: Clarify why we only accept the "range limits only" descriptor Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` [Intel-gfx] " Ville Syrjala
2022-08-27  1:45   ` Navare, Manasi
2022-08-27  1:45     ` Navare, Manasi
2022-08-27  1:45     ` [Intel-gfx] " Navare, Manasi
2022-08-26 21:34 ` [PATCH 03/11] drm/edid: s/monitor_rage/vrr_range/ Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` [Intel-gfx] " Ville Syrjala
2022-08-27  1:47   ` Navare, Manasi
2022-08-27  1:47     ` Navare, Manasi
2022-08-27  1:47     ` [Intel-gfx] " Navare, Manasi
2022-08-29  8:29   ` Jani Nikula
2022-08-29  8:29     ` Jani Nikula
2022-08-26 21:34 ` [Intel-gfx] [PATCH 04/11] drm/edid: Define more flags Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-29  8:39   ` [Intel-gfx] " Jani Nikula
2022-08-26 21:34 ` [PATCH 05/11] drm/edid: Only parse VRR range for continuous frequency displays Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-26 21:34   ` [Intel-gfx] " Ville Syrjala
2022-08-29  8:58   ` Jani Nikula
2022-08-29  8:58     ` [Intel-gfx] " Jani Nikula
2022-08-26 21:34 ` [Intel-gfx] [PATCH 06/11] drm/edid: Extract drm_gtf2_mode() Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-08-29  8:45   ` [Intel-gfx] " Jani Nikula
2022-08-26 21:34 ` [Intel-gfx] [PATCH 07/11] drm/edid: Use GTF2 for inferred modes Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-09-02 12:25   ` [Intel-gfx] " Jani Nikula
2022-09-02 12:45     ` Ville Syrjälä [this message]
2022-08-26 21:34 ` [Intel-gfx] [PATCH 08/11] drm/edid: Use the correct formula for standard timings Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-09-02 13:41   ` [Intel-gfx] " Jani Nikula
2022-09-02 14:02     ` Ville Syrjälä
2022-08-26 21:34 ` [Intel-gfx] [PATCH 09/11] drm/edid: Unconfuse preferred timing stuff a bit Ville Syrjala
2022-08-26 21:34   ` Ville Syrjala
2022-09-02 12:27   ` [Intel-gfx] " Jani Nikula
2022-09-02 12:27     ` Jani Nikula
2022-08-26 21:35 ` [Intel-gfx] [PATCH 10/11] drm/edid: Make version checks less convoluted Ville Syrjala
2022-08-26 21:35   ` Ville Syrjala
2022-09-02 12:31   ` [Intel-gfx] " Jani Nikula
2022-09-02 12:31     ` Jani Nikula
2022-08-26 21:35 ` [Intel-gfx] [PATCH 11/11] drm/i915: Infer vrefresh range for eDP if the EDID omits it Ville Syrjala
2022-08-26 21:35   ` Ville Syrjala
2022-08-29  8:56   ` [Intel-gfx] " Jani Nikula
2022-08-29 12:02   ` [Intel-gfx] [PATCH v2 " Ville Syrjala
2022-08-29 12:02     ` Ville Syrjala
2022-08-26 22:35 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/edid: Range descriptor stuff Patchwork
2022-08-26 23:03 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-29 14:36 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/edid: Range descriptor stuff (rev2) Patchwork
2022-08-29 15:02 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-08-30 18:08 ` [Intel-gfx] ✓ Fi.CI.IGT: success for drm/edid: Range descriptor stuff Patchwork
2022-08-31  5:36 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/edid: Range descriptor stuff (rev2) Patchwork

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=YxH7ApmwbP99kKr4@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.