diff --git a/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules b/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules index 14b0cd74d5..ad8fc3e857 100644 --- a/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules +++ b/packages/x11/xserver/xorg-server/udev.d/97-xorg.rules @@ -20,16 +20,27 @@ ACTION!="add|change", GOTO="end_video" +# xorg_start only does something for subsystem "pci" and "video" class. +SUBSYSTEM=="pci", ATTR{class}=="0x030000", GOTO="subsystem_pci" +SUBSYSTEM=="drivers", GOTO="subsystem_drivers" +GOTO="end_video" + # check for drivers dont use the pci substem -SUBSYSTEM=="drivers", KERNEL=="dovefb", ENV{xorg_driver}="dove", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="fglrx_pci", ENV{xorg_driver}="fglrx", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="fglrx_legacy_pci", ENV{xorg_driver}="fglrx-legacy", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="i915", ENV{xorg_driver}="i915", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="nouveau", ENV{xorg_driver}="nouveau", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="nvidia", ENV{xorg_driver}="nvidia", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="radeon", ENV{xorg_driver}="radeon", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="vboxvideo", ENV{xorg_driver}="vboxvideo", GOTO="start_xorg" -SUBSYSTEM=="drivers", KERNEL=="vmwgfx", ENV{xorg_driver}="vmware", GOTO="start_xorg" +LABEL="subsystem_drivers" +KERNEL=="dovefb", ENV{xorg_driver}="dove", GOTO="start_xorg" +KERNEL=="fglrx_pci", ENV{xorg_driver}="fglrx", GOTO="start_xorg" +KERNEL=="fglrx_legacy_pci", ENV{xorg_driver}="fglrx-legacy", GOTO="start_xorg" +KERNEL=="nvidia", ENV{xorg_driver}="nvidia", GOTO="start_xorg" +KERNEL=="vboxvideo", ENV{xorg_driver}="vboxvideo", GOTO="start_xorg" +KERNEL=="vmwgfx", ENV{xorg_driver}="vmware", GOTO="start_xorg" +GOTO="end_video" + +# check for drivers using the pci substem +LABEL="subsystem_pci" +DRIVER=="i915", ENV{xorg_driver}="i915", GOTO="start_xorg" +DRIVER=="nouveau", ENV{xorg_driver}="nouveau", GOTO="start_xorg" +#DRIVER=="nvidia", ENV{xorg_driver}="nvidia", GOTO="start_xorg" +DRIVER=="radeon", ENV{xorg_driver}="radeon", GOTO="start_xorg" GOTO="end_video" # start Xorg