summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/arm/hdlcd_drv.h
diff options
context:
space:
mode:
authorLiviu Dudau <Liviu.Dudau@arm.com>2016-05-17 11:06:54 +0200
committerLiviu Dudau <Liviu.Dudau@arm.com>2016-06-02 18:43:59 +0200
commita95acec16d932ac78c2f70dc95a83bd162595d6c (patch)
treec9144809601a1940ec951bb0a2779f23a4529f6b /drivers/gpu/drm/arm/hdlcd_drv.h
parentLinux 4.7-rc1 (diff)
downloadlinux-a95acec16d932ac78c2f70dc95a83bd162595d6c.tar.xz
linux-a95acec16d932ac78c2f70dc95a83bd162595d6c.zip
drm: hdlcd: Revamp runtime power management
Because the HDLCD driver acts as a component master it can end up enabling the runtime PM functionality before the encoders are initialised. This can cause crashes if the component slave never probes (missing module) or if the PM operations kick in before the probe finishes. Move the enabling of the runtime PM after the component master has finished collecting the slave components and use the DRM atomic helpers to suspend and resume the device. Tested-by: Robin Murphy <Robin.Murphy@arm.com> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Diffstat (limited to 'drivers/gpu/drm/arm/hdlcd_drv.h')
-rw-r--r--drivers/gpu/drm/arm/hdlcd_drv.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/gpu/drm/arm/hdlcd_drv.h b/drivers/gpu/drm/arm/hdlcd_drv.h
index aa234784f053..e7cea8233958 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.h
+++ b/drivers/gpu/drm/arm/hdlcd_drv.h
@@ -13,6 +13,7 @@ struct hdlcd_drm_private {
struct list_head event_list;
struct drm_crtc crtc;
struct drm_plane *plane;
+ struct drm_atomic_state *state;
#ifdef CONFIG_DEBUG_FS
atomic_t buffer_underrun_count;
atomic_t bus_error_count;
@@ -36,7 +37,5 @@ static inline u32 hdlcd_read(struct hdlcd_drm_private *hdlcd, unsigned int reg)
int hdlcd_setup_crtc(struct drm_device *dev);
void hdlcd_set_scanout(struct hdlcd_drm_private *hdlcd);
-void hdlcd_crtc_suspend(struct drm_crtc *crtc);
-void hdlcd_crtc_resume(struct drm_crtc *crtc);
#endif /* __HDLCD_DRV_H__ */