[Bug,198123] Console is the wrong color at boot with radeon 6670
diff mbox

Message ID 2ad7d588-8ef8-ad79-df38-afae1f77a378@daenzer.net
State New
Headers show

Commit Message

Michel Dänzer Dec. 22, 2017, 3:34 p.m. UTC
On 2017-12-19 11:48 AM, Michel Dänzer wrote:
> On 2017-12-18 02:50 PM, Peter Rosin wrote:
>> On 2017-12-18 12:37, Michel Dänzer wrote:
>>>
>>> Following up by e-mail, since I can't find Peter Rosin in the kernel
>>> bugzilla.
>>>
>>>
>>> On 2017-12-16 02:41 AM, bugzilla-daemon@bugzilla.kernel.org wrote:
>>>> https://bugzilla.kernel.org/show_bug.cgi?id=198123
>>>>
>>>> --- Comment #8 from Deposite Pirate (dpirate@metalpunks.info) ---
>>>> Ok, I went through all the git bisect process. Here are the results:
>>>>
>>>> [...]
>>>>
>>>> b8e2b0199cc377617dc238f5106352c06dcd3fa2 is the first bad commit
>>>> commit b8e2b0199cc377617dc238f5106352c06dcd3fa2
>>>> Author: Peter Rosin <peda@axentia.se>
>>>> Date:   Tue Jul 4 12:36:57 2017 +0200
>>>>
>>>>     drm/fb-helper: factor out pseudo-palette
>>>>
>>>>     The pseudo-palette has nothing to do with the crtc, so move it
>>>>     out of the crtc loop and update the palette once, then break out
>>>>     early.
>>>>
>>>>     Signed-off-by: Peter Rosin <peda@axenita.se>
>>>>     Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>>     Link:
>>>> http://patchwork.freedesktop.org/patch/msgid/1499164632-5582-2-git-send-email-peda@axentia.se
>>>>
>>>> :040000 040000 a8c2650554e199fee994ac63c2700c73ba2ecffe
>>>> 7f72ed414efadd77ef1d718e7477475c4ba1127d M      drivers
>>>
>>> My guess would be this is because fb_helper->funcs->gamma_set is no
>>> longer called from drm_fb_helper_setcmap in the FB_VISUAL_TRUECOLOR case
>>> (was previously called via setcolreg).
>>
>> No, that's not right, fb_helper->funcs->gamma_set() wasn't called for the
>> FB_VISUAL_TRUECOLOR case before the commit either.
>>
>> However, crtc_funcs->load_lut() was called, but that operation is now
>> gone in a later cleanup. However#2, that ->load_lut() did not use anything
>> that was provided in the call to drm_fb_helper_setcmap, since the load_lut
>> implementations generally didn't look at the pseudo_palette variable. So,
>> the now-missing ->load_lut() call probably just reloaded the clut?
> 
> Makes sense.

"Deposite Pirate", do the attached (only compile tested) patches work?

Comments

Deposite Pirate Jan. 7, 2018, 7:14 p.m. UTC | #1
December 22, 2017 4:35 PM, "Michel Dänzer" <michel@daenzer.net> wrote:

> "Deposite Pirate", do the attached (only compile tested) patches work?

Hi,

Sorry for the delay. I was not at home for a while. So, I've compiled and booted a kernel with both
of these patches and
the issue is still present.

Patch
diff mbox

From e071d7293a30bf84677c15a30d91872b7439ce70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
Date: Fri, 22 Dec 2017 16:31:54 +0100
Subject: [PATCH 2/2] drm/radeon: Remove unused lut_r/g/b arrays
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
---
 drivers/gpu/drm/radeon/radeon_display.c | 7 -------
 drivers/gpu/drm/radeon/radeon_mode.h    | 1 -
 2 files changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index d403be4afd24..0519c6162381 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -668,7 +668,6 @@  static void radeon_crtc_init(struct drm_device *dev, int index)
 {
 	struct radeon_device *rdev = dev->dev_private;
 	struct radeon_crtc *radeon_crtc;
-	int i;
 
 	radeon_crtc = kzalloc(sizeof(struct radeon_crtc) + (RADEONFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL);
 	if (radeon_crtc == NULL)
@@ -697,12 +696,6 @@  static void radeon_crtc_init(struct drm_device *dev, int index)
 	radeon_crtc->mode_set.num_connectors = 0;
 #endif
 
-	for (i = 0; i < 256; i++) {
-		radeon_crtc->lut_r[i] = i << 2;
-		radeon_crtc->lut_g[i] = i << 2;
-		radeon_crtc->lut_b[i] = i << 2;
-	}
-
 	if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom))
 		radeon_atombios_init_crtc(dev, radeon_crtc);
 	else
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index ca0a7ed28c9b..9b1fe25f624a 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -328,7 +328,6 @@  enum radeon_flip_status {
 struct radeon_crtc {
 	struct drm_crtc base;
 	int crtc_id;
-	u16 lut_r[256], lut_g[256], lut_b[256];
 	bool enabled;
 	bool can_tile;
 	bool cursor_out_of_bounds;
-- 
2.15.1