Files
linux/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/engine.h
Ben Skeggs 7c2d25f1e4 drm/nouveau/gsp: add common code for engines/engine objects
With minimal to no direct HW programming required, most nvkm_engine
implementations are nearly identical when running on top of GSP-RM.

Add a common implementation of the boilerplate, and use nvkm_rm_gpu to
expose the correct class IDs.

As they're now handled by common code, and there's no support for them
prior to GSP-RM support - this deletes the GA100 NVDEC/NVJPG/OFA HALs,
the GA102 NVENC/OFA HALs, and the AD102 GR/NVDEC/NVENC/NVJPG/OFA HALs.

Signed-off-by: Ben Skeggs <bskeggs@nvidia.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Timur Tabi <ttabi@nvidia.com>
Tested-by: Timur Tabi <ttabi@nvidia.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2025-05-19 06:29:24 +10:00

21 lines
704 B
C

/* SPDX-License-Identifier: MIT
*
* Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
*/
#ifndef __NVKM_RM_ENGINE_H__
#define __NVKM_RM_ENGINE_H__
#include "gpu.h"
int nvkm_rm_engine_ctor(void *(*dtor)(struct nvkm_engine *), struct nvkm_rm *,
enum nvkm_subdev_type type, int inst,
const u32 *class, int nclass, struct nvkm_engine *);
int nvkm_rm_engine_new(struct nvkm_rm *, enum nvkm_subdev_type, int inst);
int nvkm_rm_engine_obj_new(struct nvkm_gsp_object *chan, int chid, const struct nvkm_oclass *,
struct nvkm_object **);
int nvkm_rm_gr_new(struct nvkm_rm *);
int nvkm_rm_nvdec_new(struct nvkm_rm *, int inst);
int nvkm_rm_nvenc_new(struct nvkm_rm *, int inst);
#endif