Lines Matching refs:pmc

30 nvkm_mc_unk260(struct nvkm_mc *pmc, u32 data)  in nvkm_mc_unk260()  argument
32 const struct nvkm_mc_oclass *impl = (void *)nv_oclass(pmc); in nvkm_mc_unk260()
34 impl->unk260(pmc, data); in nvkm_mc_unk260()
38 nvkm_mc_intr_mask(struct nvkm_mc *pmc) in nvkm_mc_intr_mask() argument
40 u32 intr = nv_rd32(pmc, 0x000100); in nvkm_mc_intr_mask()
49 struct nvkm_mc *pmc = arg; in nvkm_mc_intr() local
50 const struct nvkm_mc_oclass *oclass = (void *)nv_object(pmc)->oclass; in nvkm_mc_intr()
55 nv_wr32(pmc, 0x000140, 0x00000000); in nvkm_mc_intr()
56 nv_rd32(pmc, 0x000140); in nvkm_mc_intr()
57 intr = nvkm_mc_intr_mask(pmc); in nvkm_mc_intr()
58 if (pmc->use_msi) in nvkm_mc_intr()
59 oclass->msi_rearm(pmc); in nvkm_mc_intr()
62 u32 stat = intr = nvkm_mc_intr_mask(pmc); in nvkm_mc_intr()
65 unit = nvkm_subdev(pmc, map->unit); in nvkm_mc_intr()
74 nv_error(pmc, "unknown intr 0x%08x\n", stat); in nvkm_mc_intr()
77 nv_wr32(pmc, 0x000140, 0x00000001); in nvkm_mc_intr()
84 struct nvkm_mc *pmc = (void *)object; in _nvkm_mc_fini() local
85 nv_wr32(pmc, 0x000140, 0x00000000); in _nvkm_mc_fini()
86 return nvkm_subdev_fini(&pmc->base, suspend); in _nvkm_mc_fini()
92 struct nvkm_mc *pmc = (void *)object; in _nvkm_mc_init() local
93 int ret = nvkm_subdev_init(&pmc->base); in _nvkm_mc_init()
96 nv_wr32(pmc, 0x000140, 0x00000001); in _nvkm_mc_init()
104 struct nvkm_mc *pmc = (void *)object; in _nvkm_mc_dtor() local
105 free_irq(pmc->irq, pmc); in _nvkm_mc_dtor()
106 if (pmc->use_msi) in _nvkm_mc_dtor()
108 nvkm_subdev_destroy(&pmc->base); in _nvkm_mc_dtor()
117 struct nvkm_mc *pmc; in nvkm_mc_create_() local
122 pmc = *pobject; in nvkm_mc_create_()
126 pmc->unk260 = nvkm_mc_unk260; in nvkm_mc_create_()
140 pmc->use_msi = true; in nvkm_mc_create_()
145 pmc->use_msi = nvkm_boolopt(device->cfgopt, "NvMSI", in nvkm_mc_create_()
146 pmc->use_msi); in nvkm_mc_create_()
148 if (pmc->use_msi && oclass->msi_rearm) { in nvkm_mc_create_()
149 pmc->use_msi = pci_enable_msi(device->pdev) == 0; in nvkm_mc_create_()
150 if (pmc->use_msi) { in nvkm_mc_create_()
151 nv_info(pmc, "MSI interrupts enabled\n"); in nvkm_mc_create_()
152 oclass->msi_rearm(pmc); in nvkm_mc_create_()
155 pmc->use_msi = false; in nvkm_mc_create_()
162 pmc->irq = ret; in nvkm_mc_create_()
164 ret = request_irq(pmc->irq, nvkm_mc_intr, IRQF_SHARED, "nvkm", pmc); in nvkm_mc_create_()