From cf33b6c26bd054f5fe09be78ed754049821a8737 Mon Sep 17 00:00:00 2001 From: Seema Khowala Date: Fri, 2 Jun 2017 09:06:42 -0700 Subject: gpu: nvgpu: gv11b: generated mmu fault fields/masks Generated h/w header for mmu fault handling JIRA GPUT19X-7 JIRA GPUT19X-12 Change-Id: I857ab6b67f6d9ac9a2c2ee982496dd0603bd010e Signed-off-by: Seema Khowala Reviewed-on: https://git-master/r/1494842 Reviewed-by: Vijayakumar Subbu GVS: Gerrit_Virtual_Submit --- .../gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h | 268 ++++++++------------- .../nvgpu/include/nvgpu/hw/gv11b/hw_gmmu_gv11b.h | 8 + .../nvgpu/include/nvgpu/hw/gv11b/hw_top_gv11b.h | 10 +- 3 files changed, 113 insertions(+), 173 deletions(-) (limited to 'drivers/gpu') diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h index e261ef14..fd5427ec 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_fb_gv11b.h @@ -174,6 +174,10 @@ static inline u32 fb_mmu_invalidate_replay_start_ack_all_f(void) { return 0x10; } +static inline u32 fb_mmu_invalidate_replay_cancel_global_f(void) +{ + return 0x20; +} static inline u32 fb_mmu_invalidate_sys_membar_s(void) { return 1; @@ -742,65 +746,65 @@ static inline u32 fb_niso_intr_r(void) { return 0x00100a20; } -static inline u32 fb_niso_intr_hub_access_counter_notify_f(u32 v) +static inline u32 fb_niso_intr_hub_access_counter_notify_m(void) { - return (v & 0x1) << 0; + return 0x1 << 0; } static inline u32 fb_niso_intr_hub_access_counter_notify_pending_f(void) { return 0x1; } -static inline u32 fb_niso_intr_hub_access_counter_error_f(u32 v) +static inline u32 fb_niso_intr_hub_access_counter_error_m(void) { - return (v & 0x1) << 1; + return 0x1 << 1; } static inline u32 fb_niso_intr_hub_access_counter_error_pending_f(void) { return 0x2; } -static inline u32 fb_niso_intr_mmu_replayable_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_mmu_replayable_fault_notify_m(void) { - return (v & 0x1) << 27; + return 0x1 << 27; } static inline u32 fb_niso_intr_mmu_replayable_fault_notify_pending_f(void) { return 0x8000000; } -static inline u32 fb_niso_intr_mmu_replayable_fault_overflow_f(u32 v) +static inline u32 fb_niso_intr_mmu_replayable_fault_overflow_m(void) { - return (v & 0x1) << 28; + return 0x1 << 28; } static inline u32 fb_niso_intr_mmu_replayable_fault_overflow_pending_f(void) { return 0x10000000; } -static inline u32 fb_niso_intr_mmu_nonreplayable_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_mmu_nonreplayable_fault_notify_m(void) { - return (v & 0x1) << 29; + return 0x1 << 29; } static inline u32 fb_niso_intr_mmu_nonreplayable_fault_notify_pending_f(void) { return 0x20000000; } -static inline u32 fb_niso_intr_mmu_nonreplayable_fault_overflow_f(u32 v) +static inline u32 fb_niso_intr_mmu_nonreplayable_fault_overflow_m(void) { - return (v & 0x1) << 30; + return 0x1 << 30; } static inline u32 fb_niso_intr_mmu_nonreplayable_fault_overflow_pending_f(void) { return 0x40000000; } -static inline u32 fb_niso_intr_mmu_other_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_mmu_other_fault_notify_m(void) { - return (v & 0x1) << 31; + return 0x1 << 31; } static inline u32 fb_niso_intr_mmu_other_fault_notify_pending_f(void) { return 0x80000000; } -static inline u32 fb_niso_intr_mmu_ecc_uncorrected_error_notify_f(u32 v) +static inline u32 fb_niso_intr_mmu_ecc_uncorrected_error_notify_m(void) { - return (v & 0x1) << 26; + return 0x1 << 26; } static inline u32 fb_niso_intr_mmu_ecc_uncorrected_error_notify_pending_f(void) { @@ -886,65 +890,65 @@ static inline u32 fb_niso_intr_en_set__size_1_v(void) { return 0x00000002; } -static inline u32 fb_niso_intr_en_set_hub_access_counter_notify_f(u32 v) +static inline u32 fb_niso_intr_en_set_hub_access_counter_notify_m(void) { - return (v & 0x1) << 0; + return 0x1 << 0; } static inline u32 fb_niso_intr_en_set_hub_access_counter_notify_set_f(void) { return 0x1; } -static inline u32 fb_niso_intr_en_set_hub_access_counter_error_f(u32 v) +static inline u32 fb_niso_intr_en_set_hub_access_counter_error_m(void) { - return (v & 0x1) << 1; + return 0x1 << 1; } static inline u32 fb_niso_intr_en_set_hub_access_counter_error_set_f(void) { return 0x2; } -static inline u32 fb_niso_intr_en_set_mmu_replayable_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_en_set_mmu_replayable_fault_notify_m(void) { - return (v & 0x1) << 27; + return 0x1 << 27; } static inline u32 fb_niso_intr_en_set_mmu_replayable_fault_notify_set_f(void) { return 0x8000000; } -static inline u32 fb_niso_intr_en_set_mmu_replayable_fault_overflow_f(u32 v) +static inline u32 fb_niso_intr_en_set_mmu_replayable_fault_overflow_m(void) { - return (v & 0x1) << 28; + return 0x1 << 28; } static inline u32 fb_niso_intr_en_set_mmu_replayable_fault_overflow_set_f(void) { return 0x10000000; } -static inline u32 fb_niso_intr_en_set_mmu_nonreplayable_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_en_set_mmu_nonreplayable_fault_notify_m(void) { - return (v & 0x1) << 29; + return 0x1 << 29; } static inline u32 fb_niso_intr_en_set_mmu_nonreplayable_fault_notify_set_f(void) { return 0x20000000; } -static inline u32 fb_niso_intr_en_set_mmu_nonreplayable_fault_overflow_f(u32 v) +static inline u32 fb_niso_intr_en_set_mmu_nonreplayable_fault_overflow_m(void) { - return (v & 0x1) << 30; + return 0x1 << 30; } static inline u32 fb_niso_intr_en_set_mmu_nonreplayable_fault_overflow_set_f(void) { return 0x40000000; } -static inline u32 fb_niso_intr_en_set_mmu_other_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_en_set_mmu_other_fault_notify_m(void) { - return (v & 0x1) << 31; + return 0x1 << 31; } static inline u32 fb_niso_intr_en_set_mmu_other_fault_notify_set_f(void) { return 0x80000000; } -static inline u32 fb_niso_intr_en_set_mmu_ecc_uncorrected_error_notify_f(u32 v) +static inline u32 fb_niso_intr_en_set_mmu_ecc_uncorrected_error_notify_m(void) { - return (v & 0x1) << 26; + return 0x1 << 26; } static inline u32 fb_niso_intr_en_set_mmu_ecc_uncorrected_error_notify_set_f(void) { @@ -958,65 +962,65 @@ static inline u32 fb_niso_intr_en_clr__size_1_v(void) { return 0x00000002; } -static inline u32 fb_niso_intr_en_clr_hub_access_counter_notify_f(u32 v) +static inline u32 fb_niso_intr_en_clr_hub_access_counter_notify_m(void) { - return (v & 0x1) << 0; + return 0x1 << 0; } static inline u32 fb_niso_intr_en_clr_hub_access_counter_notify_set_f(void) { return 0x1; } -static inline u32 fb_niso_intr_en_clr_hub_access_counter_error_f(u32 v) +static inline u32 fb_niso_intr_en_clr_hub_access_counter_error_m(void) { - return (v & 0x1) << 1; + return 0x1 << 1; } static inline u32 fb_niso_intr_en_clr_hub_access_counter_error_set_f(void) { return 0x2; } -static inline u32 fb_niso_intr_en_clr_mmu_replayable_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_en_clr_mmu_replayable_fault_notify_m(void) { - return (v & 0x1) << 27; + return 0x1 << 27; } static inline u32 fb_niso_intr_en_clr_mmu_replayable_fault_notify_set_f(void) { return 0x8000000; } -static inline u32 fb_niso_intr_en_clr_mmu_replayable_fault_overflow_f(u32 v) +static inline u32 fb_niso_intr_en_clr_mmu_replayable_fault_overflow_m(void) { - return (v & 0x1) << 28; + return 0x1 << 28; } static inline u32 fb_niso_intr_en_clr_mmu_replayable_fault_overflow_set_f(void) { return 0x10000000; } -static inline u32 fb_niso_intr_en_clr_mmu_nonreplayable_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_en_clr_mmu_nonreplayable_fault_notify_m(void) { - return (v & 0x1) << 29; + return 0x1 << 29; } static inline u32 fb_niso_intr_en_clr_mmu_nonreplayable_fault_notify_set_f(void) { return 0x20000000; } -static inline u32 fb_niso_intr_en_clr_mmu_nonreplayable_fault_overflow_f(u32 v) +static inline u32 fb_niso_intr_en_clr_mmu_nonreplayable_fault_overflow_m(void) { - return (v & 0x1) << 30; + return 0x1 << 30; } static inline u32 fb_niso_intr_en_clr_mmu_nonreplayable_fault_overflow_set_f(void) { return 0x40000000; } -static inline u32 fb_niso_intr_en_clr_mmu_other_fault_notify_f(u32 v) +static inline u32 fb_niso_intr_en_clr_mmu_other_fault_notify_m(void) { - return (v & 0x1) << 31; + return 0x1 << 31; } static inline u32 fb_niso_intr_en_clr_mmu_other_fault_notify_set_f(void) { return 0x80000000; } -static inline u32 fb_niso_intr_en_clr_mmu_ecc_uncorrected_error_notify_f(u32 v) +static inline u32 fb_niso_intr_en_clr_mmu_ecc_uncorrected_error_notify_m(void) { - return (v & 0x1) << 26; + return 0x1 << 26; } static inline u32 fb_niso_intr_en_clr_mmu_ecc_uncorrected_error_notify_set_f(void) { @@ -1142,13 +1146,9 @@ static inline u32 fb_mmu_fault_buffer_get_getptr_corrupted_f(u32 v) { return (v & 0x1) << 30; } -static inline u32 fb_mmu_fault_buffer_get_getptr_corrupted_v(u32 r) +static inline u32 fb_mmu_fault_buffer_get_getptr_corrupted_m(void) { - return (r >> 30) & 0x1; -} -static inline u32 fb_mmu_fault_buffer_get_getptr_corrupted_yes_v(void) -{ - return 0x00000001; + return 0x1 << 30; } static inline u32 fb_mmu_fault_buffer_get_getptr_corrupted_clear_v(void) { @@ -1162,17 +1162,9 @@ static inline u32 fb_mmu_fault_buffer_get_overflow_f(u32 v) { return (v & 0x1) << 31; } -static inline u32 fb_mmu_fault_buffer_get_overflow_v(u32 r) +static inline u32 fb_mmu_fault_buffer_get_overflow_m(void) { - return (r >> 31) & 0x1; -} -static inline u32 fb_mmu_fault_buffer_get_overflow_yes_v(void) -{ - return 0x00000001; -} -static inline u32 fb_mmu_fault_buffer_get_overflow_yes_f(void) -{ - return 0x80000000; + return 0x1 << 31; } static inline u32 fb_mmu_fault_buffer_get_overflow_clear_v(void) { @@ -1290,6 +1282,10 @@ static inline u32 fb_mmu_fault_buffer_size_enable_f(u32 v) { return (v & 0x1) << 31; } +static inline u32 fb_mmu_fault_buffer_size_enable_m(void) +{ + return 0x1 << 31; +} static inline u32 fb_mmu_fault_buffer_size_enable_v(u32 r) { return (r >> 31) & 0x1; @@ -1430,13 +1426,9 @@ static inline u32 fb_mmu_fault_status_r(void) { return 0x00100e60; } -static inline u32 fb_mmu_fault_status_dropped_bar1_phys_f(u32 v) -{ - return (v & 0x1) << 0; -} -static inline u32 fb_mmu_fault_status_dropped_bar1_phys_v(u32 r) +static inline u32 fb_mmu_fault_status_dropped_bar1_phys_m(void) { - return (r >> 0) & 0x1; + return 0x1 << 0; } static inline u32 fb_mmu_fault_status_dropped_bar1_phys_set_v(void) { @@ -1454,13 +1446,9 @@ static inline u32 fb_mmu_fault_status_dropped_bar1_phys_clear_f(void) { return 0x1; } -static inline u32 fb_mmu_fault_status_dropped_bar1_virt_f(u32 v) -{ - return (v & 0x1) << 1; -} -static inline u32 fb_mmu_fault_status_dropped_bar1_virt_v(u32 r) +static inline u32 fb_mmu_fault_status_dropped_bar1_virt_m(void) { - return (r >> 1) & 0x1; + return 0x1 << 1; } static inline u32 fb_mmu_fault_status_dropped_bar1_virt_set_v(void) { @@ -1478,13 +1466,9 @@ static inline u32 fb_mmu_fault_status_dropped_bar1_virt_clear_f(void) { return 0x2; } -static inline u32 fb_mmu_fault_status_dropped_bar2_phys_f(u32 v) -{ - return (v & 0x1) << 2; -} -static inline u32 fb_mmu_fault_status_dropped_bar2_phys_v(u32 r) +static inline u32 fb_mmu_fault_status_dropped_bar2_phys_m(void) { - return (r >> 2) & 0x1; + return 0x1 << 2; } static inline u32 fb_mmu_fault_status_dropped_bar2_phys_set_v(void) { @@ -1502,13 +1486,9 @@ static inline u32 fb_mmu_fault_status_dropped_bar2_phys_clear_f(void) { return 0x4; } -static inline u32 fb_mmu_fault_status_dropped_bar2_virt_f(u32 v) +static inline u32 fb_mmu_fault_status_dropped_bar2_virt_m(void) { - return (v & 0x1) << 3; -} -static inline u32 fb_mmu_fault_status_dropped_bar2_virt_v(u32 r) -{ - return (r >> 3) & 0x1; + return 0x1 << 3; } static inline u32 fb_mmu_fault_status_dropped_bar2_virt_set_v(void) { @@ -1526,13 +1506,9 @@ static inline u32 fb_mmu_fault_status_dropped_bar2_virt_clear_f(void) { return 0x8; } -static inline u32 fb_mmu_fault_status_dropped_ifb_phys_f(u32 v) -{ - return (v & 0x1) << 4; -} -static inline u32 fb_mmu_fault_status_dropped_ifb_phys_v(u32 r) +static inline u32 fb_mmu_fault_status_dropped_ifb_phys_m(void) { - return (r >> 4) & 0x1; + return 0x1 << 4; } static inline u32 fb_mmu_fault_status_dropped_ifb_phys_set_v(void) { @@ -1550,13 +1526,9 @@ static inline u32 fb_mmu_fault_status_dropped_ifb_phys_clear_f(void) { return 0x10; } -static inline u32 fb_mmu_fault_status_dropped_ifb_virt_f(u32 v) +static inline u32 fb_mmu_fault_status_dropped_ifb_virt_m(void) { - return (v & 0x1) << 5; -} -static inline u32 fb_mmu_fault_status_dropped_ifb_virt_v(u32 r) -{ - return (r >> 5) & 0x1; + return 0x1 << 5; } static inline u32 fb_mmu_fault_status_dropped_ifb_virt_set_v(void) { @@ -1574,13 +1546,9 @@ static inline u32 fb_mmu_fault_status_dropped_ifb_virt_clear_f(void) { return 0x20; } -static inline u32 fb_mmu_fault_status_dropped_other_phys_f(u32 v) +static inline u32 fb_mmu_fault_status_dropped_other_phys_m(void) { - return (v & 0x1) << 6; -} -static inline u32 fb_mmu_fault_status_dropped_other_phys_v(u32 r) -{ - return (r >> 6) & 0x1; + return 0x1 << 6; } static inline u32 fb_mmu_fault_status_dropped_other_phys_set_v(void) { @@ -1598,13 +1566,9 @@ static inline u32 fb_mmu_fault_status_dropped_other_phys_clear_f(void) { return 0x40; } -static inline u32 fb_mmu_fault_status_dropped_other_virt_f(u32 v) +static inline u32 fb_mmu_fault_status_dropped_other_virt_m(void) { - return (v & 0x1) << 7; -} -static inline u32 fb_mmu_fault_status_dropped_other_virt_v(u32 r) -{ - return (r >> 7) & 0x1; + return 0x1 << 7; } static inline u32 fb_mmu_fault_status_dropped_other_virt_set_v(void) { @@ -1622,13 +1586,9 @@ static inline u32 fb_mmu_fault_status_dropped_other_virt_clear_f(void) { return 0x80; } -static inline u32 fb_mmu_fault_status_replayable_f(u32 v) +static inline u32 fb_mmu_fault_status_replayable_m(void) { - return (v & 0x1) << 8; -} -static inline u32 fb_mmu_fault_status_replayable_v(u32 r) -{ - return (r >> 8) & 0x1; + return 0x1 << 8; } static inline u32 fb_mmu_fault_status_replayable_set_v(void) { @@ -1642,13 +1602,9 @@ static inline u32 fb_mmu_fault_status_replayable_reset_f(void) { return 0x0; } -static inline u32 fb_mmu_fault_status_non_replayable_f(u32 v) -{ - return (v & 0x1) << 9; -} -static inline u32 fb_mmu_fault_status_non_replayable_v(u32 r) +static inline u32 fb_mmu_fault_status_non_replayable_m(void) { - return (r >> 9) & 0x1; + return 0x1 << 9; } static inline u32 fb_mmu_fault_status_non_replayable_set_v(void) { @@ -1662,13 +1618,9 @@ static inline u32 fb_mmu_fault_status_non_replayable_reset_f(void) { return 0x0; } -static inline u32 fb_mmu_fault_status_replayable_error_f(u32 v) +static inline u32 fb_mmu_fault_status_replayable_error_m(void) { - return (v & 0x1) << 10; -} -static inline u32 fb_mmu_fault_status_replayable_error_v(u32 r) -{ - return (r >> 10) & 0x1; + return 0x1 << 10; } static inline u32 fb_mmu_fault_status_replayable_error_set_v(void) { @@ -1682,13 +1634,9 @@ static inline u32 fb_mmu_fault_status_replayable_error_reset_f(void) { return 0x0; } -static inline u32 fb_mmu_fault_status_non_replayable_error_f(u32 v) -{ - return (v & 0x1) << 11; -} -static inline u32 fb_mmu_fault_status_non_replayable_error_v(u32 r) +static inline u32 fb_mmu_fault_status_non_replayable_error_m(void) { - return (r >> 11) & 0x1; + return 0x1 << 11; } static inline u32 fb_mmu_fault_status_non_replayable_error_set_v(void) { @@ -1702,13 +1650,9 @@ static inline u32 fb_mmu_fault_status_non_replayable_error_reset_f(void) { return 0x0; } -static inline u32 fb_mmu_fault_status_replayable_overflow_f(u32 v) -{ - return (v & 0x1) << 12; -} -static inline u32 fb_mmu_fault_status_replayable_overflow_v(u32 r) +static inline u32 fb_mmu_fault_status_replayable_overflow_m(void) { - return (r >> 12) & 0x1; + return 0x1 << 12; } static inline u32 fb_mmu_fault_status_replayable_overflow_set_v(void) { @@ -1722,13 +1666,9 @@ static inline u32 fb_mmu_fault_status_replayable_overflow_reset_f(void) { return 0x0; } -static inline u32 fb_mmu_fault_status_non_replayable_overflow_f(u32 v) +static inline u32 fb_mmu_fault_status_non_replayable_overflow_m(void) { - return (v & 0x1) << 13; -} -static inline u32 fb_mmu_fault_status_non_replayable_overflow_v(u32 r) -{ - return (r >> 13) & 0x1; + return 0x1 << 13; } static inline u32 fb_mmu_fault_status_non_replayable_overflow_set_v(void) { @@ -1742,13 +1682,9 @@ static inline u32 fb_mmu_fault_status_non_replayable_overflow_reset_f(void) { return 0x0; } -static inline u32 fb_mmu_fault_status_replayable_getptr_corrupted_f(u32 v) +static inline u32 fb_mmu_fault_status_replayable_getptr_corrupted_m(void) { - return (v & 0x1) << 14; -} -static inline u32 fb_mmu_fault_status_replayable_getptr_corrupted_v(u32 r) -{ - return (r >> 14) & 0x1; + return 0x1 << 14; } static inline u32 fb_mmu_fault_status_replayable_getptr_corrupted_set_v(void) { @@ -1758,13 +1694,9 @@ static inline u32 fb_mmu_fault_status_replayable_getptr_corrupted_set_f(void) { return 0x4000; } -static inline u32 fb_mmu_fault_status_non_replayable_getptr_corrupted_f(u32 v) -{ - return (v & 0x1) << 15; -} -static inline u32 fb_mmu_fault_status_non_replayable_getptr_corrupted_v(u32 r) +static inline u32 fb_mmu_fault_status_non_replayable_getptr_corrupted_m(void) { - return (r >> 15) & 0x1; + return 0x1 << 15; } static inline u32 fb_mmu_fault_status_non_replayable_getptr_corrupted_set_v(void) { @@ -1774,13 +1706,9 @@ static inline u32 fb_mmu_fault_status_non_replayable_getptr_corrupted_set_f(void { return 0x8000; } -static inline u32 fb_mmu_fault_status_busy_f(u32 v) +static inline u32 fb_mmu_fault_status_busy_m(void) { - return (v & 0x1) << 30; -} -static inline u32 fb_mmu_fault_status_busy_v(u32 r) -{ - return (r >> 30) & 0x1; + return 0x1 << 30; } static inline u32 fb_mmu_fault_status_busy_true_v(void) { @@ -1790,13 +1718,9 @@ static inline u32 fb_mmu_fault_status_busy_true_f(void) { return 0x40000000; } -static inline u32 fb_mmu_fault_status_valid_f(u32 v) -{ - return (v & 0x1) << 31; -} -static inline u32 fb_mmu_fault_status_valid_v(u32 r) +static inline u32 fb_mmu_fault_status_valid_m(void) { - return (r >> 31) & 0x1; + return 0x1 << 31; } static inline u32 fb_mmu_fault_status_valid_set_v(void) { diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gmmu_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gmmu_gv11b.h index 22ad23bc..383f7773 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gmmu_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_gmmu_gv11b.h @@ -1274,6 +1274,10 @@ static inline u32 gmmu_fault_mmu_eng_id_physical_v(void) { return 0x0000001f; } +static inline u32 gmmu_fault_mmu_eng_id_ce0_v(void) +{ + return 0x0000000f; +} static inline u32 gmmu_fault_buf_size_v(void) { return 0x00000020; @@ -1458,6 +1462,10 @@ static inline u32 gmmu_fault_buf_entry_replayable_fault_en_true_f(void) { return 0x40000000; } +static inline u32 gmmu_fault_buf_entry_valid_m(void) +{ + return 0x1 << 31; +} static inline u32 gmmu_fault_buf_entry_valid_v(u32 r) { return (r >> 31) & 0x1; diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_top_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_top_gv11b.h index 2e2ff6ba..dbfc99b9 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_top_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_top_gv11b.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2016-2017, 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, @@ -94,6 +94,14 @@ static inline u32 top_num_ltcs_r(void) { return 0x00022454; } +static inline u32 top_num_ces_r(void) +{ + return 0x00022444; +} +static inline u32 top_num_ces_value_v(u32 r) +{ + return (r >> 0) & 0x1f; +} static inline u32 top_device_info_r(u32 i) { return 0x00022700 + i*4; -- cgit v1.2.2