If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com --- drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
- if (crtc->funcs->cursor_set) { + if (crtc->funcs->cursor_set2) { + ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0); + if (ret) + error = true; + } else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
It was just a wrapper around drm_fb_helper_set_par that called cursor_set2 in addition. Now that the core handles this, drop this radeon specific version.
Change-Id: I037664baaf150efbf07074a96be84f6260cf0dc1 Signed-off-by: Alex Deucher alexander.deucher@amd.com --- drivers/gpu/drm/radeon/radeon_fb.c | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index 7214858..1aa657f 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c @@ -48,40 +48,10 @@ struct radeon_fbdev { struct radeon_device *rdev; };
-/** - * radeon_fb_helper_set_par - Hide cursor on CRTCs used by fbdev. - * - * @info: fbdev info - * - * This function hides the cursor on all CRTCs used by fbdev. - */ -static int radeon_fb_helper_set_par(struct fb_info *info) -{ - int ret; - - ret = drm_fb_helper_set_par(info); - - /* XXX: with universal plane support fbdev will automatically disable - * all non-primary planes (including the cursor) - */ - if (ret == 0) { - struct drm_fb_helper *fb_helper = info->par; - int i; - - for (i = 0; i < fb_helper->crtc_count; i++) { - struct drm_crtc *crtc = fb_helper->crtc_info[i].mode_set.crtc; - - radeon_crtc_cursor_set2(crtc, NULL, 0, 0, 0, 0, 0); - } - } - - return ret; -} - static struct fb_ops radeonfb_ops = { .owner = THIS_MODULE, .fb_check_var = drm_fb_helper_check_var, - .fb_set_par = radeon_fb_helper_set_par, + .fb_set_par = drm_fb_helper_set_par, .fb_fillrect = drm_fb_helper_cfb_fillrect, .fb_copyarea = drm_fb_helper_cfb_copyarea, .fb_imageblit = drm_fb_helper_cfb_imageblit,
On 30.09.2015 20:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
I'm not very familiar with the code, but that looks like it makes sense.
Both patches are Reviewed-by: Christian König christian.koenig@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
On 01.10.2015 03:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
Hah, nice catch. The series is
Reviewed-by: Michel Dänzer michel.daenzer@amd.com
(I assume you tested with something like killall -9 Xorg and confirming sure the cursor doesn't stay visible in console)
On Wed, Sep 30, 2015 at 11:50 PM, Michel Dänzer michel@daenzer.net wrote:
On 01.10.2015 03:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
Hah, nice catch. The series is
Reviewed-by: Michel Dänzer michel.daenzer@amd.com
(I assume you tested with something like killall -9 Xorg and confirming sure the cursor doesn't stay visible in console)
The cursor still stays visible in the console. Interestingly, the cursor still shows up in the console even without these patches.
Alex
On Thu, Oct 1, 2015 at 1:01 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Wed, Sep 30, 2015 at 11:50 PM, Michel Dänzer michel@daenzer.net wrote:
On 01.10.2015 03:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
Hah, nice catch. The series is
Reviewed-by: Michel Dänzer michel.daenzer@amd.com
(I assume you tested with something like killall -9 Xorg and confirming sure the cursor doesn't stay visible in console)
The cursor still stays visible in the console. Interestingly, the cursor still shows up in the console even without these patches.
restore_fbdev_mode doesn't end up get called when I killall -9 X.
Alex
Alex
On Thu, Oct 1, 2015 at 1:13 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Thu, Oct 1, 2015 at 1:01 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Wed, Sep 30, 2015 at 11:50 PM, Michel Dänzer michel@daenzer.net wrote:
On 01.10.2015 03:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
Hah, nice catch. The series is
Reviewed-by: Michel Dänzer michel.daenzer@amd.com
(I assume you tested with something like killall -9 Xorg and confirming sure the cursor doesn't stay visible in console)
The cursor still stays visible in the console. Interestingly, the cursor still shows up in the console even without these patches.
restore_fbdev_mode doesn't end up get called when I killall -9 X.
For clarity, drm_fb_helper_set_par which which ultimately calls restore_fbdev_mode never gets called.
Alex
Alex
Alex
On Thu, Oct 01, 2015 at 01:22:42PM -0400, Alex Deucher wrote:
On Thu, Oct 1, 2015 at 1:13 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Thu, Oct 1, 2015 at 1:01 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Wed, Sep 30, 2015 at 11:50 PM, Michel Dänzer michel@daenzer.net wrote:
On 01.10.2015 03:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
Hah, nice catch. The series is
Reviewed-by: Michel Dänzer michel.daenzer@amd.com
(I assume you tested with something like killall -9 Xorg and confirming sure the cursor doesn't stay visible in console)
The cursor still stays visible in the console. Interestingly, the cursor still shows up in the console even without these patches.
restore_fbdev_mode doesn't end up get called when I killall -9 X.
For clarity, drm_fb_helper_set_par which which ultimately calls restore_fbdev_mode never gets called.
You need to force restore the fbdev in your lastclose hook for that to work. -Daniel
On 02.10.2015 02:22, Alex Deucher wrote:
On Thu, Oct 1, 2015 at 1:13 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Thu, Oct 1, 2015 at 1:01 PM, Alex Deucher alexdeucher@gmail.com wrote:
On Wed, Sep 30, 2015 at 11:50 PM, Michel Dänzer michel@daenzer.net wrote:
On 01.10.2015 03:47, Alex Deucher wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130 Signed-off-by: Alex Deucher alexander.deucher@amd.com
drivers/gpu/drm/drm_fb_helper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 418d299..ca08c47 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -345,7 +345,11 @@ static bool restore_fbdev_mode(struct drm_fb_helper *fb_helper) struct drm_crtc *crtc = mode_set->crtc; int ret;
if (crtc->funcs->cursor_set) {
if (crtc->funcs->cursor_set2) {
ret = crtc->funcs->cursor_set2(crtc, NULL, 0, 0, 0, 0, 0);
if (ret)
error = true;
} else if (crtc->funcs->cursor_set) { ret = crtc->funcs->cursor_set(crtc, NULL, 0, 0, 0); if (ret) error = true;
Hah, nice catch. The series is
Reviewed-by: Michel Dänzer michel.daenzer@amd.com
(I assume you tested with something like killall -9 Xorg and confirming sure the cursor doesn't stay visible in console)
The cursor still stays visible in the console. Interestingly, the cursor still shows up in the console even without these patches.
restore_fbdev_mode doesn't end up get called when I killall -9 X.
For clarity, drm_fb_helper_set_par which which ultimately calls restore_fbdev_mode never gets called.
Hmm, radeon_fb_helper_set_par definitely got hit when I was adding it, but maybe I was only testing with killall -3 or something like that.
Hi Alex,
On 30 September 2015 at 19:47, Alex Deucher alexdeucher@gmail.com wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130
Are Change-Id lines accepted in the kernel ? Iirc there was some noise against them a while back.
Thanks Emil
On Thu, Oct 01, 2015 at 12:36:27PM +0100, Emil Velikov wrote:
Hi Alex,
On 30 September 2015 at 19:47, Alex Deucher alexdeucher@gmail.com wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130
Are Change-Id lines accepted in the kernel ? Iirc there was some noise against them a while back.
Some maintainers reject them, I don't think anyone here in the drm subsystem cares really. -Daniel
-----Original Message----- From: Emil Velikov [mailto:emil.l.velikov@gmail.com] Sent: Thursday, October 01, 2015 7:36 AM To: Alex Deucher Cc: ML dri-devel; Deucher, Alexander Subject: Re: [PATCH 1/2] drm: handle cursor_set2 in restore_fbdev_mode
Hi Alex,
On 30 September 2015 at 19:47, Alex Deucher alexdeucher@gmail.com wrote:
If a driver uses the cursor_set2 crtc callback rather than cursor_set, use that. This fixes the fbdev helper for drivers that use cursor_set2.
Change-Id: I127d3f8e72789ba70c3648140f87c6187864e130
Are Change-Id lines accepted in the kernel ? Iirc there was some noise against them a while back.
It was just a temporary problem with my git client. I've already fixed it locally.
Alex
Thanks Emil
dri-devel@lists.freedesktop.org