summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+cubox@arm.linux.org.uk>2013-10-29 12:19:06 +0000
committerRussell King <rmk@arm.linux.org.uk>2013-10-29 19:21:13 +0000
commit016419f8fbd22cc978a6963b6d74ac67ebfaf5dc (patch)
treedbf48e1719b268293b9e16649bd973e6bc57ce43
parentca58888be51eec3e96184ae4364fd1a593c12861 (diff)
downloadxf86-video-armada-016419f8fbd22cc978a6963b6d74ac67ebfaf5dc.tar.gz
xf86-video-armada-016419f8fbd22cc978a6963b6d74ac67ebfaf5dc.tar.xz
Wrap udev structures up in its own structure
Separate out all the udev information into its own structure. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r--src/armada_drm.c18
-rw-r--r--src/armada_drm.h10
2 files changed, 16 insertions, 12 deletions
diff --git a/src/armada_drm.c b/src/armada_drm.c
index ab2755c..600218c 100644
--- a/src/armada_drm.c
+++ b/src/armada_drm.c
@@ -892,12 +892,12 @@ static void armada_drm_handle_uevent(int fd, pointer data)
struct armada_drm_info *drm = GET_DRM_INFO(pScrn);
struct udev_device *ud;
- ud = udev_monitor_receive_device(drm->udev_monitor);
+ ud = udev_monitor_receive_device(drm->udev.monitor);
if (ud) {
dev_t dev = udev_device_get_devnum(ud);
const char *hp = udev_device_get_property_value(ud, "HOTPLUG");
- if (dev == drm->drm_dev && hp && strtol(hp, NULL, 10) == 1)
+ if (dev == drm->udev.drm_dev && hp && strtol(hp, NULL, 10) == 1)
RRGetInfo(screenInfo.screens[pScrn->scrnIndex], TRUE);
udev_device_unref(ud);
@@ -926,7 +926,7 @@ static Bool armada_drm_udev_init(ScrnInfoPtr pScrn)
if (fstat(drm->fd, &st) || !S_ISCHR(st.st_mode))
return FALSE;
- drm->drm_dev = st.st_rdev;
+ drm->udev.drm_dev = st.st_rdev;
udev = udev_new();
if (!udev)
@@ -946,8 +946,8 @@ static Bool armada_drm_udev_init(ScrnInfoPtr pScrn)
return FALSE;
}
- drm->udev_monitor = udev_mon;
- drm->udev_handler = xf86AddGeneralHandler(udev_monitor_get_fd(udev_mon),
+ drm->udev.monitor = udev_mon;
+ drm->udev.handler = xf86AddGeneralHandler(udev_monitor_get_fd(udev_mon),
armada_drm_handle_uevent,
pScrn);
@@ -956,11 +956,11 @@ static Bool armada_drm_udev_init(ScrnInfoPtr pScrn)
static void armada_drm_udev_fini(ScrnInfoPtr pScrn, struct armada_drm_info *drm)
{
- if (drm->udev_monitor) {
- struct udev *udev = udev_monitor_get_udev(drm->udev_monitor);
+ if (drm->udev.monitor) {
+ struct udev *udev = udev_monitor_get_udev(drm->udev.monitor);
- xf86RemoveGeneralHandler(drm->udev_handler);
- udev_monitor_unref(drm->udev_monitor);
+ xf86RemoveGeneralHandler(drm->udev.handler);
+ udev_monitor_unref(drm->udev.monitor);
udev_unref(udev);
}
}
diff --git a/src/armada_drm.h b/src/armada_drm.h
index d231653..f04d350 100644
--- a/src/armada_drm.h
+++ b/src/armada_drm.h
@@ -26,6 +26,12 @@ struct armada_crtc_info {
#define armada_crtc(crtc) \
((struct armada_crtc_info *)(crtc)->driver_private)
+struct drm_udev_info {
+ struct udev_monitor *monitor;
+ pointer *handler;
+ dev_t drm_dev;
+};
+
struct armada_drm_info {
int fd;
struct drm_armada_bufmgr *bufmgr;
@@ -42,9 +48,7 @@ struct armada_drm_info {
Bool accel;
#ifdef HAVE_UDEV
- struct udev_monitor *udev_monitor;
- pointer *udev_handler;
- dev_t drm_dev;
+ struct drm_udev_info udev;
#endif
CloseScreenProcPtr CloseScreen;