diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 12 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 9 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/ltc_common.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/ltc_gk20a.c | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/priv_ring_gk20a.c | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/therm_gk20a.c | 4 |
10 files changed, 35 insertions, 23 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 936e4d04..571570d8 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <nvgpu/list.h> | 29 | #include <nvgpu/list.h> |
30 | #include <nvgpu/circ_buf.h> | 30 | #include <nvgpu/circ_buf.h> |
31 | #include <nvgpu/cond.h> | 31 | #include <nvgpu/cond.h> |
32 | #include <nvgpu/enabled.h> | ||
32 | 33 | ||
33 | #include "gk20a.h" | 34 | #include "gk20a.h" |
34 | #include "debug_gk20a.h" | 35 | #include "debug_gk20a.h" |
@@ -126,7 +127,7 @@ static void free_channel(struct fifo_gk20a *f, | |||
126 | * On teardown it is not possible to dereference platform, but ignoring | 127 | * On teardown it is not possible to dereference platform, but ignoring |
127 | * this is fine then because no new channels would be created. | 128 | * this is fine then because no new channels would be created. |
128 | */ | 129 | */ |
129 | if (!g->driver_is_dying) { | 130 | if (!nvgpu_is_enabled(g, NVGPU_DRIVER_IS_DYING)) { |
130 | if (g->aggressive_sync_destroy_thresh && | 131 | if (g->aggressive_sync_destroy_thresh && |
131 | (f->used_channels < | 132 | (f->used_channels < |
132 | g->aggressive_sync_destroy_thresh)) | 133 | g->aggressive_sync_destroy_thresh)) |
@@ -2418,7 +2419,7 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, | |||
2418 | struct nvgpu_gpfifo __user *user_gpfifo = args ? | 2419 | struct nvgpu_gpfifo __user *user_gpfifo = args ? |
2419 | (struct nvgpu_gpfifo __user *)(uintptr_t)args->gpfifo : NULL; | 2420 | (struct nvgpu_gpfifo __user *)(uintptr_t)args->gpfifo : NULL; |
2420 | 2421 | ||
2421 | if (g->driver_is_dying) | 2422 | if (nvgpu_is_enabled(g, NVGPU_DRIVER_IS_DYING)) |
2422 | return -ENODEV; | 2423 | return -ENODEV; |
2423 | 2424 | ||
2424 | if (c->has_timedout) | 2425 | if (c->has_timedout) |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index f4e7fe45..31b0a771 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <nvgpu/allocator.h> | 23 | #include <nvgpu/allocator.h> |
24 | #include <nvgpu/timers.h> | 24 | #include <nvgpu/timers.h> |
25 | #include <nvgpu/soc.h> | 25 | #include <nvgpu/soc.h> |
26 | #include <nvgpu/enabled.h> | ||
26 | 27 | ||
27 | #include <trace/events/gk20a.h> | 28 | #include <trace/events/gk20a.h> |
28 | 29 | ||
@@ -364,20 +365,20 @@ done: | |||
364 | */ | 365 | */ |
365 | int gk20a_can_busy(struct gk20a *g) | 366 | int gk20a_can_busy(struct gk20a *g) |
366 | { | 367 | { |
367 | if (g->driver_is_dying) | 368 | if (nvgpu_is_enabled(g, NVGPU_DRIVER_IS_DYING)) |
368 | return 0; | 369 | return 0; |
369 | return 1; | 370 | return 1; |
370 | } | 371 | } |
371 | 372 | ||
372 | /* | 373 | /* |
373 | * Start the process for unloading the driver. Set g->driver_is_dying. | 374 | * Start the process for unloading the driver. Set NVGPU_DRIVER_IS_DYING. |
374 | */ | 375 | */ |
375 | void gk20a_driver_start_unload(struct gk20a *g) | 376 | void gk20a_driver_start_unload(struct gk20a *g) |
376 | { | 377 | { |
377 | gk20a_dbg(gpu_dbg_shutdown, "Driver is now going down!\n"); | 378 | gk20a_dbg(gpu_dbg_shutdown, "Driver is now going down!\n"); |
378 | 379 | ||
379 | down_write(&g->busy_lock); | 380 | down_write(&g->busy_lock); |
380 | g->driver_is_dying = 1; | 381 | __nvgpu_set_enabled(g, NVGPU_DRIVER_IS_DYING, true); |
381 | up_write(&g->busy_lock); | 382 | up_write(&g->busy_lock); |
382 | 383 | ||
383 | if (g->is_virtual) | 384 | if (g->is_virtual) |
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 10417084..689fafb1 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * GK20A Graphics | ||
3 | * | ||
4 | * Copyright (c) 2011-2017, NVIDIA CORPORATION. All rights reserved. | 2 | * Copyright (c) 2011-2017, NVIDIA CORPORATION. All rights reserved. |
5 | * | 3 | * |
4 | * GK20A Graphics | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | 6 | * This program is free software; you can redistribute it and/or modify it |
7 | * under the terms and conditions of the GNU General Public License, | 7 | * under the terms and conditions of the GNU General Public License, |
8 | * version 2, as published by the Free Software Foundation. | 8 | * version 2, as published by the Free Software Foundation. |
@@ -971,15 +971,17 @@ struct gk20a { | |||
971 | struct device *dev; | 971 | struct device *dev; |
972 | struct platform_device *host1x_dev; | 972 | struct platform_device *host1x_dev; |
973 | 973 | ||
974 | /* | ||
975 | * Used by <nvgpu/enabled.h>. Do not access directly! | ||
976 | */ | ||
977 | unsigned long *enabled_flags; | ||
978 | |||
974 | atomic_t usage_count; | 979 | atomic_t usage_count; |
975 | int driver_is_dying; | ||
976 | 980 | ||
977 | atomic_t nonstall_ops; | 981 | atomic_t nonstall_ops; |
978 | struct work_struct nonstall_fn_work; | 982 | struct work_struct nonstall_fn_work; |
979 | struct workqueue_struct *nonstall_work_queue; | 983 | struct workqueue_struct *nonstall_work_queue; |
980 | 984 | ||
981 | bool is_fmodel; | ||
982 | |||
983 | struct kref refcount; | 985 | struct kref refcount; |
984 | 986 | ||
985 | struct resource *reg_mem; | 987 | struct resource *reg_mem; |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c index 32c95e2f..b0a90fc8 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <nvgpu/kmem.h> | 23 | #include <nvgpu/kmem.h> |
24 | #include <nvgpu/log.h> | 24 | #include <nvgpu/log.h> |
25 | #include <nvgpu/firmware.h> | 25 | #include <nvgpu/firmware.h> |
26 | #include <nvgpu/enabled.h> | ||
26 | 27 | ||
27 | #include "gk20a.h" | 28 | #include "gk20a.h" |
28 | #include "gr_ctx_gk20a.h" | 29 | #include "gr_ctx_gk20a.h" |
@@ -442,7 +443,7 @@ done: | |||
442 | 443 | ||
443 | int gr_gk20a_init_ctx_vars(struct gk20a *g, struct gr_gk20a *gr) | 444 | int gr_gk20a_init_ctx_vars(struct gk20a *g, struct gr_gk20a *gr) |
444 | { | 445 | { |
445 | if (g->is_fmodel) | 446 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
446 | return gr_gk20a_init_ctx_vars_sim(g, gr); | 447 | return gr_gk20a_init_ctx_vars_sim(g, gr); |
447 | else | 448 | else |
448 | return gr_gk20a_init_ctx_vars_fw(g, gr); | 449 | return gr_gk20a_init_ctx_vars_fw(g, gr); |
diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 2b5d809f..c12f49ac 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <nvgpu/sort.h> | 29 | #include <nvgpu/sort.h> |
30 | #include <nvgpu/bug.h> | 30 | #include <nvgpu/bug.h> |
31 | #include <nvgpu/firmware.h> | 31 | #include <nvgpu/firmware.h> |
32 | #include <nvgpu/enabled.h> | ||
32 | 33 | ||
33 | #include "gk20a.h" | 34 | #include "gk20a.h" |
34 | #include "kind_gk20a.h" | 35 | #include "kind_gk20a.h" |
@@ -386,7 +387,7 @@ int gr_gk20a_wait_fe_idle(struct gk20a *g, unsigned long duration_ms, | |||
386 | u32 delay = expect_delay; | 387 | u32 delay = expect_delay; |
387 | struct nvgpu_timeout timeout; | 388 | struct nvgpu_timeout timeout; |
388 | 389 | ||
389 | if (g->is_fmodel) | 390 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
390 | return 0; | 391 | return 0; |
391 | 392 | ||
392 | gk20a_dbg_fn(""); | 393 | gk20a_dbg_fn(""); |
@@ -1597,7 +1598,7 @@ static int gr_gk20a_init_golden_ctx_image(struct gk20a *g, | |||
1597 | if (gr->ctx_vars.golden_image_initialized) { | 1598 | if (gr->ctx_vars.golden_image_initialized) { |
1598 | goto clean_up; | 1599 | goto clean_up; |
1599 | } | 1600 | } |
1600 | if (!g->is_fmodel) { | 1601 | if (!nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) { |
1601 | struct nvgpu_timeout timeout; | 1602 | struct nvgpu_timeout timeout; |
1602 | 1603 | ||
1603 | nvgpu_timeout_init(g, &timeout, | 1604 | nvgpu_timeout_init(g, &timeout, |
@@ -1642,7 +1643,7 @@ static int gr_gk20a_init_golden_ctx_image(struct gk20a *g, | |||
1642 | gk20a_readl(g, gr_fecs_ctxsw_reset_ctl_r()); | 1643 | gk20a_readl(g, gr_fecs_ctxsw_reset_ctl_r()); |
1643 | nvgpu_udelay(10); | 1644 | nvgpu_udelay(10); |
1644 | 1645 | ||
1645 | if (!g->is_fmodel) { | 1646 | if (!nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) { |
1646 | struct nvgpu_timeout timeout; | 1647 | struct nvgpu_timeout timeout; |
1647 | 1648 | ||
1648 | nvgpu_timeout_init(g, &timeout, | 1649 | nvgpu_timeout_init(g, &timeout, |
@@ -2582,7 +2583,7 @@ int gr_gk20a_load_ctxsw_ucode(struct gk20a *g) | |||
2582 | 2583 | ||
2583 | gk20a_dbg_fn(""); | 2584 | gk20a_dbg_fn(""); |
2584 | 2585 | ||
2585 | if (g->is_fmodel) { | 2586 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) { |
2586 | gk20a_writel(g, gr_fecs_ctxsw_mailbox_r(7), | 2587 | gk20a_writel(g, gr_fecs_ctxsw_mailbox_r(7), |
2587 | gr_fecs_ctxsw_mailbox_value_f(0xc0de7777)); | 2588 | gr_fecs_ctxsw_mailbox_value_f(0xc0de7777)); |
2588 | gk20a_writel(g, gr_gpccs_ctxsw_mailbox_r(7), | 2589 | gk20a_writel(g, gr_gpccs_ctxsw_mailbox_r(7), |
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_common.c b/drivers/gpu/nvgpu/gk20a/ltc_common.c index 1958c11c..2b015fa0 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_common.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_common.c | |||
@@ -19,6 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <nvgpu/dma.h> | 21 | #include <nvgpu/dma.h> |
22 | #include <nvgpu/enabled.h> | ||
22 | 23 | ||
23 | #include "gk20a.h" | 24 | #include "gk20a.h" |
24 | #include "gr_gk20a.h" | 25 | #include "gr_gk20a.h" |
@@ -92,7 +93,7 @@ static void gk20a_ltc_init_cbc(struct gk20a *g, struct gr_gk20a *gr) | |||
92 | u64 compbit_store_iova; | 93 | u64 compbit_store_iova; |
93 | u64 compbit_base_post_divide64; | 94 | u64 compbit_base_post_divide64; |
94 | 95 | ||
95 | if (g->is_fmodel) | 96 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
96 | compbit_store_iova = gk20a_mem_phys(&gr->compbit_store.mem); | 97 | compbit_store_iova = gk20a_mem_phys(&gr->compbit_store.mem); |
97 | else | 98 | else |
98 | compbit_store_iova = g->ops.mm.get_iova_addr(g, | 99 | compbit_store_iova = g->ops.mm.get_iova_addr(g, |
diff --git a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c index 23576ce0..8867202f 100644 --- a/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ltc_gk20a.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <nvgpu/timers.h> | 20 | #include <nvgpu/timers.h> |
21 | #include <nvgpu/log.h> | 21 | #include <nvgpu/log.h> |
22 | #include <nvgpu/bug.h> | 22 | #include <nvgpu/bug.h> |
23 | #include <nvgpu/enabled.h> | ||
23 | 24 | ||
24 | #include "gk20a.h" | 25 | #include "gk20a.h" |
25 | #include "ltc_gk20a.h" | 26 | #include "ltc_gk20a.h" |
@@ -83,7 +84,7 @@ static int gk20a_ltc_init_comptags(struct gk20a *g, struct gr_gk20a *gr) | |||
83 | gk20a_dbg_info("max comptag lines : %d", | 84 | gk20a_dbg_info("max comptag lines : %d", |
84 | max_comptag_lines); | 85 | max_comptag_lines); |
85 | 86 | ||
86 | if (g->is_fmodel) | 87 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
87 | err = gk20a_ltc_alloc_phys_cbc(g, compbit_backing_size); | 88 | err = gk20a_ltc_alloc_phys_cbc(g, compbit_backing_size); |
88 | else | 89 | else |
89 | err = gk20a_ltc_alloc_virt_cbc(g, compbit_backing_size); | 90 | err = gk20a_ltc_alloc_virt_cbc(g, compbit_backing_size); |
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 17fa0c17..786a6693 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <nvgpu/log.h> | 39 | #include <nvgpu/log.h> |
40 | #include <nvgpu/bug.h> | 40 | #include <nvgpu/bug.h> |
41 | #include <nvgpu/log2.h> | 41 | #include <nvgpu/log2.h> |
42 | #include <nvgpu/enabled.h> | ||
42 | 43 | ||
43 | #include <nvgpu/linux/dma.h> | 44 | #include <nvgpu/linux/dma.h> |
44 | 45 | ||
@@ -824,7 +825,7 @@ void free_gmmu_pages(struct vm_gk20a *vm, | |||
824 | if (entry->woffset) /* fake shadow mem */ | 825 | if (entry->woffset) /* fake shadow mem */ |
825 | return; | 826 | return; |
826 | 827 | ||
827 | if (g->is_fmodel) { | 828 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) { |
828 | free_gmmu_phys_pages(vm, entry); | 829 | free_gmmu_phys_pages(vm, entry); |
829 | return; | 830 | return; |
830 | } | 831 | } |
@@ -836,7 +837,7 @@ int map_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) | |||
836 | { | 837 | { |
837 | gk20a_dbg_fn(""); | 838 | gk20a_dbg_fn(""); |
838 | 839 | ||
839 | if (g->is_fmodel) | 840 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
840 | return map_gmmu_phys_pages(entry); | 841 | return map_gmmu_phys_pages(entry); |
841 | 842 | ||
842 | if (IS_ENABLED(CONFIG_ARM64)) { | 843 | if (IS_ENABLED(CONFIG_ARM64)) { |
@@ -860,7 +861,7 @@ void unmap_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) | |||
860 | { | 861 | { |
861 | gk20a_dbg_fn(""); | 862 | gk20a_dbg_fn(""); |
862 | 863 | ||
863 | if (g->is_fmodel) { | 864 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) { |
864 | unmap_gmmu_phys_pages(entry); | 865 | unmap_gmmu_phys_pages(entry); |
865 | return; | 866 | return; |
866 | } | 867 | } |
diff --git a/drivers/gpu/nvgpu/gk20a/priv_ring_gk20a.c b/drivers/gpu/nvgpu/gk20a/priv_ring_gk20a.c index 2f837bfc..dbab6b4b 100644 --- a/drivers/gpu/nvgpu/gk20a/priv_ring_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/priv_ring_gk20a.c | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | #include <nvgpu/log.h> | 21 | #include <nvgpu/log.h> |
22 | #include <nvgpu/timers.h> | 22 | #include <nvgpu/timers.h> |
23 | #include <nvgpu/enabled.h> | ||
23 | 24 | ||
24 | #include <nvgpu/hw/gk20a/hw_mc_gk20a.h> | 25 | #include <nvgpu/hw/gk20a/hw_mc_gk20a.h> |
25 | #include <nvgpu/hw/gk20a/hw_pri_ringmaster_gk20a.h> | 26 | #include <nvgpu/hw/gk20a/hw_pri_ringmaster_gk20a.h> |
@@ -28,7 +29,7 @@ | |||
28 | 29 | ||
29 | void gk20a_enable_priv_ring(struct gk20a *g) | 30 | void gk20a_enable_priv_ring(struct gk20a *g) |
30 | { | 31 | { |
31 | if (g->is_fmodel) | 32 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
32 | return; | 33 | return; |
33 | 34 | ||
34 | if (g->ops.clock_gating.slcg_priring_load_gating_prod) | 35 | if (g->ops.clock_gating.slcg_priring_load_gating_prod) |
@@ -53,7 +54,7 @@ void gk20a_priv_ring_isr(struct gk20a *g) | |||
53 | u32 gpc; | 54 | u32 gpc; |
54 | u32 gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_GPC_STRIDE); | 55 | u32 gpc_stride = nvgpu_get_litter_value(g, GPU_LIT_GPC_STRIDE); |
55 | 56 | ||
56 | if (g->is_fmodel) | 57 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) |
57 | return; | 58 | return; |
58 | 59 | ||
59 | status0 = gk20a_readl(g, pri_ringmaster_intr_status0_r()); | 60 | status0 = gk20a_readl(g, pri_ringmaster_intr_status0_r()); |
diff --git a/drivers/gpu/nvgpu/gk20a/therm_gk20a.c b/drivers/gpu/nvgpu/gk20a/therm_gk20a.c index b700c735..00159fae 100644 --- a/drivers/gpu/nvgpu/gk20a/therm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/therm_gk20a.c | |||
@@ -16,6 +16,8 @@ | |||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <nvgpu/enabled.h> | ||
20 | |||
19 | #include "gk20a.h" | 21 | #include "gk20a.h" |
20 | 22 | ||
21 | #include <nvgpu/hw/gk20a/hw_gr_gk20a.h> | 23 | #include <nvgpu/hw/gk20a/hw_gr_gk20a.h> |
@@ -123,7 +125,7 @@ int gk20a_elcg_init_idle_filters(struct gk20a *g) | |||
123 | active_engine_id = f->active_engines_list[engine_id]; | 125 | active_engine_id = f->active_engines_list[engine_id]; |
124 | gate_ctrl = gk20a_readl(g, therm_gate_ctrl_r(active_engine_id)); | 126 | gate_ctrl = gk20a_readl(g, therm_gate_ctrl_r(active_engine_id)); |
125 | 127 | ||
126 | if (g->is_fmodel) { | 128 | if (nvgpu_is_enabled(g, NVGPU_IS_FMODEL)) { |
127 | gate_ctrl = set_field(gate_ctrl, | 129 | gate_ctrl = set_field(gate_ctrl, |
128 | therm_gate_ctrl_eng_delay_after_m(), | 130 | therm_gate_ctrl_eng_delay_after_m(), |
129 | therm_gate_ctrl_eng_delay_after_f(4)); | 131 | therm_gate_ctrl_eng_delay_after_f(4)); |