drm/nouveau/pci: prepare for chipset-specific initialisation tasks
authorBen Skeggs <bskeggs@redhat.com>
Wed, 30 Sep 2015 23:42:54 +0000 (09:42 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Tue, 3 Nov 2015 05:02:18 +0000 (15:02 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h

index d1c148e519228a7b6a2e589c7454bf18d0ce751d..21106223c2c37bed8a52bb5a79ddbb77a44ab7fb 100644 (file)
@@ -111,6 +111,9 @@ nvkm_pci_init(struct nvkm_subdev *subdev)
                        return ret;
        }
 
+       if (pci->func->init)
+               pci->func->init(pci);
+
        ret = request_irq(pdev->irq, nvkm_pci_intr, IRQF_SHARED, "nvkm", pci);
        if (ret)
                return ret;
index 473b8ab2535133848569c4a8f432cc182b7e752c..1acd4bc64d7e0813a0a151a9a62e75b46631223e 100644 (file)
@@ -7,6 +7,7 @@ int nvkm_pci_new_(const struct nvkm_pci_func *, struct nvkm_device *,
                  int index, struct nvkm_pci **);
 
 struct nvkm_pci_func {
+       void (*init)(struct nvkm_pci *);
        u32 (*rd32)(struct nvkm_pci *, u16 addr);
        void (*wr08)(struct nvkm_pci *, u16 addr, u8 data);
        void (*wr32)(struct nvkm_pci *, u16 addr, u32 data);