Revert "gpu: nvgpu: enable semaphore acquire timeout"
Shreshtha SAHU [Wed, 27 Jul 2016 05:21:03 +0000 (10:21 +0530)]
This reverts commit a4b13ca7e202a7fca576a4ba7f09b73a92bf81a2.

cudaEventSynchronize is failing due to this.

Bug 200219720
Bug 1636800

Change-Id: Id557ed30a2db2f289f8f546a5d4454ceb179caf0
Signed-off-by: Shreshtha SAHU <ssahu@nvidia.com>
Reviewed-on: http://git-master/r/1191361
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>

drivers/gpu/nvgpu/gk20a/channel_gk20a.c
drivers/gpu/nvgpu/gk20a/channel_gk20a.h
drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h
drivers/gpu/nvgpu/gm20b/hw_pbdma_gm20b.h

index daf5984..277e038 100644 (file)
@@ -189,38 +189,6 @@ static int channel_gk20a_set_schedule_params(struct channel_gk20a *c,
        return 0;
 }
 
-u32 channel_gk20a_pbdma_acquire_val(struct channel_gk20a *c)
-{
-       u32 val, exp, man;
-       u64 timeout;
-       int val_len;
-
-       timeout = gk20a_get_gr_idle_timeout(c->g);
-       do_div(timeout, 2); /* set acquire timeout to half of idle wdt */
-       timeout *= 1000000UL; /* ms -> ns */
-       do_div(timeout, 1024); /* in unit of 1024ns */
-       val_len = fls(timeout >> 32) + 32;
-       if (val_len == 32)
-               val_len = fls(timeout);
-       if (val_len > 16 + pbdma_acquire_timeout_exp_max_v()) { /* man: 16bits */
-               exp = pbdma_acquire_timeout_exp_max_v();
-               man = pbdma_acquire_timeout_man_max_v();
-       } else if (val_len > 16) {
-               exp = val_len - 16;
-               man = timeout >> exp;
-       } else {
-               exp = 0;
-               man = timeout;
-       }
-
-       val = pbdma_acquire_retry_man_2_f() |
-               pbdma_acquire_retry_exp_2_f() |
-               pbdma_acquire_timeout_exp_f(exp) |
-               pbdma_acquire_timeout_man_f(man) |
-               pbdma_acquire_timeout_en_enable_f();
-       return val;
-}
-
 int channel_gk20a_setup_ramfc(struct channel_gk20a *c,
                        u64 gpfifo_base, u32 gpfifo_entries, u32 flags)
 {
@@ -266,7 +234,11 @@ int channel_gk20a_setup_ramfc(struct channel_gk20a *c,
        gk20a_mem_wr32(inst_ptr, ram_fc_target_w(), pbdma_target_engine_sw_f());
 
        gk20a_mem_wr32(inst_ptr, ram_fc_acquire_w(),
-               channel_gk20a_pbdma_acquire_val(c));
+               pbdma_acquire_retry_man_2_f() |
+               pbdma_acquire_retry_exp_2_f() |
+               pbdma_acquire_timeout_exp_max_f() |
+               pbdma_acquire_timeout_man_max_f() |
+               pbdma_acquire_timeout_en_disable_f());
 
        gk20a_mem_wr32(inst_ptr, ram_fc_runlist_timeslice_w(),
                fifo_runlist_timeslice_timeout_128_f() |
index 5dbe13b..21a4de0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * GK20A graphics channel
  *
- * Copyright (c) 2011-2016, NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2011-2015, NVIDIA CORPORATION.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -262,7 +262,6 @@ void channel_gk20a_unbind(struct channel_gk20a *ch_gk20a);
 void channel_gk20a_disable(struct channel_gk20a *ch);
 int channel_gk20a_alloc_inst(struct gk20a *g, struct channel_gk20a *ch);
 void channel_gk20a_free_inst(struct gk20a *g, struct channel_gk20a *ch);
-u32 channel_gk20a_pbdma_acquire_val(struct channel_gk20a *c);
 int channel_gk20a_setup_ramfc(struct channel_gk20a *c,
                        u64 gpfifo_base, u32 gpfifo_entries, u32 flags);
 void channel_gk20a_enable(struct channel_gk20a *ch);
index 0999304..7bd98f5 100644 (file)
@@ -1617,12 +1617,6 @@ static u32 gk20a_fifo_handle_pbdma_intr(struct device *dev,
                                    pbdma_intr_0);
                }
 
-               if (pbdma_intr_0 & pbdma_intr_0_acquire_pending_f()) {
-                       u32 val = gk20a_readl(g, pbdma_acquire_r(pbdma_id));
-                       val &= ~pbdma_acquire_timeout_en_enable_f();
-                       gk20a_writel(g, pbdma_acquire_r(pbdma_id), val);
-               }
-
                if (pbdma_intr_0 & pbdma_intr_0_pbentry_pending_f()) {
                        gk20a_fifo_reset_pbdma_header(g, pbdma_id);
                        gk20a_fifo_reset_pbdma_method(g, pbdma_id, 0);
index 79a4ef9..e83dbb5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2016, NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2012-2015, NVIDIA CORPORATION.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -274,34 +274,14 @@ static inline u32 pbdma_acquire_retry_exp_2_f(void)
 {
        return 0x100;
 }
-static inline u32 pbdma_acquire_timeout_exp_f(u32 v)
-{
-       return (v & 0xf) << 11;
-}
-static inline u32 pbdma_acquire_timeout_exp_max_v(void)
-{
-       return 0x0000000f;
-}
 static inline u32 pbdma_acquire_timeout_exp_max_f(void)
 {
        return 0x7800;
 }
-static inline u32 pbdma_acquire_timeout_man_f(u32 v)
-{
-       return (v & 0xffff) << 15;
-}
-static inline u32 pbdma_acquire_timeout_man_max_v(void)
-{
-       return 0x0000ffff;
-}
 static inline u32 pbdma_acquire_timeout_man_max_f(void)
 {
        return 0x7fff8000;
 }
-static inline u32 pbdma_acquire_timeout_en_enable_f(void)
-{
-       return 0x80000000;
-}
 static inline u32 pbdma_acquire_timeout_en_disable_f(void)
 {
        return 0x0;
index 19b3bc4..c03a377 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014-2016, NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2014-2015, NVIDIA CORPORATION.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -262,34 +262,14 @@ static inline u32 pbdma_acquire_retry_exp_2_f(void)
 {
        return 0x100;
 }
-static inline u32 pbdma_acquire_timeout_exp_f(u32 v)
-{
-       return (v & 0xf) << 11;
-}
-static inline u32 pbdma_acquire_timeout_exp_max_v(void)
-{
-       return 0x0000000f;
-}
 static inline u32 pbdma_acquire_timeout_exp_max_f(void)
 {
        return 0x7800;
 }
-static inline u32 pbdma_acquire_timeout_man_f(u32 v)
-{
-       return (v & 0xffff) << 15;
-}
-static inline u32 pbdma_acquire_timeout_man_max_v(void)
-{
-       return 0x0000ffff;
-}
 static inline u32 pbdma_acquire_timeout_man_max_f(void)
 {
        return 0x7fff8000;
 }
-static inline u32 pbdma_acquire_timeout_en_enable_f(void)
-{
-       return 0x80000000;
-}
 static inline u32 pbdma_acquire_timeout_en_disable_f(void)
 {
        return 0x0;