clocksource/drivers/fttmr010: Pass around less pointers

Just pass bool flags from the different initcalls and use the
flags to set the right pointers. This results in less pointers
passed around in init.

Cc: Cédric Le Goater <clg@kaod.org>
Cc: Joel Stanley <joel@jms.id.au>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20210724224424.2085404-1-linus.walleij@linaro.org
This commit is contained in:
Linus Walleij 2021-07-25 00:44:23 +02:00 committed by Daniel Lezcano
parent ce9570657d
commit 3a95de5973

View file

@ -271,9 +271,7 @@ static irqreturn_t ast2600_timer_interrupt(int irq, void *dev_id)
} }
static int __init fttmr010_common_init(struct device_node *np, static int __init fttmr010_common_init(struct device_node *np,
bool is_aspeed, bool is_aspeed, bool is_ast2600)
int (*timer_shutdown)(struct clock_event_device *),
irq_handler_t irq_handler)
{ {
struct fttmr010 *fttmr010; struct fttmr010 *fttmr010;
int irq; int irq;
@ -374,8 +372,6 @@ static int __init fttmr010_common_init(struct device_node *np,
fttmr010->tick_rate); fttmr010->tick_rate);
} }
fttmr010->timer_shutdown = timer_shutdown;
/* /*
* Setup clockevent timer (interrupt-driven) on timer 1. * Setup clockevent timer (interrupt-driven) on timer 1.
*/ */
@ -383,8 +379,18 @@ static int __init fttmr010_common_init(struct device_node *np,
writel(0, fttmr010->base + TIMER1_LOAD); writel(0, fttmr010->base + TIMER1_LOAD);
writel(0, fttmr010->base + TIMER1_MATCH1); writel(0, fttmr010->base + TIMER1_MATCH1);
writel(0, fttmr010->base + TIMER1_MATCH2); writel(0, fttmr010->base + TIMER1_MATCH2);
ret = request_irq(irq, irq_handler, IRQF_TIMER,
"FTTMR010-TIMER1", &fttmr010->clkevt); if (is_ast2600) {
fttmr010->timer_shutdown = ast2600_timer_shutdown;
ret = request_irq(irq, ast2600_timer_interrupt,
IRQF_TIMER, "FTTMR010-TIMER1",
&fttmr010->clkevt);
} else {
fttmr010->timer_shutdown = fttmr010_timer_shutdown;
ret = request_irq(irq, fttmr010_timer_interrupt,
IRQF_TIMER, "FTTMR010-TIMER1",
&fttmr010->clkevt);
}
if (ret) { if (ret) {
pr_err("FTTMR010-TIMER1 no IRQ\n"); pr_err("FTTMR010-TIMER1 no IRQ\n");
goto out_unmap; goto out_unmap;
@ -432,23 +438,17 @@ static int __init fttmr010_common_init(struct device_node *np,
static __init int ast2600_timer_init(struct device_node *np) static __init int ast2600_timer_init(struct device_node *np)
{ {
return fttmr010_common_init(np, true, return fttmr010_common_init(np, true, true);
ast2600_timer_shutdown,
ast2600_timer_interrupt);
} }
static __init int aspeed_timer_init(struct device_node *np) static __init int aspeed_timer_init(struct device_node *np)
{ {
return fttmr010_common_init(np, true, return fttmr010_common_init(np, true, false);
fttmr010_timer_shutdown,
fttmr010_timer_interrupt);
} }
static __init int fttmr010_timer_init(struct device_node *np) static __init int fttmr010_timer_init(struct device_node *np)
{ {
return fttmr010_common_init(np, false, return fttmr010_common_init(np, false, false);
fttmr010_timer_shutdown,
fttmr010_timer_interrupt);
} }
TIMER_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init); TIMER_OF_DECLARE(fttmr010, "faraday,fttmr010", fttmr010_timer_init);