* [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD @ 2020-03-18 6:35 Manasi Navare 2020-03-18 6:35 ` [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support Manasi Navare ` (5 more replies) 0 siblings, 6 replies; 13+ messages in thread From: Manasi Navare @ 2020-03-18 6:35 UTC (permalink / raw) To: intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas DP sink device sets the Ignore MSA bit in its DP_DOWNSTREAM_PORT_COUNT register to indicate its ability to ignore the MSA video timing paramaters and its ability to support seamless video timing change over a range of timing exposed by DisplayID and EDID. This is required for the sink to indicate that it is Adaptive sync capable. Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> --- include/drm/drm_dp_helper.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index c6119e4c169a..ccd6e2e988b9 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h @@ -1315,6 +1315,14 @@ drm_dp_alternate_scrambler_reset_cap(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) DP_ALTERNATE_SCRAMBLER_RESET_CAP; } +/* Ignore MSA timing for Adaptive Sync support on DP 1.4 */ +static inline bool +drm_dp_sink_is_capable_without_timing_msa(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) +{ + return dpcd[DP_DOWN_STREAM_PORT_COUNT] & + DP_MSA_TIMING_PAR_IGNORED; +} + /* * DisplayPort AUX channel */ -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 13+ messages in thread
* [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare @ 2020-03-18 6:35 ` Manasi Navare 2020-03-18 13:42 ` Harry Wentland 2020-03-19 10:07 ` Jani Nikula 2020-03-18 6:35 ` [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support Manasi Navare ` (4 subsequent siblings) 5 siblings, 2 replies; 13+ messages in thread From: Manasi Navare @ 2020-03-18 6:35 UTC (permalink / raw) To: intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas This patch adds a hook in drm_connector_helper_funcs to get the support of the driver for adaptive sync functionality. This can be called in the connector probe helper function after the connector detect() and get_modes() hooks to also query the adaptive sync support of the driver. Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> --- drivers/gpu/drm/drm_probe_helper.c | 4 ++++ include/drm/drm_modeset_helper_vtables.h | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c index 576b4b7dcd89..4403817bfb02 100644 --- a/drivers/gpu/drm/drm_probe_helper.c +++ b/drivers/gpu/drm/drm_probe_helper.c @@ -482,6 +482,10 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, count = (*connector_funcs->get_modes)(connector); + /* Get the Adaptive Sync Support if helper exists */ + if (*connector_funcs->get_adaptive_sync_support) + (**connector_funcs->get_adaptive_sync_support)(connector); + /* * Fallback for when DDC probe failed in drm_get_edid() and thus skipped * override/firmware EDID. diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h index 7c20b1c8b6a7..0b203fdd25df 100644 --- a/include/drm/drm_modeset_helper_vtables.h +++ b/include/drm/drm_modeset_helper_vtables.h @@ -1079,6 +1079,22 @@ struct drm_connector_helper_funcs { struct drm_writeback_job *job); void (*cleanup_writeback_job)(struct drm_writeback_connector *connector, struct drm_writeback_job *job); + + /** + * @get_adaptive_sync_support: + * + * This hook is used by the probe helper to get the driver's support + * for adaptive sync or variable refresh rate. + * This is called from drm_helper_probe_single_connector_modes() + * This is called after the @get_modes hook so that the connector modes + * are already obtained and EDID is parsed to obtain the monitor + * range descriptor information. + * + * This hook is optional and defined only for the drivers and on + * connectors that advertise adaptive sync support. + * + */ + void (*get_adaptive_sync_support)(struct drm_connector *connector); }; /** -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support 2020-03-18 6:35 ` [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support Manasi Navare @ 2020-03-18 13:42 ` Harry Wentland 2020-03-19 10:07 ` Jani Nikula 1 sibling, 0 replies; 13+ messages in thread From: Harry Wentland @ 2020-03-18 13:42 UTC (permalink / raw) To: Manasi Navare, intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas On 2020-03-18 2:35 a.m., Manasi Navare wrote: > This patch adds a hook in drm_connector_helper_funcs to get the > support of the driver for adaptive sync functionality. > > This can be called in the connector probe helper function after > the connector detect() and get_modes() hooks to also > query the adaptive sync support of the driver. > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Patches 1 and 2 are Reviewed-by: Harry Wentland <harry.wentland@amd.com> Harry > --- > drivers/gpu/drm/drm_probe_helper.c | 4 ++++ > include/drm/drm_modeset_helper_vtables.h | 16 ++++++++++++++++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > index 576b4b7dcd89..4403817bfb02 100644 > --- a/drivers/gpu/drm/drm_probe_helper.c > +++ b/drivers/gpu/drm/drm_probe_helper.c > @@ -482,6 +482,10 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, > > count = (*connector_funcs->get_modes)(connector); > > + /* Get the Adaptive Sync Support if helper exists */ > + if (*connector_funcs->get_adaptive_sync_support) > + (**connector_funcs->get_adaptive_sync_support)(connector); > + > /* > * Fallback for when DDC probe failed in drm_get_edid() and thus skipped > * override/firmware EDID. > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > index 7c20b1c8b6a7..0b203fdd25df 100644 > --- a/include/drm/drm_modeset_helper_vtables.h > +++ b/include/drm/drm_modeset_helper_vtables.h > @@ -1079,6 +1079,22 @@ struct drm_connector_helper_funcs { > struct drm_writeback_job *job); > void (*cleanup_writeback_job)(struct drm_writeback_connector *connector, > struct drm_writeback_job *job); > + > + /** > + * @get_adaptive_sync_support: > + * > + * This hook is used by the probe helper to get the driver's support > + * for adaptive sync or variable refresh rate. > + * This is called from drm_helper_probe_single_connector_modes() > + * This is called after the @get_modes hook so that the connector modes > + * are already obtained and EDID is parsed to obtain the monitor > + * range descriptor information. > + * > + * This hook is optional and defined only for the drivers and on > + * connectors that advertise adaptive sync support. > + * > + */ > + void (*get_adaptive_sync_support)(struct drm_connector *connector); > }; > > /** > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support 2020-03-18 6:35 ` [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support Manasi Navare 2020-03-18 13:42 ` Harry Wentland @ 2020-03-19 10:07 ` Jani Nikula 2020-03-19 22:39 ` Manasi Navare 1 sibling, 1 reply; 13+ messages in thread From: Jani Nikula @ 2020-03-19 10:07 UTC (permalink / raw) To: Manasi Navare, intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas On Tue, 17 Mar 2020, Manasi Navare <manasi.d.navare@intel.com> wrote: > This patch adds a hook in drm_connector_helper_funcs to get the > support of the driver for adaptive sync functionality. > > This can be called in the connector probe helper function after > the connector detect() and get_modes() hooks to also > query the adaptive sync support of the driver. I can obviously see that from the patch. But this does not explain at all *why* we need another hook to begin with, and why it neeeds to be called from ->fill_modes that is set to drm_helper_probe_single_connector_modes(). > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > --- > drivers/gpu/drm/drm_probe_helper.c | 4 ++++ > include/drm/drm_modeset_helper_vtables.h | 16 ++++++++++++++++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > index 576b4b7dcd89..4403817bfb02 100644 > --- a/drivers/gpu/drm/drm_probe_helper.c > +++ b/drivers/gpu/drm/drm_probe_helper.c > @@ -482,6 +482,10 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, > > count = (*connector_funcs->get_modes)(connector); > > + /* Get the Adaptive Sync Support if helper exists */ > + if (*connector_funcs->get_adaptive_sync_support) > + (**connector_funcs->get_adaptive_sync_support)(connector); > + This is in the middle of a sequence figuring out the modes. First ->get_modes, then fallback to other mechanisms. Certainly we don't want to do something else in the middle. > /* > * Fallback for when DDC probe failed in drm_get_edid() and thus skipped > * override/firmware EDID. > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > index 7c20b1c8b6a7..0b203fdd25df 100644 > --- a/include/drm/drm_modeset_helper_vtables.h > +++ b/include/drm/drm_modeset_helper_vtables.h > @@ -1079,6 +1079,22 @@ struct drm_connector_helper_funcs { > struct drm_writeback_job *job); > void (*cleanup_writeback_job)(struct drm_writeback_connector *connector, > struct drm_writeback_job *job); > + > + /** > + * @get_adaptive_sync_support: > + * > + * This hook is used by the probe helper to get the driver's support > + * for adaptive sync or variable refresh rate. > + * This is called from drm_helper_probe_single_connector_modes() > + * This is called after the @get_modes hook so that the connector modes > + * are already obtained and EDID is parsed to obtain the monitor > + * range descriptor information. > + * > + * This hook is optional and defined only for the drivers and on > + * connectors that advertise adaptive sync support. > + * > + */ > + void (*get_adaptive_sync_support)(struct drm_connector *connector); > }; > > /** -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support 2020-03-19 10:07 ` Jani Nikula @ 2020-03-19 22:39 ` Manasi Navare 0 siblings, 0 replies; 13+ messages in thread From: Manasi Navare @ 2020-03-19 22:39 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, Harry Wentland, dri-devel, Nicholas Kazlauskas On Thu, Mar 19, 2020 at 12:07:37PM +0200, Jani Nikula wrote: > On Tue, 17 Mar 2020, Manasi Navare <manasi.d.navare@intel.com> wrote: > > This patch adds a hook in drm_connector_helper_funcs to get the > > support of the driver for adaptive sync functionality. > > > > This can be called in the connector probe helper function after > > the connector detect() and get_modes() hooks to also > > query the adaptive sync support of the driver. > > I can obviously see that from the patch. But this does not explain at > all *why* we need another hook to begin with, and why it neeeds to be > called from ->fill_modes that is set to > drm_helper_probe_single_connector_modes(). > This needs to be called after get_modes that ends up populating the monitor range after parsing the EDID. I could have just modified the get_modes hook in the driver to set the vrr capabilities but that doesnt go with the definition of get_modes() hook which is purely to obtain modes from edid. So i added a separate hook which will always return the vrr capabilities if this hook exists in the driver everytime a connector probe happens. Would you suggest this elsewhere or some other design? I am open to better placement of this hook or reusing some other hook or other suggestions for getting the vrr capabilities in the driver Manasi > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Cc: Harry Wentland <harry.wentland@amd.com> > > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > > --- > > drivers/gpu/drm/drm_probe_helper.c | 4 ++++ > > include/drm/drm_modeset_helper_vtables.h | 16 ++++++++++++++++ > > 2 files changed, 20 insertions(+) > > > > diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c > > index 576b4b7dcd89..4403817bfb02 100644 > > --- a/drivers/gpu/drm/drm_probe_helper.c > > +++ b/drivers/gpu/drm/drm_probe_helper.c > > @@ -482,6 +482,10 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector, > > > > count = (*connector_funcs->get_modes)(connector); > > > > + /* Get the Adaptive Sync Support if helper exists */ > > + if (*connector_funcs->get_adaptive_sync_support) > > + (**connector_funcs->get_adaptive_sync_support)(connector); > > + > > This is in the middle of a sequence figuring out the modes. First > ->get_modes, then fallback to other mechanisms. Certainly we don't want > to do something else in the middle. > > > /* > > * Fallback for when DDC probe failed in drm_get_edid() and thus skipped > > * override/firmware EDID. > > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h > > index 7c20b1c8b6a7..0b203fdd25df 100644 > > --- a/include/drm/drm_modeset_helper_vtables.h > > +++ b/include/drm/drm_modeset_helper_vtables.h > > @@ -1079,6 +1079,22 @@ struct drm_connector_helper_funcs { > > struct drm_writeback_job *job); > > void (*cleanup_writeback_job)(struct drm_writeback_connector *connector, > > struct drm_writeback_job *job); > > + > > + /** > > + * @get_adaptive_sync_support: > > + * > > + * This hook is used by the probe helper to get the driver's support > > + * for adaptive sync or variable refresh rate. > > + * This is called from drm_helper_probe_single_connector_modes() > > + * This is called after the @get_modes hook so that the connector modes > > + * are already obtained and EDID is parsed to obtain the monitor > > + * range descriptor information. > > + * > > + * This hook is optional and defined only for the drivers and on > > + * connectors that advertise adaptive sync support. > > + * > > + */ > > + void (*get_adaptive_sync_support)(struct drm_connector *connector); > > }; > > > > /** > > -- > Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare 2020-03-18 6:35 ` [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support Manasi Navare @ 2020-03-18 6:35 ` Manasi Navare 2020-03-19 10:14 ` Jani Nikula 2020-03-18 7:07 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Patchwork ` (3 subsequent siblings) 5 siblings, 1 reply; 13+ messages in thread From: Manasi Navare @ 2020-03-18 6:35 UTC (permalink / raw) To: intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas This defines the get_vrr_support hook for intel DP connector VRR support is set to true based on the DPCD ignore MSA and EDID monitor range Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> Cc: Aditya Swarup <aditya.swarup@intel.com> Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> --- .../drm/i915/display/intel_display_types.h | 3 +++ drivers/gpu/drm/i915/display/intel_dp.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h index 5e00e611f077..cd37ee6db1ff 100644 --- a/drivers/gpu/drm/i915/display/intel_display_types.h +++ b/drivers/gpu/drm/i915/display/intel_display_types.h @@ -1353,6 +1353,9 @@ struct intel_dp { /* Display stream compression testing */ bool force_dsc_en; + + /* DP Variable refresh rate/ Adaptive sync support */ + bool vrr_capable; }; enum lspcon_vendor { diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 0a417cd2af2b..ccf5d868b5c1 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -5860,6 +5860,24 @@ static int intel_dp_get_modes(struct drm_connector *connector) return 0; } +static void intel_dp_get_vrr_support(struct drm_connector *connector) +{ + struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector)); + const struct drm_display_info *info = &connector->display_info; + struct drm_i915_private *dev_priv = to_i915(connector->dev); + + /* + * DP Sink is capable of Variable refresh video timings if + * Ignore MSA bit is set in DPCD. + * EDID monitor range also should be atleast 10 for reasonable + * Adaptive sync/ VRR end user experience. + */ + if (INTEL_GEN(dev_priv) >= 12 && + drm_dp_sink_is_capable_without_timing_msa(intel_dp->dpcd) && + info->monitor_range.max_vfreq - info->monitor_range.min_vfreq > 10) + intel_dp->vrr_capable = true; +} + static int intel_dp_connector_register(struct drm_connector *connector) { @@ -6756,6 +6774,7 @@ static const struct drm_connector_helper_funcs intel_dp_connector_helper_funcs = .get_modes = intel_dp_get_modes, .mode_valid = intel_dp_mode_valid, .atomic_check = intel_dp_connector_atomic_check, + .get_adaptive_sync_support = intel_dp_get_vrr_support, }; static const struct drm_encoder_funcs intel_dp_enc_funcs = { -- 2.19.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support 2020-03-18 6:35 ` [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support Manasi Navare @ 2020-03-19 10:14 ` Jani Nikula 2020-03-19 22:35 ` Manasi Navare 0 siblings, 1 reply; 13+ messages in thread From: Jani Nikula @ 2020-03-19 10:14 UTC (permalink / raw) To: Manasi Navare, intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas On Tue, 17 Mar 2020, Manasi Navare <manasi.d.navare@intel.com> wrote: > This defines the get_vrr_support hook for intel DP connector > VRR support is set to true based on the DPCD ignore MSA and > EDID monitor range Yeah... but what do you use it for? > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > Cc: Aditya Swarup <aditya.swarup@intel.com> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > --- > .../drm/i915/display/intel_display_types.h | 3 +++ > drivers/gpu/drm/i915/display/intel_dp.c | 19 +++++++++++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h > index 5e00e611f077..cd37ee6db1ff 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > @@ -1353,6 +1353,9 @@ struct intel_dp { > > /* Display stream compression testing */ > bool force_dsc_en; > + > + /* DP Variable refresh rate/ Adaptive sync support */ > + bool vrr_capable; Only set, never read. > }; > > enum lspcon_vendor { > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index 0a417cd2af2b..ccf5d868b5c1 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -5860,6 +5860,24 @@ static int intel_dp_get_modes(struct drm_connector *connector) > return 0; > } > > +static void intel_dp_get_vrr_support(struct drm_connector *connector) > +{ > + struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector)); > + const struct drm_display_info *info = &connector->display_info; > + struct drm_i915_private *dev_priv = to_i915(connector->dev); > + > + /* > + * DP Sink is capable of Variable refresh video timings if > + * Ignore MSA bit is set in DPCD. > + * EDID monitor range also should be atleast 10 for reasonable > + * Adaptive sync/ VRR end user experience. > + */ > + if (INTEL_GEN(dev_priv) >= 12 && > + drm_dp_sink_is_capable_without_timing_msa(intel_dp->dpcd) && > + info->monitor_range.max_vfreq - info->monitor_range.min_vfreq > 10) > + intel_dp->vrr_capable = true; So for now this is just a cached value for i915 use. I don't know what you'll need it for, but you also don't explain why it needs to be *cached* instead of having a helper to tell you based on the above data. You only ever set ->vrr_capable to true, but you never reset it back to false e.g. when the display is changed on the connector. Furthermore, because of the placing of the hook call in the previous patch, this will only use whatever details ->get_modes gives you, not the fallback data. BR, Jani. > +} > + > static int > intel_dp_connector_register(struct drm_connector *connector) > { > @@ -6756,6 +6774,7 @@ static const struct drm_connector_helper_funcs intel_dp_connector_helper_funcs = > .get_modes = intel_dp_get_modes, > .mode_valid = intel_dp_mode_valid, > .atomic_check = intel_dp_connector_atomic_check, > + .get_adaptive_sync_support = intel_dp_get_vrr_support, > }; > > static const struct drm_encoder_funcs intel_dp_enc_funcs = { -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support 2020-03-19 10:14 ` Jani Nikula @ 2020-03-19 22:35 ` Manasi Navare 0 siblings, 0 replies; 13+ messages in thread From: Manasi Navare @ 2020-03-19 22:35 UTC (permalink / raw) To: Jani Nikula; +Cc: dri-devel, Nicholas Kazlauskas, Harry Wentland, intel-gfx On Thu, Mar 19, 2020 at 12:14:28PM +0200, Jani Nikula wrote: > On Tue, 17 Mar 2020, Manasi Navare <manasi.d.navare@intel.com> wrote: > > This defines the get_vrr_support hook for intel DP connector > > VRR support is set to true based on the DPCD ignore MSA and > > EDID monitor range > > Yeah... but what do you use it for? > Hi Jani, My idea of adding the intel_dp->vrr_capable variable was to store the vrr capability in intel_dp for internal i915 use later when we decide on vrr crtc states etc and configure the pipe etc for VRR modes. I added this in a hook that gets called in the connector probe function right after detect and get_modes() since thats when we will have parse the EDID monitor range and populated that in drm_display_info struct. This hook is also needed for us to then set the vrr capable property for that connector. But yes no that I rethink on of i actually need something in intel_dp I feel that I can just get away with crtc_state->vrr_capable that will be computed in atomic check based on the drm_display_info and dpcd read there and in this hook we can just set the vrr capable property. But that would mean duplicating this conditional code in atomic check. What would be your suggestion? Cache it here in intel_dp and just use this to set crtc_state->VRR values in modeset or set it directly in atomic check? In terms of reseting it, I can set this to 0 in intel_dp_detect(), if connector disconnected path where i reset the dsc_dpcd and dp_compliance variables? Regards Manasi > > > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Cc: Harry Wentland <harry.wentland@amd.com> > > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > > Cc: Aditya Swarup <aditya.swarup@intel.com> > > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > > --- > > .../drm/i915/display/intel_display_types.h | 3 +++ > > drivers/gpu/drm/i915/display/intel_dp.c | 19 +++++++++++++++++++ > > 2 files changed, 22 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h > > index 5e00e611f077..cd37ee6db1ff 100644 > > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > > @@ -1353,6 +1353,9 @@ struct intel_dp { > > > > /* Display stream compression testing */ > > bool force_dsc_en; > > + > > + /* DP Variable refresh rate/ Adaptive sync support */ > > + bool vrr_capable; > > Only set, never read. > > > }; > > > > enum lspcon_vendor { > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > > index 0a417cd2af2b..ccf5d868b5c1 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > @@ -5860,6 +5860,24 @@ static int intel_dp_get_modes(struct drm_connector *connector) > > return 0; > > } > > > > +static void intel_dp_get_vrr_support(struct drm_connector *connector) > > +{ > > + struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector)); > > + const struct drm_display_info *info = &connector->display_info; > > + struct drm_i915_private *dev_priv = to_i915(connector->dev); > > + > > + /* > > + * DP Sink is capable of Variable refresh video timings if > > + * Ignore MSA bit is set in DPCD. > > + * EDID monitor range also should be atleast 10 for reasonable > > + * Adaptive sync/ VRR end user experience. > > + */ > > + if (INTEL_GEN(dev_priv) >= 12 && > > + drm_dp_sink_is_capable_without_timing_msa(intel_dp->dpcd) && > > + info->monitor_range.max_vfreq - info->monitor_range.min_vfreq > 10) > > + intel_dp->vrr_capable = true; > > So for now this is just a cached value for i915 use. I don't know what > you'll need it for, but you also don't explain why it needs to be > *cached* instead of having a helper to tell you based on the above > data. You only ever set ->vrr_capable to true, but you never reset it > back to false e.g. when the display is changed on the connector. > > Furthermore, because of the placing of the hook call in the previous > patch, this will only use whatever details ->get_modes gives you, not > the fallback data. > > BR, > Jani. > > > > +} > > + > > static int > > intel_dp_connector_register(struct drm_connector *connector) > > { > > @@ -6756,6 +6774,7 @@ static const struct drm_connector_helper_funcs intel_dp_connector_helper_funcs = > > .get_modes = intel_dp_get_modes, > > .mode_valid = intel_dp_mode_valid, > > .atomic_check = intel_dp_connector_atomic_check, > > + .get_adaptive_sync_support = intel_dp_get_vrr_support, > > }; > > > > static const struct drm_encoder_funcs intel_dp_enc_funcs = { > > -- > Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare 2020-03-18 6:35 ` [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support Manasi Navare 2020-03-18 6:35 ` [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support Manasi Navare @ 2020-03-18 7:07 ` Patchwork 2020-03-18 7:32 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork ` (2 subsequent siblings) 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2020-03-18 7:07 UTC (permalink / raw) To: Manasi Navare; +Cc: intel-gfx == Series Details == Series: series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD URL : https://patchwork.freedesktop.org/series/74822/ State : warning == Summary == $ dim checkpatch origin/drm-tip e340b247ca0e drm/dp: DRM DP helper for reading Ignore MSA from DPCD -:11: WARNING:TYPO_SPELLING: 'paramaters' may be misspelled - perhaps 'parameters'? #11: ignore the MSA video timing paramaters and its ability to support total: 0 errors, 1 warnings, 0 checks, 14 lines checked 1faf0b1579bd drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support 9837125cabc4 drm/i915/dp: intel_dp connector hook for VRR support _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare ` (2 preceding siblings ...) 2020-03-18 7:07 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Patchwork @ 2020-03-18 7:32 ` Patchwork 2020-03-18 10:00 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 2020-03-19 9:59 ` [Intel-gfx] [PATCH 1/3] " Jani Nikula 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2020-03-18 7:32 UTC (permalink / raw) To: Manasi Navare; +Cc: intel-gfx == Series Details == Series: series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD URL : https://patchwork.freedesktop.org/series/74822/ State : success == Summary == CI Bug Log - changes from CI_DRM_8145 -> Patchwork_17002 ==================================================== Summary ------- **WARNING** Minor unknown changes coming with Patchwork_17002 need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_17002, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/index.html Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_17002: ### IGT changes ### #### Warnings #### * igt@i915_selftest@live@gem_contexts: - fi-skl-lmem: [INCOMPLETE][1] ([i915#424]) -> [DMESG-FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/fi-skl-lmem/igt@i915_selftest@live@gem_contexts.html Known issues ------------ Here are the changes found in Patchwork_17002 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live@hangcheck: - fi-icl-dsi: [PASS][3] -> [INCOMPLETE][4] ([fdo#108569]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/fi-icl-dsi/igt@i915_selftest@live@hangcheck.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/fi-icl-dsi/igt@i915_selftest@live@hangcheck.html #### Possible fixes #### * igt@gem_exec_parallel@fds: - fi-glk-dsi: [INCOMPLETE][5] ([i915#529] / [i915#58] / [k.org#198133]) -> [PASS][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/fi-glk-dsi/igt@gem_exec_parallel@fds.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/fi-glk-dsi/igt@gem_exec_parallel@fds.html * igt@i915_selftest@live@hangcheck: - fi-bwr-2160: [INCOMPLETE][7] ([i915#489]) -> [PASS][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/fi-bwr-2160/igt@i915_selftest@live@hangcheck.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/fi-bwr-2160/igt@i915_selftest@live@hangcheck.html * igt@kms_chamelium@hdmi-hpd-fast: - fi-kbl-7500u: [FAIL][9] ([fdo#111407]) -> [PASS][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html #### Warnings #### * igt@runner@aborted: - fi-kbl-8809g: [FAIL][11] ([i915#1209]) -> [FAIL][12] ([i915#192] / [i915#193] / [i915#194]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/fi-kbl-8809g/igt@runner@aborted.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/fi-kbl-8809g/igt@runner@aborted.html [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569 [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407 [i915#1209]: https://gitlab.freedesktop.org/drm/intel/issues/1209 [i915#192]: https://gitlab.freedesktop.org/drm/intel/issues/192 [i915#193]: https://gitlab.freedesktop.org/drm/intel/issues/193 [i915#194]: https://gitlab.freedesktop.org/drm/intel/issues/194 [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424 [i915#489]: https://gitlab.freedesktop.org/drm/intel/issues/489 [i915#529]: https://gitlab.freedesktop.org/drm/intel/issues/529 [i915#58]: https://gitlab.freedesktop.org/drm/intel/issues/58 [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133 Participating hosts (46 -> 42) ------------------------------ Missing (4): fi-byt-clapper fi-byt-squawks fi-bsw-cyan fi-hsw-4200u Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_8145 -> Patchwork_17002 CI-20190529: 20190529 CI_DRM_8145: 5e893da0b8c2bfec015c5eaa7981e1ffab1d7c9c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5518: ee05a571255783837b18d626c4dff6cd9613cee2 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_17002: 9837125cabc48ba1c05726b0c6cbe723fc350787 @ git://anongit.freedesktop.org/gfx-ci/linux == Linux commits == 9837125cabc4 drm/i915/dp: intel_dp connector hook for VRR support 1faf0b1579bd drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support e340b247ca0e drm/dp: DRM DP helper for reading Ignore MSA from DPCD == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare ` (3 preceding siblings ...) 2020-03-18 7:32 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork @ 2020-03-18 10:00 ` Patchwork 2020-03-19 9:59 ` [Intel-gfx] [PATCH 1/3] " Jani Nikula 5 siblings, 0 replies; 13+ messages in thread From: Patchwork @ 2020-03-18 10:00 UTC (permalink / raw) To: Manasi Navare; +Cc: intel-gfx == Series Details == Series: series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD URL : https://patchwork.freedesktop.org/series/74822/ State : success == Summary == CI Bug Log - changes from CI_DRM_8145_full -> Patchwork_17002_full ==================================================== Summary ------- **SUCCESS** No regressions found. Known issues ------------ Here are the changes found in Patchwork_17002_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@gem_ctx_persistence@engines-mixed-process@vcs1: - shard-tglb: [PASS][1] -> [FAIL][2] ([i915#679]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-tglb5/igt@gem_ctx_persistence@engines-mixed-process@vcs1.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-tglb5/igt@gem_ctx_persistence@engines-mixed-process@vcs1.html * igt@gem_ctx_persistence@engines-mixed-process@vecs0: - shard-tglb: [PASS][3] -> [INCOMPLETE][4] ([i915#1239]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-tglb5/igt@gem_ctx_persistence@engines-mixed-process@vecs0.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-tglb5/igt@gem_ctx_persistence@engines-mixed-process@vecs0.html * igt@gem_exec_schedule@out-order-bsd2: - shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276]) +9 similar issues [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb4/igt@gem_exec_schedule@out-order-bsd2.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb8/igt@gem_exec_schedule@out-order-bsd2.html * igt@gem_exec_schedule@pi-userfault-bsd: - shard-iclb: [PASS][7] -> [SKIP][8] ([i915#677]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb5/igt@gem_exec_schedule@pi-userfault-bsd.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb2/igt@gem_exec_schedule@pi-userfault-bsd.html * igt@gem_exec_schedule@preempt-queue-bsd: - shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#112146]) +3 similar issues [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb6/igt@gem_exec_schedule@preempt-queue-bsd.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb4/igt@gem_exec_schedule@preempt-queue-bsd.html * igt@gem_exec_whisper@basic-fds-forked: - shard-tglb: [PASS][11] -> [INCOMPLETE][12] ([i915#1318] / [i915#1401]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-tglb5/igt@gem_exec_whisper@basic-fds-forked.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-tglb8/igt@gem_exec_whisper@basic-fds-forked.html * igt@gem_ppgtt@flink-and-close-vma-leak: - shard-kbl: [PASS][13] -> [FAIL][14] ([i915#644]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-kbl6/igt@gem_ppgtt@flink-and-close-vma-leak.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl2/igt@gem_ppgtt@flink-and-close-vma-leak.html * igt@gem_softpin@noreloc-s3: - shard-kbl: [PASS][15] -> [DMESG-WARN][16] ([i915#180]) +3 similar issues [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-kbl7/igt@gem_softpin@noreloc-s3.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl7/igt@gem_softpin@noreloc-s3.html * igt@i915_selftest@live@execlists: - shard-kbl: [PASS][17] -> [INCOMPLETE][18] ([fdo#112259] / [i915#656]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-kbl1/igt@i915_selftest@live@execlists.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl3/igt@i915_selftest@live@execlists.html * igt@kms_cursor_crc@pipe-c-cursor-suspend: - shard-apl: [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +4 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-apl7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-apl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html * igt@kms_flip@plain-flip-ts-check: - shard-apl: [PASS][21] -> [FAIL][22] ([i915#34]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-apl2/igt@kms_flip@plain-flip-ts-check.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-apl7/igt@kms_flip@plain-flip-ts-check.html * igt@kms_psr2_su@frontbuffer: - shard-iclb: [PASS][23] -> [SKIP][24] ([fdo#109642] / [fdo#111068]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb2/igt@kms_psr2_su@frontbuffer.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb1/igt@kms_psr2_su@frontbuffer.html * igt@kms_psr@psr2_basic: - shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109441]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb2/igt@kms_psr@psr2_basic.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb1/igt@kms_psr@psr2_basic.html * igt@kms_setmode@basic: - shard-apl: [PASS][27] -> [FAIL][28] ([i915#31]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-apl8/igt@kms_setmode@basic.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-apl1/igt@kms_setmode@basic.html * igt@perf_pmu@busy-accuracy-2-vcs1: - shard-iclb: [PASS][29] -> [SKIP][30] ([fdo#112080]) +6 similar issues [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb4/igt@perf_pmu@busy-accuracy-2-vcs1.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb8/igt@perf_pmu@busy-accuracy-2-vcs1.html #### Possible fixes #### * igt@gem_exec_schedule@implicit-read-write-bsd1: - shard-iclb: [SKIP][31] ([fdo#109276] / [i915#677]) -> [PASS][32] +1 similar issue [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb6/igt@gem_exec_schedule@implicit-read-write-bsd1.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb4/igt@gem_exec_schedule@implicit-read-write-bsd1.html * igt@gem_exec_schedule@pi-shared-iova-bsd: - shard-iclb: [SKIP][33] ([i915#677]) -> [PASS][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb4/igt@gem_exec_schedule@pi-shared-iova-bsd.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb3/igt@gem_exec_schedule@pi-shared-iova-bsd.html * igt@gem_exec_schedule@preempt-contexts-bsd: - shard-iclb: [SKIP][35] ([fdo#112146]) -> [PASS][36] +1 similar issue [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb4/igt@gem_exec_schedule@preempt-contexts-bsd.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb3/igt@gem_exec_schedule@preempt-contexts-bsd.html * igt@gem_workarounds@suspend-resume-fd: - shard-kbl: [DMESG-WARN][37] ([i915#180]) -> [PASS][38] +4 similar issues [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-kbl2/igt@gem_workarounds@suspend-resume-fd.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl4/igt@gem_workarounds@suspend-resume-fd.html * igt@kms_frontbuffer_tracking@fbc-suspend: - shard-apl: [DMESG-WARN][39] ([i915#180]) -> [PASS][40] +2 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-apl6/igt@kms_frontbuffer_tracking@fbc-suspend.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-apl4/igt@kms_frontbuffer_tracking@fbc-suspend.html * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes: - shard-iclb: [INCOMPLETE][41] ([i915#1185] / [i915#250]) -> [PASS][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min: - shard-skl: [FAIL][43] ([fdo#108145]) -> [PASS][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-skl6/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html * igt@kms_psr@psr2_no_drrs: - shard-iclb: [SKIP][45] ([fdo#109441]) -> [PASS][46] +1 similar issue [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb7/igt@kms_psr@psr2_no_drrs.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb2/igt@kms_psr@psr2_no_drrs.html * igt@kms_setmode@basic: - shard-skl: [FAIL][47] ([i915#31]) -> [PASS][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-skl2/igt@kms_setmode@basic.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-skl7/igt@kms_setmode@basic.html - shard-glk: [FAIL][49] ([i915#31]) -> [PASS][50] [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-glk3/igt@kms_setmode@basic.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-glk7/igt@kms_setmode@basic.html * igt@perf_pmu@busy-vcs1: - shard-iclb: [SKIP][51] ([fdo#112080]) -> [PASS][52] +4 similar issues [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb5/igt@perf_pmu@busy-vcs1.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb2/igt@perf_pmu@busy-vcs1.html * igt@prime_vgem@fence-wait-bsd2: - shard-iclb: [SKIP][53] ([fdo#109276]) -> [PASS][54] +10 similar issues [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-iclb5/igt@prime_vgem@fence-wait-bsd2.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-iclb2/igt@prime_vgem@fence-wait-bsd2.html #### Warnings #### * igt@i915_pm_dc@dc5-psr: - shard-snb: [INCOMPLETE][55] ([i915#82]) -> [SKIP][56] ([fdo#109271]) [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-snb4/igt@i915_pm_dc@dc5-psr.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-snb4/igt@i915_pm_dc@dc5-psr.html * igt@runner@aborted: - shard-kbl: ([FAIL][57], [FAIL][58]) ([i915#1389] / [i915#1402] / [i915#92]) -> ([FAIL][59], [FAIL][60], [FAIL][61]) ([i915#1389] / [i915#1402] / [i915#656] / [i915#92]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-kbl2/igt@runner@aborted.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-kbl6/igt@runner@aborted.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl3/igt@runner@aborted.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl6/igt@runner@aborted.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-kbl3/igt@runner@aborted.html - shard-tglb: [FAIL][62] ([i915#1389]) -> [FAIL][63] ([i915#1318]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8145/shard-tglb8/igt@runner@aborted.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/shard-tglb8/igt@runner@aborted.html [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276 [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441 [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080 [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146 [fdo#112259]: https://bugs.freedesktop.org/show_bug.cgi?id=112259 [i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185 [i915#1239]: https://gitlab.freedesktop.org/drm/intel/issues/1239 [i915#1318]: https://gitlab.freedesktop.org/drm/intel/issues/1318 [i915#1389]: https://gitlab.freedesktop.org/drm/intel/issues/1389 [i915#1401]: https://gitlab.freedesktop.org/drm/intel/issues/1401 [i915#1402]: https://gitlab.freedesktop.org/drm/intel/issues/1402 [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180 [i915#250]: https://gitlab.freedesktop.org/drm/intel/issues/250 [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31 [i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34 [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644 [i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656 [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677 [i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679 [i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82 [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92 Participating hosts (10 -> 10) ------------------------------ No changes in participating hosts Build changes ------------- * CI: CI-20190529 -> None * Linux: CI_DRM_8145 -> Patchwork_17002 CI-20190529: 20190529 CI_DRM_8145: 5e893da0b8c2bfec015c5eaa7981e1ffab1d7c9c @ git://anongit.freedesktop.org/gfx-ci/linux IGT_5518: ee05a571255783837b18d626c4dff6cd9613cee2 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools Patchwork_17002: 9837125cabc48ba1c05726b0c6cbe723fc350787 @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_17002/index.html _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare ` (4 preceding siblings ...) 2020-03-18 10:00 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork @ 2020-03-19 9:59 ` Jani Nikula 2020-03-19 22:46 ` Manasi Navare 5 siblings, 1 reply; 13+ messages in thread From: Jani Nikula @ 2020-03-19 9:59 UTC (permalink / raw) To: Manasi Navare, intel-gfx, dri-devel; +Cc: Harry Wentland, Nicholas Kazlauskas On Tue, 17 Mar 2020, Manasi Navare <manasi.d.navare@intel.com> wrote: > DP sink device sets the Ignore MSA bit in its > DP_DOWNSTREAM_PORT_COUNT register to indicate its ability to > ignore the MSA video timing paramaters and its ability to support > seamless video timing change over a range of timing exposed by > DisplayID and EDID. > This is required for the sink to indicate that it is Adaptive sync > capable. > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > --- > include/drm/drm_dp_helper.h | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h > index c6119e4c169a..ccd6e2e988b9 100644 > --- a/include/drm/drm_dp_helper.h > +++ b/include/drm/drm_dp_helper.h > @@ -1315,6 +1315,14 @@ drm_dp_alternate_scrambler_reset_cap(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) > DP_ALTERNATE_SCRAMBLER_RESET_CAP; > } > > +/* Ignore MSA timing for Adaptive Sync support on DP 1.4 */ > +static inline bool > +drm_dp_sink_is_capable_without_timing_msa(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) From the department of nitpicks, if you read the name of the function aloud, what does it actually mean? Is sink capable of *what*? BR, Jani. > +{ > + return dpcd[DP_DOWN_STREAM_PORT_COUNT] & > + DP_MSA_TIMING_PAR_IGNORED; > +} > + > /* > * DisplayPort AUX channel > */ -- Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD 2020-03-19 9:59 ` [Intel-gfx] [PATCH 1/3] " Jani Nikula @ 2020-03-19 22:46 ` Manasi Navare 0 siblings, 0 replies; 13+ messages in thread From: Manasi Navare @ 2020-03-19 22:46 UTC (permalink / raw) To: Jani Nikula; +Cc: intel-gfx, Harry Wentland, dri-devel, Nicholas Kazlauskas On Thu, Mar 19, 2020 at 11:59:38AM +0200, Jani Nikula wrote: > On Tue, 17 Mar 2020, Manasi Navare <manasi.d.navare@intel.com> wrote: > > DP sink device sets the Ignore MSA bit in its > > DP_DOWNSTREAM_PORT_COUNT register to indicate its ability to > > ignore the MSA video timing paramaters and its ability to support > > seamless video timing change over a range of timing exposed by > > DisplayID and EDID. > > This is required for the sink to indicate that it is Adaptive sync > > capable. > > > > Cc: Jani Nikula <jani.nikula@linux.intel.com> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Cc: Harry Wentland <harry.wentland@amd.com> > > Cc: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> > > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> > > --- > > include/drm/drm_dp_helper.h | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h > > index c6119e4c169a..ccd6e2e988b9 100644 > > --- a/include/drm/drm_dp_helper.h > > +++ b/include/drm/drm_dp_helper.h > > @@ -1315,6 +1315,14 @@ drm_dp_alternate_scrambler_reset_cap(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) > > DP_ALTERNATE_SCRAMBLER_RESET_CAP; > > } > > > > +/* Ignore MSA timing for Adaptive Sync support on DP 1.4 */ > > +static inline bool > > +drm_dp_sink_is_capable_without_timing_msa(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) > > From the department of nitpicks, if you read the name of the function > aloud, what does it actually mean? > > Is sink capable of *what*? As per the DP 1.4 spec, it says this indicates sink's ability to ignore MSA video timing parameters to support seamless video timing change over range of timing exposed in DisplayID and legacy EDID. This query should occur before enabling dynamic video timing change of incoming video stream without valid MSA video timing params. May be i rename it as: drm_dp_sink_capable_video_without_timing_msa() ? Manasi > > BR, > Jani. > > > > +{ > > + return dpcd[DP_DOWN_STREAM_PORT_COUNT] & > > + DP_MSA_TIMING_PAR_IGNORED; > > +} > > + > > /* > > * DisplayPort AUX channel > > */ > > -- > Jani Nikula, Intel Open Source Graphics Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-03-19 22:44 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-03-18 6:35 [Intel-gfx] [PATCH 1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Manasi Navare 2020-03-18 6:35 ` [Intel-gfx] [PATCH 2/3] drm: Create a drm_connector_helper_funcs hook for Adaptive Sync support Manasi Navare 2020-03-18 13:42 ` Harry Wentland 2020-03-19 10:07 ` Jani Nikula 2020-03-19 22:39 ` Manasi Navare 2020-03-18 6:35 ` [Intel-gfx] [PATCH 3/3] drm/i915/dp: intel_dp connector hook for VRR support Manasi Navare 2020-03-19 10:14 ` Jani Nikula 2020-03-19 22:35 ` Manasi Navare 2020-03-18 7:07 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm/dp: DRM DP helper for reading Ignore MSA from DPCD Patchwork 2020-03-18 7:32 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork 2020-03-18 10:00 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork 2020-03-19 9:59 ` [Intel-gfx] [PATCH 1/3] " Jani Nikula 2020-03-19 22:46 ` Manasi Navare
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).