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
170 r128_do_wait_for_idle(dev_priv); in r128_cce_load_microcode()
190 static void r128_do_cce_flush(drm_r128_private_t *dev_priv) in r128_do_cce_flush() argument
200 int r128_do_cce_idle(drm_r128_private_t *dev_priv) in r128_do_cce_idle() argument
204 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_do_cce_idle()
205 if (GET_RING_HEAD(dev_priv) == dev_priv->ring.tail) { in r128_do_cce_idle()
208 dev_priv->cce_fifo_size) && in r128_do_cce_idle()
211 return r128_do_pixcache_flush(dev_priv); in r128_do_cce_idle()
219 r128_status(dev_priv); in r128_do_cce_idle()
226 static void r128_do_cce_start(drm_r128_private_t *dev_priv) in r128_do_cce_start() argument
228 r128_do_wait_for_idle(dev_priv); in r128_do_cce_start()
231 dev_priv->cce_mode | dev_priv->ring.size_l2qw in r128_do_cce_start()
236 dev_priv->cce_running = 1; in r128_do_cce_start()
243 static void r128_do_cce_reset(drm_r128_private_t *dev_priv) in r128_do_cce_reset() argument
247 dev_priv->ring.tail = 0; in r128_do_cce_reset()
254 static void r128_do_cce_stop(drm_r128_private_t *dev_priv) in r128_do_cce_stop() argument
260 dev_priv->cce_running = 0; in r128_do_cce_stop()
267 drm_r128_private_t *dev_priv = dev->dev_private; in r128_do_engine_reset() local
270 r128_do_pixcache_flush(dev_priv); in r128_do_engine_reset()
291 r128_do_cce_reset(dev_priv); in r128_do_engine_reset()
294 dev_priv->cce_running = 0; in r128_do_engine_reset()
303 drm_r128_private_t *dev_priv) in r128_cce_init_ring_buffer() argument
314 if (!dev_priv->is_pci) in r128_cce_init_ring_buffer()
315 ring_start = dev_priv->cce_ring->offset - dev->agp->base; in r128_cce_init_ring_buffer()
318 ring_start = dev_priv->cce_ring->offset - in r128_cce_init_ring_buffer()
343 drm_r128_private_t *dev_priv; in r128_do_init_cce() local
353 dev_priv = kzalloc(sizeof(drm_r128_private_t), GFP_KERNEL); in r128_do_init_cce()
354 if (dev_priv == NULL) in r128_do_init_cce()
357 dev_priv->is_pci = init->is_pci; in r128_do_init_cce()
359 if (dev_priv->is_pci && !dev->sg) { in r128_do_init_cce()
361 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
366 dev_priv->usec_timeout = init->usec_timeout; in r128_do_init_cce()
367 if (dev_priv->usec_timeout < 1 || in r128_do_init_cce()
368 dev_priv->usec_timeout > R128_MAX_USEC_TIMEOUT) { in r128_do_init_cce()
370 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
375 dev_priv->cce_mode = init->cce_mode; in r128_do_init_cce()
379 atomic_set(&dev_priv->idle_count, 0); in r128_do_init_cce()
390 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
397 dev_priv->cce_fifo_size = 0; in r128_do_init_cce()
401 dev_priv->cce_fifo_size = 192; in r128_do_init_cce()
405 dev_priv->cce_fifo_size = 128; in r128_do_init_cce()
412 dev_priv->cce_fifo_size = 64; in r128_do_init_cce()
418 dev_priv->color_fmt = R128_DATATYPE_RGB565; in r128_do_init_cce()
422 dev_priv->color_fmt = R128_DATATYPE_ARGB8888; in r128_do_init_cce()
425 dev_priv->front_offset = init->front_offset; in r128_do_init_cce()
426 dev_priv->front_pitch = init->front_pitch; in r128_do_init_cce()
427 dev_priv->back_offset = init->back_offset; in r128_do_init_cce()
428 dev_priv->back_pitch = init->back_pitch; in r128_do_init_cce()
432 dev_priv->depth_fmt = R128_DATATYPE_RGB565; in r128_do_init_cce()
437 dev_priv->depth_fmt = R128_DATATYPE_ARGB8888; in r128_do_init_cce()
440 dev_priv->depth_offset = init->depth_offset; in r128_do_init_cce()
441 dev_priv->depth_pitch = init->depth_pitch; in r128_do_init_cce()
442 dev_priv->span_offset = init->span_offset; in r128_do_init_cce()
444 dev_priv->front_pitch_offset_c = (((dev_priv->front_pitch / 8) << 21) | in r128_do_init_cce()
445 (dev_priv->front_offset >> 5)); in r128_do_init_cce()
446 dev_priv->back_pitch_offset_c = (((dev_priv->back_pitch / 8) << 21) | in r128_do_init_cce()
447 (dev_priv->back_offset >> 5)); in r128_do_init_cce()
448 dev_priv->depth_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) | in r128_do_init_cce()
449 (dev_priv->depth_offset >> 5) | in r128_do_init_cce()
451 dev_priv->span_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) | in r128_do_init_cce()
452 (dev_priv->span_offset >> 5)); in r128_do_init_cce()
454 dev_priv->sarea = drm_legacy_getsarea(dev); in r128_do_init_cce()
455 if (!dev_priv->sarea) { in r128_do_init_cce()
457 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
462 dev_priv->mmio = drm_legacy_findmap(dev, init->mmio_offset); in r128_do_init_cce()
463 if (!dev_priv->mmio) { in r128_do_init_cce()
465 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
469 dev_priv->cce_ring = drm_legacy_findmap(dev, init->ring_offset); in r128_do_init_cce()
470 if (!dev_priv->cce_ring) { in r128_do_init_cce()
472 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
476 dev_priv->ring_rptr = drm_legacy_findmap(dev, init->ring_rptr_offset); in r128_do_init_cce()
477 if (!dev_priv->ring_rptr) { in r128_do_init_cce()
479 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
487 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
492 if (!dev_priv->is_pci) { in r128_do_init_cce()
493 dev_priv->agp_textures = in r128_do_init_cce()
495 if (!dev_priv->agp_textures) { in r128_do_init_cce()
497 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
503 dev_priv->sarea_priv = in r128_do_init_cce()
504 (drm_r128_sarea_t *) ((u8 *) dev_priv->sarea->handle + in r128_do_init_cce()
508 if (!dev_priv->is_pci) { in r128_do_init_cce()
509 drm_legacy_ioremap_wc(dev_priv->cce_ring, dev); in r128_do_init_cce()
510 drm_legacy_ioremap_wc(dev_priv->ring_rptr, dev); in r128_do_init_cce()
512 if (!dev_priv->cce_ring->handle || in r128_do_init_cce()
513 !dev_priv->ring_rptr->handle || in r128_do_init_cce()
516 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
523 dev_priv->cce_ring->handle = in r128_do_init_cce()
524 (void *)(unsigned long)dev_priv->cce_ring->offset; in r128_do_init_cce()
525 dev_priv->ring_rptr->handle = in r128_do_init_cce()
526 (void *)(unsigned long)dev_priv->ring_rptr->offset; in r128_do_init_cce()
532 if (!dev_priv->is_pci) in r128_do_init_cce()
533 dev_priv->cce_buffers_offset = dev->agp->base; in r128_do_init_cce()
536 dev_priv->cce_buffers_offset = (unsigned long)dev->sg->virtual; in r128_do_init_cce()
538 dev_priv->ring.start = (u32 *) dev_priv->cce_ring->handle; in r128_do_init_cce()
539 dev_priv->ring.end = ((u32 *) dev_priv->cce_ring->handle in r128_do_init_cce()
541 dev_priv->ring.size = init->ring_size; in r128_do_init_cce()
542 dev_priv->ring.size_l2qw = order_base_2(init->ring_size / 8); in r128_do_init_cce()
544 dev_priv->ring.tail_mask = (dev_priv->ring.size / sizeof(u32)) - 1; in r128_do_init_cce()
546 dev_priv->ring.high_mark = 128; in r128_do_init_cce()
548 dev_priv->sarea_priv->last_frame = 0; in r128_do_init_cce()
549 R128_WRITE(R128_LAST_FRAME_REG, dev_priv->sarea_priv->last_frame); in r128_do_init_cce()
551 dev_priv->sarea_priv->last_dispatch = 0; in r128_do_init_cce()
552 R128_WRITE(R128_LAST_DISPATCH_REG, dev_priv->sarea_priv->last_dispatch); in r128_do_init_cce()
555 if (dev_priv->is_pci) { in r128_do_init_cce()
557 dev_priv->gart_info.table_mask = DMA_BIT_MASK(32); in r128_do_init_cce()
558 dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN; in r128_do_init_cce()
559 dev_priv->gart_info.table_size = R128_PCIGART_TABLE_SIZE; in r128_do_init_cce()
560 dev_priv->gart_info.addr = NULL; in r128_do_init_cce()
561 dev_priv->gart_info.bus_addr = 0; in r128_do_init_cce()
562 dev_priv->gart_info.gart_reg_if = DRM_ATI_GART_PCI; in r128_do_init_cce()
563 if (!drm_ati_pcigart_init(dev, &dev_priv->gart_info)) { in r128_do_init_cce()
565 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
569 R128_WRITE(R128_PCI_GART_PAGE, dev_priv->gart_info.bus_addr); in r128_do_init_cce()
574 r128_cce_init_ring_buffer(dev, dev_priv); in r128_do_init_cce()
575 rc = r128_cce_load_microcode(dev_priv); in r128_do_init_cce()
577 dev->dev_private = (void *)dev_priv; in r128_do_init_cce()
600 drm_r128_private_t *dev_priv = dev->dev_private; in r128_do_cleanup_cce() local
603 if (!dev_priv->is_pci) { in r128_do_cleanup_cce()
604 if (dev_priv->cce_ring != NULL) in r128_do_cleanup_cce()
605 drm_legacy_ioremapfree(dev_priv->cce_ring, dev); in r128_do_cleanup_cce()
606 if (dev_priv->ring_rptr != NULL) in r128_do_cleanup_cce()
607 drm_legacy_ioremapfree(dev_priv->ring_rptr, dev); in r128_do_cleanup_cce()
615 if (dev_priv->gart_info.bus_addr) in r128_do_cleanup_cce()
617 &dev_priv->gart_info)) in r128_do_cleanup_cce()
649 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_start() local
654 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_start()
656 if (dev_priv->cce_running || dev_priv->cce_mode == R128_PM4_NONPM4) { in r128_cce_start()
661 r128_do_cce_start(dev_priv); in r128_cce_start()
671 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_stop() local
678 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_stop()
684 r128_do_cce_flush(dev_priv); in r128_cce_stop()
690 ret = r128_do_cce_idle(dev_priv); in r128_cce_stop()
699 r128_do_cce_stop(dev_priv); in r128_cce_stop()
711 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_reset() local
716 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_reset()
718 r128_do_cce_reset(dev_priv); in r128_cce_reset()
721 dev_priv->cce_running = 0; in r128_cce_reset()
728 drm_r128_private_t *dev_priv = dev->dev_private; in r128_cce_idle() local
733 DEV_INIT_TEST_WITH_RETURN(dev_priv); in r128_cce_idle()
735 if (dev_priv->cce_running) in r128_cce_idle()
736 r128_do_cce_flush(dev_priv); in r128_cce_idle()
738 return r128_do_cce_idle(dev_priv); in r128_cce_idle()
767 drm_r128_private_t *dev_priv = dev->dev_private;
773 dev_priv->head = kzalloc(sizeof(drm_r128_freelist_t), GFP_KERNEL);
774 if (dev_priv->head == NULL)
777 dev_priv->head->age = R128_BUFFER_USED;
789 entry->prev = dev_priv->head;
790 entry->next = dev_priv->head->next;
792 dev_priv->tail = entry;
798 dev_priv->head->next = entry;
800 if (dev_priv->head->next)
801 dev_priv->head->next->prev = entry;
812 drm_r128_private_t *dev_priv = dev->dev_private; in r128_freelist_get() local
826 for (t = 0; t < dev_priv->usec_timeout; t++) { in r128_freelist_get()
863 int r128_wait_ring(drm_r128_private_t *dev_priv, int n) in r128_wait_ring() argument
865 drm_r128_ring_buffer_t *ring = &dev_priv->ring; in r128_wait_ring()
868 for (i = 0; i < dev_priv->usec_timeout; i++) { in r128_wait_ring()
869 r128_update_ring_snapshot(dev_priv); in r128_wait_ring()