You are not logged in.

#1 2018-01-06 04:13:42

sieken
Member
Registered: 2017-08-09
Posts: 1

No uevent for Display Port

Hello,

First time poster here. I have done my best searching for answers to this question - both on the arch forums and elsewhere - but have yet to find something that describes what I'm experiencing so I'd figured I would make a new topic.

I am in the midst of creating a udev rule for connecting an external display via Display Port, but if I'm reading the output of udevadm monitor correctly there seems to be no specific uevent triggering for DP - only a Change event on the video card.

$ udevadm monitor --environment --udev
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing

UDEV  [6206.973994] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVLINKS=/dev/dri/by-path/pci-0000:00:02.0-card
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2438
SUBSYSTEM=drm
TAGS=:uaccess:master-of-seat:seat:
USEC_INITIALIZED=4171361

UDEV  [6209.023928] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
ACTION=change
DEVLINKS=/dev/dri/by-path/pci-0000:00:02.0-card
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:02.0/drm/card0
DEVTYPE=drm_minor
HOTPLUG=1
ID_FOR_SEAT=drm-pci-0000_00_02_0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
MAJOR=226
MINOR=0
SEQNUM=2439
SUBSYSTEM=drm
TAGS=:uaccess:master-of-seat:seat:
USEC_INITIALIZED=4171361

And if I take a look at what information is available on the Display Port, I find this:

$ udevadm info --attribute-walk --path=/sys/class/drm/card0-DP-1 

  ...

  looking at device '/devices/pci0000:00/0000:00:02.0/drm/card0/card0-DP-1':
    KERNEL=="card0-DP-1"
    SUBSYSTEM=="drm"
    DRIVER==""
    ATTR{dpms}=="On"
    ATTR{edid}==""
    ATTR{enabled}=="enabled"
    ATTR{status}=="connected"

  looking at parent device '/devices/pci0000:00/0000:00:02.0/drm/card0':
    KERNELS=="card0"
    SUBSYSTEMS=="drm"
    DRIVERS==""
    ATTRS{gt_RP0_freq_mhz}=="900"
    ATTRS{gt_RP1_freq_mhz}=="300"
    ATTRS{gt_RPn_freq_mhz}=="300"
    ATTRS{gt_act_freq_mhz}=="450"
    ATTRS{gt_boost_freq_mhz}=="900"
    ATTRS{gt_cur_freq_mhz}=="450"
    ATTRS{gt_max_freq_mhz}=="900"
    ATTRS{gt_min_freq_mhz}=="450"

  looking at parent device '/devices/pci0000:00/0000:00:02.0':
    KERNELS=="0000:00:02.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="i915"
    ATTRS{boot_vga}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x030000"
    ATTRS{consistent_dma_mask_bits}=="39"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1616"
    ATTRS{dma_mask_bits}=="39"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="47"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{local_cpus}=="0f"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{revision}=="0x09"
    ATTRS{subsystem_device}=="0x2226"
    ATTRS{subsystem_vendor}=="0x17aa"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

And running the same command after unplugging the display it shows ATTR{status} == "disconnected", all while /sys/class/drm/card0-DP-1/uevent is empty.
My question is then: Should I not expect a uevent for "Connect"/"Disconnect" actions for card0-DP-1? I figure I could create a rule for the "Change" action on the parent, running a script to check whether it was on the display port or not, but it seems more intuitive to have the rules be for specific devices.

Offline

Board footer

Powered by FluxBB