config NVIDIA
    tristate "NVIDIA GPU opensource driver (GSP RM)"
    depends on m
    depends on PCI && 64BIT
    select FW_LOADER
    select I2C
    help
      NVIDIA official open-source GPU driver based on the GPU System Processor (GSP).
      This driver provides the core 'nvidia.ko' resource manager module.
      Currently, this driver only supports 64-bit architectures (x86_64, aarch64).

config NVIDIA_MODESET
    tristate "NVIDIA GPU opensource driver - MODESET"
    depends on NVIDIA
    help
      NVIDIA display modesetting module (nvidia-modeset.ko).
      This module bridges the core RM and the DRM subsystem for display control.

config NVIDIA_DRM
    tristate "NVIDIA GPU opensource driver - DRM"
    depends on NVIDIA
    depends on DRM
    select DRM_KMS_HELPER
    select NVIDIA_MODESET
    help
      NVIDIA Direct Rendering Manager interface (nvidia-drm.ko).
      Provides standard Linux DRM/KMS interfaces to userspace compositors
      (Wayland/X11).

config NVIDIA_UVM
    tristate "NVIDIA GPU opensource driver - UVM (Unified Memory)"
    depends on NVIDIA
    depends on MMU
    help
      NVIDIA Unified Memory driver (nvidia-uvm.ko).
      Required for CUDA unified memory, providing a shared memory space
      between CPU and GPU.

config NVIDIA_PEERMEM
    tristate "NVIDIA GPU opensource driver - PEERMEM"
    depends on NVIDIA
    depends on DEVICE_PRIVATE
    help
      NVIDIA Peer-to-Peer memory support (nvidia-peermem.ko).
      Allows third-party devices (like InfiniBand NICs) to directly access
      GPU memory via RDMA.
