|Summary:||No udev event for disconnecting VGA/HDMI cable|
|Product:||DRI||Reporter:||Dirk Montgomery <qjn>|
|Component:||DRM/Radeon||Assignee:||Default DRI bug account <dri-devel>|
|Status:||RESOLVED DUPLICATE||QA Contact:|
|i915 platform:||i915 features:|
Description Dirk Montgomery 2011-08-20 08:24:07 UTC
Created attachment 50402 [details] Xorg.0.log Hi, I have an AMD Radeon HD 6310 with free radeon drivers running. Xorg version is 7.6, xserver is 1.10.3. I tried to define a udev rule to change my monitor settings automatically when I connect a VGA or an HDMI cable. Connecting works fine but disconnecting is not recognized. udevadm monitor shows: udevadm monitor monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent KERNEL[100.176249] change /devices/pci0000:00/0000:00:01.0/drm/card0 (drm) UDEV [100.869104] change /devices/pci0000:00/0000:00:01.0/drm/card0 (drm) for connecting. For disconnecting nothing happens. I hope this is the right place to file this as a bug. Every help is appreciated! Regards Dirk
Comment 2 Fabian Deutsch 2011-09-22 13:07:41 UTC
I've got a similar problem with a Mobility Radeon HD 4300 Series card, there is no change recognized on connect and disconnect. Any hint where to look?
Comment 3 Alex Deucher 2011-09-22 13:17:45 UTC
(In reply to comment #2) > I've got a similar problem with a Mobility Radeon HD 4300 Series card, there is > no change recognized on connect and disconnect. > > Any hint where to look? Hotplug interrupts only work for digital displays (TMDS/DP). Analog displays require polling. Check your dmesg output and make sure there is an HPD pin assigned to the digital display connector you are trying to use. It's also possible your OEM did not wire up the pin properly.
Comment 4 Fabian Deutsch 2011-09-22 13:22:42 UTC
Mh okay, I my observations were related to HDMI (not VGA). Is there a way to find out if a "HPD pin [is] assigned to the digital display connector"?
Comment 5 Alex Deucher 2011-09-22 13:54:02 UTC
(In reply to comment #4) > Mh okay, I my observations were related to HDMI (not VGA). > Is there a way to find out if a "HPD pin [is] assigned to the > digital display connector"? Make sure your have the rlc firmware loaded as it's required for the interrupt controller to work. Check your dmesg. It should show something like: [drm] Connector 1: [drm] HDMI-A [drm] HPD2 [drm] DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448 0x644c 0x644c [drm] Encoders: [drm] DFP1: INTERNAL_UNIPHY In this case HPD2 has been (in theory) wired to the hdmi port. Plug/unplug in your hdmi port and check if bit 1 of any of the DC_HPDx_INT_STATUS regs changes when you connect/disconnect the monitor. #define DC_HPD1_INT_STATUS 0x7d00 #define DC_HPD2_INT_STATUS 0x7d0c #define DC_HPD3_INT_STATUS 0x7d18 #define DC_HPD4_INT_STATUS 0x7d24 #define DC_HPD5_INT_STATUS 0x7dc0 #define DC_HPD6_INT_STATUS 0x7df4 You can use radeonreg: http://cgit.freedesktop.org/~airlied/radeontool/ to dump registers. E.g. (as root), ./radeonreg regmatch 0x7d00