This source file includes following definitions.
- gf119_disp_chan_uevent_fini
- gf119_disp_chan_uevent_init
- gf119_disp_chan_intr
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 #include "channv50.h"
  25 
  26 static void
  27 gf119_disp_chan_uevent_fini(struct nvkm_event *event, int type, int index)
  28 {
  29         struct nv50_disp *disp = container_of(event, typeof(*disp), uevent);
  30         struct nvkm_device *device = disp->base.engine.subdev.device;
  31         nvkm_mask(device, 0x610090, 0x00000001 << index, 0x00000000 << index);
  32         nvkm_wr32(device, 0x61008c, 0x00000001 << index);
  33 }
  34 
  35 static void
  36 gf119_disp_chan_uevent_init(struct nvkm_event *event, int types, int index)
  37 {
  38         struct nv50_disp *disp = container_of(event, typeof(*disp), uevent);
  39         struct nvkm_device *device = disp->base.engine.subdev.device;
  40         nvkm_wr32(device, 0x61008c, 0x00000001 << index);
  41         nvkm_mask(device, 0x610090, 0x00000001 << index, 0x00000001 << index);
  42 }
  43 
  44 const struct nvkm_event_func
  45 gf119_disp_chan_uevent = {
  46         .ctor = nv50_disp_chan_uevent_ctor,
  47         .init = gf119_disp_chan_uevent_init,
  48         .fini = gf119_disp_chan_uevent_fini,
  49 };
  50 
  51 void
  52 gf119_disp_chan_intr(struct nv50_disp_chan *chan, bool en)
  53 {
  54         struct nvkm_device *device = chan->disp->base.engine.subdev.device;
  55         const u32 mask = 0x00000001 << chan->chid.user;
  56         if (!en) {
  57                 nvkm_mask(device, 0x610090, mask, 0x00000000);
  58                 nvkm_mask(device, 0x6100a0, mask, 0x00000000);
  59         } else {
  60                 nvkm_mask(device, 0x6100a0, mask, mask);
  61         }
  62 }