Hi,
was going after another bug when i found these, the "on" is kind of wrongly
named, i guess? (fwiw., i only compared against dev/ic/vga.c)
the meaningful variable from sys/dev/wsconsc/wsdisplay.c:
..
179 int sc_burnman; /* nonzero if screen blanked */
..
and how it's used in wsdisplay_burner():
..
2357 (*sc->sc_accessops->burn_screen)(sc->sc_accesscookie,
2358 sc->sc_burnman, sc->sc_burnflags);
...
minimal diff below for what i think is right, even if drm_fb_helper.c
somehow might possibly achieve the same behaviour(?) by some other means.
idk., i'm still just guessing here, the whole burner(/wsdisplay.c as is)
seems a bit overdesigned to me:]
-Artturi
diff --git a/sys/dev/pci/drm/amd/amdgpu/amdgpu_fb.c
b/sys/dev/pci/drm/amd/amdgpu/amdgpu_fb.c
index 9d1c158f17e..736aeb71db1 100644
--- a/sys/dev/pci/drm/amd/amdgpu/amdgpu_fb.c
+++ b/sys/dev/pci/drm/amd/amdgpu/amdgpu_fb.c
@@ -446,7 +446,7 @@ amdgpu_burner(void *v, u_int on, u_int flags)
task_del(systq, &adev->burner_task);
- if (on)
+ if (!on)
adev->burner_fblank = FB_BLANK_UNBLANK;
else {
if (flags & WSDISPLAY_BURN_VBLANK)
diff --git a/sys/dev/pci/drm/radeon/radeon_fb.c
b/sys/dev/pci/drm/radeon/radeon_fb.c
index d43d99ad8b3..9049daff4d1 100644
--- a/sys/dev/pci/drm/radeon/radeon_fb.c
+++ b/sys/dev/pci/drm/radeon/radeon_fb.c
@@ -495,7 +495,7 @@ radeondrm_burner(void *v, u_int on, u_int flags)
task_del(systq, &rdev->burner_task);
- if (on)
+ if (!on)
rdev->burner_fblank = FB_BLANK_UNBLANK;
else {
if (flags & WSDISPLAY_BURN_VBLANK)