* [PATCH 1/2] drm/radeon: restore the fbdev mode in lastclose
@ 2015-10-02 21:12 Alex Deucher
2015-10-02 21:12 ` [PATCH 2/2] drm/amdgpu: " Alex Deucher
2015-10-05 6:30 ` [PATCH 1/2] drm/radeon: " Michel Dänzer
0 siblings, 2 replies; 4+ messages in thread
From: Alex Deucher @ 2015-10-02 21:12 UTC (permalink / raw)
To: dri-devel; +Cc: Alex Deucher
restore the fbdev state if a drm app like X is killed.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/radeon/radeon_fb.c | 16 ++++++++++++++++
drivers/gpu/drm/radeon/radeon_kms.c | 5 ++++-
drivers/gpu/drm/radeon/radeon_mode.h | 1 +
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index 1aa657f..26da2f4 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -397,3 +397,19 @@ void radeon_fb_remove_connector(struct radeon_device *rdev, struct drm_connector
{
drm_fb_helper_remove_one_connector(&rdev->mode_info.rfbdev->helper, connector);
}
+
+void radeon_fbdev_restore_mode(struct radeon_device *rdev)
+{
+ struct radeon_fbdev *rfbdev = rdev->mode_info.rfbdev;
+ struct drm_fb_helper *fb_helper;
+ int ret;
+
+ if (!rfbdev)
+ return;
+
+ fb_helper = &rfbdev->helper;
+
+ ret = drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
+ if (ret)
+ DRM_DEBUG("failed to restore crtc mode\n");
+}
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 4a119c2..0e932bf 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -598,7 +598,7 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
* Outdated mess for old drm with Xorg being in charge (void function now).
*/
/**
- * radeon_driver_firstopen_kms - drm callback for last close
+ * radeon_driver_lastclose_kms - drm callback for last close
*
* @dev: drm dev pointer
*
@@ -606,6 +606,9 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
*/
void radeon_driver_lastclose_kms(struct drm_device *dev)
{
+ struct radeon_device *rdev = dev->dev_private;
+
+ radeon_fbdev_restore_mode(rdev);
vga_switcheroo_process_delayed_switch();
}
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index aecc3e3..457b026 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -980,6 +980,7 @@ int radeon_fbdev_init(struct radeon_device *rdev);
void radeon_fbdev_fini(struct radeon_device *rdev);
void radeon_fbdev_set_suspend(struct radeon_device *rdev, int state);
bool radeon_fbdev_robj_is_fb(struct radeon_device *rdev, struct radeon_bo *robj);
+void radeon_fbdev_restore_mode(struct radeon_device *rdev);
void radeon_fb_output_poll_changed(struct radeon_device *rdev);
--
1.8.3.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] drm/amdgpu: restore the fbdev mode in lastclose
2015-10-02 21:12 [PATCH 1/2] drm/radeon: restore the fbdev mode in lastclose Alex Deucher
@ 2015-10-02 21:12 ` Alex Deucher
2015-10-05 6:30 ` [PATCH 1/2] drm/radeon: " Michel Dänzer
1 sibling, 0 replies; 4+ messages in thread
From: Alex Deucher @ 2015-10-02 21:12 UTC (permalink / raw)
To: dri-devel; +Cc: Alex Deucher
restore the fbdev state if a drm app like X is killed.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 16 ++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 5 ++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 +
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 8a122b1..96290d9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -402,3 +402,19 @@ bool amdgpu_fbdev_robj_is_fb(struct amdgpu_device *adev, struct amdgpu_bo *robj)
return true;
return false;
}
+
+void amdgpu_fbdev_restore_mode(struct amdgpu_device *adev)
+{
+ struct amdgpu_fbdev *afbdev = adev->mode_info.rfbdev;
+ struct drm_fb_helper *fb_helper;
+ int ret;
+
+ if (!afbdev)
+ return;
+
+ fb_helper = &afbdev->helper;
+
+ ret = drm_fb_helper_restore_fbdev_mode_unlocked(fb_helper);
+ if (ret)
+ DRM_DEBUG("failed to restore crtc mode\n");
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 8c735f5..5d11e79 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -485,7 +485,7 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
* Outdated mess for old drm with Xorg being in charge (void function now).
*/
/**
- * amdgpu_driver_firstopen_kms - drm callback for last close
+ * amdgpu_driver_lastclose_kms - drm callback for last close
*
* @dev: drm dev pointer
*
@@ -493,6 +493,9 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
*/
void amdgpu_driver_lastclose_kms(struct drm_device *dev)
{
+ struct amdgpu_device *adev = dev->dev_private;
+
+ amdgpu_fbdev_restore_mode(adev);
vga_switcheroo_process_delayed_switch();
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
index 64efe5b..7bd470d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
@@ -567,6 +567,7 @@ void amdgpu_fbdev_fini(struct amdgpu_device *adev);
void amdgpu_fbdev_set_suspend(struct amdgpu_device *adev, int state);
int amdgpu_fbdev_total_size(struct amdgpu_device *adev);
bool amdgpu_fbdev_robj_is_fb(struct amdgpu_device *adev, struct amdgpu_bo *robj);
+void amdgpu_fbdev_restore_mode(struct amdgpu_device *adev);
void amdgpu_fb_output_poll_changed(struct amdgpu_device *adev);
--
1.8.3.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] drm/radeon: restore the fbdev mode in lastclose
2015-10-02 21:12 [PATCH 1/2] drm/radeon: restore the fbdev mode in lastclose Alex Deucher
2015-10-02 21:12 ` [PATCH 2/2] drm/amdgpu: " Alex Deucher
@ 2015-10-05 6:30 ` Michel Dänzer
2015-10-05 12:39 ` Christian König
1 sibling, 1 reply; 4+ messages in thread
From: Michel Dänzer @ 2015-10-05 6:30 UTC (permalink / raw)
To: Alex Deucher; +Cc: dri-devel
On 03.10.2015 06:12, Alex Deucher wrote:
> restore the fbdev state if a drm app like X is killed.
>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This patch is
Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Both patches are
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] drm/radeon: restore the fbdev mode in lastclose
2015-10-05 6:30 ` [PATCH 1/2] drm/radeon: " Michel Dänzer
@ 2015-10-05 12:39 ` Christian König
0 siblings, 0 replies; 4+ messages in thread
From: Christian König @ 2015-10-05 12:39 UTC (permalink / raw)
To: Michel Dänzer, Alex Deucher; +Cc: dri-devel
On 05.10.2015 08:30, Michel Dänzer wrote:
> On 03.10.2015 06:12, Alex Deucher wrote:
>> restore the fbdev state if a drm app like X is killed.
>>
>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
> This patch is
>
> Tested-by: Michel Dänzer <michel.daenzer@amd.com>
>
> Both patches are
>
> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
>
>
For both Reviewed-by: Christian König <christian.koenig@amd.com>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-05 12:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-02 21:12 [PATCH 1/2] drm/radeon: restore the fbdev mode in lastclose Alex Deucher
2015-10-02 21:12 ` [PATCH 2/2] drm/amdgpu: " Alex Deucher
2015-10-05 6:30 ` [PATCH 1/2] drm/radeon: " Michel Dänzer
2015-10-05 12:39 ` Christian König
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.