* [PATCH 00/11] drm/i915: Some plane init cleanups
@ 2018-03-05 16:50 Ville Syrjala
2018-03-05 16:50 ` [PATCH 01/11] drm/i915: Constify intel_plane_funcs Ville Syrjala
` (16 more replies)
0 siblings, 17 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Attempt at cleaning up some of plane init stuff. The main attraction is
removing some of the code duplication in SKL+ "primary" vs. "sprite" init.
Ville Syrjälä (11):
drm/i915: Constify intel_plane_funcs
drm/i915: Fix tabs vs. spaces
drm/i915: Populate possible_crtcs for primary/cursor planes
drm/i915: Don't populate plane->i9xx_plane for sprites
drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
drm/i915: Disallow plane scaling with specific pixel formats
drm/i915: Add missing pixel formats for skl+ "sprites"
drm/i915: Move plane_state->scaler_id initialization into
intel_create_plane_state()
drm/i915: Introduce intel_plane_alloc()
drm/i915: Extract skl_universal_plane_init()
drm/i915: s/intel_plane/plane/ in sprite init
drivers/gpu/drm/i915/intel_atomic_plane.c | 1 +
drivers/gpu/drm/i915/intel_display.c | 184 ++++---------------
drivers/gpu/drm/i915/intel_drv.h | 12 +-
drivers/gpu/drm/i915/intel_sprite.c | 292 +++++++++++++++++++-----------
4 files changed, 237 insertions(+), 252 deletions(-)
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 01/11] drm/i915: Constify intel_plane_funcs
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
@ 2018-03-05 16:50 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 02/11] drm/i915: Fix tabs vs. spaces Ville Syrjala
` (15 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
intel_plane funcs can be cosnt. Make it so.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index fb08590b4d40..f28c0bef89d1 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13095,7 +13095,7 @@ static bool intel_cursor_plane_format_mod_supported(struct drm_plane *plane,
return modifier == DRM_FORMAT_MOD_LINEAR && format == DRM_FORMAT_ARGB8888;
}
-static struct drm_plane_funcs intel_plane_funcs = {
+static const struct drm_plane_funcs intel_plane_funcs = {
.update_plane = drm_atomic_helper_update_plane,
.disable_plane = drm_atomic_helper_disable_plane,
.destroy = intel_plane_destroy,
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 02/11] drm/i915: Fix tabs vs. spaces
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
2018-03-05 16:50 ` [PATCH 01/11] drm/i915: Constify intel_plane_funcs Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 03/11] drm/i915: Populate possible_crtcs for primary/cursor planes Ville Syrjala
` (14 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The sprite code has a bunch of spaces where tabs should be used. Fix it
up.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_sprite.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index dbdcf85032df..d9954e440396 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1357,8 +1357,8 @@ static bool skl_mod_supported(uint32_t format, uint64_t modifier)
}
static bool intel_sprite_plane_format_mod_supported(struct drm_plane *plane,
- uint32_t format,
- uint64_t modifier)
+ uint32_t format,
+ uint64_t modifier)
{
struct drm_i915_private *dev_priv = to_i915(plane->dev);
@@ -1380,14 +1380,14 @@ static bool intel_sprite_plane_format_mod_supported(struct drm_plane *plane,
}
static const struct drm_plane_funcs intel_sprite_plane_funcs = {
- .update_plane = drm_atomic_helper_update_plane,
- .disable_plane = drm_atomic_helper_disable_plane,
- .destroy = intel_plane_destroy,
- .atomic_get_property = intel_plane_atomic_get_property,
- .atomic_set_property = intel_plane_atomic_set_property,
- .atomic_duplicate_state = intel_plane_duplicate_state,
- .atomic_destroy_state = intel_plane_destroy_state,
- .format_mod_supported = intel_sprite_plane_format_mod_supported,
+ .update_plane = drm_atomic_helper_update_plane,
+ .disable_plane = drm_atomic_helper_disable_plane,
+ .destroy = intel_plane_destroy,
+ .atomic_get_property = intel_plane_atomic_get_property,
+ .atomic_set_property = intel_plane_atomic_set_property,
+ .atomic_duplicate_state = intel_plane_duplicate_state,
+ .atomic_destroy_state = intel_plane_destroy_state,
+ .format_mod_supported = intel_sprite_plane_format_mod_supported,
};
bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 03/11] drm/i915: Populate possible_crtcs for primary/cursor planes
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
2018-03-05 16:50 ` [PATCH 01/11] drm/i915: Constify intel_plane_funcs Ville Syrjala
2018-03-05 16:51 ` [PATCH 02/11] drm/i915: Fix tabs vs. spaces Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 04/11] drm/i915: Don't populate plane->i9xx_plane for sprites Ville Syrjala
` (13 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
We're currently not providing the possible_crtcs mask to
drm_universal_plane_init() for primary/cursor planes. While that does
work on account of drm_crtc_init_with_planes() filling those up
for us, it's inconsisten with what we're doing for sprite planes.
Let's just always pass the possible_crtcs bitmask to
drm_universal_plane_init(). This does assume that crtc->index
== pipe. But we're already making that assumption elsewhere so
it doesn't seem like a very big sin here.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 14 ++++++++++----
drivers/gpu/drm/i915/intel_sprite.c | 2 +-
2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f28c0bef89d1..132640258491 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13263,6 +13263,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
struct intel_plane_state *state = NULL;
const uint32_t *intel_primary_formats;
unsigned int supported_rotations;
+ unsigned int possible_crtcs;
unsigned int num_formats;
const uint64_t *modifiers;
int ret;
@@ -13345,23 +13346,25 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
primary->get_hw_state = i9xx_plane_get_hw_state;
}
+ possible_crtcs = BIT(pipe);
+
if (INTEL_GEN(dev_priv) >= 9)
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- 0, &intel_plane_funcs,
+ possible_crtcs, &intel_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
"plane 1%c", pipe_name(pipe));
else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv))
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- 0, &intel_plane_funcs,
+ possible_crtcs, &intel_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
"primary %c", pipe_name(pipe));
else
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- 0, &intel_plane_funcs,
+ possible_crtcs, &intel_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
@@ -13421,6 +13424,7 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
{
struct intel_plane *cursor = NULL;
struct intel_plane_state *state = NULL;
+ unsigned int possible_crtcs;
int ret;
cursor = kzalloc(sizeof(*cursor), GFP_KERNEL);
@@ -13462,8 +13466,10 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
if (IS_I845G(dev_priv) || IS_I865G(dev_priv) || HAS_CUR_FBC(dev_priv))
cursor->cursor.size = ~0;
+ possible_crtcs = BIT(pipe);
+
ret = drm_universal_plane_init(&dev_priv->drm, &cursor->base,
- 0, &intel_cursor_plane_funcs,
+ possible_crtcs, &intel_cursor_plane_funcs,
intel_cursor_formats,
ARRAY_SIZE(intel_cursor_formats),
cursor_format_modifiers,
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index d9954e440396..73e39083429f 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1512,7 +1512,7 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
intel_plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, intel_plane->id);
intel_plane->check_plane = intel_check_sprite_plane;
- possible_crtcs = (1 << pipe);
+ possible_crtcs = BIT(pipe);
if (INTEL_GEN(dev_priv) >= 9)
ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 04/11] drm/i915: Don't populate plane->i9xx_plane for sprites
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (2 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 03/11] drm/i915: Populate possible_crtcs for primary/cursor planes Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 05/11] drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes Ville Syrjala
` (12 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
enum i9xx_plane_id namespace is not valid for any sprite plane,
so let's not even populate plane->i9xx_plane.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_sprite.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 73e39083429f..8d0dbf53a1e2 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1507,7 +1507,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
}
intel_plane->pipe = pipe;
- intel_plane->i9xx_plane = plane;
intel_plane->id = PLANE_SPRITE0 + plane;
intel_plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, intel_plane->id);
intel_plane->check_plane = intel_check_sprite_plane;
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 05/11] drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (3 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 04/11] drm/i915: Don't populate plane->i9xx_plane for sprites Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-06 7:49 ` Joonas Lahtinen
2018-03-05 16:51 ` [PATCH 06/11] drm/i915: Disallow plane scaling with specific pixel formats Ville Syrjala
` (11 subsequent siblings)
16 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
All CNL universal planes support horizontal mirroring. Currently
we expose the capability only for the primary plane. Expose it
for the overlay planes as well.
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_sprite.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 8d0dbf53a1e2..af7470c6bd62 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1493,7 +1493,12 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
}
}
- if (INTEL_GEN(dev_priv) >= 9) {
+ if (INTEL_GEN(dev_priv) >= 10) {
+ supported_rotations =
+ DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
+ DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 |
+ DRM_MODE_REFLECT_X;
+ } else if (INTEL_GEN(dev_priv) >= 9) {
supported_rotations =
DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 06/11] drm/i915: Disallow plane scaling with specific pixel formats
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (4 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 05/11] drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 07/11] drm/i915: Add missing pixel formats for skl+ "sprites" Ville Syrjala
` (10 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Plane scaling is not supported with specific pixel formats. Disallow
plane scaling when such a format is used. Currently the only such
pixel format we expose is C8, but in case we add more in the future
let's make it easy to deal with them.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 2 +-
drivers/gpu/drm/i915/intel_drv.h | 1 +
drivers/gpu/drm/i915/intel_sprite.c | 33 ++++++++++++++++++++++++---------
3 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 132640258491..431d07c2aacd 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12882,7 +12882,7 @@ intel_check_primary_plane(struct intel_plane *plane,
if (INTEL_GEN(dev_priv) >= 9) {
/* use scaler when colorkey is not required */
- if (!state->ckey.flags) {
+ if (!state->ckey.flags && intel_fb_scalable(state->base.fb)) {
min_scale = 1;
max_scale = skl_max_scale(to_intel_crtc(crtc), crtc_state);
}
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 1a7c5addcec3..b728ac6726b0 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -2027,6 +2027,7 @@ bool intel_sdvo_init(struct drm_i915_private *dev_priv,
/* intel_sprite.c */
bool intel_format_is_yuv(u32 format);
+bool intel_fb_scalable(const struct drm_framebuffer *fb);
int intel_usecs_to_scanlines(const struct drm_display_mode *adjusted_mode,
int usecs);
struct intel_plane *intel_sprite_plane_create(struct drm_i915_private *dev_priv,
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index af7470c6bd62..6e4bb721d71c 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -927,6 +927,19 @@ g4x_plane_get_hw_state(struct intel_plane *plane)
return ret;
}
+bool intel_fb_scalable(const struct drm_framebuffer *fb)
+{
+ if (!fb)
+ return false;
+
+ switch (fb->format->format) {
+ case DRM_FORMAT_C8:
+ return false;
+ default:
+ return true;
+ }
+}
+
static int
intel_check_sprite_plane(struct intel_plane *plane,
struct intel_crtc_state *crtc_state,
@@ -968,21 +981,23 @@ intel_check_sprite_plane(struct intel_plane *plane,
}
/* setup can_scale, min_scale, max_scale */
+ can_scale = false;
+ min_scale = DRM_PLANE_HELPER_NO_SCALING;
+ max_scale = DRM_PLANE_HELPER_NO_SCALING;
+
if (INTEL_GEN(dev_priv) >= 9) {
/* use scaler when colorkey is not required */
- if (!state->ckey.flags) {
- can_scale = 1;
+ if (!state->ckey.flags && intel_fb_scalable(fb)) {
+ can_scale = true;
min_scale = 1;
max_scale = skl_max_scale(crtc, crtc_state);
- } else {
- can_scale = 0;
- min_scale = DRM_PLANE_HELPER_NO_SCALING;
- max_scale = DRM_PLANE_HELPER_NO_SCALING;
}
} else {
- can_scale = plane->can_scale;
- max_scale = plane->max_downscale << 16;
- min_scale = plane->can_scale ? 1 : (1 << 16);
+ if (intel_fb_scalable(fb)) {
+ can_scale = plane->can_scale;
+ max_scale = plane->max_downscale << 16;
+ min_scale = plane->can_scale ? 1 : (1 << 16);
+ }
}
/*
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 07/11] drm/i915: Add missing pixel formats for skl+ "sprites"
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (5 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 06/11] drm/i915: Disallow plane scaling with specific pixel formats Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 08/11] drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state() Ville Syrjala
` (9 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
All SKL+ universal planes support the same set of formats (with the
exception of NV12 which we don't expose yet). Make the format lists
for primary and sprites the same.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_sprite.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 6e4bb721d71c..9b0789ccd103 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1251,12 +1251,15 @@ static const uint32_t vlv_plane_formats[] = {
DRM_FORMAT_VYUY,
};
-static uint32_t skl_plane_formats[] = {
+static const uint32_t skl_plane_formats[] = {
+ DRM_FORMAT_C8,
DRM_FORMAT_RGB565,
- DRM_FORMAT_ABGR8888,
- DRM_FORMAT_ARGB8888,
- DRM_FORMAT_XBGR8888,
DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_XBGR8888,
+ DRM_FORMAT_ARGB8888,
+ DRM_FORMAT_ABGR8888,
+ DRM_FORMAT_XRGB2101010,
+ DRM_FORMAT_XBGR2101010,
DRM_FORMAT_YUYV,
DRM_FORMAT_YVYU,
DRM_FORMAT_UYVY,
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 08/11] drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state()
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (6 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 07/11] drm/i915: Add missing pixel formats for skl+ "sprites" Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 09/11] drm/i915: Introduce intel_plane_alloc() Ville Syrjala
` (8 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
No point in having each caller of intel_create_plane_state() initialize
the scaler_id to -1. Instead just do it in intel_create_plane_state().
Previously we left scaler_id at 0 for pre-SKL platforms, but I can't
see how initializing it to -1 always would cause any harm.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_atomic_plane.c | 1 +
drivers/gpu/drm/i915/intel_display.c | 7 +------
drivers/gpu/drm/i915/intel_sprite.c | 1 -
3 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
index 7481ce85746b..860ade4fc322 100644
--- a/drivers/gpu/drm/i915/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
@@ -56,6 +56,7 @@ intel_create_plane_state(struct drm_plane *plane)
state->base.plane = plane;
state->base.rotation = DRM_MODE_ROTATE_0;
+ state->scaler_id = -1;
return state;
}
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 431d07c2aacd..773aa6247cd8 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13284,10 +13284,8 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
primary->can_scale = false;
primary->max_downscale = 1;
- if (INTEL_GEN(dev_priv) >= 9) {
+ if (INTEL_GEN(dev_priv) >= 9)
primary->can_scale = true;
- state->scaler_id = -1;
- }
primary->pipe = pipe;
/*
* On gen2/3 only plane A can do FBC, but the panel fitter and LVDS
@@ -13484,9 +13482,6 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
DRM_MODE_ROTATE_0 |
DRM_MODE_ROTATE_180);
- if (INTEL_GEN(dev_priv) >= 9)
- state->scaler_id = -1;
-
drm_plane_helper_add(&cursor->base, &intel_plane_helper_funcs);
return cursor;
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 9b0789ccd103..5402124d9f97 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1453,7 +1453,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
if (INTEL_GEN(dev_priv) >= 9) {
intel_plane->can_scale = true;
- state->scaler_id = -1;
intel_plane->update_plane = skl_update_plane;
intel_plane->disable_plane = skl_disable_plane;
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 09/11] drm/i915: Introduce intel_plane_alloc()
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (7 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 08/11] drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state() Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 16:51 ` [PATCH 10/11] drm/i915: Extract skl_universal_plane_init() Ville Syrjala
` (7 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Pull the common plane+plane_state allocation into a small helper.
Reduces the amount of boilerplate in the plane initialization
functions.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 44 ++++++++-----------------------
drivers/gpu/drm/i915/intel_drv.h | 3 +++
drivers/gpu/drm/i915/intel_sprite.c | 50 ++++++++++++++++++++++++------------
3 files changed, 47 insertions(+), 50 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 773aa6247cd8..6a3a03db41b4 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13259,8 +13259,7 @@ static bool skl_plane_has_fbc(struct drm_i915_private *dev_priv,
static struct intel_plane *
intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
{
- struct intel_plane *primary = NULL;
- struct intel_plane_state *state = NULL;
+ struct intel_plane *primary;
const uint32_t *intel_primary_formats;
unsigned int supported_rotations;
unsigned int possible_crtcs;
@@ -13268,19 +13267,9 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
const uint64_t *modifiers;
int ret;
- primary = kzalloc(sizeof(*primary), GFP_KERNEL);
- if (!primary) {
- ret = -ENOMEM;
- goto fail;
- }
-
- state = intel_create_plane_state(&primary->base);
- if (!state) {
- ret = -ENOMEM;
- goto fail;
- }
-
- primary->base.state = &state->base;
+ primary = intel_plane_alloc();
+ if (IS_ERR(primary))
+ return primary;
primary->can_scale = false;
primary->max_downscale = 1;
@@ -13410,8 +13399,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
return primary;
fail:
- kfree(state);
- kfree(primary);
+ intel_plane_free(primary);
return ERR_PTR(ret);
}
@@ -13420,24 +13408,13 @@ static struct intel_plane *
intel_cursor_plane_create(struct drm_i915_private *dev_priv,
enum pipe pipe)
{
- struct intel_plane *cursor = NULL;
- struct intel_plane_state *state = NULL;
unsigned int possible_crtcs;
+ struct intel_plane *cursor;
int ret;
- cursor = kzalloc(sizeof(*cursor), GFP_KERNEL);
- if (!cursor) {
- ret = -ENOMEM;
- goto fail;
- }
-
- state = intel_create_plane_state(&cursor->base);
- if (!state) {
- ret = -ENOMEM;
- goto fail;
- }
-
- cursor->base.state = &state->base;
+ cursor = intel_plane_alloc();
+ if (IS_ERR(cursor))
+ return cursor;
cursor->can_scale = false;
cursor->max_downscale = 1;
@@ -13487,8 +13464,7 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
return cursor;
fail:
- kfree(state);
- kfree(cursor);
+ intel_plane_free(cursor);
return ERR_PTR(ret);
}
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index b728ac6726b0..d269d6263833 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -2043,6 +2043,9 @@ void skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc);
bool skl_plane_get_hw_state(struct intel_plane *plane);
bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
enum pipe pipe, enum plane_id plane_id);
+struct intel_plane *intel_plane_alloc(void);
+void intel_plane_free(struct intel_plane *plane);
+
/* intel_tv.c */
void intel_tv_init(struct drm_i915_private *dev_priv);
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 5402124d9f97..e6092f12e653 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1425,12 +1425,40 @@ bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
plane_id == PLANE_SPRITE0);
}
+struct intel_plane *intel_plane_alloc(void)
+{
+ struct intel_plane_state *plane_state;
+ struct intel_plane *plane;
+
+ plane = kzalloc(sizeof(*plane), GFP_KERNEL);
+ if (!plane)
+ return ERR_PTR(-ENOMEM);
+
+ plane_state = intel_create_plane_state(&plane->base);
+ if (!plane_state) {
+ kfree(plane);
+ return ERR_PTR(-ENOMEM);
+ }
+
+ plane->base.state = &plane_state->base;
+
+ return plane;
+}
+
+void intel_plane_free(struct intel_plane *plane)
+{
+ struct intel_plane_state *plane_state =
+ to_intel_plane_state(plane->base.state);
+
+ kfree(plane_state);
+ kfree(plane);
+}
+
struct intel_plane *
intel_sprite_plane_create(struct drm_i915_private *dev_priv,
enum pipe pipe, int plane)
{
- struct intel_plane *intel_plane = NULL;
- struct intel_plane_state *state = NULL;
+ struct intel_plane *intel_plane;
unsigned long possible_crtcs;
const uint32_t *plane_formats;
const uint64_t *modifiers;
@@ -1438,18 +1466,9 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
int num_plane_formats;
int ret;
- intel_plane = kzalloc(sizeof(*intel_plane), GFP_KERNEL);
- if (!intel_plane) {
- ret = -ENOMEM;
- goto fail;
- }
-
- state = intel_create_plane_state(&intel_plane->base);
- if (!state) {
- ret = -ENOMEM;
- goto fail;
- }
- intel_plane->base.state = &state->base;
+ intel_plane = intel_plane_alloc();
+ if (IS_ERR(intel_plane))
+ return intel_plane;
if (INTEL_GEN(dev_priv) >= 9) {
intel_plane->can_scale = true;
@@ -1569,8 +1588,7 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
return intel_plane;
fail:
- kfree(state);
- kfree(intel_plane);
+ intel_plane_free(intel_plane);
return ERR_PTR(ret);
}
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 10/11] drm/i915: Extract skl_universal_plane_init()
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (8 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 09/11] drm/i915: Introduce intel_plane_alloc() Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-19 13:50 ` [PATCH v2 " Ville Syrjala
2018-03-05 16:51 ` [PATCH 11/11] drm/i915: s/intel_plane/plane/ in sprite init Ville Syrjala
` (6 subsequent siblings)
16 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
There's not much point in following the primary vs. sprite
for the SKL+ universal plane init code. The only difference is
of our own doing in the form of the .check_plane(). Let's make
a small exception for that little detail and otherwise share
the same code to initialize all the universal planes.
Eventually we should eliminate the mess around .check_plane()
as well, but for now let's be happy with some code reduction.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 129 ++++++---------------------------
drivers/gpu/drm/i915/intel_drv.h | 8 +--
drivers/gpu/drm/i915/intel_sprite.c | 133 ++++++++++++++++++++++++-----------
3 files changed, 117 insertions(+), 153 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 6a3a03db41b4..411722721488 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -73,39 +73,6 @@ static const uint64_t i9xx_format_modifiers[] = {
DRM_FORMAT_MOD_INVALID
};
-static const uint32_t skl_primary_formats[] = {
- DRM_FORMAT_C8,
- DRM_FORMAT_RGB565,
- DRM_FORMAT_XRGB8888,
- DRM_FORMAT_XBGR8888,
- DRM_FORMAT_ARGB8888,
- DRM_FORMAT_ABGR8888,
- DRM_FORMAT_XRGB2101010,
- DRM_FORMAT_XBGR2101010,
- DRM_FORMAT_YUYV,
- DRM_FORMAT_YVYU,
- DRM_FORMAT_UYVY,
- DRM_FORMAT_VYUY,
-};
-
-static const uint64_t skl_format_modifiers_noccs[] = {
- I915_FORMAT_MOD_Yf_TILED,
- I915_FORMAT_MOD_Y_TILED,
- I915_FORMAT_MOD_X_TILED,
- DRM_FORMAT_MOD_LINEAR,
- DRM_FORMAT_MOD_INVALID
-};
-
-static const uint64_t skl_format_modifiers_ccs[] = {
- I915_FORMAT_MOD_Yf_TILED_CCS,
- I915_FORMAT_MOD_Y_TILED_CCS,
- I915_FORMAT_MOD_Yf_TILED,
- I915_FORMAT_MOD_Y_TILED,
- I915_FORMAT_MOD_X_TILED,
- DRM_FORMAT_MOD_LINEAR,
- DRM_FORMAT_MOD_INVALID
-};
-
/* Cursor formats */
static const uint32_t intel_cursor_formats[] = {
DRM_FORMAT_ARGB8888,
@@ -13032,41 +12999,9 @@ static bool i965_mod_supported(uint32_t format, uint64_t modifier)
}
}
-static bool skl_mod_supported(uint32_t format, uint64_t modifier)
-{
- switch (format) {
- case DRM_FORMAT_XRGB8888:
- case DRM_FORMAT_XBGR8888:
- case DRM_FORMAT_ARGB8888:
- case DRM_FORMAT_ABGR8888:
- if (modifier == I915_FORMAT_MOD_Yf_TILED_CCS ||
- modifier == I915_FORMAT_MOD_Y_TILED_CCS)
- return true;
- /* fall through */
- case DRM_FORMAT_RGB565:
- case DRM_FORMAT_XRGB2101010:
- case DRM_FORMAT_XBGR2101010:
- case DRM_FORMAT_YUYV:
- case DRM_FORMAT_YVYU:
- case DRM_FORMAT_UYVY:
- case DRM_FORMAT_VYUY:
- if (modifier == I915_FORMAT_MOD_Yf_TILED)
- return true;
- /* fall through */
- case DRM_FORMAT_C8:
- if (modifier == DRM_FORMAT_MOD_LINEAR ||
- modifier == I915_FORMAT_MOD_X_TILED ||
- modifier == I915_FORMAT_MOD_Y_TILED)
- return true;
- /* fall through */
- default:
- return false;
- }
-}
-
-static bool intel_primary_plane_format_mod_supported(struct drm_plane *plane,
- uint32_t format,
- uint64_t modifier)
+static bool i9xx_plane_format_mod_supported(struct drm_plane *plane,
+ uint32_t format,
+ uint64_t modifier)
{
struct drm_i915_private *dev_priv = to_i915(plane->dev);
@@ -13077,9 +13012,7 @@ static bool intel_primary_plane_format_mod_supported(struct drm_plane *plane,
modifier != DRM_FORMAT_MOD_LINEAR)
return false;
- if (INTEL_GEN(dev_priv) >= 9)
- return skl_mod_supported(format, modifier);
- else if (INTEL_GEN(dev_priv) >= 4)
+ if (INTEL_GEN(dev_priv) >= 4)
return i965_mod_supported(format, modifier);
else
return i8xx_mod_supported(format, modifier);
@@ -13095,7 +13028,7 @@ static bool intel_cursor_plane_format_mod_supported(struct drm_plane *plane,
return modifier == DRM_FORMAT_MOD_LINEAR && format == DRM_FORMAT_ARGB8888;
}
-static const struct drm_plane_funcs intel_plane_funcs = {
+static const struct drm_plane_funcs i9xx_plane_funcs = {
.update_plane = drm_atomic_helper_update_plane,
.disable_plane = drm_atomic_helper_disable_plane,
.destroy = intel_plane_destroy,
@@ -13103,7 +13036,7 @@ static const struct drm_plane_funcs intel_plane_funcs = {
.atomic_set_property = intel_plane_atomic_set_property,
.atomic_duplicate_state = intel_plane_duplicate_state,
.atomic_destroy_state = intel_plane_destroy_state,
- .format_mod_supported = intel_primary_plane_format_mod_supported,
+ .format_mod_supported = i9xx_plane_format_mod_supported,
};
static int
@@ -13267,6 +13200,18 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
const uint64_t *modifiers;
int ret;
+ if (INTEL_GEN(dev_priv) >= 9) {
+ primary = skl_universal_plane_create(dev_priv, pipe,
+ PLANE_PRIMARY);
+ if (IS_ERR(primary))
+ return primary;
+
+ /* FIXME unify */
+ primary->check_plane = intel_check_primary_plane;
+
+ return primary;
+ }
+
primary = intel_plane_alloc();
if (IS_ERR(primary))
return primary;
@@ -13303,19 +13248,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
primary->check_plane = intel_check_primary_plane;
- if (INTEL_GEN(dev_priv) >= 9) {
- intel_primary_formats = skl_primary_formats;
- num_formats = ARRAY_SIZE(skl_primary_formats);
-
- if (skl_plane_has_ccs(dev_priv, pipe, PLANE_PRIMARY))
- modifiers = skl_format_modifiers_ccs;
- else
- modifiers = skl_format_modifiers_noccs;
-
- primary->update_plane = skl_update_plane;
- primary->disable_plane = skl_disable_plane;
- primary->get_hw_state = skl_plane_get_hw_state;
- } else if (INTEL_GEN(dev_priv) >= 4) {
+ if (INTEL_GEN(dev_priv) >= 4) {
intel_primary_formats = i965_primary_formats;
num_formats = ARRAY_SIZE(i965_primary_formats);
modifiers = i9xx_format_modifiers;
@@ -13335,23 +13268,16 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
possible_crtcs = BIT(pipe);
- if (INTEL_GEN(dev_priv) >= 9)
- ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- possible_crtcs, &intel_plane_funcs,
- intel_primary_formats, num_formats,
- modifiers,
- DRM_PLANE_TYPE_PRIMARY,
- "plane 1%c", pipe_name(pipe));
- else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv))
+ if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv))
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- possible_crtcs, &intel_plane_funcs,
+ possible_crtcs, &i9xx_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
"primary %c", pipe_name(pipe));
else
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- possible_crtcs, &intel_plane_funcs,
+ possible_crtcs, &i9xx_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
@@ -13360,16 +13286,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
if (ret)
goto fail;
- if (INTEL_GEN(dev_priv) >= 10) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 |
- DRM_MODE_REFLECT_X;
- } else if (INTEL_GEN(dev_priv) >= 9) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
- } else if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
+ if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
supported_rotations =
DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
DRM_MODE_REFLECT_X;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index d269d6263833..84b420bd587b 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -2036,15 +2036,13 @@ int intel_sprite_set_colorkey_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state);
void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state);
-void skl_update_plane(struct intel_plane *plane,
- const struct intel_crtc_state *crtc_state,
- const struct intel_plane_state *plane_state);
-void skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc);
-bool skl_plane_get_hw_state(struct intel_plane *plane);
bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
enum pipe pipe, enum plane_id plane_id);
struct intel_plane *intel_plane_alloc(void);
void intel_plane_free(struct intel_plane *plane);
+struct intel_plane *
+skl_universal_plane_create(struct drm_i915_private *dev_priv,
+ enum pipe pipe, enum plane_id plane_id);
/* intel_tv.c */
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index e6092f12e653..ec0bba810fe7 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -229,7 +229,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
#endif
}
-void
+static void
skl_update_plane(struct intel_plane *plane,
const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state)
@@ -307,7 +307,7 @@ skl_update_plane(struct intel_plane *plane,
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
}
-void
+static void
skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc)
{
struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
@@ -325,7 +325,7 @@ skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc)
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
}
-bool
+static bool
skl_plane_get_hw_state(struct intel_plane *plane)
{
struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
@@ -1454,6 +1454,74 @@ void intel_plane_free(struct intel_plane *plane)
kfree(plane);
}
+struct intel_plane *
+skl_universal_plane_create(struct drm_i915_private *dev_priv,
+ enum pipe pipe, enum plane_id plane_id)
+{
+ struct intel_plane *plane;
+ enum drm_plane_type plane_type;
+ unsigned int supported_rotations;
+ unsigned int possible_crtcs;
+ const u64 *modifiers;
+ int ret;
+
+ plane = intel_plane_alloc();
+ if (IS_ERR(plane))
+ return plane;
+
+ plane->pipe = pipe;
+ plane->id = plane_id;
+ plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane_id);
+
+ plane->can_scale = true;
+
+ plane->update_plane = skl_update_plane;
+ plane->disable_plane = skl_disable_plane;
+ plane->get_hw_state = skl_plane_get_hw_state;
+
+ if (skl_plane_has_ccs(dev_priv, pipe, plane_id))
+ modifiers = skl_plane_format_modifiers_ccs;
+ else
+ modifiers = skl_plane_format_modifiers_noccs;
+
+ if (plane_id == PLANE_PRIMARY)
+ plane_type = DRM_PLANE_TYPE_PRIMARY;
+ else
+ plane_type = DRM_PLANE_TYPE_OVERLAY;
+
+ possible_crtcs = BIT(pipe);
+
+ ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
+ possible_crtcs, &intel_sprite_plane_funcs,
+ skl_plane_formats,
+ ARRAY_SIZE(skl_plane_formats),
+ modifiers, plane_type,
+ "plane %d%c", plane_id + 1,
+ pipe_name(pipe));
+ if (ret)
+ goto fail;
+
+ supported_rotations =
+ DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
+ DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
+
+ if (INTEL_GEN(dev_priv) >= 10)
+ supported_rotations |= DRM_MODE_REFLECT_X;
+
+ drm_plane_create_rotation_property(&plane->base,
+ DRM_MODE_ROTATE_0,
+ supported_rotations);
+
+ drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
+
+ return plane;
+
+fail:
+ intel_plane_free(plane);
+
+ return ERR_PTR(ret);
+}
+
struct intel_plane *
intel_sprite_plane_create(struct drm_i915_private *dev_priv,
enum pipe pipe, int plane)
@@ -1466,25 +1534,23 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
int num_plane_formats;
int ret;
- intel_plane = intel_plane_alloc();
- if (IS_ERR(intel_plane))
- return intel_plane;
-
if (INTEL_GEN(dev_priv) >= 9) {
- intel_plane->can_scale = true;
+ intel_plane = skl_universal_plane_create(dev_priv, pipe,
+ PLANE_SPRITE0 + plane);
+ if (IS_ERR(intel_plane))
+ return intel_plane;
- intel_plane->update_plane = skl_update_plane;
- intel_plane->disable_plane = skl_disable_plane;
- intel_plane->get_hw_state = skl_plane_get_hw_state;
+ /* FIXME unify */
+ intel_plane->check_plane = intel_check_sprite_plane;
- plane_formats = skl_plane_formats;
- num_plane_formats = ARRAY_SIZE(skl_plane_formats);
+ return intel_plane;
+ }
- if (skl_plane_has_ccs(dev_priv, pipe, PLANE_SPRITE0 + plane))
- modifiers = skl_plane_format_modifiers_ccs;
- else
- modifiers = skl_plane_format_modifiers_noccs;
- } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
+ intel_plane = intel_plane_alloc();
+ if (IS_ERR(intel_plane))
+ return intel_plane;
+
+ if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
intel_plane->can_scale = false;
intel_plane->max_downscale = 1;
@@ -1529,16 +1595,7 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
}
}
- if (INTEL_GEN(dev_priv) >= 10) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 |
- DRM_MODE_REFLECT_X;
- } else if (INTEL_GEN(dev_priv) >= 9) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
- } else if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
+ if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
supported_rotations =
DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
DRM_MODE_REFLECT_X;
@@ -1554,20 +1611,12 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
possible_crtcs = BIT(pipe);
- if (INTEL_GEN(dev_priv) >= 9)
- ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
- possible_crtcs, &intel_sprite_plane_funcs,
- plane_formats, num_plane_formats,
- modifiers,
- DRM_PLANE_TYPE_OVERLAY,
- "plane %d%c", plane + 2, pipe_name(pipe));
- else
- ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
- possible_crtcs, &intel_sprite_plane_funcs,
- plane_formats, num_plane_formats,
- modifiers,
- DRM_PLANE_TYPE_OVERLAY,
- "sprite %c", sprite_name(pipe, plane));
+ ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
+ possible_crtcs, &intel_sprite_plane_funcs,
+ plane_formats, num_plane_formats,
+ modifiers,
+ DRM_PLANE_TYPE_OVERLAY,
+ "sprite %c", sprite_name(pipe, plane));
if (ret)
goto fail;
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH 11/11] drm/i915: s/intel_plane/plane/ in sprite init
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (9 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 10/11] drm/i915: Extract skl_universal_plane_init() Ville Syrjala
@ 2018-03-05 16:51 ` Ville Syrjala
2018-03-05 17:27 ` ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups Patchwork
` (5 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-05 16:51 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Use a more familiar naming pattern for our variables in the sprite plane
init function.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_sprite.c | 78 ++++++++++++++++++-------------------
1 file changed, 39 insertions(+), 39 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index ec0bba810fe7..a4968ddd98cc 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1524,9 +1524,9 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
struct intel_plane *
intel_sprite_plane_create(struct drm_i915_private *dev_priv,
- enum pipe pipe, int plane)
+ enum pipe pipe, int sprite)
{
- struct intel_plane *intel_plane;
+ struct intel_plane *plane;
unsigned long possible_crtcs;
const uint32_t *plane_formats;
const uint64_t *modifiers;
@@ -1535,55 +1535,55 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
int ret;
if (INTEL_GEN(dev_priv) >= 9) {
- intel_plane = skl_universal_plane_create(dev_priv, pipe,
- PLANE_SPRITE0 + plane);
- if (IS_ERR(intel_plane))
- return intel_plane;
+ plane = skl_universal_plane_create(dev_priv, pipe,
+ PLANE_SPRITE0 + sprite);
+ if (IS_ERR(plane))
+ return plane;
/* FIXME unify */
- intel_plane->check_plane = intel_check_sprite_plane;
+ plane->check_plane = intel_check_sprite_plane;
- return intel_plane;
+ return plane;
}
- intel_plane = intel_plane_alloc();
- if (IS_ERR(intel_plane))
- return intel_plane;
+ plane = intel_plane_alloc();
+ if (IS_ERR(plane))
+ return plane;
if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
- intel_plane->can_scale = false;
- intel_plane->max_downscale = 1;
+ plane->can_scale = false;
+ plane->max_downscale = 1;
- intel_plane->update_plane = vlv_update_plane;
- intel_plane->disable_plane = vlv_disable_plane;
- intel_plane->get_hw_state = vlv_plane_get_hw_state;
+ plane->update_plane = vlv_update_plane;
+ plane->disable_plane = vlv_disable_plane;
+ plane->get_hw_state = vlv_plane_get_hw_state;
plane_formats = vlv_plane_formats;
num_plane_formats = ARRAY_SIZE(vlv_plane_formats);
modifiers = i9xx_plane_format_modifiers;
} else if (INTEL_GEN(dev_priv) >= 7) {
if (IS_IVYBRIDGE(dev_priv)) {
- intel_plane->can_scale = true;
- intel_plane->max_downscale = 2;
+ plane->can_scale = true;
+ plane->max_downscale = 2;
} else {
- intel_plane->can_scale = false;
- intel_plane->max_downscale = 1;
+ plane->can_scale = false;
+ plane->max_downscale = 1;
}
- intel_plane->update_plane = ivb_update_plane;
- intel_plane->disable_plane = ivb_disable_plane;
- intel_plane->get_hw_state = ivb_plane_get_hw_state;
+ plane->update_plane = ivb_update_plane;
+ plane->disable_plane = ivb_disable_plane;
+ plane->get_hw_state = ivb_plane_get_hw_state;
plane_formats = snb_plane_formats;
num_plane_formats = ARRAY_SIZE(snb_plane_formats);
modifiers = i9xx_plane_format_modifiers;
} else {
- intel_plane->can_scale = true;
- intel_plane->max_downscale = 16;
+ plane->can_scale = true;
+ plane->max_downscale = 16;
- intel_plane->update_plane = g4x_update_plane;
- intel_plane->disable_plane = g4x_disable_plane;
- intel_plane->get_hw_state = g4x_plane_get_hw_state;
+ plane->update_plane = g4x_update_plane;
+ plane->disable_plane = g4x_disable_plane;
+ plane->get_hw_state = g4x_plane_get_hw_state;
modifiers = i9xx_plane_format_modifiers;
if (IS_GEN6(dev_priv)) {
@@ -1604,27 +1604,27 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180;
}
- intel_plane->pipe = pipe;
- intel_plane->id = PLANE_SPRITE0 + plane;
- intel_plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, intel_plane->id);
- intel_plane->check_plane = intel_check_sprite_plane;
+ plane->pipe = pipe;
+ plane->id = PLANE_SPRITE0 + sprite;
+ plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane->id);
+ plane->check_plane = intel_check_sprite_plane;
possible_crtcs = BIT(pipe);
- ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
+ ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
possible_crtcs, &intel_sprite_plane_funcs,
plane_formats, num_plane_formats,
modifiers,
DRM_PLANE_TYPE_OVERLAY,
- "sprite %c", sprite_name(pipe, plane));
+ "sprite %c", sprite_name(pipe, sprite));
if (ret)
goto fail;
- drm_plane_create_rotation_property(&intel_plane->base,
+ drm_plane_create_rotation_property(&plane->base,
DRM_MODE_ROTATE_0,
supported_rotations);
- drm_plane_create_color_properties(&intel_plane->base,
+ drm_plane_create_color_properties(&plane->base,
BIT(DRM_COLOR_YCBCR_BT601) |
BIT(DRM_COLOR_YCBCR_BT709),
BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) |
@@ -1632,12 +1632,12 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
DRM_COLOR_YCBCR_BT709,
DRM_COLOR_YCBCR_LIMITED_RANGE);
- drm_plane_helper_add(&intel_plane->base, &intel_plane_helper_funcs);
+ drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
- return intel_plane;
+ return plane;
fail:
- intel_plane_free(intel_plane);
+ intel_plane_free(plane);
return ERR_PTR(ret);
}
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (10 preceding siblings ...)
2018-03-05 16:51 ` [PATCH 11/11] drm/i915: s/intel_plane/plane/ in sprite init Ville Syrjala
@ 2018-03-05 17:27 ` Patchwork
2018-03-16 20:42 ` ✓ Fi.CI.BAT: success " Patchwork
` (4 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2018-03-05 17:27 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Some plane init cleanups
URL : https://patchwork.freedesktop.org/series/39390/
State : failure
== Summary ==
Series 39390v1 drm/i915: Some plane init cleanups
https://patchwork.freedesktop.org/api/1.0/series/39390/revisions/1/mbox/
---- Possible new issues:
Test core_auth:
Subgroup basic-auth:
pass -> INCOMPLETE (fi-bxt-j4205)
pass -> INCOMPLETE (fi-cfl-8700k)
pass -> INCOMPLETE (fi-cfl-s2)
pass -> INCOMPLETE (fi-cfl-u)
pass -> INCOMPLETE (fi-cnl-y3)
pass -> INCOMPLETE (fi-glk-1)
pass -> INCOMPLETE (fi-kbl-7500u)
pass -> INCOMPLETE (fi-kbl-7560u)
pass -> INCOMPLETE (fi-kbl-7567u)
pass -> INCOMPLETE (fi-kbl-r)
pass -> INCOMPLETE (fi-skl-6260u)
pass -> INCOMPLETE (fi-skl-6600u)
pass -> INCOMPLETE (fi-skl-6700hq)
pass -> INCOMPLETE (fi-skl-6700k2)
pass -> INCOMPLETE (fi-skl-6770hq)
pass -> INCOMPLETE (fi-skl-guc)
pass -> INCOMPLETE (fi-skl-gvtdvm)
---- Known issues:
Test gem_mmap_gtt:
Subgroup basic-small-bo-tiledx:
pass -> FAIL (fi-gdg-551) fdo#102575
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> INCOMPLETE (fi-snb-2520m) fdo#103713
Test prime_vgem:
Subgroup basic-fence-flip:
fail -> PASS (fi-ilk-650) fdo#104008
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:417s
fi-bdw-gvtdvm total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:423s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:371s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:487s
fi-bwr-2160 total:288 pass:183 dwarn:0 dfail:0 fail:0 skip:105 time:276s
fi-bxt-j4205 total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:465s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:452s
fi-cfl-8700k total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-cfl-s2 total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-cfl-u total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-cnl-y3 total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:415s
fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:291s
fi-glk-1 total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:387s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:407s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:456s
fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:418s
fi-kbl-7500u total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-kbl-7560u total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-kbl-7567u total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-kbl-r total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:586s
fi-skl-6260u total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-skl-6600u total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-skl-6700hq total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-skl-6700k2 total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-skl-6770hq total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-skl-guc total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-skl-gvtdvm total:1 pass:0 dwarn:0 dfail:0 fail:0 skip:0
fi-snb-2520m total:245 pass:211 dwarn:0 dfail:0 fail:0 skip:33
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:397s
fi-bxt-dsi failed to collect. IGT log at Patchwork_8233/fi-bxt-dsi/run0.log
4a3784737699f45784335e1c9446596bf7833606 drm-tip: 2018y-03m-05d-14h-32m-57s UTC integration manifest
b3c15f19e6c7 drm/i915: s/intel_plane/plane/ in sprite init
a1b45d3a5842 drm/i915: Extract skl_universal_plane_init()
989cbe353f70 drm/i915: Introduce intel_plane_alloc()
73b10908f2d1 drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state()
ac553de258fd drm/i915: Add missing pixel formats for skl+ "sprites"
f19c3f262e29 drm/i915: Disallow plane scaling with specific pixel formats
56b6a4ea6c90 drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
ec59664cff67 drm/i915: Don't populate plane->i9xx_plane for sprites
970c8092c2f5 drm/i915: Populate possible_crtcs for primary/cursor planes
0ce9d53ba71e drm/i915: Fix tabs vs. spaces
1ac40188dbdd drm/i915: Constify intel_plane_funcs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8233/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 05/11] drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
2018-03-05 16:51 ` [PATCH 05/11] drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes Ville Syrjala
@ 2018-03-06 7:49 ` Joonas Lahtinen
0 siblings, 0 replies; 20+ messages in thread
From: Joonas Lahtinen @ 2018-03-06 7:49 UTC (permalink / raw)
To: Ville Syrjala, intel-gfx
On Mon, 2018-03-05 at 18:51 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> All CNL universal planes support horizontal mirroring. Currently
> we expose the capability only for the primary plane. Expose it
> for the overlay planes as well.
>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Regards, Joonas
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Some plane init cleanups
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (11 preceding siblings ...)
2018-03-05 17:27 ` ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups Patchwork
@ 2018-03-16 20:42 ` Patchwork
2018-03-17 2:50 ` ✗ Fi.CI.IGT: failure " Patchwork
` (3 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2018-03-16 20:42 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Some plane init cleanups
URL : https://patchwork.freedesktop.org/series/39390/
State : success
== Summary ==
Series 39390v1 drm/i915: Some plane init cleanups
https://patchwork.freedesktop.org/api/1.0/series/39390/revisions/1/mbox/
---- Known issues:
Test gem_mmap_gtt:
Subgroup basic-small-bo-tiledx:
pass -> FAIL (fi-gdg-551) fdo#102575
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fi-bdw-5557u total:285 pass:264 dwarn:0 dfail:0 fail:0 skip:21 time:429s
fi-bdw-gvtdvm total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:443s
fi-blb-e6850 total:285 pass:220 dwarn:1 dfail:0 fail:0 skip:64 time:381s
fi-bsw-n3050 total:285 pass:239 dwarn:0 dfail:0 fail:0 skip:46 time:537s
fi-bwr-2160 total:285 pass:180 dwarn:0 dfail:0 fail:0 skip:105 time:297s
fi-bxt-dsi total:285 pass:255 dwarn:0 dfail:0 fail:0 skip:30 time:511s
fi-bxt-j4205 total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:508s
fi-byt-j1900 total:285 pass:250 dwarn:0 dfail:0 fail:0 skip:35 time:517s
fi-byt-n2820 total:285 pass:246 dwarn:0 dfail:0 fail:0 skip:39 time:502s
fi-cfl-8700k total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:412s
fi-cfl-s2 total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:582s
fi-cfl-u total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:511s
fi-cnl-drrs total:285 pass:254 dwarn:3 dfail:0 fail:0 skip:28 time:520s
fi-cnl-y3 total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:588s
fi-elk-e7500 total:285 pass:225 dwarn:1 dfail:0 fail:0 skip:59 time:420s
fi-gdg-551 total:285 pass:176 dwarn:0 dfail:0 fail:1 skip:108 time:318s
fi-glk-1 total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:539s
fi-hsw-4770 total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:402s
fi-ilk-650 total:285 pass:225 dwarn:0 dfail:0 fail:0 skip:60 time:419s
fi-ivb-3520m total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:474s
fi-ivb-3770 total:285 pass:252 dwarn:0 dfail:0 fail:0 skip:33 time:428s
fi-kbl-7500u total:285 pass:260 dwarn:1 dfail:0 fail:0 skip:24 time:476s
fi-kbl-7567u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:468s
fi-kbl-r total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:514s
fi-pnv-d510 total:285 pass:219 dwarn:1 dfail:0 fail:0 skip:65 time:660s
fi-skl-6260u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:441s
fi-skl-6600u total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:533s
fi-skl-6700hq total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:540s
fi-skl-6700k2 total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:506s
fi-skl-6770hq total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:496s
fi-skl-guc total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:430s
fi-skl-gvtdvm total:285 pass:262 dwarn:0 dfail:0 fail:0 skip:23 time:445s
fi-snb-2520m total:285 pass:245 dwarn:0 dfail:0 fail:0 skip:40 time:585s
fi-snb-2600 total:285 pass:245 dwarn:0 dfail:0 fail:0 skip:40 time:403s
fa73baa35269b86a26e10f36bc35d3b657e2e932 drm-tip: 2018y-03m-16d-19h-43m-50s UTC integration manifest
c16c5119201d drm/i915: s/intel_plane/plane/ in sprite init
621e61d4d148 drm/i915: Extract skl_universal_plane_init()
07a529e748a6 drm/i915: Introduce intel_plane_alloc()
adb0d9a61540 drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state()
e4840616c794 drm/i915: Add missing pixel formats for skl+ "sprites"
09c5127f3012 drm/i915: Disallow plane scaling with specific pixel formats
a1bc8e641416 drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
5a5b624bd424 drm/i915: Don't populate plane->i9xx_plane for sprites
7abb2135b286 drm/i915: Populate possible_crtcs for primary/cursor planes
d99beb287193 drm/i915: Fix tabs vs. spaces
a7b37a2a81eb drm/i915: Constify intel_plane_funcs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8382/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915: Some plane init cleanups
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (12 preceding siblings ...)
2018-03-16 20:42 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-03-17 2:50 ` Patchwork
2018-03-19 16:46 ` ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups (rev2) Patchwork
` (2 subsequent siblings)
16 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2018-03-17 2:50 UTC (permalink / raw)
To: Ville Syrjala; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Some plane init cleanups
URL : https://patchwork.freedesktop.org/series/39390/
State : failure
== Summary ==
---- Possible new issues:
Test kms_fbcon_fbt:
Subgroup fbc:
pass -> FAIL (shard-apl)
Subgroup fbc-suspend:
pass -> FAIL (shard-apl)
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-indfb-fliptrack:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-offscren-pri-indfb-draw-blt:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-offscren-pri-indfb-draw-mmap-cpu:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-cur-indfb-draw-render:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-cur-indfb-move:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-cur-indfb-onoff:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-indfb-pgflip-blt:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-spr-indfb-draw-pwrite:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-spr-indfb-move:
pass -> FAIL (shard-apl)
Subgroup fbc-1p-primscrn-spr-indfb-onoff:
pass -> FAIL (shard-apl)
Subgroup fbc-modesetfrombusy:
pass -> FAIL (shard-apl)
Subgroup fbc-rgb565-draw-mmap-gtt:
pass -> FAIL (shard-apl)
---- Known issues:
Test kms_flip:
Subgroup 2x-plain-flip-ts-check-interruptible:
fail -> PASS (shard-hsw) fdo#100368
Subgroup flip-vs-expired-vblank:
pass -> FAIL (shard-hsw) fdo#102887 +1
Test kms_frontbuffer_tracking:
Subgroup fbc-1p-offscren-pri-shrfb-draw-pwrite:
pass -> FAIL (shard-apl) fdo#101623 +36
Subgroup fbc-1p-primscrn-cur-indfb-draw-mmap-cpu:
pass -> FAIL (shard-apl) fdo#105128
Subgroup fbc-1p-primscrn-pri-indfb-draw-pwrite:
pass -> FAIL (shard-apl) fdo#103167 +13
Subgroup fbc-1p-primscrn-shrfb-msflip-blt:
pass -> FAIL (shard-apl) fdo#104727
Test kms_pipe_crc_basic:
Subgroup hang-read-crc-pipe-c:
fail -> PASS (shard-apl) fdo#103191
Test kms_sysfs_edid_timing:
warn -> PASS (shard-apl) fdo#100047
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#104727 https://bugs.freedesktop.org/show_bug.cgi?id=104727
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
shard-apl total:3442 pass:1749 dwarn:1 dfail:0 fail:74 skip:1618 time:13023s
shard-hsw total:3442 pass:1766 dwarn:1 dfail:0 fail:3 skip:1671 time:11951s
shard-snb total:3368 pass:1326 dwarn:1 dfail:0 fail:2 skip:2038 time:7095s
Blacklisted hosts:
shard-kbl total:3442 pass:1875 dwarn:1 dfail:0 fail:74 skip:1492 time:9795s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8382/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 10/11] drm/i915: Extract skl_universal_plane_init()
2018-03-05 16:51 ` [PATCH 10/11] drm/i915: Extract skl_universal_plane_init() Ville Syrjala
@ 2018-03-19 13:50 ` Ville Syrjala
0 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2018-03-19 13:50 UTC (permalink / raw)
To: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
There's not much point in following the primary vs. sprite
for the SKL+ universal plane init code. The only difference is
of our own doing in the form of the .check_plane(). Let's make
a small exception for that little detail and otherwise share
the same code to initialize all the universal planes.
Eventually we should eliminate the mess around .check_plane()
as well, but for now let's be happy with some code reduction.
v2: Remember to set up plane->has_fbc
Make skl_plane_has_ccs() static
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 146 ++++++---------------------------
drivers/gpu/drm/i915/intel_drv.h | 10 +--
drivers/gpu/drm/i915/intel_sprite.c | 154 +++++++++++++++++++++++++----------
3 files changed, 137 insertions(+), 173 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e385a1366464..04e7db727f58 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -73,39 +73,6 @@ static const uint64_t i9xx_format_modifiers[] = {
DRM_FORMAT_MOD_INVALID
};
-static const uint32_t skl_primary_formats[] = {
- DRM_FORMAT_C8,
- DRM_FORMAT_RGB565,
- DRM_FORMAT_XRGB8888,
- DRM_FORMAT_XBGR8888,
- DRM_FORMAT_ARGB8888,
- DRM_FORMAT_ABGR8888,
- DRM_FORMAT_XRGB2101010,
- DRM_FORMAT_XBGR2101010,
- DRM_FORMAT_YUYV,
- DRM_FORMAT_YVYU,
- DRM_FORMAT_UYVY,
- DRM_FORMAT_VYUY,
-};
-
-static const uint64_t skl_format_modifiers_noccs[] = {
- I915_FORMAT_MOD_Yf_TILED,
- I915_FORMAT_MOD_Y_TILED,
- I915_FORMAT_MOD_X_TILED,
- DRM_FORMAT_MOD_LINEAR,
- DRM_FORMAT_MOD_INVALID
-};
-
-static const uint64_t skl_format_modifiers_ccs[] = {
- I915_FORMAT_MOD_Yf_TILED_CCS,
- I915_FORMAT_MOD_Y_TILED_CCS,
- I915_FORMAT_MOD_Yf_TILED,
- I915_FORMAT_MOD_Y_TILED,
- I915_FORMAT_MOD_X_TILED,
- DRM_FORMAT_MOD_LINEAR,
- DRM_FORMAT_MOD_INVALID
-};
-
/* Cursor formats */
static const uint32_t intel_cursor_formats[] = {
DRM_FORMAT_ARGB8888,
@@ -13027,41 +12994,9 @@ static bool i965_mod_supported(uint32_t format, uint64_t modifier)
}
}
-static bool skl_mod_supported(uint32_t format, uint64_t modifier)
-{
- switch (format) {
- case DRM_FORMAT_XRGB8888:
- case DRM_FORMAT_XBGR8888:
- case DRM_FORMAT_ARGB8888:
- case DRM_FORMAT_ABGR8888:
- if (modifier == I915_FORMAT_MOD_Yf_TILED_CCS ||
- modifier == I915_FORMAT_MOD_Y_TILED_CCS)
- return true;
- /* fall through */
- case DRM_FORMAT_RGB565:
- case DRM_FORMAT_XRGB2101010:
- case DRM_FORMAT_XBGR2101010:
- case DRM_FORMAT_YUYV:
- case DRM_FORMAT_YVYU:
- case DRM_FORMAT_UYVY:
- case DRM_FORMAT_VYUY:
- if (modifier == I915_FORMAT_MOD_Yf_TILED)
- return true;
- /* fall through */
- case DRM_FORMAT_C8:
- if (modifier == DRM_FORMAT_MOD_LINEAR ||
- modifier == I915_FORMAT_MOD_X_TILED ||
- modifier == I915_FORMAT_MOD_Y_TILED)
- return true;
- /* fall through */
- default:
- return false;
- }
-}
-
-static bool intel_primary_plane_format_mod_supported(struct drm_plane *plane,
- uint32_t format,
- uint64_t modifier)
+static bool i9xx_plane_format_mod_supported(struct drm_plane *plane,
+ uint32_t format,
+ uint64_t modifier)
{
struct drm_i915_private *dev_priv = to_i915(plane->dev);
@@ -13072,9 +13007,7 @@ static bool intel_primary_plane_format_mod_supported(struct drm_plane *plane,
modifier != DRM_FORMAT_MOD_LINEAR)
return false;
- if (INTEL_GEN(dev_priv) >= 9)
- return skl_mod_supported(format, modifier);
- else if (INTEL_GEN(dev_priv) >= 4)
+ if (INTEL_GEN(dev_priv) >= 4)
return i965_mod_supported(format, modifier);
else
return i8xx_mod_supported(format, modifier);
@@ -13090,7 +13023,7 @@ static bool intel_cursor_plane_format_mod_supported(struct drm_plane *plane,
return modifier == DRM_FORMAT_MOD_LINEAR && format == DRM_FORMAT_ARGB8888;
}
-static const struct drm_plane_funcs intel_plane_funcs = {
+static const struct drm_plane_funcs i9xx_plane_funcs = {
.update_plane = drm_atomic_helper_update_plane,
.disable_plane = drm_atomic_helper_disable_plane,
.destroy = intel_plane_destroy,
@@ -13098,7 +13031,7 @@ static const struct drm_plane_funcs intel_plane_funcs = {
.atomic_set_property = intel_plane_atomic_set_property,
.atomic_duplicate_state = intel_plane_duplicate_state,
.atomic_destroy_state = intel_plane_destroy_state,
- .format_mod_supported = intel_primary_plane_format_mod_supported,
+ .format_mod_supported = i9xx_plane_format_mod_supported,
};
static int
@@ -13243,15 +13176,6 @@ static bool i9xx_plane_has_fbc(struct drm_i915_private *dev_priv,
return i9xx_plane == PLANE_A;
}
-static bool skl_plane_has_fbc(struct drm_i915_private *dev_priv,
- enum pipe pipe, enum plane_id plane_id)
-{
- if (!HAS_FBC(dev_priv))
- return false;
-
- return pipe == PIPE_A && plane_id == PLANE_PRIMARY;
-}
-
static struct intel_plane *
intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
{
@@ -13263,6 +13187,18 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
const uint64_t *modifiers;
int ret;
+ if (INTEL_GEN(dev_priv) >= 9) {
+ primary = skl_universal_plane_create(dev_priv, pipe,
+ PLANE_PRIMARY);
+ if (IS_ERR(primary))
+ return primary;
+
+ /* FIXME unify */
+ primary->check_plane = intel_check_primary_plane;
+
+ return primary;
+ }
+
primary = intel_plane_alloc();
if (IS_ERR(primary))
return primary;
@@ -13283,13 +13219,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
primary->id = PLANE_PRIMARY;
primary->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, primary->id);
- if (INTEL_GEN(dev_priv) >= 9)
- primary->has_fbc = skl_plane_has_fbc(dev_priv,
- primary->pipe,
- primary->id);
- else
- primary->has_fbc = i9xx_plane_has_fbc(dev_priv,
- primary->i9xx_plane);
+ primary->has_fbc = i9xx_plane_has_fbc(dev_priv, primary->i9xx_plane);
if (primary->has_fbc) {
struct intel_fbc *fbc = &dev_priv->fbc;
@@ -13299,19 +13229,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
primary->check_plane = intel_check_primary_plane;
- if (INTEL_GEN(dev_priv) >= 9) {
- intel_primary_formats = skl_primary_formats;
- num_formats = ARRAY_SIZE(skl_primary_formats);
-
- if (skl_plane_has_ccs(dev_priv, pipe, PLANE_PRIMARY))
- modifiers = skl_format_modifiers_ccs;
- else
- modifiers = skl_format_modifiers_noccs;
-
- primary->update_plane = skl_update_plane;
- primary->disable_plane = skl_disable_plane;
- primary->get_hw_state = skl_plane_get_hw_state;
- } else if (INTEL_GEN(dev_priv) >= 4) {
+ if (INTEL_GEN(dev_priv) >= 4) {
intel_primary_formats = i965_primary_formats;
num_formats = ARRAY_SIZE(i965_primary_formats);
modifiers = i9xx_format_modifiers;
@@ -13331,23 +13249,16 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
possible_crtcs = BIT(pipe);
- if (INTEL_GEN(dev_priv) >= 9)
+ if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv))
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- possible_crtcs, &intel_plane_funcs,
- intel_primary_formats, num_formats,
- modifiers,
- DRM_PLANE_TYPE_PRIMARY,
- "plane 1%c", pipe_name(pipe));
- else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv))
- ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- possible_crtcs, &intel_plane_funcs,
+ possible_crtcs, &i9xx_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
"primary %c", pipe_name(pipe));
else
ret = drm_universal_plane_init(&dev_priv->drm, &primary->base,
- possible_crtcs, &intel_plane_funcs,
+ possible_crtcs, &i9xx_plane_funcs,
intel_primary_formats, num_formats,
modifiers,
DRM_PLANE_TYPE_PRIMARY,
@@ -13356,16 +13267,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
if (ret)
goto fail;
- if (INTEL_GEN(dev_priv) >= 10) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 |
- DRM_MODE_REFLECT_X;
- } else if (INTEL_GEN(dev_priv) >= 9) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
- } else if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
+ if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
supported_rotations =
DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
DRM_MODE_REFLECT_X;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 2dec4c8db37b..d80135397d91 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -2041,15 +2041,11 @@ int intel_sprite_set_colorkey_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state);
void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state);
-void skl_update_plane(struct intel_plane *plane,
- const struct intel_crtc_state *crtc_state,
- const struct intel_plane_state *plane_state);
-void skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc);
-bool skl_plane_get_hw_state(struct intel_plane *plane);
-bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
- enum pipe pipe, enum plane_id plane_id);
struct intel_plane *intel_plane_alloc(void);
void intel_plane_free(struct intel_plane *plane);
+struct intel_plane *
+skl_universal_plane_create(struct drm_i915_private *dev_priv,
+ enum pipe pipe, enum plane_id plane_id);
/* intel_tv.c */
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index e6092f12e653..eb8c76fa8fbd 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -229,7 +229,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
#endif
}
-void
+static void
skl_update_plane(struct intel_plane *plane,
const struct intel_crtc_state *crtc_state,
const struct intel_plane_state *plane_state)
@@ -307,7 +307,7 @@ skl_update_plane(struct intel_plane *plane,
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
}
-void
+static void
skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc)
{
struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
@@ -325,7 +325,7 @@ skl_disable_plane(struct intel_plane *plane, struct intel_crtc *crtc)
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
}
-bool
+static bool
skl_plane_get_hw_state(struct intel_plane *plane)
{
struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
@@ -1408,8 +1408,17 @@ static const struct drm_plane_funcs intel_sprite_plane_funcs = {
.format_mod_supported = intel_sprite_plane_format_mod_supported,
};
-bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
- enum pipe pipe, enum plane_id plane_id)
+static bool skl_plane_has_fbc(struct drm_i915_private *dev_priv,
+ enum pipe pipe, enum plane_id plane_id)
+{
+ if (!HAS_FBC(dev_priv))
+ return false;
+
+ return pipe == PIPE_A && plane_id == PLANE_PRIMARY;
+}
+
+static bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
+ enum pipe pipe, enum plane_id plane_id)
{
if (plane_id == PLANE_CURSOR)
return false;
@@ -1454,6 +1463,82 @@ void intel_plane_free(struct intel_plane *plane)
kfree(plane);
}
+struct intel_plane *
+skl_universal_plane_create(struct drm_i915_private *dev_priv,
+ enum pipe pipe, enum plane_id plane_id)
+{
+ struct intel_plane *plane;
+ enum drm_plane_type plane_type;
+ unsigned int supported_rotations;
+ unsigned int possible_crtcs;
+ const u64 *modifiers;
+ int ret;
+
+ plane = intel_plane_alloc();
+ if (IS_ERR(plane))
+ return plane;
+
+ plane->pipe = pipe;
+ plane->id = plane_id;
+ plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane_id);
+
+ plane->can_scale = true;
+
+ plane->has_fbc = skl_plane_has_fbc(dev_priv, plane->pipe, plane->id);
+
+ if (plane->has_fbc) {
+ struct intel_fbc *fbc = &dev_priv->fbc;
+
+ fbc->possible_framebuffer_bits |= plane->frontbuffer_bit;
+ }
+
+ plane->update_plane = skl_update_plane;
+ plane->disable_plane = skl_disable_plane;
+ plane->get_hw_state = skl_plane_get_hw_state;
+
+ if (skl_plane_has_ccs(dev_priv, pipe, plane_id))
+ modifiers = skl_plane_format_modifiers_ccs;
+ else
+ modifiers = skl_plane_format_modifiers_noccs;
+
+ if (plane_id == PLANE_PRIMARY)
+ plane_type = DRM_PLANE_TYPE_PRIMARY;
+ else
+ plane_type = DRM_PLANE_TYPE_OVERLAY;
+
+ possible_crtcs = BIT(pipe);
+
+ ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
+ possible_crtcs, &intel_sprite_plane_funcs,
+ skl_plane_formats,
+ ARRAY_SIZE(skl_plane_formats),
+ modifiers, plane_type,
+ "plane %d%c", plane_id + 1,
+ pipe_name(pipe));
+ if (ret)
+ goto fail;
+
+ supported_rotations =
+ DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
+ DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
+
+ if (INTEL_GEN(dev_priv) >= 10)
+ supported_rotations |= DRM_MODE_REFLECT_X;
+
+ drm_plane_create_rotation_property(&plane->base,
+ DRM_MODE_ROTATE_0,
+ supported_rotations);
+
+ drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
+
+ return plane;
+
+fail:
+ intel_plane_free(plane);
+
+ return ERR_PTR(ret);
+}
+
struct intel_plane *
intel_sprite_plane_create(struct drm_i915_private *dev_priv,
enum pipe pipe, int plane)
@@ -1466,25 +1551,23 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
int num_plane_formats;
int ret;
- intel_plane = intel_plane_alloc();
- if (IS_ERR(intel_plane))
- return intel_plane;
-
if (INTEL_GEN(dev_priv) >= 9) {
- intel_plane->can_scale = true;
+ intel_plane = skl_universal_plane_create(dev_priv, pipe,
+ PLANE_SPRITE0 + plane);
+ if (IS_ERR(intel_plane))
+ return intel_plane;
- intel_plane->update_plane = skl_update_plane;
- intel_plane->disable_plane = skl_disable_plane;
- intel_plane->get_hw_state = skl_plane_get_hw_state;
+ /* FIXME unify */
+ intel_plane->check_plane = intel_check_sprite_plane;
- plane_formats = skl_plane_formats;
- num_plane_formats = ARRAY_SIZE(skl_plane_formats);
+ return intel_plane;
+ }
- if (skl_plane_has_ccs(dev_priv, pipe, PLANE_SPRITE0 + plane))
- modifiers = skl_plane_format_modifiers_ccs;
- else
- modifiers = skl_plane_format_modifiers_noccs;
- } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
+ intel_plane = intel_plane_alloc();
+ if (IS_ERR(intel_plane))
+ return intel_plane;
+
+ if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
intel_plane->can_scale = false;
intel_plane->max_downscale = 1;
@@ -1529,16 +1612,7 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
}
}
- if (INTEL_GEN(dev_priv) >= 10) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270 |
- DRM_MODE_REFLECT_X;
- } else if (INTEL_GEN(dev_priv) >= 9) {
- supported_rotations =
- DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
- DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
- } else if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
+ if (IS_CHERRYVIEW(dev_priv) && pipe == PIPE_B) {
supported_rotations =
DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
DRM_MODE_REFLECT_X;
@@ -1554,20 +1628,12 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
possible_crtcs = BIT(pipe);
- if (INTEL_GEN(dev_priv) >= 9)
- ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
- possible_crtcs, &intel_sprite_plane_funcs,
- plane_formats, num_plane_formats,
- modifiers,
- DRM_PLANE_TYPE_OVERLAY,
- "plane %d%c", plane + 2, pipe_name(pipe));
- else
- ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
- possible_crtcs, &intel_sprite_plane_funcs,
- plane_formats, num_plane_formats,
- modifiers,
- DRM_PLANE_TYPE_OVERLAY,
- "sprite %c", sprite_name(pipe, plane));
+ ret = drm_universal_plane_init(&dev_priv->drm, &intel_plane->base,
+ possible_crtcs, &intel_sprite_plane_funcs,
+ plane_formats, num_plane_formats,
+ modifiers,
+ DRM_PLANE_TYPE_OVERLAY,
+ "sprite %c", sprite_name(pipe, plane));
if (ret)
goto fail;
--
2.16.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 20+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups (rev2)
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (13 preceding siblings ...)
2018-03-17 2:50 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-03-19 16:46 ` Patchwork
2018-03-29 14:03 ` ✓ Fi.CI.BAT: success " Patchwork
2018-03-29 17:15 ` ✗ Fi.CI.IGT: failure " Patchwork
16 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2018-03-19 16:46 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Some plane init cleanups (rev2)
URL : https://patchwork.freedesktop.org/series/39390/
State : failure
== Summary ==
Series 39390v2 drm/i915: Some plane init cleanups
https://patchwork.freedesktop.org/api/1.0/series/39390/revisions/2/mbox/
---- Possible new issues:
Test kms_pipe_crc_basic:
Subgroup read-crc-pipe-b-frame-sequence:
pass -> FAIL (fi-cfl-s2)
---- Known issues:
Test kms_flip:
Subgroup basic-flip-vs-wf_vblank:
pass -> FAIL (fi-snb-2520m) fdo#100368
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fi-bdw-5557u total:285 pass:264 dwarn:0 dfail:0 fail:0 skip:21 time:434s
fi-bdw-gvtdvm total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:439s
fi-blb-e6850 total:285 pass:220 dwarn:1 dfail:0 fail:0 skip:64 time:378s
fi-bsw-n3050 total:285 pass:239 dwarn:0 dfail:0 fail:0 skip:46 time:533s
fi-bwr-2160 total:285 pass:180 dwarn:0 dfail:0 fail:0 skip:105 time:299s
fi-bxt-dsi total:285 pass:255 dwarn:0 dfail:0 fail:0 skip:30 time:511s
fi-bxt-j4205 total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:517s
fi-byt-j1900 total:285 pass:250 dwarn:0 dfail:0 fail:0 skip:35 time:517s
fi-byt-n2820 total:285 pass:246 dwarn:0 dfail:0 fail:0 skip:39 time:502s
fi-cfl-8700k total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:411s
fi-cfl-s2 total:285 pass:258 dwarn:0 dfail:0 fail:1 skip:26 time:587s
fi-cfl-u total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:508s
fi-cnl-drrs total:285 pass:254 dwarn:3 dfail:0 fail:0 skip:28 time:548s
fi-elk-e7500 total:285 pass:225 dwarn:1 dfail:0 fail:0 skip:59 time:425s
fi-gdg-551 total:285 pass:176 dwarn:0 dfail:0 fail:1 skip:108 time:315s
fi-glk-1 total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:545s
fi-hsw-4770 total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:402s
fi-ilk-650 total:285 pass:225 dwarn:0 dfail:0 fail:0 skip:60 time:421s
fi-ivb-3520m total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:473s
fi-ivb-3770 total:285 pass:252 dwarn:0 dfail:0 fail:0 skip:33 time:428s
fi-kbl-7500u total:285 pass:260 dwarn:1 dfail:0 fail:0 skip:24 time:474s
fi-kbl-7567u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:471s
fi-kbl-r total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:514s
fi-pnv-d510 total:285 pass:219 dwarn:1 dfail:0 fail:0 skip:65 time:657s
fi-skl-6260u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:449s
fi-skl-6600u total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:529s
fi-skl-6700hq total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:542s
fi-skl-6700k2 total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:503s
fi-skl-6770hq total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:502s
fi-skl-guc total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:427s
fi-skl-gvtdvm total:285 pass:262 dwarn:0 dfail:0 fail:0 skip:23 time:447s
fi-snb-2520m total:285 pass:244 dwarn:0 dfail:0 fail:1 skip:40 time:562s
fi-snb-2600 total:285 pass:245 dwarn:0 dfail:0 fail:0 skip:40 time:401s
9b79492f331e36cf2e08d65ab3221abb66f67844 drm-tip: 2018y-03m-19d-14h-18m-12s UTC integration manifest
9ea507414110 drm/i915: s/intel_plane/plane/ in sprite init
fe5713d56f26 drm/i915: Extract skl_universal_plane_init()
42ad56c05f29 drm/i915: Introduce intel_plane_alloc()
0a66981c7fe7 drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state()
610c08a0e466 drm/i915: Add missing pixel formats for skl+ "sprites"
8e40f86d8366 drm/i915: Disallow plane scaling with specific pixel formats
62cb16f1b486 drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
ef6ecafcd04e drm/i915: Don't populate plane->i9xx_plane for sprites
c49d4399e89a drm/i915: Populate possible_crtcs for primary/cursor planes
0893344e27de drm/i915: Fix tabs vs. spaces
910b99bff03f drm/i915: Constify intel_plane_funcs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8395/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915: Some plane init cleanups (rev2)
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (14 preceding siblings ...)
2018-03-19 16:46 ` ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups (rev2) Patchwork
@ 2018-03-29 14:03 ` Patchwork
2018-03-29 17:15 ` ✗ Fi.CI.IGT: failure " Patchwork
16 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2018-03-29 14:03 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Some plane init cleanups (rev2)
URL : https://patchwork.freedesktop.org/series/39390/
State : success
== Summary ==
Series 39390v2 drm/i915: Some plane init cleanups
https://patchwork.freedesktop.org/api/1.0/series/39390/revisions/2/mbox/
---- Known issues:
Test kms_pipe_crc_basic:
Subgroup read-crc-pipe-b-frame-sequence:
fail -> PASS (fi-cfl-s3) fdo#103481
fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481
fi-bdw-5557u total:285 pass:264 dwarn:0 dfail:0 fail:0 skip:21 time:431s
fi-bdw-gvtdvm total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:440s
fi-blb-e6850 total:285 pass:220 dwarn:1 dfail:0 fail:0 skip:64 time:381s
fi-bsw-n3050 total:285 pass:239 dwarn:0 dfail:0 fail:0 skip:46 time:534s
fi-bwr-2160 total:285 pass:180 dwarn:0 dfail:0 fail:0 skip:105 time:295s
fi-bxt-dsi total:285 pass:255 dwarn:0 dfail:0 fail:0 skip:30 time:515s
fi-bxt-j4205 total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:511s
fi-byt-j1900 total:285 pass:250 dwarn:0 dfail:0 fail:0 skip:35 time:519s
fi-byt-n2820 total:285 pass:246 dwarn:0 dfail:0 fail:0 skip:39 time:505s
fi-cfl-8700k total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:410s
fi-cfl-s3 total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:560s
fi-cfl-u total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:515s
fi-cnl-y3 total:285 pass:259 dwarn:0 dfail:0 fail:0 skip:26 time:585s
fi-elk-e7500 total:285 pass:225 dwarn:1 dfail:0 fail:0 skip:59 time:426s
fi-gdg-551 total:285 pass:176 dwarn:0 dfail:0 fail:1 skip:108 time:319s
fi-glk-1 total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:535s
fi-hsw-4770 total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:404s
fi-ilk-650 total:285 pass:225 dwarn:0 dfail:0 fail:0 skip:60 time:422s
fi-ivb-3520m total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:472s
fi-ivb-3770 total:285 pass:252 dwarn:0 dfail:0 fail:0 skip:33 time:432s
fi-kbl-7500u total:285 pass:260 dwarn:1 dfail:0 fail:0 skip:24 time:470s
fi-kbl-7567u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:460s
fi-kbl-r total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:509s
fi-pnv-d510 total:285 pass:219 dwarn:1 dfail:0 fail:0 skip:65 time:659s
fi-skl-6260u total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:438s
fi-skl-6600u total:285 pass:258 dwarn:0 dfail:0 fail:0 skip:27 time:533s
fi-skl-6700k2 total:285 pass:261 dwarn:0 dfail:0 fail:0 skip:24 time:506s
fi-skl-6770hq total:285 pass:265 dwarn:0 dfail:0 fail:0 skip:20 time:504s
fi-skl-guc total:285 pass:257 dwarn:0 dfail:0 fail:0 skip:28 time:438s
fi-skl-gvtdvm total:285 pass:262 dwarn:0 dfail:0 fail:0 skip:23 time:444s
fi-snb-2600 total:285 pass:245 dwarn:0 dfail:0 fail:0 skip:40 time:397s
Blacklisted hosts:
fi-cnl-psr total:285 pass:256 dwarn:3 dfail:0 fail:0 skip:26 time:519s
fi-glk-j4005 total:285 pass:256 dwarn:0 dfail:0 fail:0 skip:29 time:484s
d6e43ca115e525e6d53539be28100d2ee0958655 drm-tip: 2018y-03m-29d-12h-46m-03s UTC integration manifest
ca6214e99d5b drm/i915: s/intel_plane/plane/ in sprite init
ddeff3237e98 drm/i915: Extract skl_universal_plane_init()
fd7566435480 drm/i915: Introduce intel_plane_alloc()
6176748cf0ba drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state()
2db8f3765e78 drm/i915: Add missing pixel formats for skl+ "sprites"
aec881e275b5 drm/i915: Disallow plane scaling with specific pixel formats
337d697f3b0d drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes
257570f84e78 drm/i915: Don't populate plane->i9xx_plane for sprites
adcdb8e9684d drm/i915: Populate possible_crtcs for primary/cursor planes
ec13bb3a5a64 drm/i915: Fix tabs vs. spaces
dbb14497f77a drm/i915: Constify intel_plane_funcs
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8533/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
* ✗ Fi.CI.IGT: failure for drm/i915: Some plane init cleanups (rev2)
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
` (15 preceding siblings ...)
2018-03-29 14:03 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-03-29 17:15 ` Patchwork
16 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2018-03-29 17:15 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Some plane init cleanups (rev2)
URL : https://patchwork.freedesktop.org/series/39390/
State : failure
== Summary ==
---- Possible new issues:
Test kms_chv_cursor_fail:
Subgroup pipe-b-64x64-top-edge:
pass -> FAIL (shard-apl)
---- Known issues:
Test kms_flip:
Subgroup blocking-wf_vblank:
pass -> FAIL (shard-hsw) fdo#100368
Test kms_flip_tiling:
Subgroup flip-to-x-tiled:
pass -> FAIL (shard-apl) fdo#103822
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-a:
incomplete -> PASS (shard-hsw) fdo#103375
Test perf:
Subgroup blocking:
pass -> FAIL (shard-hsw) fdo#102252
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
shard-apl total:3495 pass:1829 dwarn:1 dfail:0 fail:9 skip:1655 time:12960s
shard-hsw total:3495 pass:1781 dwarn:1 dfail:0 fail:3 skip:1709 time:11624s
shard-snb total:3495 pass:1374 dwarn:1 dfail:0 fail:3 skip:2117 time:7018s
Blacklisted hosts:
shard-kbl total:3495 pass:1958 dwarn:1 dfail:0 fail:7 skip:1529 time:9279s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8533/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2018-03-29 17:15 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-05 16:50 [PATCH 00/11] drm/i915: Some plane init cleanups Ville Syrjala
2018-03-05 16:50 ` [PATCH 01/11] drm/i915: Constify intel_plane_funcs Ville Syrjala
2018-03-05 16:51 ` [PATCH 02/11] drm/i915: Fix tabs vs. spaces Ville Syrjala
2018-03-05 16:51 ` [PATCH 03/11] drm/i915: Populate possible_crtcs for primary/cursor planes Ville Syrjala
2018-03-05 16:51 ` [PATCH 04/11] drm/i915: Don't populate plane->i9xx_plane for sprites Ville Syrjala
2018-03-05 16:51 ` [PATCH 05/11] drm/i915: Allow horizontal mirroring for cnl+ "sprite" planes Ville Syrjala
2018-03-06 7:49 ` Joonas Lahtinen
2018-03-05 16:51 ` [PATCH 06/11] drm/i915: Disallow plane scaling with specific pixel formats Ville Syrjala
2018-03-05 16:51 ` [PATCH 07/11] drm/i915: Add missing pixel formats for skl+ "sprites" Ville Syrjala
2018-03-05 16:51 ` [PATCH 08/11] drm/i915: Move plane_state->scaler_id initialization into intel_create_plane_state() Ville Syrjala
2018-03-05 16:51 ` [PATCH 09/11] drm/i915: Introduce intel_plane_alloc() Ville Syrjala
2018-03-05 16:51 ` [PATCH 10/11] drm/i915: Extract skl_universal_plane_init() Ville Syrjala
2018-03-19 13:50 ` [PATCH v2 " Ville Syrjala
2018-03-05 16:51 ` [PATCH 11/11] drm/i915: s/intel_plane/plane/ in sprite init Ville Syrjala
2018-03-05 17:27 ` ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups Patchwork
2018-03-16 20:42 ` ✓ Fi.CI.BAT: success " Patchwork
2018-03-17 2:50 ` ✗ Fi.CI.IGT: failure " Patchwork
2018-03-19 16:46 ` ✗ Fi.CI.BAT: failure for drm/i915: Some plane init cleanups (rev2) Patchwork
2018-03-29 14:03 ` ✓ Fi.CI.BAT: success " Patchwork
2018-03-29 17:15 ` ✗ Fi.CI.IGT: failure " 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).