summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/os/linux/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/os/linux/module.c')
-rw-r--r--drivers/gpu/nvgpu/os/linux/module.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/module.c b/drivers/gpu/nvgpu/os/linux/module.c
index a81d837b..ebe2e650 100644
--- a/drivers/gpu/nvgpu/os/linux/module.c
+++ b/drivers/gpu/nvgpu/os/linux/module.c
@@ -680,6 +680,16 @@ void __iomem *nvgpu_devm_ioremap(struct device *dev, resource_size_t offset,
680 return devm_ioremap(dev, offset, size); 680 return devm_ioremap(dev, offset, size);
681} 681}
682 682
683u64 nvgpu_resource_addr(struct platform_device *dev, int i)
684{
685 struct resource *r = platform_get_resource(dev, IORESOURCE_MEM, i);
686
687 if (!r)
688 return 0;
689
690 return r->start;
691}
692
683static irqreturn_t gk20a_intr_isr_stall(int irq, void *dev_id) 693static irqreturn_t gk20a_intr_isr_stall(int irq, void *dev_id)
684{ 694{
685 struct gk20a *g = dev_id; 695 struct gk20a *g = dev_id;
@@ -764,6 +774,14 @@ static int gk20a_init_support(struct platform_device *pdev)
764 goto fail; 774 goto fail;
765 } 775 }
766 776
777 l->regs_bus_addr = nvgpu_resource_addr(pdev,
778 GK20A_BAR0_IORESOURCE_MEM);
779 if (!l->regs_bus_addr) {
780 nvgpu_err(g, "failed to read register bus offset");
781 err = -ENODEV;
782 goto fail;
783 }
784
767 l->bar1 = nvgpu_devm_ioremap_resource(pdev, 785 l->bar1 = nvgpu_devm_ioremap_resource(pdev,
768 GK20A_BAR1_IORESOURCE_MEM, 786 GK20A_BAR1_IORESOURCE_MEM,
769 &l->bar1_mem); 787 &l->bar1_mem);