diff options
author | Alon Levy <alevy@redhat.com> | 2012-07-22 18:10:57 +0300 |
---|---|---|
committer | Alon Levy <alevy@redhat.com> | 2012-10-23 18:46:58 +0200 |
commit | 9dfa77c2a4a3b06b54a1f3f39bcd16cd2db2c665 (patch) | |
tree | d9c34360a96b2f3b7eb43dbd62e1984b07a84a49 | |
parent | d68c7d0e54ba9641955299d1516d9e3e3286217e (diff) |
squash to create_primary
-rw-r--r-- | src/qxl.h | 3 | ||||
-rw-r--r-- | src/qxl_driver.c | 12 |
2 files changed, 10 insertions, 5 deletions
@@ -151,7 +151,8 @@ struct _qxl_screen_t struct qxl_ring * release_ring; int device_primary; - + uint32_t primary_handle; + int num_modes; struct QXLMode * modes; int io_base; diff --git a/src/qxl_driver.c b/src/qxl_driver.c index 70c7012..61c61a5 100644 --- a/src/qxl_driver.c +++ b/src/qxl_driver.c @@ -221,10 +221,9 @@ qxl_io_create_primary (qxl_screen_t *qxl) #else ioport_write (qxl, QXL_IO_CREATE_PRIMARY, 0); #endif - qxl->device_primary = QXL_DEVICE_PRIMARY_CREATED; } -static uint64_t qxl_kms_alloc_resource(qxl_screen_t *qxl, +static uint32_t qxl_kms_alloc_resource(qxl_screen_t *qxl, uint32_t size, uint32_t type) { struct drm_qxl_alloc alloc; @@ -239,7 +238,8 @@ static uint64_t qxl_kms_alloc_resource(qxl_screen_t *qxl, "error doing QXL_ALLOC\n"); return 0; // an invalid handle } - return alloc.handle; + // TODO - remove cast as soon as alloc is updated + return (uint32_t)alloc.handle; } static void * @@ -276,9 +276,11 @@ qxl_kms_create_primary_surface(qxl_screen_t *qxl, QXLMode *mode) // NB: size needs to match closely with mode. size_t size = 640*480*4; - uint64_t handle = qxl_kms_alloc_resource(qxl, size, + uint32_t handle = qxl_kms_alloc_resource(qxl, size, QXL_ALLOC_TYPE_SURFACE_PRIMARY); // NB: we may be repeatedly mapping here. should be cached. + qxl->device_primary = QXL_DEVICE_PRIMARY_CREATED; + qxl->primary_handle = handle; return qxl_kms_mmap(qxl, handle, size); } @@ -298,6 +300,8 @@ qxl_ums_create_primary_surface(qxl_screen_t *qxl, QXLMode *mode) create->type = QXL_SURF_TYPE_PRIMARY; create->mem = physical_address (qxl, qxl->ram, qxl->main_mem_slot); qxl_io_create_primary(qxl); + qxl->device_primary = QXL_DEVICE_PRIMARY_CREATED; + qxl->primary_handle = 0; return (uint8_t *)qxl->ram + mode->stride * (mode->y_res - 1); } |