Lines Matching full:doorbell

329  * GPU doorbell aperture helpers function.
332 * radeon_doorbell_init - Init doorbell driver information.
336 * Init doorbell driver information (CIK)
341 /* doorbell bar mapping */ in radeon_doorbell_init()
342 rdev->doorbell.base = pci_resource_start(rdev->pdev, 2); in radeon_doorbell_init()
343 rdev->doorbell.size = pci_resource_len(rdev->pdev, 2); in radeon_doorbell_init()
345 rdev->doorbell.num_doorbells = min_t(u32, rdev->doorbell.size / sizeof(u32), RADEON_MAX_DOORBELLS); in radeon_doorbell_init()
346 if (rdev->doorbell.num_doorbells == 0) in radeon_doorbell_init()
349 rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.num_doorbells * sizeof(u32)); in radeon_doorbell_init()
350 if (rdev->doorbell.ptr == NULL) { in radeon_doorbell_init()
353 DRM_INFO("doorbell mmio base: 0x%08X\n", (uint32_t)rdev->doorbell.base); in radeon_doorbell_init()
354 DRM_INFO("doorbell mmio size: %u\n", (unsigned)rdev->doorbell.size); in radeon_doorbell_init()
356 memset(&rdev->doorbell.used, 0, sizeof(rdev->doorbell.used)); in radeon_doorbell_init()
362 * radeon_doorbell_fini - Tear down doorbell driver information.
366 * Tear down doorbell driver information (CIK)
370 iounmap(rdev->doorbell.ptr); in radeon_doorbell_fini()
371 rdev->doorbell.ptr = NULL; in radeon_doorbell_fini()
375 * radeon_doorbell_get - Allocate a doorbell entry
378 * @doorbell: doorbell index
380 * Allocate a doorbell for use by the driver (all asics).
383 int radeon_doorbell_get(struct radeon_device *rdev, u32 *doorbell) in radeon_doorbell_get() argument
385 unsigned long offset = find_first_zero_bit(rdev->doorbell.used, rdev->doorbell.num_doorbells); in radeon_doorbell_get()
386 if (offset < rdev->doorbell.num_doorbells) { in radeon_doorbell_get()
387 __set_bit(offset, rdev->doorbell.used); in radeon_doorbell_get()
388 *doorbell = offset; in radeon_doorbell_get()
396 * radeon_doorbell_free - Free a doorbell entry
399 * @doorbell: doorbell index
401 * Free a doorbell allocated for use by the driver (all asics)
403 void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell) in radeon_doorbell_free() argument
405 if (doorbell < rdev->doorbell.num_doorbells) in radeon_doorbell_free()
406 __clear_bit(doorbell, rdev->doorbell.used); in radeon_doorbell_free()
1405 /* doorbell bar mapping */ in radeon_device_init()