diff options
author | Patrik Jakobsson <patrik.r.jakobsson@gmail.com> | 2013-08-15 00:54:44 +0200 |
---|---|---|
committer | Patrik Jakobsson <patrik.r.jakobsson@gmail.com> | 2013-08-15 00:54:44 +0200 |
commit | 75346fe9bc4c9b366c760200a665a2c55b789389 (patch) | |
tree | 32b8f2a91b1f3987aa958fe180146490f1903b3d /drivers/gpu/drm/gma500 | |
parent | 28a8194c12f8c8bb46aecd4cb1f36bac716714c4 (diff) |
drm/gma500/cdv: Add and hook up chip op for disabling sr
Add a callback hook to the chip ops struct to allow chips to have their
specific self-refresh function. Currently only used by cdv.
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/gma500')
-rw-r--r-- | drivers/gpu/drm/gma500/cdv_device.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/gma500/cdv_device.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/gma500/cdv_intel_display.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/gma500/gma_display.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/gma500/gma_display.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/gma500/psb_drv.h | 1 |
6 files changed, 7 insertions, 7 deletions
diff --git a/drivers/gpu/drm/gma500/cdv_device.c b/drivers/gpu/drm/gma500/cdv_device.c index 747d903fe49..162f686c532 100644 --- a/drivers/gpu/drm/gma500/cdv_device.c +++ b/drivers/gpu/drm/gma500/cdv_device.c @@ -657,4 +657,5 @@ const struct psb_ops cdv_chip_ops = { .power_down = cdv_power_down, .power_up = cdv_power_up, .update_wm = cdv_update_wm, + .disable_sr = cdv_disable_sr, }; diff --git a/drivers/gpu/drm/gma500/cdv_device.h b/drivers/gpu/drm/gma500/cdv_device.h index 9e480562745..705c11d47d4 100644 --- a/drivers/gpu/drm/gma500/cdv_device.h +++ b/drivers/gpu/drm/gma500/cdv_device.h @@ -27,3 +27,4 @@ extern void cdv_hdmi_init(struct drm_device *dev, struct psb_intel_mode_device * extern struct drm_display_mode *cdv_intel_crtc_mode_get(struct drm_device *dev, struct drm_crtc *crtc); extern void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc); +extern void cdv_disable_sr(struct drm_device *dev); diff --git a/drivers/gpu/drm/gma500/cdv_intel_display.c b/drivers/gpu/drm/gma500/cdv_intel_display.c index feacbbaabf1..8fbfa06da62 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_display.c +++ b/drivers/gpu/drm/gma500/cdv_intel_display.c @@ -511,7 +511,7 @@ static bool is_pipeb_lvds(struct drm_device *dev, struct drm_crtc *crtc) return false; } -void cdv_intel_disable_self_refresh(struct drm_device *dev) +void cdv_disable_sr(struct drm_device *dev) { if (REG_READ(FW_BLC_SELF) & FW_BLC_SELF_EN) { @@ -534,6 +534,7 @@ void cdv_intel_disable_self_refresh(struct drm_device *dev) void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc) { + struct drm_psb_private *dev_priv = dev->dev_private; if (cdv_intel_single_pipe_active(dev)) { u32 fw; @@ -587,8 +588,7 @@ void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc) gma_wait_for_vblank(dev); - cdv_intel_disable_self_refresh(dev); - + dev_priv->ops->disable_sr(dev); } } diff --git a/drivers/gpu/drm/gma500/gma_display.c b/drivers/gpu/drm/gma500/gma_display.c index fe972c930c2..24e8af3d22b 100644 --- a/drivers/gpu/drm/gma500/gma_display.c +++ b/drivers/gpu/drm/gma500/gma_display.c @@ -211,7 +211,7 @@ void gma_crtc_dpms(struct drm_crtc *crtc, int mode) */ if (IS_CDV(dev)) - cdv_intel_disable_self_refresh(dev); + dev_priv->ops->disable_sr(dev); switch (mode) { case DRM_MODE_DPMS_ON: diff --git a/drivers/gpu/drm/gma500/gma_display.h b/drivers/gpu/drm/gma500/gma_display.h index 9a4e8941bd2..78b9f986a6e 100644 --- a/drivers/gpu/drm/gma500/gma_display.h +++ b/drivers/gpu/drm/gma500/gma_display.h @@ -100,7 +100,4 @@ extern bool gma_pll_is_valid(struct drm_crtc *crtc, extern bool gma_find_best_pll(const struct gma_limit_t *limit, struct drm_crtc *crtc, int target, int refclk, struct gma_clock_t *best_clock); - -/* Cedarview specific functions */ -extern void cdv_intel_disable_self_refresh(struct drm_device *dev); #endif diff --git a/drivers/gpu/drm/gma500/psb_drv.h b/drivers/gpu/drm/gma500/psb_drv.h index effd69502be..b7221f3c40b 100644 --- a/drivers/gpu/drm/gma500/psb_drv.h +++ b/drivers/gpu/drm/gma500/psb_drv.h @@ -696,6 +696,7 @@ struct psb_ops { int (*power_up)(struct drm_device *dev); int (*power_down)(struct drm_device *dev); void (*update_wm)(struct drm_device *dev, struct drm_crtc *crtc); + void (*disable_sr)(struct drm_device *dev); void (*lvds_bl_power)(struct drm_device *dev, bool on); #ifdef CONFIG_BACKLIGHT_CLASS_DEVICE |