Bug 83651

Summary: radeon: kernel returns invalid information about video connectors' status
Product: Drivers Reporter: Garri (g.djavadyan)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: NEW ---    
Severity: normal CC: alexdeucher, barbieri.renato, leho, szg00000
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.16.1 Subsystem:
Regression: No Bisected commit-id:
Attachments: journalctl -b -k
journalctl -b _EXE=/usr/bin/Xorg _PID=2217
journalctl -b _EXE=/usr/bin/Xorg _PID=7729
dmesg_xorg_log.tgz

Description Garri 2014-09-01 09:31:14 UTC
Information obtained from kernel sys subsystem about ATI HD 5650 card's connectors status doesn't reflects real existing situation. That prevents higher level systems using the obtained information from working correctly.

For example, systemd uses that information to decide what to do on lid close event (related bug report, https://bugs.freedesktop.org/show_bug.cgi?id=76267#c13).

My laptop have hybrid video configuration (Intel + discrete ATI). The discrete ATI card is always powered off by init script via vgaswitcheroo interface on system boot. There aren't external connected monitors.


Following is the valid report from kernel about the Intel card after system boot:

# cat /sys/class/drm/card0-LVDS-1/status 
connected

# cat /sys/class/drm/card0-VGA-1/status 
disconnected


Following is the invalid report from kernel about the ATI card after system boot:

# cat /sys/class/drm/card1-LVDS-2/status 
connected

# cat /sys/class/drm/card1-VGA-2/status 
connected

# cat /sys/class/drm/card1-HDMI-A-1/status 
disconnected


Report from vgaswitcheroo interface:

# cat /sys/kernel/debug/vgaswitcheroo/switch 
0:IGD:+:Pwr:0000:00:02.0
1:DIS: :Off:0000:01:00.0
2:DIS-Audio: :Off:0000:01:00.1


lspci:

# lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 18)
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Madison [Mobility Radeon HD 5650/5750 / 6530M/6550M] (rev ff)

# lspci -n | grep 0300
00:02.0 0300: 8086:0046 (rev 18)
01:00.0 0300: 1002:68c1 (rev ff)


Kernel: 3.16.1


Thank you in advance!
Comment 1 Alex Deucher 2014-09-08 04:17:25 UTC
Please attach your dmesg output and xorg log.
Comment 2 Garri 2014-09-08 17:39:12 UTC
Created attachment 149441 [details]
journalctl -b -k
Comment 3 Garri 2014-09-08 17:41:01 UTC
Created attachment 149451 [details]
journalctl -b _EXE=/usr/bin/Xorg _PID=2217
Comment 4 Garri 2014-09-08 17:42:36 UTC
Created attachment 149461 [details]
journalctl -b _EXE=/usr/bin/Xorg _PID=7729
Comment 5 Renato 2014-09-21 14:26:09 UTC
Hi there,

I've got the same problem and, as reported above, suspend on lid closing isn't working.

Here are the reports about the INTEL and AMD card, respectively:


cat /sys/class/drm/card0-LVDS-1/status
connected

cat /sys/class/drm/card0-VGA-1/status 
disconnected

cat /sys/class/drm/card1-VGA-2/status 
disconnected

cat /sys/class/drm/card1-LVDS-2/status
connected

cat /sys/class/drm/card1-HDMI-A-1/status
disconnected

I'm on Archlinux, with 3.14.18-1-lts kernel.


Any ideas? Thanks!
Comment 6 Alex Deucher 2014-09-22 14:13:48 UTC
The lid issue is more semantic.  The display is still connected even when the lid is closed so it should still report as connected.  It's up to the desktop environment to decide what to do when they get a lid event.
Comment 7 Garri 2014-10-02 12:39:47 UTC
(In reply to Alex Deucher from comment #6)
> The lid issue is more semantic.  The display is still connected even when
> the lid is closed so it should still report as connected.  It's up to the
> desktop environment to decide what to do when they get a lid event.

Alex, is your reply addressed to the comment 5 or to the bug report generally?

Thanks.
Comment 8 Alex Deucher 2014-10-02 13:07:01 UTC
Comment 5 specifically.
Comment 9 Alex Deucher 2014-10-02 13:08:59 UTC
Well, about lids in general.
Comment 10 Garri 2014-10-23 13:42:18 UTC
Created attachment 154661 [details]
dmesg_xorg_log.tgz

There are no problems when the hybrid graphics is disabled in BIOS.

# cat /sys/class/drm/card0-LVDS-1/status 
connected
# cat /sys/class/drm/card0-VGA-1/status 
disconnected
# cat /sys/class/drm/card0-HDMI-A-1/status 
disconnected

Reported information is correct. Suspend on LID close works fine. Kernel and Xorg logs are attached.
Comment 11 Renato 2014-10-23 13:59:34 UTC
(In reply to Alex Deucher from comment #8)
> Comment 5 specifically.

I agree that it is up to the desktop environment, but, as stated in comment 1 if the kernel reports two screen attached, systemd wont't suspend  because it thinks there's still a display that's active.

Anyway, the issue is specifically the wrong number of connected displays detected by the kernel.

Or I'm missing something?

Cheers.