Lines Matching full:doorbell

328  * GPU doorbell aperture helpers function.
331 * radeon_doorbell_init - Init doorbell driver information.
335 * Init doorbell driver information (CIK)
340 /* doorbell bar mapping */ in radeon_doorbell_init()
341 rdev->doorbell.base = pci_resource_start(rdev->pdev, 2); in radeon_doorbell_init()
342 rdev->doorbell.size = pci_resource_len(rdev->pdev, 2); in radeon_doorbell_init()
344 rdev->doorbell.num_doorbells = min_t(u32, rdev->doorbell.size / sizeof(u32), RADEON_MAX_DOORBELLS); in radeon_doorbell_init()
345 if (rdev->doorbell.num_doorbells == 0) in radeon_doorbell_init()
348 rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.num_doorbells * sizeof(u32)); in radeon_doorbell_init()
349 if (rdev->doorbell.ptr == NULL) { in radeon_doorbell_init()
352 DRM_INFO("doorbell mmio base: 0x%08X\n", (uint32_t)rdev->doorbell.base); in radeon_doorbell_init()
353 DRM_INFO("doorbell mmio size: %u\n", (unsigned)rdev->doorbell.size); in radeon_doorbell_init()
355 memset(&rdev->doorbell.used, 0, sizeof(rdev->doorbell.used)); in radeon_doorbell_init()
361 * radeon_doorbell_fini - Tear down doorbell driver information.
365 * Tear down doorbell driver information (CIK)
369 iounmap(rdev->doorbell.ptr); in radeon_doorbell_fini()
370 rdev->doorbell.ptr = NULL; in radeon_doorbell_fini()
374 * radeon_doorbell_get - Allocate a doorbell entry
377 * @doorbell: doorbell index
379 * Allocate a doorbell for use by the driver (all asics).
382 int radeon_doorbell_get(struct radeon_device *rdev, u32 *doorbell) in radeon_doorbell_get() argument
384 unsigned long offset = find_first_zero_bit(rdev->doorbell.used, rdev->doorbell.num_doorbells); in radeon_doorbell_get()
385 if (offset < rdev->doorbell.num_doorbells) { in radeon_doorbell_get()
386 __set_bit(offset, rdev->doorbell.used); in radeon_doorbell_get()
387 *doorbell = offset; in radeon_doorbell_get()
395 * radeon_doorbell_free - Free a doorbell entry
398 * @doorbell: doorbell index
400 * Free a doorbell allocated for use by the driver (all asics)
402 void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell) in radeon_doorbell_free() argument
404 if (doorbell < rdev->doorbell.num_doorbells) in radeon_doorbell_free()
405 __clear_bit(doorbell, rdev->doorbell.used); in radeon_doorbell_free()
1405 /* doorbell bar mapping */ in radeon_device_init()