summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alevy@redhat.com>2012-05-23 20:52:48 +0300
committerAlon Levy <alevy@redhat.com>2012-06-15 10:34:57 +0300
commit73981e02c90cc81dd462f9fc2a00b5b11a9eab00 (patch)
tree5517390464f581d39413872de5340bb7e94fcc50
parentb600edc48270a4a368add11ec02e6d365d5da60d (diff)
qxl.h: add device_primary tri state UNDEFINED/NONE/CREATED
-rw-r--r--src/qxl.h8
-rw-r--r--src/qxl_driver.c4
2 files changed, 12 insertions, 0 deletions
diff --git a/src/qxl.h b/src/qxl.h
index 7702da8..a1e53f3 100644
--- a/src/qxl.h
+++ b/src/qxl.h
@@ -127,6 +127,12 @@ enum {
OPTION_COUNT,
};
+enum {
+ QXL_DEVICE_PRIMARY_UNDEFINED,
+ QXL_DEVICE_PRIMARY_NONE,
+ QXL_DEVICE_PRIMARY_CREATED,
+};
+
struct _qxl_screen_t
{
/* These are the names QXL uses */
@@ -139,6 +145,8 @@ struct _qxl_screen_t
struct qxl_ring * command_ring;
struct qxl_ring * cursor_ring;
struct qxl_ring * release_ring;
+
+ int device_primary;
int num_modes;
struct QXLMode * modes;
diff --git a/src/qxl_driver.c b/src/qxl_driver.c
index db9e50c..f6e4428 100644
--- a/src/qxl_driver.c
+++ b/src/qxl_driver.c
@@ -179,6 +179,7 @@ void qxl_create_primary(qxl_screen_t *qxl)
#else
ioport_write(qxl, QXL_IO_CREATE_PRIMARY, 0);
#endif
+ qxl->device_primary = QXL_DEVICE_PRIMARY_CREATED;
}
void qxl_notify_oom(qxl_screen_t *qxl)
@@ -547,6 +548,7 @@ static void
qxl_reset_and_create_mem_slots (qxl_screen_t *qxl)
{
ioport_write(qxl, QXL_IO_RESET, 0);
+ qxl->device_primary = QXL_DEVICE_PRIMARY_NONE;
/* Mem slots */
ErrorF ("slots start: %d, slots end: %d\n",
qxl->rom->slots_start,
@@ -1237,6 +1239,7 @@ qxl_leave_vt(VT_FUNC_ARGS_DECL)
ioport_write(qxl, QXL_IO_RESET, 0);
qxl_restore_state(pScrn);
+ qxl->device_primary = QXL_DEVICE_PRIMARY_NONE;
}
static Bool
@@ -1450,6 +1453,7 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
pScrn->driverPrivate = xnfcalloc(sizeof(qxl_screen_t), 1);
qxl = pScrn->driverPrivate;
memset(qxl, 0, sizeof(qxl));
+ qxl->device_primary = QXL_DEVICE_PRIMARY_UNDEFINED;
qxl->entity = xf86GetEntityInfo(pScrn->entityList[0]);