42 lines
1.5 KiB
Diff
42 lines
1.5 KiB
Diff
|
From 6d9beff6ce231527dfd59e896c6cf3730555121a Mon Sep 17 00:00:00 2001
|
||
|
From: Dave Airlie <airlied@gmail.com>
|
||
|
Date: Thu, 13 Sep 2012 18:44:06 +1000
|
||
|
Subject: [PATCH] config/udev: ignore change on drm devices
|
||
|
|
||
|
for input devices we handle change like remove/add, but for
|
||
|
drm devices we get change events when we hotplug outputs,
|
||
|
so lets just ignore change at this level, and let the drivers
|
||
|
handle it. We may in the future want to route driver udev
|
||
|
from here instead.
|
||
|
|
||
|
Reported-by: Timo Aaltonen <timo.aaltonen@canonical.com>
|
||
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||
|
---
|
||
|
config/udev.c | 8 +++++++-
|
||
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/config/udev.c b/config/udev.c
|
||
|
index c2d00bb..454838f 100644
|
||
|
--- a/config/udev.c
|
||
|
+++ b/config/udev.c
|
||
|
@@ -300,9 +300,15 @@ wakeup_handler(pointer data, int err, pointer read_mask)
|
||
|
return;
|
||
|
action = udev_device_get_action(udev_device);
|
||
|
if (action) {
|
||
|
- if (!strcmp(action, "add") || !strcmp(action, "change")) {
|
||
|
+ if (!strcmp(action, "add")) {
|
||
|
device_removed(udev_device);
|
||
|
device_added(udev_device);
|
||
|
+ } else if (!strcmp(action, "change")) {
|
||
|
+ /* ignore change for the drm devices */
|
||
|
+ if (strcmp(udev_device_get_subsystem(udev_device), "drm")) {
|
||
|
+ device_removed(udev_device);
|
||
|
+ device_added(udev_device);
|
||
|
+ }
|
||
|
}
|
||
|
else if (!strcmp(action, "remove"))
|
||
|
device_removed(udev_device);
|
||
|
--
|
||
|
1.7.10.2
|
||
|
|