summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/gk20a.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2014-11-10 03:34:24 -0500
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:12:14 -0400
commitc0668f05ea1e2429444d6aad2a40dda81aba7ec8 (patch)
treee022679a8f6690d16d3c47ebd77021075ce914d3 /drivers/gpu/nvgpu/gk20a/gk20a.c
parent3a504842cd2696bd2feb496f4f4555ace82b4ab1 (diff)
gpu: nvgpu: Retrieve intr & reset id from HW
Query interrupt number and reset id from HW. Use the number from HW when enabling and detecting interrupts. Bug 200036089 Bug 1567274 Change-Id: If9cb4db79a19dcb193ba7ad9db7081f4fe1ab433 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/600988
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/gk20a.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c
index 1bd1c898..91cd5834 100644
--- a/drivers/gpu/nvgpu/gk20a/gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/gk20a.c
@@ -757,11 +757,6 @@ static int gk20a_pm_finalize_poweron(struct device *dev)
757 if (err) 757 if (err)
758 goto done; 758 goto done;
759 759
760 enable_irq(g->irq_stall);
761 enable_irq(g->irq_nonstall);
762
763 g->ops.mc.intr_enable(g);
764
765 if (!tegra_platform_is_silicon()) 760 if (!tegra_platform_is_silicon())
766 gk20a_writel(g, bus_intr_en_0_r(), 0x0); 761 gk20a_writel(g, bus_intr_en_0_r(), 0x0);
767 else 762 else
@@ -814,6 +809,14 @@ static int gk20a_pm_finalize_poweron(struct device *dev)
814 goto done; 809 goto done;
815 } 810 }
816 811
812 err = gk20a_init_fifo_support(g);
813 if (err) {
814 gk20a_err(dev, "failed to init gk20a fifo");
815 goto done;
816 }
817
818 g->ops.mc.intr_enable(g);
819
817 err = gk20a_enable_gr_hw(g); 820 err = gk20a_enable_gr_hw(g);
818 if (err) { 821 if (err) {
819 gk20a_err(dev, "failed to enable gr"); 822 gk20a_err(dev, "failed to enable gr");
@@ -833,12 +836,6 @@ static int gk20a_pm_finalize_poweron(struct device *dev)
833 goto done; 836 goto done;
834 } 837 }
835 838
836 err = gk20a_init_fifo_support(g);
837 if (err) {
838 gk20a_err(dev, "failed to init gk20a fifo");
839 goto done;
840 }
841
842 err = gk20a_init_gr_support(g); 839 err = gk20a_init_gr_support(g);
843 if (err) { 840 if (err) {
844 gk20a_err(dev, "failed to init gk20a gr"); 841 gk20a_err(dev, "failed to init gk20a gr");
@@ -857,7 +854,6 @@ static int gk20a_pm_finalize_poweron(struct device *dev)
857 goto done; 854 goto done;
858 } 855 }
859 856
860
861 gk20a_channel_resume(g); 857 gk20a_channel_resume(g);
862 set_user_nice(current, nice_value); 858 set_user_nice(current, nice_value);
863 859
@@ -868,6 +864,9 @@ static int gk20a_pm_finalize_poweron(struct device *dev)
868 if (platform->has_cde) 864 if (platform->has_cde)
869 gk20a_init_cde_support(g); 865 gk20a_init_cde_support(g);
870 866
867 enable_irq(g->irq_stall);
868 enable_irq(g->irq_nonstall);
869
871#ifdef CONFIG_INPUT_CFBOOST 870#ifdef CONFIG_INPUT_CFBOOST
872 if (!g->boost_added) { 871 if (!g->boost_added) {
873 gk20a_dbg_info("add touch boost"); 872 gk20a_dbg_info("add touch boost");