Merge tag 'timers-v6.8-rc1' of http://git.linaro.org/people/daniel.lezcano/linux into timers/core

Pull clockevent/clocksource updates from Daniel Lezcano:

- Fixed error handling at probe time and uninitialized return code on
ep93xx (Arnd Bergman)

- Fixed some kerneldoc warning on Cadence TTC (Randy Dunlap)

- Fixed kerneldoc warning on Timer TI DM (Tony Lindgren)

- Handle interrupt disabling when shutting down the timer on RISC-V
timer (Joshua Yeong)

- Add compatible string for the StarFive JH8100 clint (Sia Jee Heng)

- Separate mtime and mtimecmp registers in DT bindings (Inochi Amaoto)

Link: https://lore.kernel.org/lkml/0f07af92-e4b2-48de-88a6-dd9aa9e49743@linaro.org

Changed files
+36 -12
Documentation
drivers
+1
Documentation/devicetree/bindings/timer/sifive,clint.yaml
··· 33 33 - sifive,fu540-c000-clint # SiFive FU540 34 34 - starfive,jh7100-clint # StarFive JH7100 35 35 - starfive,jh7110-clint # StarFive JH7110 36 + - starfive,jh8100-clint # StarFive JH8100 36 37 - const: sifive,clint0 # SiFive CLINT v0 IP block 37 38 - items: 38 39 - enum:
+8 -1
Documentation/devicetree/bindings/timer/thead,c900-aclint-mtimer.yaml
··· 17 17 - const: thead,c900-aclint-mtimer 18 18 19 19 reg: 20 - maxItems: 1 20 + items: 21 + - description: MTIMECMP Registers 22 + 23 + reg-names: 24 + items: 25 + - const: mtimecmp 21 26 22 27 interrupts-extended: 23 28 minItems: 1 ··· 33 28 required: 34 29 - compatible 35 30 - reg 31 + - reg-names 36 32 - interrupts-extended 37 33 38 34 examples: ··· 45 39 <&cpu3intc 7>, 46 40 <&cpu4intc 7>; 47 41 reg = <0xac000000 0x00010000>; 42 + reg-names = "mtimecmp"; 48 43 }; 49 44 ...
+16 -6
drivers/clocksource/timer-cadence-ttc.c
··· 69 69 * @base_addr: Base address of timer 70 70 * @freq: Timer input clock frequency 71 71 * @clk: Associated clock source 72 - * @clk_rate_change_nb Notifier block for clock rate changes 72 + * @clk_rate_change_nb: Notifier block for clock rate changes 73 73 */ 74 74 struct ttc_timer { 75 75 void __iomem *base_addr; ··· 134 134 * @irq: IRQ number of the Timer 135 135 * @dev_id: void pointer to the ttc_timer instance 136 136 * 137 - * returns: Always IRQ_HANDLED - success 137 + * Returns: Always IRQ_HANDLED - success 138 138 **/ 139 139 static irqreturn_t ttc_clock_event_interrupt(int irq, void *dev_id) 140 140 { ··· 151 151 152 152 /** 153 153 * __ttc_clocksource_read - Reads the timer counter register 154 + * @cs: &clocksource to read from 154 155 * 155 - * returns: Current timer counter register value 156 + * Returns: Current timer counter register value 156 157 **/ 157 158 static u64 __ttc_clocksource_read(struct clocksource *cs) 158 159 { ··· 174 173 * @cycles: Timer interval ticks 175 174 * @evt: Address of clock event instance 176 175 * 177 - * returns: Always 0 - success 176 + * Returns: Always %0 - success 178 177 **/ 179 178 static int ttc_set_next_event(unsigned long cycles, 180 179 struct clock_event_device *evt) ··· 187 186 } 188 187 189 188 /** 190 - * ttc_set_{shutdown|oneshot|periodic} - Sets the state of timer 191 - * 189 + * ttc_shutdown - Sets the state of timer 192 190 * @evt: Address of clock event instance 191 + * 192 + * Used for shutdown or oneshot. 193 + * 194 + * Returns: Always %0 - success 193 195 **/ 194 196 static int ttc_shutdown(struct clock_event_device *evt) 195 197 { ··· 206 202 return 0; 207 203 } 208 204 205 + /** 206 + * ttc_set_periodic - Sets the state of timer 207 + * @evt: Address of clock event instance 208 + * 209 + * Returns: Always %0 - success 210 + */ 209 211 static int ttc_set_periodic(struct clock_event_device *evt) 210 212 { 211 213 struct ttc_timer_clockevent *ttce = to_ttc_timer_clkevent(evt);
+2 -3
drivers/clocksource/timer-ep93xx.c
··· 155 155 ep93xx_tcu = tcu; 156 156 157 157 irq = irq_of_parse_and_map(np, 0); 158 - if (irq == 0) 159 - irq = -EINVAL; 160 - if (irq < 0) { 158 + if (!irq) { 159 + ret = -EINVAL; 161 160 pr_err("EP93XX Timer Can't parse IRQ %d", irq); 162 161 goto out_free; 163 162 }
+7
drivers/clocksource/timer-riscv.c
··· 61 61 return 0; 62 62 } 63 63 64 + static int riscv_clock_shutdown(struct clock_event_device *evt) 65 + { 66 + riscv_clock_event_stop(); 67 + return 0; 68 + } 69 + 64 70 static unsigned int riscv_clock_event_irq; 65 71 static DEFINE_PER_CPU(struct clock_event_device, riscv_clock_event) = { 66 72 .name = "riscv_timer_clockevent", 67 73 .features = CLOCK_EVT_FEAT_ONESHOT, 68 74 .rating = 100, 69 75 .set_next_event = riscv_clock_next_event, 76 + .set_state_shutdown = riscv_clock_shutdown, 70 77 }; 71 78 72 79 /*
+2 -2
drivers/clocksource/timer-ti-dm.c
··· 183 183 * dmtimer_write - write timer registers in posted and non-posted mode 184 184 * @timer: timer pointer over which write operation is to perform 185 185 * @reg: lowest byte holds the register offset 186 - * @value: data to write into the register 186 + * @val: data to write into the register 187 187 * 188 188 * The posted mode bit is encoded in reg. Note that in posted mode, the write 189 189 * pending bit must be checked. Otherwise a write on a register which has a ··· 949 949 950 950 /** 951 951 * omap_dm_timer_set_int_disable - disable timer interrupts 952 - * @timer: pointer to timer handle 952 + * @cookie: pointer to timer cookie 953 953 * @mask: bit mask of interrupts to be disabled 954 954 * 955 955 * Disables the specified timer interrupts for a timer.