* [PATCH V2 61/63] clocksource/drivers/arc: Convert init function to return error
[not found] <1466112442-31105-1-git-send-email-daniel.lezcano@linaro.org>
@ 2016-06-16 21:27 ` Daniel Lezcano
2016-06-17 8:59 ` Vineet Gupta
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
1 sibling, 1 reply; 21+ messages in thread
From: Daniel Lezcano @ 2016-06-16 21:27 UTC (permalink / raw)
To: linux-snps-arc
The init functions do not return any error. They behave as the following:
- panic, thus leading to a kernel crash while another timer may work and
make the system boot up correctly
or
- print an error and let the caller unaware if the state of the system
Change that by converting the init functions to return an error conforming
to the CLOCKSOURCE_OF_RET prototype.
Proper error handling (rollback, errno value) will be changed later case
by case, thus this change just return back an error or success in the init
function.
Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
---
arch/arc/kernel/time.c | 69 ++++++++++++++++++++++++++++++--------------------
1 file changed, 42 insertions(+), 27 deletions(-)
diff --git a/arch/arc/kernel/time.c b/arch/arc/kernel/time.c
index 4549ab2..36110cd 100644
--- a/arch/arc/kernel/time.c
+++ b/arch/arc/kernel/time.c
@@ -116,21 +116,21 @@ static struct clocksource arc_counter_gfrc = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
-static void __init arc_cs_setup_gfrc(struct device_node *node)
+static int __init arc_cs_setup_gfrc(struct device_node *node)
{
int exists = cpuinfo_arc700[0].extn.gfrc;
int ret;
if (WARN(!exists, "Global-64-bit-Ctr clocksource not detected"))
- return;
+ return -ENXIO;
ret = arc_get_timer_clk(node);
if (ret)
- return;
+ return ret;
- clocksource_register_hz(&arc_counter_gfrc, arc_timer_freq);
+ return clocksource_register_hz(&arc_counter_gfrc, arc_timer_freq);
}
-CLOCKSOURCE_OF_DECLARE(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
+CLOCKSOURCE_OF_DECLARE_RET(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
#endif
@@ -172,27 +172,27 @@ static struct clocksource arc_counter_rtc = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
-static void __init arc_cs_setup_rtc(struct device_node *node)
+static int __init arc_cs_setup_rtc(struct device_node *node)
{
int exists = cpuinfo_arc700[smp_processor_id()].extn.rtc;
int ret;
if (WARN(!exists, "Local-64-bit-Ctr clocksource not detected"))
- return;
+ return -ENXIO;
/* Local to CPU hence not usable in SMP */
if (WARN(IS_ENABLED(CONFIG_SMP), "Local-64-bit-Ctr not usable in SMP"))
- return;
+ return -EINVAL;
ret = arc_get_timer_clk(node);
if (ret)
- return;
+ return ret;
write_aux_reg(AUX_RTC_CTRL, 1);
- clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
+ return clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
}
-CLOCKSOURCE_OF_DECLARE(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
+CLOCKSOURCE_OF_DECLARE_RET(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
#endif
@@ -213,23 +213,23 @@ static struct clocksource arc_counter_timer1 = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
-static void __init arc_cs_setup_timer1(struct device_node *node)
+static int __init arc_cs_setup_timer1(struct device_node *node)
{
int ret;
/* Local to CPU hence not usable in SMP */
if (IS_ENABLED(CONFIG_SMP))
- return;
+ return 0;
ret = arc_get_timer_clk(node);
if (ret)
- return;
+ return ret;
write_aux_reg(ARC_REG_TIMER1_LIMIT, ARC_TIMER_MAX);
write_aux_reg(ARC_REG_TIMER1_CNT, 0);
write_aux_reg(ARC_REG_TIMER1_CTRL, TIMER_CTRL_NH);
- clocksource_register_hz(&arc_counter_timer1, arc_timer_freq);
+ return clocksource_register_hz(&arc_counter_timer1, arc_timer_freq);
}
/********** Clock Event Device *********/
@@ -324,20 +324,28 @@ static struct notifier_block arc_timer_cpu_nb = {
/*
* clockevent setup for boot CPU
*/
-static void __init arc_clockevent_setup(struct device_node *node)
+static int __init arc_clockevent_setup(struct device_node *node)
{
struct clock_event_device *evt = this_cpu_ptr(&arc_clockevent_device);
int ret;
- register_cpu_notifier(&arc_timer_cpu_nb);
+ ret = register_cpu_notifier(&arc_timer_cpu_nb);
+ if (ret) {
+ pr_err("Failed to register cpu notifier");
+ return ret;
+ }
arc_timer_irq = irq_of_parse_and_map(node, 0);
- if (arc_timer_irq <= 0)
- panic("clockevent: missing irq");
+ if (arc_timer_irq <= 0) {
+ pr_err("clockevent: missing irq");
+ return -EINVAL;
+ }
ret = arc_get_timer_clk(node);
- if (ret)
- panic("clockevent: missing clk");
+ if (ret) {
+ pr_err("clockevent: missing clk");
+ return ret;
+ }
evt->irq = arc_timer_irq;
evt->cpumask = cpumask_of(smp_processor_id());
@@ -347,24 +355,31 @@ static void __init arc_clockevent_setup(struct device_node *node)
/* Needs apriori irq_set_percpu_devid() done in intc map function */
ret = request_percpu_irq(arc_timer_irq, timer_irq_handler,
"Timer0 (per-cpu-tick)", evt);
- if (ret)
- panic("clockevent: unable to request irq\n");
+ if (ret) {
+ pr_err("clockevent: unable to request irq\n");
+ returnr ret;
+ }
enable_percpu_irq(arc_timer_irq, 0);
+
+ return 0;
}
-static void __init arc_of_timer_init(struct device_node *np)
+static int __init arc_of_timer_init(struct device_node *np)
{
static int init_count = 0;
+ int ret;
if (!init_count) {
init_count = 1;
- arc_clockevent_setup(np);
+ ret = arc_clockevent_setup(np);
} else {
- arc_cs_setup_timer1(np);
+ ret = arc_cs_setup_timer1(np);
}
+
+ return ret;
}
-CLOCKSOURCE_OF_DECLARE(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
+CLOCKSOURCE_OF_DECLARE_RET(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
/*
* Called from start_kernel() - boot CPU only
--
1.9.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
[not found] <1466112442-31105-1-git-send-email-daniel.lezcano@linaro.org>
2016-06-16 21:27 ` [PATCH V2 61/63] clocksource/drivers/arc: Convert init function to return error Daniel Lezcano
@ 2016-06-16 21:27 ` Daniel Lezcano
2016-06-17 8:36 ` Krzysztof Kozlowski
` (11 more replies)
1 sibling, 12 replies; 21+ messages in thread
From: Daniel Lezcano @ 2016-06-16 21:27 UTC (permalink / raw)
To: linux-snps-arc
All the clocksource drivers's init function are now converted to return
an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
clksrc-of table.
Let's convert back the names:
- CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
- clksrc-of-ret => clksrc-of
Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
---
arch/arc/kernel/time.c | 6 +++---
arch/arm/kernel/smp_twd.c | 6 +++---
arch/microblaze/kernel/timer.c | 2 +-
arch/mips/ralink/cevt-rt3352.c | 2 +-
arch/nios2/kernel/time.c | 2 +-
drivers/clocksource/arm_arch_timer.c | 6 +++---
drivers/clocksource/arm_global_timer.c | 2 +-
drivers/clocksource/armv7m_systick.c | 2 +-
drivers/clocksource/asm9260_timer.c | 2 +-
drivers/clocksource/bcm2835_timer.c | 2 +-
drivers/clocksource/bcm_kona_timer.c | 4 ++--
drivers/clocksource/cadence_ttc_timer.c | 2 +-
drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
drivers/clocksource/clksrc-probe.c | 14 --------------
drivers/clocksource/clksrc_st_lpc.c | 2 +-
drivers/clocksource/clps711x-timer.c | 2 +-
drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
drivers/clocksource/exynos_mct.c | 4 ++--
drivers/clocksource/fsl_ftm_timer.c | 2 +-
drivers/clocksource/h8300_timer16.c | 2 +-
drivers/clocksource/h8300_timer8.c | 2 +-
drivers/clocksource/h8300_tpu.c | 2 +-
drivers/clocksource/meson6_timer.c | 2 +-
drivers/clocksource/mips-gic-timer.c | 2 +-
drivers/clocksource/moxart_timer.c | 2 +-
drivers/clocksource/mps2-timer.c | 2 +-
drivers/clocksource/mtk_timer.c | 2 +-
drivers/clocksource/mxs_timer.c | 2 +-
drivers/clocksource/nomadik-mtu.c | 2 +-
drivers/clocksource/pxa_timer.c | 2 +-
drivers/clocksource/qcom-timer.c | 4 ++--
drivers/clocksource/rockchip_timer.c | 8 ++++----
drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
drivers/clocksource/sun4i_timer.c | 2 +-
drivers/clocksource/tango_xtal.c | 2 +-
drivers/clocksource/tegra20_timer.c | 4 ++--
drivers/clocksource/time-armada-370-xp.c | 6 +++---
drivers/clocksource/time-efm32.c | 4 ++--
drivers/clocksource/time-lpc32xx.c | 2 +-
drivers/clocksource/time-orion.c | 2 +-
drivers/clocksource/time-pistachio.c | 2 +-
drivers/clocksource/timer-atlas7.c | 2 +-
drivers/clocksource/timer-atmel-pit.c | 2 +-
drivers/clocksource/timer-atmel-st.c | 2 +-
drivers/clocksource/timer-digicolor.c | 2 +-
drivers/clocksource/timer-imx-gpt.c | 24 ++++++++++++------------
drivers/clocksource/timer-integrator-ap.c | 2 +-
drivers/clocksource/timer-keystone.c | 2 +-
drivers/clocksource/timer-nps.c | 4 ++--
drivers/clocksource/timer-oxnas-rps.c | 4 ++--
drivers/clocksource/timer-prima2.c | 2 +-
drivers/clocksource/timer-sp804.c | 4 ++--
drivers/clocksource/timer-stm32.c | 2 +-
drivers/clocksource/timer-sun5i.c | 4 ++--
drivers/clocksource/timer-ti-32k.c | 2 +-
drivers/clocksource/timer-u300.c | 2 +-
drivers/clocksource/versatile.c | 4 ++--
drivers/clocksource/vf_pit_timer.c | 2 +-
drivers/clocksource/vt8500_timer.c | 2 +-
drivers/clocksource/zevio-timer.c | 2 +-
include/asm-generic/vmlinux.lds.h | 2 --
include/linux/clocksource.h | 5 +----
62 files changed, 98 insertions(+), 117 deletions(-)
diff --git a/arch/arc/kernel/time.c b/arch/arc/kernel/time.c
index 36110cd..ee00f2f 100644
--- a/arch/arc/kernel/time.c
+++ b/arch/arc/kernel/time.c
@@ -130,7 +130,7 @@ static int __init arc_cs_setup_gfrc(struct device_node *node)
return clocksource_register_hz(&arc_counter_gfrc, arc_timer_freq);
}
-CLOCKSOURCE_OF_DECLARE_RET(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
+CLOCKSOURCE_OF_DECLARE(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
#endif
@@ -192,7 +192,7 @@ static int __init arc_cs_setup_rtc(struct device_node *node)
return clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
}
-CLOCKSOURCE_OF_DECLARE_RET(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
+CLOCKSOURCE_OF_DECLARE(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
#endif
@@ -379,7 +379,7 @@ static int __init arc_of_timer_init(struct device_node *np)
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
+CLOCKSOURCE_OF_DECLARE(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
/*
* Called from start_kernel() - boot CPU only
diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c
index 2b24be4..b6ec65e 100644
--- a/arch/arm/kernel/smp_twd.c
+++ b/arch/arm/kernel/smp_twd.c
@@ -412,7 +412,7 @@ out:
WARN(err, "twd_local_timer_of_register failed (%d)\n", err);
return err;
}
-CLOCKSOURCE_OF_DECLARE_RET(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register);
-CLOCKSOURCE_OF_DECLARE_RET(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register);
-CLOCKSOURCE_OF_DECLARE_RET(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register);
+CLOCKSOURCE_OF_DECLARE(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register);
+CLOCKSOURCE_OF_DECLARE(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register);
+CLOCKSOURCE_OF_DECLARE(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register);
#endif
diff --git a/arch/microblaze/kernel/timer.c b/arch/microblaze/kernel/timer.c
index 7f35e7b..5bbf38b 100644
--- a/arch/microblaze/kernel/timer.c
+++ b/arch/microblaze/kernel/timer.c
@@ -332,5 +332,5 @@ static int __init xilinx_timer_init(struct device_node *timer)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(xilinx_timer, "xlnx,xps-timer-1.00.a",
+CLOCKSOURCE_OF_DECLARE(xilinx_timer, "xlnx,xps-timer-1.00.a",
xilinx_timer_init);
diff --git a/arch/mips/ralink/cevt-rt3352.c b/arch/mips/ralink/cevt-rt3352.c
index f2d3c79..f24eee0 100644
--- a/arch/mips/ralink/cevt-rt3352.c
+++ b/arch/mips/ralink/cevt-rt3352.c
@@ -150,4 +150,4 @@ static int __init ralink_systick_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(systick, "ralink,cevt-systick", ralink_systick_init);
+CLOCKSOURCE_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
diff --git a/arch/nios2/kernel/time.c b/arch/nios2/kernel/time.c
index 9fa7739..f337eef 100644
--- a/arch/nios2/kernel/time.c
+++ b/arch/nios2/kernel/time.c
@@ -354,4 +354,4 @@ void __init time_init(void)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(nios2_timer, ALTR_TIMER_COMPATIBLE, nios2_time_init);
+CLOCKSOURCE_OF_DECLARE(nios2_timer, ALTR_TIMER_COMPATIBLE, nios2_time_init);
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index d0cda68..9e33309 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -784,8 +784,8 @@ static int __init arch_timer_of_init(struct device_node *np)
return arch_timer_init();
}
-CLOCKSOURCE_OF_DECLARE_RET(armv7_arch_timer, "arm,armv7-timer", arch_timer_of_init);
-CLOCKSOURCE_OF_DECLARE_RET(armv8_arch_timer, "arm,armv8-timer", arch_timer_of_init);
+CLOCKSOURCE_OF_DECLARE(armv7_arch_timer, "arm,armv7-timer", arch_timer_of_init);
+CLOCKSOURCE_OF_DECLARE(armv8_arch_timer, "arm,armv8-timer", arch_timer_of_init);
static int __init arch_timer_mem_init(struct device_node *np)
{
@@ -868,7 +868,7 @@ out:
of_node_put(best_frame);
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(armv7_arch_timer_mem, "arm,armv7-timer-mem",
+CLOCKSOURCE_OF_DECLARE(armv7_arch_timer_mem, "arm,armv7-timer-mem",
arch_timer_mem_init);
#ifdef CONFIG_ACPI
diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c
index 40104fc..2a9ceb6 100644
--- a/drivers/clocksource/arm_global_timer.c
+++ b/drivers/clocksource/arm_global_timer.c
@@ -358,5 +358,5 @@ out_unmap:
}
/* Only tested on r2p2 and r3p0 */
-CLOCKSOURCE_OF_DECLARE_RET(arm_gt, "arm,cortex-a9-global-timer",
+CLOCKSOURCE_OF_DECLARE(arm_gt, "arm,cortex-a9-global-timer",
global_timer_of_register);
diff --git a/drivers/clocksource/armv7m_systick.c b/drivers/clocksource/armv7m_systick.c
index 2b55410..e93af1f 100644
--- a/drivers/clocksource/armv7m_systick.c
+++ b/drivers/clocksource/armv7m_systick.c
@@ -81,5 +81,5 @@ out_unmap:
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(arm_systick, "arm,armv7m-systick",
+CLOCKSOURCE_OF_DECLARE(arm_systick, "arm,armv7m-systick",
system_timer_of_register);
diff --git a/drivers/clocksource/asm9260_timer.c b/drivers/clocksource/asm9260_timer.c
index d113c02..1ba871b 100644
--- a/drivers/clocksource/asm9260_timer.c
+++ b/drivers/clocksource/asm9260_timer.c
@@ -238,5 +238,5 @@ static int __init asm9260_timer_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(asm9260_timer, "alphascale,asm9260-timer",
+CLOCKSOURCE_OF_DECLARE(asm9260_timer, "alphascale,asm9260-timer",
asm9260_timer_init);
diff --git a/drivers/clocksource/bcm2835_timer.c b/drivers/clocksource/bcm2835_timer.c
index 2dcf896..e71acf2 100644
--- a/drivers/clocksource/bcm2835_timer.c
+++ b/drivers/clocksource/bcm2835_timer.c
@@ -142,5 +142,5 @@ static int __init bcm2835_timer_init(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(bcm2835, "brcm,bcm2835-system-timer",
+CLOCKSOURCE_OF_DECLARE(bcm2835, "brcm,bcm2835-system-timer",
bcm2835_timer_init);
diff --git a/drivers/clocksource/bcm_kona_timer.c b/drivers/clocksource/bcm_kona_timer.c
index 98bc2a2..ee07e7e3 100644
--- a/drivers/clocksource/bcm_kona_timer.c
+++ b/drivers/clocksource/bcm_kona_timer.c
@@ -200,9 +200,9 @@ static int __init kona_timer_init(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(brcm_kona, "brcm,kona-timer", kona_timer_init);
+CLOCKSOURCE_OF_DECLARE(brcm_kona, "brcm,kona-timer", kona_timer_init);
/*
* bcm,kona-timer is deprecated by brcm,kona-timer
* being kept here for driver compatibility
*/
-CLOCKSOURCE_OF_DECLARE_RET(bcm_kona, "bcm,kona-timer", kona_timer_init);
+CLOCKSOURCE_OF_DECLARE(bcm_kona, "bcm,kona-timer", kona_timer_init);
diff --git a/drivers/clocksource/cadence_ttc_timer.c b/drivers/clocksource/cadence_ttc_timer.c
index e2e7631..388a77b 100644
--- a/drivers/clocksource/cadence_ttc_timer.c
+++ b/drivers/clocksource/cadence_ttc_timer.c
@@ -539,4 +539,4 @@ static int __init ttc_timer_init(struct device_node *timer)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(ttc, "cdns,ttc", ttc_timer_init);
+CLOCKSOURCE_OF_DECLARE(ttc, "cdns,ttc", ttc_timer_init);
diff --git a/drivers/clocksource/clksrc-dbx500-prcmu.c b/drivers/clocksource/clksrc-dbx500-prcmu.c
index 5a59d29..77a365f 100644
--- a/drivers/clocksource/clksrc-dbx500-prcmu.c
+++ b/drivers/clocksource/clksrc-dbx500-prcmu.c
@@ -86,5 +86,5 @@ static int __init clksrc_dbx500_prcmu_init(struct device_node *node)
#endif
return clocksource_register_hz(&clocksource_dbx500_prcmu, RATE_32K);
}
-CLOCKSOURCE_OF_DECLARE_RET(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4",
+CLOCKSOURCE_OF_DECLARE(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4",
clksrc_dbx500_prcmu_init);
diff --git a/drivers/clocksource/clksrc-probe.c b/drivers/clocksource/clksrc-probe.c
index 5fa6a55..bc62be9 100644
--- a/drivers/clocksource/clksrc-probe.c
+++ b/drivers/clocksource/clksrc-probe.c
@@ -20,19 +20,14 @@
#include <linux/clocksource.h>
extern struct of_device_id __clksrc_of_table[];
-extern struct of_device_id __clksrc_ret_of_table[];
static const struct of_device_id __clksrc_of_table_sentinel
__used __section(__clksrc_of_table_end);
-static const struct of_device_id __clksrc_ret_of_table_sentinel
- __used __section(__clksrc_ret_of_table_end);
-
void __init clocksource_probe(void)
{
struct device_node *np;
const struct of_device_id *match;
- of_init_fn_1 init_func;
of_init_fn_1_ret init_func_ret;
unsigned clocksources = 0;
int ret;
@@ -41,15 +36,6 @@ void __init clocksource_probe(void)
if (!of_device_is_available(np))
continue;
- init_func = match->data;
- init_func(np);
- clocksources++;
- }
-
- for_each_matching_node_and_match(np, __clksrc_ret_of_table, &match) {
- if (!of_device_is_available(np))
- continue;
-
init_func_ret = match->data;
ret = init_func_ret(np);
diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
index c9022a9..03cc492 100644
--- a/drivers/clocksource/clksrc_st_lpc.c
+++ b/drivers/clocksource/clksrc_st_lpc.c
@@ -132,4 +132,4 @@ static int __init st_clksrc_of_register(struct device_node *np)
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(ddata, "st,stih407-lpc", st_clksrc_of_register);
+CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
diff --git a/drivers/clocksource/clps711x-timer.c b/drivers/clocksource/clps711x-timer.c
index 3b66198..84aed78 100644
--- a/drivers/clocksource/clps711x-timer.c
+++ b/drivers/clocksource/clps711x-timer.c
@@ -119,5 +119,5 @@ static int __init clps711x_timer_init(struct device_node *np)
return -EINVAL;
}
}
-CLOCKSOURCE_OF_DECLARE_RET(clps711x, "cirrus,clps711x-timer", clps711x_timer_init);
+CLOCKSOURCE_OF_DECLARE(clps711x, "cirrus,clps711x-timer", clps711x_timer_init);
#endif
diff --git a/drivers/clocksource/dw_apb_timer_of.c b/drivers/clocksource/dw_apb_timer_of.c
index 4985a2c..aee6c0d 100644
--- a/drivers/clocksource/dw_apb_timer_of.c
+++ b/drivers/clocksource/dw_apb_timer_of.c
@@ -167,7 +167,7 @@ static int __init dw_apb_timer_init(struct device_node *timer)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(pc3x2_timer, "picochip,pc3x2-timer", dw_apb_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(apb_timer_osc, "snps,dw-apb-timer-osc", dw_apb_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(apb_timer_sp, "snps,dw-apb-timer-sp", dw_apb_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(apb_timer, "snps,dw-apb-timer", dw_apb_timer_init);
+CLOCKSOURCE_OF_DECLARE(pc3x2_timer, "picochip,pc3x2-timer", dw_apb_timer_init);
+CLOCKSOURCE_OF_DECLARE(apb_timer_osc, "snps,dw-apb-timer-osc", dw_apb_timer_init);
+CLOCKSOURCE_OF_DECLARE(apb_timer_sp, "snps,dw-apb-timer-sp", dw_apb_timer_init);
+CLOCKSOURCE_OF_DECLARE(apb_timer, "snps,dw-apb-timer", dw_apb_timer_init);
diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
index f6caed0..0d18dd4b 100644
--- a/drivers/clocksource/exynos_mct.c
+++ b/drivers/clocksource/exynos_mct.c
@@ -627,5 +627,5 @@ static int __init mct_init_ppi(struct device_node *np)
{
return mct_init_dt(np, MCT_INT_PPI);
}
-CLOCKSOURCE_OF_DECLARE_RET(exynos4210, "samsung,exynos4210-mct", mct_init_spi);
-CLOCKSOURCE_OF_DECLARE_RET(exynos4412, "samsung,exynos4412-mct", mct_init_ppi);
+CLOCKSOURCE_OF_DECLARE(exynos4210, "samsung,exynos4210-mct", mct_init_spi);
+CLOCKSOURCE_OF_DECLARE(exynos4412, "samsung,exynos4412-mct", mct_init_ppi);
diff --git a/drivers/clocksource/fsl_ftm_timer.c b/drivers/clocksource/fsl_ftm_timer.c
index 9ad4ca3..738515b 100644
--- a/drivers/clocksource/fsl_ftm_timer.c
+++ b/drivers/clocksource/fsl_ftm_timer.c
@@ -369,4 +369,4 @@ err:
kfree(priv);
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(flextimer, "fsl,ftm-timer", ftm_timer_init);
+CLOCKSOURCE_OF_DECLARE(flextimer, "fsl,ftm-timer", ftm_timer_init);
diff --git a/drivers/clocksource/h8300_timer16.c b/drivers/clocksource/h8300_timer16.c
index 9d99fc8..07d9d5b 100644
--- a/drivers/clocksource/h8300_timer16.c
+++ b/drivers/clocksource/h8300_timer16.c
@@ -187,5 +187,5 @@ free_clk:
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(h8300_16bit, "renesas,16bit-timer",
+CLOCKSOURCE_OF_DECLARE(h8300_16bit, "renesas,16bit-timer",
h8300_16timer_init);
diff --git a/drivers/clocksource/h8300_timer8.c b/drivers/clocksource/h8300_timer8.c
index 0292a19..546bb18 100644
--- a/drivers/clocksource/h8300_timer8.c
+++ b/drivers/clocksource/h8300_timer8.c
@@ -215,4 +215,4 @@ free_clk:
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(h8300_8bit, "renesas,8bit-timer", h8300_8timer_init);
+CLOCKSOURCE_OF_DECLARE(h8300_8bit, "renesas,8bit-timer", h8300_8timer_init);
diff --git a/drivers/clocksource/h8300_tpu.c b/drivers/clocksource/h8300_tpu.c
index 4faf718..7bdf199 100644
--- a/drivers/clocksource/h8300_tpu.c
+++ b/drivers/clocksource/h8300_tpu.c
@@ -154,4 +154,4 @@ free_clk:
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(h8300_tpu, "renesas,tpu", h8300_tpu_init);
+CLOCKSOURCE_OF_DECLARE(h8300_tpu, "renesas,tpu", h8300_tpu_init);
diff --git a/drivers/clocksource/meson6_timer.c b/drivers/clocksource/meson6_timer.c
index 3a6e78f..52af591 100644
--- a/drivers/clocksource/meson6_timer.c
+++ b/drivers/clocksource/meson6_timer.c
@@ -174,5 +174,5 @@ static int __init meson6_timer_init(struct device_node *node)
1, 0xfffe);
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(meson6, "amlogic,meson6-timer",
+CLOCKSOURCE_OF_DECLARE(meson6, "amlogic,meson6-timer",
meson6_timer_init);
diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c
index b164b87..1572c7a 100644
--- a/drivers/clocksource/mips-gic-timer.c
+++ b/drivers/clocksource/mips-gic-timer.c
@@ -222,5 +222,5 @@ static void __init gic_clocksource_of_init(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(mips_gic_timer, "mti,gic-timer",
+CLOCKSOURCE_OF_DECLARE(mips_gic_timer, "mti,gic-timer",
gic_clocksource_of_init);
diff --git a/drivers/clocksource/moxart_timer.c b/drivers/clocksource/moxart_timer.c
index b9c30cd..8414544 100644
--- a/drivers/clocksource/moxart_timer.c
+++ b/drivers/clocksource/moxart_timer.c
@@ -178,4 +178,4 @@ static int __init moxart_timer_init(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(moxart, "moxa,moxart-timer", moxart_timer_init);
+CLOCKSOURCE_OF_DECLARE(moxart, "moxa,moxart-timer", moxart_timer_init);
diff --git a/drivers/clocksource/mps2-timer.c b/drivers/clocksource/mps2-timer.c
index c303fa9..3e4431e 100644
--- a/drivers/clocksource/mps2-timer.c
+++ b/drivers/clocksource/mps2-timer.c
@@ -274,4 +274,4 @@ static int __init mps2_timer_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(mps2_timer, "arm,mps2-timer", mps2_timer_init);
+CLOCKSOURCE_OF_DECLARE(mps2_timer, "arm,mps2-timer", mps2_timer_init);
diff --git a/drivers/clocksource/mtk_timer.c b/drivers/clocksource/mtk_timer.c
index 432a2c0..9065949 100644
--- a/drivers/clocksource/mtk_timer.c
+++ b/drivers/clocksource/mtk_timer.c
@@ -265,4 +265,4 @@ err_kzalloc:
return -EINVAL;
}
-CLOCKSOURCE_OF_DECLARE_RET(mtk_mt6577, "mediatek,mt6577-timer", mtk_timer_init);
+CLOCKSOURCE_OF_DECLARE(mtk_mt6577, "mediatek,mt6577-timer", mtk_timer_init);
diff --git a/drivers/clocksource/mxs_timer.c b/drivers/clocksource/mxs_timer.c
index 17b9d19..630a8d3 100644
--- a/drivers/clocksource/mxs_timer.c
+++ b/drivers/clocksource/mxs_timer.c
@@ -295,4 +295,4 @@ static int __init mxs_timer_init(struct device_node *np)
return setup_irq(irq, &mxs_timer_irq);
}
-CLOCKSOURCE_OF_DECLARE_RET(mxs, "fsl,timrot", mxs_timer_init);
+CLOCKSOURCE_OF_DECLARE(mxs, "fsl,timrot", mxs_timer_init);
diff --git a/drivers/clocksource/nomadik-mtu.c b/drivers/clocksource/nomadik-mtu.c
index d2be5b3..3c124d1 100644
--- a/drivers/clocksource/nomadik-mtu.c
+++ b/drivers/clocksource/nomadik-mtu.c
@@ -284,5 +284,5 @@ static int __init nmdk_timer_of_init(struct device_node *node)
return nmdk_timer_init(base, irq, pclk, clk);
}
-CLOCKSOURCE_OF_DECLARE_RET(nomadik_mtu, "st,nomadik-mtu",
+CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu",
nmdk_timer_of_init);
diff --git a/drivers/clocksource/pxa_timer.c b/drivers/clocksource/pxa_timer.c
index 59af75c..937e10b 100644
--- a/drivers/clocksource/pxa_timer.c
+++ b/drivers/clocksource/pxa_timer.c
@@ -213,7 +213,7 @@ static int __init pxa_timer_dt_init(struct device_node *np)
return pxa_timer_common_init(irq, clk_get_rate(clk));
}
-CLOCKSOURCE_OF_DECLARE_RET(pxa_timer, "marvell,pxa-timer", pxa_timer_dt_init);
+CLOCKSOURCE_OF_DECLARE(pxa_timer, "marvell,pxa-timer", pxa_timer_dt_init);
/*
* Legacy timer init for non device-tree boards.
diff --git a/drivers/clocksource/qcom-timer.c b/drivers/clocksource/qcom-timer.c
index 79f73bd..6625763 100644
--- a/drivers/clocksource/qcom-timer.c
+++ b/drivers/clocksource/qcom-timer.c
@@ -273,5 +273,5 @@ static int __init msm_dt_timer_init(struct device_node *np)
return msm_timer_init(freq, 32, irq, !!percpu_offset);
}
-CLOCKSOURCE_OF_DECLARE_RET(kpss_timer, "qcom,kpss-timer", msm_dt_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(scss_timer, "qcom,scss-timer", msm_dt_timer_init);
+CLOCKSOURCE_OF_DECLARE(kpss_timer, "qcom,kpss-timer", msm_dt_timer_init);
+CLOCKSOURCE_OF_DECLARE(scss_timer, "qcom,scss-timer", msm_dt_timer_init);
diff --git a/drivers/clocksource/rockchip_timer.c b/drivers/clocksource/rockchip_timer.c
index d10bdee..d10e7a5 100644
--- a/drivers/clocksource/rockchip_timer.c
+++ b/drivers/clocksource/rockchip_timer.c
@@ -200,7 +200,7 @@ static int __init rk3399_timer_init(struct device_node *np)
return rk_timer_init(np, TIMER_CONTROL_REG3399);
}
-CLOCKSOURCE_OF_DECLARE_RET(rk3288_timer, "rockchip,rk3288-timer",
- rk3288_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(rk3399_timer, "rockchip,rk3399-timer",
- rk3399_timer_init);
+CLOCKSOURCE_OF_DECLARE(rk3288_timer, "rockchip,rk3288-timer",
+ rk3288_timer_init);
+CLOCKSOURCE_OF_DECLARE(rk3399_timer, "rockchip,rk3399-timer",
+ rk3399_timer_init);
diff --git a/drivers/clocksource/samsung_pwm_timer.c b/drivers/clocksource/samsung_pwm_timer.c
index 27a9797..54565bd 100644
--- a/drivers/clocksource/samsung_pwm_timer.c
+++ b/drivers/clocksource/samsung_pwm_timer.c
@@ -466,7 +466,7 @@ static int __init s3c2410_pwm_clocksource_init(struct device_node *np)
{
return samsung_pwm_alloc(np, &s3c24xx_variant);
}
-CLOCKSOURCE_OF_DECLARE_RET(s3c2410_pwm, "samsung,s3c2410-pwm", s3c2410_pwm_clocksource_init);
+CLOCKSOURCE_OF_DECLARE(s3c2410_pwm, "samsung,s3c2410-pwm", s3c2410_pwm_clocksource_init);
static const struct samsung_pwm_variant s3c64xx_variant = {
.bits = 32,
@@ -479,7 +479,7 @@ static int __init s3c64xx_pwm_clocksource_init(struct device_node *np)
{
return samsung_pwm_alloc(np, &s3c64xx_variant);
}
-CLOCKSOURCE_OF_DECLARE_RET(s3c6400_pwm, "samsung,s3c6400-pwm", s3c64xx_pwm_clocksource_init);
+CLOCKSOURCE_OF_DECLARE(s3c6400_pwm, "samsung,s3c6400-pwm", s3c64xx_pwm_clocksource_init);
static const struct samsung_pwm_variant s5p64x0_variant = {
.bits = 32,
@@ -492,7 +492,7 @@ static int __init s5p64x0_pwm_clocksource_init(struct device_node *np)
{
return samsung_pwm_alloc(np, &s5p64x0_variant);
}
-CLOCKSOURCE_OF_DECLARE_RET(s5p6440_pwm, "samsung,s5p6440-pwm", s5p64x0_pwm_clocksource_init);
+CLOCKSOURCE_OF_DECLARE(s5p6440_pwm, "samsung,s5p6440-pwm", s5p64x0_pwm_clocksource_init);
static const struct samsung_pwm_variant s5p_variant = {
.bits = 32,
@@ -505,5 +505,5 @@ static int __init s5p_pwm_clocksource_init(struct device_node *np)
{
return samsung_pwm_alloc(np, &s5p_variant);
}
-CLOCKSOURCE_OF_DECLARE_RET(s5pc100_pwm, "samsung,s5pc100-pwm", s5p_pwm_clocksource_init);
+CLOCKSOURCE_OF_DECLARE(s5pc100_pwm, "samsung,s5pc100-pwm", s5p_pwm_clocksource_init);
#endif
diff --git a/drivers/clocksource/sun4i_timer.c b/drivers/clocksource/sun4i_timer.c
index 4453730..97669ee 100644
--- a/drivers/clocksource/sun4i_timer.c
+++ b/drivers/clocksource/sun4i_timer.c
@@ -226,5 +226,5 @@ static int __init sun4i_timer_init(struct device_node *node)
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(sun4i, "allwinner,sun4i-a10-timer",
+CLOCKSOURCE_OF_DECLARE(sun4i, "allwinner,sun4i-a10-timer",
sun4i_timer_init);
diff --git a/drivers/clocksource/tango_xtal.c b/drivers/clocksource/tango_xtal.c
index 7dc716c..12fcef8 100644
--- a/drivers/clocksource/tango_xtal.c
+++ b/drivers/clocksource/tango_xtal.c
@@ -53,4 +53,4 @@ static int __init tango_clocksource_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(tango, "sigma,tick-counter", tango_clocksource_init);
+CLOCKSOURCE_OF_DECLARE(tango, "sigma,tick-counter", tango_clocksource_init);
diff --git a/drivers/clocksource/tegra20_timer.c b/drivers/clocksource/tegra20_timer.c
index 543c37e..f960891 100644
--- a/drivers/clocksource/tegra20_timer.c
+++ b/drivers/clocksource/tegra20_timer.c
@@ -237,7 +237,7 @@ static int __init tegra20_init_timer(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(tegra20_timer, "nvidia,tegra20-timer", tegra20_init_timer);
+CLOCKSOURCE_OF_DECLARE(tegra20_timer, "nvidia,tegra20-timer", tegra20_init_timer);
static int __init tegra20_init_rtc(struct device_node *np)
{
@@ -261,4 +261,4 @@ static int __init tegra20_init_rtc(struct device_node *np)
return register_persistent_clock(NULL, tegra_read_persistent_clock64);
}
-CLOCKSOURCE_OF_DECLARE_RET(tegra20_rtc, "nvidia,tegra20-rtc", tegra20_init_rtc);
+CLOCKSOURCE_OF_DECLARE(tegra20_rtc, "nvidia,tegra20-rtc", tegra20_init_rtc);
diff --git a/drivers/clocksource/time-armada-370-xp.c b/drivers/clocksource/time-armada-370-xp.c
index bc4ab48..a4e5923 100644
--- a/drivers/clocksource/time-armada-370-xp.c
+++ b/drivers/clocksource/time-armada-370-xp.c
@@ -371,7 +371,7 @@ static int __init armada_xp_timer_init(struct device_node *np)
return armada_370_xp_timer_common_init(np);
}
-CLOCKSOURCE_OF_DECLARE_RET(armada_xp, "marvell,armada-xp-timer",
+CLOCKSOURCE_OF_DECLARE(armada_xp, "marvell,armada-xp-timer",
armada_xp_timer_init);
static int __init armada_375_timer_init(struct device_node *np)
@@ -409,7 +409,7 @@ static int __init armada_375_timer_init(struct device_node *np)
return armada_370_xp_timer_common_init(np);
}
-CLOCKSOURCE_OF_DECLARE_RET(armada_375, "marvell,armada-375-timer",
+CLOCKSOURCE_OF_DECLARE(armada_375, "marvell,armada-375-timer",
armada_375_timer_init);
static int __init armada_370_timer_init(struct device_node *np)
@@ -432,5 +432,5 @@ static int __init armada_370_timer_init(struct device_node *np)
return armada_370_xp_timer_common_init(np);
}
-CLOCKSOURCE_OF_DECLARE_RET(armada_370, "marvell,armada-370-timer",
+CLOCKSOURCE_OF_DECLARE(armada_370, "marvell,armada-370-timer",
armada_370_timer_init);
diff --git a/drivers/clocksource/time-efm32.c b/drivers/clocksource/time-efm32.c
index b71ffc6..10a0521 100644
--- a/drivers/clocksource/time-efm32.c
+++ b/drivers/clocksource/time-efm32.c
@@ -282,5 +282,5 @@ static int __init efm32_timer_init(struct device_node *np)
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(efm32compat, "efm32,timer", efm32_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(efm32, "energymicro,efm32-timer", efm32_timer_init);
+CLOCKSOURCE_OF_DECLARE(efm32compat, "efm32,timer", efm32_timer_init);
+CLOCKSOURCE_OF_DECLARE(efm32, "energymicro,efm32-timer", efm32_timer_init);
diff --git a/drivers/clocksource/time-lpc32xx.c b/drivers/clocksource/time-lpc32xx.c
index cb5b866..9649cfd 100644
--- a/drivers/clocksource/time-lpc32xx.c
+++ b/drivers/clocksource/time-lpc32xx.c
@@ -311,4 +311,4 @@ static int __init lpc32xx_timer_init(struct device_node *np)
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(lpc32xx_timer, "nxp,lpc3220-timer", lpc32xx_timer_init);
+CLOCKSOURCE_OF_DECLARE(lpc32xx_timer, "nxp,lpc3220-timer", lpc32xx_timer_init);
diff --git a/drivers/clocksource/time-orion.c b/drivers/clocksource/time-orion.c
index 5fdeb5d..a28f496 100644
--- a/drivers/clocksource/time-orion.c
+++ b/drivers/clocksource/time-orion.c
@@ -167,4 +167,4 @@ static int __init orion_timer_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(orion_timer, "marvell,orion-timer", orion_timer_init);
+CLOCKSOURCE_OF_DECLARE(orion_timer, "marvell,orion-timer", orion_timer_init);
diff --git a/drivers/clocksource/time-pistachio.c b/drivers/clocksource/time-pistachio.c
index adaaec5..a7d9a08 100644
--- a/drivers/clocksource/time-pistachio.c
+++ b/drivers/clocksource/time-pistachio.c
@@ -214,5 +214,5 @@ static int __init pistachio_clksrc_of_init(struct device_node *node)
sched_clock_register(pistachio_read_sched_clock, 32, rate);
return clocksource_register_hz(&pcs_gpt.cs, rate);
}
-CLOCKSOURCE_OF_DECLARE_RET(pistachio_gptimer, "img,pistachio-gptimer",
+CLOCKSOURCE_OF_DECLARE(pistachio_gptimer, "img,pistachio-gptimer",
pistachio_clksrc_of_init);
diff --git a/drivers/clocksource/timer-atlas7.c b/drivers/clocksource/timer-atlas7.c
index 7b1a007..90f8fbc 100644
--- a/drivers/clocksource/timer-atlas7.c
+++ b/drivers/clocksource/timer-atlas7.c
@@ -304,4 +304,4 @@ static int __init sirfsoc_of_timer_init(struct device_node *np)
return sirfsoc_atlas7_timer_init(np);
}
-CLOCKSOURCE_OF_DECLARE_RET(sirfsoc_atlas7_timer, "sirf,atlas7-tick", sirfsoc_of_timer_init);
+CLOCKSOURCE_OF_DECLARE(sirfsoc_atlas7_timer, "sirf,atlas7-tick", sirfsoc_of_timer_init);
diff --git a/drivers/clocksource/timer-atmel-pit.c b/drivers/clocksource/timer-atmel-pit.c
index ffaca7c..1ffac0c 100644
--- a/drivers/clocksource/timer-atmel-pit.c
+++ b/drivers/clocksource/timer-atmel-pit.c
@@ -270,5 +270,5 @@ static int __init at91sam926x_pit_dt_init(struct device_node *node)
return at91sam926x_pit_common_init(data);
}
-CLOCKSOURCE_OF_DECLARE_RET(at91sam926x_pit, "atmel,at91sam9260-pit",
+CLOCKSOURCE_OF_DECLARE(at91sam926x_pit, "atmel,at91sam9260-pit",
at91sam926x_pit_dt_init);
diff --git a/drivers/clocksource/timer-atmel-st.c b/drivers/clocksource/timer-atmel-st.c
index e9331d3..e90ab5b 100644
--- a/drivers/clocksource/timer-atmel-st.c
+++ b/drivers/clocksource/timer-atmel-st.c
@@ -260,5 +260,5 @@ static int __init atmel_st_timer_init(struct device_node *node)
/* register clocksource */
return clocksource_register_hz(&clk32k, sclk_rate);
}
-CLOCKSOURCE_OF_DECLARE_RET(atmel_st_timer, "atmel,at91rm9200-st",
+CLOCKSOURCE_OF_DECLARE(atmel_st_timer, "atmel,at91rm9200-st",
atmel_st_timer_init);
diff --git a/drivers/clocksource/timer-digicolor.c b/drivers/clocksource/timer-digicolor.c
index b929061..10318cc 100644
--- a/drivers/clocksource/timer-digicolor.c
+++ b/drivers/clocksource/timer-digicolor.c
@@ -202,5 +202,5 @@ static int __init digicolor_timer_init(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(conexant_digicolor, "cnxt,cx92755-timer",
+CLOCKSOURCE_OF_DECLARE(conexant_digicolor, "cnxt,cx92755-timer",
digicolor_timer_init);
diff --git a/drivers/clocksource/timer-imx-gpt.c b/drivers/clocksource/timer-imx-gpt.c
index d5640a74..f595460 100644
--- a/drivers/clocksource/timer-imx-gpt.c
+++ b/drivers/clocksource/timer-imx-gpt.c
@@ -545,15 +545,15 @@ static int __init imx6dl_timer_init_dt(struct device_node *np)
return mxc_timer_init_dt(np, GPT_TYPE_IMX6DL);
}
-CLOCKSOURCE_OF_DECLARE_RET(imx1_timer, "fsl,imx1-gpt", imx1_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx21_timer, "fsl,imx21-gpt", imx21_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx27_timer, "fsl,imx27-gpt", imx21_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx31_timer, "fsl,imx31-gpt", imx31_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx25_timer, "fsl,imx25-gpt", imx31_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx50_timer, "fsl,imx50-gpt", imx31_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx51_timer, "fsl,imx51-gpt", imx31_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx53_timer, "fsl,imx53-gpt", imx31_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx6q_timer, "fsl,imx6q-gpt", imx31_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx6dl_timer, "fsl,imx6dl-gpt", imx6dl_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx6sl_timer, "fsl,imx6sl-gpt", imx6dl_timer_init_dt);
-CLOCKSOURCE_OF_DECLARE_RET(imx6sx_timer, "fsl,imx6sx-gpt", imx6dl_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx1_timer, "fsl,imx1-gpt", imx1_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx21_timer, "fsl,imx21-gpt", imx21_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx27_timer, "fsl,imx27-gpt", imx21_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx31_timer, "fsl,imx31-gpt", imx31_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx25_timer, "fsl,imx25-gpt", imx31_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx50_timer, "fsl,imx50-gpt", imx31_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx51_timer, "fsl,imx51-gpt", imx31_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx53_timer, "fsl,imx53-gpt", imx31_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx6q_timer, "fsl,imx6q-gpt", imx31_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx6dl_timer, "fsl,imx6dl-gpt", imx6dl_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx6sl_timer, "fsl,imx6sl-gpt", imx6dl_timer_init_dt);
+CLOCKSOURCE_OF_DECLARE(imx6sx_timer, "fsl,imx6sx-gpt", imx6dl_timer_init_dt);
diff --git a/drivers/clocksource/timer-integrator-ap.c b/drivers/clocksource/timer-integrator-ap.c
index 675face..df6e672 100644
--- a/drivers/clocksource/timer-integrator-ap.c
+++ b/drivers/clocksource/timer-integrator-ap.c
@@ -232,5 +232,5 @@ static int __init integrator_ap_timer_init_of(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(integrator_ap_timer, "arm,integrator-timer",
+CLOCKSOURCE_OF_DECLARE(integrator_ap_timer, "arm,integrator-timer",
integrator_ap_timer_init_of);
diff --git a/drivers/clocksource/timer-keystone.c b/drivers/clocksource/timer-keystone.c
index 4199823..ab68a47 100644
--- a/drivers/clocksource/timer-keystone.c
+++ b/drivers/clocksource/timer-keystone.c
@@ -226,5 +226,5 @@ err:
return error;
}
-CLOCKSOURCE_OF_DECLARE_RET(keystone_timer, "ti,keystone-timer",
+CLOCKSOURCE_OF_DECLARE(keystone_timer, "ti,keystone-timer",
keystone_timer_init);
diff --git a/drivers/clocksource/timer-nps.c b/drivers/clocksource/timer-nps.c
index b5c7b2b..70c149a 100644
--- a/drivers/clocksource/timer-nps.c
+++ b/drivers/clocksource/timer-nps.c
@@ -96,5 +96,5 @@ static int __init nps_timer_init(struct device_node *node)
return nps_setup_clocksource(node, clk);
}
-CLOCKSOURCE_OF_DECLARE_RET(ezchip_nps400_clksrc, "ezchip,nps400-timer",
- nps_timer_init);
+CLOCKSOURCE_OF_DECLARE(ezchip_nps400_clksrc, "ezchip,nps400-timer",
+ nps_timer_init);
diff --git a/drivers/clocksource/timer-oxnas-rps.c b/drivers/clocksource/timer-oxnas-rps.c
index 0d99f40..bd887e2 100644
--- a/drivers/clocksource/timer-oxnas-rps.c
+++ b/drivers/clocksource/timer-oxnas-rps.c
@@ -293,5 +293,5 @@ err_alloc:
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(ox810se_rps,
- "oxsemi,ox810se-rps-timer", oxnas_rps_timer_init);
+CLOCKSOURCE_OF_DECLARE(ox810se_rps,
+ "oxsemi,ox810se-rps-timer", oxnas_rps_timer_init);
diff --git a/drivers/clocksource/timer-prima2.c b/drivers/clocksource/timer-prima2.c
index 7b1084d..dae8a66 100644
--- a/drivers/clocksource/timer-prima2.c
+++ b/drivers/clocksource/timer-prima2.c
@@ -246,5 +246,5 @@ static int __init sirfsoc_prima2_timer_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(sirfsoc_prima2_timer,
+CLOCKSOURCE_OF_DECLARE(sirfsoc_prima2_timer,
"sirf,prima2-tick", sirfsoc_prima2_timer_init);
diff --git a/drivers/clocksource/timer-sp804.c b/drivers/clocksource/timer-sp804.c
index 7c2944ad..a2b28da 100644
--- a/drivers/clocksource/timer-sp804.c
+++ b/drivers/clocksource/timer-sp804.c
@@ -287,7 +287,7 @@ err:
iounmap(base);
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(sp804, "arm,sp804", sp804_of_init);
+CLOCKSOURCE_OF_DECLARE(sp804, "arm,sp804", sp804_of_init);
static int __init integrator_cp_of_init(struct device_node *np)
{
@@ -336,4 +336,4 @@ err:
iounmap(base);
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(intcp, "arm,integrator-cp-timer", integrator_cp_of_init);
+CLOCKSOURCE_OF_DECLARE(intcp, "arm,integrator-cp-timer", integrator_cp_of_init);
diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c
index d5bf352..1b2574c 100644
--- a/drivers/clocksource/timer-stm32.c
+++ b/drivers/clocksource/timer-stm32.c
@@ -187,4 +187,4 @@ err_clk_get:
return ret;
}
-CLOCKSOURCE_OF_DECLARE_RET(stm32, "st,stm32-timer", stm32_clockevent_init);
+CLOCKSOURCE_OF_DECLARE(stm32, "st,stm32-timer", stm32_clockevent_init);
diff --git a/drivers/clocksource/timer-sun5i.c b/drivers/clocksource/timer-sun5i.c
index f0a3ffb..c184eb8 100644
--- a/drivers/clocksource/timer-sun5i.c
+++ b/drivers/clocksource/timer-sun5i.c
@@ -346,7 +346,7 @@ static int __init sun5i_timer_init(struct device_node *node)
return sun5i_setup_clockevent(node, timer_base, clk, irq);
}
-CLOCKSOURCE_OF_DECLARE_RET(sun5i_a13, "allwinner,sun5i-a13-hstimer",
+CLOCKSOURCE_OF_DECLARE(sun5i_a13, "allwinner,sun5i-a13-hstimer",
sun5i_timer_init);
-CLOCKSOURCE_OF_DECLARE_RET(sun7i_a20, "allwinner,sun7i-a20-hstimer",
+CLOCKSOURCE_OF_DECLARE(sun7i_a20, "allwinner,sun7i-a20-hstimer",
sun5i_timer_init);
diff --git a/drivers/clocksource/timer-ti-32k.c b/drivers/clocksource/timer-ti-32k.c
index e4ad3c6e..92b7e39 100644
--- a/drivers/clocksource/timer-ti-32k.c
+++ b/drivers/clocksource/timer-ti-32k.c
@@ -124,5 +124,5 @@ static int __init ti_32k_timer_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(ti_32k_timer, "ti,omap-counter32k",
+CLOCKSOURCE_OF_DECLARE(ti_32k_timer, "ti,omap-counter32k",
ti_32k_timer_init);
diff --git a/drivers/clocksource/timer-u300.c b/drivers/clocksource/timer-u300.c
index a6a0dec..704e40c 100644
--- a/drivers/clocksource/timer-u300.c
+++ b/drivers/clocksource/timer-u300.c
@@ -458,5 +458,5 @@ static int __init u300_timer_init_of(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(u300_timer, "stericsson,u300-apptimer",
+CLOCKSOURCE_OF_DECLARE(u300_timer, "stericsson,u300-apptimer",
u300_timer_init_of);
diff --git a/drivers/clocksource/versatile.c b/drivers/clocksource/versatile.c
index 8daeffa..220b490 100644
--- a/drivers/clocksource/versatile.c
+++ b/drivers/clocksource/versatile.c
@@ -38,7 +38,7 @@ static int __init versatile_sched_clock_init(struct device_node *node)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(vexpress, "arm,vexpress-sysreg",
+CLOCKSOURCE_OF_DECLARE(vexpress, "arm,vexpress-sysreg",
versatile_sched_clock_init);
-CLOCKSOURCE_OF_DECLARE_RET(versatile, "arm,versatile-sysreg",
+CLOCKSOURCE_OF_DECLARE(versatile, "arm,versatile-sysreg",
versatile_sched_clock_init);
diff --git a/drivers/clocksource/vf_pit_timer.c b/drivers/clocksource/vf_pit_timer.c
index ca4dff4..55d8d84 100644
--- a/drivers/clocksource/vf_pit_timer.c
+++ b/drivers/clocksource/vf_pit_timer.c
@@ -201,4 +201,4 @@ static int __init pit_timer_init(struct device_node *np)
return pit_clockevent_init(clk_rate, irq);
}
-CLOCKSOURCE_OF_DECLARE_RET(vf610, "fsl,vf610-pit", pit_timer_init);
+CLOCKSOURCE_OF_DECLARE(vf610, "fsl,vf610-pit", pit_timer_init);
diff --git a/drivers/clocksource/vt8500_timer.c b/drivers/clocksource/vt8500_timer.c
index 1bc8707..b150694 100644
--- a/drivers/clocksource/vt8500_timer.c
+++ b/drivers/clocksource/vt8500_timer.c
@@ -165,4 +165,4 @@ static int __init vt8500_timer_init(struct device_node *np)
return 0;
}
-CLOCKSOURCE_OF_DECLARE_RET(vt8500, "via,vt8500-timer", vt8500_timer_init);
+CLOCKSOURCE_OF_DECLARE(vt8500, "via,vt8500-timer", vt8500_timer_init);
diff --git a/drivers/clocksource/zevio-timer.c b/drivers/clocksource/zevio-timer.c
index cb4cf056..9a53f5e 100644
--- a/drivers/clocksource/zevio-timer.c
+++ b/drivers/clocksource/zevio-timer.c
@@ -215,4 +215,4 @@ static int __init zevio_timer_init(struct device_node *node)
return zevio_timer_add(node);
}
-CLOCKSOURCE_OF_DECLARE_RET(zevio_timer, "lsi,zevio-timer", zevio_timer_init);
+CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_init);
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 8c6c626..6a67ab9 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -173,7 +173,6 @@
*(__##name##_of_table_end)
#define CLKSRC_OF_TABLES() OF_TABLE(CONFIG_CLKSRC_OF, clksrc)
-#define CLKSRC_RET_OF_TABLES() OF_TABLE(CONFIG_CLKSRC_OF, clksrc_ret)
#define IRQCHIP_OF_MATCH_TABLE() OF_TABLE(CONFIG_IRQCHIP, irqchip)
#define CLK_OF_TABLES() OF_TABLE(CONFIG_COMMON_CLK, clk)
#define IOMMU_OF_TABLES() OF_TABLE(CONFIG_OF_IOMMU, iommu)
@@ -532,7 +531,6 @@
CLK_OF_TABLES() \
RESERVEDMEM_OF_TABLES() \
CLKSRC_OF_TABLES() \
- CLKSRC_RET_OF_TABLES() \
IOMMU_OF_TABLES() \
CPU_METHOD_OF_TABLES() \
CPUIDLE_METHOD_OF_TABLES() \
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h
index 15c3839..0839818 100644
--- a/include/linux/clocksource.h
+++ b/include/linux/clocksource.h
@@ -244,10 +244,7 @@ extern int clocksource_mmio_init(void __iomem *, const char *,
extern int clocksource_i8253_init(void);
#define CLOCKSOURCE_OF_DECLARE(name, compat, fn) \
- OF_DECLARE_1(clksrc, name, compat, fn)
-
-#define CLOCKSOURCE_OF_DECLARE_RET(name, compat, fn) \
- OF_DECLARE_1_RET(clksrc_ret, name, compat, fn)
+ OF_DECLARE_1_RET(clksrc, name, compat, fn)
#ifdef CONFIG_CLKSRC_PROBE
extern void clocksource_probe(void);
--
1.9.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
@ 2016-06-17 8:36 ` Krzysztof Kozlowski
2016-06-17 16:04 ` Santosh Shilimkar
` (10 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Krzysztof Kozlowski @ 2016-06-17 8:36 UTC (permalink / raw)
To: linux-snps-arc
On 06/16/2016 11:27 PM, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
> arch/arm/kernel/smp_twd.c | 6 +++---
> arch/microblaze/kernel/timer.c | 2 +-
> arch/mips/ralink/cevt-rt3352.c | 2 +-
> arch/nios2/kernel/time.c | 2 +-
> drivers/clocksource/arm_arch_timer.c | 6 +++---
> drivers/clocksource/arm_global_timer.c | 2 +-
> drivers/clocksource/armv7m_systick.c | 2 +-
> drivers/clocksource/asm9260_timer.c | 2 +-
> drivers/clocksource/bcm2835_timer.c | 2 +-
> drivers/clocksource/bcm_kona_timer.c | 4 ++--
> drivers/clocksource/cadence_ttc_timer.c | 2 +-
> drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
> drivers/clocksource/clksrc-probe.c | 14 --------------
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> drivers/clocksource/clps711x-timer.c | 2 +-
> drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
> drivers/clocksource/exynos_mct.c | 4 ++--
> drivers/clocksource/fsl_ftm_timer.c | 2 +-
> drivers/clocksource/h8300_timer16.c | 2 +-
> drivers/clocksource/h8300_timer8.c | 2 +-
> drivers/clocksource/h8300_tpu.c | 2 +-
> drivers/clocksource/meson6_timer.c | 2 +-
> drivers/clocksource/mips-gic-timer.c | 2 +-
> drivers/clocksource/moxart_timer.c | 2 +-
> drivers/clocksource/mps2-timer.c | 2 +-
> drivers/clocksource/mtk_timer.c | 2 +-
> drivers/clocksource/mxs_timer.c | 2 +-
> drivers/clocksource/nomadik-mtu.c | 2 +-
> drivers/clocksource/pxa_timer.c | 2 +-
> drivers/clocksource/qcom-timer.c | 4 ++--
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
For exynos_mct and samsung_pwm_timer:
Acked-by: Krzysztof Kozlowski <k.kozlowski at samsung.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 61/63] clocksource/drivers/arc: Convert init function to return error
2016-06-16 21:27 ` [PATCH V2 61/63] clocksource/drivers/arc: Convert init function to return error Daniel Lezcano
@ 2016-06-17 8:59 ` Vineet Gupta
2016-06-17 10:09 ` [PATCH V3] " Daniel Lezcano
0 siblings, 1 reply; 21+ messages in thread
From: Vineet Gupta @ 2016-06-17 8:59 UTC (permalink / raw)
To: linux-snps-arc
On Thursday 16 June 2016 11:27 PM, Daniel Lezcano wrote:
> The init functions do not return any error. They behave as the following:
>
> - panic, thus leading to a kernel crash while another timer may work and
> make the system boot up correctly
>
> or
>
> - print an error and let the caller unaware if the state of the system
>
> Change that by converting the init functions to return an error conforming
> to the CLOCKSOURCE_OF_RET prototype.
>
> Proper error handling (rollback, errno value) will be changed later case
> by case, thus this change just return back an error or success in the init
> function.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
[...]
>
> @@ -172,27 +172,27 @@ static struct clocksource arc_counter_rtc = {
> .flags = CLOCK_SOURCE_IS_CONTINUOUS,
> };
>
> -static void __init arc_cs_setup_rtc(struct device_node *node)
> +static int __init arc_cs_setup_rtc(struct device_node *node)
> {
> int exists = cpuinfo_arc700[smp_processor_id()].extn.rtc;
> int ret;
>
> if (WARN(!exists, "Local-64-bit-Ctr clocksource not detected"))
> - return;
> + return -ENXIO;
>
> /* Local to CPU hence not usable in SMP */
> if (WARN(IS_ENABLED(CONFIG_SMP), "Local-64-bit-Ctr not usable in SMP"))
> - return;
> + return -EINVAL;
>
> ret = arc_get_timer_clk(node);
> if (ret)
> - return;
> + return ret;
>
> write_aux_reg(AUX_RTC_CTRL, 1);
>
> - clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
> + return clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
> }
> -CLOCKSOURCE_OF_DECLARE(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
> +CLOCKSOURCE_OF_DECLARE_RET(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
>
> #endif
>
> @@ -213,23 +213,23 @@ static struct clocksource arc_counter_timer1 = {
> .flags = CLOCK_SOURCE_IS_CONTINUOUS,
> };
>
> -static void __init arc_cs_setup_timer1(struct device_node *node)
> +static int __init arc_cs_setup_timer1(struct device_node *node)
> {
> int ret;
>
> /* Local to CPU hence not usable in SMP */
> if (IS_ENABLED(CONFIG_SMP))
> - return;
> + return 0;
-EINVAL to keep it similar as rtc above
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V3] clocksource/drivers/arc: Convert init function to return error
2016-06-17 8:59 ` Vineet Gupta
@ 2016-06-17 10:09 ` Daniel Lezcano
2016-06-17 14:30 ` Vineet Gupta
2016-06-24 4:06 ` Vineet Gupta
0 siblings, 2 replies; 21+ messages in thread
From: Daniel Lezcano @ 2016-06-17 10:09 UTC (permalink / raw)
To: linux-snps-arc
The init functions do not return any error. They behave as the following:
- panic, thus leading to a kernel crash while another timer may work and
make the system boot up correctly
or
- print an error and let the caller unaware if the state of the system
Change that by converting the init functions to return an error conforming
to the CLOCKSOURCE_OF_RET prototype.
Proper error handling (rollback, errno value) will be changed later case
by case, thus this change just return back an error or success in the init
function.
Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
---
arch/arc/kernel/time.c | 69 ++++++++++++++++++++++++++++++--------------------
1 file changed, 42 insertions(+), 27 deletions(-)
diff --git a/arch/arc/kernel/time.c b/arch/arc/kernel/time.c
index 4549ab2..b211f80 100644
--- a/arch/arc/kernel/time.c
+++ b/arch/arc/kernel/time.c
@@ -116,21 +116,21 @@ static struct clocksource arc_counter_gfrc = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
-static void __init arc_cs_setup_gfrc(struct device_node *node)
+static int __init arc_cs_setup_gfrc(struct device_node *node)
{
int exists = cpuinfo_arc700[0].extn.gfrc;
int ret;
if (WARN(!exists, "Global-64-bit-Ctr clocksource not detected"))
- return;
+ return -ENXIO;
ret = arc_get_timer_clk(node);
if (ret)
- return;
+ return ret;
- clocksource_register_hz(&arc_counter_gfrc, arc_timer_freq);
+ return clocksource_register_hz(&arc_counter_gfrc, arc_timer_freq);
}
-CLOCKSOURCE_OF_DECLARE(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
+CLOCKSOURCE_OF_DECLARE_RET(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
#endif
@@ -172,27 +172,27 @@ static struct clocksource arc_counter_rtc = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
-static void __init arc_cs_setup_rtc(struct device_node *node)
+static int __init arc_cs_setup_rtc(struct device_node *node)
{
int exists = cpuinfo_arc700[smp_processor_id()].extn.rtc;
int ret;
if (WARN(!exists, "Local-64-bit-Ctr clocksource not detected"))
- return;
+ return -ENXIO;
/* Local to CPU hence not usable in SMP */
if (WARN(IS_ENABLED(CONFIG_SMP), "Local-64-bit-Ctr not usable in SMP"))
- return;
+ return -EINVAL;
ret = arc_get_timer_clk(node);
if (ret)
- return;
+ return ret;
write_aux_reg(AUX_RTC_CTRL, 1);
- clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
+ return clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
}
-CLOCKSOURCE_OF_DECLARE(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
+CLOCKSOURCE_OF_DECLARE_RET(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
#endif
@@ -213,23 +213,23 @@ static struct clocksource arc_counter_timer1 = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS,
};
-static void __init arc_cs_setup_timer1(struct device_node *node)
+static int __init arc_cs_setup_timer1(struct device_node *node)
{
int ret;
/* Local to CPU hence not usable in SMP */
if (IS_ENABLED(CONFIG_SMP))
- return;
+ return -EINVAL;
ret = arc_get_timer_clk(node);
if (ret)
- return;
+ return ret;
write_aux_reg(ARC_REG_TIMER1_LIMIT, ARC_TIMER_MAX);
write_aux_reg(ARC_REG_TIMER1_CNT, 0);
write_aux_reg(ARC_REG_TIMER1_CTRL, TIMER_CTRL_NH);
- clocksource_register_hz(&arc_counter_timer1, arc_timer_freq);
+ return clocksource_register_hz(&arc_counter_timer1, arc_timer_freq);
}
/********** Clock Event Device *********/
@@ -324,20 +324,28 @@ static struct notifier_block arc_timer_cpu_nb = {
/*
* clockevent setup for boot CPU
*/
-static void __init arc_clockevent_setup(struct device_node *node)
+static int __init arc_clockevent_setup(struct device_node *node)
{
struct clock_event_device *evt = this_cpu_ptr(&arc_clockevent_device);
int ret;
- register_cpu_notifier(&arc_timer_cpu_nb);
+ ret = register_cpu_notifier(&arc_timer_cpu_nb);
+ if (ret) {
+ pr_err("Failed to register cpu notifier");
+ return ret;
+ }
arc_timer_irq = irq_of_parse_and_map(node, 0);
- if (arc_timer_irq <= 0)
- panic("clockevent: missing irq");
+ if (arc_timer_irq <= 0) {
+ pr_err("clockevent: missing irq");
+ return -EINVAL;
+ }
ret = arc_get_timer_clk(node);
- if (ret)
- panic("clockevent: missing clk");
+ if (ret) {
+ pr_err("clockevent: missing clk");
+ return ret;
+ }
evt->irq = arc_timer_irq;
evt->cpumask = cpumask_of(smp_processor_id());
@@ -347,24 +355,31 @@ static void __init arc_clockevent_setup(struct device_node *node)
/* Needs apriori irq_set_percpu_devid() done in intc map function */
ret = request_percpu_irq(arc_timer_irq, timer_irq_handler,
"Timer0 (per-cpu-tick)", evt);
- if (ret)
- panic("clockevent: unable to request irq\n");
+ if (ret) {
+ pr_err("clockevent: unable to request irq\n");
+ returnr ret;
+ }
enable_percpu_irq(arc_timer_irq, 0);
+
+ return 0;
}
-static void __init arc_of_timer_init(struct device_node *np)
+static int __init arc_of_timer_init(struct device_node *np)
{
static int init_count = 0;
+ int ret;
if (!init_count) {
init_count = 1;
- arc_clockevent_setup(np);
+ ret = arc_clockevent_setup(np);
} else {
- arc_cs_setup_timer1(np);
+ ret = arc_cs_setup_timer1(np);
}
+
+ return ret;
}
-CLOCKSOURCE_OF_DECLARE(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
+CLOCKSOURCE_OF_DECLARE_RET(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
/*
* Called from start_kernel() - boot CPU only
--
1.9.1
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH V3] clocksource/drivers/arc: Convert init function to return error
2016-06-17 10:09 ` [PATCH V3] " Daniel Lezcano
@ 2016-06-17 14:30 ` Vineet Gupta
2016-06-24 4:06 ` Vineet Gupta
1 sibling, 0 replies; 21+ messages in thread
From: Vineet Gupta @ 2016-06-17 14:30 UTC (permalink / raw)
To: linux-snps-arc
On Friday 17 June 2016 12:09 PM, Daniel Lezcano wrote:
> The init functions do not return any error. They behave as the following:
>
> - panic, thus leading to a kernel crash while another timer may work and
> make the system boot up correctly
>
> or
>
> - print an error and let the caller unaware if the state of the system
>
> Change that by converting the init functions to return an error conforming
> to the CLOCKSOURCE_OF_RET prototype.
>
> Proper error handling (rollback, errno value) will be changed later case
> by case, thus this change just return back an error or success in the init
> function.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
Acked-by: Vineet Gupta <vgupta at synopsys.com>
P.S. It would be nice to get cover letter for a series in addition to relevant
patches for full context, although per prev discussion on ARC timers, I kind of
knew what the idea was !
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
2016-06-17 8:36 ` Krzysztof Kozlowski
@ 2016-06-17 16:04 ` Santosh Shilimkar
2016-06-17 16:18 ` Matthias Brugger
` (9 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Santosh Shilimkar @ 2016-06-17 16:04 UTC (permalink / raw)
To: linux-snps-arc
On 6/16/2016 2:27 PM, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> drivers/clocksource/timer-keystone.c | 2 +-
Acked-by: Santosh Shilimkar <ssantosh at kernel.org>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
2016-06-17 8:36 ` Krzysztof Kozlowski
2016-06-17 16:04 ` Santosh Shilimkar
@ 2016-06-17 16:18 ` Matthias Brugger
2016-06-18 13:48 ` Heiko Stübner
` (8 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Matthias Brugger @ 2016-06-17 16:18 UTC (permalink / raw)
To: linux-snps-arc
On 16/06/16 23:27, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
[...]
> drivers/clocksource/mtk_timer.c | 2 +-
For mediatek driver:
Acked-by: Matthias Brugger <matthias.bgg at gmail.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (2 preceding siblings ...)
2016-06-17 16:18 ` Matthias Brugger
@ 2016-06-18 13:48 ` Heiko Stübner
2016-06-20 7:43 ` Patrice Chotard
` (7 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Heiko Stübner @ 2016-06-18 13:48 UTC (permalink / raw)
To: linux-snps-arc
Am Donnerstag, 16. Juni 2016, 23:27:22 schrieb Daniel Lezcano:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> diff --git
> a/drivers/clocksource/rockchip_timer.c
> b/drivers/clocksource/rockchip_timer.c index d10bdee..d10e7a5 100644
> --- a/drivers/clocksource/rockchip_timer.c
> +++ b/drivers/clocksource/rockchip_timer.c
> @@ -200,7 +200,7 @@ static int __init rk3399_timer_init(struct device_node
> *np) return rk_timer_init(np, TIMER_CONTROL_REG3399);
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(rk3288_timer, "rockchip,rk3288-timer",
> - rk3288_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(rk3399_timer, "rockchip,rk3399-timer",
> - rk3399_timer_init);
> +CLOCKSOURCE_OF_DECLARE(rk3288_timer, "rockchip,rk3288-timer",
> + rk3288_timer_init);
> +CLOCKSOURCE_OF_DECLARE(rk3399_timer, "rockchip,rk3399-timer",
> + rk3399_timer_init);
for the Rockchip-part
Acked-by: Heiko Stuebner <heiko at sntech.de>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (3 preceding siblings ...)
2016-06-18 13:48 ` Heiko Stübner
@ 2016-06-20 7:43 ` Patrice Chotard
2016-06-20 9:17 ` Liviu Dudau
` (6 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Patrice Chotard @ 2016-06-20 7:43 UTC (permalink / raw)
To: linux-snps-arc
On 06/16/2016 11:27 PM, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
>
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
> index c9022a9..03cc492 100644
> --- a/drivers/clocksource/clksrc_st_lpc.c
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -132,4 +132,4 @@ static int __init st_clksrc_of_register(struct device_node *np)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(ddata, "st,stih407-lpc", st_clksrc_of_register);
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
>
For STi :
Acked-by: Patrice Chotard <patrice.chotard at st.com>
Thanks
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (4 preceding siblings ...)
2016-06-20 7:43 ` Patrice Chotard
@ 2016-06-20 9:17 ` Liviu Dudau
2016-06-20 9:19 ` Neil Armstrong
` (5 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Liviu Dudau @ 2016-06-20 9:17 UTC (permalink / raw)
To: linux-snps-arc
On Thu, Jun 16, 2016@11:27:22PM +0200, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
> arch/arm/kernel/smp_twd.c | 6 +++---
> arch/microblaze/kernel/timer.c | 2 +-
> arch/mips/ralink/cevt-rt3352.c | 2 +-
> arch/nios2/kernel/time.c | 2 +-
> drivers/clocksource/arm_arch_timer.c | 6 +++---
> drivers/clocksource/arm_global_timer.c | 2 +-
> drivers/clocksource/armv7m_systick.c | 2 +-
> drivers/clocksource/asm9260_timer.c | 2 +-
> drivers/clocksource/bcm2835_timer.c | 2 +-
> drivers/clocksource/bcm_kona_timer.c | 4 ++--
> drivers/clocksource/cadence_ttc_timer.c | 2 +-
> drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
> drivers/clocksource/clksrc-probe.c | 14 --------------
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> drivers/clocksource/clps711x-timer.c | 2 +-
> drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
> drivers/clocksource/exynos_mct.c | 4 ++--
> drivers/clocksource/fsl_ftm_timer.c | 2 +-
> drivers/clocksource/h8300_timer16.c | 2 +-
> drivers/clocksource/h8300_timer8.c | 2 +-
> drivers/clocksource/h8300_tpu.c | 2 +-
> drivers/clocksource/meson6_timer.c | 2 +-
> drivers/clocksource/mips-gic-timer.c | 2 +-
> drivers/clocksource/moxart_timer.c | 2 +-
> drivers/clocksource/mps2-timer.c | 2 +-
> drivers/clocksource/mtk_timer.c | 2 +-
> drivers/clocksource/mxs_timer.c | 2 +-
> drivers/clocksource/nomadik-mtu.c | 2 +-
> drivers/clocksource/pxa_timer.c | 2 +-
> drivers/clocksource/qcom-timer.c | 4 ++--
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
> drivers/clocksource/sun4i_timer.c | 2 +-
> drivers/clocksource/tango_xtal.c | 2 +-
> drivers/clocksource/tegra20_timer.c | 4 ++--
> drivers/clocksource/time-armada-370-xp.c | 6 +++---
> drivers/clocksource/time-efm32.c | 4 ++--
> drivers/clocksource/time-lpc32xx.c | 2 +-
> drivers/clocksource/time-orion.c | 2 +-
> drivers/clocksource/time-pistachio.c | 2 +-
> drivers/clocksource/timer-atlas7.c | 2 +-
> drivers/clocksource/timer-atmel-pit.c | 2 +-
> drivers/clocksource/timer-atmel-st.c | 2 +-
> drivers/clocksource/timer-digicolor.c | 2 +-
> drivers/clocksource/timer-imx-gpt.c | 24 ++++++++++++------------
> drivers/clocksource/timer-integrator-ap.c | 2 +-
> drivers/clocksource/timer-keystone.c | 2 +-
> drivers/clocksource/timer-nps.c | 4 ++--
> drivers/clocksource/timer-oxnas-rps.c | 4 ++--
> drivers/clocksource/timer-prima2.c | 2 +-
> drivers/clocksource/timer-sp804.c | 4 ++--
> drivers/clocksource/timer-stm32.c | 2 +-
> drivers/clocksource/timer-sun5i.c | 4 ++--
> drivers/clocksource/timer-ti-32k.c | 2 +-
> drivers/clocksource/timer-u300.c | 2 +-
> drivers/clocksource/versatile.c | 4 ++--
> drivers/clocksource/vf_pit_timer.c | 2 +-
> drivers/clocksource/vt8500_timer.c | 2 +-
> drivers/clocksource/zevio-timer.c | 2 +-
> include/asm-generic/vmlinux.lds.h | 2 --
> include/linux/clocksource.h | 5 +----
> 62 files changed, 98 insertions(+), 117 deletions(-)
For the mps2-timer.c and versatile.c changes:
Acked-by: Liviu Dudau <Liviu.Dudau at arm.com>
Thanks for all the work!
Liviu
>
> diff --git a/arch/arc/kernel/time.c b/arch/arc/kernel/time.c
> index 36110cd..ee00f2f 100644
> --- a/arch/arc/kernel/time.c
> +++ b/arch/arc/kernel/time.c
> @@ -130,7 +130,7 @@ static int __init arc_cs_setup_gfrc(struct device_node *node)
>
> return clocksource_register_hz(&arc_counter_gfrc, arc_timer_freq);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
> +CLOCKSOURCE_OF_DECLARE(arc_gfrc, "snps,archs-timer-gfrc", arc_cs_setup_gfrc);
>
> #endif
>
> @@ -192,7 +192,7 @@ static int __init arc_cs_setup_rtc(struct device_node *node)
>
> return clocksource_register_hz(&arc_counter_rtc, arc_timer_freq);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
> +CLOCKSOURCE_OF_DECLARE(arc_rtc, "snps,archs-timer-rtc", arc_cs_setup_rtc);
>
> #endif
>
> @@ -379,7 +379,7 @@ static int __init arc_of_timer_init(struct device_node *np)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
> +CLOCKSOURCE_OF_DECLARE(arc_clkevt, "snps,arc-timer", arc_of_timer_init);
>
> /*
> * Called from start_kernel() - boot CPU only
> diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c
> index 2b24be4..b6ec65e 100644
> --- a/arch/arm/kernel/smp_twd.c
> +++ b/arch/arm/kernel/smp_twd.c
> @@ -412,7 +412,7 @@ out:
> WARN(err, "twd_local_timer_of_register failed (%d)\n", err);
> return err;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register);
> -CLOCKSOURCE_OF_DECLARE_RET(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register);
> -CLOCKSOURCE_OF_DECLARE_RET(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register);
> +CLOCKSOURCE_OF_DECLARE(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register);
> +CLOCKSOURCE_OF_DECLARE(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register);
> +CLOCKSOURCE_OF_DECLARE(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register);
> #endif
> diff --git a/arch/microblaze/kernel/timer.c b/arch/microblaze/kernel/timer.c
> index 7f35e7b..5bbf38b 100644
> --- a/arch/microblaze/kernel/timer.c
> +++ b/arch/microblaze/kernel/timer.c
> @@ -332,5 +332,5 @@ static int __init xilinx_timer_init(struct device_node *timer)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(xilinx_timer, "xlnx,xps-timer-1.00.a",
> +CLOCKSOURCE_OF_DECLARE(xilinx_timer, "xlnx,xps-timer-1.00.a",
> xilinx_timer_init);
> diff --git a/arch/mips/ralink/cevt-rt3352.c b/arch/mips/ralink/cevt-rt3352.c
> index f2d3c79..f24eee0 100644
> --- a/arch/mips/ralink/cevt-rt3352.c
> +++ b/arch/mips/ralink/cevt-rt3352.c
> @@ -150,4 +150,4 @@ static int __init ralink_systick_init(struct device_node *np)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(systick, "ralink,cevt-systick", ralink_systick_init);
> +CLOCKSOURCE_OF_DECLARE(systick, "ralink,cevt-systick", ralink_systick_init);
> diff --git a/arch/nios2/kernel/time.c b/arch/nios2/kernel/time.c
> index 9fa7739..f337eef 100644
> --- a/arch/nios2/kernel/time.c
> +++ b/arch/nios2/kernel/time.c
> @@ -354,4 +354,4 @@ void __init time_init(void)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(nios2_timer, ALTR_TIMER_COMPATIBLE, nios2_time_init);
> +CLOCKSOURCE_OF_DECLARE(nios2_timer, ALTR_TIMER_COMPATIBLE, nios2_time_init);
> diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
> index d0cda68..9e33309 100644
> --- a/drivers/clocksource/arm_arch_timer.c
> +++ b/drivers/clocksource/arm_arch_timer.c
> @@ -784,8 +784,8 @@ static int __init arch_timer_of_init(struct device_node *np)
>
> return arch_timer_init();
> }
> -CLOCKSOURCE_OF_DECLARE_RET(armv7_arch_timer, "arm,armv7-timer", arch_timer_of_init);
> -CLOCKSOURCE_OF_DECLARE_RET(armv8_arch_timer, "arm,armv8-timer", arch_timer_of_init);
> +CLOCKSOURCE_OF_DECLARE(armv7_arch_timer, "arm,armv7-timer", arch_timer_of_init);
> +CLOCKSOURCE_OF_DECLARE(armv8_arch_timer, "arm,armv8-timer", arch_timer_of_init);
>
> static int __init arch_timer_mem_init(struct device_node *np)
> {
> @@ -868,7 +868,7 @@ out:
> of_node_put(best_frame);
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(armv7_arch_timer_mem, "arm,armv7-timer-mem",
> +CLOCKSOURCE_OF_DECLARE(armv7_arch_timer_mem, "arm,armv7-timer-mem",
> arch_timer_mem_init);
>
> #ifdef CONFIG_ACPI
> diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c
> index 40104fc..2a9ceb6 100644
> --- a/drivers/clocksource/arm_global_timer.c
> +++ b/drivers/clocksource/arm_global_timer.c
> @@ -358,5 +358,5 @@ out_unmap:
> }
>
> /* Only tested on r2p2 and r3p0 */
> -CLOCKSOURCE_OF_DECLARE_RET(arm_gt, "arm,cortex-a9-global-timer",
> +CLOCKSOURCE_OF_DECLARE(arm_gt, "arm,cortex-a9-global-timer",
> global_timer_of_register);
> diff --git a/drivers/clocksource/armv7m_systick.c b/drivers/clocksource/armv7m_systick.c
> index 2b55410..e93af1f 100644
> --- a/drivers/clocksource/armv7m_systick.c
> +++ b/drivers/clocksource/armv7m_systick.c
> @@ -81,5 +81,5 @@ out_unmap:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(arm_systick, "arm,armv7m-systick",
> +CLOCKSOURCE_OF_DECLARE(arm_systick, "arm,armv7m-systick",
> system_timer_of_register);
> diff --git a/drivers/clocksource/asm9260_timer.c b/drivers/clocksource/asm9260_timer.c
> index d113c02..1ba871b 100644
> --- a/drivers/clocksource/asm9260_timer.c
> +++ b/drivers/clocksource/asm9260_timer.c
> @@ -238,5 +238,5 @@ static int __init asm9260_timer_init(struct device_node *np)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(asm9260_timer, "alphascale,asm9260-timer",
> +CLOCKSOURCE_OF_DECLARE(asm9260_timer, "alphascale,asm9260-timer",
> asm9260_timer_init);
> diff --git a/drivers/clocksource/bcm2835_timer.c b/drivers/clocksource/bcm2835_timer.c
> index 2dcf896..e71acf2 100644
> --- a/drivers/clocksource/bcm2835_timer.c
> +++ b/drivers/clocksource/bcm2835_timer.c
> @@ -142,5 +142,5 @@ static int __init bcm2835_timer_init(struct device_node *node)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(bcm2835, "brcm,bcm2835-system-timer",
> +CLOCKSOURCE_OF_DECLARE(bcm2835, "brcm,bcm2835-system-timer",
> bcm2835_timer_init);
> diff --git a/drivers/clocksource/bcm_kona_timer.c b/drivers/clocksource/bcm_kona_timer.c
> index 98bc2a2..ee07e7e3 100644
> --- a/drivers/clocksource/bcm_kona_timer.c
> +++ b/drivers/clocksource/bcm_kona_timer.c
> @@ -200,9 +200,9 @@ static int __init kona_timer_init(struct device_node *node)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(brcm_kona, "brcm,kona-timer", kona_timer_init);
> +CLOCKSOURCE_OF_DECLARE(brcm_kona, "brcm,kona-timer", kona_timer_init);
> /*
> * bcm,kona-timer is deprecated by brcm,kona-timer
> * being kept here for driver compatibility
> */
> -CLOCKSOURCE_OF_DECLARE_RET(bcm_kona, "bcm,kona-timer", kona_timer_init);
> +CLOCKSOURCE_OF_DECLARE(bcm_kona, "bcm,kona-timer", kona_timer_init);
> diff --git a/drivers/clocksource/cadence_ttc_timer.c b/drivers/clocksource/cadence_ttc_timer.c
> index e2e7631..388a77b 100644
> --- a/drivers/clocksource/cadence_ttc_timer.c
> +++ b/drivers/clocksource/cadence_ttc_timer.c
> @@ -539,4 +539,4 @@ static int __init ttc_timer_init(struct device_node *timer)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(ttc, "cdns,ttc", ttc_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ttc, "cdns,ttc", ttc_timer_init);
> diff --git a/drivers/clocksource/clksrc-dbx500-prcmu.c b/drivers/clocksource/clksrc-dbx500-prcmu.c
> index 5a59d29..77a365f 100644
> --- a/drivers/clocksource/clksrc-dbx500-prcmu.c
> +++ b/drivers/clocksource/clksrc-dbx500-prcmu.c
> @@ -86,5 +86,5 @@ static int __init clksrc_dbx500_prcmu_init(struct device_node *node)
> #endif
> return clocksource_register_hz(&clocksource_dbx500_prcmu, RATE_32K);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4",
> +CLOCKSOURCE_OF_DECLARE(dbx500_prcmu, "stericsson,db8500-prcmu-timer-4",
> clksrc_dbx500_prcmu_init);
> diff --git a/drivers/clocksource/clksrc-probe.c b/drivers/clocksource/clksrc-probe.c
> index 5fa6a55..bc62be9 100644
> --- a/drivers/clocksource/clksrc-probe.c
> +++ b/drivers/clocksource/clksrc-probe.c
> @@ -20,19 +20,14 @@
> #include <linux/clocksource.h>
>
> extern struct of_device_id __clksrc_of_table[];
> -extern struct of_device_id __clksrc_ret_of_table[];
>
> static const struct of_device_id __clksrc_of_table_sentinel
> __used __section(__clksrc_of_table_end);
>
> -static const struct of_device_id __clksrc_ret_of_table_sentinel
> - __used __section(__clksrc_ret_of_table_end);
> -
> void __init clocksource_probe(void)
> {
> struct device_node *np;
> const struct of_device_id *match;
> - of_init_fn_1 init_func;
> of_init_fn_1_ret init_func_ret;
> unsigned clocksources = 0;
> int ret;
> @@ -41,15 +36,6 @@ void __init clocksource_probe(void)
> if (!of_device_is_available(np))
> continue;
>
> - init_func = match->data;
> - init_func(np);
> - clocksources++;
> - }
> -
> - for_each_matching_node_and_match(np, __clksrc_ret_of_table, &match) {
> - if (!of_device_is_available(np))
> - continue;
> -
> init_func_ret = match->data;
>
> ret = init_func_ret(np);
> diff --git a/drivers/clocksource/clksrc_st_lpc.c b/drivers/clocksource/clksrc_st_lpc.c
> index c9022a9..03cc492 100644
> --- a/drivers/clocksource/clksrc_st_lpc.c
> +++ b/drivers/clocksource/clksrc_st_lpc.c
> @@ -132,4 +132,4 @@ static int __init st_clksrc_of_register(struct device_node *np)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(ddata, "st,stih407-lpc", st_clksrc_of_register);
> +CLOCKSOURCE_OF_DECLARE(ddata, "st,stih407-lpc", st_clksrc_of_register);
> diff --git a/drivers/clocksource/clps711x-timer.c b/drivers/clocksource/clps711x-timer.c
> index 3b66198..84aed78 100644
> --- a/drivers/clocksource/clps711x-timer.c
> +++ b/drivers/clocksource/clps711x-timer.c
> @@ -119,5 +119,5 @@ static int __init clps711x_timer_init(struct device_node *np)
> return -EINVAL;
> }
> }
> -CLOCKSOURCE_OF_DECLARE_RET(clps711x, "cirrus,clps711x-timer", clps711x_timer_init);
> +CLOCKSOURCE_OF_DECLARE(clps711x, "cirrus,clps711x-timer", clps711x_timer_init);
> #endif
> diff --git a/drivers/clocksource/dw_apb_timer_of.c b/drivers/clocksource/dw_apb_timer_of.c
> index 4985a2c..aee6c0d 100644
> --- a/drivers/clocksource/dw_apb_timer_of.c
> +++ b/drivers/clocksource/dw_apb_timer_of.c
> @@ -167,7 +167,7 @@ static int __init dw_apb_timer_init(struct device_node *timer)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(pc3x2_timer, "picochip,pc3x2-timer", dw_apb_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(apb_timer_osc, "snps,dw-apb-timer-osc", dw_apb_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(apb_timer_sp, "snps,dw-apb-timer-sp", dw_apb_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(apb_timer, "snps,dw-apb-timer", dw_apb_timer_init);
> +CLOCKSOURCE_OF_DECLARE(pc3x2_timer, "picochip,pc3x2-timer", dw_apb_timer_init);
> +CLOCKSOURCE_OF_DECLARE(apb_timer_osc, "snps,dw-apb-timer-osc", dw_apb_timer_init);
> +CLOCKSOURCE_OF_DECLARE(apb_timer_sp, "snps,dw-apb-timer-sp", dw_apb_timer_init);
> +CLOCKSOURCE_OF_DECLARE(apb_timer, "snps,dw-apb-timer", dw_apb_timer_init);
> diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
> index f6caed0..0d18dd4b 100644
> --- a/drivers/clocksource/exynos_mct.c
> +++ b/drivers/clocksource/exynos_mct.c
> @@ -627,5 +627,5 @@ static int __init mct_init_ppi(struct device_node *np)
> {
> return mct_init_dt(np, MCT_INT_PPI);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(exynos4210, "samsung,exynos4210-mct", mct_init_spi);
> -CLOCKSOURCE_OF_DECLARE_RET(exynos4412, "samsung,exynos4412-mct", mct_init_ppi);
> +CLOCKSOURCE_OF_DECLARE(exynos4210, "samsung,exynos4210-mct", mct_init_spi);
> +CLOCKSOURCE_OF_DECLARE(exynos4412, "samsung,exynos4412-mct", mct_init_ppi);
> diff --git a/drivers/clocksource/fsl_ftm_timer.c b/drivers/clocksource/fsl_ftm_timer.c
> index 9ad4ca3..738515b 100644
> --- a/drivers/clocksource/fsl_ftm_timer.c
> +++ b/drivers/clocksource/fsl_ftm_timer.c
> @@ -369,4 +369,4 @@ err:
> kfree(priv);
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(flextimer, "fsl,ftm-timer", ftm_timer_init);
> +CLOCKSOURCE_OF_DECLARE(flextimer, "fsl,ftm-timer", ftm_timer_init);
> diff --git a/drivers/clocksource/h8300_timer16.c b/drivers/clocksource/h8300_timer16.c
> index 9d99fc8..07d9d5b 100644
> --- a/drivers/clocksource/h8300_timer16.c
> +++ b/drivers/clocksource/h8300_timer16.c
> @@ -187,5 +187,5 @@ free_clk:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(h8300_16bit, "renesas,16bit-timer",
> +CLOCKSOURCE_OF_DECLARE(h8300_16bit, "renesas,16bit-timer",
> h8300_16timer_init);
> diff --git a/drivers/clocksource/h8300_timer8.c b/drivers/clocksource/h8300_timer8.c
> index 0292a19..546bb18 100644
> --- a/drivers/clocksource/h8300_timer8.c
> +++ b/drivers/clocksource/h8300_timer8.c
> @@ -215,4 +215,4 @@ free_clk:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(h8300_8bit, "renesas,8bit-timer", h8300_8timer_init);
> +CLOCKSOURCE_OF_DECLARE(h8300_8bit, "renesas,8bit-timer", h8300_8timer_init);
> diff --git a/drivers/clocksource/h8300_tpu.c b/drivers/clocksource/h8300_tpu.c
> index 4faf718..7bdf199 100644
> --- a/drivers/clocksource/h8300_tpu.c
> +++ b/drivers/clocksource/h8300_tpu.c
> @@ -154,4 +154,4 @@ free_clk:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(h8300_tpu, "renesas,tpu", h8300_tpu_init);
> +CLOCKSOURCE_OF_DECLARE(h8300_tpu, "renesas,tpu", h8300_tpu_init);
> diff --git a/drivers/clocksource/meson6_timer.c b/drivers/clocksource/meson6_timer.c
> index 3a6e78f..52af591 100644
> --- a/drivers/clocksource/meson6_timer.c
> +++ b/drivers/clocksource/meson6_timer.c
> @@ -174,5 +174,5 @@ static int __init meson6_timer_init(struct device_node *node)
> 1, 0xfffe);
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(meson6, "amlogic,meson6-timer",
> +CLOCKSOURCE_OF_DECLARE(meson6, "amlogic,meson6-timer",
> meson6_timer_init);
> diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c
> index b164b87..1572c7a 100644
> --- a/drivers/clocksource/mips-gic-timer.c
> +++ b/drivers/clocksource/mips-gic-timer.c
> @@ -222,5 +222,5 @@ static void __init gic_clocksource_of_init(struct device_node *node)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(mips_gic_timer, "mti,gic-timer",
> +CLOCKSOURCE_OF_DECLARE(mips_gic_timer, "mti,gic-timer",
> gic_clocksource_of_init);
> diff --git a/drivers/clocksource/moxart_timer.c b/drivers/clocksource/moxart_timer.c
> index b9c30cd..8414544 100644
> --- a/drivers/clocksource/moxart_timer.c
> +++ b/drivers/clocksource/moxart_timer.c
> @@ -178,4 +178,4 @@ static int __init moxart_timer_init(struct device_node *node)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(moxart, "moxa,moxart-timer", moxart_timer_init);
> +CLOCKSOURCE_OF_DECLARE(moxart, "moxa,moxart-timer", moxart_timer_init);
> diff --git a/drivers/clocksource/mps2-timer.c b/drivers/clocksource/mps2-timer.c
> index c303fa9..3e4431e 100644
> --- a/drivers/clocksource/mps2-timer.c
> +++ b/drivers/clocksource/mps2-timer.c
> @@ -274,4 +274,4 @@ static int __init mps2_timer_init(struct device_node *np)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(mps2_timer, "arm,mps2-timer", mps2_timer_init);
> +CLOCKSOURCE_OF_DECLARE(mps2_timer, "arm,mps2-timer", mps2_timer_init);
> diff --git a/drivers/clocksource/mtk_timer.c b/drivers/clocksource/mtk_timer.c
> index 432a2c0..9065949 100644
> --- a/drivers/clocksource/mtk_timer.c
> +++ b/drivers/clocksource/mtk_timer.c
> @@ -265,4 +265,4 @@ err_kzalloc:
>
> return -EINVAL;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(mtk_mt6577, "mediatek,mt6577-timer", mtk_timer_init);
> +CLOCKSOURCE_OF_DECLARE(mtk_mt6577, "mediatek,mt6577-timer", mtk_timer_init);
> diff --git a/drivers/clocksource/mxs_timer.c b/drivers/clocksource/mxs_timer.c
> index 17b9d19..630a8d3 100644
> --- a/drivers/clocksource/mxs_timer.c
> +++ b/drivers/clocksource/mxs_timer.c
> @@ -295,4 +295,4 @@ static int __init mxs_timer_init(struct device_node *np)
>
> return setup_irq(irq, &mxs_timer_irq);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(mxs, "fsl,timrot", mxs_timer_init);
> +CLOCKSOURCE_OF_DECLARE(mxs, "fsl,timrot", mxs_timer_init);
> diff --git a/drivers/clocksource/nomadik-mtu.c b/drivers/clocksource/nomadik-mtu.c
> index d2be5b3..3c124d1 100644
> --- a/drivers/clocksource/nomadik-mtu.c
> +++ b/drivers/clocksource/nomadik-mtu.c
> @@ -284,5 +284,5 @@ static int __init nmdk_timer_of_init(struct device_node *node)
>
> return nmdk_timer_init(base, irq, pclk, clk);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(nomadik_mtu, "st,nomadik-mtu",
> +CLOCKSOURCE_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu",
> nmdk_timer_of_init);
> diff --git a/drivers/clocksource/pxa_timer.c b/drivers/clocksource/pxa_timer.c
> index 59af75c..937e10b 100644
> --- a/drivers/clocksource/pxa_timer.c
> +++ b/drivers/clocksource/pxa_timer.c
> @@ -213,7 +213,7 @@ static int __init pxa_timer_dt_init(struct device_node *np)
>
> return pxa_timer_common_init(irq, clk_get_rate(clk));
> }
> -CLOCKSOURCE_OF_DECLARE_RET(pxa_timer, "marvell,pxa-timer", pxa_timer_dt_init);
> +CLOCKSOURCE_OF_DECLARE(pxa_timer, "marvell,pxa-timer", pxa_timer_dt_init);
>
> /*
> * Legacy timer init for non device-tree boards.
> diff --git a/drivers/clocksource/qcom-timer.c b/drivers/clocksource/qcom-timer.c
> index 79f73bd..6625763 100644
> --- a/drivers/clocksource/qcom-timer.c
> +++ b/drivers/clocksource/qcom-timer.c
> @@ -273,5 +273,5 @@ static int __init msm_dt_timer_init(struct device_node *np)
>
> return msm_timer_init(freq, 32, irq, !!percpu_offset);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(kpss_timer, "qcom,kpss-timer", msm_dt_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(scss_timer, "qcom,scss-timer", msm_dt_timer_init);
> +CLOCKSOURCE_OF_DECLARE(kpss_timer, "qcom,kpss-timer", msm_dt_timer_init);
> +CLOCKSOURCE_OF_DECLARE(scss_timer, "qcom,scss-timer", msm_dt_timer_init);
> diff --git a/drivers/clocksource/rockchip_timer.c b/drivers/clocksource/rockchip_timer.c
> index d10bdee..d10e7a5 100644
> --- a/drivers/clocksource/rockchip_timer.c
> +++ b/drivers/clocksource/rockchip_timer.c
> @@ -200,7 +200,7 @@ static int __init rk3399_timer_init(struct device_node *np)
> return rk_timer_init(np, TIMER_CONTROL_REG3399);
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(rk3288_timer, "rockchip,rk3288-timer",
> - rk3288_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(rk3399_timer, "rockchip,rk3399-timer",
> - rk3399_timer_init);
> +CLOCKSOURCE_OF_DECLARE(rk3288_timer, "rockchip,rk3288-timer",
> + rk3288_timer_init);
> +CLOCKSOURCE_OF_DECLARE(rk3399_timer, "rockchip,rk3399-timer",
> + rk3399_timer_init);
> diff --git a/drivers/clocksource/samsung_pwm_timer.c b/drivers/clocksource/samsung_pwm_timer.c
> index 27a9797..54565bd 100644
> --- a/drivers/clocksource/samsung_pwm_timer.c
> +++ b/drivers/clocksource/samsung_pwm_timer.c
> @@ -466,7 +466,7 @@ static int __init s3c2410_pwm_clocksource_init(struct device_node *np)
> {
> return samsung_pwm_alloc(np, &s3c24xx_variant);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(s3c2410_pwm, "samsung,s3c2410-pwm", s3c2410_pwm_clocksource_init);
> +CLOCKSOURCE_OF_DECLARE(s3c2410_pwm, "samsung,s3c2410-pwm", s3c2410_pwm_clocksource_init);
>
> static const struct samsung_pwm_variant s3c64xx_variant = {
> .bits = 32,
> @@ -479,7 +479,7 @@ static int __init s3c64xx_pwm_clocksource_init(struct device_node *np)
> {
> return samsung_pwm_alloc(np, &s3c64xx_variant);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(s3c6400_pwm, "samsung,s3c6400-pwm", s3c64xx_pwm_clocksource_init);
> +CLOCKSOURCE_OF_DECLARE(s3c6400_pwm, "samsung,s3c6400-pwm", s3c64xx_pwm_clocksource_init);
>
> static const struct samsung_pwm_variant s5p64x0_variant = {
> .bits = 32,
> @@ -492,7 +492,7 @@ static int __init s5p64x0_pwm_clocksource_init(struct device_node *np)
> {
> return samsung_pwm_alloc(np, &s5p64x0_variant);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(s5p6440_pwm, "samsung,s5p6440-pwm", s5p64x0_pwm_clocksource_init);
> +CLOCKSOURCE_OF_DECLARE(s5p6440_pwm, "samsung,s5p6440-pwm", s5p64x0_pwm_clocksource_init);
>
> static const struct samsung_pwm_variant s5p_variant = {
> .bits = 32,
> @@ -505,5 +505,5 @@ static int __init s5p_pwm_clocksource_init(struct device_node *np)
> {
> return samsung_pwm_alloc(np, &s5p_variant);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(s5pc100_pwm, "samsung,s5pc100-pwm", s5p_pwm_clocksource_init);
> +CLOCKSOURCE_OF_DECLARE(s5pc100_pwm, "samsung,s5pc100-pwm", s5p_pwm_clocksource_init);
> #endif
> diff --git a/drivers/clocksource/sun4i_timer.c b/drivers/clocksource/sun4i_timer.c
> index 4453730..97669ee 100644
> --- a/drivers/clocksource/sun4i_timer.c
> +++ b/drivers/clocksource/sun4i_timer.c
> @@ -226,5 +226,5 @@ static int __init sun4i_timer_init(struct device_node *node)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(sun4i, "allwinner,sun4i-a10-timer",
> +CLOCKSOURCE_OF_DECLARE(sun4i, "allwinner,sun4i-a10-timer",
> sun4i_timer_init);
> diff --git a/drivers/clocksource/tango_xtal.c b/drivers/clocksource/tango_xtal.c
> index 7dc716c..12fcef8 100644
> --- a/drivers/clocksource/tango_xtal.c
> +++ b/drivers/clocksource/tango_xtal.c
> @@ -53,4 +53,4 @@ static int __init tango_clocksource_init(struct device_node *np)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(tango, "sigma,tick-counter", tango_clocksource_init);
> +CLOCKSOURCE_OF_DECLARE(tango, "sigma,tick-counter", tango_clocksource_init);
> diff --git a/drivers/clocksource/tegra20_timer.c b/drivers/clocksource/tegra20_timer.c
> index 543c37e..f960891 100644
> --- a/drivers/clocksource/tegra20_timer.c
> +++ b/drivers/clocksource/tegra20_timer.c
> @@ -237,7 +237,7 @@ static int __init tegra20_init_timer(struct device_node *np)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(tegra20_timer, "nvidia,tegra20-timer", tegra20_init_timer);
> +CLOCKSOURCE_OF_DECLARE(tegra20_timer, "nvidia,tegra20-timer", tegra20_init_timer);
>
> static int __init tegra20_init_rtc(struct device_node *np)
> {
> @@ -261,4 +261,4 @@ static int __init tegra20_init_rtc(struct device_node *np)
>
> return register_persistent_clock(NULL, tegra_read_persistent_clock64);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(tegra20_rtc, "nvidia,tegra20-rtc", tegra20_init_rtc);
> +CLOCKSOURCE_OF_DECLARE(tegra20_rtc, "nvidia,tegra20-rtc", tegra20_init_rtc);
> diff --git a/drivers/clocksource/time-armada-370-xp.c b/drivers/clocksource/time-armada-370-xp.c
> index bc4ab48..a4e5923 100644
> --- a/drivers/clocksource/time-armada-370-xp.c
> +++ b/drivers/clocksource/time-armada-370-xp.c
> @@ -371,7 +371,7 @@ static int __init armada_xp_timer_init(struct device_node *np)
>
> return armada_370_xp_timer_common_init(np);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(armada_xp, "marvell,armada-xp-timer",
> +CLOCKSOURCE_OF_DECLARE(armada_xp, "marvell,armada-xp-timer",
> armada_xp_timer_init);
>
> static int __init armada_375_timer_init(struct device_node *np)
> @@ -409,7 +409,7 @@ static int __init armada_375_timer_init(struct device_node *np)
>
> return armada_370_xp_timer_common_init(np);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(armada_375, "marvell,armada-375-timer",
> +CLOCKSOURCE_OF_DECLARE(armada_375, "marvell,armada-375-timer",
> armada_375_timer_init);
>
> static int __init armada_370_timer_init(struct device_node *np)
> @@ -432,5 +432,5 @@ static int __init armada_370_timer_init(struct device_node *np)
>
> return armada_370_xp_timer_common_init(np);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(armada_370, "marvell,armada-370-timer",
> +CLOCKSOURCE_OF_DECLARE(armada_370, "marvell,armada-370-timer",
> armada_370_timer_init);
> diff --git a/drivers/clocksource/time-efm32.c b/drivers/clocksource/time-efm32.c
> index b71ffc6..10a0521 100644
> --- a/drivers/clocksource/time-efm32.c
> +++ b/drivers/clocksource/time-efm32.c
> @@ -282,5 +282,5 @@ static int __init efm32_timer_init(struct device_node *np)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(efm32compat, "efm32,timer", efm32_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(efm32, "energymicro,efm32-timer", efm32_timer_init);
> +CLOCKSOURCE_OF_DECLARE(efm32compat, "efm32,timer", efm32_timer_init);
> +CLOCKSOURCE_OF_DECLARE(efm32, "energymicro,efm32-timer", efm32_timer_init);
> diff --git a/drivers/clocksource/time-lpc32xx.c b/drivers/clocksource/time-lpc32xx.c
> index cb5b866..9649cfd 100644
> --- a/drivers/clocksource/time-lpc32xx.c
> +++ b/drivers/clocksource/time-lpc32xx.c
> @@ -311,4 +311,4 @@ static int __init lpc32xx_timer_init(struct device_node *np)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(lpc32xx_timer, "nxp,lpc3220-timer", lpc32xx_timer_init);
> +CLOCKSOURCE_OF_DECLARE(lpc32xx_timer, "nxp,lpc3220-timer", lpc32xx_timer_init);
> diff --git a/drivers/clocksource/time-orion.c b/drivers/clocksource/time-orion.c
> index 5fdeb5d..a28f496 100644
> --- a/drivers/clocksource/time-orion.c
> +++ b/drivers/clocksource/time-orion.c
> @@ -167,4 +167,4 @@ static int __init orion_timer_init(struct device_node *np)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(orion_timer, "marvell,orion-timer", orion_timer_init);
> +CLOCKSOURCE_OF_DECLARE(orion_timer, "marvell,orion-timer", orion_timer_init);
> diff --git a/drivers/clocksource/time-pistachio.c b/drivers/clocksource/time-pistachio.c
> index adaaec5..a7d9a08 100644
> --- a/drivers/clocksource/time-pistachio.c
> +++ b/drivers/clocksource/time-pistachio.c
> @@ -214,5 +214,5 @@ static int __init pistachio_clksrc_of_init(struct device_node *node)
> sched_clock_register(pistachio_read_sched_clock, 32, rate);
> return clocksource_register_hz(&pcs_gpt.cs, rate);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(pistachio_gptimer, "img,pistachio-gptimer",
> +CLOCKSOURCE_OF_DECLARE(pistachio_gptimer, "img,pistachio-gptimer",
> pistachio_clksrc_of_init);
> diff --git a/drivers/clocksource/timer-atlas7.c b/drivers/clocksource/timer-atlas7.c
> index 7b1a007..90f8fbc 100644
> --- a/drivers/clocksource/timer-atlas7.c
> +++ b/drivers/clocksource/timer-atlas7.c
> @@ -304,4 +304,4 @@ static int __init sirfsoc_of_timer_init(struct device_node *np)
>
> return sirfsoc_atlas7_timer_init(np);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(sirfsoc_atlas7_timer, "sirf,atlas7-tick", sirfsoc_of_timer_init);
> +CLOCKSOURCE_OF_DECLARE(sirfsoc_atlas7_timer, "sirf,atlas7-tick", sirfsoc_of_timer_init);
> diff --git a/drivers/clocksource/timer-atmel-pit.c b/drivers/clocksource/timer-atmel-pit.c
> index ffaca7c..1ffac0c 100644
> --- a/drivers/clocksource/timer-atmel-pit.c
> +++ b/drivers/clocksource/timer-atmel-pit.c
> @@ -270,5 +270,5 @@ static int __init at91sam926x_pit_dt_init(struct device_node *node)
>
> return at91sam926x_pit_common_init(data);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(at91sam926x_pit, "atmel,at91sam9260-pit",
> +CLOCKSOURCE_OF_DECLARE(at91sam926x_pit, "atmel,at91sam9260-pit",
> at91sam926x_pit_dt_init);
> diff --git a/drivers/clocksource/timer-atmel-st.c b/drivers/clocksource/timer-atmel-st.c
> index e9331d3..e90ab5b 100644
> --- a/drivers/clocksource/timer-atmel-st.c
> +++ b/drivers/clocksource/timer-atmel-st.c
> @@ -260,5 +260,5 @@ static int __init atmel_st_timer_init(struct device_node *node)
> /* register clocksource */
> return clocksource_register_hz(&clk32k, sclk_rate);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(atmel_st_timer, "atmel,at91rm9200-st",
> +CLOCKSOURCE_OF_DECLARE(atmel_st_timer, "atmel,at91rm9200-st",
> atmel_st_timer_init);
> diff --git a/drivers/clocksource/timer-digicolor.c b/drivers/clocksource/timer-digicolor.c
> index b929061..10318cc 100644
> --- a/drivers/clocksource/timer-digicolor.c
> +++ b/drivers/clocksource/timer-digicolor.c
> @@ -202,5 +202,5 @@ static int __init digicolor_timer_init(struct device_node *node)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(conexant_digicolor, "cnxt,cx92755-timer",
> +CLOCKSOURCE_OF_DECLARE(conexant_digicolor, "cnxt,cx92755-timer",
> digicolor_timer_init);
> diff --git a/drivers/clocksource/timer-imx-gpt.c b/drivers/clocksource/timer-imx-gpt.c
> index d5640a74..f595460 100644
> --- a/drivers/clocksource/timer-imx-gpt.c
> +++ b/drivers/clocksource/timer-imx-gpt.c
> @@ -545,15 +545,15 @@ static int __init imx6dl_timer_init_dt(struct device_node *np)
> return mxc_timer_init_dt(np, GPT_TYPE_IMX6DL);
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(imx1_timer, "fsl,imx1-gpt", imx1_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx21_timer, "fsl,imx21-gpt", imx21_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx27_timer, "fsl,imx27-gpt", imx21_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx31_timer, "fsl,imx31-gpt", imx31_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx25_timer, "fsl,imx25-gpt", imx31_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx50_timer, "fsl,imx50-gpt", imx31_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx51_timer, "fsl,imx51-gpt", imx31_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx53_timer, "fsl,imx53-gpt", imx31_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx6q_timer, "fsl,imx6q-gpt", imx31_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx6dl_timer, "fsl,imx6dl-gpt", imx6dl_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx6sl_timer, "fsl,imx6sl-gpt", imx6dl_timer_init_dt);
> -CLOCKSOURCE_OF_DECLARE_RET(imx6sx_timer, "fsl,imx6sx-gpt", imx6dl_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx1_timer, "fsl,imx1-gpt", imx1_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx21_timer, "fsl,imx21-gpt", imx21_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx27_timer, "fsl,imx27-gpt", imx21_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx31_timer, "fsl,imx31-gpt", imx31_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx25_timer, "fsl,imx25-gpt", imx31_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx50_timer, "fsl,imx50-gpt", imx31_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx51_timer, "fsl,imx51-gpt", imx31_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx53_timer, "fsl,imx53-gpt", imx31_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx6q_timer, "fsl,imx6q-gpt", imx31_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx6dl_timer, "fsl,imx6dl-gpt", imx6dl_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx6sl_timer, "fsl,imx6sl-gpt", imx6dl_timer_init_dt);
> +CLOCKSOURCE_OF_DECLARE(imx6sx_timer, "fsl,imx6sx-gpt", imx6dl_timer_init_dt);
> diff --git a/drivers/clocksource/timer-integrator-ap.c b/drivers/clocksource/timer-integrator-ap.c
> index 675face..df6e672 100644
> --- a/drivers/clocksource/timer-integrator-ap.c
> +++ b/drivers/clocksource/timer-integrator-ap.c
> @@ -232,5 +232,5 @@ static int __init integrator_ap_timer_init_of(struct device_node *node)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(integrator_ap_timer, "arm,integrator-timer",
> +CLOCKSOURCE_OF_DECLARE(integrator_ap_timer, "arm,integrator-timer",
> integrator_ap_timer_init_of);
> diff --git a/drivers/clocksource/timer-keystone.c b/drivers/clocksource/timer-keystone.c
> index 4199823..ab68a47 100644
> --- a/drivers/clocksource/timer-keystone.c
> +++ b/drivers/clocksource/timer-keystone.c
> @@ -226,5 +226,5 @@ err:
> return error;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(keystone_timer, "ti,keystone-timer",
> +CLOCKSOURCE_OF_DECLARE(keystone_timer, "ti,keystone-timer",
> keystone_timer_init);
> diff --git a/drivers/clocksource/timer-nps.c b/drivers/clocksource/timer-nps.c
> index b5c7b2b..70c149a 100644
> --- a/drivers/clocksource/timer-nps.c
> +++ b/drivers/clocksource/timer-nps.c
> @@ -96,5 +96,5 @@ static int __init nps_timer_init(struct device_node *node)
> return nps_setup_clocksource(node, clk);
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(ezchip_nps400_clksrc, "ezchip,nps400-timer",
> - nps_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ezchip_nps400_clksrc, "ezchip,nps400-timer",
> + nps_timer_init);
> diff --git a/drivers/clocksource/timer-oxnas-rps.c b/drivers/clocksource/timer-oxnas-rps.c
> index 0d99f40..bd887e2 100644
> --- a/drivers/clocksource/timer-oxnas-rps.c
> +++ b/drivers/clocksource/timer-oxnas-rps.c
> @@ -293,5 +293,5 @@ err_alloc:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(ox810se_rps,
> - "oxsemi,ox810se-rps-timer", oxnas_rps_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ox810se_rps,
> + "oxsemi,ox810se-rps-timer", oxnas_rps_timer_init);
> diff --git a/drivers/clocksource/timer-prima2.c b/drivers/clocksource/timer-prima2.c
> index 7b1084d..dae8a66 100644
> --- a/drivers/clocksource/timer-prima2.c
> +++ b/drivers/clocksource/timer-prima2.c
> @@ -246,5 +246,5 @@ static int __init sirfsoc_prima2_timer_init(struct device_node *np)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(sirfsoc_prima2_timer,
> +CLOCKSOURCE_OF_DECLARE(sirfsoc_prima2_timer,
> "sirf,prima2-tick", sirfsoc_prima2_timer_init);
> diff --git a/drivers/clocksource/timer-sp804.c b/drivers/clocksource/timer-sp804.c
> index 7c2944ad..a2b28da 100644
> --- a/drivers/clocksource/timer-sp804.c
> +++ b/drivers/clocksource/timer-sp804.c
> @@ -287,7 +287,7 @@ err:
> iounmap(base);
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(sp804, "arm,sp804", sp804_of_init);
> +CLOCKSOURCE_OF_DECLARE(sp804, "arm,sp804", sp804_of_init);
>
> static int __init integrator_cp_of_init(struct device_node *np)
> {
> @@ -336,4 +336,4 @@ err:
> iounmap(base);
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(intcp, "arm,integrator-cp-timer", integrator_cp_of_init);
> +CLOCKSOURCE_OF_DECLARE(intcp, "arm,integrator-cp-timer", integrator_cp_of_init);
> diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c
> index d5bf352..1b2574c 100644
> --- a/drivers/clocksource/timer-stm32.c
> +++ b/drivers/clocksource/timer-stm32.c
> @@ -187,4 +187,4 @@ err_clk_get:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(stm32, "st,stm32-timer", stm32_clockevent_init);
> +CLOCKSOURCE_OF_DECLARE(stm32, "st,stm32-timer", stm32_clockevent_init);
> diff --git a/drivers/clocksource/timer-sun5i.c b/drivers/clocksource/timer-sun5i.c
> index f0a3ffb..c184eb8 100644
> --- a/drivers/clocksource/timer-sun5i.c
> +++ b/drivers/clocksource/timer-sun5i.c
> @@ -346,7 +346,7 @@ static int __init sun5i_timer_init(struct device_node *node)
>
> return sun5i_setup_clockevent(node, timer_base, clk, irq);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(sun5i_a13, "allwinner,sun5i-a13-hstimer",
> +CLOCKSOURCE_OF_DECLARE(sun5i_a13, "allwinner,sun5i-a13-hstimer",
> sun5i_timer_init);
> -CLOCKSOURCE_OF_DECLARE_RET(sun7i_a20, "allwinner,sun7i-a20-hstimer",
> +CLOCKSOURCE_OF_DECLARE(sun7i_a20, "allwinner,sun7i-a20-hstimer",
> sun5i_timer_init);
> diff --git a/drivers/clocksource/timer-ti-32k.c b/drivers/clocksource/timer-ti-32k.c
> index e4ad3c6e..92b7e39 100644
> --- a/drivers/clocksource/timer-ti-32k.c
> +++ b/drivers/clocksource/timer-ti-32k.c
> @@ -124,5 +124,5 @@ static int __init ti_32k_timer_init(struct device_node *np)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(ti_32k_timer, "ti,omap-counter32k",
> +CLOCKSOURCE_OF_DECLARE(ti_32k_timer, "ti,omap-counter32k",
> ti_32k_timer_init);
> diff --git a/drivers/clocksource/timer-u300.c b/drivers/clocksource/timer-u300.c
> index a6a0dec..704e40c 100644
> --- a/drivers/clocksource/timer-u300.c
> +++ b/drivers/clocksource/timer-u300.c
> @@ -458,5 +458,5 @@ static int __init u300_timer_init_of(struct device_node *np)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(u300_timer, "stericsson,u300-apptimer",
> +CLOCKSOURCE_OF_DECLARE(u300_timer, "stericsson,u300-apptimer",
> u300_timer_init_of);
> diff --git a/drivers/clocksource/versatile.c b/drivers/clocksource/versatile.c
> index 8daeffa..220b490 100644
> --- a/drivers/clocksource/versatile.c
> +++ b/drivers/clocksource/versatile.c
> @@ -38,7 +38,7 @@ static int __init versatile_sched_clock_init(struct device_node *node)
>
> return 0;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(vexpress, "arm,vexpress-sysreg",
> +CLOCKSOURCE_OF_DECLARE(vexpress, "arm,vexpress-sysreg",
> versatile_sched_clock_init);
> -CLOCKSOURCE_OF_DECLARE_RET(versatile, "arm,versatile-sysreg",
> +CLOCKSOURCE_OF_DECLARE(versatile, "arm,versatile-sysreg",
> versatile_sched_clock_init);
> diff --git a/drivers/clocksource/vf_pit_timer.c b/drivers/clocksource/vf_pit_timer.c
> index ca4dff4..55d8d84 100644
> --- a/drivers/clocksource/vf_pit_timer.c
> +++ b/drivers/clocksource/vf_pit_timer.c
> @@ -201,4 +201,4 @@ static int __init pit_timer_init(struct device_node *np)
>
> return pit_clockevent_init(clk_rate, irq);
> }
> -CLOCKSOURCE_OF_DECLARE_RET(vf610, "fsl,vf610-pit", pit_timer_init);
> +CLOCKSOURCE_OF_DECLARE(vf610, "fsl,vf610-pit", pit_timer_init);
> diff --git a/drivers/clocksource/vt8500_timer.c b/drivers/clocksource/vt8500_timer.c
> index 1bc8707..b150694 100644
> --- a/drivers/clocksource/vt8500_timer.c
> +++ b/drivers/clocksource/vt8500_timer.c
> @@ -165,4 +165,4 @@ static int __init vt8500_timer_init(struct device_node *np)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(vt8500, "via,vt8500-timer", vt8500_timer_init);
> +CLOCKSOURCE_OF_DECLARE(vt8500, "via,vt8500-timer", vt8500_timer_init);
> diff --git a/drivers/clocksource/zevio-timer.c b/drivers/clocksource/zevio-timer.c
> index cb4cf056..9a53f5e 100644
> --- a/drivers/clocksource/zevio-timer.c
> +++ b/drivers/clocksource/zevio-timer.c
> @@ -215,4 +215,4 @@ static int __init zevio_timer_init(struct device_node *node)
> return zevio_timer_add(node);
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(zevio_timer, "lsi,zevio-timer", zevio_timer_init);
> +CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_init);
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index 8c6c626..6a67ab9 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -173,7 +173,6 @@
> *(__##name##_of_table_end)
>
> #define CLKSRC_OF_TABLES() OF_TABLE(CONFIG_CLKSRC_OF, clksrc)
> -#define CLKSRC_RET_OF_TABLES() OF_TABLE(CONFIG_CLKSRC_OF, clksrc_ret)
> #define IRQCHIP_OF_MATCH_TABLE() OF_TABLE(CONFIG_IRQCHIP, irqchip)
> #define CLK_OF_TABLES() OF_TABLE(CONFIG_COMMON_CLK, clk)
> #define IOMMU_OF_TABLES() OF_TABLE(CONFIG_OF_IOMMU, iommu)
> @@ -532,7 +531,6 @@
> CLK_OF_TABLES() \
> RESERVEDMEM_OF_TABLES() \
> CLKSRC_OF_TABLES() \
> - CLKSRC_RET_OF_TABLES() \
> IOMMU_OF_TABLES() \
> CPU_METHOD_OF_TABLES() \
> CPUIDLE_METHOD_OF_TABLES() \
> diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h
> index 15c3839..0839818 100644
> --- a/include/linux/clocksource.h
> +++ b/include/linux/clocksource.h
> @@ -244,10 +244,7 @@ extern int clocksource_mmio_init(void __iomem *, const char *,
> extern int clocksource_i8253_init(void);
>
> #define CLOCKSOURCE_OF_DECLARE(name, compat, fn) \
> - OF_DECLARE_1(clksrc, name, compat, fn)
> -
> -#define CLOCKSOURCE_OF_DECLARE_RET(name, compat, fn) \
> - OF_DECLARE_1_RET(clksrc_ret, name, compat, fn)
> + OF_DECLARE_1_RET(clksrc, name, compat, fn)
>
> #ifdef CONFIG_CLKSRC_PROBE
> extern void clocksource_probe(void);
> --
> 1.9.1
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
?\_(?)_/?
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (5 preceding siblings ...)
2016-06-20 9:17 ` Liviu Dudau
@ 2016-06-20 9:19 ` Neil Armstrong
2016-06-20 17:03 ` Sylvain Lemieux
` (4 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Neil Armstrong @ 2016-06-20 9:19 UTC (permalink / raw)
To: linux-snps-arc
On 06/16/2016 11:27 PM, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
> arch/arm/kernel/smp_twd.c | 6 +++---
> arch/microblaze/kernel/timer.c | 2 +-
> arch/mips/ralink/cevt-rt3352.c | 2 +-
> arch/nios2/kernel/time.c | 2 +-
> drivers/clocksource/arm_arch_timer.c | 6 +++---
> drivers/clocksource/arm_global_timer.c | 2 +-
> drivers/clocksource/armv7m_systick.c | 2 +-
> drivers/clocksource/asm9260_timer.c | 2 +-
> drivers/clocksource/bcm2835_timer.c | 2 +-
> drivers/clocksource/bcm_kona_timer.c | 4 ++--
> drivers/clocksource/cadence_ttc_timer.c | 2 +-
> drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
> drivers/clocksource/clksrc-probe.c | 14 --------------
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> drivers/clocksource/clps711x-timer.c | 2 +-
> drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
> drivers/clocksource/exynos_mct.c | 4 ++--
> drivers/clocksource/fsl_ftm_timer.c | 2 +-
> drivers/clocksource/h8300_timer16.c | 2 +-
> drivers/clocksource/h8300_timer8.c | 2 +-
> drivers/clocksource/h8300_tpu.c | 2 +-
> drivers/clocksource/meson6_timer.c | 2 +-
> drivers/clocksource/mips-gic-timer.c | 2 +-
> drivers/clocksource/moxart_timer.c | 2 +-
> drivers/clocksource/mps2-timer.c | 2 +-
> drivers/clocksource/mtk_timer.c | 2 +-
> drivers/clocksource/mxs_timer.c | 2 +-
> drivers/clocksource/nomadik-mtu.c | 2 +-
> drivers/clocksource/pxa_timer.c | 2 +-
> drivers/clocksource/qcom-timer.c | 4 ++--
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
> drivers/clocksource/sun4i_timer.c | 2 +-
> drivers/clocksource/tango_xtal.c | 2 +-
> drivers/clocksource/tegra20_timer.c | 4 ++--
> drivers/clocksource/time-armada-370-xp.c | 6 +++---
> drivers/clocksource/time-efm32.c | 4 ++--
> drivers/clocksource/time-lpc32xx.c | 2 +-
> drivers/clocksource/time-orion.c | 2 +-
> drivers/clocksource/time-pistachio.c | 2 +-
> drivers/clocksource/timer-atlas7.c | 2 +-
> drivers/clocksource/timer-atmel-pit.c | 2 +-
> drivers/clocksource/timer-atmel-st.c | 2 +-
> drivers/clocksource/timer-digicolor.c | 2 +-
> drivers/clocksource/timer-imx-gpt.c | 24 ++++++++++++------------
> drivers/clocksource/timer-integrator-ap.c | 2 +-
> drivers/clocksource/timer-keystone.c | 2 +-
> drivers/clocksource/timer-nps.c | 4 ++--
> drivers/clocksource/timer-oxnas-rps.c | 4 ++--
> drivers/clocksource/timer-prima2.c | 2 +-
> drivers/clocksource/timer-sp804.c | 4 ++--
> drivers/clocksource/timer-stm32.c | 2 +-
> drivers/clocksource/timer-sun5i.c | 4 ++--
> drivers/clocksource/timer-ti-32k.c | 2 +-
> drivers/clocksource/timer-u300.c | 2 +-
> drivers/clocksource/versatile.c | 4 ++--
> drivers/clocksource/vf_pit_timer.c | 2 +-
> drivers/clocksource/vt8500_timer.c | 2 +-
> drivers/clocksource/zevio-timer.c | 2 +-
> include/asm-generic/vmlinux.lds.h | 2 --
> include/linux/clocksource.h | 5 +----
> 62 files changed, 98 insertions(+), 117 deletions(-)
>
[...]
> diff --git a/drivers/clocksource/timer-oxnas-rps.c b/drivers/clocksource/timer-oxnas-rps.c
> index 0d99f40..bd887e2 100644
> --- a/drivers/clocksource/timer-oxnas-rps.c
> +++ b/drivers/clocksource/timer-oxnas-rps.c
> @@ -293,5 +293,5 @@ err_alloc:
> return ret;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(ox810se_rps,
> - "oxsemi,ox810se-rps-timer", oxnas_rps_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ox810se_rps,
> + "oxsemi,ox810se-rps-timer", oxnas_rps_timer_init);
For the OXNAS part :
Acked-by: Neil Armstrong <narmstrong at baylibre.com>
Thanks,
Neil
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (6 preceding siblings ...)
2016-06-20 9:19 ` Neil Armstrong
@ 2016-06-20 17:03 ` Sylvain Lemieux
2016-06-21 6:00 ` Ray Jui
` (3 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Sylvain Lemieux @ 2016-06-20 17:03 UTC (permalink / raw)
To: linux-snps-arc
On Thu, 2016-06-16@23:27 +0200, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
> arch/arm/kernel/smp_twd.c | 6 +++---
> arch/microblaze/kernel/timer.c | 2 +-
> arch/mips/ralink/cevt-rt3352.c | 2 +-
> arch/nios2/kernel/time.c | 2 +-
> drivers/clocksource/arm_arch_timer.c | 6 +++---
> drivers/clocksource/arm_global_timer.c | 2 +-
> drivers/clocksource/armv7m_systick.c | 2 +-
> drivers/clocksource/asm9260_timer.c | 2 +-
> drivers/clocksource/bcm2835_timer.c | 2 +-
> drivers/clocksource/bcm_kona_timer.c | 4 ++--
> drivers/clocksource/cadence_ttc_timer.c | 2 +-
> drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
> drivers/clocksource/clksrc-probe.c | 14 --------------
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> drivers/clocksource/clps711x-timer.c | 2 +-
> drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
> drivers/clocksource/exynos_mct.c | 4 ++--
> drivers/clocksource/fsl_ftm_timer.c | 2 +-
> drivers/clocksource/h8300_timer16.c | 2 +-
> drivers/clocksource/h8300_timer8.c | 2 +-
> drivers/clocksource/h8300_tpu.c | 2 +-
> drivers/clocksource/meson6_timer.c | 2 +-
> drivers/clocksource/mips-gic-timer.c | 2 +-
> drivers/clocksource/moxart_timer.c | 2 +-
> drivers/clocksource/mps2-timer.c | 2 +-
> drivers/clocksource/mtk_timer.c | 2 +-
> drivers/clocksource/mxs_timer.c | 2 +-
> drivers/clocksource/nomadik-mtu.c | 2 +-
> drivers/clocksource/pxa_timer.c | 2 +-
> drivers/clocksource/qcom-timer.c | 4 ++--
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
> drivers/clocksource/sun4i_timer.c | 2 +-
> drivers/clocksource/tango_xtal.c | 2 +-
> drivers/clocksource/tegra20_timer.c | 4 ++--
> drivers/clocksource/time-armada-370-xp.c | 6 +++---
> drivers/clocksource/time-efm32.c | 4 ++--
> drivers/clocksource/time-lpc32xx.c | 2 +-
> drivers/clocksource/time-orion.c | 2 +-
> drivers/clocksource/time-pistachio.c | 2 +-
> drivers/clocksource/timer-atlas7.c | 2 +-
> drivers/clocksource/timer-atmel-pit.c | 2 +-
> drivers/clocksource/timer-atmel-st.c | 2 +-
> drivers/clocksource/timer-digicolor.c | 2 +-
> drivers/clocksource/timer-imx-gpt.c | 24 ++++++++++++------------
> drivers/clocksource/timer-integrator-ap.c | 2 +-
> drivers/clocksource/timer-keystone.c | 2 +-
> drivers/clocksource/timer-nps.c | 4 ++--
> drivers/clocksource/timer-oxnas-rps.c | 4 ++--
> drivers/clocksource/timer-prima2.c | 2 +-
> drivers/clocksource/timer-sp804.c | 4 ++--
> drivers/clocksource/timer-stm32.c | 2 +-
> drivers/clocksource/timer-sun5i.c | 4 ++--
> drivers/clocksource/timer-ti-32k.c | 2 +-
> drivers/clocksource/timer-u300.c | 2 +-
> drivers/clocksource/versatile.c | 4 ++--
> drivers/clocksource/vf_pit_timer.c | 2 +-
> drivers/clocksource/vt8500_timer.c | 2 +-
> drivers/clocksource/zevio-timer.c | 2 +-
> include/asm-generic/vmlinux.lds.h | 2 --
> include/linux/clocksource.h | 5 +----
> 62 files changed, 98 insertions(+), 117 deletions(-)
>
[..]
> diff --git a/drivers/clocksource/time-lpc32xx.c b/drivers/clocksource/time-lpc32xx.c
> index cb5b866..9649cfd 100644
> --- a/drivers/clocksource/time-lpc32xx.c
> +++ b/drivers/clocksource/time-lpc32xx.c
> @@ -311,4 +311,4 @@ static int __init lpc32xx_timer_init(struct device_node *np)
>
> return ret;
> }
> -CLOCKSOURCE_OF_DECLARE_RET(lpc32xx_timer, "nxp,lpc3220-timer", lpc32xx_timer_init);
> +CLOCKSOURCE_OF_DECLARE(lpc32xx_timer, "nxp,lpc3220-timer", lpc32xx_timer_init);
For LPC32xx driver:
Acked-by: Sylvain Lemieux <slemieux.tyco at gmail.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (7 preceding siblings ...)
2016-06-20 17:03 ` Sylvain Lemieux
@ 2016-06-21 6:00 ` Ray Jui
2016-06-21 6:45 ` Noam Camus
` (2 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Ray Jui @ 2016-06-21 6:00 UTC (permalink / raw)
To: linux-snps-arc
Hi Daniel,
On 6/16/2016 2:27 PM, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
> arch/arm/kernel/smp_twd.c | 6 +++---
> arch/microblaze/kernel/timer.c | 2 +-
> arch/mips/ralink/cevt-rt3352.c | 2 +-
> arch/nios2/kernel/time.c | 2 +-
> drivers/clocksource/arm_arch_timer.c | 6 +++---
> drivers/clocksource/arm_global_timer.c | 2 +-
> drivers/clocksource/armv7m_systick.c | 2 +-
> drivers/clocksource/asm9260_timer.c | 2 +-
> drivers/clocksource/bcm2835_timer.c | 2 +-
> drivers/clocksource/bcm_kona_timer.c | 4 ++--
> drivers/clocksource/cadence_ttc_timer.c | 2 +-
> drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
> drivers/clocksource/clksrc-probe.c | 14 --------------
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> drivers/clocksource/clps711x-timer.c | 2 +-
> drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
> drivers/clocksource/exynos_mct.c | 4 ++--
> drivers/clocksource/fsl_ftm_timer.c | 2 +-
> drivers/clocksource/h8300_timer16.c | 2 +-
> drivers/clocksource/h8300_timer8.c | 2 +-
> drivers/clocksource/h8300_tpu.c | 2 +-
> drivers/clocksource/meson6_timer.c | 2 +-
> drivers/clocksource/mips-gic-timer.c | 2 +-
> drivers/clocksource/moxart_timer.c | 2 +-
> drivers/clocksource/mps2-timer.c | 2 +-
> drivers/clocksource/mtk_timer.c | 2 +-
> drivers/clocksource/mxs_timer.c | 2 +-
> drivers/clocksource/nomadik-mtu.c | 2 +-
> drivers/clocksource/pxa_timer.c | 2 +-
> drivers/clocksource/qcom-timer.c | 4 ++--
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
> drivers/clocksource/sun4i_timer.c | 2 +-
> drivers/clocksource/tango_xtal.c | 2 +-
> drivers/clocksource/tegra20_timer.c | 4 ++--
> drivers/clocksource/time-armada-370-xp.c | 6 +++---
> drivers/clocksource/time-efm32.c | 4 ++--
> drivers/clocksource/time-lpc32xx.c | 2 +-
> drivers/clocksource/time-orion.c | 2 +-
> drivers/clocksource/time-pistachio.c | 2 +-
> drivers/clocksource/timer-atlas7.c | 2 +-
> drivers/clocksource/timer-atmel-pit.c | 2 +-
> drivers/clocksource/timer-atmel-st.c | 2 +-
> drivers/clocksource/timer-digicolor.c | 2 +-
> drivers/clocksource/timer-imx-gpt.c | 24 ++++++++++++------------
> drivers/clocksource/timer-integrator-ap.c | 2 +-
> drivers/clocksource/timer-keystone.c | 2 +-
> drivers/clocksource/timer-nps.c | 4 ++--
> drivers/clocksource/timer-oxnas-rps.c | 4 ++--
> drivers/clocksource/timer-prima2.c | 2 +-
> drivers/clocksource/timer-sp804.c | 4 ++--
> drivers/clocksource/timer-stm32.c | 2 +-
> drivers/clocksource/timer-sun5i.c | 4 ++--
> drivers/clocksource/timer-ti-32k.c | 2 +-
> drivers/clocksource/timer-u300.c | 2 +-
> drivers/clocksource/versatile.c | 4 ++--
> drivers/clocksource/vf_pit_timer.c | 2 +-
> drivers/clocksource/vt8500_timer.c | 2 +-
> drivers/clocksource/zevio-timer.c | 2 +-
> include/asm-generic/vmlinux.lds.h | 2 --
> include/linux/clocksource.h | 5 +----
> 62 files changed, 98 insertions(+), 117 deletions(-)
[..]
> diff --git a/drivers/clocksource/bcm_kona_timer.c b/drivers/clocksource/bcm_kona_timer.c
> index 98bc2a2..ee07e7e3 100644
> --- a/drivers/clocksource/bcm_kona_timer.c
> +++ b/drivers/clocksource/bcm_kona_timer.c
> @@ -200,9 +200,9 @@ static int __init kona_timer_init(struct device_node *node)
> return 0;
> }
>
> -CLOCKSOURCE_OF_DECLARE_RET(brcm_kona, "brcm,kona-timer", kona_timer_init);
> +CLOCKSOURCE_OF_DECLARE(brcm_kona, "brcm,kona-timer", kona_timer_init);
> /*
> * bcm,kona-timer is deprecated by brcm,kona-timer
> * being kept here for driver compatibility
> */
> -CLOCKSOURCE_OF_DECLARE_RET(bcm_kona, "bcm,kona-timer", kona_timer_init);
> +CLOCKSOURCE_OF_DECLARE(bcm_kona, "bcm,kona-timer", kona_timer_init);
For Broadcom Kona timer change:
Acked-by: Ray Jui <ray.jui at broadcom.com>
Thanks!
Ray
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (8 preceding siblings ...)
2016-06-21 6:00 ` Ray Jui
@ 2016-06-21 6:45 ` Noam Camus
2016-06-24 7:13 ` Chen-Yu Tsai
2016-06-24 20:12 ` Carlo Caione
11 siblings, 0 replies; 21+ messages in thread
From: Noam Camus @ 2016-06-21 6:45 UTC (permalink / raw)
To: linux-snps-arc
>From: Daniel Lezcano [mailto:daniel.lezcano at linaro.org]
>Sent: Friday, June 17, 2016 12:27 AM
>All the clocksource drivers's init function are now converted to return an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the clksrc-of table.
>Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 6 +++---
> arch/arm/kernel/smp_twd.c | 6 +++---
> arch/microblaze/kernel/timer.c | 2 +-
> arch/mips/ralink/cevt-rt3352.c | 2 +-
> arch/nios2/kernel/time.c | 2 +-
> drivers/clocksource/arm_arch_timer.c | 6 +++---
> drivers/clocksource/arm_global_timer.c | 2 +-
> drivers/clocksource/armv7m_systick.c | 2 +-
> drivers/clocksource/asm9260_timer.c | 2 +-
> drivers/clocksource/bcm2835_timer.c | 2 +-
> drivers/clocksource/bcm_kona_timer.c | 4 ++--
> drivers/clocksource/cadence_ttc_timer.c | 2 +-
> drivers/clocksource/clksrc-dbx500-prcmu.c | 2 +-
> drivers/clocksource/clksrc-probe.c | 14 --------------
> drivers/clocksource/clksrc_st_lpc.c | 2 +-
> drivers/clocksource/clps711x-timer.c | 2 +-
> drivers/clocksource/dw_apb_timer_of.c | 8 ++++----
> drivers/clocksource/exynos_mct.c | 4 ++--
> drivers/clocksource/fsl_ftm_timer.c | 2 +-
> drivers/clocksource/h8300_timer16.c | 2 +-
> drivers/clocksource/h8300_timer8.c | 2 +-
> drivers/clocksource/h8300_tpu.c | 2 +-
> drivers/clocksource/meson6_timer.c | 2 +-
> drivers/clocksource/mips-gic-timer.c | 2 +-
> drivers/clocksource/moxart_timer.c | 2 +-
> drivers/clocksource/mps2-timer.c | 2 +-
> drivers/clocksource/mtk_timer.c | 2 +-
> drivers/clocksource/mxs_timer.c | 2 +-
> drivers/clocksource/nomadik-mtu.c | 2 +-
> drivers/clocksource/pxa_timer.c | 2 +-
> drivers/clocksource/qcom-timer.c | 4 ++--
> drivers/clocksource/rockchip_timer.c | 8 ++++----
> drivers/clocksource/samsung_pwm_timer.c | 8 ++++----
> drivers/clocksource/sun4i_timer.c | 2 +-
> drivers/clocksource/tango_xtal.c | 2 +-
> drivers/clocksource/tegra20_timer.c | 4 ++--
> drivers/clocksource/time-armada-370-xp.c | 6 +++---
> drivers/clocksource/time-efm32.c | 4 ++--
> drivers/clocksource/time-lpc32xx.c | 2 +-
> drivers/clocksource/time-orion.c | 2 +-
> drivers/clocksource/time-pistachio.c | 2 +-
> drivers/clocksource/timer-atlas7.c | 2 +-
> drivers/clocksource/timer-atmel-pit.c | 2 +-
> drivers/clocksource/timer-atmel-st.c | 2 +-
> drivers/clocksource/timer-digicolor.c | 2 +-
> drivers/clocksource/timer-imx-gpt.c | 24 ++++++++++++------------
> drivers/clocksource/timer-integrator-ap.c | 2 +-
> drivers/clocksource/timer-keystone.c | 2 +-
> drivers/clocksource/timer-nps.c | 4 ++--
> drivers/clocksource/timer-oxnas-rps.c | 4 ++--
> drivers/clocksource/timer-prima2.c | 2 +-
> drivers/clocksource/timer-sp804.c | 4 ++--
> drivers/clocksource/timer-stm32.c | 2 +-
> drivers/clocksource/timer-sun5i.c | 4 ++--
> drivers/clocksource/timer-ti-32k.c | 2 +-
> drivers/clocksource/timer-u300.c | 2 +-
> drivers/clocksource/versatile.c | 4 ++--
> drivers/clocksource/vf_pit_timer.c | 2 +-
> drivers/clocksource/vt8500_timer.c | 2 +-
> drivers/clocksource/zevio-timer.c | 2 +-
> include/asm-generic/vmlinux.lds.h | 2 --
> include/linux/clocksource.h | 5 +----
> 62 files changed, 98 insertions(+), 117 deletions(-)
[..]
> diff --git a/drivers/clocksource/timer-nps.c b/drivers/clocksource/timer-nps.c index b5c7b2b..70c149a 100644
> --- a/drivers/clocksource/timer-nps.c
> +++ b/drivers/clocksource/timer-nps.c
> @@ -96,5 +96,5 @@ static int __init nps_timer_init(struct device_node *node)
> return nps_setup_clocksource(node, clk); }
> -CLOCKSOURCE_OF_DECLARE_RET(ezchip_nps400_clksrc, "ezchip,nps400-timer",
> - nps_timer_init);
> +CLOCKSOURCE_OF_DECLARE(ezchip_nps400_clksrc, "ezchip,nps400-timer",
> + nps_timer_init);
> diff --git a/drivers/clocksource/timer-oxnas-rps.c b/drivers/clocksource/timer-oxnas-rps.c
> index 0d99f40..bd887e2 100644
> --- a/drivers/clocksource/timer-oxnas-rps.c
> +++ b/drivers/clocksource/timer-oxnas-rps.c
> @@ -293,5 +293,5 @@ err_alloc:
> return ret;
> }
Acked-by: Noam Camus <noamca at mellanox.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V3] clocksource/drivers/arc: Convert init function to return error
2016-06-17 10:09 ` [PATCH V3] " Daniel Lezcano
2016-06-17 14:30 ` Vineet Gupta
@ 2016-06-24 4:06 ` Vineet Gupta
2016-06-24 6:41 ` Daniel Lezcano
1 sibling, 1 reply; 21+ messages in thread
From: Vineet Gupta @ 2016-06-24 4:06 UTC (permalink / raw)
To: linux-snps-arc
On Friday 17 June 2016 03:39 PM, Daniel Lezcano wrote:
> The init functions do not return any error. They behave as the following:
>
> - panic, thus leading to a kernel crash while another timer may work and
> make the system boot up correctly
>
> or
>
> - print an error and let the caller unaware if the state of the system
>
> Change that by converting the init functions to return an error conforming
> to the CLOCKSOURCE_OF_RET prototype.
>
> Proper error handling (rollback, errno value) will be changed later case
> by case, thus this change just return back an error or success in the init
> function.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> arch/arc/kernel/time.c | 69 ++++++++++++++++++++++++++++++--------------------
[...]
> evt->cpumask = cpumask_of(smp_processor_id());
> @@ -347,24 +355,31 @@ static void __init arc_clockevent_setup(struct device_node *node)
> /* Needs apriori irq_set_percpu_devid() done in intc map function */
> ret = request_percpu_irq(arc_timer_irq, timer_irq_handler,
> "Timer0 (per-cpu-tick)", evt);
> - if (ret)
> - panic("clockevent: unable to request irq\n");
> + if (ret) {
> + pr_err("clockevent: unable to request irq\n");
> + returnr ret;
oops I missed the typo here !
Daniel can u squash this to ur patch !
-Vineet
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V3] clocksource/drivers/arc: Convert init function to return error
2016-06-24 4:06 ` Vineet Gupta
@ 2016-06-24 6:41 ` Daniel Lezcano
2016-06-24 7:52 ` Vineet Gupta
0 siblings, 1 reply; 21+ messages in thread
From: Daniel Lezcano @ 2016-06-24 6:41 UTC (permalink / raw)
To: linux-snps-arc
On 06/24/2016 06:06 AM, Vineet Gupta wrote:
> On Friday 17 June 2016 03:39 PM, Daniel Lezcano wrote:
>> The init functions do not return any error. They behave as the following:
>>
>> - panic, thus leading to a kernel crash while another timer may work and
>> make the system boot up correctly
>>
>> or
>>
>> - print an error and let the caller unaware if the state of the system
>>
>> Change that by converting the init functions to return an error conforming
>> to the CLOCKSOURCE_OF_RET prototype.
>>
>> Proper error handling (rollback, errno value) will be changed later case
>> by case, thus this change just return back an error or success in the init
>> function.
>>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
>> ---
>> arch/arc/kernel/time.c | 69 ++++++++++++++++++++++++++++++--------------------
>
> [...]
>
>> evt->cpumask = cpumask_of(smp_processor_id());
>> @@ -347,24 +355,31 @@ static void __init arc_clockevent_setup(struct device_node *node)
>> /* Needs apriori irq_set_percpu_devid() done in intc map function */
>> ret = request_percpu_irq(arc_timer_irq, timer_irq_handler,
>> "Timer0 (per-cpu-tick)", evt);
>> - if (ret)
>> - panic("clockevent: unable to request irq\n");
>> + if (ret) {
>> + pr_err("clockevent: unable to request irq\n");
>> + returnr ret;
>
> oops I missed the typo here !
> Daniel can u squash this to ur patch !
Yes, no problem.
Do you agree to move the driver to drivers/clocksource, so we can add
the COMPILE_TEST option ?
Thanks.
-- Daniel
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (9 preceding siblings ...)
2016-06-21 6:45 ` Noam Camus
@ 2016-06-24 7:13 ` Chen-Yu Tsai
2016-06-24 20:12 ` Carlo Caione
11 siblings, 0 replies; 21+ messages in thread
From: Chen-Yu Tsai @ 2016-06-24 7:13 UTC (permalink / raw)
To: linux-snps-arc
On Fri, Jun 17, 2016 at 5:27 AM, Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> drivers/clocksource/sun4i_timer.c | 2 +-
> drivers/clocksource/timer-sun5i.c | 4 ++--
Acked-by: Chen-Yu Tsai <wens at csie.org>
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V3] clocksource/drivers/arc: Convert init function to return error
2016-06-24 6:41 ` Daniel Lezcano
@ 2016-06-24 7:52 ` Vineet Gupta
2016-06-24 7:55 ` Daniel Lezcano
0 siblings, 1 reply; 21+ messages in thread
From: Vineet Gupta @ 2016-06-24 7:52 UTC (permalink / raw)
To: linux-snps-arc
On Friday 24 June 2016 12:11 PM, Daniel Lezcano wrote:
> Do you agree to move the driver to drivers/clocksource, so we can add the
> COMPILE_TEST option ?
Sure, this will require some common header adjustments etc. After the current
fire-drill I'm pulled into ATM, I'll work on it next week'ish !
-Vineet
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V3] clocksource/drivers/arc: Convert init function to return error
2016-06-24 7:52 ` Vineet Gupta
@ 2016-06-24 7:55 ` Daniel Lezcano
0 siblings, 0 replies; 21+ messages in thread
From: Daniel Lezcano @ 2016-06-24 7:55 UTC (permalink / raw)
To: linux-snps-arc
On 06/24/2016 09:52 AM, Vineet Gupta wrote:
> On Friday 24 June 2016 12:11 PM, Daniel Lezcano wrote:
>> Do you agree to move the driver to drivers/clocksource, so we can add the
>> COMPILE_TEST option ?
>
> Sure, this will require some common header adjustments etc. After the current
> fire-drill I'm pulled into ATM, I'll work on it next week'ish !
Great, thanks !
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH V2 63/63] clocksources: Switch back to the clksrc table
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
` (10 preceding siblings ...)
2016-06-24 7:13 ` Chen-Yu Tsai
@ 2016-06-24 20:12 ` Carlo Caione
11 siblings, 0 replies; 21+ messages in thread
From: Carlo Caione @ 2016-06-24 20:12 UTC (permalink / raw)
To: linux-snps-arc
On 16/06/16 23:27, Daniel Lezcano wrote:
> All the clocksource drivers's init function are now converted to return
> an error code. CLOCKSOURCE_OF_DECLARE is no longer used as well as the
> clksrc-of table.
>
> Let's convert back the names:
> - CLOCKSOURCE_OF_DECLARE_RET => CLOCKSOURCE_OF_DECLARE
> - clksrc-of-ret => clksrc-of
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
> ---
> drivers/clocksource/meson6_timer.c | 2 +-
Acked-by: Carlo Caione <carlo at caione.org>
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2016-06-24 20:12 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1466112442-31105-1-git-send-email-daniel.lezcano@linaro.org>
2016-06-16 21:27 ` [PATCH V2 61/63] clocksource/drivers/arc: Convert init function to return error Daniel Lezcano
2016-06-17 8:59 ` Vineet Gupta
2016-06-17 10:09 ` [PATCH V3] " Daniel Lezcano
2016-06-17 14:30 ` Vineet Gupta
2016-06-24 4:06 ` Vineet Gupta
2016-06-24 6:41 ` Daniel Lezcano
2016-06-24 7:52 ` Vineet Gupta
2016-06-24 7:55 ` Daniel Lezcano
2016-06-16 21:27 ` [PATCH V2 63/63] clocksources: Switch back to the clksrc table Daniel Lezcano
2016-06-17 8:36 ` Krzysztof Kozlowski
2016-06-17 16:04 ` Santosh Shilimkar
2016-06-17 16:18 ` Matthias Brugger
2016-06-18 13:48 ` Heiko Stübner
2016-06-20 7:43 ` Patrice Chotard
2016-06-20 9:17 ` Liviu Dudau
2016-06-20 9:19 ` Neil Armstrong
2016-06-20 17:03 ` Sylvain Lemieux
2016-06-21 6:00 ` Ray Jui
2016-06-21 6:45 ` Noam Camus
2016-06-24 7:13 ` Chen-Yu Tsai
2016-06-24 20:12 ` Carlo Caione
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).