aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/arm_arch_timer.c
diff options
context:
space:
mode:
authorFu Wei <fu.wei@linaro.org>2017-01-18 08:25:27 -0500
committerMark Rutland <mark.rutland@arm.com>2017-04-10 09:29:53 -0400
commitee34f1e63d3d2b8df8607847eafbc859ec6818dc (patch)
tree690880a6f6a60f4bdaf87e8916a3a66f3c2df847 /drivers/clocksource/arm_arch_timer.c
parent8a5c21dc05ea44d0e7255c88f8f56af0971bbc68 (diff)
clocksource: arm_arch_timer: rename the PPI enum
In preparation for moving the PPI enum out into a header, rename the enum and its constituent values these so they are namespaced w.r.t. the arch timer. This will aid consistency and avoid potential name clashes when this move occurs. No functional change. Signed-off-by: Fu Wei <fu.wei@linaro.org> Tested-by: Xiongfeng Wang <wangxiongfeng2@huawei.com> [Mark: reword commit message] Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Diffstat (limited to 'drivers/clocksource/arm_arch_timer.c')
-rw-r--r--drivers/clocksource/arm_arch_timer.c82
1 files changed, 42 insertions, 40 deletions
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 38bddb9a2076..94e355bb0d38 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -70,19 +70,19 @@ struct arch_timer {
70 70
71static u32 arch_timer_rate; 71static u32 arch_timer_rate;
72 72
73enum ppi_nr { 73enum arch_timer_ppi_nr {
74 PHYS_SECURE_PPI, 74 ARCH_TIMER_PHYS_SECURE_PPI,
75 PHYS_NONSECURE_PPI, 75 ARCH_TIMER_PHYS_NONSECURE_PPI,
76 VIRT_PPI, 76 ARCH_TIMER_VIRT_PPI,
77 HYP_PPI, 77 ARCH_TIMER_HYP_PPI,
78 MAX_TIMER_PPI 78 ARCH_TIMER_MAX_TIMER_PPI
79}; 79};
80 80
81static int arch_timer_ppi[MAX_TIMER_PPI]; 81static int arch_timer_ppi[ARCH_TIMER_MAX_TIMER_PPI];
82 82
83static struct clock_event_device __percpu *arch_timer_evt; 83static struct clock_event_device __percpu *arch_timer_evt;
84 84
85static enum ppi_nr arch_timer_uses_ppi = VIRT_PPI; 85static enum arch_timer_ppi_nr arch_timer_uses_ppi = ARCH_TIMER_VIRT_PPI;
86static bool arch_timer_c3stop; 86static bool arch_timer_c3stop;
87static bool arch_timer_mem_use_virtual; 87static bool arch_timer_mem_use_virtual;
88static bool arch_counter_suspend_stop; 88static bool arch_counter_suspend_stop;
@@ -694,14 +694,14 @@ static void __arch_timer_setup(unsigned type,
694 clk->cpumask = cpumask_of(smp_processor_id()); 694 clk->cpumask = cpumask_of(smp_processor_id());
695 clk->irq = arch_timer_ppi[arch_timer_uses_ppi]; 695 clk->irq = arch_timer_ppi[arch_timer_uses_ppi];
696 switch (arch_timer_uses_ppi) { 696 switch (arch_timer_uses_ppi) {
697 case VIRT_PPI: 697 case ARCH_TIMER_VIRT_PPI:
698 clk->set_state_shutdown = arch_timer_shutdown_virt; 698 clk->set_state_shutdown = arch_timer_shutdown_virt;
699 clk->set_state_oneshot_stopped = arch_timer_shutdown_virt; 699 clk->set_state_oneshot_stopped = arch_timer_shutdown_virt;
700 clk->set_next_event = arch_timer_set_next_event_virt; 700 clk->set_next_event = arch_timer_set_next_event_virt;
701 break; 701 break;
702 case PHYS_SECURE_PPI: 702 case ARCH_TIMER_PHYS_SECURE_PPI:
703 case PHYS_NONSECURE_PPI: 703 case ARCH_TIMER_PHYS_NONSECURE_PPI:
704 case HYP_PPI: 704 case ARCH_TIMER_HYP_PPI:
705 clk->set_state_shutdown = arch_timer_shutdown_phys; 705 clk->set_state_shutdown = arch_timer_shutdown_phys;
706 clk->set_state_oneshot_stopped = arch_timer_shutdown_phys; 706 clk->set_state_oneshot_stopped = arch_timer_shutdown_phys;
707 clk->set_next_event = arch_timer_set_next_event_phys; 707 clk->set_next_event = arch_timer_set_next_event_phys;
@@ -789,8 +789,8 @@ static void arch_counter_set_user_access(void)
789 789
790static bool arch_timer_has_nonsecure_ppi(void) 790static bool arch_timer_has_nonsecure_ppi(void)
791{ 791{
792 return (arch_timer_uses_ppi == PHYS_SECURE_PPI && 792 return (arch_timer_uses_ppi == ARCH_TIMER_PHYS_SECURE_PPI &&
793 arch_timer_ppi[PHYS_NONSECURE_PPI]); 793 arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI]);
794} 794}
795 795
796static u32 check_ppi_trigger(int irq) 796static u32 check_ppi_trigger(int irq)
@@ -817,8 +817,9 @@ static int arch_timer_starting_cpu(unsigned int cpu)
817 enable_percpu_irq(arch_timer_ppi[arch_timer_uses_ppi], flags); 817 enable_percpu_irq(arch_timer_ppi[arch_timer_uses_ppi], flags);
818 818
819 if (arch_timer_has_nonsecure_ppi()) { 819 if (arch_timer_has_nonsecure_ppi()) {
820 flags = check_ppi_trigger(arch_timer_ppi[PHYS_NONSECURE_PPI]); 820 flags = check_ppi_trigger(arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI]);
821 enable_percpu_irq(arch_timer_ppi[PHYS_NONSECURE_PPI], flags); 821 enable_percpu_irq(arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI],
822 flags);
822 } 823 }
823 824
824 arch_counter_set_user_access(); 825 arch_counter_set_user_access();
@@ -862,7 +863,7 @@ static void arch_timer_banner(unsigned type)
862 (unsigned long)arch_timer_rate / 1000000, 863 (unsigned long)arch_timer_rate / 1000000,
863 (unsigned long)(arch_timer_rate / 10000) % 100, 864 (unsigned long)(arch_timer_rate / 10000) % 100,
864 type & ARCH_TIMER_TYPE_CP15 ? 865 type & ARCH_TIMER_TYPE_CP15 ?
865 (arch_timer_uses_ppi == VIRT_PPI) ? "virt" : "phys" : 866 (arch_timer_uses_ppi == ARCH_TIMER_VIRT_PPI) ? "virt" : "phys" :
866 "", 867 "",
867 type == (ARCH_TIMER_TYPE_CP15 | ARCH_TIMER_TYPE_MEM) ? "/" : "", 868 type == (ARCH_TIMER_TYPE_CP15 | ARCH_TIMER_TYPE_MEM) ? "/" : "",
868 type & ARCH_TIMER_TYPE_MEM ? 869 type & ARCH_TIMER_TYPE_MEM ?
@@ -901,7 +902,8 @@ static void __init arch_counter_register(unsigned type)
901 902
902 /* Register the CP15 based counter if we have one */ 903 /* Register the CP15 based counter if we have one */
903 if (type & ARCH_TIMER_TYPE_CP15) { 904 if (type & ARCH_TIMER_TYPE_CP15) {
904 if (IS_ENABLED(CONFIG_ARM64) || arch_timer_uses_ppi == VIRT_PPI) 905 if (IS_ENABLED(CONFIG_ARM64) ||
906 arch_timer_uses_ppi == ARCH_TIMER_VIRT_PPI)
905 arch_timer_read_counter = arch_counter_get_cntvct; 907 arch_timer_read_counter = arch_counter_get_cntvct;
906 else 908 else
907 arch_timer_read_counter = arch_counter_get_cntpct; 909 arch_timer_read_counter = arch_counter_get_cntpct;
@@ -930,7 +932,7 @@ static void arch_timer_stop(struct clock_event_device *clk)
930 932
931 disable_percpu_irq(arch_timer_ppi[arch_timer_uses_ppi]); 933 disable_percpu_irq(arch_timer_ppi[arch_timer_uses_ppi]);
932 if (arch_timer_has_nonsecure_ppi()) 934 if (arch_timer_has_nonsecure_ppi())
933 disable_percpu_irq(arch_timer_ppi[PHYS_NONSECURE_PPI]); 935 disable_percpu_irq(arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI]);
934 936
935 clk->set_state_shutdown(clk); 937 clk->set_state_shutdown(clk);
936} 938}
@@ -993,24 +995,24 @@ static int __init arch_timer_register(void)
993 995
994 ppi = arch_timer_ppi[arch_timer_uses_ppi]; 996 ppi = arch_timer_ppi[arch_timer_uses_ppi];
995 switch (arch_timer_uses_ppi) { 997 switch (arch_timer_uses_ppi) {
996 case VIRT_PPI: 998 case ARCH_TIMER_VIRT_PPI:
997 err = request_percpu_irq(ppi, arch_timer_handler_virt, 999 err = request_percpu_irq(ppi, arch_timer_handler_virt,
998 "arch_timer", arch_timer_evt); 1000 "arch_timer", arch_timer_evt);
999 break; 1001 break;
1000 case PHYS_SECURE_PPI: 1002 case ARCH_TIMER_PHYS_SECURE_PPI:
1001 case PHYS_NONSECURE_PPI: 1003 case ARCH_TIMER_PHYS_NONSECURE_PPI:
1002 err = request_percpu_irq(ppi, arch_timer_handler_phys, 1004 err = request_percpu_irq(ppi, arch_timer_handler_phys,
1003 "arch_timer", arch_timer_evt); 1005 "arch_timer", arch_timer_evt);
1004 if (!err && arch_timer_ppi[PHYS_NONSECURE_PPI]) { 1006 if (!err && arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI]) {
1005 ppi = arch_timer_ppi[PHYS_NONSECURE_PPI]; 1007 ppi = arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI];
1006 err = request_percpu_irq(ppi, arch_timer_handler_phys, 1008 err = request_percpu_irq(ppi, arch_timer_handler_phys,
1007 "arch_timer", arch_timer_evt); 1009 "arch_timer", arch_timer_evt);
1008 if (err) 1010 if (err)
1009 free_percpu_irq(arch_timer_ppi[PHYS_SECURE_PPI], 1011 free_percpu_irq(arch_timer_ppi[ARCH_TIMER_PHYS_SECURE_PPI],
1010 arch_timer_evt); 1012 arch_timer_evt);
1011 } 1013 }
1012 break; 1014 break;
1013 case HYP_PPI: 1015 case ARCH_TIMER_HYP_PPI:
1014 err = request_percpu_irq(ppi, arch_timer_handler_phys, 1016 err = request_percpu_irq(ppi, arch_timer_handler_phys,
1015 "arch_timer", arch_timer_evt); 1017 "arch_timer", arch_timer_evt);
1016 break; 1018 break;
@@ -1042,7 +1044,7 @@ out_unreg_cpupm:
1042out_unreg_notify: 1044out_unreg_notify:
1043 free_percpu_irq(arch_timer_ppi[arch_timer_uses_ppi], arch_timer_evt); 1045 free_percpu_irq(arch_timer_ppi[arch_timer_uses_ppi], arch_timer_evt);
1044 if (arch_timer_has_nonsecure_ppi()) 1046 if (arch_timer_has_nonsecure_ppi())
1045 free_percpu_irq(arch_timer_ppi[PHYS_NONSECURE_PPI], 1047 free_percpu_irq(arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI],
1046 arch_timer_evt); 1048 arch_timer_evt);
1047 1049
1048out_free: 1050out_free:
@@ -1139,16 +1141,16 @@ static int __init arch_timer_init(void)
1139 * their CNTHP_*_EL2 counterparts, and use a different PPI 1141 * their CNTHP_*_EL2 counterparts, and use a different PPI
1140 * number. 1142 * number.
1141 */ 1143 */
1142 if (is_hyp_mode_available() || !arch_timer_ppi[VIRT_PPI]) { 1144 if (is_hyp_mode_available() || !arch_timer_ppi[ARCH_TIMER_VIRT_PPI]) {
1143 bool has_ppi; 1145 bool has_ppi;
1144 1146
1145 if (is_kernel_in_hyp_mode()) { 1147 if (is_kernel_in_hyp_mode()) {
1146 arch_timer_uses_ppi = HYP_PPI; 1148 arch_timer_uses_ppi = ARCH_TIMER_HYP_PPI;
1147 has_ppi = !!arch_timer_ppi[HYP_PPI]; 1149 has_ppi = !!arch_timer_ppi[ARCH_TIMER_HYP_PPI];
1148 } else { 1150 } else {
1149 arch_timer_uses_ppi = PHYS_SECURE_PPI; 1151 arch_timer_uses_ppi = ARCH_TIMER_PHYS_SECURE_PPI;
1150 has_ppi = (!!arch_timer_ppi[PHYS_SECURE_PPI] || 1152 has_ppi = (!!arch_timer_ppi[ARCH_TIMER_PHYS_SECURE_PPI] ||
1151 !!arch_timer_ppi[PHYS_NONSECURE_PPI]); 1153 !!arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI]);
1152 } 1154 }
1153 1155
1154 if (!has_ppi) { 1156 if (!has_ppi) {
@@ -1165,7 +1167,7 @@ static int __init arch_timer_init(void)
1165 if (ret) 1167 if (ret)
1166 return ret; 1168 return ret;
1167 1169
1168 arch_timer_kvm_info.virtual_irq = arch_timer_ppi[VIRT_PPI]; 1170 arch_timer_kvm_info.virtual_irq = arch_timer_ppi[ARCH_TIMER_VIRT_PPI];
1169 1171
1170 return 0; 1172 return 0;
1171} 1173}
@@ -1180,7 +1182,7 @@ static int __init arch_timer_of_init(struct device_node *np)
1180 } 1182 }
1181 1183
1182 arch_timers_present |= ARCH_TIMER_TYPE_CP15; 1184 arch_timers_present |= ARCH_TIMER_TYPE_CP15;
1183 for (i = PHYS_SECURE_PPI; i < MAX_TIMER_PPI; i++) 1185 for (i = ARCH_TIMER_PHYS_SECURE_PPI; i < ARCH_TIMER_MAX_TIMER_PPI; i++)
1184 arch_timer_ppi[i] = irq_of_parse_and_map(np, i); 1186 arch_timer_ppi[i] = irq_of_parse_and_map(np, i);
1185 1187
1186 arch_timer_detect_rate(NULL, np); 1188 arch_timer_detect_rate(NULL, np);
@@ -1196,7 +1198,7 @@ static int __init arch_timer_of_init(struct device_node *np)
1196 */ 1198 */
1197 if (IS_ENABLED(CONFIG_ARM) && 1199 if (IS_ENABLED(CONFIG_ARM) &&
1198 of_property_read_bool(np, "arm,cpu-registers-not-fw-configured")) 1200 of_property_read_bool(np, "arm,cpu-registers-not-fw-configured"))
1199 arch_timer_uses_ppi = PHYS_SECURE_PPI; 1201 arch_timer_uses_ppi = ARCH_TIMER_PHYS_SECURE_PPI;
1200 1202
1201 /* On some systems, the counter stops ticking when in suspend. */ 1203 /* On some systems, the counter stops ticking when in suspend. */
1202 arch_counter_suspend_stop = of_property_read_bool(np, 1204 arch_counter_suspend_stop = of_property_read_bool(np,
@@ -1323,19 +1325,19 @@ static int __init arch_timer_acpi_init(struct acpi_table_header *table)
1323 1325
1324 arch_timers_present |= ARCH_TIMER_TYPE_CP15; 1326 arch_timers_present |= ARCH_TIMER_TYPE_CP15;
1325 1327
1326 arch_timer_ppi[PHYS_SECURE_PPI] = 1328 arch_timer_ppi[ARCH_TIMER_PHYS_SECURE_PPI] =
1327 map_generic_timer_interrupt(gtdt->secure_el1_interrupt, 1329 map_generic_timer_interrupt(gtdt->secure_el1_interrupt,
1328 gtdt->secure_el1_flags); 1330 gtdt->secure_el1_flags);
1329 1331
1330 arch_timer_ppi[PHYS_NONSECURE_PPI] = 1332 arch_timer_ppi[ARCH_TIMER_PHYS_NONSECURE_PPI] =
1331 map_generic_timer_interrupt(gtdt->non_secure_el1_interrupt, 1333 map_generic_timer_interrupt(gtdt->non_secure_el1_interrupt,
1332 gtdt->non_secure_el1_flags); 1334 gtdt->non_secure_el1_flags);
1333 1335
1334 arch_timer_ppi[VIRT_PPI] = 1336 arch_timer_ppi[ARCH_TIMER_VIRT_PPI] =
1335 map_generic_timer_interrupt(gtdt->virtual_timer_interrupt, 1337 map_generic_timer_interrupt(gtdt->virtual_timer_interrupt,
1336 gtdt->virtual_timer_flags); 1338 gtdt->virtual_timer_flags);
1337 1339
1338 arch_timer_ppi[HYP_PPI] = 1340 arch_timer_ppi[ARCH_TIMER_HYP_PPI] =
1339 map_generic_timer_interrupt(gtdt->non_secure_el2_interrupt, 1341 map_generic_timer_interrupt(gtdt->non_secure_el2_interrupt,
1340 gtdt->non_secure_el2_flags); 1342 gtdt->non_secure_el2_flags);
1341 1343