Message ID | 20210924020825.20317-1-rdunlap@infradead.org |
---|---|
State | New |
Headers | show |
Series | [v2] clocksource: arc_timer: eliminate redefined macro error | expand |
On 9/23/21 7:08 PM, Randy Dunlap wrote: > In drivers/clocksource/, 3 drivers use "TIMER_CTRL_IE" with 3 different > values. Two of them (mps2-timer.c and timer-sp804.c/timer-sp.h) are > localized and left unmodifed. > > One of them uses a shared header file (<soc/arc/timers.h>), which is > what is causing the "redefined" warnings, so change the macro name in > that driver only. Also change the TIMER_CTRL_NH macro name. > Both macro names are prefixed with "ARC_" to reduce the likelihood > of future name collisions. > > In file included from ../drivers/clocksource/timer-sp804.c:24: > ../drivers/clocksource/timer-sp.h:25: error: "TIMER_CTRL_IE" redefined [-Werror] > 25 | #define TIMER_CTRL_IE (1 << 5) /* VR */ > ../include/soc/arc/timers.h:20: note: this is the location of the previous definition > 20 | #define TIMER_CTRL_IE (1 << 0) /* Interrupt when Count reaches limit */ > > Fixes: b26c2e3823ba ("ARC: breakout timer include code into separate header") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Cc: Vineet Gupta <vgupta@kernel.org> > Cc: linux-snps-arc@lists.infradead.org > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Shahab Vahedi <Shahab.Vahedi@synopsys.com> Acked-by: Vineet Gupta <vgupta@kernel.org> Thx, -Vineet > --- > v2: prefix both TIMER_CTRL_xx macros with ARC_ (suggested by > Shahab Vahedi <Shahab.Vahedi@synopsys.com> > > drivers/clocksource/arc_timer.c | 6 +++--- > include/soc/arc/timers.h | 4 ++-- > 2 files changed, 5 insertions(+), 5 deletions(-) > > --- linux-next-20210917.orig/include/soc/arc/timers.h > +++ linux-next-20210917/include/soc/arc/timers.h > @@ -17,8 +17,8 @@ > #define ARC_REG_TIMER1_CNT 0x100 /* timer 1 count */ > > /* CTRL reg bits */ > -#define TIMER_CTRL_IE (1 << 0) /* Interrupt when Count reaches limit */ > -#define TIMER_CTRL_NH (1 << 1) /* Count only when CPU NOT halted */ > +#define ARC_TIMER_CTRL_IE (1 << 0) /* Interrupt when Count reaches limit */ > +#define ARC_TIMER_CTRL_NH (1 << 1) /* Count only when CPU NOT halted */ > > #define ARC_TIMERN_MAX 0xFFFFFFFF > > --- linux-next-20210917.orig/drivers/clocksource/arc_timer.c > +++ linux-next-20210917/drivers/clocksource/arc_timer.c > @@ -225,7 +225,7 @@ static int __init arc_cs_setup_timer1(st > > write_aux_reg(ARC_REG_TIMER1_LIMIT, ARC_TIMERN_MAX); > write_aux_reg(ARC_REG_TIMER1_CNT, 0); > - write_aux_reg(ARC_REG_TIMER1_CTRL, TIMER_CTRL_NH); > + write_aux_reg(ARC_REG_TIMER1_CTRL, ARC_TIMER_CTRL_NH); > > sched_clock_register(arc_timer1_clock_read, 32, arc_timer_freq); > > @@ -245,7 +245,7 @@ static void arc_timer_event_setup(unsign > write_aux_reg(ARC_REG_TIMER0_LIMIT, cycles); > write_aux_reg(ARC_REG_TIMER0_CNT, 0); /* start from 0 */ > > - write_aux_reg(ARC_REG_TIMER0_CTRL, TIMER_CTRL_IE | TIMER_CTRL_NH); > + write_aux_reg(ARC_REG_TIMER0_CTRL, ARC_TIMER_CTRL_IE | ARC_TIMER_CTRL_NH); > } > > > @@ -294,7 +294,7 @@ static irqreturn_t timer_irq_handler(int > * explicitly clears IP bit > * 2. Re-arm interrupt if periodic by writing to IE bit [0] > */ > - write_aux_reg(ARC_REG_TIMER0_CTRL, irq_reenable | TIMER_CTRL_NH); > + write_aux_reg(ARC_REG_TIMER0_CTRL, irq_reenable | ARC_TIMER_CTRL_NH); > > evt->event_handler(evt); >
--- linux-next-20210917.orig/include/soc/arc/timers.h +++ linux-next-20210917/include/soc/arc/timers.h @@ -17,8 +17,8 @@ #define ARC_REG_TIMER1_CNT 0x100 /* timer 1 count */ /* CTRL reg bits */ -#define TIMER_CTRL_IE (1 << 0) /* Interrupt when Count reaches limit */ -#define TIMER_CTRL_NH (1 << 1) /* Count only when CPU NOT halted */ +#define ARC_TIMER_CTRL_IE (1 << 0) /* Interrupt when Count reaches limit */ +#define ARC_TIMER_CTRL_NH (1 << 1) /* Count only when CPU NOT halted */ #define ARC_TIMERN_MAX 0xFFFFFFFF --- linux-next-20210917.orig/drivers/clocksource/arc_timer.c +++ linux-next-20210917/drivers/clocksource/arc_timer.c @@ -225,7 +225,7 @@ static int __init arc_cs_setup_timer1(st write_aux_reg(ARC_REG_TIMER1_LIMIT, ARC_TIMERN_MAX); write_aux_reg(ARC_REG_TIMER1_CNT, 0); - write_aux_reg(ARC_REG_TIMER1_CTRL, TIMER_CTRL_NH); + write_aux_reg(ARC_REG_TIMER1_CTRL, ARC_TIMER_CTRL_NH); sched_clock_register(arc_timer1_clock_read, 32, arc_timer_freq); @@ -245,7 +245,7 @@ static void arc_timer_event_setup(unsign write_aux_reg(ARC_REG_TIMER0_LIMIT, cycles); write_aux_reg(ARC_REG_TIMER0_CNT, 0); /* start from 0 */ - write_aux_reg(ARC_REG_TIMER0_CTRL, TIMER_CTRL_IE | TIMER_CTRL_NH); + write_aux_reg(ARC_REG_TIMER0_CTRL, ARC_TIMER_CTRL_IE | ARC_TIMER_CTRL_NH); } @@ -294,7 +294,7 @@ static irqreturn_t timer_irq_handler(int * explicitly clears IP bit * 2. Re-arm interrupt if periodic by writing to IE bit [0] */ - write_aux_reg(ARC_REG_TIMER0_CTRL, irq_reenable | TIMER_CTRL_NH); + write_aux_reg(ARC_REG_TIMER0_CTRL, irq_reenable | ARC_TIMER_CTRL_NH); evt->event_handler(evt);
In drivers/clocksource/, 3 drivers use "TIMER_CTRL_IE" with 3 different values. Two of them (mps2-timer.c and timer-sp804.c/timer-sp.h) are localized and left unmodifed. One of them uses a shared header file (<soc/arc/timers.h>), which is what is causing the "redefined" warnings, so change the macro name in that driver only. Also change the TIMER_CTRL_NH macro name. Both macro names are prefixed with "ARC_" to reduce the likelihood of future name collisions. In file included from ../drivers/clocksource/timer-sp804.c:24: ../drivers/clocksource/timer-sp.h:25: error: "TIMER_CTRL_IE" redefined [-Werror] 25 | #define TIMER_CTRL_IE (1 << 5) /* VR */ ../include/soc/arc/timers.h:20: note: this is the location of the previous definition 20 | #define TIMER_CTRL_IE (1 << 0) /* Interrupt when Count reaches limit */ Fixes: b26c2e3823ba ("ARC: breakout timer include code into separate header") Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Cc: Vineet Gupta <vgupta@kernel.org> Cc: linux-snps-arc@lists.infradead.org Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Shahab Vahedi <Shahab.Vahedi@synopsys.com> --- v2: prefix both TIMER_CTRL_xx macros with ARC_ (suggested by Shahab Vahedi <Shahab.Vahedi@synopsys.com> drivers/clocksource/arc_timer.c | 6 +++--- include/soc/arc/timers.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)