This patch series adds the nova-drm skeleton driver. nova-drm is connected to nova-core through the auxiliary bus and implements the DRM parts of the nova driver stack.
For now, it implements the fundamental DRM abstractions, i.e. creates a DRM device and registers it, exposing a three sample IOCTLs. DRM_IOCTL_NOVA_GETPARAM - provides the PCI bar size from the bar that maps the GPUs VRAM from nova-core DRM_IOCTL_NOVA_GEM_CREATE - creates a new dummy DRM GEM object and returns a handle DRM_IOCTL_NOVA_GEM_INFO - provides metadata for the DRM GEM object behinda given handle I implemented a small userspace test suite [1] that utilizes this interface. This patch series depends on the auxiliary bus abstractions [2] and the DRM abstractions [3]; the patches from this series are also in [4]. [1] https://gitlab.freedesktop.org/dakr/drm-test [2] https://web.git.kernel.org/pub/scm/linux/kernel/git/dakr/linux.git/log/?h=rust/auxiliary [3] https://gitlab.freedesktop.org/drm/misc/kernel/-/tree/topic/rust-drm [4] https://gitlab.freedesktop.org/drm/nova/-/tree/staging/nova-drm Danilo Krummrich (2): gpu: nova-core: register auxiliary device for nova-drm drm: nova-drm: add initial driver skeleton MAINTAINERS | 12 ++++ drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/nova/Kconfig | 14 ++++ drivers/gpu/drm/nova/Makefile | 3 + drivers/gpu/drm/nova/driver.rs | 70 ++++++++++++++++++++ drivers/gpu/drm/nova/file.rs | 68 +++++++++++++++++++ drivers/gpu/drm/nova/gem.rs | 49 ++++++++++++++ drivers/gpu/drm/nova/nova.rs | 17 +++++ drivers/gpu/nova-core/Kconfig | 1 + drivers/gpu/nova-core/driver.rs | 9 ++- drivers/gpu/nova-core/nova_core.rs | 2 + include/uapi/drm/nova_drm.h | 101 +++++++++++++++++++++++++++++ rust/uapi/uapi_helper.h | 1 + 14 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/nova/Kconfig create mode 100644 drivers/gpu/drm/nova/Makefile create mode 100644 drivers/gpu/drm/nova/driver.rs create mode 100644 drivers/gpu/drm/nova/file.rs create mode 100644 drivers/gpu/drm/nova/gem.rs create mode 100644 drivers/gpu/drm/nova/nova.rs create mode 100644 include/uapi/drm/nova_drm.h -- 2.49.0