mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	drm/gma500: Move to private save/restore hooks
I want to remove the core ones since with atomic drivers system suspend/resume is solved much differently. And there's only 2 drivers (nouveau besides gma500) really using them. v2: Fixup build noise 0day reported. Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-13-git-send-email-daniel.vetter@ffwll.ch Reviewed-by: Thierry Reding <treding@nvidia.com> (v1)
This commit is contained in:
		
							parent
							
								
									458091b578
								
							
						
					
					
						commit
						d56f57ac96
					
				| @ -619,6 +619,8 @@ const struct psb_ops cdv_chip_ops = { | |||||||
| 	.init_pm = cdv_init_pm, | 	.init_pm = cdv_init_pm, | ||||||
| 	.save_regs = cdv_save_display_registers, | 	.save_regs = cdv_save_display_registers, | ||||||
| 	.restore_regs = cdv_restore_display_registers, | 	.restore_regs = cdv_restore_display_registers, | ||||||
|  | 	.save_crtc = gma_crtc_save, | ||||||
|  | 	.restore_crtc = gma_crtc_restore, | ||||||
| 	.power_down = cdv_power_down, | 	.power_down = cdv_power_down, | ||||||
| 	.power_up = cdv_power_up, | 	.power_up = cdv_power_up, | ||||||
| 	.update_wm = cdv_update_wm, | 	.update_wm = cdv_update_wm, | ||||||
|  | |||||||
| @ -983,8 +983,6 @@ const struct drm_crtc_helper_funcs cdv_intel_helper_funcs = { | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const struct drm_crtc_funcs cdv_intel_crtc_funcs = { | const struct drm_crtc_funcs cdv_intel_crtc_funcs = { | ||||||
| 	.save = gma_crtc_save, |  | ||||||
| 	.restore = gma_crtc_restore, |  | ||||||
| 	.cursor_set = gma_crtc_cursor_set, | 	.cursor_set = gma_crtc_cursor_set, | ||||||
| 	.cursor_move = gma_crtc_cursor_move, | 	.cursor_move = gma_crtc_cursor_move, | ||||||
| 	.gamma_set = gma_crtc_gamma_set, | 	.gamma_set = gma_crtc_gamma_set, | ||||||
|  | |||||||
| @ -270,8 +270,6 @@ static const struct drm_connector_helper_funcs | |||||||
| 
 | 
 | ||||||
| static const struct drm_connector_funcs cdv_hdmi_connector_funcs = { | static const struct drm_connector_funcs cdv_hdmi_connector_funcs = { | ||||||
| 	.dpms = drm_helper_connector_dpms, | 	.dpms = drm_helper_connector_dpms, | ||||||
| 	.save = cdv_hdmi_save, |  | ||||||
| 	.restore = cdv_hdmi_restore, |  | ||||||
| 	.detect = cdv_hdmi_detect, | 	.detect = cdv_hdmi_detect, | ||||||
| 	.fill_modes = drm_helper_probe_single_connector_modes, | 	.fill_modes = drm_helper_probe_single_connector_modes, | ||||||
| 	.set_property = cdv_hdmi_set_property, | 	.set_property = cdv_hdmi_set_property, | ||||||
| @ -306,6 +304,9 @@ void cdv_hdmi_init(struct drm_device *dev, | |||||||
| 
 | 
 | ||||||
| 	connector = &gma_connector->base; | 	connector = &gma_connector->base; | ||||||
| 	connector->polled = DRM_CONNECTOR_POLL_HPD; | 	connector->polled = DRM_CONNECTOR_POLL_HPD; | ||||||
|  | 	gma_connector->save = cdv_hdmi_save; | ||||||
|  | 	gma_connector->restore = cdv_hdmi_restore; | ||||||
|  | 
 | ||||||
| 	encoder = &gma_encoder->base; | 	encoder = &gma_encoder->base; | ||||||
| 	drm_connector_init(dev, connector, | 	drm_connector_init(dev, connector, | ||||||
| 			   &cdv_hdmi_connector_funcs, | 			   &cdv_hdmi_connector_funcs, | ||||||
|  | |||||||
| @ -530,8 +530,6 @@ static const struct drm_connector_helper_funcs | |||||||
| 
 | 
 | ||||||
| static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = { | static const struct drm_connector_funcs cdv_intel_lvds_connector_funcs = { | ||||||
| 	.dpms = drm_helper_connector_dpms, | 	.dpms = drm_helper_connector_dpms, | ||||||
| 	.save = cdv_intel_lvds_save, |  | ||||||
| 	.restore = cdv_intel_lvds_restore, |  | ||||||
| 	.detect = cdv_intel_lvds_detect, | 	.detect = cdv_intel_lvds_detect, | ||||||
| 	.fill_modes = drm_helper_probe_single_connector_modes, | 	.fill_modes = drm_helper_probe_single_connector_modes, | ||||||
| 	.set_property = cdv_intel_lvds_set_property, | 	.set_property = cdv_intel_lvds_set_property, | ||||||
| @ -643,6 +641,8 @@ void cdv_intel_lvds_init(struct drm_device *dev, | |||||||
| 	gma_encoder->dev_priv = lvds_priv; | 	gma_encoder->dev_priv = lvds_priv; | ||||||
| 
 | 
 | ||||||
| 	connector = &gma_connector->base; | 	connector = &gma_connector->base; | ||||||
|  | 	gma_connector->save = cdv_intel_lvds_save; | ||||||
|  | 	gma_connector->restore = cdv_intel_lvds_restore; | ||||||
| 	encoder = &gma_encoder->base; | 	encoder = &gma_encoder->base; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -546,6 +546,8 @@ const struct psb_ops mdfld_chip_ops = { | |||||||
| 
 | 
 | ||||||
| 	.save_regs = mdfld_save_registers, | 	.save_regs = mdfld_save_registers, | ||||||
| 	.restore_regs = mdfld_restore_registers, | 	.restore_regs = mdfld_restore_registers, | ||||||
|  | 	.save_crtc = gma_crtc_save, | ||||||
|  | 	.restore_crtc = gma_crtc_restore, | ||||||
| 	.power_down = mdfld_power_down, | 	.power_down = mdfld_power_down, | ||||||
| 	.power_up = mdfld_power_up, | 	.power_up = mdfld_power_up, | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -405,8 +405,6 @@ static struct drm_encoder *mdfld_dsi_connector_best_encoder( | |||||||
| /*DSI connector funcs*/ | /*DSI connector funcs*/ | ||||||
| static const struct drm_connector_funcs mdfld_dsi_connector_funcs = { | static const struct drm_connector_funcs mdfld_dsi_connector_funcs = { | ||||||
| 	.dpms = /*drm_helper_connector_dpms*/mdfld_dsi_connector_dpms, | 	.dpms = /*drm_helper_connector_dpms*/mdfld_dsi_connector_dpms, | ||||||
| 	.save = mdfld_dsi_connector_save, |  | ||||||
| 	.restore = mdfld_dsi_connector_restore, |  | ||||||
| 	.detect = mdfld_dsi_connector_detect, | 	.detect = mdfld_dsi_connector_detect, | ||||||
| 	.fill_modes = drm_helper_probe_single_connector_modes, | 	.fill_modes = drm_helper_probe_single_connector_modes, | ||||||
| 	.set_property = mdfld_dsi_connector_set_property, | 	.set_property = mdfld_dsi_connector_set_property, | ||||||
| @ -563,6 +561,9 @@ void mdfld_dsi_output_init(struct drm_device *dev, | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 	connector = &dsi_connector->base.base; | 	connector = &dsi_connector->base.base; | ||||||
|  | 	dsi_connector->base.save = mdfld_dsi_connector_save; | ||||||
|  | 	dsi_connector->base.restore = mdfld_dsi_connector_restore; | ||||||
|  | 
 | ||||||
| 	drm_connector_init(dev, connector, &mdfld_dsi_connector_funcs, | 	drm_connector_init(dev, connector, &mdfld_dsi_connector_funcs, | ||||||
| 						DRM_MODE_CONNECTOR_LVDS); | 						DRM_MODE_CONNECTOR_LVDS); | ||||||
| 	drm_connector_helper_add(connector, &mdfld_dsi_connector_helper_funcs); | 	drm_connector_helper_add(connector, &mdfld_dsi_connector_helper_funcs); | ||||||
|  | |||||||
| @ -568,6 +568,8 @@ const struct psb_ops oaktrail_chip_ops = { | |||||||
| 
 | 
 | ||||||
| 	.save_regs = oaktrail_save_display_registers, | 	.save_regs = oaktrail_save_display_registers, | ||||||
| 	.restore_regs = oaktrail_restore_display_registers, | 	.restore_regs = oaktrail_restore_display_registers, | ||||||
|  | 	.save_crtc = gma_crtc_save, | ||||||
|  | 	.restore_crtc = gma_crtc_restore, | ||||||
| 	.power_down = oaktrail_power_down, | 	.power_down = oaktrail_power_down, | ||||||
| 	.power_up = oaktrail_power_up, | 	.power_up = oaktrail_power_up, | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -181,7 +181,7 @@ static int psb_save_display_registers(struct drm_device *dev) | |||||||
| { | { | ||||||
| 	struct drm_psb_private *dev_priv = dev->dev_private; | 	struct drm_psb_private *dev_priv = dev->dev_private; | ||||||
| 	struct drm_crtc *crtc; | 	struct drm_crtc *crtc; | ||||||
| 	struct drm_connector *connector; | 	struct gma_connector *connector; | ||||||
| 	struct psb_state *regs = &dev_priv->regs.psb; | 	struct psb_state *regs = &dev_priv->regs.psb; | ||||||
| 
 | 
 | ||||||
| 	/* Display arbitration control + watermarks */ | 	/* Display arbitration control + watermarks */ | ||||||
| @ -198,12 +198,12 @@ static int psb_save_display_registers(struct drm_device *dev) | |||||||
| 	drm_modeset_lock_all(dev); | 	drm_modeset_lock_all(dev); | ||||||
| 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | ||||||
| 		if (drm_helper_crtc_in_use(crtc)) | 		if (drm_helper_crtc_in_use(crtc)) | ||||||
| 			crtc->funcs->save(crtc); | 			dev_priv->ops->save_crtc(crtc); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) | 	list_for_each_entry(connector, &dev->mode_config.connector_list, base.head) | ||||||
| 		if (connector->funcs->save) | 		if (connector->save) | ||||||
| 			connector->funcs->save(connector); | 			connector->save(&connector->base); | ||||||
| 
 | 
 | ||||||
| 	drm_modeset_unlock_all(dev); | 	drm_modeset_unlock_all(dev); | ||||||
| 	return 0; | 	return 0; | ||||||
| @ -219,7 +219,7 @@ static int psb_restore_display_registers(struct drm_device *dev) | |||||||
| { | { | ||||||
| 	struct drm_psb_private *dev_priv = dev->dev_private; | 	struct drm_psb_private *dev_priv = dev->dev_private; | ||||||
| 	struct drm_crtc *crtc; | 	struct drm_crtc *crtc; | ||||||
| 	struct drm_connector *connector; | 	struct gma_connector *connector; | ||||||
| 	struct psb_state *regs = &dev_priv->regs.psb; | 	struct psb_state *regs = &dev_priv->regs.psb; | ||||||
| 
 | 
 | ||||||
| 	/* Display arbitration + watermarks */ | 	/* Display arbitration + watermarks */ | ||||||
| @ -238,11 +238,11 @@ static int psb_restore_display_registers(struct drm_device *dev) | |||||||
| 	drm_modeset_lock_all(dev); | 	drm_modeset_lock_all(dev); | ||||||
| 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) | 	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) | ||||||
| 		if (drm_helper_crtc_in_use(crtc)) | 		if (drm_helper_crtc_in_use(crtc)) | ||||||
| 			crtc->funcs->restore(crtc); | 			dev_priv->ops->restore_crtc(crtc); | ||||||
| 
 | 
 | ||||||
| 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) | 	list_for_each_entry(connector, &dev->mode_config.connector_list, base.head) | ||||||
| 		if (connector->funcs->restore) | 		if (connector->restore) | ||||||
| 			connector->funcs->restore(connector); | 			connector->restore(&connector->base); | ||||||
| 
 | 
 | ||||||
| 	drm_modeset_unlock_all(dev); | 	drm_modeset_unlock_all(dev); | ||||||
| 	return 0; | 	return 0; | ||||||
| @ -354,6 +354,8 @@ const struct psb_ops psb_chip_ops = { | |||||||
| 	.init_pm = psb_init_pm, | 	.init_pm = psb_init_pm, | ||||||
| 	.save_regs = psb_save_display_registers, | 	.save_regs = psb_save_display_registers, | ||||||
| 	.restore_regs = psb_restore_display_registers, | 	.restore_regs = psb_restore_display_registers, | ||||||
|  | 	.save_crtc = gma_crtc_save, | ||||||
|  | 	.restore_crtc = gma_crtc_restore, | ||||||
| 	.power_down = psb_power_down, | 	.power_down = psb_power_down, | ||||||
| 	.power_up = psb_power_up, | 	.power_up = psb_power_up, | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -653,6 +653,8 @@ struct psb_ops { | |||||||
| 	void (*init_pm)(struct drm_device *dev); | 	void (*init_pm)(struct drm_device *dev); | ||||||
| 	int (*save_regs)(struct drm_device *dev); | 	int (*save_regs)(struct drm_device *dev); | ||||||
| 	int (*restore_regs)(struct drm_device *dev); | 	int (*restore_regs)(struct drm_device *dev); | ||||||
|  | 	void (*save_crtc)(struct drm_crtc *crtc); | ||||||
|  | 	void (*restore_crtc)(struct drm_crtc *crtc); | ||||||
| 	int (*power_up)(struct drm_device *dev); | 	int (*power_up)(struct drm_device *dev); | ||||||
| 	int (*power_down)(struct drm_device *dev); | 	int (*power_down)(struct drm_device *dev); | ||||||
| 	void (*update_wm)(struct drm_device *dev, struct drm_crtc *crtc); | 	void (*update_wm)(struct drm_device *dev, struct drm_crtc *crtc); | ||||||
|  | |||||||
| @ -439,8 +439,6 @@ const struct drm_crtc_helper_funcs psb_intel_helper_funcs = { | |||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const struct drm_crtc_funcs psb_intel_crtc_funcs = { | const struct drm_crtc_funcs psb_intel_crtc_funcs = { | ||||||
| 	.save = gma_crtc_save, |  | ||||||
| 	.restore = gma_crtc_restore, |  | ||||||
| 	.cursor_set = gma_crtc_cursor_set, | 	.cursor_set = gma_crtc_cursor_set, | ||||||
| 	.cursor_move = gma_crtc_cursor_move, | 	.cursor_move = gma_crtc_cursor_move, | ||||||
| 	.gamma_set = gma_crtc_gamma_set, | 	.gamma_set = gma_crtc_gamma_set, | ||||||
|  | |||||||
| @ -140,6 +140,9 @@ struct gma_encoder { | |||||||
| struct gma_connector { | struct gma_connector { | ||||||
| 	struct drm_connector base; | 	struct drm_connector base; | ||||||
| 	struct gma_encoder *encoder; | 	struct gma_encoder *encoder; | ||||||
|  | 
 | ||||||
|  | 	void (*save)(struct drm_connector *connector); | ||||||
|  | 	void (*restore)(struct drm_connector *connector); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct psb_intel_crtc_state { | struct psb_intel_crtc_state { | ||||||
|  | |||||||
| @ -653,8 +653,6 @@ const struct drm_connector_helper_funcs | |||||||
| 
 | 
 | ||||||
| const struct drm_connector_funcs psb_intel_lvds_connector_funcs = { | const struct drm_connector_funcs psb_intel_lvds_connector_funcs = { | ||||||
| 	.dpms = drm_helper_connector_dpms, | 	.dpms = drm_helper_connector_dpms, | ||||||
| 	.save = psb_intel_lvds_save, |  | ||||||
| 	.restore = psb_intel_lvds_restore, |  | ||||||
| 	.detect = psb_intel_lvds_detect, | 	.detect = psb_intel_lvds_detect, | ||||||
| 	.fill_modes = drm_helper_probe_single_connector_modes, | 	.fill_modes = drm_helper_probe_single_connector_modes, | ||||||
| 	.set_property = psb_intel_lvds_set_property, | 	.set_property = psb_intel_lvds_set_property, | ||||||
| @ -715,6 +713,9 @@ void psb_intel_lvds_init(struct drm_device *dev, | |||||||
| 	gma_encoder->dev_priv = lvds_priv; | 	gma_encoder->dev_priv = lvds_priv; | ||||||
| 
 | 
 | ||||||
| 	connector = &gma_connector->base; | 	connector = &gma_connector->base; | ||||||
|  | 	gma_connector->save = psb_intel_lvds_save; | ||||||
|  | 	gma_connector->restore = psb_intel_lvds_restore; | ||||||
|  | 
 | ||||||
| 	encoder = &gma_encoder->base; | 	encoder = &gma_encoder->base; | ||||||
| 	drm_connector_init(dev, connector, | 	drm_connector_init(dev, connector, | ||||||
| 			   &psb_intel_lvds_connector_funcs, | 			   &psb_intel_lvds_connector_funcs, | ||||||
|  | |||||||
| @ -1837,8 +1837,6 @@ static const struct drm_encoder_helper_funcs psb_intel_sdvo_helper_funcs = { | |||||||
| 
 | 
 | ||||||
| static const struct drm_connector_funcs psb_intel_sdvo_connector_funcs = { | static const struct drm_connector_funcs psb_intel_sdvo_connector_funcs = { | ||||||
| 	.dpms = drm_helper_connector_dpms, | 	.dpms = drm_helper_connector_dpms, | ||||||
| 	.save = psb_intel_sdvo_save, |  | ||||||
| 	.restore = psb_intel_sdvo_restore, |  | ||||||
| 	.detect = psb_intel_sdvo_detect, | 	.detect = psb_intel_sdvo_detect, | ||||||
| 	.fill_modes = drm_helper_probe_single_connector_modes, | 	.fill_modes = drm_helper_probe_single_connector_modes, | ||||||
| 	.set_property = psb_intel_sdvo_set_property, | 	.set_property = psb_intel_sdvo_set_property, | ||||||
| @ -2021,6 +2019,9 @@ psb_intel_sdvo_connector_init(struct psb_intel_sdvo_connector *connector, | |||||||
| 	connector->base.base.doublescan_allowed = 0; | 	connector->base.base.doublescan_allowed = 0; | ||||||
| 	connector->base.base.display_info.subpixel_order = SubPixelHorizontalRGB; | 	connector->base.base.display_info.subpixel_order = SubPixelHorizontalRGB; | ||||||
| 
 | 
 | ||||||
|  | 	connector->base.save = psb_intel_sdvo_save; | ||||||
|  | 	connector->base.restore = psb_intel_sdvo_restore; | ||||||
|  | 
 | ||||||
| 	gma_connector_attach_encoder(&connector->base, &encoder->base); | 	gma_connector_attach_encoder(&connector->base, &encoder->base); | ||||||
| 	drm_connector_register(&connector->base.base); | 	drm_connector_register(&connector->base.base); | ||||||
| } | } | ||||||
|  | |||||||
| @ -563,8 +563,6 @@ static void vmw_sou_connector_destroy(struct drm_connector *connector) | |||||||
| 
 | 
 | ||||||
| static struct drm_connector_funcs vmw_sou_connector_funcs = { | static struct drm_connector_funcs vmw_sou_connector_funcs = { | ||||||
| 	.dpms = vmw_du_connector_dpms, | 	.dpms = vmw_du_connector_dpms, | ||||||
| 	.detect = vmw_du_connector_detect, |  | ||||||
| 	.fill_modes = vmw_du_connector_fill_modes, |  | ||||||
| 	.set_property = vmw_du_connector_set_property, | 	.set_property = vmw_du_connector_set_property, | ||||||
| 	.destroy = vmw_sou_connector_destroy, | 	.destroy = vmw_sou_connector_destroy, | ||||||
| }; | }; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Vetter
						Daniel Vetter