Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clocksource: cadence_ttc: Use readl/writel_relaxed instead of __raw

For supporting ARM big-endian is necessary to use
proper IO endianess accessors.

Based on Ben Dooks BE guide.
Similar conversion is done here:
"mv_xor: use {readl, writel}_relaxed instead of __raw_{readl, writel}"
(sha1: 5733c38ae3473115ac7df3fe19bd2502149d8c51)

Signed-off-by: Michal Simek <michal.simek@xilinx.com>

+27 -27
+27 -27
drivers/clocksource/cadence_ttc_timer.c
··· 118 118 u32 ctrl_reg; 119 119 120 120 /* Disable the counter, set the counter value and re-enable counter */ 121 - ctrl_reg = __raw_readl(timer->base_addr + TTC_CNT_CNTRL_OFFSET); 121 + ctrl_reg = readl_relaxed(timer->base_addr + TTC_CNT_CNTRL_OFFSET); 122 122 ctrl_reg |= TTC_CNT_CNTRL_DISABLE_MASK; 123 - __raw_writel(ctrl_reg, timer->base_addr + TTC_CNT_CNTRL_OFFSET); 123 + writel_relaxed(ctrl_reg, timer->base_addr + TTC_CNT_CNTRL_OFFSET); 124 124 125 - __raw_writel(cycles, timer->base_addr + TTC_INTR_VAL_OFFSET); 125 + writel_relaxed(cycles, timer->base_addr + TTC_INTR_VAL_OFFSET); 126 126 127 127 /* 128 128 * Reset the counter (0x10) so that it starts from 0, one-shot ··· 130 130 */ 131 131 ctrl_reg |= CNT_CNTRL_RESET; 132 132 ctrl_reg &= ~TTC_CNT_CNTRL_DISABLE_MASK; 133 - __raw_writel(ctrl_reg, timer->base_addr + TTC_CNT_CNTRL_OFFSET); 133 + writel_relaxed(ctrl_reg, timer->base_addr + TTC_CNT_CNTRL_OFFSET); 134 134 } 135 135 136 136 /** ··· 147 147 struct ttc_timer *timer = &ttce->ttc; 148 148 149 149 /* Acknowledge the interrupt and call event handler */ 150 - __raw_readl(timer->base_addr + TTC_ISR_OFFSET); 150 + readl_relaxed(timer->base_addr + TTC_ISR_OFFSET); 151 151 152 152 ttce->ce.event_handler(&ttce->ce); 153 153 ··· 163 163 { 164 164 struct ttc_timer *timer = &to_ttc_timer_clksrc(cs)->ttc; 165 165 166 - return (cycle_t)__raw_readl(timer->base_addr + 166 + return (cycle_t)readl_relaxed(timer->base_addr + 167 167 TTC_COUNT_VAL_OFFSET); 168 168 } 169 169 170 170 static u64 notrace ttc_sched_clock_read(void) 171 171 { 172 - return __raw_readl(ttc_sched_clock_val_reg); 172 + return readl_relaxed(ttc_sched_clock_val_reg); 173 173 } 174 174 175 175 /** ··· 211 211 case CLOCK_EVT_MODE_ONESHOT: 212 212 case CLOCK_EVT_MODE_UNUSED: 213 213 case CLOCK_EVT_MODE_SHUTDOWN: 214 - ctrl_reg = __raw_readl(timer->base_addr + 214 + ctrl_reg = readl_relaxed(timer->base_addr + 215 215 TTC_CNT_CNTRL_OFFSET); 216 216 ctrl_reg |= TTC_CNT_CNTRL_DISABLE_MASK; 217 - __raw_writel(ctrl_reg, 217 + writel_relaxed(ctrl_reg, 218 218 timer->base_addr + TTC_CNT_CNTRL_OFFSET); 219 219 break; 220 220 case CLOCK_EVT_MODE_RESUME: 221 - ctrl_reg = __raw_readl(timer->base_addr + 221 + ctrl_reg = readl_relaxed(timer->base_addr + 222 222 TTC_CNT_CNTRL_OFFSET); 223 223 ctrl_reg &= ~TTC_CNT_CNTRL_DISABLE_MASK; 224 - __raw_writel(ctrl_reg, 224 + writel_relaxed(ctrl_reg, 225 225 timer->base_addr + TTC_CNT_CNTRL_OFFSET); 226 226 break; 227 227 } ··· 266 266 * of an abort. 267 267 */ 268 268 ttccs->scale_clk_ctrl_reg_old = 269 - __raw_readl(ttccs->ttc.base_addr + 270 - TTC_CLK_CNTRL_OFFSET); 269 + readl_relaxed(ttccs->ttc.base_addr + 270 + TTC_CLK_CNTRL_OFFSET); 271 271 272 272 psv = (ttccs->scale_clk_ctrl_reg_old & 273 273 TTC_CLK_CNTRL_PSV_MASK) >> ··· 291 291 return NOTIFY_DONE; 292 292 293 293 /* scale up: adjust divider now - before frequency change */ 294 - __raw_writel(ttccs->scale_clk_ctrl_reg_new, 295 - ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 294 + writel_relaxed(ttccs->scale_clk_ctrl_reg_new, 295 + ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 296 296 break; 297 297 } 298 298 case POST_RATE_CHANGE: ··· 301 301 return NOTIFY_OK; 302 302 303 303 /* scale down: adjust divider now - after frequency change */ 304 - __raw_writel(ttccs->scale_clk_ctrl_reg_new, 305 - ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 304 + writel_relaxed(ttccs->scale_clk_ctrl_reg_new, 305 + ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 306 306 break; 307 307 308 308 case ABORT_RATE_CHANGE: ··· 311 311 return NOTIFY_OK; 312 312 313 313 /* restore original register value */ 314 - __raw_writel(ttccs->scale_clk_ctrl_reg_old, 315 - ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 314 + writel_relaxed(ttccs->scale_clk_ctrl_reg_old, 315 + ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 316 316 /* fall through */ 317 317 default: 318 318 return NOTIFY_DONE; ··· 359 359 * with no interrupt and it rolls over at 0xFFFF. Pre-scale 360 360 * it by 32 also. Let it start running now. 361 361 */ 362 - __raw_writel(0x0, ttccs->ttc.base_addr + TTC_IER_OFFSET); 363 - __raw_writel(CLK_CNTRL_PRESCALE | CLK_CNTRL_PRESCALE_EN, 362 + writel_relaxed(0x0, ttccs->ttc.base_addr + TTC_IER_OFFSET); 363 + writel_relaxed(CLK_CNTRL_PRESCALE | CLK_CNTRL_PRESCALE_EN, 364 364 ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 365 - __raw_writel(CNT_CNTRL_RESET, 365 + writel_relaxed(CNT_CNTRL_RESET, 366 366 ttccs->ttc.base_addr + TTC_CNT_CNTRL_OFFSET); 367 367 368 368 err = clocksource_register_hz(&ttccs->cs, ttccs->ttc.freq / PRESCALE); ··· 438 438 * is prescaled by 32 using the interval interrupt. Leave it 439 439 * disabled for now. 440 440 */ 441 - __raw_writel(0x23, ttcce->ttc.base_addr + TTC_CNT_CNTRL_OFFSET); 442 - __raw_writel(CLK_CNTRL_PRESCALE | CLK_CNTRL_PRESCALE_EN, 441 + writel_relaxed(0x23, ttcce->ttc.base_addr + TTC_CNT_CNTRL_OFFSET); 442 + writel_relaxed(CLK_CNTRL_PRESCALE | CLK_CNTRL_PRESCALE_EN, 443 443 ttcce->ttc.base_addr + TTC_CLK_CNTRL_OFFSET); 444 - __raw_writel(0x1, ttcce->ttc.base_addr + TTC_IER_OFFSET); 444 + writel_relaxed(0x1, ttcce->ttc.base_addr + TTC_IER_OFFSET); 445 445 446 446 err = request_irq(irq, ttc_clock_event_interrupt, 447 447 IRQF_TIMER, ttcce->ce.name, ttcce); ··· 490 490 BUG(); 491 491 } 492 492 493 - clksel = __raw_readl(timer_baseaddr + TTC_CLK_CNTRL_OFFSET); 493 + clksel = readl_relaxed(timer_baseaddr + TTC_CLK_CNTRL_OFFSET); 494 494 clksel = !!(clksel & TTC_CLK_CNTRL_CSRC_MASK); 495 495 clk_cs = of_clk_get(timer, clksel); 496 496 if (IS_ERR(clk_cs)) { ··· 498 498 BUG(); 499 499 } 500 500 501 - clksel = __raw_readl(timer_baseaddr + 4 + TTC_CLK_CNTRL_OFFSET); 501 + clksel = readl_relaxed(timer_baseaddr + 4 + TTC_CLK_CNTRL_OFFSET); 502 502 clksel = !!(clksel & TTC_CLK_CNTRL_CSRC_MASK); 503 503 clk_ce = of_clk_get(timer, clksel); 504 504 if (IS_ERR(clk_ce)) {