serial: samsung: enable clock before clearing pending interrupts during init
Ensure that the uart controller clock is enabled prior to writing to the interrupt mask and pending registers in the s3c24xx_serial_init_port function. Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
					parent
					
						
							
								bff09b099b
							
						
					
				
			
			
				commit
				
					
						60e9357547
					
				
			
		
					 1 changed files with 13 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1166,6 +1166,18 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
 | 
			
		|||
		ourport->tx_irq = ret;
 | 
			
		||||
 | 
			
		||||
	ourport->clk	= clk_get(&platdev->dev, "uart");
 | 
			
		||||
	if (IS_ERR(ourport->clk)) {
 | 
			
		||||
		pr_err("%s: Controller clock not found\n",
 | 
			
		||||
				dev_name(&platdev->dev));
 | 
			
		||||
		return PTR_ERR(ourport->clk);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ret = clk_prepare_enable(ourport->clk);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		pr_err("uart: clock failed to prepare+enable: %d\n", ret);
 | 
			
		||||
		clk_put(ourport->clk);
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Keep all interrupts masked and cleared */
 | 
			
		||||
	if (s3c24xx_serial_has_interrupt_mask(port)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1180,6 +1192,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
 | 
			
		|||
 | 
			
		||||
	/* reset the fifos (and setup the uart) */
 | 
			
		||||
	s3c24xx_serial_resetport(port, cfg);
 | 
			
		||||
	clk_disable_unprepare(ourport->clk);
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue