0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 #include "priv.h"
0025
0026 const struct nvkm_mc_map
0027 gk104_mc_reset[] = {
0028 { 0x00000100, NVKM_ENGINE_FIFO },
0029 { 0x00002000, NVKM_SUBDEV_PMU, 0, true },
0030 {}
0031 };
0032
0033 const struct nvkm_mc_map
0034 gk104_mc_intr[] = {
0035 { 0x04000000, NVKM_ENGINE_DISP },
0036 { 0x00000100, NVKM_ENGINE_FIFO },
0037 { 0x40000000, NVKM_SUBDEV_PRIVRING },
0038 { 0x10000000, NVKM_SUBDEV_BUS },
0039 { 0x08000000, NVKM_SUBDEV_FB },
0040 { 0x02000000, NVKM_SUBDEV_LTC },
0041 { 0x01000000, NVKM_SUBDEV_PMU },
0042 { 0x00200000, NVKM_SUBDEV_GPIO },
0043 { 0x00200000, NVKM_SUBDEV_I2C },
0044 { 0x00100000, NVKM_SUBDEV_TIMER },
0045 { 0x00040000, NVKM_SUBDEV_THERM },
0046 { 0x00002000, NVKM_SUBDEV_FB },
0047 {},
0048 };
0049
0050 static const struct nvkm_mc_func
0051 gk104_mc = {
0052 .init = nv50_mc_init,
0053 .intr = gk104_mc_intr,
0054 .intr_unarm = gf100_mc_intr_unarm,
0055 .intr_rearm = gf100_mc_intr_rearm,
0056 .intr_mask = gf100_mc_intr_mask,
0057 .intr_stat = gf100_mc_intr_stat,
0058 .reset = gk104_mc_reset,
0059 .unk260 = gf100_mc_unk260,
0060 };
0061
0062 int
0063 gk104_mc_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst, struct nvkm_mc **pmc)
0064 {
0065 return nvkm_mc_new_(&gk104_mc, device, type, inst, pmc);
0066 }