diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-06-18 07:22:44 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:17 -0400 |
commit | d46c8e40035f65194baceeb4210a395c8087940a (patch) | |
tree | 123ff729b9747514d367f5b9604fc44a127380a7 /drivers/gpu/nvgpu | |
parent | ee66559a0b3b82b3dc9be684261ddd0954731ff5 (diff) |
gpu: nvgpu: Remove extra g field in pmu_gk20a
pmu_gk20a has a pointer to struct gk20a *. As pmu_gk20a is part of
gk20a, there's no need to have the circular dependency.
Bug 200006956
Change-Id: I6d5d10a93b2fba4a26a1e28b3c5206506dc6cc04
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/424767
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a.h | 5 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 70 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | 3 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/acr_gm20b.c | 2 |
4 files changed, 41 insertions, 39 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 60b9b80e..127cb85c 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h | |||
@@ -522,6 +522,11 @@ static inline struct gk20a *gk20a_from_as(struct gk20a_as *as) | |||
522 | { | 522 | { |
523 | return container_of(as, struct gk20a, as); | 523 | return container_of(as, struct gk20a, as); |
524 | } | 524 | } |
525 | static inline struct gk20a *gk20a_from_pmu(struct pmu_gk20a *pmu) | ||
526 | { | ||
527 | return container_of(pmu, struct gk20a, pmu); | ||
528 | } | ||
529 | |||
525 | static inline u32 u64_hi32(u64 n) | 530 | static inline u32 u64_hi32(u64 n) |
526 | { | 531 | { |
527 | return (u32)((n >> 32) & ~(u32)0); | 532 | return (u32)((n >> 32) & ~(u32)0); |
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index 9b1ecea1..e8acf503 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | |||
@@ -486,7 +486,7 @@ static void *get_pmu_sequence_out_alloc_ptr_v0(struct pmu_sequence *seq) | |||
486 | 486 | ||
487 | int gk20a_init_pmu(struct pmu_gk20a *pmu) | 487 | int gk20a_init_pmu(struct pmu_gk20a *pmu) |
488 | { | 488 | { |
489 | struct gk20a *g = pmu->g; | 489 | struct gk20a *g = gk20a_from_pmu(pmu); |
490 | switch (pmu->desc->app_version) { | 490 | switch (pmu->desc->app_version) { |
491 | case APP_VERSION_GM20B_1: | 491 | case APP_VERSION_GM20B_1: |
492 | case APP_VERSION_GM20B: | 492 | case APP_VERSION_GM20B: |
@@ -626,7 +626,7 @@ int gk20a_init_pmu(struct pmu_gk20a *pmu) | |||
626 | get_pmu_sequence_out_alloc_ptr_v0; | 626 | get_pmu_sequence_out_alloc_ptr_v0; |
627 | break; | 627 | break; |
628 | default: | 628 | default: |
629 | gk20a_err(dev_from_gk20a(pmu->g), | 629 | gk20a_err(dev_from_gk20a(gk20a_from_pmu(pmu)), |
630 | "PMU code version not supported version: %d\n", | 630 | "PMU code version not supported version: %d\n", |
631 | pmu->desc->app_version); | 631 | pmu->desc->app_version); |
632 | return -EINVAL; | 632 | return -EINVAL; |
@@ -638,7 +638,7 @@ int gk20a_init_pmu(struct pmu_gk20a *pmu) | |||
638 | void pmu_copy_from_dmem(struct pmu_gk20a *pmu, | 638 | void pmu_copy_from_dmem(struct pmu_gk20a *pmu, |
639 | u32 src, u8 *dst, u32 size, u8 port) | 639 | u32 src, u8 *dst, u32 size, u8 port) |
640 | { | 640 | { |
641 | struct gk20a *g = pmu->g; | 641 | struct gk20a *g = gk20a_from_pmu(pmu); |
642 | u32 i, words, bytes; | 642 | u32 i, words, bytes; |
643 | u32 data, addr_mask; | 643 | u32 data, addr_mask; |
644 | u32 *dst_u32 = (u32*)dst; | 644 | u32 *dst_u32 = (u32*)dst; |
@@ -684,7 +684,7 @@ void pmu_copy_from_dmem(struct pmu_gk20a *pmu, | |||
684 | void pmu_copy_to_dmem(struct pmu_gk20a *pmu, | 684 | void pmu_copy_to_dmem(struct pmu_gk20a *pmu, |
685 | u32 dst, u8 *src, u32 size, u8 port) | 685 | u32 dst, u8 *src, u32 size, u8 port) |
686 | { | 686 | { |
687 | struct gk20a *g = pmu->g; | 687 | struct gk20a *g = gk20a_from_pmu(pmu); |
688 | u32 i, words, bytes; | 688 | u32 i, words, bytes; |
689 | u32 data, addr_mask; | 689 | u32 data, addr_mask; |
690 | u32 *src_u32 = (u32*)src; | 690 | u32 *src_u32 = (u32*)src; |
@@ -737,7 +737,7 @@ void pmu_copy_to_dmem(struct pmu_gk20a *pmu, | |||
737 | 737 | ||
738 | static int pmu_idle(struct pmu_gk20a *pmu) | 738 | static int pmu_idle(struct pmu_gk20a *pmu) |
739 | { | 739 | { |
740 | struct gk20a *g = pmu->g; | 740 | struct gk20a *g = gk20a_from_pmu(pmu); |
741 | unsigned long end_jiffies = jiffies + | 741 | unsigned long end_jiffies = jiffies + |
742 | msecs_to_jiffies(2000); | 742 | msecs_to_jiffies(2000); |
743 | u32 idle_stat; | 743 | u32 idle_stat; |
@@ -766,7 +766,7 @@ static int pmu_idle(struct pmu_gk20a *pmu) | |||
766 | 766 | ||
767 | static void pmu_enable_irq(struct pmu_gk20a *pmu, bool enable) | 767 | static void pmu_enable_irq(struct pmu_gk20a *pmu, bool enable) |
768 | { | 768 | { |
769 | struct gk20a *g = pmu->g; | 769 | struct gk20a *g = gk20a_from_pmu(pmu); |
770 | 770 | ||
771 | gk20a_dbg_fn(""); | 771 | gk20a_dbg_fn(""); |
772 | 772 | ||
@@ -831,7 +831,7 @@ static void pmu_enable_irq(struct pmu_gk20a *pmu, bool enable) | |||
831 | 831 | ||
832 | static int pmu_enable_hw(struct pmu_gk20a *pmu, bool enable) | 832 | static int pmu_enable_hw(struct pmu_gk20a *pmu, bool enable) |
833 | { | 833 | { |
834 | struct gk20a *g = pmu->g; | 834 | struct gk20a *g = gk20a_from_pmu(pmu); |
835 | 835 | ||
836 | gk20a_dbg_fn(""); | 836 | gk20a_dbg_fn(""); |
837 | 837 | ||
@@ -863,7 +863,7 @@ static int pmu_enable_hw(struct pmu_gk20a *pmu, bool enable) | |||
863 | 863 | ||
864 | static int pmu_enable(struct pmu_gk20a *pmu, bool enable) | 864 | static int pmu_enable(struct pmu_gk20a *pmu, bool enable) |
865 | { | 865 | { |
866 | struct gk20a *g = pmu->g; | 866 | struct gk20a *g = gk20a_from_pmu(pmu); |
867 | u32 pmc_enable; | 867 | u32 pmc_enable; |
868 | int err; | 868 | int err; |
869 | 869 | ||
@@ -922,7 +922,7 @@ int pmu_reset(struct pmu_gk20a *pmu) | |||
922 | 922 | ||
923 | static int pmu_bootstrap(struct pmu_gk20a *pmu) | 923 | static int pmu_bootstrap(struct pmu_gk20a *pmu) |
924 | { | 924 | { |
925 | struct gk20a *g = pmu->g; | 925 | struct gk20a *g = gk20a_from_pmu(pmu); |
926 | struct gk20a_platform *platform = platform_get_drvdata(g->dev); | 926 | struct gk20a_platform *platform = platform_get_drvdata(g->dev); |
927 | struct mm_gk20a *mm = &g->mm; | 927 | struct mm_gk20a *mm = &g->mm; |
928 | struct pmu_ucode_desc *desc = pmu->desc; | 928 | struct pmu_ucode_desc *desc = pmu->desc; |
@@ -1023,7 +1023,7 @@ void pmu_seq_init(struct pmu_gk20a *pmu) | |||
1023 | static int pmu_seq_acquire(struct pmu_gk20a *pmu, | 1023 | static int pmu_seq_acquire(struct pmu_gk20a *pmu, |
1024 | struct pmu_sequence **pseq) | 1024 | struct pmu_sequence **pseq) |
1025 | { | 1025 | { |
1026 | struct gk20a *g = pmu->g; | 1026 | struct gk20a *g = gk20a_from_pmu(pmu); |
1027 | struct pmu_sequence *seq; | 1027 | struct pmu_sequence *seq; |
1028 | u32 index; | 1028 | u32 index; |
1029 | 1029 | ||
@@ -1049,7 +1049,7 @@ static int pmu_seq_acquire(struct pmu_gk20a *pmu, | |||
1049 | static void pmu_seq_release(struct pmu_gk20a *pmu, | 1049 | static void pmu_seq_release(struct pmu_gk20a *pmu, |
1050 | struct pmu_sequence *seq) | 1050 | struct pmu_sequence *seq) |
1051 | { | 1051 | { |
1052 | struct gk20a *g = pmu->g; | 1052 | struct gk20a *g = gk20a_from_pmu(pmu); |
1053 | seq->state = PMU_SEQ_STATE_FREE; | 1053 | seq->state = PMU_SEQ_STATE_FREE; |
1054 | seq->desc = PMU_INVALID_SEQ_DESC; | 1054 | seq->desc = PMU_INVALID_SEQ_DESC; |
1055 | seq->callback = NULL; | 1055 | seq->callback = NULL; |
@@ -1067,7 +1067,7 @@ static void pmu_seq_release(struct pmu_gk20a *pmu, | |||
1067 | static int pmu_queue_init(struct pmu_gk20a *pmu, | 1067 | static int pmu_queue_init(struct pmu_gk20a *pmu, |
1068 | u32 id, union pmu_init_msg_pmu *init) | 1068 | u32 id, union pmu_init_msg_pmu *init) |
1069 | { | 1069 | { |
1070 | struct gk20a *g = pmu->g; | 1070 | struct gk20a *g = gk20a_from_pmu(pmu); |
1071 | struct pmu_queue *queue = &pmu->queue[id]; | 1071 | struct pmu_queue *queue = &pmu->queue[id]; |
1072 | queue->id = id; | 1072 | queue->id = id; |
1073 | g->ops.pmu_ver.get_pmu_init_msg_pmu_queue_params(queue, id, init); | 1073 | g->ops.pmu_ver.get_pmu_init_msg_pmu_queue_params(queue, id, init); |
@@ -1084,7 +1084,7 @@ static int pmu_queue_init(struct pmu_gk20a *pmu, | |||
1084 | static int pmu_queue_head(struct pmu_gk20a *pmu, struct pmu_queue *queue, | 1084 | static int pmu_queue_head(struct pmu_gk20a *pmu, struct pmu_queue *queue, |
1085 | u32 *head, bool set) | 1085 | u32 *head, bool set) |
1086 | { | 1086 | { |
1087 | struct gk20a *g = pmu->g; | 1087 | struct gk20a *g = gk20a_from_pmu(pmu); |
1088 | 1088 | ||
1089 | BUG_ON(!head); | 1089 | BUG_ON(!head); |
1090 | 1090 | ||
@@ -1117,7 +1117,7 @@ static int pmu_queue_head(struct pmu_gk20a *pmu, struct pmu_queue *queue, | |||
1117 | static int pmu_queue_tail(struct pmu_gk20a *pmu, struct pmu_queue *queue, | 1117 | static int pmu_queue_tail(struct pmu_gk20a *pmu, struct pmu_queue *queue, |
1118 | u32 *tail, bool set) | 1118 | u32 *tail, bool set) |
1119 | { | 1119 | { |
1120 | struct gk20a *g = pmu->g; | 1120 | struct gk20a *g = gk20a_from_pmu(pmu); |
1121 | 1121 | ||
1122 | BUG_ON(!tail); | 1122 | BUG_ON(!tail); |
1123 | 1123 | ||
@@ -1161,7 +1161,7 @@ static inline void pmu_queue_write(struct pmu_gk20a *pmu, | |||
1161 | 1161 | ||
1162 | int pmu_mutex_acquire(struct pmu_gk20a *pmu, u32 id, u32 *token) | 1162 | int pmu_mutex_acquire(struct pmu_gk20a *pmu, u32 id, u32 *token) |
1163 | { | 1163 | { |
1164 | struct gk20a *g = pmu->g; | 1164 | struct gk20a *g = gk20a_from_pmu(pmu); |
1165 | struct pmu_mutex *mutex; | 1165 | struct pmu_mutex *mutex; |
1166 | u32 data, owner, max_retry; | 1166 | u32 data, owner, max_retry; |
1167 | 1167 | ||
@@ -1230,7 +1230,7 @@ int pmu_mutex_acquire(struct pmu_gk20a *pmu, u32 id, u32 *token) | |||
1230 | 1230 | ||
1231 | int pmu_mutex_release(struct pmu_gk20a *pmu, u32 id, u32 *token) | 1231 | int pmu_mutex_release(struct pmu_gk20a *pmu, u32 id, u32 *token) |
1232 | { | 1232 | { |
1233 | struct gk20a *g = pmu->g; | 1233 | struct gk20a *g = gk20a_from_pmu(pmu); |
1234 | struct pmu_mutex *mutex; | 1234 | struct pmu_mutex *mutex; |
1235 | u32 owner, data; | 1235 | u32 owner, data; |
1236 | 1236 | ||
@@ -1355,7 +1355,7 @@ static int pmu_queue_push(struct pmu_gk20a *pmu, | |||
1355 | gk20a_dbg_fn(""); | 1355 | gk20a_dbg_fn(""); |
1356 | 1356 | ||
1357 | if (!queue->opened && queue->oflag == OFLAG_WRITE){ | 1357 | if (!queue->opened && queue->oflag == OFLAG_WRITE){ |
1358 | gk20a_err(dev_from_gk20a(pmu->g), | 1358 | gk20a_err(dev_from_gk20a(gk20a_from_pmu(pmu)), |
1359 | "queue not opened for write"); | 1359 | "queue not opened for write"); |
1360 | return -EINVAL; | 1360 | return -EINVAL; |
1361 | } | 1361 | } |
@@ -1374,7 +1374,7 @@ static int pmu_queue_pop(struct pmu_gk20a *pmu, | |||
1374 | *bytes_read = 0; | 1374 | *bytes_read = 0; |
1375 | 1375 | ||
1376 | if (!queue->opened && queue->oflag == OFLAG_READ){ | 1376 | if (!queue->opened && queue->oflag == OFLAG_READ){ |
1377 | gk20a_err(dev_from_gk20a(pmu->g), | 1377 | gk20a_err(dev_from_gk20a(gk20a_from_pmu(pmu)), |
1378 | "queue not opened for read"); | 1378 | "queue not opened for read"); |
1379 | return -EINVAL; | 1379 | return -EINVAL; |
1380 | } | 1380 | } |
@@ -1391,7 +1391,7 @@ static int pmu_queue_pop(struct pmu_gk20a *pmu, | |||
1391 | used = queue->offset + queue->size - tail; | 1391 | used = queue->offset + queue->size - tail; |
1392 | 1392 | ||
1393 | if (size > used) { | 1393 | if (size > used) { |
1394 | gk20a_warn(dev_from_gk20a(pmu->g), | 1394 | gk20a_warn(dev_from_gk20a(gk20a_from_pmu(pmu)), |
1395 | "queue size smaller than request read"); | 1395 | "queue size smaller than request read"); |
1396 | size = used; | 1396 | size = used; |
1397 | } | 1397 | } |
@@ -1410,7 +1410,7 @@ static void pmu_queue_rewind(struct pmu_gk20a *pmu, | |||
1410 | gk20a_dbg_fn(""); | 1410 | gk20a_dbg_fn(""); |
1411 | 1411 | ||
1412 | if (!queue->opened) { | 1412 | if (!queue->opened) { |
1413 | gk20a_err(dev_from_gk20a(pmu->g), | 1413 | gk20a_err(dev_from_gk20a(gk20a_from_pmu(pmu)), |
1414 | "queue not opened"); | 1414 | "queue not opened"); |
1415 | return; | 1415 | return; |
1416 | } | 1416 | } |
@@ -1462,7 +1462,7 @@ static int pmu_queue_open_write(struct pmu_gk20a *pmu, | |||
1462 | BUG(); | 1462 | BUG(); |
1463 | 1463 | ||
1464 | if (!pmu_queue_has_room(pmu, queue, size, &rewind)) { | 1464 | if (!pmu_queue_has_room(pmu, queue, size, &rewind)) { |
1465 | gk20a_err(dev_from_gk20a(pmu->g), "queue full"); | 1465 | gk20a_err(dev_from_gk20a(gk20a_from_pmu(pmu)), "queue full"); |
1466 | return -EAGAIN; | 1466 | return -EAGAIN; |
1467 | } | 1467 | } |
1468 | 1468 | ||
@@ -1795,7 +1795,7 @@ static void pmu_setup_hw_enable_elpg(struct gk20a *g); | |||
1795 | void pmu_setup_hw(struct work_struct *work) | 1795 | void pmu_setup_hw(struct work_struct *work) |
1796 | { | 1796 | { |
1797 | struct pmu_gk20a *pmu = container_of(work, struct pmu_gk20a, pg_init); | 1797 | struct pmu_gk20a *pmu = container_of(work, struct pmu_gk20a, pg_init); |
1798 | struct gk20a *g = pmu->g; | 1798 | struct gk20a *g = gk20a_from_pmu(pmu); |
1799 | 1799 | ||
1800 | switch (pmu->pmu_state) { | 1800 | switch (pmu->pmu_state) { |
1801 | case PMU_STATE_ELPG_BOOTED: | 1801 | case PMU_STATE_ELPG_BOOTED: |
@@ -1991,8 +1991,6 @@ int gk20a_init_pmu_support(struct gk20a *g) | |||
1991 | if (pmu->initialized) | 1991 | if (pmu->initialized) |
1992 | return 0; | 1992 | return 0; |
1993 | 1993 | ||
1994 | pmu->g = g; | ||
1995 | |||
1996 | err = gk20a_init_pmu_reset_enable_hw(g); | 1994 | err = gk20a_init_pmu_reset_enable_hw(g); |
1997 | if (err) | 1995 | if (err) |
1998 | return err; | 1996 | return err; |
@@ -2071,7 +2069,7 @@ static void pmu_handle_pg_stat_msg(struct gk20a *g, struct pmu_msg *msg, | |||
2071 | 2069 | ||
2072 | static int pmu_init_powergating(struct pmu_gk20a *pmu) | 2070 | static int pmu_init_powergating(struct pmu_gk20a *pmu) |
2073 | { | 2071 | { |
2074 | struct gk20a *g = pmu->g; | 2072 | struct gk20a *g = gk20a_from_pmu(pmu); |
2075 | struct pmu_cmd cmd; | 2073 | struct pmu_cmd cmd; |
2076 | u32 seq; | 2074 | u32 seq; |
2077 | 2075 | ||
@@ -2141,7 +2139,7 @@ static int pmu_init_powergating(struct pmu_gk20a *pmu) | |||
2141 | 2139 | ||
2142 | static int pmu_init_perfmon(struct pmu_gk20a *pmu) | 2140 | static int pmu_init_perfmon(struct pmu_gk20a *pmu) |
2143 | { | 2141 | { |
2144 | struct gk20a *g = pmu->g; | 2142 | struct gk20a *g = gk20a_from_pmu(pmu); |
2145 | struct pmu_v *pv = &g->ops.pmu_ver; | 2143 | struct pmu_v *pv = &g->ops.pmu_ver; |
2146 | struct pmu_cmd cmd; | 2144 | struct pmu_cmd cmd; |
2147 | struct pmu_payload payload; | 2145 | struct pmu_payload payload; |
@@ -2244,7 +2242,7 @@ static int pmu_init_perfmon(struct pmu_gk20a *pmu) | |||
2244 | static int pmu_process_init_msg(struct pmu_gk20a *pmu, | 2242 | static int pmu_process_init_msg(struct pmu_gk20a *pmu, |
2245 | struct pmu_msg *msg) | 2243 | struct pmu_msg *msg) |
2246 | { | 2244 | { |
2247 | struct gk20a *g = pmu->g; | 2245 | struct gk20a *g = gk20a_from_pmu(pmu); |
2248 | struct pmu_v *pv = &g->ops.pmu_ver; | 2246 | struct pmu_v *pv = &g->ops.pmu_ver; |
2249 | union pmu_init_msg_pmu *init; | 2247 | union pmu_init_msg_pmu *init; |
2250 | struct pmu_sha1_gid_data gid_data; | 2248 | struct pmu_sha1_gid_data gid_data; |
@@ -2313,7 +2311,7 @@ static int pmu_process_init_msg(struct pmu_gk20a *pmu, | |||
2313 | static bool pmu_read_message(struct pmu_gk20a *pmu, struct pmu_queue *queue, | 2311 | static bool pmu_read_message(struct pmu_gk20a *pmu, struct pmu_queue *queue, |
2314 | struct pmu_msg *msg, int *status) | 2312 | struct pmu_msg *msg, int *status) |
2315 | { | 2313 | { |
2316 | struct gk20a *g = pmu->g; | 2314 | struct gk20a *g = gk20a_from_pmu(pmu); |
2317 | u32 read_size, bytes_read; | 2315 | u32 read_size, bytes_read; |
2318 | int err; | 2316 | int err; |
2319 | 2317 | ||
@@ -2393,7 +2391,7 @@ clean_up: | |||
2393 | static int pmu_response_handle(struct pmu_gk20a *pmu, | 2391 | static int pmu_response_handle(struct pmu_gk20a *pmu, |
2394 | struct pmu_msg *msg) | 2392 | struct pmu_msg *msg) |
2395 | { | 2393 | { |
2396 | struct gk20a *g = pmu->g; | 2394 | struct gk20a *g = gk20a_from_pmu(pmu); |
2397 | struct pmu_sequence *seq; | 2395 | struct pmu_sequence *seq; |
2398 | struct pmu_v *pv = &g->ops.pmu_ver; | 2396 | struct pmu_v *pv = &g->ops.pmu_ver; |
2399 | int ret = 0; | 2397 | int ret = 0; |
@@ -2500,7 +2498,7 @@ void gk20a_pmu_save_zbc(struct gk20a *g, u32 entries) | |||
2500 | 2498 | ||
2501 | static int pmu_perfmon_start_sampling(struct pmu_gk20a *pmu) | 2499 | static int pmu_perfmon_start_sampling(struct pmu_gk20a *pmu) |
2502 | { | 2500 | { |
2503 | struct gk20a *g = pmu->g; | 2501 | struct gk20a *g = gk20a_from_pmu(pmu); |
2504 | struct pmu_v *pv = &g->ops.pmu_ver; | 2502 | struct pmu_v *pv = &g->ops.pmu_ver; |
2505 | struct pmu_cmd cmd; | 2503 | struct pmu_cmd cmd; |
2506 | struct pmu_payload payload; | 2504 | struct pmu_payload payload; |
@@ -2544,7 +2542,7 @@ static int pmu_perfmon_start_sampling(struct pmu_gk20a *pmu) | |||
2544 | 2542 | ||
2545 | static int pmu_perfmon_stop_sampling(struct pmu_gk20a *pmu) | 2543 | static int pmu_perfmon_stop_sampling(struct pmu_gk20a *pmu) |
2546 | { | 2544 | { |
2547 | struct gk20a *g = pmu->g; | 2545 | struct gk20a *g = gk20a_from_pmu(pmu); |
2548 | struct pmu_cmd cmd; | 2546 | struct pmu_cmd cmd; |
2549 | u32 seq; | 2547 | u32 seq; |
2550 | 2548 | ||
@@ -2646,7 +2644,7 @@ static int pmu_process_message(struct pmu_gk20a *pmu) | |||
2646 | static int pmu_wait_message_cond(struct pmu_gk20a *pmu, u32 timeout, | 2644 | static int pmu_wait_message_cond(struct pmu_gk20a *pmu, u32 timeout, |
2647 | u32 *var, u32 val) | 2645 | u32 *var, u32 val) |
2648 | { | 2646 | { |
2649 | struct gk20a *g = pmu->g; | 2647 | struct gk20a *g = gk20a_from_pmu(pmu); |
2650 | unsigned long end_jiffies = jiffies + msecs_to_jiffies(timeout); | 2648 | unsigned long end_jiffies = jiffies + msecs_to_jiffies(timeout); |
2651 | unsigned long delay = GR_IDLE_CHECK_DEFAULT; | 2649 | unsigned long delay = GR_IDLE_CHECK_DEFAULT; |
2652 | 2650 | ||
@@ -2667,7 +2665,7 @@ static int pmu_wait_message_cond(struct pmu_gk20a *pmu, u32 timeout, | |||
2667 | 2665 | ||
2668 | static void pmu_dump_elpg_stats(struct pmu_gk20a *pmu) | 2666 | static void pmu_dump_elpg_stats(struct pmu_gk20a *pmu) |
2669 | { | 2667 | { |
2670 | struct gk20a *g = pmu->g; | 2668 | struct gk20a *g = gk20a_from_pmu(pmu); |
2671 | struct pmu_pg_stats stats; | 2669 | struct pmu_pg_stats stats; |
2672 | 2670 | ||
2673 | pmu_copy_from_dmem(pmu, pmu->stat_dmem_offset, | 2671 | pmu_copy_from_dmem(pmu, pmu->stat_dmem_offset, |
@@ -2739,7 +2737,7 @@ static void pmu_dump_elpg_stats(struct pmu_gk20a *pmu) | |||
2739 | 2737 | ||
2740 | void pmu_dump_falcon_stats(struct pmu_gk20a *pmu) | 2738 | void pmu_dump_falcon_stats(struct pmu_gk20a *pmu) |
2741 | { | 2739 | { |
2742 | struct gk20a *g = pmu->g; | 2740 | struct gk20a *g = gk20a_from_pmu(pmu); |
2743 | int i; | 2741 | int i; |
2744 | 2742 | ||
2745 | gk20a_err(dev_from_gk20a(g), "pwr_falcon_os_r : %d", | 2743 | gk20a_err(dev_from_gk20a(g), "pwr_falcon_os_r : %d", |
@@ -2918,7 +2916,7 @@ static bool pmu_validate_cmd(struct pmu_gk20a *pmu, struct pmu_cmd *cmd, | |||
2918 | struct pmu_msg *msg, struct pmu_payload *payload, | 2916 | struct pmu_msg *msg, struct pmu_payload *payload, |
2919 | u32 queue_id) | 2917 | u32 queue_id) |
2920 | { | 2918 | { |
2921 | struct gk20a *g = pmu->g; | 2919 | struct gk20a *g = gk20a_from_pmu(pmu); |
2922 | struct pmu_queue *queue; | 2920 | struct pmu_queue *queue; |
2923 | u32 in_size, out_size; | 2921 | u32 in_size, out_size; |
2924 | 2922 | ||
@@ -2987,7 +2985,7 @@ invalid_cmd: | |||
2987 | static int pmu_write_cmd(struct pmu_gk20a *pmu, struct pmu_cmd *cmd, | 2985 | static int pmu_write_cmd(struct pmu_gk20a *pmu, struct pmu_cmd *cmd, |
2988 | u32 queue_id, unsigned long timeout) | 2986 | u32 queue_id, unsigned long timeout) |
2989 | { | 2987 | { |
2990 | struct gk20a *g = pmu->g; | 2988 | struct gk20a *g = gk20a_from_pmu(pmu); |
2991 | struct pmu_queue *queue; | 2989 | struct pmu_queue *queue; |
2992 | unsigned long end_jiffies = jiffies + | 2990 | unsigned long end_jiffies = jiffies + |
2993 | msecs_to_jiffies(timeout); | 2991 | msecs_to_jiffies(timeout); |
diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h index e9567e14..1789f5ea 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.h | |||
@@ -997,9 +997,8 @@ struct pmu_pg_stats { | |||
997 | #define PMU_STATE_LOADING_ZBC 4 /* Loading ZBC buf */ | 997 | #define PMU_STATE_LOADING_ZBC 4 /* Loading ZBC buf */ |
998 | #define PMU_STATE_STARTED 5 /* Fully unitialized */ | 998 | #define PMU_STATE_STARTED 5 /* Fully unitialized */ |
999 | 999 | ||
1000 | struct pmu_gk20a { | ||
1001 | 1000 | ||
1002 | struct gk20a *g; | 1001 | struct pmu_gk20a { |
1003 | 1002 | ||
1004 | struct pmu_ucode_desc *desc; | 1003 | struct pmu_ucode_desc *desc; |
1005 | struct pmu_mem_desc ucode; | 1004 | struct pmu_mem_desc ucode; |
diff --git a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c index df1bc429..1a136cdb 100644 --- a/drivers/gpu/nvgpu/gm20b/acr_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/acr_gm20b.c | |||
@@ -1082,7 +1082,7 @@ acr_ucode_patch_sig(struct gk20a *g, | |||
1082 | static int bl_bootstrap(struct pmu_gk20a *pmu, | 1082 | static int bl_bootstrap(struct pmu_gk20a *pmu, |
1083 | struct flcn_bl_dmem_desc *pbl_desc, u32 bl_sz) | 1083 | struct flcn_bl_dmem_desc *pbl_desc, u32 bl_sz) |
1084 | { | 1084 | { |
1085 | struct gk20a *g = pmu->g; | 1085 | struct gk20a *g = gk20a_from_pmu(pmu); |
1086 | struct mm_gk20a *mm = &g->mm; | 1086 | struct mm_gk20a *mm = &g->mm; |
1087 | struct pmu_ucode_desc *desc = pmu->desc; | 1087 | struct pmu_ucode_desc *desc = pmu->desc; |
1088 | u32 imem_dst_blk = 0; | 1088 | u32 imem_dst_blk = 0; |