linux/drivers/gpu/drm/nouveau/include/nvkm/core/firmware.h

/* SPDX-License-Identifier: MIT */
#ifndef __NVKM_FIRMWARE_H__
#define __NVKM_FIRMWARE_H__
#include <core/memory.h>
#include <core/option.h>
#include <core/subdev.h>

struct nvkm_firmware {};

int nvkm_firmware_ctor(const struct nvkm_firmware_func *, const char *name, struct nvkm_device *,
		       const void *ptr, int len, struct nvkm_firmware *);
void nvkm_firmware_dtor(struct nvkm_firmware *);

int nvkm_firmware_get(const struct nvkm_subdev *, const char *fwname, int ver,
		      const struct firmware **);
void nvkm_firmware_put(const struct firmware *);

int nvkm_firmware_load_blob(const struct nvkm_subdev *subdev, const char *path,
			    const char *name, int ver, struct nvkm_blob *);
int nvkm_firmware_load_name(const struct nvkm_subdev *subdev, const char *path,
			    const char *name, int ver,
			    const struct firmware **);

#define nvkm_firmware_load(s,l,o,p...)
#endif