Files
Joel Fernandes ba110db8e1 gpu: Move DRM buddy allocator one level up (part two)
Move the DRM buddy allocator one level up so that it can be used by GPU
drivers (example, nova-core) that have usecases other than DRM (such as
VFIO vGPU support). Modify the API, structures and Kconfigs to use
"gpu_buddy" terminology. Adapt the drivers and tests to use the new API.

The commit cannot be split due to bisectability, however no functional
change is intended. Verified by running K-UNIT tests and build tested
various configurations.

Signed-off-by: Joel Fernandes <joelagnelf@nvidia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
[airlied: I've split this into two so git can find copies easier.
I've also just nuked drm_random library, that stuff needs to be done
elsewhere and only the buddy tests seem to be using it].
Signed-off-by: Dave Airlie <airlied@redhat.com>
2026-02-06 11:38:35 +10:00

29 lines
796 B
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __GPU_RANDOM_H__
#define __GPU_RANDOM_H__
/* This is a temporary home for a couple of utility functions that should
* be transposed to lib/ at the earliest convenience.
*/
#include <linux/prandom.h>
#define GPU_RND_STATE_INITIALIZER(seed__) ({ \
struct rnd_state state__; \
prandom_seed_state(&state__, (seed__)); \
state__; \
})
#define GPU_RND_STATE(name__, seed__) \
struct rnd_state name__ = GPU_RND_STATE_INITIALIZER(seed__)
unsigned int *gpu_random_order(unsigned int count,
struct rnd_state *state);
void gpu_random_reorder(unsigned int *order,
unsigned int count,
struct rnd_state *state);
u32 gpu_prandom_u32_max_state(u32 ep_ro,
struct rnd_state *state);
#endif /* !__GPU_RANDOM_H__ */