diff options
| author | Bartlomiej Zolnierkiewicz <[email protected]> | 2018-09-26 15:54:31 +0200 | 
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <[email protected]> | 2018-09-26 15:54:31 +0200 | 
| commit | aaccf3c97418f169afdbb5855e9cbcbda34e90fd (patch) | |
| tree | 5d4207e67958bdbc23288cf30178692f5534e1a0 /drivers/gpu/drm/msm/msm_kms.h | |
| parent | f39684524b391c5a7ed0ac44db4fec3357af1c5d (diff) | |
| parent | 6bf4ca7fbc85d80446ac01c0d1d77db4d91a6d84 (diff) | |
Merge tag 'v4.19-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into fbdev-for-next
Sync with upstream (which now contains fbdev-v4.19 changes) to
prepare a base for fbdev-v4.20 changes.
Diffstat (limited to 'drivers/gpu/drm/msm/msm_kms.h')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_kms.h | 29 | 
1 files changed, 25 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h index dfd92947de2c..fd88cebb6adb 100644 --- a/drivers/gpu/drm/msm/msm_kms.h +++ b/drivers/gpu/drm/msm/msm_kms.h @@ -1,4 +1,5 @@  /* + * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.   * Copyright (C) 2013 Red Hat   * Author: Rob Clark <[email protected]>   * @@ -42,6 +43,7 @@ struct msm_kms_funcs {  	void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);  	/* modeset, bracketing atomic_commit(): */  	void (*prepare_commit)(struct msm_kms *kms, struct drm_atomic_state *state); +	void (*commit)(struct msm_kms *kms, struct drm_atomic_state *state);  	void (*complete_commit)(struct msm_kms *kms, struct drm_atomic_state *state);  	/* functions to wait for atomic commit completed on each CRTC */  	void (*wait_for_crtc_commit_done)(struct msm_kms *kms, @@ -50,6 +52,11 @@ struct msm_kms_funcs {  	const struct msm_format *(*get_format)(struct msm_kms *kms,  					const uint32_t format,  					const uint64_t modifiers); +	/* do format checking on format modified through fb_cmd2 modifiers */ +	int (*check_modified_format)(const struct msm_kms *kms, +			const struct msm_format *msm_fmt, +			const struct drm_mode_fb_cmd2 *cmd, +			struct drm_gem_object **bos);  	/* misc: */  	long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,  			struct drm_encoder *encoder); @@ -60,6 +67,9 @@ struct msm_kms_funcs {  	void (*set_encoder_mode)(struct msm_kms *kms,  				 struct drm_encoder *encoder,  				 bool cmd_mode); +	/* pm suspend/resume hooks */ +	int (*pm_suspend)(struct device *dev); +	int (*pm_resume)(struct device *dev);  	/* cleanup: */  	void (*destroy)(struct msm_kms *kms);  #ifdef CONFIG_DEBUG_FS @@ -86,9 +96,20 @@ static inline void msm_kms_init(struct msm_kms *kms,  struct msm_kms *mdp4_kms_init(struct drm_device *dev);  struct msm_kms *mdp5_kms_init(struct drm_device *dev); -int msm_mdss_init(struct drm_device *dev); -void msm_mdss_destroy(struct drm_device *dev); -int msm_mdss_enable(struct msm_mdss *mdss); -int msm_mdss_disable(struct msm_mdss *mdss); +struct msm_kms *dpu_kms_init(struct drm_device *dev); + +struct msm_mdss_funcs { +	int (*enable)(struct msm_mdss *mdss); +	int (*disable)(struct msm_mdss *mdss); +	void (*destroy)(struct drm_device *dev); +}; + +struct msm_mdss { +	struct drm_device *dev; +	const struct msm_mdss_funcs *funcs; +}; + +int mdp5_mdss_init(struct drm_device *dev); +int dpu_mdss_init(struct drm_device *dev);  #endif /* __MSM_KMS_H__ */ |