diff options
author | Patrik Jakobsson <patrik.r.jakobsson@gmail.com> | 2013-08-14 18:54:44 -0400 |
---|---|---|
committer | Patrik Jakobsson <patrik.r.jakobsson@gmail.com> | 2013-08-14 18:54:44 -0400 |
commit | 75346fe9bc4c9b366c760200a665a2c55b789389 (patch) | |
tree | 32b8f2a91b1f3987aa958fe180146490f1903b3d | |
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>
-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 747d903fe49f..162f686c532d 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 = { | |||
657 | .power_down = cdv_power_down, | 657 | .power_down = cdv_power_down, |
658 | .power_up = cdv_power_up, | 658 | .power_up = cdv_power_up, |
659 | .update_wm = cdv_update_wm, | 659 | .update_wm = cdv_update_wm, |
660 | .disable_sr = cdv_disable_sr, | ||
660 | }; | 661 | }; |
diff --git a/drivers/gpu/drm/gma500/cdv_device.h b/drivers/gpu/drm/gma500/cdv_device.h index 9e4805627450..705c11d47d45 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 * | |||
27 | extern struct drm_display_mode *cdv_intel_crtc_mode_get(struct drm_device *dev, | 27 | extern struct drm_display_mode *cdv_intel_crtc_mode_get(struct drm_device *dev, |
28 | struct drm_crtc *crtc); | 28 | struct drm_crtc *crtc); |
29 | extern void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc); | 29 | extern void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc); |
30 | 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 feacbbaabf14..8fbfa06da62d 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) | |||
511 | return false; | 511 | return false; |
512 | } | 512 | } |
513 | 513 | ||
514 | void cdv_intel_disable_self_refresh(struct drm_device *dev) | 514 | void cdv_disable_sr(struct drm_device *dev) |
515 | { | 515 | { |
516 | if (REG_READ(FW_BLC_SELF) & FW_BLC_SELF_EN) { | 516 | if (REG_READ(FW_BLC_SELF) & FW_BLC_SELF_EN) { |
517 | 517 | ||
@@ -534,6 +534,7 @@ void cdv_intel_disable_self_refresh(struct drm_device *dev) | |||
534 | 534 | ||
535 | void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc) | 535 | void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc) |
536 | { | 536 | { |
537 | struct drm_psb_private *dev_priv = dev->dev_private; | ||
537 | 538 | ||
538 | if (cdv_intel_single_pipe_active(dev)) { | 539 | if (cdv_intel_single_pipe_active(dev)) { |
539 | u32 fw; | 540 | u32 fw; |
@@ -587,8 +588,7 @@ void cdv_update_wm(struct drm_device *dev, struct drm_crtc *crtc) | |||
587 | 588 | ||
588 | gma_wait_for_vblank(dev); | 589 | gma_wait_for_vblank(dev); |
589 | 590 | ||
590 | cdv_intel_disable_self_refresh(dev); | 591 | dev_priv->ops->disable_sr(dev); |
591 | |||
592 | } | 592 | } |
593 | } | 593 | } |
594 | 594 | ||
diff --git a/drivers/gpu/drm/gma500/gma_display.c b/drivers/gpu/drm/gma500/gma_display.c index fe972c930c2c..24e8af3d22bf 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) | |||
211 | */ | 211 | */ |
212 | 212 | ||
213 | if (IS_CDV(dev)) | 213 | if (IS_CDV(dev)) |
214 | cdv_intel_disable_self_refresh(dev); | 214 | dev_priv->ops->disable_sr(dev); |
215 | 215 | ||
216 | switch (mode) { | 216 | switch (mode) { |
217 | case DRM_MODE_DPMS_ON: | 217 | case DRM_MODE_DPMS_ON: |
diff --git a/drivers/gpu/drm/gma500/gma_display.h b/drivers/gpu/drm/gma500/gma_display.h index 9a4e8941bd25..78b9f986a6e5 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, | |||
100 | extern bool gma_find_best_pll(const struct gma_limit_t *limit, | 100 | extern bool gma_find_best_pll(const struct gma_limit_t *limit, |
101 | struct drm_crtc *crtc, int target, int refclk, | 101 | struct drm_crtc *crtc, int target, int refclk, |
102 | struct gma_clock_t *best_clock); | 102 | struct gma_clock_t *best_clock); |
103 | |||
104 | /* Cedarview specific functions */ | ||
105 | extern void cdv_intel_disable_self_refresh(struct drm_device *dev); | ||
106 | #endif | 103 | #endif |
diff --git a/drivers/gpu/drm/gma500/psb_drv.h b/drivers/gpu/drm/gma500/psb_drv.h index effd69502be5..b7221f3c40b9 100644 --- a/drivers/gpu/drm/gma500/psb_drv.h +++ b/drivers/gpu/drm/gma500/psb_drv.h | |||
@@ -696,6 +696,7 @@ struct psb_ops { | |||
696 | int (*power_up)(struct drm_device *dev); | 696 | int (*power_up)(struct drm_device *dev); |
697 | int (*power_down)(struct drm_device *dev); | 697 | int (*power_down)(struct drm_device *dev); |
698 | void (*update_wm)(struct drm_device *dev, struct drm_crtc *crtc); | 698 | void (*update_wm)(struct drm_device *dev, struct drm_crtc *crtc); |
699 | void (*disable_sr)(struct drm_device *dev); | ||
699 | 700 | ||
700 | void (*lvds_bl_power)(struct drm_device *dev, bool on); | 701 | void (*lvds_bl_power)(struct drm_device *dev, bool on); |
701 | #ifdef CONFIG_BACKLIGHT_CLASS_DEVICE | 702 | #ifdef CONFIG_BACKLIGHT_CLASS_DEVICE |