serial: a37xx: Do not call get_ref_clk() in _debug_uart_init()
Static inline function _debug_uart_init() should avoid calling external (non-inline) functions. Therefore do not call get_ref_clk() in _debug_uart_init() and reimplement its functionality without external function calls. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
		
							parent
							
								
									5cd424d71f
								
							
						
					
					
						commit
						2cc4be280c
					
				| 
						 | 
					@ -305,6 +305,7 @@ U_BOOT_DRIVER(serial_mvebu) = {
 | 
				
			||||||
#ifdef CONFIG_DEBUG_MVEBU_A3700_UART
 | 
					#ifdef CONFIG_DEBUG_MVEBU_A3700_UART
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <debug_uart.h>
 | 
					#include <debug_uart.h>
 | 
				
			||||||
 | 
					#include <mach/soc.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void _debug_uart_init(void)
 | 
					static inline void _debug_uart_init(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -322,7 +323,8 @@ static inline void _debug_uart_init(void)
 | 
				
			||||||
	 * Calculate divider
 | 
						 * Calculate divider
 | 
				
			||||||
	 * baudrate = clock / 16 / divider
 | 
						 * baudrate = clock / 16 / divider
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	parent_rate = get_ref_clk() * 1000000;
 | 
						parent_rate = (readl(MVEBU_REGISTER(0x13808)) & BIT(9)) ?
 | 
				
			||||||
 | 
							      40000000 : 25000000;
 | 
				
			||||||
	divider = DIV_ROUND_CLOSEST(parent_rate, CONFIG_BAUDRATE * 16);
 | 
						divider = DIV_ROUND_CLOSEST(parent_rate, CONFIG_BAUDRATE * 16);
 | 
				
			||||||
	writel(divider, base + UART_BAUD_REG);
 | 
						writel(divider, base + UART_BAUD_REG);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue