Lines Matching refs: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 */
340 rdev->doorbell.base = pci_resource_start(rdev->pdev, 2);
341 rdev->doorbell.size = pci_resource_len(rdev->pdev, 2);
343 rdev->doorbell.num_doorbells = min_t(u32, rdev->doorbell.size / sizeof(u32), RADEON_MAX_DOORBELLS);
344 if (rdev->doorbell.num_doorbells == 0)
347 rdev->doorbell.ptr = ioremap(rdev->doorbell.base, rdev->doorbell.num_doorbells * sizeof(u32));
348 if (rdev->doorbell.ptr == NULL) {
351 DRM_INFO("doorbell mmio base: 0x%08X\n", (uint32_t)rdev->doorbell.base);
352 DRM_INFO("doorbell mmio size: %u\n", (unsigned)rdev->doorbell.size);
354 memset(&rdev->doorbell.used, 0, sizeof(rdev->doorbell.used));
360 * radeon_doorbell_fini - Tear down doorbell driver information.
364 * Tear down doorbell driver information (CIK)
368 iounmap(rdev->doorbell.ptr);
369 rdev->doorbell.ptr = NULL;
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)
383 unsigned long offset = find_first_zero_bit(rdev->doorbell.used, rdev->doorbell.num_doorbells);
384 if (offset < rdev->doorbell.num_doorbells) {
385 __set_bit(offset, rdev->doorbell.used);
386 *doorbell = offset;
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)
403 if (doorbell < rdev->doorbell.num_doorbells)
404 __clear_bit(doorbell, rdev->doorbell.used);
1416 /* doorbell bar mapping */