mirror of https://gitee.com/openkylin/linux.git
drm/i915: Add support for sprites on g4x
Now that the watermarks are in order, it should be safe to enable sprite planes on g4x. We alreday have the code in fact, we just call it ilk_. Let's rename to g4x_ and let it loose. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170421181432.15216-16-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
This commit is contained in:
parent
e93329a5c0
commit
ab33081a18
|
@ -337,7 +337,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
|
|||
} else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
|
||||
for_each_pipe(dev_priv, pipe)
|
||||
info->num_sprites[pipe] = 2;
|
||||
} else if (INTEL_GEN(dev_priv) >= 5) {
|
||||
} else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv)) {
|
||||
for_each_pipe(dev_priv, pipe)
|
||||
info->num_sprites[pipe] = 1;
|
||||
}
|
||||
|
|
|
@ -1277,7 +1277,7 @@ static void assert_sprites_disabled(struct drm_i915_private *dev_priv,
|
|||
I915_STATE_WARN(val & SPRITE_ENABLE,
|
||||
"sprite %c assertion failure, should be off on pipe %c but is still active\n",
|
||||
plane_name(pipe), pipe_name(pipe));
|
||||
} else if (INTEL_GEN(dev_priv) >= 5) {
|
||||
} else if (INTEL_GEN(dev_priv) >= 5 || IS_G4X(dev_priv)) {
|
||||
u32 val = I915_READ(DVSCNTR(pipe));
|
||||
I915_STATE_WARN(val & DVS_ENABLE,
|
||||
"sprite %c assertion failure, should be off on pipe %c but is still active\n",
|
||||
|
@ -14429,7 +14429,7 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
|
|||
case DRM_FORMAT_UYVY:
|
||||
case DRM_FORMAT_YVYU:
|
||||
case DRM_FORMAT_VYUY:
|
||||
if (INTEL_GEN(dev_priv) < 5) {
|
||||
if (INTEL_GEN(dev_priv) < 5 && !IS_G4X(dev_priv)) {
|
||||
DRM_DEBUG_KMS("unsupported pixel format: %s\n",
|
||||
drm_get_format_name(mode_cmd->pixel_format, &format_name));
|
||||
goto err;
|
||||
|
|
|
@ -629,7 +629,7 @@ ivb_disable_plane(struct drm_plane *plane, struct drm_crtc *crtc)
|
|||
spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
|
||||
}
|
||||
|
||||
static u32 ilk_sprite_ctl(const struct intel_crtc_state *crtc_state,
|
||||
static u32 g4x_sprite_ctl(const struct intel_crtc_state *crtc_state,
|
||||
const struct intel_plane_state *plane_state)
|
||||
{
|
||||
struct drm_i915_private *dev_priv =
|
||||
|
@ -683,7 +683,7 @@ static u32 ilk_sprite_ctl(const struct intel_crtc_state *crtc_state,
|
|||
}
|
||||
|
||||
static void
|
||||
ilk_update_plane(struct drm_plane *plane,
|
||||
g4x_update_plane(struct drm_plane *plane,
|
||||
const struct intel_crtc_state *crtc_state,
|
||||
const struct intel_plane_state *plane_state)
|
||||
{
|
||||
|
@ -744,7 +744,7 @@ ilk_update_plane(struct drm_plane *plane,
|
|||
}
|
||||
|
||||
static void
|
||||
ilk_disable_plane(struct drm_plane *plane, struct drm_crtc *crtc)
|
||||
g4x_disable_plane(struct drm_plane *plane, struct drm_crtc *crtc)
|
||||
{
|
||||
struct drm_device *dev = plane->dev;
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
|
@ -964,7 +964,7 @@ intel_check_sprite_plane(struct drm_plane *plane,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
state->ctl = ilk_sprite_ctl(crtc_state, state);
|
||||
state->ctl = g4x_sprite_ctl(crtc_state, state);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -1024,7 +1024,7 @@ int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static const uint32_t ilk_plane_formats[] = {
|
||||
static const uint32_t g4x_plane_formats[] = {
|
||||
DRM_FORMAT_XRGB8888,
|
||||
DRM_FORMAT_YUYV,
|
||||
DRM_FORMAT_YVYU,
|
||||
|
@ -1128,15 +1128,15 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
|
|||
intel_plane->can_scale = true;
|
||||
intel_plane->max_downscale = 16;
|
||||
|
||||
intel_plane->update_plane = ilk_update_plane;
|
||||
intel_plane->disable_plane = ilk_disable_plane;
|
||||
intel_plane->update_plane = g4x_update_plane;
|
||||
intel_plane->disable_plane = g4x_disable_plane;
|
||||
|
||||
if (IS_GEN6(dev_priv)) {
|
||||
plane_formats = snb_plane_formats;
|
||||
num_plane_formats = ARRAY_SIZE(snb_plane_formats);
|
||||
} else {
|
||||
plane_formats = ilk_plane_formats;
|
||||
num_plane_formats = ARRAY_SIZE(ilk_plane_formats);
|
||||
plane_formats = g4x_plane_formats;
|
||||
num_plane_formats = ARRAY_SIZE(g4x_plane_formats);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue