dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Michel Dänzer" <michel@daenzer.net>
To: Michael Burian <michael.burian@sbg.at>,
	Alex Deucher <alexdeucher@gmail.com>
Cc: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>
Subject: Re: No backlight since linux-4.2.4 - drivers/gpu/drm/radeon/atombios_encoders.c
Date: Mon, 26 Oct 2015 18:32:35 +0900	[thread overview]
Message-ID: <562DF333.3070708@daenzer.net> (raw)
In-Reply-To: <562BDB47.5000301@sbg.at>

[-- Attachment #1: Type: text/plain, Size: 2219 bytes --]

On 25.10.2015 04:25, Michael Burian wrote:
> hi,
> 
> after updating the kernel from linux-stable[0] v4.2.3 to v4.2.4 on my
> hp compaq nx9420 laptop (Debian Jessie, amd64), the backlight is turned off
> within the first couple of seconds during boot.
> 
> The situation persists (Xorg seems to be running fine, icons can be recognized
> by illuminating the screen with a flashlight) until reboot using an earlier
> kernel.
> 
> current mainline[1] as of now (4.3.0-rc6-00277-g01815536) is also affected
> 
> Workaround: use earlier kernel (v4.2.3) or (see below)
> 
> Hardware:
> 
> lspci | grep adeo
> 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV530/M56-P [Mobility Radeon X1600]
> 
> git bisect log
> # bad: [190bd21bba09ed476d9359d3e8be20e8d9dcd8a4] Linux 4.2.4
> # good: [fcba09f2b0bf27eeaa1d4d439edb649585f35040] Linux 4.2.3
> git bisect start 'v4.2.4' 'v4.2.3' 'drivers/gpu/'
> # good: [885838eef785ff810dac945be8132856f2113cf1] drm/amdgpu: make UVD handle checking more strict
> git bisect good 885838eef785ff810dac945be8132856f2113cf1
> # good: [230f6fd628c83fcb44ea364d69a9ad88826ef8c4] drm/i915/bios: handle MIPI Sequence Block v3+ gracefully
> git bisect good 230f6fd628c83fcb44ea364d69a9ad88826ef8c4
> # bad: [5a633828b4b2bef343826afcb0a70770c4911c55] drm/radeon: Restore LCD backlight level on resume (>= R5xx)
> git bisect bad 5a633828b4b2bef343826afcb0a70770c4911c55
> # good: [60a09aef456ef590762d47da9c25650e230e2f85] drm: Reject DRI1 hw lock ioctl functions for kms drivers
> git bisect good 60a09aef456ef590762d47da9c25650e230e2f85
> # first bad commit: [5a633828b4b2bef343826afcb0a70770c4911c55] drm/radeon: Restore LCD backlight level on resume (>= R5xx)
> 
> Workaround 2:
> 
> reverting this single commit 5a633828b4b2bef343826afcb0a70770c4911c55 fixes the problem in linux-stable[0]
> as well as mainline[1] 4.3.0-rc6-00277-g01815536

Please provide the dmesg output from running with the attached debugging
patch.


Alex, any other ideas what might go wrong?


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: radeon-bl-debug.diff --]
[-- Type: text/x-patch; name="radeon-bl-debug.diff", Size: 2476 bytes --]

diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
index 65adb9c..31be81e 100644
--- a/drivers/gpu/drm/radeon/atombios_encoders.c
+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
@@ -77,9 +77,12 @@ atombios_get_backlight_level(struct radeon_encoder *radeon_encoder)
 	struct drm_device *dev = radeon_encoder->base.dev;
 	struct radeon_device *rdev = dev->dev_private;
 
-	if (!(rdev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU))
+	if (WARN_ON(!(rdev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)))
 		return 0;
 
+	DRM_INFO("Backlight controlled by GPU, current level %u\n",
+		 radeon_atom_get_backlight_level_from_reg(rdev));
+
 	return radeon_atom_get_backlight_level_from_reg(rdev);
 }
 
@@ -93,7 +96,7 @@ atombios_set_backlight_level(struct radeon_encoder *radeon_encoder, u8 level)
 	DISPLAY_DEVICE_OUTPUT_CONTROL_PS_ALLOCATION args;
 	int index;
 
-	if (!(rdev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU))
+	if (WARN_ON(!(rdev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)))
 		return;
 
 	if ((radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) &&
@@ -105,6 +108,7 @@ atombios_set_backlight_level(struct radeon_encoder *radeon_encoder, u8 level)
 		switch (radeon_encoder->encoder_id) {
 		case ENCODER_OBJECT_ID_INTERNAL_LVDS:
 		case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
+			DRM_INFO("Setting LVDS backlight level to %u\n", level);
 			index = GetIndexIntoMasterTable(COMMAND, LCD1OutputControl);
 			if (dig->backlight_level == 0) {
 				args.ucAction = ATOM_LCD_BLOFF;
@@ -120,6 +124,7 @@ atombios_set_backlight_level(struct radeon_encoder *radeon_encoder, u8 level)
 		case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
 		case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
 		case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
+			DRM_INFO("Setting UNIPHY backlight level to %u\n", level);
 			if (dig->backlight_level == 0)
 				atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0);
 			else {
@@ -199,7 +204,7 @@ void radeon_atom_backlight_init(struct radeon_encoder *radeon_encoder,
 	if (!rdev->is_atom_bios)
 		return;
 
-	if (!(rdev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU))
+	if (WARN_ON(!(rdev->mode_info.firmware_flags & ATOM_BIOS_INFO_BL_CONTROLLED_BY_GPU)))
 		return;
 
 	pdata = kmalloc(sizeof(struct radeon_backlight_privdata), GFP_KERNEL);

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

       reply	other threads:[~2015-10-26  9:32 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <562BDB47.5000301@sbg.at>
2015-10-26  9:32 ` Michel Dänzer [this message]
2015-10-26 21:21   ` No backlight since linux-4.2.4 - drivers/gpu/drm/radeon/atombios_encoders.c Alex Deucher
     [not found]   ` <562E0473.5060404@sbg.at>
2015-10-27  2:36     ` Michel Dänzer
2015-10-27  8:44       ` Michael Burian
2015-10-27  9:17         ` Michel Dänzer
2015-10-27 10:06           ` Michael Burian
2015-10-27 15:10             ` Alex Deucher
2015-10-27 16:23               ` Michael Burian
2015-10-27 16:43                 ` Alex Deucher
2015-10-27 17:02                   ` Michael Burian
2015-10-28  7:11                   ` Michel Dänzer
2015-10-28 19:03                     ` Alex Deucher
2015-10-28 20:46                       ` Michael Burian
2015-10-29  3:18                       ` Michel Dänzer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=562DF333.3070708@daenzer.net \
    --to=michel@daenzer.net \
    --cc=alexdeucher@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=michael.burian@sbg.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox