* [PATCH v8 1/2] drm: Add connector property to limit max bpc
@ 2018-09-18 18:11 Radhakrishna Sripada
2018-09-18 18:11 ` [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp Radhakrishna Sripada
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Radhakrishna Sripada @ 2018-09-18 18:11 UTC (permalink / raw)
To: intel-gfx; +Cc: Daniel Vetter, Kishore Kadiyala, dri-devel, Rodrigo Vivi
At times 12bpc HDMI cannot be driven due to faulty cables, dongles
level shifters etc. To workaround them we may need to drive the output
at a lower bpc. Currently the user space does not have a way to limit
the bpc. The default bpc to be programmed is decided by the driver and
is run against connector limitations.
Creating a new connector property "max bpc" in order to limit the bpc.
xrandr can make use of this connector property to make sure that bpc does
not exceed the configured value. This property can be used by userspace to
set the bpc.
V2: Initialize max_bpc to satisfy kms_properties
V3: Move the property to drm_connector
V4: Split drm and i915 components(Ville)
V5: Make the property per connector(Ville)
V6: Compare the requested bpc to connector bpc(Daniel)
Move the attach_property function to core(Ville)
V7: Fix checkpatch warnings
V8: Simplify the connector check code(Ville)
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Kishore Kadiyala <kishore.kadiyala@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
---
drivers/gpu/drm/drm_atomic.c | 5 +++++
drivers/gpu/drm/drm_atomic_helper.c | 4 ++++
drivers/gpu/drm/drm_atomic_uapi.c | 4 ++++
drivers/gpu/drm/drm_connector.c | 33 +++++++++++++++++++++++++++++++++
include/drm/drm_connector.h | 20 ++++++++++++++++++++
5 files changed, 66 insertions(+)
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 2870ae205237..dc76e89c04af 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -390,6 +390,7 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
{
struct drm_crtc_state *crtc_state;
struct drm_writeback_job *writeback_job = state->writeback_job;
+ struct drm_display_info *info = &connector->display_info;
if ((connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) || !writeback_job)
return 0;
@@ -417,6 +418,10 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
return -EINVAL;
}
+ state->max_bpc = info->bpc ?: 8;
+ if (connector->max_bpc_property)
+ state->max_bpc = min(state->max_bpc, state->max_requested_bpc);
+
return 0;
}
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 3cf1aa132778..d9ce8077fb6a 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -639,6 +639,10 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
if (old_connector_state->link_status !=
new_connector_state->link_status)
new_crtc_state->connectors_changed = true;
+
+ if (old_connector_state->max_requested_bpc !=
+ new_connector_state->max_requested_bpc)
+ new_crtc_state->connectors_changed = true;
}
if (funcs->atomic_check)
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index d5b7f315098c..86ac33922b09 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -740,6 +740,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
return set_out_fence_for_connector(state->state, connector,
fence_ptr);
+ } else if (property == connector->max_bpc_property) {
+ state->max_requested_bpc = val;
} else if (connector->funcs->atomic_set_property) {
return connector->funcs->atomic_set_property(connector,
state, property, val);
@@ -804,6 +806,8 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
*val = 0;
} else if (property == config->writeback_out_fence_ptr_property) {
*val = 0;
+ } else if (property == connector->max_bpc_property) {
+ *val = state->max_requested_bpc;
} else if (connector->funcs->atomic_get_property) {
return connector->funcs->atomic_get_property(connector,
state, property, val);
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 1e40e5decbe9..65e22c1b37a5 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1583,6 +1583,39 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
EXPORT_SYMBOL(drm_connector_set_link_status_property);
/**
+ * drm_connector_attach_max_bpc_property - attach "max bpc" property
+ * @connector: connector to attach max bpc property on.
+ * @min: The minimum bit depth supported by the connector.
+ * @max: The maximum bit depth supported by the connector.
+ *
+ * This is used to add support for limiting the bit depth on a connector.
+ *
+ * Returns:
+ * Zero on success, negative errno on failure.
+ */
+int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
+ int min, int max)
+{
+ struct drm_device *dev = connector->dev;
+ struct drm_property *prop;
+
+ prop = connector->max_bpc_property;
+ if (!prop) {
+ prop = drm_property_create_range(dev, 0, "max bpc", min, max);
+ if (!prop)
+ return -ENOMEM;
+
+ connector->max_bpc_property = prop;
+ }
+
+ drm_object_attach_property(&connector->base, prop, max);
+ connector->state->max_requested_bpc = max;
+
+ return 0;
+}
+EXPORT_SYMBOL(drm_connector_attach_max_bpc_property);
+
+/**
* drm_connector_init_panel_orientation_property -
* initialize the connecters panel_orientation property
* @connector: connector for which to init the panel-orientation property.
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 91a877fa00cb..bfc3e698cda6 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -461,6 +461,18 @@ struct drm_connector_state {
* drm_writeback_signal_completion()
*/
struct drm_writeback_job *writeback_job;
+
+ /**
+ * @max_requested_bpc: Connector property to limit the maximum bit
+ * depth of the pixels.
+ */
+ u8 max_requested_bpc;
+
+ /**
+ * @max_bpc: Connector max_bpc based on the requested max_bpc property
+ * and the connector bpc limitations obtained from edid.
+ */
+ u8 max_bpc;
};
/**
@@ -924,6 +936,12 @@ struct drm_connector {
*/
struct drm_property_blob *path_blob_ptr;
+ /**
+ * @max_bpc_property: Default connector property for the max bpc to be
+ * driven out of the connector.
+ */
+ struct drm_property *max_bpc_property;
+
#define DRM_CONNECTOR_POLL_HPD (1 << 0)
#define DRM_CONNECTOR_POLL_CONNECT (1 << 1)
#define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2)
@@ -1201,6 +1219,8 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
uint64_t link_status);
int drm_connector_init_panel_orientation_property(
struct drm_connector *connector, int width, int height);
+int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
+ int min, int max);
/**
* struct drm_tile_group - Tile group metadata
--
2.9.3
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
@ 2018-09-18 18:11 ` Radhakrishna Sripada
2018-09-18 18:50 ` Ville Syrjälä
2018-09-18 18:48 ` ✗ Fi.CI.SPARSE: warning for series starting with [v8,1/2] drm: Add connector property to limit max bpc Patchwork
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Radhakrishna Sripada @ 2018-09-18 18:11 UTC (permalink / raw)
To: intel-gfx; +Cc: Daniel Vetter, Kishore Kadiyala, dri-devel, Rodrigo Vivi
Use the newly added "max bpc" connector property to limit pipe bpp.
V3: Use drm_connector_state to access the "max bpc" property
V4: Initialize the drm property, add suuport to DP(Ville)
V5: Use the property in the connector and fix CI failure(Ville)
V6: Use the core function to attach max_bpc property, remove the redundant
clamping of pipe bpp based on connector info
V7: Fix Checkpatch warnings
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Kishore Kadiyala <kishore.kadiyala@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 49 ++++++++++++++++++++----------------
drivers/gpu/drm/i915/intel_dp.c | 5 ++++
drivers/gpu/drm/i915/intel_hdmi.c | 5 ++++
3 files changed, 38 insertions(+), 21 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index eb25037d7b38..75afd53590b1 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10845,29 +10845,37 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
}
static void
-connected_sink_compute_bpp(struct intel_connector *connector,
- struct intel_crtc_state *pipe_config)
+connected_sink_max_bpp(struct drm_connector_state *conn_state,
+ struct intel_crtc_state *pipe_config)
{
- const struct drm_display_info *info = &connector->base.display_info;
- int bpp = pipe_config->pipe_bpp;
-
- DRM_DEBUG_KMS("[CONNECTOR:%d:%s] checking for sink bpp constrains\n",
- connector->base.base.id,
- connector->base.name);
-
- /* Don't use an invalid EDID bpc value */
- if (info->bpc != 0 && info->bpc * 3 < bpp) {
- DRM_DEBUG_KMS("clamping display bpp (was %d) to EDID reported max of %d\n",
- bpp, info->bpc * 3);
- pipe_config->pipe_bpp = info->bpc * 3;
+ if (pipe_config->pipe_bpp < conn_state->max_bpc * 3) {
+ conn_state->max_bpc = pipe_config->pipe_bpp / 3;
+ return;
}
- /* Clamp bpp to 8 on screens without EDID 1.4 */
- if (info->bpc == 0 && bpp > 24) {
- DRM_DEBUG_KMS("clamping display bpp (was %d) to default limit of 24\n",
- bpp);
- pipe_config->pipe_bpp = 24;
+ switch (conn_state->max_bpc) {
+ case 8:
+ case 9:
+ pipe_config->pipe_bpp = 8 * 3;
+ break;
+ case 10:
+ case 11:
+ pipe_config->pipe_bpp = 10 * 3;
+ break;
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ pipe_config->pipe_bpp = 12 * 3;
+ break;
+ case 16:
+ pipe_config->pipe_bpp = 16 * 3;
+ break;
+ default:
+ break;
}
+
+ DRM_DEBUG_KMS("Limiting display bpp to %d\n", pipe_config->pipe_bpp);
}
static int
@@ -10898,8 +10906,7 @@ compute_baseline_pipe_bpp(struct intel_crtc *crtc,
if (connector_state->crtc != &crtc->base)
continue;
- connected_sink_compute_bpp(to_intel_connector(connector),
- pipe_config);
+ connected_sink_max_bpp(connector_state, pipe_config);
}
return bpp;
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 436c22de33b6..aefca1d9e87b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5719,6 +5719,11 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect
intel_attach_force_audio_property(connector);
intel_attach_broadcast_rgb_property(connector);
+ if ((IS_G4X(dev_priv) || IS_VALLEYVIEW(dev_priv) ||
+ IS_CHERRYVIEW(dev_priv)))
+ drm_connector_attach_max_bpc_property(connector, 8, 10);
+ else if (INTEL_GEN(dev_priv) >= 5)
+ drm_connector_attach_max_bpc_property(connector, 8, 12);
if (intel_dp_is_edp(intel_dp)) {
u32 allowed_scalers;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index a2dab0b6bde6..2b432c7e4f8a 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2109,11 +2109,16 @@ static const struct drm_encoder_funcs intel_hdmi_enc_funcs = {
static void
intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *connector)
{
+ struct drm_i915_private *dev_priv = to_i915(connector->dev);
+
intel_attach_force_audio_property(connector);
intel_attach_broadcast_rgb_property(connector);
intel_attach_aspect_ratio_property(connector);
drm_connector_attach_content_type_property(connector);
connector->state->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
+
+ if (!HAS_GMCH_DISPLAY(dev_priv))
+ drm_connector_attach_max_bpc_property(connector, 8, 12);
}
/*
--
2.9.3
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* ✗ Fi.CI.SPARSE: warning for series starting with [v8,1/2] drm: Add connector property to limit max bpc
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
2018-09-18 18:11 ` [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp Radhakrishna Sripada
@ 2018-09-18 18:48 ` Patchwork
2018-09-18 18:51 ` [PATCH v8 1/2] " Ville Syrjälä
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-09-18 18:48 UTC (permalink / raw)
To: Radhakrishna Sripada; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v8,1/2] drm: Add connector property to limit max bpc
URL : https://patchwork.freedesktop.org/series/49868/
State : warning
== Summary ==
$ dim sparse origin/drm-tip
Commit: drm: Add connector property to limit max bpc
+drivers/gpu/drm/drm_atomic.c:423:34: warning: expression using sizeof(void)
+drivers/gpu/drm/drm_atomic.c:423:34: warning: expression using sizeof(void)
Commit: drm/i915: Allow "max bpc" property to limit pipe_bpp
Okay!
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp
2018-09-18 18:11 ` [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp Radhakrishna Sripada
@ 2018-09-18 18:50 ` Ville Syrjälä
0 siblings, 0 replies; 8+ messages in thread
From: Ville Syrjälä @ 2018-09-18 18:50 UTC (permalink / raw)
To: Radhakrishna Sripada
Cc: Daniel Vetter, intel-gfx, Kishore Kadiyala, dri-devel,
Rodrigo Vivi
On Tue, Sep 18, 2018 at 11:11:15AM -0700, Radhakrishna Sripada wrote:
> Use the newly added "max bpc" connector property to limit pipe bpp.
>
> V3: Use drm_connector_state to access the "max bpc" property
> V4: Initialize the drm property, add suuport to DP(Ville)
> V5: Use the property in the connector and fix CI failure(Ville)
> V6: Use the core function to attach max_bpc property, remove the redundant
> clamping of pipe bpp based on connector info
> V7: Fix Checkpatch warnings
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Kishore Kadiyala <kishore.kadiyala@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
> drivers/gpu/drm/i915/intel_display.c | 49 ++++++++++++++++++++----------------
> drivers/gpu/drm/i915/intel_dp.c | 5 ++++
> drivers/gpu/drm/i915/intel_hdmi.c | 5 ++++
> 3 files changed, 38 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index eb25037d7b38..75afd53590b1 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -10845,29 +10845,37 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev)
> }
>
> static void
> -connected_sink_compute_bpp(struct intel_connector *connector,
> - struct intel_crtc_state *pipe_config)
> +connected_sink_max_bpp(struct drm_connector_state *conn_state,
> + struct intel_crtc_state *pipe_config)
> {
> - const struct drm_display_info *info = &connector->base.display_info;
> - int bpp = pipe_config->pipe_bpp;
> -
> - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] checking for sink bpp constrains\n",
> - connector->base.base.id,
> - connector->base.name);
> -
> - /* Don't use an invalid EDID bpc value */
> - if (info->bpc != 0 && info->bpc * 3 < bpp) {
> - DRM_DEBUG_KMS("clamping display bpp (was %d) to EDID reported max of %d\n",
> - bpp, info->bpc * 3);
> - pipe_config->pipe_bpp = info->bpc * 3;
> + if (pipe_config->pipe_bpp < conn_state->max_bpc * 3) {
> + conn_state->max_bpc = pipe_config->pipe_bpp / 3;
> + return;
This back and forth between max_bpc and pipe_bpp is a bit confusing.
I'd probably leave max_bpc alone here and just update pipe_bpp as
needed.
> }
>
> - /* Clamp bpp to 8 on screens without EDID 1.4 */
> - if (info->bpc == 0 && bpp > 24) {
> - DRM_DEBUG_KMS("clamping display bpp (was %d) to default limit of 24\n",
> - bpp);
> - pipe_config->pipe_bpp = 24;
> + switch (conn_state->max_bpc) {
This is missing the 6bpc case at least. I suppose the current code
isn't particuraly robust against unexpected values coming via
info->bpc. The switch statement does seem an improvement in that
regard. Though would be nice to compact it a bit using eg. the gcc
case range extension.
> + case 8:
> + case 9:
> + pipe_config->pipe_bpp = 8 * 3;
> + break;
> + case 10:
> + case 11:
> + pipe_config->pipe_bpp = 10 * 3;
> + break;
> + case 12:
> + case 13:
> + case 14:
> + case 15:
With the proposed min() we'd never get bpc > 12 here.
> + pipe_config->pipe_bpp = 12 * 3;
> + break;
> + case 16:
> + pipe_config->pipe_bpp = 16 * 3;
> + break;
> + default:
> + break;
Maybe just return an error here. I suppose it should never happen unless
there's some bogus displays out there that report < 6 bpc.
> }
> +
> + DRM_DEBUG_KMS("Limiting display bpp to %d\n", pipe_config->pipe_bpp);
Would be nice to include all the relevant information in this debug
print: original pipe_bpp, info->bpc*3, max_requested_bpc.
Maybe something like this would work to keep the code easy to read:
{
bpp = min(pipe_bpp, max_bpc*3);
switch (bpp) {
...
}
if (bpp != pipe_bpp) {
DRM_DEBUG_KMS(...);
pipe_bpp = bpp;
}
}
> }
>
> static int
> @@ -10898,8 +10906,7 @@ compute_baseline_pipe_bpp(struct intel_crtc *crtc,
> if (connector_state->crtc != &crtc->base)
> continue;
>
> - connected_sink_compute_bpp(to_intel_connector(connector),
> - pipe_config);
> + connected_sink_max_bpp(connector_state, pipe_config);
> }
>
> return bpp;
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 436c22de33b6..aefca1d9e87b 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5719,6 +5719,11 @@ intel_dp_add_properties(struct intel_dp *intel_dp, struct drm_connector *connect
> intel_attach_force_audio_property(connector);
>
> intel_attach_broadcast_rgb_property(connector);
> + if ((IS_G4X(dev_priv) || IS_VALLEYVIEW(dev_priv) ||
> + IS_CHERRYVIEW(dev_priv)))
Just HAS_GMCH_DISPLAY() will do here.
> + drm_connector_attach_max_bpc_property(connector, 8, 10);
> + else if (INTEL_GEN(dev_priv) >= 5)
> + drm_connector_attach_max_bpc_property(connector, 8, 12);
DP does support 6 bpc as well, so we may want to reduce the min to 6
here.
>
> if (intel_dp_is_edp(intel_dp)) {
> u32 allowed_scalers;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index a2dab0b6bde6..2b432c7e4f8a 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -2109,11 +2109,16 @@ static const struct drm_encoder_funcs intel_hdmi_enc_funcs = {
> static void
> intel_hdmi_add_properties(struct intel_hdmi *intel_hdmi, struct drm_connector *connector)
> {
> + struct drm_i915_private *dev_priv = to_i915(connector->dev);
> +
> intel_attach_force_audio_property(connector);
> intel_attach_broadcast_rgb_property(connector);
> intel_attach_aspect_ratio_property(connector);
> drm_connector_attach_content_type_property(connector);
> connector->state->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
> +
> + if (!HAS_GMCH_DISPLAY(dev_priv))
> + drm_connector_attach_max_bpc_property(connector, 8, 12);
> }
>
> /*
> --
> 2.9.3
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v8 1/2] drm: Add connector property to limit max bpc
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
2018-09-18 18:11 ` [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp Radhakrishna Sripada
2018-09-18 18:48 ` ✗ Fi.CI.SPARSE: warning for series starting with [v8,1/2] drm: Add connector property to limit max bpc Patchwork
@ 2018-09-18 18:51 ` Ville Syrjälä
2018-09-18 19:11 ` ✓ Fi.CI.BAT: success for series starting with [v8,1/2] " Patchwork
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Ville Syrjälä @ 2018-09-18 18:51 UTC (permalink / raw)
To: Radhakrishna Sripada
Cc: Daniel Vetter, intel-gfx, Kishore Kadiyala, dri-devel,
Rodrigo Vivi
On Tue, Sep 18, 2018 at 11:11:14AM -0700, Radhakrishna Sripada wrote:
> At times 12bpc HDMI cannot be driven due to faulty cables, dongles
> level shifters etc. To workaround them we may need to drive the output
> at a lower bpc. Currently the user space does not have a way to limit
> the bpc. The default bpc to be programmed is decided by the driver and
> is run against connector limitations.
>
> Creating a new connector property "max bpc" in order to limit the bpc.
> xrandr can make use of this connector property to make sure that bpc does
> not exceed the configured value. This property can be used by userspace to
> set the bpc.
>
> V2: Initialize max_bpc to satisfy kms_properties
> V3: Move the property to drm_connector
> V4: Split drm and i915 components(Ville)
> V5: Make the property per connector(Ville)
> V6: Compare the requested bpc to connector bpc(Daniel)
> Move the attach_property function to core(Ville)
> V7: Fix checkpatch warnings
> V8: Simplify the connector check code(Ville)
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Kishore Kadiyala <kishore.kadiyala@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
> drivers/gpu/drm/drm_atomic.c | 5 +++++
> drivers/gpu/drm/drm_atomic_helper.c | 4 ++++
> drivers/gpu/drm/drm_atomic_uapi.c | 4 ++++
> drivers/gpu/drm/drm_connector.c | 33 +++++++++++++++++++++++++++++++++
> include/drm/drm_connector.h | 20 ++++++++++++++++++++
> 5 files changed, 66 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 2870ae205237..dc76e89c04af 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -390,6 +390,7 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
> {
> struct drm_crtc_state *crtc_state;
> struct drm_writeback_job *writeback_job = state->writeback_job;
> + struct drm_display_info *info = &connector->display_info;
Can be const.
>
> if ((connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) || !writeback_job)
> return 0;
> @@ -417,6 +418,10 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
> return -EINVAL;
> }
>
> + state->max_bpc = info->bpc ?: 8;
> + if (connector->max_bpc_property)
> + state->max_bpc = min(state->max_bpc, state->max_requested_bpc);
Hopefully this logic is generic enough to work for most drivers.
I haven't actually checked what anyone else does with info->bpc.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> +
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 3cf1aa132778..d9ce8077fb6a 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -639,6 +639,10 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
> if (old_connector_state->link_status !=
> new_connector_state->link_status)
> new_crtc_state->connectors_changed = true;
> +
> + if (old_connector_state->max_requested_bpc !=
> + new_connector_state->max_requested_bpc)
> + new_crtc_state->connectors_changed = true;
> }
>
> if (funcs->atomic_check)
> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
> index d5b7f315098c..86ac33922b09 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -740,6 +740,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
>
> return set_out_fence_for_connector(state->state, connector,
> fence_ptr);
> + } else if (property == connector->max_bpc_property) {
> + state->max_requested_bpc = val;
> } else if (connector->funcs->atomic_set_property) {
> return connector->funcs->atomic_set_property(connector,
> state, property, val);
> @@ -804,6 +806,8 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
> *val = 0;
> } else if (property == config->writeback_out_fence_ptr_property) {
> *val = 0;
> + } else if (property == connector->max_bpc_property) {
> + *val = state->max_requested_bpc;
> } else if (connector->funcs->atomic_get_property) {
> return connector->funcs->atomic_get_property(connector,
> state, property, val);
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index 1e40e5decbe9..65e22c1b37a5 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1583,6 +1583,39 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
> EXPORT_SYMBOL(drm_connector_set_link_status_property);
>
> /**
> + * drm_connector_attach_max_bpc_property - attach "max bpc" property
> + * @connector: connector to attach max bpc property on.
> + * @min: The minimum bit depth supported by the connector.
> + * @max: The maximum bit depth supported by the connector.
> + *
> + * This is used to add support for limiting the bit depth on a connector.
> + *
> + * Returns:
> + * Zero on success, negative errno on failure.
> + */
> +int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
> + int min, int max)
> +{
> + struct drm_device *dev = connector->dev;
> + struct drm_property *prop;
> +
> + prop = connector->max_bpc_property;
> + if (!prop) {
> + prop = drm_property_create_range(dev, 0, "max bpc", min, max);
> + if (!prop)
> + return -ENOMEM;
> +
> + connector->max_bpc_property = prop;
> + }
> +
> + drm_object_attach_property(&connector->base, prop, max);
> + connector->state->max_requested_bpc = max;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(drm_connector_attach_max_bpc_property);
> +
> +/**
> * drm_connector_init_panel_orientation_property -
> * initialize the connecters panel_orientation property
> * @connector: connector for which to init the panel-orientation property.
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 91a877fa00cb..bfc3e698cda6 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -461,6 +461,18 @@ struct drm_connector_state {
> * drm_writeback_signal_completion()
> */
> struct drm_writeback_job *writeback_job;
> +
> + /**
> + * @max_requested_bpc: Connector property to limit the maximum bit
> + * depth of the pixels.
> + */
> + u8 max_requested_bpc;
> +
> + /**
> + * @max_bpc: Connector max_bpc based on the requested max_bpc property
> + * and the connector bpc limitations obtained from edid.
> + */
> + u8 max_bpc;
> };
>
> /**
> @@ -924,6 +936,12 @@ struct drm_connector {
> */
> struct drm_property_blob *path_blob_ptr;
>
> + /**
> + * @max_bpc_property: Default connector property for the max bpc to be
> + * driven out of the connector.
> + */
> + struct drm_property *max_bpc_property;
> +
> #define DRM_CONNECTOR_POLL_HPD (1 << 0)
> #define DRM_CONNECTOR_POLL_CONNECT (1 << 1)
> #define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2)
> @@ -1201,6 +1219,8 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
> uint64_t link_status);
> int drm_connector_init_panel_orientation_property(
> struct drm_connector *connector, int width, int height);
> +int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
> + int min, int max);
>
> /**
> * struct drm_tile_group - Tile group metadata
> --
> 2.9.3
--
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Fi.CI.BAT: success for series starting with [v8,1/2] drm: Add connector property to limit max bpc
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
` (2 preceding siblings ...)
2018-09-18 18:51 ` [PATCH v8 1/2] " Ville Syrjälä
@ 2018-09-18 19:11 ` Patchwork
2018-09-18 20:02 ` [PATCH v8 1/2] " Alex Deucher
2018-09-19 8:15 ` ✓ Fi.CI.IGT: success for series starting with [v8,1/2] " Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-09-18 19:11 UTC (permalink / raw)
To: Radhakrishna Sripada; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v8,1/2] drm: Add connector property to limit max bpc
URL : https://patchwork.freedesktop.org/series/49868/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4840 -> Patchwork_10216 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/49868/revisions/1/mbox/
== Known issues ==
Here are the changes found in Patchwork_10216 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@amdgpu/amd_prime@amd-to-i915:
fi-kbl-8809g: NOTRUN -> FAIL (fdo#107341)
igt@drv_module_reload@basic-reload-inject:
fi-bxt-dsi: PASS -> DMESG-WARN (fdo#107821, fdo#105538)
igt@gem_exec_suspend@basic-s4-devices:
fi-bdw-samus: NOTRUN -> INCOMPLETE (fdo#107773)
igt@kms_frontbuffer_tracking@basic:
fi-byt-clapper: PASS -> FAIL (fdo#103167)
igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362)
igt@kms_pipe_crc_basic@nonblocking-crc-pipe-c-frame-sequence:
fi-glk-dsi: PASS -> DMESG-WARN (fdo#105538) +26
igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence:
fi-bxt-dsi: PASS -> DMESG-WARN (fdo#105538) +25
==== Possible fixes ====
igt@gem_exec_suspend@basic-s3:
fi-bdw-samus: INCOMPLETE (fdo#107773) -> PASS
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#105538 https://bugs.freedesktop.org/show_bug.cgi?id=105538
fdo#107341 https://bugs.freedesktop.org/show_bug.cgi?id=107341
fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773
fdo#107821 https://bugs.freedesktop.org/show_bug.cgi?id=107821
== Participating hosts (50 -> 45) ==
Missing (5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-snb-2520m fi-hsw-4200u
== Build changes ==
* Linux: CI_DRM_4840 -> Patchwork_10216
CI_DRM_4840: eb5915292ad60c16f895c77967a1353c7ef87fef @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4646: d409cc6f234fbc0122c64be27ba85b5603658de5 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10216: ade381a025c3a7df99e4a36cc18c68a3ca628310 @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
ade381a025c3 drm/i915: Allow "max bpc" property to limit pipe_bpp
ba16fc9db4bf drm: Add connector property to limit max bpc
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10216/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v8 1/2] drm: Add connector property to limit max bpc
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
` (3 preceding siblings ...)
2018-09-18 19:11 ` ✓ Fi.CI.BAT: success for series starting with [v8,1/2] " Patchwork
@ 2018-09-18 20:02 ` Alex Deucher
2018-09-19 8:15 ` ✓ Fi.CI.IGT: success for series starting with [v8,1/2] " Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Alex Deucher @ 2018-09-18 20:02 UTC (permalink / raw)
To: radhakrishna.sripada
Cc: manasi.d.navare, Leo (Sunpeng) Li, Daniel Vetter,
Intel Graphics Development, Maling list - DRI developers,
stanislav.lisovskiy, kishore.kadiyala, Rodrigo Vivi
+ Harry, Leo
This would definitely be useful. We ran into a lot of issues when we
enabled >8 bpc support.
On Tue, Sep 18, 2018 at 2:10 PM Radhakrishna Sripada
<radhakrishna.sripada@intel.com> wrote:
>
> At times 12bpc HDMI cannot be driven due to faulty cables, dongles
> level shifters etc. To workaround them we may need to drive the output
> at a lower bpc. Currently the user space does not have a way to limit
> the bpc. The default bpc to be programmed is decided by the driver and
> is run against connector limitations.
>
> Creating a new connector property "max bpc" in order to limit the bpc.
> xrandr can make use of this connector property to make sure that bpc does
> not exceed the configured value. This property can be used by userspace to
> set the bpc.
>
> V2: Initialize max_bpc to satisfy kms_properties
> V3: Move the property to drm_connector
> V4: Split drm and i915 components(Ville)
> V5: Make the property per connector(Ville)
> V6: Compare the requested bpc to connector bpc(Daniel)
> Move the attach_property function to core(Ville)
> V7: Fix checkpatch warnings
> V8: Simplify the connector check code(Ville)
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
> Cc: Kishore Kadiyala <kishore.kadiyala@intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Cc: Manasi Navare <manasi.d.navare@intel.com>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
> ---
> drivers/gpu/drm/drm_atomic.c | 5 +++++
> drivers/gpu/drm/drm_atomic_helper.c | 4 ++++
> drivers/gpu/drm/drm_atomic_uapi.c | 4 ++++
> drivers/gpu/drm/drm_connector.c | 33 +++++++++++++++++++++++++++++++++
> include/drm/drm_connector.h | 20 ++++++++++++++++++++
> 5 files changed, 66 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 2870ae205237..dc76e89c04af 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -390,6 +390,7 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
> {
> struct drm_crtc_state *crtc_state;
> struct drm_writeback_job *writeback_job = state->writeback_job;
> + struct drm_display_info *info = &connector->display_info;
>
> if ((connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK) || !writeback_job)
> return 0;
> @@ -417,6 +418,10 @@ static int drm_atomic_connector_check(struct drm_connector *connector,
> return -EINVAL;
> }
>
> + state->max_bpc = info->bpc ?: 8;
> + if (connector->max_bpc_property)
> + state->max_bpc = min(state->max_bpc, state->max_requested_bpc);
> +
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 3cf1aa132778..d9ce8077fb6a 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -639,6 +639,10 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
> if (old_connector_state->link_status !=
> new_connector_state->link_status)
> new_crtc_state->connectors_changed = true;
> +
> + if (old_connector_state->max_requested_bpc !=
> + new_connector_state->max_requested_bpc)
> + new_crtc_state->connectors_changed = true;
> }
>
> if (funcs->atomic_check)
> diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
> index d5b7f315098c..86ac33922b09 100644
> --- a/drivers/gpu/drm/drm_atomic_uapi.c
> +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> @@ -740,6 +740,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
>
> return set_out_fence_for_connector(state->state, connector,
> fence_ptr);
> + } else if (property == connector->max_bpc_property) {
> + state->max_requested_bpc = val;
> } else if (connector->funcs->atomic_set_property) {
> return connector->funcs->atomic_set_property(connector,
> state, property, val);
> @@ -804,6 +806,8 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
> *val = 0;
> } else if (property == config->writeback_out_fence_ptr_property) {
> *val = 0;
> + } else if (property == connector->max_bpc_property) {
> + *val = state->max_requested_bpc;
> } else if (connector->funcs->atomic_get_property) {
> return connector->funcs->atomic_get_property(connector,
> state, property, val);
> diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
> index 1e40e5decbe9..65e22c1b37a5 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -1583,6 +1583,39 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
> EXPORT_SYMBOL(drm_connector_set_link_status_property);
>
> /**
> + * drm_connector_attach_max_bpc_property - attach "max bpc" property
> + * @connector: connector to attach max bpc property on.
> + * @min: The minimum bit depth supported by the connector.
> + * @max: The maximum bit depth supported by the connector.
> + *
> + * This is used to add support for limiting the bit depth on a connector.
> + *
> + * Returns:
> + * Zero on success, negative errno on failure.
> + */
> +int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
> + int min, int max)
> +{
> + struct drm_device *dev = connector->dev;
> + struct drm_property *prop;
> +
> + prop = connector->max_bpc_property;
> + if (!prop) {
> + prop = drm_property_create_range(dev, 0, "max bpc", min, max);
> + if (!prop)
> + return -ENOMEM;
> +
> + connector->max_bpc_property = prop;
> + }
> +
> + drm_object_attach_property(&connector->base, prop, max);
> + connector->state->max_requested_bpc = max;
> +
> + return 0;
> +}
> +EXPORT_SYMBOL(drm_connector_attach_max_bpc_property);
> +
> +/**
> * drm_connector_init_panel_orientation_property -
> * initialize the connecters panel_orientation property
> * @connector: connector for which to init the panel-orientation property.
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index 91a877fa00cb..bfc3e698cda6 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -461,6 +461,18 @@ struct drm_connector_state {
> * drm_writeback_signal_completion()
> */
> struct drm_writeback_job *writeback_job;
> +
> + /**
> + * @max_requested_bpc: Connector property to limit the maximum bit
> + * depth of the pixels.
> + */
> + u8 max_requested_bpc;
> +
> + /**
> + * @max_bpc: Connector max_bpc based on the requested max_bpc property
> + * and the connector bpc limitations obtained from edid.
> + */
> + u8 max_bpc;
> };
>
> /**
> @@ -924,6 +936,12 @@ struct drm_connector {
> */
> struct drm_property_blob *path_blob_ptr;
>
> + /**
> + * @max_bpc_property: Default connector property for the max bpc to be
> + * driven out of the connector.
> + */
> + struct drm_property *max_bpc_property;
> +
> #define DRM_CONNECTOR_POLL_HPD (1 << 0)
> #define DRM_CONNECTOR_POLL_CONNECT (1 << 1)
> #define DRM_CONNECTOR_POLL_DISCONNECT (1 << 2)
> @@ -1201,6 +1219,8 @@ void drm_connector_set_link_status_property(struct drm_connector *connector,
> uint64_t link_status);
> int drm_connector_init_panel_orientation_property(
> struct drm_connector *connector, int width, int height);
> +int drm_connector_attach_max_bpc_property(struct drm_connector *connector,
> + int min, int max);
>
> /**
> * struct drm_tile_group - Tile group metadata
> --
> 2.9.3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* ✓ Fi.CI.IGT: success for series starting with [v8,1/2] drm: Add connector property to limit max bpc
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
` (4 preceding siblings ...)
2018-09-18 20:02 ` [PATCH v8 1/2] " Alex Deucher
@ 2018-09-19 8:15 ` Patchwork
5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2018-09-19 8:15 UTC (permalink / raw)
To: Radhakrishna Sripada; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v8,1/2] drm: Add connector property to limit max bpc
URL : https://patchwork.freedesktop.org/series/49868/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4840_full -> Patchwork_10216_full =
== Summary - SUCCESS ==
No regressions found.
== Known issues ==
Here are the changes found in Patchwork_10216_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_suspend@debugfs-reader:
shard-apl: PASS -> INCOMPLETE (fdo#103927)
igt@drv_suspend@shrink:
shard-glk: PASS -> INCOMPLETE (k.org#198133, fdo#106886, fdo#103359)
igt@gem_userptr_blits@readonly-pwrite-unsync:
shard-glk: PASS -> DMESG-WARN (fdo#105763, fdo#106538) +1
igt@kms_chv_cursor_fail@pipe-a-64x64-bottom-edge:
shard-glk: PASS -> FAIL (fdo#104671)
igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-xtiled:
shard-glk: PASS -> FAIL (fdo#103184)
igt@syncobj_wait@multi-wait-all-for-submit-submitted:
shard-snb: PASS -> INCOMPLETE (fdo#105411)
==== Possible fixes ====
igt@drv_suspend@shrink:
shard-hsw: INCOMPLETE (fdo#103540, fdo#106886) -> PASS
igt@kms_busy@extended-modeset-hang-newfb-render-b:
shard-kbl: DMESG-WARN (fdo#107956) -> PASS
shard-snb: DMESG-WARN (fdo#107956) -> PASS
igt@kms_cursor_legacy@cursorb-vs-flipb-toggle:
shard-glk: DMESG-WARN (fdo#105763, fdo#106538) -> PASS
igt@kms_draw_crc@draw-method-rgb565-render-untiled:
shard-apl: DMESG-FAIL (fdo#105602, fdo#103558) -> SKIP
igt@kms_setmode@basic:
shard-kbl: FAIL (fdo#99912) -> PASS
fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#104671 https://bugs.freedesktop.org/show_bug.cgi?id=104671
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* Linux: CI_DRM_4840 -> Patchwork_10216
CI_DRM_4840: eb5915292ad60c16f895c77967a1353c7ef87fef @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4646: d409cc6f234fbc0122c64be27ba85b5603658de5 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_10216: ade381a025c3a7df99e4a36cc18c68a3ca628310 @ 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_10216/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-09-19 8:15 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-18 18:11 [PATCH v8 1/2] drm: Add connector property to limit max bpc Radhakrishna Sripada
2018-09-18 18:11 ` [PATCH v8 2/2] drm/i915: Allow "max bpc" property to limit pipe_bpp Radhakrishna Sripada
2018-09-18 18:50 ` Ville Syrjälä
2018-09-18 18:48 ` ✗ Fi.CI.SPARSE: warning for series starting with [v8,1/2] drm: Add connector property to limit max bpc Patchwork
2018-09-18 18:51 ` [PATCH v8 1/2] " Ville Syrjälä
2018-09-18 19:11 ` ✓ Fi.CI.BAT: success for series starting with [v8,1/2] " Patchwork
2018-09-18 20:02 ` [PATCH v8 1/2] " Alex Deucher
2018-09-19 8:15 ` ✓ Fi.CI.IGT: success for series starting with [v8,1/2] " Patchwork
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).