Lines Matching refs:dev_priv

49 	drm_r128_private_t *dev_priv = dev->dev_private;  in R128_READ_PLL()  local
56 static void r128_status(drm_r128_private_t *dev_priv) in r128_status() argument
77 static int r128_do_pixcache_flush(drm_r128_private_t *dev_priv) in r128_do_pixcache_flush() argument
85 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_do_pixcache_flush()
97 static int r128_do_wait_for_fifo(drm_r128_private_t *dev_priv, int entries) in r128_do_wait_for_fifo() argument
101 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_do_wait_for_fifo()
114 static int r128_do_wait_for_idle(drm_r128_private_t *dev_priv) in r128_do_wait_for_idle() argument
118 ret = r128_do_wait_for_fifo(dev_priv, 64); in r128_do_wait_for_idle()
122 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_do_wait_for_idle()
124 r128_do_pixcache_flush(dev_priv); in r128_do_wait_for_idle()
141 static int r128_cce_load_microcode(drm_r128_private_t *dev_priv) in r128_cce_load_microcode() argument
171 r128_do_wait_for_idle(dev_priv); in r128_cce_load_microcode()
191 static void r128_do_cce_flush(drm_r128_private_t *dev_priv) in r128_do_cce_flush() argument
201 int r128_do_cce_idle(drm_r128_private_t *dev_priv) in r128_do_cce_idle() argument
205 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_do_cce_idle()
206 if (GET_RING_HEAD(dev_priv) == dev_priv->ring.tail) { in r128_do_cce_idle()
209 dev_priv->cce_fifo_size) && in r128_do_cce_idle()
212 return r128_do_pixcache_flush(dev_priv); in r128_do_cce_idle()
220 r128_status(dev_priv); in r128_do_cce_idle()
227 static void r128_do_cce_start(drm_r128_private_t *dev_priv) in r128_do_cce_start() argument
229 r128_do_wait_for_idle(dev_priv); in r128_do_cce_start()
232 dev_priv->cce_mode | dev_priv->ring.size_l2qw in r128_do_cce_start()
237 dev_priv->cce_running = 1; in r128_do_cce_start()
244 static void r128_do_cce_reset(drm_r128_private_t *dev_priv) in r128_do_cce_reset() argument
248 dev_priv->ring.tail = 0; in r128_do_cce_reset()
255 static void r128_do_cce_stop(drm_r128_private_t *dev_priv) in r128_do_cce_stop() argument
261 dev_priv->cce_running = 0; in r128_do_cce_stop()
268 drm_r128_private_t *dev_priv = dev->dev_private; in r128_do_engine_reset() local
271 r128_do_pixcache_flush(dev_priv); in r128_do_engine_reset()
292 r128_do_cce_reset(dev_priv); in r128_do_engine_reset()
295 dev_priv->cce_running = 0; in r128_do_engine_reset()
304 drm_r128_private_t *dev_priv) in r128_cce_init_ring_buffer() argument
315 if (!dev_priv->is_pci) in r128_cce_init_ring_buffer()
316 ring_start = dev_priv->cce_ring->offset - dev->agp->base; in r128_cce_init_ring_buffer()
319 ring_start = dev_priv->cce_ring->offset - in r128_cce_init_ring_buffer()
344 drm_r128_private_t *dev_priv; in r128_do_init_cce() local
354 dev_priv = kzalloc(sizeof(drm_r128_private_t), GFP_KERNEL); in r128_do_init_cce()
355 if (dev_priv == NULL) in r128_do_init_cce()
358 dev_priv->is_pci = init->is_pci; in r128_do_init_cce()
360 if (dev_priv->is_pci && !dev->sg) { in r128_do_init_cce()
362 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
367 dev_priv->usec_timeout = init->usec_timeout; in r128_do_init_cce()
368 if (dev_priv->usec_timeout < 1 || in r128_do_init_cce()
369 dev_priv->usec_timeout > R128_MAX_USEC_TIMEOUT) { in r128_do_init_cce()
371 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
376 dev_priv->cce_mode = init->cce_mode; in r128_do_init_cce()
380 atomic_set(&dev_priv->idle_count, 0); in r128_do_init_cce()
391 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
398 dev_priv->cce_fifo_size = 0; in r128_do_init_cce()
402 dev_priv->cce_fifo_size = 192; in r128_do_init_cce()
406 dev_priv->cce_fifo_size = 128; in r128_do_init_cce()
413 dev_priv->cce_fifo_size = 64; in r128_do_init_cce()
419 dev_priv->color_fmt = R128_DATATYPE_RGB565; in r128_do_init_cce()
423 dev_priv->color_fmt = R128_DATATYPE_ARGB8888; in r128_do_init_cce()
426 dev_priv->front_offset = init->front_offset; in r128_do_init_cce()
427 dev_priv->front_pitch = init->front_pitch; in r128_do_init_cce()
428 dev_priv->back_offset = init->back_offset; in r128_do_init_cce()
429 dev_priv->back_pitch = init->back_pitch; in r128_do_init_cce()
433 dev_priv->depth_fmt = R128_DATATYPE_RGB565; in r128_do_init_cce()
438 dev_priv->depth_fmt = R128_DATATYPE_ARGB8888; in r128_do_init_cce()
441 dev_priv->depth_offset = init->depth_offset; in r128_do_init_cce()
442 dev_priv->depth_pitch = init->depth_pitch; in r128_do_init_cce()
443 dev_priv->span_offset = init->span_offset; in r128_do_init_cce()
445 dev_priv->front_pitch_offset_c = (((dev_priv->front_pitch / 8) << 21) | in r128_do_init_cce()
446 (dev_priv->front_offset >> 5)); in r128_do_init_cce()
447 dev_priv->back_pitch_offset_c = (((dev_priv->back_pitch / 8) << 21) | in r128_do_init_cce()
448 (dev_priv->back_offset >> 5)); in r128_do_init_cce()
449 dev_priv->depth_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) | in r128_do_init_cce()
450 (dev_priv->depth_offset >> 5) | in r128_do_init_cce()
452 dev_priv->span_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) | in r128_do_init_cce()
453 (dev_priv->span_offset >> 5)); in r128_do_init_cce()
455 dev_priv->sarea = drm_legacy_getsarea(dev); in r128_do_init_cce()
456 if (!dev_priv->sarea) { in r128_do_init_cce()
458 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
463 dev_priv->mmio = drm_legacy_findmap(dev, init->mmio_offset); in r128_do_init_cce()
464 if (!dev_priv->mmio) { in r128_do_init_cce()
466 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
470 dev_priv->cce_ring = drm_legacy_findmap(dev, init->ring_offset); in r128_do_init_cce()
471 if (!dev_priv->cce_ring) { in r128_do_init_cce()
473 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
477 dev_priv->ring_rptr = drm_legacy_findmap(dev, init->ring_rptr_offset); in r128_do_init_cce()
478 if (!dev_priv->ring_rptr) { in r128_do_init_cce()
480 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
488 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
493 if (!dev_priv->is_pci) { in r128_do_init_cce()
494 dev_priv->agp_textures = in r128_do_init_cce()
496 if (!dev_priv->agp_textures) { in r128_do_init_cce()
498 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
504 dev_priv->sarea_priv = in r128_do_init_cce()
505 (drm_r128_sarea_t *) ((u8 *) dev_priv->sarea->handle + in r128_do_init_cce()
509 if (!dev_priv->is_pci) { in r128_do_init_cce()
510 drm_legacy_ioremap_wc(dev_priv->cce_ring, dev); in r128_do_init_cce()
511 drm_legacy_ioremap_wc(dev_priv->ring_rptr, dev); in r128_do_init_cce()
513 if (!dev_priv->cce_ring->handle || in r128_do_init_cce()
514 !dev_priv->ring_rptr->handle || in r128_do_init_cce()
517 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
524 dev_priv->cce_ring->handle = in r128_do_init_cce()
525 (void *)(unsigned long)dev_priv->cce_ring->offset; in r128_do_init_cce()
526 dev_priv->ring_rptr->handle = in r128_do_init_cce()
527 (void *)(unsigned long)dev_priv->ring_rptr->offset; in r128_do_init_cce()
533 if (!dev_priv->is_pci) in r128_do_init_cce()
534 dev_priv->cce_buffers_offset = dev->agp->base; in r128_do_init_cce()
537 dev_priv->cce_buffers_offset = (unsigned long)dev->sg->virtual; in r128_do_init_cce()
539 dev_priv->ring.start = (u32 *) dev_priv->cce_ring->handle; in r128_do_init_cce()
540 dev_priv->ring.end = ((u32 *) dev_priv->cce_ring->handle in r128_do_init_cce()
542 dev_priv->ring.size = init->ring_size; in r128_do_init_cce()
543 dev_priv->ring.size_l2qw = order_base_2(init->ring_size / 8); in r128_do_init_cce()
545 dev_priv->ring.tail_mask = (dev_priv->ring.size / sizeof(u32)) - 1; in r128_do_init_cce()
547 dev_priv->ring.high_mark = 128; in r128_do_init_cce()
549 dev_priv->sarea_priv->last_frame = 0; in r128_do_init_cce()
550 R128_WRITE(R128_LAST_FRAME_REG, dev_priv->sarea_priv->last_frame); in r128_do_init_cce()
552 dev_priv->sarea_priv->last_dispatch = 0; in r128_do_init_cce()
553 R128_WRITE(R128_LAST_DISPATCH_REG, dev_priv->sarea_priv->last_dispatch); in r128_do_init_cce()
556 if (dev_priv->is_pci) { in r128_do_init_cce()
558 dev_priv->gart_info.table_mask = DMA_BIT_MASK(32); in r128_do_init_cce()
559 dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN; in r128_do_init_cce()
560 dev_priv->gart_info.table_size = R128_PCIGART_TABLE_SIZE; in r128_do_init_cce()
561 dev_priv->gart_info.addr = NULL; in r128_do_init_cce()
562 dev_priv->gart_info.bus_addr = 0; in r128_do_init_cce()
563 dev_priv->gart_info.gart_reg_if = DRM_ATI_GART_PCI; in r128_do_init_cce()
564 if (!drm_ati_pcigart_init(dev, &dev_priv->gart_info)) { in r128_do_init_cce()
566 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
570 R128_WRITE(R128_PCI_GART_PAGE, dev_priv->gart_info.bus_addr); in r128_do_init_cce()
575 r128_cce_init_ring_buffer(dev, dev_priv); in r128_do_init_cce()
576 rc = r128_cce_load_microcode(dev_priv); in r128_do_init_cce()
578 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
601 drm_r128_private_t *dev_priv = dev->dev_private; in r128_do_cleanup_cce() local
604 if (!dev_priv->is_pci) { in r128_do_cleanup_cce()
605 if (dev_priv->cce_ring != NULL) in r128_do_cleanup_cce()
606 drm_legacy_ioremapfree(dev_priv->cce_ring, dev); in r128_do_cleanup_cce()
607 if (dev_priv->ring_rptr != NULL) in r128_do_cleanup_cce()
608 drm_legacy_ioremapfree(dev_priv->ring_rptr, dev); in r128_do_cleanup_cce()
616 if (dev_priv->gart_info.bus_addr) in r128_do_cleanup_cce()
618 &dev_priv->gart_info)) in r128_do_cleanup_cce()
650 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_start() local
655 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_start()
657 if (dev_priv->cce_running || dev_priv->cce_mode == R128_PM4_NONPM4) { in r128_cce_start()
662 r128_do_cce_start(dev_priv); in r128_cce_start()
672 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_stop() local
679 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_stop()
685 r128_do_cce_flush(dev_priv); in r128_cce_stop()
691 ret = r128_do_cce_idle(dev_priv); in r128_cce_stop()
700 r128_do_cce_stop(dev_priv); in r128_cce_stop()
712 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_reset() local
717 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_reset()
719 r128_do_cce_reset(dev_priv); in r128_cce_reset()
722 dev_priv->cce_running = 0; in r128_cce_reset()
729 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_idle() local
734 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_idle()
736 if (dev_priv->cce_running) in r128_cce_idle()
737 r128_do_cce_flush(dev_priv); in r128_cce_idle()
739 return r128_do_cce_idle(dev_priv); in r128_cce_idle()
768 drm_r128_private_t *dev_priv = dev->dev_private;
774 dev_priv->head = kzalloc(sizeof(drm_r128_freelist_t), GFP_KERNEL);
775 if (dev_priv->head == NULL)
778 dev_priv->head->age = R128_BUFFER_USED;
790 entry->prev = dev_priv->head;
791 entry->next = dev_priv->head->next;
793 dev_priv->tail = entry;
799 dev_priv->head->next = entry;
801 if (dev_priv->head->next)
802 dev_priv->head->next->prev = entry;
813 drm_r128_private_t *dev_priv = dev->dev_private; in r128_freelist_get() local
827 for (t = 0; t < dev_priv->usec_timeout; t++) { in r128_freelist_get()
864 int r128_wait_ring(drm_r128_private_t *dev_priv, int n) in r128_wait_ring() argument
866 drm_r128_ring_buffer_t *ring = &dev_priv->ring; in r128_wait_ring()
869 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_wait_ring()
870 r128_update_ring_snapshot(dev_priv); in r128_wait_ring()