mirror of https://gitee.com/openkylin/linux.git
drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()
This driver can use drm_fb_helper_lastclose() as its .lastclose callback. It can also use drm_fb_helper_output_poll_changed() as its .output_poll_changed callback. Cc: Thierry Reding <thierry.reding@gmail.com> Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20171205182504.41923-12-noralf@tronnes.org
This commit is contained in:
parent
33e9d03822
commit
c94bedabb3
|
@ -120,7 +120,7 @@ static int tegra_atomic_commit(struct drm_device *drm,
|
||||||
static const struct drm_mode_config_funcs tegra_drm_mode_funcs = {
|
static const struct drm_mode_config_funcs tegra_drm_mode_funcs = {
|
||||||
.fb_create = tegra_fb_create,
|
.fb_create = tegra_fb_create,
|
||||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
||||||
.output_poll_changed = tegra_fb_output_poll_changed,
|
.output_poll_changed = drm_fb_helper_output_poll_changed,
|
||||||
#endif
|
#endif
|
||||||
.atomic_check = drm_atomic_helper_check,
|
.atomic_check = drm_atomic_helper_check,
|
||||||
.atomic_commit = tegra_atomic_commit,
|
.atomic_commit = tegra_atomic_commit,
|
||||||
|
@ -286,15 +286,6 @@ static void tegra_drm_context_free(struct tegra_drm_context *context)
|
||||||
kfree(context);
|
kfree(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tegra_drm_lastclose(struct drm_device *drm)
|
|
||||||
{
|
|
||||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
||||||
struct tegra_drm *tegra = drm->dev_private;
|
|
||||||
|
|
||||||
tegra_fbdev_restore_mode(tegra->fbdev);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct host1x_bo *
|
static struct host1x_bo *
|
||||||
host1x_bo_lookup(struct drm_file *file, u32 handle)
|
host1x_bo_lookup(struct drm_file *file, u32 handle)
|
||||||
{
|
{
|
||||||
|
@ -1100,7 +1091,7 @@ static struct drm_driver tegra_drm_driver = {
|
||||||
.unload = tegra_drm_unload,
|
.unload = tegra_drm_unload,
|
||||||
.open = tegra_drm_open,
|
.open = tegra_drm_open,
|
||||||
.postclose = tegra_drm_postclose,
|
.postclose = tegra_drm_postclose,
|
||||||
.lastclose = tegra_drm_lastclose,
|
.lastclose = drm_fb_helper_lastclose,
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUG_FS)
|
#if defined(CONFIG_DEBUG_FS)
|
||||||
.debugfs_init = tegra_debugfs_init,
|
.debugfs_init = tegra_debugfs_init,
|
||||||
|
|
|
@ -188,10 +188,6 @@ int tegra_drm_fb_init(struct drm_device *drm);
|
||||||
void tegra_drm_fb_exit(struct drm_device *drm);
|
void tegra_drm_fb_exit(struct drm_device *drm);
|
||||||
void tegra_drm_fb_suspend(struct drm_device *drm);
|
void tegra_drm_fb_suspend(struct drm_device *drm);
|
||||||
void tegra_drm_fb_resume(struct drm_device *drm);
|
void tegra_drm_fb_resume(struct drm_device *drm);
|
||||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
|
||||||
void tegra_fbdev_restore_mode(struct tegra_fbdev *fbdev);
|
|
||||||
void tegra_fb_output_poll_changed(struct drm_device *drm);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern struct platform_driver tegra_dc_driver;
|
extern struct platform_driver tegra_dc_driver;
|
||||||
extern struct platform_driver tegra_hdmi_driver;
|
extern struct platform_driver tegra_hdmi_driver;
|
||||||
|
|
|
@ -361,20 +361,6 @@ static void tegra_fbdev_exit(struct tegra_fbdev *fbdev)
|
||||||
drm_fb_helper_fini(&fbdev->base);
|
drm_fb_helper_fini(&fbdev->base);
|
||||||
tegra_fbdev_free(fbdev);
|
tegra_fbdev_free(fbdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tegra_fbdev_restore_mode(struct tegra_fbdev *fbdev)
|
|
||||||
{
|
|
||||||
if (fbdev)
|
|
||||||
drm_fb_helper_restore_fbdev_mode_unlocked(&fbdev->base);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tegra_fb_output_poll_changed(struct drm_device *drm)
|
|
||||||
{
|
|
||||||
struct tegra_drm *tegra = drm->dev_private;
|
|
||||||
|
|
||||||
if (tegra->fbdev)
|
|
||||||
drm_fb_helper_hotplug_event(&tegra->fbdev->base);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int tegra_drm_fb_prepare(struct drm_device *drm)
|
int tegra_drm_fb_prepare(struct drm_device *drm)
|
||||||
|
|
Loading…
Reference in New Issue