Lines Matching full:doorbell

327  * GPU doorbell aperture helpers function.
330 * radeon_doorbell_init - Init doorbell driver information.
334 * Init doorbell driver information (CIK)
339 /* doorbell bar mapping */ in radeon_doorbell_init()
340 rdev->doorbell.base = pci_resource_start(rdev->pdev, 2); in radeon_doorbell_init()
341 rdev->doorbell.size = pci_resource_len(rdev->pdev, 2); in radeon_doorbell_init()
343 rdev->doorbell.num_doorbells = min_t(u32, rdev->doorbell.size / sizeof(u32), RADEON_MAX_DOORBELLS); in radeon_doorbell_init()
344 if (rdev->doorbell.num_doorbells == 0) in radeon_doorbell_init()
347 rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.num_doorbells * sizeof(u32)); in radeon_doorbell_init()
348 if (rdev->doorbell.ptr == NULL) { in radeon_doorbell_init()
351 DRM_INFO("doorbell mmio base: 0x%08X\n", (uint32_t)rdev->doorbell.base); in radeon_doorbell_init()
352 DRM_INFO("doorbell mmio size: %u\n", (unsigned)rdev->doorbell.size); in radeon_doorbell_init()
354 memset(&rdev->doorbell.used, 0, sizeof(rdev->doorbell.used)); in radeon_doorbell_init()
360 * radeon_doorbell_fini - Tear down doorbell driver information.
364 * Tear down doorbell driver information (CIK)
368 iounmap(rdev->doorbell.ptr); in radeon_doorbell_fini()
369 rdev->doorbell.ptr = NULL; in radeon_doorbell_fini()
373 * radeon_doorbell_get - Allocate a doorbell entry
376 * @doorbell: doorbell index
378 * Allocate a doorbell for use by the driver (all asics).
381 int radeon_doorbell_get(struct radeon_device *rdev, u32 *doorbell) in radeon_doorbell_get() argument
383 unsigned long offset = find_first_zero_bit(rdev->doorbell.used, rdev->doorbell.num_doorbells); in radeon_doorbell_get()
384 if (offset < rdev->doorbell.num_doorbells) { in radeon_doorbell_get()
385 __set_bit(offset, rdev->doorbell.used); in radeon_doorbell_get()
386 *doorbell = offset; in radeon_doorbell_get()
394 * radeon_doorbell_free - Free a doorbell entry
397 * @doorbell: doorbell index
399 * Free a doorbell allocated for use by the driver (all asics)
401 void radeon_doorbell_free(struct radeon_device *rdev, u32 doorbell) in radeon_doorbell_free() argument
403 if (doorbell < rdev->doorbell.num_doorbells) in radeon_doorbell_free()
404 __clear_bit(doorbell, rdev->doorbell.used); in radeon_doorbell_free()
1415 /* doorbell bar mapping */ in radeon_device_init()