summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-07-04 14:56:07 -0400
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-07-15 19:21:34 +0200
commit7f8d3ed05cbe8914910e49b49ec44df15562bd16 (patch)
tree3a35e93f4ac26d71e87c255ecaaf07bf447edd81 /src
parentf9980eec2287a01a918ff073a45f13d9dc66a1c6 (diff)
Coding style improvement
Diffstat (limited to 'src')
-rw-r--r--src/qxl_driver.c1296
1 files changed, 628 insertions, 668 deletions
diff --git a/src/qxl_driver.c b/src/qxl_driver.c
index 025f8ed..e621501 100644
--- a/src/qxl_driver.c
+++ b/src/qxl_driver.c
@@ -59,72 +59,72 @@
extern void compat_init_scrn(ScrnInfoPtr);
#if 0
-#define CHECK_POINT() ErrorF ("%s: %d (%s)\n", __FILE__, __LINE__, __FUNCTION__);
+#define CHECK_POINT() ErrorF("%s: %d (%s)\n", __FILE__, __LINE__, __FUNCTION__);
#endif
#define CHECK_POINT()
const OptionInfoRec DefaultOptions[] = {
{ OPTION_ENABLE_IMAGE_CACHE,
- "EnableImageCache", OPTV_BOOLEAN, { 0 }, TRUE },
+ "EnableImageCache", OPTV_BOOLEAN, { 0 }, TRUE },
{ OPTION_ENABLE_FALLBACK_CACHE,
- "EnableFallbackCache", OPTV_BOOLEAN, { 0 }, TRUE },
+ "EnableFallbackCache", OPTV_BOOLEAN, { 0 }, TRUE },
{ OPTION_ENABLE_SURFACES,
- "EnableSurfaces", OPTV_BOOLEAN, { 0 }, TRUE },
+ "EnableSurfaces", OPTV_BOOLEAN, { 0 }, TRUE },
{ OPTION_NUM_HEADS,
- "NumHeads", OPTV_INTEGER, { 4 }, FALSE },
+ "NumHeads", OPTV_INTEGER, { 4 }, FALSE },
#ifdef XSPICE
{ OPTION_SPICE_PORT,
- "SpicePort", OPTV_INTEGER, {5900}, FALSE },
+ "SpicePort", OPTV_INTEGER, {5900}, FALSE },
{ OPTION_SPICE_TLS_PORT,
- "SpiceTlsPort", OPTV_INTEGER, {0}, FALSE},
+ "SpiceTlsPort", OPTV_INTEGER, {0}, FALSE},
{ OPTION_SPICE_ADDR,
- "SpiceAddr", OPTV_STRING, {0}, FALSE},
+ "SpiceAddr", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_X509_DIR,
- "SpiceX509Dir", OPTV_STRING, {0}, FALSE},
+ "SpiceX509Dir", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_SASL,
- "SpiceSasl", OPTV_BOOLEAN, {0}, FALSE},
+ "SpiceSasl", OPTV_BOOLEAN, {0}, FALSE},
/* VVV qemu defaults to 1 - not implemented in xspice yet */
{ OPTION_SPICE_AGENT_MOUSE,
- "SpiceAgentMouse", OPTV_BOOLEAN, {0}, FALSE},
+ "SpiceAgentMouse", OPTV_BOOLEAN, {0}, FALSE},
{ OPTION_SPICE_DISABLE_TICKETING,
- "SpiceDisableTicketing", OPTV_BOOLEAN, {0}, FALSE},
+ "SpiceDisableTicketing", OPTV_BOOLEAN, {0}, FALSE},
{ OPTION_SPICE_PASSWORD,
- "SpicePassword", OPTV_STRING, {0}, FALSE},
+ "SpicePassword", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_X509_KEY_FILE,
- "SpiceX509KeyFile", OPTV_STRING, {0}, FALSE},
+ "SpiceX509KeyFile", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_STREAMING_VIDEO,
- "SpiceStreamingVideo", OPTV_STRING, {.str="filter"}, FALSE},
+ "SpiceStreamingVideo", OPTV_STRING, {.str="filter"}, FALSE},
{ OPTION_SPICE_PLAYBACK_COMPRESSION,
- "SpicePlaybackCompression", OPTV_BOOLEAN, {1}, FALSE},
+ "SpicePlaybackCompression", OPTV_BOOLEAN, {1}, FALSE},
{ OPTION_SPICE_ZLIB_GLZ_WAN_COMPRESSION,
- "SpiceZlibGlzWanCompression", OPTV_STRING, {.str="auto"}, FALSE},
+ "SpiceZlibGlzWanCompression", OPTV_STRING, {.str="auto"}, FALSE},
{ OPTION_SPICE_JPEG_WAN_COMPRESSION,
- "SpiceJpegWanCompression", OPTV_STRING, {.str="auto"}, FALSE},
+ "SpiceJpegWanCompression", OPTV_STRING, {.str="auto"}, FALSE},
{ OPTION_SPICE_IMAGE_COMPRESSION,
- "SpiceImageCompression", OPTV_STRING, {.str="auto_glz"}, FALSE},
+ "SpiceImageCompression", OPTV_STRING, {.str="auto_glz"}, FALSE},
{ OPTION_SPICE_DISABLE_COPY_PASTE,
- "SpiceDisableCopyPaste", OPTV_BOOLEAN, {0}, FALSE},
+ "SpiceDisableCopyPaste", OPTV_BOOLEAN, {0}, FALSE},
{ OPTION_SPICE_IPV4_ONLY,
- "SpiceIPV4Only", OPTV_BOOLEAN, {0}, FALSE},
+ "SpiceIPV4Only", OPTV_BOOLEAN, {0}, FALSE},
{ OPTION_SPICE_IPV6_ONLY,
- "SpiceIPV6Only", OPTV_BOOLEAN, {0}, FALSE},
+ "SpiceIPV6Only", OPTV_BOOLEAN, {0}, FALSE},
{ OPTION_SPICE_X509_CERT_FILE,
- "SpiceX509CertFile", OPTV_STRING, {0}, FALSE},
+ "SpiceX509CertFile", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_X509_KEY_PASSWORD,
- "SpiceX509KeyPassword", OPTV_STRING, {0}, FALSE},
+ "SpiceX509KeyPassword", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_TLS_CIPHERS,
- "SpiceTlsCiphers", OPTV_STRING, {0}, FALSE},
+ "SpiceTlsCiphers", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_CACERT_FILE,
- "SpiceCacertFile", OPTV_STRING, {0}, FALSE},
+ "SpiceCacertFile", OPTV_STRING, {0}, FALSE},
{ OPTION_SPICE_DH_FILE,
- "SpiceDhFile", OPTV_STRING, {0}, FALSE},
+ "SpiceDhFile", OPTV_STRING, {0}, FALSE},
#endif
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
static const OptionInfoRec *
-qxl_available_options (int chipid, int busid)
+qxl_available_options(int chipid, int busid)
{
return DefaultOptions;
}
@@ -132,24 +132,26 @@ qxl_available_options (int chipid, int busid)
#ifndef XSPICE
static void qxl_wait_for_io_command(qxl_screen_t *qxl)
{
- struct QXLRam *ram_header = (void *)(
- (unsigned long)qxl->ram + qxl->rom->ram_header_offset);
+ struct QXLRam *ram_header;
+
+ ram_header = (void *)((unsigned long)qxl->ram + qxl->rom->ram_header_offset);
- while (!(ram_header->int_pending & QXL_INTERRUPT_IO_CMD)) {
+ while (!(ram_header->int_pending & QXL_INTERRUPT_IO_CMD))
usleep(1);
- }
+
ram_header->int_pending &= ~QXL_INTERRUPT_IO_CMD;
}
#if 0
static void qxl_wait_for_display_interrupt(qxl_screen_t *qxl)
{
- struct QXLRam *ram_header = (void *)(
- (unsigned long)qxl->ram + qxl->rom->ram_header_offset);
+ struct QXLRam *ram_header;
+
+ ram_header = (void *)((unsigned long)qxl->ram + qxl->rom->ram_header_offset);
- while (!(ram_header->int_pending & QXL_INTERRUPT_DISPLAY)) {
+ while (!(ram_header->int_pending & QXL_INTERRUPT_DISPLAY))
usleep(1);
- }
+
ram_header->int_pending &= ~QXL_INTERRUPT_DISPLAY;
}
#endif
@@ -201,12 +203,10 @@ void qxl_io_create_primary(qxl_screen_t *qxl)
void qxl_io_destroy_primary(qxl_screen_t *qxl)
{
#ifndef XSPICE
- if (qxl->pci->revision >= 3)
- {
+ if (qxl->pci->revision >= 3) {
ioport_write(qxl, QXL_IO_DESTROY_PRIMARY_ASYNC, 0);
qxl_wait_for_io_command(qxl);
- } else
- {
+ } else {
ioport_write(qxl, QXL_IO_DESTROY_PRIMARY, 0);
}
#else
@@ -232,7 +232,7 @@ void qxl_io_flush_surfaces(qxl_screen_t *qxl)
}
static void
-qxl_usleep (int useconds)
+qxl_usleep(int useconds)
{
struct timespec t;
@@ -241,7 +241,7 @@ qxl_usleep (int useconds)
errno = 0;
while (nanosleep (&t, &t) == -1 && errno == EINTR)
- ;
+ ;
}
#ifdef QXLDRV_RESIZABLE_SURFACE0
@@ -250,9 +250,9 @@ static void qxl_io_flush_release(qxl_screen_t *qxl)
#ifndef XSPICE
int sum = 0;
- sum += qxl_garbage_collect (qxl);
+ sum += qxl_garbage_collect(qxl);
ioport_write(qxl, QXL_IO_FLUSH_RELEASE, 0);
- sum += qxl_garbage_collect (qxl);
+ sum += qxl_garbage_collect(qxl);
ErrorF("%s: collected %d\n", __func__, sum);
#else
#endif
@@ -265,6 +265,7 @@ static void qxl_io_monitors_config_async(qxl_screen_t *qxl)
if (qxl->pci->revision < 4) {
return;
}
+
ioport_write(qxl, QXL_IO_MONITORS_CONFIG_ASYNC, 0);
qxl_wait_for_io_command(qxl);
#else
@@ -284,88 +285,85 @@ qxl_allocate_monitors_config(qxl_screen_t *qxl)
{
int size = sizeof(QXLMonitorsConfig) + sizeof(QXLHead) * MAX_MONITORS_NUM;
- if (qxl->monitors_config) {
+ if (qxl->monitors_config)
return;
- }
- qxl->monitors_config = (QXLMonitorsConfig *)(void *)(
- (unsigned long)qxl->ram + qxl->rom->ram_header_offset
- - qxl->monitors_config_size);
+
+ qxl->monitors_config = (QXLMonitorsConfig *)(void *)
+ ((unsigned long)qxl->ram + qxl->rom->ram_header_offset - qxl->monitors_config_size);
+
memset(qxl->monitors_config, 0, size);
}
+static uint64_t
+qxl_garbage_collect_internal(qxl_screen_t *qxl, uint64_t id)
+{
+ /* We assume that there the two low bits of a pointer are
+ * available. If the low one is set, then the command in
+ * question is a cursor command
+ */
+#define POINTER_MASK ((1 << 2) - 1)
+
+ union QXLReleaseInfo *info = u64_to_pointer (id & ~POINTER_MASK);
+ struct QXLCursorCmd *cmd = (struct QXLCursorCmd *)info;
+ struct QXLDrawable *drawable = (struct QXLDrawable *)info;
+ struct QXLSurfaceCmd *surface_cmd = (struct QXLSurfaceCmd *)info;
+ int is_cursor = FALSE;
+ int is_surface = FALSE;
+ int is_drawable = FALSE;
+
+ if ((id & POINTER_MASK) == 1)
+ is_cursor = TRUE;
+ else if ((id & POINTER_MASK) == 2)
+ is_surface = TRUE;
+ else
+ is_drawable = TRUE;
+
+ if (is_cursor && cmd->type == QXL_CURSOR_SET) {
+ struct QXLCursor *cursor;
+
+ cursor = (void *)virtual_address(qxl, u64_to_pointer (cmd->u.set.shape),
+ qxl->main_mem_slot);
+ qxl_free(qxl->mem, cursor);
+ } else if (is_drawable && drawable->type == QXL_DRAW_COPY) {
+ struct QXLImage *image;
+
+ image = virtual_address(qxl, u64_to_pointer (drawable->u.copy.src_bitmap),
+ qxl->main_mem_slot);
+ if (image->descriptor.type == SPICE_IMAGE_TYPE_SURFACE){
+ qxl_surface_unref(qxl->surface_cache, image->surface_image.surface_id);
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
+ qxl_free(qxl->mem, image);
+ } else {
+ qxl_image_destroy(qxl, image);
+ }
+ } else if (is_surface && surface_cmd->type == QXL_SURFACE_CMD_DESTROY) {
+ qxl_surface_recycle(qxl->surface_cache, surface_cmd->surface_id);
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
+ }
+
+ id = info->next;
+ qxl_free(qxl->mem, info);
+
+ return id;
+}
+
int
-qxl_garbage_collect (qxl_screen_t *qxl)
+qxl_garbage_collect(qxl_screen_t *qxl)
{
uint64_t id;
int i = 0;
while (qxl_ring_pop (qxl->release_ring, &id))
- {
- while (id)
- {
- /* We assume that there the two low bits of a pointer are
- * available. If the low one is set, then the command in
- * question is a cursor command
- */
-#define POINTER_MASK ((1 << 2) - 1)
-
- union QXLReleaseInfo *info = u64_to_pointer (id & ~POINTER_MASK);
- struct QXLCursorCmd *cmd = (struct QXLCursorCmd *)info;
- struct QXLDrawable *drawable = (struct QXLDrawable *)info;
- struct QXLSurfaceCmd *surface_cmd = (struct QXLSurfaceCmd *)info;
- int is_cursor = FALSE;
- int is_surface = FALSE;
- int is_drawable = FALSE;
-
- if ((id & POINTER_MASK) == 1)
- is_cursor = TRUE;
- else if ((id & POINTER_MASK) == 2)
- is_surface = TRUE;
- else
- is_drawable = TRUE;
-
- if (is_cursor && cmd->type == QXL_CURSOR_SET)
- {
- struct QXLCursor *cursor = (void *)virtual_address (
- qxl, u64_to_pointer (cmd->u.set.shape), qxl->main_mem_slot);
-
- qxl_free (qxl->mem, cursor);
- }
- else if (is_drawable && drawable->type == QXL_DRAW_COPY)
- {
- struct QXLImage *image = virtual_address (
- qxl, u64_to_pointer (drawable->u.copy.src_bitmap), qxl->main_mem_slot);
-
- if (image->descriptor.type == SPICE_IMAGE_TYPE_SURFACE)
- {
- qxl_surface_unref (qxl->surface_cache, image->surface_image.surface_id);
- qxl_surface_cache_sanity_check (qxl->surface_cache);
- qxl_free (qxl->mem, image);
- }
- else
- {
- qxl_image_destroy (qxl, image);
- }
- }
- else if (is_surface && surface_cmd->type == QXL_SURFACE_CMD_DESTROY)
- {
- qxl_surface_recycle (qxl->surface_cache, surface_cmd->surface_id);
- qxl_surface_cache_sanity_check (qxl->surface_cache);
- }
-
- id = info->next;
-
- qxl_free (qxl->mem, info);
-
- ++i;
- }
- }
-
+ while (id) {
+ id = qxl_garbage_collect_internal(qxl, id);
+ i++;
+ }
+
return i;
}
int
-qxl_handle_oom (qxl_screen_t *qxl)
+qxl_handle_oom(qxl_screen_t *qxl)
{
qxl_io_notify_oom(qxl);
@@ -374,14 +372,14 @@ qxl_handle_oom (qxl_screen_t *qxl)
qxl_usleep (10000);
#endif
- if (!(qxl_garbage_collect (qxl)))
- qxl_usleep (10000);
+ if (!(qxl_garbage_collect(qxl)))
+ qxl_usleep(10000);
- return qxl_garbage_collect (qxl);
+ return qxl_garbage_collect(qxl);
}
void *
-qxl_allocnf (qxl_screen_t *qxl, unsigned long size)
+qxl_allocnf(qxl_screen_t *qxl, unsigned long size)
{
void *result;
int n_attempts = 0;
@@ -389,31 +387,25 @@ qxl_allocnf (qxl_screen_t *qxl, unsigned long size)
static int nth_oom = 1;
#endif
- qxl_garbage_collect (qxl);
-
- while (!(result = qxl_alloc (qxl->mem, size)))
- {
+ qxl_garbage_collect(qxl);
+
+ while (!(result = qxl_alloc(qxl->mem, size))) {
#if 0
- ErrorF ("eliminated memory (%d)\n", nth_oom++);
+ ErrorF("eliminated memory (%d)\n", nth_oom++);
#endif
- if (!qxl_garbage_collect (qxl))
- {
- if (qxl_handle_oom (qxl))
- {
- n_attempts = 0;
- }
- else if (++n_attempts == 1000)
- {
- ErrorF ("Out of memory allocating %ld bytes\n", size);
- qxl_mem_dump_stats (qxl->mem, "Out of mem - stats\n");
-
- fprintf (stderr, "Out of memory\n");
- exit (1);
- }
- }
+ if (!qxl_garbage_collect(qxl)) {
+ if (qxl_handle_oom(qxl)) {
+ n_attempts = 0;
+ } else if (++n_attempts == 1000) {
+ ErrorF("Out of memory allocating %ld bytes\n", size);
+ qxl_mem_dump_stats(qxl->mem, "Out of mem - stats\n");
+ fprintf(stderr, "Out of memory\n");
+ exit(1);
+ }
+ }
}
-
+
return result;
}
@@ -451,18 +443,18 @@ unmap_memory_helper(qxl_screen_t *qxl)
{
#ifdef XSERVER_LIBPCIACCESS
if (qxl->ram)
- pci_device_unmap_range(qxl->pci, qxl->ram, qxl->pci->regions[0].size);
+ pci_device_unmap_range(qxl->pci, qxl->ram, qxl->pci->regions[0].size);
if (qxl->vram)
- pci_device_unmap_range(qxl->pci, qxl->vram, qxl->pci->regions[1].size);
+ pci_device_unmap_range(qxl->pci, qxl->vram, qxl->pci->regions[1].size);
if (qxl->rom)
- pci_device_unmap_range(qxl->pci, qxl->rom, qxl->pci->regions[2].size);
+ pci_device_unmap_range(qxl->pci, qxl->rom, qxl->pci->regions[2].size);
#else
if (qxl->ram)
- xf86UnMapVidMem(scrnIndex, qxl->ram, (1 << qxl->pci->size[0]));
+ xf86UnMapVidMem(scrnIndex, qxl->ram, (1 << qxl->pci->size[0]));
if (qxl->vram)
- xf86UnMapVidMem(scrnIndex, qxl->vram, (1 << qxl->pci->size[1]));
+ xf86UnMapVidMem(scrnIndex, qxl->vram, (1 << qxl->pci->size[1]));
if (qxl->rom)
- xf86UnMapVidMem(scrnIndex, qxl->rom, (1 << qxl->pci->size[2]));
+ xf86UnMapVidMem(scrnIndex, qxl->rom, (1 << qxl->pci->size[2]));
#endif
}
@@ -471,39 +463,39 @@ map_memory_helper(qxl_screen_t *qxl)
{
#ifdef XSERVER_LIBPCIACCESS
pci_device_map_range(qxl->pci, qxl->pci->regions[0].base_addr,
- qxl->pci->regions[0].size,
- PCI_DEV_MAP_FLAG_WRITABLE | PCI_DEV_MAP_FLAG_WRITE_COMBINE,
- &qxl->ram);
+ qxl->pci->regions[0].size,
+ PCI_DEV_MAP_FLAG_WRITABLE | PCI_DEV_MAP_FLAG_WRITE_COMBINE,
+ &qxl->ram);
qxl->ram_physical = u64_to_pointer (qxl->pci->regions[0].base_addr);
qxl->ram_size = qxl->pci->regions[0].size;
pci_device_map_range(qxl->pci, qxl->pci->regions[1].base_addr,
- qxl->pci->regions[1].size,
- PCI_DEV_MAP_FLAG_WRITABLE,
- &qxl->vram);
+ qxl->pci->regions[1].size,
+ PCI_DEV_MAP_FLAG_WRITABLE,
+ &qxl->vram);
qxl->vram_physical = u64_to_pointer (qxl->pci->regions[1].base_addr);
qxl->vram_size = qxl->pci->regions[1].size;
pci_device_map_range(qxl->pci, qxl->pci->regions[2].base_addr,
- qxl->pci->regions[2].size, 0,
- (void **)&qxl->rom);
+ qxl->pci->regions[2].size, 0,
+ (void **)&qxl->rom);
qxl->io_base = qxl->pci->regions[3].base_addr;
#else
qxl->ram = xf86MapPciMem(scrnIndex, VIDMEM_FRAMEBUFFER,
- qxl->pci_tag, qxl->pci->memBase[0],
- (1 << qxl->pci->size[0]));
+ qxl->pci_tag, qxl->pci->memBase[0],
+ (1 << qxl->pci->size[0]));
qxl->ram_physical = (void *)qxl->pci->memBase[0];
qxl->vram = xf86MapPciMem(scrnIndex, VIDMEM_MMIO | VIDMEM_MMIO_32BIT,
- qxl->pci_tag, qxl->pci->memBase[1],
- (1 << qxl->pci->size[1]));
+ qxl->pci_tag, qxl->pci->memBase[1],
+ (1 << qxl->pci->size[1]));
qxl->vram_physical = (void *)qxl->pci->memBase[1];
qxl->vram_size = (1 << qxl->pci->size[1]);
qxl->rom = xf86MapPciMem(scrnIndex, VIDMEM_MMIO | VIDMEM_MMIO_32BIT,
- qxl->pci_tag, qxl->pci->memBase[2],
- (1 << qxl->pci->size[2]));
+ qxl->pci_tag, qxl->pci->memBase[2],
+ (1 << qxl->pci->size[2]));
qxl->io_base = qxl->pci->ioBase[3];
#endif
@@ -519,13 +511,13 @@ qxl_unmap_memory(qxl_screen_t *qxl)
qxl->worker_running = FALSE;
}
#endif
- if (qxl->mem)
- {
- qxl_mem_free_all (qxl->mem);
- qxl_drop_image_cache (qxl);
+ if (qxl->mem) {
+ qxl_mem_free_all(qxl->mem);
+ qxl_drop_image_cache (qxl);
}
if (qxl->surf_mem)
- qxl_mem_free_all (qxl->surf_mem);
+ qxl_mem_free_all(qxl->surf_mem);
+
unmap_memory_helper(qxl);
qxl->ram = qxl->ram_physical = qxl->vram = qxl->rom = NULL;
@@ -533,7 +525,8 @@ qxl_unmap_memory(qxl_screen_t *qxl)
qxl->modes = NULL;
}
-static void __attribute__ ((__noreturn__)) qxl_mspace_abort_func(void *user_data)
+static void __attribute__ ((__noreturn__))
+qxl_mspace_abort_func(void *user_data)
{
abort();
}
@@ -579,30 +572,30 @@ static int
qxl_resize_surface0(qxl_screen_t *qxl, long surface0_size)
{
long ram_header_size = qxl->ram_size - qxl->rom->ram_header_offset;
- long new_mem_size = qxl->ram_size - surface0_size - ram_header_size
- - qxl->monitors_config_size;
+ long new_mem_size = qxl->ram_size -
+ (surface0_size + ram_header_size + qxl->monitors_config_size);
if (new_mem_size < 0) {
- ErrorF ("cannot resize surface0 to %ld, does not fit in BAR 0\n",
+ ErrorF("cannot resize surface0 to %ld, does not fit in BAR 0\n",
surface0_size);
return 0;
}
- ErrorF ("resizing surface0 to %ld\n", surface0_size);
- if (qxl->mem)
- {
+ ErrorF("resizing surface0 to %ld\n", surface0_size);
+
+ if (qxl->mem) {
#ifdef QXLDRV_RESIZABLE_SURFACE0
void *surfaces;
qxl_dump_ring_stat(qxl);
qxl_io_flush_surfaces(qxl);
- surfaces = qxl_surface_cache_evacuate_all (qxl->surface_cache);
+ surfaces = qxl_surface_cache_evacuate_all(qxl->surface_cache);
qxl_io_destroy_all_surfaces(qxl); // redundant?
qxl_io_flush_release(qxl);
- qxl_drop_image_cache (qxl);
+ qxl_drop_image_cache(qxl);
qxl_dump_ring_stat(qxl);
- qxl_surface_cache_replace_all (qxl->surface_cache, surfaces);
+ qxl_surface_cache_replace_all(qxl->surface_cache, surfaces);
#else
- ErrorF ("resizing surface0 compiled out\n");
+ ErrorF("resizing surface0 compiled out\n");
return 0;
#endif
}
@@ -611,9 +604,8 @@ qxl_resize_surface0(qxl_screen_t *qxl, long surface0_size)
qxl->surface0_size = surface0_size;
qxl->mem_size = new_mem_size;
- qxl->mem = qxl_mem_create ((void *)((unsigned long)qxl->surface0_area
- + qxl->surface0_size),
- qxl->mem_size);
+ qxl->mem = qxl_mem_create((void *)((unsigned long)qxl->surface0_area + qxl->surface0_size),
+ qxl->mem_size);
return 1;
}
@@ -623,17 +615,17 @@ qxl_map_memory(qxl_screen_t *qxl, int scrnIndex)
map_memory_helper(qxl);
if (!qxl->ram || !qxl->vram || !qxl->rom)
- return FALSE;
+ return FALSE;
xf86DrvMsg(scrnIndex, X_INFO, "framebuffer at %p (%d KB)\n",
- qxl->ram, qxl->rom->surface0_area_size / 1024);
+ qxl->ram, qxl->rom->surface0_area_size / 1024);
xf86DrvMsg(scrnIndex, X_INFO, "command ram at %p (%d KB)\n",
- (void *)((unsigned long)qxl->ram + qxl->rom->surface0_area_size),
- (qxl->rom->num_pages * getpagesize() - qxl->rom->surface0_area_size)/1024);
+ (void *)((unsigned long)qxl->ram + qxl->rom->surface0_area_size),
+ (qxl->rom->num_pages * getpagesize() - qxl->rom->surface0_area_size)/1024);
xf86DrvMsg(scrnIndex, X_INFO, "vram at %p (%ld KB)\n",
- qxl->vram, qxl->vram_size / 1024);
+ qxl->vram, qxl->vram_size / 1024);
xf86DrvMsg(scrnIndex, X_INFO, "rom at %p\n", qxl->rom);
@@ -642,17 +634,16 @@ qxl_map_memory(qxl_screen_t *qxl, int scrnIndex)
* the driver can change it without affecting the driver/device ABI.
*/
qxl->monitors_config_size = (sizeof(QXLMonitorsConfig) +
- sizeof(QXLHead) * MAX_MONITORS_NUM + getpagesize() - 1)
- & ~(getpagesize() - 1);
+ sizeof(QXLHead) * MAX_MONITORS_NUM + getpagesize() - 1)
+ & ~(getpagesize() - 1);
qxl->num_modes = *(uint32_t *)((uint8_t *)qxl->rom + qxl->rom->modes_offset);
qxl->modes = (struct QXLMode *)(((uint8_t *)qxl->rom) + qxl->rom->modes_offset + 4);
qxl->surface0_area = qxl->ram;
qxl->surface0_size = 0;
qxl->mem = NULL;
- if (!qxl_resize_surface0(qxl, qxl->rom->surface0_area_size)) {
+ if (!qxl_resize_surface0(qxl, qxl->rom->surface0_area_size))
return FALSE;
- }
- qxl->surf_mem = qxl_mem_create ((void *)((unsigned long)qxl->vram), qxl->vram_size);
+ qxl->surf_mem = qxl_mem_create((void *)((unsigned long)qxl->vram), qxl->vram_size);
qxl_allocate_monitors_config(qxl);
return TRUE;
@@ -683,15 +674,15 @@ qxl_restore_state(ScrnInfoPtr pScrn)
{
qxl_screen_t *qxl = pScrn->driverPrivate;
- if (xf86IsPrimaryPci (qxl->pci))
+ if (xf86IsPrimaryPci(qxl->pci))
vgaHWRestoreFonts(pScrn, &qxl->vgaRegs);
}
#endif /* XSPICE */
static uint8_t
setup_slot(qxl_screen_t *qxl, uint8_t slot_index_offset,
- unsigned long start_phys_addr, unsigned long end_phys_addr,
- uint64_t start_virt_addr, uint64_t end_virt_addr)
+ unsigned long start_phys_addr, unsigned long end_phys_addr,
+ uint64_t start_virt_addr, uint64_t end_virt_addr)
{
uint64_t high_bits;
qxl_memslot_t *slot;
@@ -712,11 +703,12 @@ setup_slot(qxl_screen_t *qxl, uint8_t slot_index_offset,
qxl_io_memslot_add(qxl, slot_index);
slot->generation = qxl->rom->slot_generation;
-
+
high_bits = slot_index << qxl->slot_gen_bits;
high_bits |= slot->generation;
high_bits <<= (64 - (qxl->slot_gen_bits + qxl->slot_id_bits));
slot->high_bits = high_bits;
+
return slot_index;
}
@@ -726,9 +718,9 @@ 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,
- qxl->rom->slots_end);
+ ErrorF("slots start: %d, slots end: %d\n",
+ qxl->rom->slots_start,
+ qxl->rom->slots_end);
/* Main slot */
qxl->n_mem_slots = qxl->rom->slots_end;
@@ -736,24 +728,24 @@ qxl_reset_and_create_mem_slots (qxl_screen_t *qxl)
qxl->slot_id_bits = qxl->rom->slot_id_bits;
qxl->va_slot_mask = (~(uint64_t)0) >> (qxl->slot_id_bits + qxl->slot_gen_bits);
- qxl->mem_slots = xnfalloc (qxl->n_mem_slots * sizeof (qxl_memslot_t));
+ qxl->mem_slots = xnfalloc(qxl->n_mem_slots * sizeof (qxl_memslot_t));
#ifdef XSPICE
qxl->main_mem_slot = qxl->vram_mem_slot = setup_slot(qxl, 0, 0, ~0, 0, ~0);
#else /* QXL */
qxl->main_mem_slot = setup_slot(qxl, 0,
- (unsigned long)qxl->ram_physical,
- (unsigned long)qxl->ram_physical + qxl->surface0_size +
- (unsigned long)qxl->rom->num_pages * getpagesize(),
- (uint64_t)(uintptr_t)qxl->ram,
- (uint64_t)(uintptr_t)qxl->ram + qxl->surface0_size +
- (unsigned long)qxl->rom->num_pages * getpagesize()
- );
+ (unsigned long)qxl->ram_physical,
+ (unsigned long)qxl->ram_physical + qxl->surface0_size +
+ (unsigned long)qxl->rom->num_pages * getpagesize(),
+ (uint64_t)(uintptr_t)qxl->ram,
+ (uint64_t)(uintptr_t)qxl->ram + qxl->surface0_size +
+ (unsigned long)qxl->rom->num_pages * getpagesize()
+ );
qxl->vram_mem_slot = setup_slot(qxl, 1,
- (unsigned long)qxl->vram_physical,
- (unsigned long)qxl->vram_physical + (unsigned long)qxl->vram_size,
- (uint64_t)(uintptr_t)qxl->vram,
- (uint64_t)(uintptr_t)qxl->vram + (uint64_t)qxl->vram_size);
+ (unsigned long)qxl->vram_physical,
+ (unsigned long)qxl->vram_physical + (unsigned long)qxl->vram_size,
+ (uint64_t)(uintptr_t)qxl->vram,
+ (uint64_t)(uintptr_t)qxl->vram + (uint64_t)qxl->vram_size);
#endif
}
@@ -765,16 +757,13 @@ qxl_mark_mem_unverifiable(qxl_screen_t *qxl)
}
void
-qxl_io_destroy_all_surfaces (qxl_screen_t *qxl)
+qxl_io_destroy_all_surfaces(qxl_screen_t *qxl)
{
#ifndef XSPICE
- if (qxl->pci->revision >= 3)
- {
+ if (qxl->pci->revision >= 3) {
ioport_write(qxl, QXL_IO_DESTROY_ALL_SURFACES_ASYNC, 0);
qxl_wait_for_io_command(qxl);
- }
- else
- {
+ } else {
ioport_write(qxl, QXL_IO_DESTROY_ALL_SURFACES, 0);
}
#else
@@ -789,32 +778,31 @@ qxl_close_screen(CLOSE_SCREEN_ARGS_DECL)
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
qxl_screen_t *qxl = pScrn->driverPrivate;
Bool result;
-
- ErrorF ("Disabling FB access for %d\n", pScrn->scrnIndex);
+
+ ErrorF("Disabling FB access for %d\n", pScrn->scrnIndex);
#ifndef XF86_SCRN_INTERFACE
- pScrn->EnableDisableFBAccess (scrnIndex, FALSE);
+ pScrn->EnableDisableFBAccess(scrnIndex, FALSE);
#else
- pScrn->EnableDisableFBAccess (pScrn, FALSE);
+ pScrn->EnableDisableFBAccess(pScrn, FALSE);
#endif
- ErrorF ("Freeing %p\n", qxl->fb);
+ ErrorF("Freeing %p\n", qxl->fb);
free(qxl->fb);
qxl->fb = NULL;
-
+
pScreen->CreateScreenResources = qxl->create_screen_resources;
pScreen->CloseScreen = qxl->close_screen;
-
+
result = pScreen->CloseScreen(CLOSE_SCREEN_ARGS);
#ifndef XSPICE
- if (!xf86IsPrimaryPci (qxl->pci) && qxl->primary)
- qxl_reset_and_create_mem_slots (qxl);
+ if (!xf86IsPrimaryPci(qxl->pci) && qxl->primary)
+ qxl_reset_and_create_mem_slots(qxl);
#endif
-
- if (pScrn->vtSema)
- {
+
+ if (pScrn->vtSema) {
qxl_restore_state(pScrn);
qxl_mark_mem_unverifiable(qxl);
- qxl_unmap_memory(qxl);
+ qxl_unmap_memory(qxl);
}
pScrn->vtSema = FALSE;
@@ -822,29 +810,26 @@ qxl_close_screen(CLOSE_SCREEN_ARGS_DECL)
}
static void
-set_screen_pixmap_header (ScreenPtr pScreen)
+set_screen_pixmap_header(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
qxl_screen_t *qxl = pScrn->driverPrivate;
PixmapPtr pPixmap = pScreen->GetScreenPixmap(pScreen);
-
+
// TODO: don't ModifyPixmapHeader too early?
- if (pPixmap)
- {
- ErrorF ("new stride: %d (display width: %d, bpp: %d)\n",
- qxl->pScrn->displayWidth * qxl->bytes_per_pixel,
- qxl->pScrn->displayWidth, qxl->bytes_per_pixel);
-
- pScreen->ModifyPixmapHeader(
- pPixmap,
- qxl->primary_mode.x_res, qxl->primary_mode.y_res,
- -1, -1,
- qxl->pScrn->displayWidth * qxl->bytes_per_pixel,
- NULL);
- }
- else
- ErrorF ("pix: %p;\n", pPixmap);
+ if (pPixmap) {
+ ErrorF("new stride: %d (display width: %d, bpp: %d)\n",
+ qxl->pScrn->displayWidth * qxl->bytes_per_pixel,
+ qxl->pScrn->displayWidth, qxl->bytes_per_pixel);
+
+ pScreen->ModifyPixmapHeader(pPixmap,
+ qxl->primary_mode.x_res, qxl->primary_mode.y_res,
+ -1, -1,
+ qxl->pScrn->displayWidth * qxl->bytes_per_pixel,
+ NULL);
+ } else
+ ErrorF("pix: %p;\n", pPixmap);
}
static Bool
@@ -854,26 +839,26 @@ qxl_resize_primary_to_virtual(qxl_screen_t *qxl)
long new_surface0_size;
if ((qxl->primary_mode.x_res == qxl->virtual_x &&
- qxl->primary_mode.y_res == qxl->virtual_y) &&
+ qxl->primary_mode.y_res == qxl->virtual_y) &&
qxl->device_primary == QXL_DEVICE_PRIMARY_CREATED) {
return TRUE; /* empty Success */
}
- ErrorF ("resizing primary to %dx%d\n", qxl->virtual_x, qxl->virtual_y);
+ ErrorF("resizing primary to %dx%d\n", qxl->virtual_x, qxl->virtual_y);
- new_surface0_size = qxl->virtual_x * qxl->pScrn->bitsPerPixel / 8
- * qxl->virtual_y;
- if (new_surface0_size > qxl->surface0_size)
- {
+ new_surface0_size =
+ qxl->virtual_x * qxl->pScrn->bitsPerPixel / 8 * qxl->virtual_y;
+
+ if (new_surface0_size > qxl->surface0_size) {
if (!qxl_resize_surface0(qxl, new_surface0_size)) {
ErrorF("not resizing primary to virtual, leaving old virtual\n");
return FALSE;
}
}
- if (qxl->primary)
- {
- qxl_surface_kill (qxl->primary);
- qxl_surface_cache_sanity_check (qxl->surface_cache);
+
+ if (qxl->primary) {
+ qxl_surface_kill(qxl->primary);
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
qxl_io_destroy_primary(qxl);
}
@@ -888,22 +873,21 @@ qxl_resize_primary_to_virtual(qxl_screen_t *qxl)
pm->y_mili = 0; // TODO
pm->orientation = 0; // ? supported by us for single head usage? more TODO
}
- qxl->primary = qxl_surface_cache_create_primary (qxl->surface_cache, &qxl->primary_mode);
+ qxl->primary = qxl_surface_cache_create_primary(qxl->surface_cache, &qxl->primary_mode);
qxl->bytes_per_pixel = (qxl->pScrn->bitsPerPixel + 7) / 8;
pScreen = qxl->pScrn->pScreen;
- if (pScreen)
- {
- PixmapPtr root = pScreen->GetScreenPixmap (pScreen);
- qxl_surface_t *surf;
+ if (pScreen) {
+ PixmapPtr root = pScreen->GetScreenPixmap(pScreen);
+ qxl_surface_t *surf;
+
+ if ((surf = get_surface(root)))
+ qxl_surface_kill(surf);
- if ((surf = get_surface (root)))
- qxl_surface_kill (surf);
-
- set_surface (root, qxl->primary);
+ set_surface(root, qxl->primary);
}
- ErrorF ("primary is %p\n", qxl->primary);
+ ErrorF("primary is %p\n", qxl->primary);
return TRUE;
}
@@ -927,13 +911,12 @@ qxl_switch_mode(SWITCH_MODE_ARGS_DECL)
SCRN_INFO_PTR(arg);
qxl_screen_t *qxl = pScrn->driverPrivate;
- ErrorF ("Ignoring display mode, ensuring recreation of primary\n");
+ ErrorF("Ignoring display mode, ensuring recreation of primary\n");
return qxl_resize_primary_to_virtual(qxl);
}
-enum ROPDescriptor
-{
+enum ROPDescriptor {
ROPD_INVERS_SRC = (1 << 0),
ROPD_INVERS_BRUSH = (1 << 1),
ROPD_INVERS_DEST = (1 << 2),
@@ -962,11 +945,10 @@ qxl_update_monitors_config(qxl_screen_t *qxl)
crtc = qxl->crtcs[i];
head->id = i;
head->surface_id = 0;
- head->flags = 0;
+ head->flags = 0;
if (!crtc->enabled || crtc->mode.CrtcHDisplay == 0 ||
crtc->mode.CrtcVDisplay == 0) {
head->width = head->height = head->x = head->y = 0;
- head->height = 0;
} else {
head->width = crtc->mode.CrtcHDisplay;
head->height = crtc->mode.CrtcVDisplay;
@@ -976,10 +958,10 @@ qxl_update_monitors_config(qxl_screen_t *qxl)
}
}
/* initialize when actually used, memslots should be initialized by now */
- if (ram->monitors_config == 0) {
- ram->monitors_config = physical_address (qxl, qxl->monitors_config,
- qxl->main_mem_slot);
- }
+ if (ram->monitors_config == 0)
+ ram->monitors_config = physical_address(qxl, qxl->monitors_config,
+ qxl->main_mem_slot);
+
qxl_io_monitors_config_async(qxl);
}
@@ -991,13 +973,14 @@ qxl_create_desired_modes(qxl_screen_t *qxl)
for (i = 0 ; i < config->num_crtc; ++i) {
xf86CrtcPtr crtc = config->crtc[i];
- if (!crtc->enabled) {
+ if (!crtc->enabled)
continue;
- }
+
if (!crtc->funcs->set_mode_major(crtc, &crtc->desiredMode, crtc->desiredRotation,
crtc->desiredX, crtc->desiredY))
return FALSE;
}
+
qxl_update_monitors_config(qxl);
return TRUE;
}
@@ -1010,9 +993,9 @@ qxl_update_edid(qxl_screen_t *qxl)
for (i = 0 ; i < config->num_crtc; ++i) {
xf86CrtcPtr crtc = config->crtc[i];
- if (!crtc->enabled) {
+ if (!crtc->enabled)
continue;
- }
+
qxl_output_edid_set(qxl->outputs[i], i, &crtc->desiredMode);
}
}
@@ -1026,22 +1009,22 @@ qxl_create_screen_resources(ScreenPtr pScreen)
PixmapPtr pPixmap;
qxl_surface_t *surf;
int i;
-
+
pScreen->CreateScreenResources = qxl->create_screen_resources;
ret = pScreen->CreateScreenResources (pScreen);
pScreen->CreateScreenResources = qxl_create_screen_resources;
if (!ret)
- return FALSE;
+ return FALSE;
pPixmap = pScreen->GetScreenPixmap (pScreen);
-
+
set_screen_pixmap_header (pScreen);
if ((surf = get_surface (pPixmap)))
- qxl_surface_kill (surf);
-
- set_surface (pPixmap, qxl->primary);
+ qxl_surface_kill (surf);
+
+ set_surface(pPixmap, qxl->primary);
/* HACK - I don't want to enable any crtcs other then the first at the beginning */
for (i = 1; i < qxl->num_heads; ++i) {
@@ -1061,40 +1044,40 @@ int uxa_pixmap_index;
#endif
static Bool
-unaccel (void)
+unaccel(void)
{
return FALSE;
}
static Bool
-qxl_prepare_access (PixmapPtr pixmap, RegionPtr region, uxa_access_t access)
+qxl_prepare_access(PixmapPtr pixmap, RegionPtr region, uxa_access_t access)
{
- return qxl_surface_prepare_access (get_surface (pixmap),
- pixmap, region, access);
+ return qxl_surface_prepare_access(get_surface(pixmap),
+ pixmap, region, access);
}
static void
-qxl_finish_access (PixmapPtr pixmap)
+qxl_finish_access(PixmapPtr pixmap)
{
- qxl_surface_finish_access (get_surface (pixmap), pixmap);
+ qxl_surface_finish_access(get_surface(pixmap), pixmap);
}
static Bool
-qxl_pixmap_is_offscreen (PixmapPtr pixmap)
+qxl_pixmap_is_offscreen(PixmapPtr pixmap)
{
- return !!get_surface (pixmap);
+ return !!get_surface(pixmap);
}
static Bool
-good_alu_and_pm (DrawablePtr drawable, int alu, Pixel planemask)
+good_alu_and_pm(DrawablePtr drawable, int alu, Pixel planemask)
{
- if (!UXA_PM_IS_SOLID (drawable, planemask))
- return FALSE;
-
+ if (!UXA_PM_IS_SOLID(drawable, planemask))
+ return FALSE;
+
if (alu != GXcopy)
- return FALSE;
-
+ return FALSE;
+
return TRUE;
}
@@ -1102,33 +1085,33 @@ good_alu_and_pm (DrawablePtr drawable, int alu, Pixel planemask)
* Solid fill
*/
static Bool
-qxl_check_solid (DrawablePtr drawable, int alu, Pixel planemask)
+qxl_check_solid(DrawablePtr drawable, int alu, Pixel planemask)
{
- if (!good_alu_and_pm (drawable, alu, planemask))
- return FALSE;
-
+ if (!good_alu_and_pm(drawable, alu, planemask))
+ return FALSE;
+
return TRUE;
}
static Bool
-qxl_prepare_solid (PixmapPtr pixmap, int alu, Pixel planemask, Pixel fg)
+qxl_prepare_solid(PixmapPtr pixmap, int alu, Pixel planemask, Pixel fg)
{
qxl_surface_t *surface;
-
- if (!(surface = get_surface (pixmap)))
- return FALSE;
-
- return qxl_surface_prepare_solid (surface, fg);
+
+ if (!(surface = get_surface(pixmap)))
+ return FALSE;
+
+ return qxl_surface_prepare_solid(surface, fg);
}
static void
-qxl_solid (PixmapPtr pixmap, int x1, int y1, int x2, int y2)
+qxl_solid(PixmapPtr pixmap, int x1, int y1, int x2, int y2)
{
- qxl_surface_solid (get_surface (pixmap), x1, y1, x2, y2);
+ qxl_surface_solid(get_surface(pixmap), x1, y1, x2, y2);
}
static void
-qxl_done_solid (PixmapPtr pixmap)
+qxl_done_solid(PixmapPtr pixmap)
{
}
@@ -1136,185 +1119,180 @@ qxl_done_solid (PixmapPtr pixmap)
* Copy
*/
static Bool
-qxl_check_copy (PixmapPtr source, PixmapPtr dest,
- int alu, Pixel planemask)
+qxl_check_copy(PixmapPtr source, PixmapPtr dest,
+ int alu, Pixel planemask)
{
- if (!good_alu_and_pm ((DrawablePtr)source, alu, planemask))
- return FALSE;
-
+ if (!good_alu_and_pm((DrawablePtr)source, alu, planemask))
+ return FALSE;
+
if (source->drawable.bitsPerPixel != dest->drawable.bitsPerPixel)
- {
- ErrorF ("differing bitsperpixel - this shouldn't happen\n");
- return FALSE;
- }
-
+ {
+ ErrorF("differing bitsperpixel - this shouldn't happen\n");
+ return FALSE;
+ }
+
return TRUE;
}
static Bool
-qxl_prepare_copy (PixmapPtr source, PixmapPtr dest,
- int xdir, int ydir, int alu,
- Pixel planemask)
+qxl_prepare_copy(PixmapPtr source, PixmapPtr dest,
+ int xdir, int ydir, int alu,
+ Pixel planemask)
{
- return qxl_surface_prepare_copy (get_surface (dest), get_surface (source));
+ return qxl_surface_prepare_copy(get_surface(dest), get_surface(source));
}
static void
-qxl_copy (PixmapPtr dest,
- int src_x1, int src_y1,
- int dest_x1, int dest_y1,
- int width, int height)
+qxl_copy(PixmapPtr dest,
+ int src_x1, int src_y1,
+ int dest_x1, int dest_y1,
+ int width, int height)
{
- qxl_surface_copy (get_surface (dest),
- src_x1, src_y1,
- dest_x1, dest_y1,
- width, height);
+ qxl_surface_copy(get_surface(dest),
+ src_x1, src_y1,
+ dest_x1, dest_y1,
+ width, height);
}
static void
-qxl_done_copy (PixmapPtr dest)
+qxl_done_copy(PixmapPtr dest)
{
}
static Bool
-qxl_put_image (PixmapPtr pDst, int x, int y, int w, int h,
- char *src, int src_pitch)
+qxl_put_image(PixmapPtr pDst, int x, int y, int w, int h,
+ char *src, int src_pitch)
{
- qxl_surface_t *surface = get_surface (pDst);
+ qxl_surface_t *surface = get_surface(pDst);
if (surface)
- return qxl_surface_put_image (surface, x, y, w, h, src, src_pitch);
+ return qxl_surface_put_image(surface, x, y, w, h, src, src_pitch);
return FALSE;
}
static void
-qxl_set_screen_pixmap (PixmapPtr pixmap)
+qxl_set_screen_pixmap(PixmapPtr pixmap)
{
pixmap->drawable.pScreen->devPrivate = pixmap;
}
static PixmapPtr
-qxl_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usage)
+qxl_create_pixmap(ScreenPtr screen, int w, int h, int depth, unsigned usage)
{
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
PixmapPtr pixmap;
qxl_screen_t *qxl = scrn->driverPrivate;
qxl_surface_t *surface;
-
+
if (w > 32767 || h > 32767)
- return NULL;
+ return NULL;
- qxl_surface_cache_sanity_check (qxl->surface_cache);
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
#if 0
- ErrorF ("Create pixmap: %d %d @ %d (usage: %d)\n", w, h, depth, usage);
+ ErrorF("Create pixmap: %d %d @ %d (usage: %d)\n", w, h, depth, usage);
#endif
- if (uxa_swapped_out (screen))
- goto fallback;
-
- surface = qxl_surface_create (qxl->surface_cache, w, h, depth);
-
- if (surface)
- {
- /* ErrorF (" Successfully created surface in video memory\n"); */
-
- pixmap = fbCreatePixmap (screen, 0, 0, depth, usage);
-
- screen->ModifyPixmapHeader(pixmap, w, h,
- -1, -1, -1,
- NULL);
-
+ if (uxa_swapped_out(screen))
+ goto fallback;
+
+ surface = qxl_surface_create(qxl->surface_cache, w, h, depth);
+
+ if (surface) {
+ /* ErrorF(" Successfully created surface in video memory\n"); */
+
+ pixmap = fbCreatePixmap(screen, 0, 0, depth, usage);
+
+ screen->ModifyPixmapHeader(pixmap, w, h,
+ -1, -1, -1,
+ NULL);
+
#if 0
- ErrorF ("Create pixmap %p with surface %p\n", pixmap, surface);
+ ErrorF("Create pixmap %p with surface %p\n", pixmap, surface);
#endif
- set_surface (pixmap, surface);
- qxl_surface_set_pixmap (surface, pixmap);
+ set_surface(pixmap, surface);
+ qxl_surface_set_pixmap(surface, pixmap);
- qxl_surface_cache_sanity_check (qxl->surface_cache);
- }
- else
- {
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
+ } else {
#if 0
- ErrorF (" Couldn't allocate %d x %d @ %d surface in video memory\n",
- w, h, depth);
+ ErrorF(" Couldn't allocate %d x %d @ %d surface in video memory\n",
+ w, h, depth);
#endif
- fallback:
- pixmap = fbCreatePixmap (screen, w, h, depth, usage);
+fallback:
+ pixmap = fbCreatePixmap(screen, w, h, depth, usage);
#if 0
- ErrorF ("Create pixmap %p without surface\n", pixmap);
+ ErrorF("Create pixmap %p without surface\n", pixmap);
#endif
}
-
+
return pixmap;
}
static Bool
-qxl_destroy_pixmap (PixmapPtr pixmap)
+qxl_destroy_pixmap(PixmapPtr pixmap)
{
ScreenPtr screen = pixmap->drawable.pScreen;
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
qxl_screen_t *qxl = scrn->driverPrivate;
qxl_surface_t *surface = NULL;
- qxl_surface_cache_sanity_check (qxl->surface_cache);
-
- if (pixmap->refcnt == 1)
- {
- surface = get_surface (pixmap);
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
+
+ if (pixmap->refcnt == 1) {
+ surface = get_surface(pixmap);
#if 0
- ErrorF ("- Destroy %p (had surface %p)\n", pixmap, surface);
+ ErrorF("- Destroy %p (had surface %p)\n", pixmap, surface);
#endif
-
- if (surface)
- {
- qxl_surface_kill (surface);
- set_surface (pixmap, NULL);
-
- qxl_surface_cache_sanity_check (qxl->surface_cache);
- }
+
+ if (surface) {
+ qxl_surface_kill(surface);
+ set_surface(pixmap, NULL);
+
+ qxl_surface_cache_sanity_check(qxl->surface_cache);
+ }
}
-
- fbDestroyPixmap (pixmap);
+
+ fbDestroyPixmap(pixmap);
return TRUE;
}
static Bool
-setup_uxa (qxl_screen_t *qxl, ScreenPtr screen)
+setup_uxa(qxl_screen_t *qxl, ScreenPtr screen)
{
ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
#if HAS_DIXREGISTERPRIVATEKEY
if (!dixRegisterPrivateKey(&uxa_pixmap_index, PRIVATE_PIXMAP, 0))
- return FALSE;
+ return FALSE;
#else
if (!dixRequestPrivate(&uxa_pixmap_index, 0))
- return FALSE;
+ return FALSE;
#endif
-
+
qxl->uxa = uxa_driver_alloc();
if (qxl->uxa == NULL)
- return FALSE;
+ return FALSE;
memset(qxl->uxa, 0, sizeof(*qxl->uxa));
-
+
qxl->uxa->uxa_major = 1;
qxl->uxa->uxa_minor = 0;
-
+
/* Solid fill */
qxl->uxa->check_solid = qxl_check_solid;
qxl->uxa->prepare_solid = qxl_prepare_solid;
qxl->uxa->solid = qxl_solid;
qxl->uxa->done_solid = qxl_done_solid;
-
+
/* Copy */
qxl->uxa->check_copy = qxl_check_copy;
qxl->uxa->prepare_copy = qxl_prepare_copy;
qxl->uxa->copy = qxl_copy;
qxl->uxa->done_copy = qxl_done_copy;
-
+
/* Composite */
qxl->uxa->check_composite = (typeof(qxl->uxa->check_composite))unaccel;
qxl->uxa->check_composite_target = (typeof(qxl->uxa->check_composite_target))unaccel;
@@ -1322,37 +1300,36 @@ setup_uxa (qxl_screen_t *qxl, ScreenPtr screen)
qxl->uxa->prepare_composite = (typeof(qxl->uxa->prepare_composite))unaccel;
qxl->uxa->composite = (typeof(qxl->uxa->composite))unaccel;
qxl->uxa->done_composite = (typeof(qxl->uxa->done_composite))unaccel;
-
+
/* PutImage */
qxl->uxa->put_image = qxl_put_image;
-
+
/* Prepare access */
qxl->uxa->prepare_access = qxl_prepare_access;
qxl->uxa->finish_access = qxl_finish_access;
-
+
qxl->uxa->pixmap_is_offscreen = qxl_pixmap_is_offscreen;
screen->SetScreenPixmap = qxl_set_screen_pixmap;
screen->CreatePixmap = qxl_create_pixmap;
screen->DestroyPixmap = qxl_destroy_pixmap;
-
- if (!uxa_driver_init(screen, qxl->uxa))
- {
- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
- "UXA initialization failed\n");
- free(qxl->uxa);
- return FALSE;
+
+ if (!uxa_driver_init(screen, qxl->uxa)) {
+ xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+ "UXA initialization failed\n");
+ free(qxl->uxa);
+ return FALSE;
}
-
+
#if 0
uxa_set_fallback_debug(screen, FALSE);
#endif
-
+
#if 0
- if (!uxa_driver_init (screen, qxl->uxa))
- return FALSE;
+ if (!uxa_driver_init(screen, qxl->uxa))
+ return FALSE;
#endif
-
+
return TRUE;
}
@@ -1384,16 +1361,14 @@ qxl_fb_init(qxl_screen_t *qxl, ScreenPtr pScreen)
ScrnInfoPtr pScrn = qxl->pScrn;
#if 0
- ErrorF ("allocated %d x %d %p\n", pScrn->virtualX, pScrn->virtualY, qxl->fb);
+ ErrorF("allocated %d x %d %p\n", pScrn->virtualX, pScrn->virtualY, qxl->fb);
#endif
if (!fbScreenInit(pScreen, NULL,
- pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth,
- pScrn->bitsPerPixel))
- {
- return FALSE;
- }
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth,
+ pScrn->bitsPerPixel))
+ return FALSE;
fbPictureInit(pScreen, NULL, 0);
return TRUE;
@@ -1412,126 +1387,122 @@ qxl_screen_init(SCREEN_INIT_ARGS_DECL)
assert(qxl->pScrn == pScrn);
if (!qxl_map_memory(qxl, pScrn->scrnIndex))
- return FALSE;
+ return FALSE;
#ifdef XSPICE
spiceqxl_screen_init(pScrn, qxl);
#endif
ram_header = (void *)((unsigned long)qxl->ram + (unsigned long)qxl->rom->ram_header_offset);
-
- printf ("ram_header at %d\n", qxl->rom->ram_header_offset);
- printf ("surf0 size: %d\n", qxl->rom->surface0_area_size);
-
+
+ printf("ram_header at %d\n", qxl->rom->ram_header_offset);
+ printf("surf0 size: %d\n", qxl->rom->surface0_area_size);
+
qxl_save_state(pScrn);
qxl_blank_screen(pScreen, SCREEN_SAVER_ON);
-
+
miClearVisualTypes();
if (!miSetVisualTypes(pScrn->depth, miGetDefaultVisualMask(pScrn->depth),
- pScrn->rgbBits, pScrn->defaultVisual))
- goto out;
+ pScrn->rgbBits, pScrn->defaultVisual))
+ goto out;
if (!miSetPixmapDepths())
- goto out;
+ goto out;
pScrn->displayWidth = pScrn->virtualX;
-
- qxl->fb = calloc (pScrn->virtualY * pScrn->displayWidth, 4);
+
+ qxl->fb = calloc(pScrn->virtualY * pScrn->displayWidth, 4);
if (!qxl->fb)
- goto out;
-
+ goto out;
+
#if 0
- ErrorF ("allocated %d x %d %p\n", pScrn->virtualX, pScrn->virtualY, qxl->fb);
+ ErrorF("allocated %d x %d %p\n", pScrn->virtualX, pScrn->virtualY, qxl->fb);
#endif
-
+
pScrn->virtualX = pScrn->currentMode->HDisplay;
pScrn->virtualY = pScrn->currentMode->VDisplay;
if (!qxl_fb_init(qxl, pScreen))
goto out;
-
+
visual = pScreen->visuals + pScreen->numVisuals;
- while (--visual >= pScreen->visuals)
- {
- if ((visual->class | DynamicClass) == DirectColor)
- {
- visual->offsetRed = pScrn->offset.red;
- visual->offsetGreen = pScrn->offset.green;
- visual->offsetBlue = pScrn->offset.blue;
- visual->redMask = pScrn->mask.red;
- visual->greenMask = pScrn->mask.green;
- visual->blueMask = pScrn->mask.blue;
- }
+ while (--visual >= pScreen->visuals) {
+ if ((visual->class | DynamicClass) == DirectColor) {
+ visual->offsetRed = pScrn->offset.red;
+ visual->offsetGreen = pScrn->offset.green;
+ visual->offsetBlue = pScrn->offset.blue;
+ visual->redMask = pScrn->mask.red;
+ visual->greenMask = pScrn->mask.green;
+ visual->blueMask = pScrn->mask.blue;
+ }
}
-
- qxl->uxa = uxa_driver_alloc ();
-
+
+ qxl->uxa = uxa_driver_alloc();
+
/* Set up resources */
- qxl_reset_and_create_mem_slots (qxl);
- ErrorF ("done reset\n");
+ qxl_reset_and_create_mem_slots(qxl);
+ ErrorF("done reset\n");
#ifndef XSPICE
qxl->io_pages = (void *)((unsigned long)qxl->ram);
qxl->io_pages_physical = (void *)((unsigned long)qxl->ram_physical);
#endif
- qxl->command_ring = qxl_ring_create ((struct qxl_ring_header *)&(ram_header->cmd_ring),
- sizeof (struct QXLCommand),
- QXL_COMMAND_RING_SIZE, QXL_IO_NOTIFY_CMD, qxl);
- qxl->cursor_ring = qxl_ring_create ((struct qxl_ring_header *)&(ram_header->cursor_ring),
- sizeof (struct QXLCommand),
- QXL_CURSOR_RING_SIZE, QXL_IO_NOTIFY_CURSOR, qxl);
- qxl->release_ring = qxl_ring_create ((struct qxl_ring_header *)&(ram_header->release_ring),
- sizeof (uint64_t),
- QXL_RELEASE_RING_SIZE, 0, qxl);
-
- qxl->surface_cache = qxl_surface_cache_create (qxl);
-
+ qxl->command_ring = qxl_ring_create((struct qxl_ring_header *)&(ram_header->cmd_ring),
+ sizeof (struct QXLCommand),
+ QXL_COMMAND_RING_SIZE, QXL_IO_NOTIFY_CMD, qxl);
+ qxl->cursor_ring = qxl_ring_create((struct qxl_ring_header *)&(ram_header->cursor_ring),
+ sizeof (struct QXLCommand),
+ QXL_CURSOR_RING_SIZE, QXL_IO_NOTIFY_CURSOR, qxl);
+ qxl->release_ring = qxl_ring_create((struct qxl_ring_header *)&(ram_header->release_ring),
+ sizeof (uint64_t),
+ QXL_RELEASE_RING_SIZE, 0, qxl);
+
+ qxl->surface_cache = qxl_surface_cache_create(qxl);
+
/* xf86DPMSInit(pScreen, xf86DPMSSet, 0); */
-
+
pScreen->SaveScreen = qxl_blank_screen;
- setup_uxa (qxl, pScreen);
+ setup_uxa(qxl, pScreen);
DamageSetup(pScreen);
-
+
/* We need to set totalPixmapSize after setup_uxa and Damage,
- as the privatessize is not computed correctly until then */
+ as the privatessize is not computed correctly until then */
pScreen->totalPixmapSize = BitmapBytePad((sizeof(PixmapRec) + dixPrivatesSize(PRIVATE_PIXMAP) ) * 8);
miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
if (!miCreateDefColormap(pScreen))
- goto out;
+ goto out;
qxl->create_screen_resources = pScreen->CreateScreenResources;
pScreen->CreateScreenResources = qxl_create_screen_resources;
-
+
qxl->close_screen = pScreen->CloseScreen;
pScreen->CloseScreen = qxl_close_screen;
-
- qxl_cursor_init (pScreen);
+
+ qxl_cursor_init(pScreen);
CHECK_POINT();
pScreen->width = pScrn->currentMode->HDisplay;
pScreen->height = pScrn->currentMode->VDisplay;
-
- if (!xf86CrtcScreenInit(pScreen)) {
+
+ if (!xf86CrtcScreenInit(pScreen))
return FALSE;
- }
- if (!qxl_resize_primary_to_virtual(qxl)) {
+ if (!qxl_resize_primary_to_virtual(qxl))
return FALSE;
- }
-
+
/* Note: this must be done after DamageSetup() because it calls
* _dixInitPrivates. And if that has been called, DamageSetup()
* will assert.
*/
- if (!uxa_resources_init (pScreen))
- return FALSE;
+ if (!uxa_resources_init(pScreen))
+ return FALSE;
CHECK_POINT();
return TRUE;
-
-out:
+
+ out:
return FALSE;
}
@@ -1543,32 +1514,29 @@ qxl_enter_vt(VT_FUNC_ARGS_DECL)
qxl_save_state(pScrn);
- qxl_reset_and_create_mem_slots (qxl);
+ qxl_reset_and_create_mem_slots(qxl);
- if (!qxl_resize_primary_to_virtual(qxl)) {
+ if (!qxl_resize_primary_to_virtual(qxl))
return FALSE;
- }
- if (qxl->mem)
- {
- qxl_mem_free_all (qxl->mem);
- qxl_drop_image_cache (qxl);
+ if (qxl->mem) {
+ qxl_mem_free_all(qxl->mem);
+ qxl_drop_image_cache(qxl);
}
if (qxl->surf_mem)
- qxl_mem_free_all (qxl->surf_mem);
+ qxl_mem_free_all(qxl->surf_mem);
- if (qxl->vt_surfaces)
- {
- qxl_surface_cache_replace_all (qxl->surface_cache, qxl->vt_surfaces);
+ if (qxl->vt_surfaces) {
+ qxl_surface_cache_replace_all(qxl->surface_cache, qxl->vt_surfaces);
- qxl->vt_surfaces = NULL;
+ qxl->vt_surfaces = NULL;
}
qxl_create_desired_modes(qxl);
- pScrn->EnableDisableFBAccess (XF86_SCRN_ARG(pScrn), TRUE);
-
+ pScrn->EnableDisableFBAccess(XF86_SCRN_ARG(pScrn), TRUE);
+
return TRUE;
}
@@ -1577,12 +1545,12 @@ qxl_leave_vt(VT_FUNC_ARGS_DECL)
{
SCRN_INFO_PTR(arg);
qxl_screen_t *qxl = pScrn->driverPrivate;
-
- xf86_hide_cursors (pScrn);
- pScrn->EnableDisableFBAccess (XF86_SCRN_ARG(pScrn), FALSE);
+ xf86_hide_cursors(pScrn);
- qxl->vt_surfaces = qxl_surface_cache_evacuate_all (qxl->surface_cache);
+ pScrn->EnableDisableFBAccess(XF86_SCRN_ARG(pScrn), FALSE);
+
+ qxl->vt_surfaces = qxl_surface_cache_evacuate_all(qxl->surface_cache);
ioport_write(qxl, QXL_IO_RESET, 0);
@@ -1596,43 +1564,41 @@ qxl_color_setup(ScrnInfoPtr pScrn)
int scrnIndex = pScrn->scrnIndex;
Gamma gzeros = { 0.0, 0.0, 0.0 };
rgb rzeros = { 0, 0, 0 };
-
+
if (!xf86SetDepthBpp(pScrn, 0, 0, 0, Support32bppFb))
- return FALSE;
-
- if (pScrn->depth != 15 && pScrn->depth != 24)
- {
- xf86DrvMsg(scrnIndex, X_ERROR, "Depth %d is not supported\n",
- pScrn->depth);
- return FALSE;
+ return FALSE;
+
+ if (pScrn->depth != 15 && pScrn->depth != 24) {
+ xf86DrvMsg(scrnIndex, X_ERROR, "Depth %d is not supported\n",
+ pScrn->depth);
+ return FALSE;
}
xf86PrintDepthBpp(pScrn);
-
+
if (!xf86SetWeight(pScrn, rzeros, rzeros))
- return FALSE;
-
+ return FALSE;
+
if (!xf86SetDefaultVisual(pScrn, -1))
- return FALSE;
-
+ return FALSE;
+
if (!xf86SetGamma(pScrn, gzeros))
- return FALSE;
-
+ return FALSE;
+
return TRUE;
}
static void
-print_modes (qxl_screen_t *qxl, int scrnIndex)
+print_modes(qxl_screen_t *qxl, int scrnIndex)
{
int i;
-
- for (i = 0; i < qxl->num_modes; ++i)
- {
- struct QXLMode *m = qxl->modes + i;
-
- xf86DrvMsg (scrnIndex, X_INFO,
- "%d: %dx%d, %d bits, stride %d, %dmm x %dmm, orientation %d\n",
- m->id, m->x_res, m->y_res, m->bits, m->stride, m->x_mili,
- m->y_mili, m->orientation);
+
+ for (i = 0; i < qxl->num_modes; ++i) {
+ struct QXLMode *m = qxl->modes + i;
+
+ xf86DrvMsg(scrnIndex, X_INFO,
+ "%d: %dx%d, %d bits, stride %d, %dmm x %dmm, orientation %d\n",
+ m->id, m->x_res, m->y_res, m->bits, m->stride, m->x_mili,
+ m->y_mili, m->orientation);
}
}
@@ -1643,35 +1609,35 @@ qxl_check_device(ScrnInfoPtr pScrn, qxl_screen_t *qxl)
int scrnIndex = pScrn->scrnIndex;
struct QXLRom *rom = qxl->rom;
struct QXLRam *ram_header = (void *)((unsigned long)qxl->ram + rom->ram_header_offset);
-
+
CHECK_POINT();
-
+
if (rom->magic != 0x4f525851) { /* "QXRO" little-endian */
- xf86DrvMsg(scrnIndex, X_ERROR, "Bad ROM signature %x\n", rom->magic);
- return FALSE;
+ xf86DrvMsg(scrnIndex, X_ERROR, "Bad ROM signature %x\n", rom->magic);
+ return FALSE;
}
-
+
xf86DrvMsg(scrnIndex, X_INFO, "Device version %d.%d\n",
- rom->id, rom->update_id);
-
+ rom->id, rom->update_id);
+
xf86DrvMsg(scrnIndex, X_INFO, "Compression level %d, log level %d\n",
- rom->compression_level,
- rom->log_level);
-
+ rom->compression_level,
+ rom->log_level);
+
xf86DrvMsg(scrnIndex, X_INFO, "%d io pages at 0x%lx\n",
- rom->num_pages, (unsigned long)qxl->ram);
-
+ rom->num_pages, (unsigned long)qxl->ram);
+
xf86DrvMsg(scrnIndex, X_INFO, "RAM header offset: 0x%x\n", rom->ram_header_offset);
if (ram_header->magic != 0x41525851) { /* "QXRA" little-endian */
- xf86DrvMsg(scrnIndex, X_ERROR, "Bad RAM signature %x at %p\n",
- ram_header->magic,
- &ram_header->magic);
- return FALSE;
+ xf86DrvMsg(scrnIndex, X_ERROR, "Bad RAM signature %x at %p\n",
+ ram_header->magic,
+ &ram_header->magic);
+ return FALSE;
}
xf86DrvMsg(scrnIndex, X_INFO, "Correct RAM signature %x\n",
- ram_header->magic);
+ ram_header->magic);
return TRUE;
}
#endif /* !XSPICE */
@@ -1732,7 +1698,7 @@ qxl_output_create_resources(xf86OutputPtr output)
static Bool
qxl_output_set_property(xf86OutputPtr output, Atom property,
- RRPropertyValuePtr value)
+ RRPropertyValuePtr value)
{
/* EDID data is stored in the "EDID" atom property, we must return
* TRUE here for that. No penalty to say ok to everything else. */
@@ -1788,7 +1754,7 @@ qxl_crtc_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
if (crtc == qxl->crtcs[0] && mode == NULL) {
/* disallow disabling of monitor 0 mode */
- ErrorF ("%s: not allowing crtc 0 disablement\n", __func__);
+ ErrorF("%s: not allowing crtc 0 disablement\n", __func__);
return FALSE;
}
@@ -1805,38 +1771,38 @@ qxl_crtc_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
}
static void
-qxl_crtc_set_cursor_colors (xf86CrtcPtr crtc, int bg, int fg)
+qxl_crtc_set_cursor_colors(xf86CrtcPtr crtc, int bg, int fg)
{
}
static void
-qxl_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
+qxl_crtc_set_cursor_position(xf86CrtcPtr crtc, int x, int y)
{
}
static void
-qxl_crtc_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
+qxl_crtc_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *image)
{
}
static void
-qxl_crtc_hide_cursor (xf86CrtcPtr crtc)
+qxl_crtc_hide_cursor(xf86CrtcPtr crtc)
{
}
static void
-qxl_crtc_show_cursor (xf86CrtcPtr crtc)
+qxl_crtc_show_cursor(xf86CrtcPtr crtc)
{
}
static void
qxl_crtc_gamma_set(xf86CrtcPtr crtc, uint16_t *red, uint16_t *green,
- uint16_t *blue, int size)
+ uint16_t *blue, int size)
{
}
static void
-qxl_crtc_destroy (xf86CrtcPtr crtc)
+qxl_crtc_destroy(xf86CrtcPtr crtc)
{
qxl_crtc_private *crtc_private = crtc->driver_private;
qxl_screen_t *qxl = crtc_private->qxl;
@@ -1845,7 +1811,7 @@ qxl_crtc_destroy (xf86CrtcPtr crtc)
}
static Bool
-qxl_crtc_lock (xf86CrtcPtr crtc)
+qxl_crtc_lock(xf86CrtcPtr crtc)
{
qxl_crtc_private *crtc_private = crtc->driver_private;
qxl_screen_t *qxl = crtc_private->qxl;
@@ -1855,7 +1821,7 @@ qxl_crtc_lock (xf86CrtcPtr crtc)
}
static void
-qxl_crtc_unlock (xf86CrtcPtr crtc)
+qxl_crtc_unlock(xf86CrtcPtr crtc)
{
qxl_crtc_private *crtc_private = crtc->driver_private;
qxl_screen_t *qxl = crtc_private->qxl;
@@ -1880,18 +1846,19 @@ static const xf86CrtcFuncsRec qxl_crtc_funcs = {
};
static Bool
-qxl_xf86crtc_resize (ScrnInfoPtr scrn, int width, int height)
+qxl_xf86crtc_resize(ScrnInfoPtr scrn, int width, int height)
{
qxl_screen_t *qxl = scrn->driverPrivate;
xf86DrvMsg(scrn->scrnIndex, X_INFO, "%s: Placeholder resize %dx%d\n",
__func__, width, height);
- if (!qxl_resize_primary(qxl, width, height)) {
+ if (!qxl_resize_primary(qxl, width, height))
return FALSE;
- }
+
scrn->virtualX = width;
scrn->virtualY = height;
qxl_update_monitors_config(qxl);
+
return TRUE;
}
@@ -1916,22 +1883,21 @@ qxl_init_randr(ScrnInfoPtr pScrn, qxl_screen_t *qxl)
qxl->crtcs = xnfcalloc(sizeof(xf86CrtcPtr), qxl->num_heads);
qxl->outputs = xnfcalloc(sizeof(xf86OutputPtr), qxl->num_heads);
+
for (i = 0 ; i < qxl->num_heads; ++i) {
qxl->crtcs[i] = xf86CrtcCreate(pScrn, &qxl_crtc_funcs);
- if (!qxl->crtcs[i]) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "failed to create Crtc %d",
- i);
- }
+ if (!qxl->crtcs[i])
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "failed to create Crtc %d", i);
+
qxl_crtc = xnfcalloc(sizeof(qxl_crtc_private), 1);
qxl->crtcs[i]->driver_private = qxl_crtc;
qxl_crtc->head = i;
qxl_crtc->qxl = qxl;
snprintf(name, sizeof(name), "qxl-%d", i);
qxl->outputs[i] = output = xf86OutputCreate(pScrn, &qxl_output_funcs, name);
- if (!output) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "failed to create Output %d",
- i);
- }
+ if (!output)
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "failed to create Output %d", i);
+
output->possible_crtcs = (1 << i); /* bitrange of allowed outputs - do a 1:1 */
output->possible_clones = 0; /* TODO: not? */
qxl_output = xnfcalloc(sizeof(qxl_output_private), 1);
@@ -1959,14 +1925,12 @@ qxl_initialize_x_modes(qxl_screen_t *qxl, ScrnInfoPtr pScrn,
*max_x = *max_y = 0;
/* Create a list of modes used by the qxl_output_get_modes */
- for (i = 0; i < qxl->num_modes; i++)
- {
- if (qxl->modes[i].orientation == 0)
- {
+ for (i = 0; i < qxl->num_modes; i++) {
+ if (qxl->modes[i].orientation == 0) {
size = qxl->modes[i].x_res * qxl->modes[i].y_res * 4;
if (size > qxl->surface0_size) {
- ErrorF ("skipping mode %dx%d not fitting in surface0",
- qxl->modes[i].x_res, qxl->modes[i].y_res);
+ ErrorF("skipping mode %dx%d not fitting in surface0",
+ qxl->modes[i].x_res, qxl->modes[i].y_res);
continue;
}
@@ -1994,8 +1958,8 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
* function to get called without a confScreen.
*/
if (!pScrn->confScreen)
- return FALSE;
-
+ return FALSE;
+
CHECK_POINT();
mspace_set_abort_func(qxl_mspace_abort_func);
@@ -2003,20 +1967,20 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
/* zaphod mode is for suckers and i choose not to implement it */
if (xf86IsEntityShared(pScrn->entityList[0])) {
- xf86DrvMsg(scrnIndex, X_ERROR, "No Zaphod mode for you\n");
- return FALSE;
+ xf86DrvMsg(scrnIndex, X_ERROR, "No Zaphod mode for you\n");
+ return FALSE;
}
-
+
if (!pScrn->driverPrivate)
- pScrn->driverPrivate = xnfcalloc(sizeof(qxl_screen_t), 1);
+ pScrn->driverPrivate = xnfcalloc(sizeof(qxl_screen_t), 1);
+
qxl = pScrn->driverPrivate;
memset(qxl, 0, sizeof(qxl));
qxl->device_primary = QXL_DEVICE_PRIMARY_UNDEFINED;
qxl->pScrn = pScrn;
qxl->x_modes = NULL;
-
qxl->entity = xf86GetEntityInfo(pScrn->entityList[0]);
-
+
#ifndef XSPICE
qxl->pci = xf86GetPciInfoForEntity(qxl->entity->index);
#ifndef XSERVER_LIBPCIACCESS
@@ -2027,37 +1991,37 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
ErrorF ("Ignoring monitor config, device revision < 4\n");
}
pScrn->monitor = pScrn->confScreen->monitor;
-
+
if (!qxl_color_setup(pScrn))
- goto out;
-
+ goto out;
+
/* option parsing and card differentiation */
xf86CollectOptions(pScrn, NULL);
memcpy(qxl->options, DefaultOptions, sizeof(DefaultOptions));
xf86ProcessOptions(scrnIndex, pScrn->options, qxl->options);
qxl->enable_image_cache =
- xf86ReturnOptValBool (qxl->options, OPTION_ENABLE_IMAGE_CACHE, TRUE);
+ xf86ReturnOptValBool(qxl->options, OPTION_ENABLE_IMAGE_CACHE, TRUE);
qxl->enable_fallback_cache =
- xf86ReturnOptValBool (qxl->options, OPTION_ENABLE_FALLBACK_CACHE, TRUE);
+ xf86ReturnOptValBool(qxl->options, OPTION_ENABLE_FALLBACK_CACHE, TRUE);
qxl->enable_surfaces =
- xf86ReturnOptValBool (qxl->options, OPTION_ENABLE_SURFACES, TRUE);
+ xf86ReturnOptValBool(qxl->options, OPTION_ENABLE_SURFACES, TRUE);
qxl->num_heads =
- get_int_option (qxl->options, OPTION_NUM_HEADS, "QXL_NUM_HEADS");
+ get_int_option(qxl->options, OPTION_NUM_HEADS, "QXL_NUM_HEADS");
xf86DrvMsg(scrnIndex, X_INFO, "Offscreen Surfaces: %s\n",
- qxl->enable_surfaces? "Enabled" : "Disabled");
+ qxl->enable_surfaces? "Enabled" : "Disabled");
xf86DrvMsg(scrnIndex, X_INFO, "Image Cache: %s\n",
- qxl->enable_image_cache? "Enabled" : "Disabled");
+ qxl->enable_image_cache? "Enabled" : "Disabled");
xf86DrvMsg(scrnIndex, X_INFO, "Fallback Cache: %s\n",
- qxl->enable_fallback_cache? "Enabled" : "Disabled");
-
+ qxl->enable_fallback_cache? "Enabled" : "Disabled");
+
if (!qxl_map_memory(qxl, scrnIndex))
- goto out;
-
+ goto out;
+
#ifndef XSPICE
if (!qxl_check_device(pScrn, qxl))
- goto out;
+ goto out;
#else
xspice_init_qxl_ram(qxl); /* initialize the rings */
#endif
@@ -2066,7 +2030,7 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(scrnIndex, X_INFO, "%d surfaces\n", qxl->rom->n_surfaces);
/* ddc stuff here */
-
+
clockRanges = xnfcalloc(sizeof(ClockRange), 1);
clockRanges->next = NULL;
clockRanges->minClock = 10000;
@@ -2075,19 +2039,19 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
clockRanges->interlaceAllowed = clockRanges->doubleScanAllowed = 0;
clockRanges->ClockMulFactor = clockRanges->ClockDivFactor = 1;
pScrn->progClock = TRUE;
-
+
/* override QXL monitor stuff */
if (pScrn->monitor->nHsync <= 0) {
- pScrn->monitor->hsync[0].lo = 29.0;
- pScrn->monitor->hsync[0].hi = 160.0;
- pScrn->monitor->nHsync = 1;
+ pScrn->monitor->hsync[0].lo = 29.0;
+ pScrn->monitor->hsync[0].hi = 160.0;
+ pScrn->monitor->nHsync = 1;
}
if (pScrn->monitor->nVrefresh <= 0) {
- pScrn->monitor->vrefresh[0].lo = 50;
- pScrn->monitor->vrefresh[0].hi = 75;
- pScrn->monitor->nVrefresh = 1;
+ pScrn->monitor->vrefresh[0].lo = 50;
+ pScrn->monitor->vrefresh[0].hi = 75;
+ pScrn->monitor->nVrefresh = 1;
}
-
+
qxl_initialize_x_modes(qxl, pScrn, &max_x, &max_y);
#if 0
@@ -2096,26 +2060,26 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
to a virtual size which will not fit into the framebuffer when this
happens we prefer max width and make height as large as possible */
if (max_x * max_y * (pScrn->bitsPerPixel / 8) >
- qxl->rom->surface0_area_size)
+ qxl->rom->surface0_area_size)
pScrn->display->virtualY = qxl->rom->surface0_area_size /
- (max_x * (pScrn->bitsPerPixel / 8));
+ (max_x * (pScrn->bitsPerPixel / 8));
else
pScrn->display->virtualY = max_y;
- pScrn->display->virtualX = max_x;
+ pScrn->display->virtualX = max_x;
}
if (0 >= xf86ValidateModes(pScrn, pScrn->monitor->Modes,
- pScrn->display->modes, clockRanges, linePitches,
- 128, max_x, 128 * 4, 128, max_y,
- pScrn->display->virtualX,
- pScrn->display->virtualY,
- 128 * 1024 * 1024, LOOKUP_BEST_REFRESH))
- goto out;
+ pScrn->display->modes, clockRanges, linePitches,
+ 128, max_x, 128 * 4, 128, max_y,
+ pScrn->display->virtualX,
+ pScrn->display->virtualY,
+ 128 * 1024 * 1024, LOOKUP_BEST_REFRESH))
+ goto out;
#endif
-
+
CHECK_POINT();
-
+
xf86PruneDriverModes(pScrn);
qxl_init_randr(pScrn, qxl);
@@ -2131,18 +2095,17 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
//xf86PrintModes(pScrn);
xf86SetDpi(pScrn, 0, 0);
-
+
if (!xf86LoadSubModule(pScrn, "fb")
#ifndef XSPICE
- || !xf86LoadSubModule(pScrn, "ramdac")
- || !xf86LoadSubModule(pScrn, "vgahw")
+ || !xf86LoadSubModule(pScrn, "ramdac")
+ || !xf86LoadSubModule(pScrn, "vgahw")
#endif
- )
- {
- goto out;
+ ) {
+ goto out;
}
-
- print_modes (qxl, scrnIndex);
+
+ print_modes(qxl, scrnIndex);
#ifndef XSPICE
/* VGA hardware initialisation */
@@ -2153,55 +2116,52 @@ qxl_pre_init(ScrnInfoPtr pScrn, int flags)
/* hate */
qxl_unmap_memory(qxl);
-
+
CHECK_POINT();
-
+
xf86DrvMsg(scrnIndex, X_INFO, "PreInit complete\n");
#ifdef GIT_VERSION
xf86DrvMsg(scrnIndex, X_INFO, "git commit %s\n", GIT_VERSION);
#endif
return TRUE;
-
-out:
+
+ out:
if (clockRanges)
- free(clockRanges);
+ free(clockRanges);
if (qxl)
- free(qxl);
-
+ free(qxl);
+
return FALSE;
}
#ifndef XSPICE
#ifdef XSERVER_LIBPCIACCESS
-enum qxl_class
-{
+enum qxl_class {
CHIP_QXL_1,
};
static const struct pci_id_match qxl_device_match[] = {
{
- PCI_VENDOR_RED_HAT, PCI_CHIP_QXL_0100, PCI_MATCH_ANY, PCI_MATCH_ANY,
- 0x00000000, 0x00000000, CHIP_QXL_1
+ PCI_VENDOR_RED_HAT, PCI_CHIP_QXL_0100, PCI_MATCH_ANY, PCI_MATCH_ANY,
+ 0x00000000, 0x00000000, CHIP_QXL_1
},
{
- PCI_VENDOR_RED_HAT, PCI_CHIP_QXL_01FF, PCI_MATCH_ANY, PCI_MATCH_ANY,
- 0x00000000, 0x00000000, CHIP_QXL_1
+ PCI_VENDOR_RED_HAT, PCI_CHIP_QXL_01FF, PCI_MATCH_ANY, PCI_MATCH_ANY,
+ 0x00000000, 0x00000000, CHIP_QXL_1
},
{ 0 },
};
#endif
-static SymTabRec qxlChips[] =
-{
- { PCI_CHIP_QXL_0100, "QXL 1", },
+static SymTabRec qxlChips[] = {
+ { PCI_CHIP_QXL_0100, "QXL 1", },
{ -1, NULL }
};
#ifndef XSERVER_LIBPCIACCESS
-static PciChipsets qxlPciChips[] =
-{
- { PCI_CHIP_QXL_0100, PCI_CHIP_QXL_0100, RES_SHARED_VGA },
+static PciChipsets qxlPciChips[] = {
+ { PCI_CHIP_QXL_0100, PCI_CHIP_QXL_0100, RES_SHARED_VGA },
{ -1, -1, RES_UNDEFINED }
};
#endif
@@ -2219,13 +2179,14 @@ static void
qxl_init_scrn(ScrnInfoPtr pScrn)
{
pScrn->driverVersion = 0;
- pScrn->driverName = pScrn->name = QXL_DRIVER_NAME;
- pScrn->PreInit = qxl_pre_init;
- pScrn->ScreenInit = qxl_screen_init;
- pScrn->SwitchMode = qxl_switch_mode;
- pScrn->ValidMode = NULL,
- pScrn->EnterVT = qxl_enter_vt;
- pScrn->LeaveVT = qxl_leave_vt;
+ pScrn->driverName = QXL_DRIVER_NAME;
+ pScrn->name = QXL_DRIVER_NAME;
+ pScrn->PreInit = qxl_pre_init;
+ pScrn->ScreenInit = qxl_screen_init;
+ pScrn->SwitchMode = qxl_switch_mode;
+ pScrn->ValidMode = NULL,
+ pScrn->EnterVT = qxl_enter_vt;
+ pScrn->LeaveVT = qxl_leave_vt;
}
#ifdef XSPICE
@@ -2237,9 +2198,8 @@ qxl_probe(struct _DriverRec *drv, int flags)
EntityInfoPtr pEnt;
GDevPtr* device;
- if (flags & PROBE_DETECT) {
+ if (flags & PROBE_DETECT)
return TRUE;
- }
pScrn = xf86AllocateScreen(drv, flags);
qxl_init_scrn(pScrn);
@@ -2269,33 +2229,33 @@ qxl_probe(DriverPtr drv, int flags)
GDevPtr *devSections;
if ((numDevSections = xf86MatchDevice(QXL_NAME, &devSections)) <= 0)
- return FALSE;
+ return FALSE;
if (!xf86GetPciVideoInfo())
- return FALSE;
+ return FALSE;
numUsed = xf86MatchPciInstances(QXL_NAME, PCI_VENDOR_RED_HAT,
- qxlChips, qxlPciChips,
- devSections, numDevSections,
- drv, &usedChips);
+ qxlChips, qxlPciChips,
+ devSections, numDevSections,
+ drv, &usedChips);
xfree(devSections);
if (numUsed < 0) {
- xfree(usedChips);
- return FALSE;
+ xfree(usedChips);
+ return FALSE;
}
if (flags & PROBE_DETECT) {
- xfree(usedChips);
- return TRUE;
+ xfree(usedChips);
+ return TRUE;
}
for (i = 0; i < numUsed; i++) {
- ScrnInfoPtr pScrn = NULL;
- if ((pScrn = xf86ConfigPciEntity(pScrn, 0, usedChips[i], qxlPciChips,
- 0, 0, 0, 0, 0)))
- qxl_init_scrn(pScrn);
+ ScrnInfoPtr pScrn = NULL;
+ if ((pScrn = xf86ConfigPciEntity(pScrn, 0, usedChips[i], qxlPciChips,
+ 0, 0, 0, 0, 0)))
+ qxl_init_scrn(pScrn);
}
xfree(usedChips);
@@ -2309,13 +2269,13 @@ qxl_pci_probe(DriverPtr drv, int entity, struct pci_device *dev, intptr_t match)
{
qxl_screen_t *qxl;
ScrnInfoPtr pScrn = xf86ConfigPciEntity(NULL, 0, entity, NULL, NULL,
- NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL);
if (!pScrn)
- return FALSE;
+ return FALSE;
if (!pScrn->driverPrivate)
- pScrn->driverPrivate = xnfcalloc(sizeof(qxl_screen_t), 1);
+ pScrn->driverPrivate = xnfcalloc(sizeof(qxl_screen_t), 1);
qxl = pScrn->driverPrivate;
qxl->pci = dev;
@@ -2354,18 +2314,18 @@ static pointer
qxl_setup(pointer module, pointer opts, int *errmaj, int *errmin)
{
static Bool loaded = FALSE;
-
+
if (!loaded) {
- loaded = TRUE;
- xf86AddDriver(&qxl_driver, module, HaveDriverFuncs);
+ loaded = TRUE;
+ xf86AddDriver(&qxl_driver, module, HaveDriverFuncs);
#ifdef XSPICE
- xspice_add_input_drivers(module);
+ xspice_add_input_drivers(module);
#endif
- return (void *)1;
+ return (void *)1;
} else {
- if (errmaj)
- *errmaj = LDR_ONCEONLY;
- return NULL;
+ if (errmaj)
+ *errmaj = LDR_ONCEONLY;
+ return NULL;
}
}