Home | History | Annotate | Line # | Download | only in mpeg
      1 /*	$NetBSD: nv31.h,v 1.3 2021/12/18 23:45:36 riastradh Exp $	*/
      2 
      3 /* SPDX-License-Identifier: MIT */
      4 #ifndef __NV31_MPEG_H__
      5 #define __NV31_MPEG_H__
      6 #define nv31_mpeg(p) container_of((p), struct nv31_mpeg, engine)
      7 #include "priv.h"
      8 #include <engine/mpeg.h>
      9 
     10 struct nv31_mpeg {
     11 	const struct nv31_mpeg_func *func;
     12 	struct nvkm_engine engine;
     13 	struct nv31_mpeg_chan *chan;
     14 };
     15 
     16 int nv31_mpeg_new_(const struct nv31_mpeg_func *, struct nvkm_device *,
     17 		   int index, struct nvkm_engine **);
     18 
     19 struct nv31_mpeg_func {
     20 	bool (*mthd_dma)(struct nvkm_device *, u32 mthd, u32 data);
     21 };
     22 
     23 #define nv31_mpeg_chan(p) container_of((p), struct nv31_mpeg_chan, object)
     24 #include <core/object.h>
     25 
     26 struct nv31_mpeg_chan {
     27 	struct nvkm_object object;
     28 	struct nv31_mpeg *mpeg;
     29 	struct nvkm_fifo_chan *fifo;
     30 };
     31 
     32 int nv31_mpeg_chan_new(struct nvkm_fifo_chan *, const struct nvkm_oclass *,
     33 		       struct nvkm_object **);
     34 #endif
     35