mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	i2c: rcar: fix resume by always initializing registers before transfer
Resume failed because of uninitialized registers. Instead of adding a resume callback, we simply initialize registers before every transfer. This lightweight change is more robust and will keep us safe if we ever need support for power domains or dynamic frequency changes. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
		
							parent
							
								
									8c91fd5ee6
								
							
						
					
					
						commit
						ae481cc139
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -700,6 +700,8 @@ static int rcar_i2c_master_xfer(struct i2c_adapter *adap,
 | 
			
		|||
 | 
			
		||||
	pm_runtime_get_sync(dev);
 | 
			
		||||
 | 
			
		||||
	rcar_i2c_init(priv);
 | 
			
		||||
 | 
			
		||||
	ret = rcar_i2c_bus_barrier(priv);
 | 
			
		||||
	if (ret < 0)
 | 
			
		||||
		goto out;
 | 
			
		||||
| 
						 | 
				
			
			@ -860,8 +862,6 @@ static int rcar_i2c_probe(struct platform_device *pdev)
 | 
			
		|||
	if (ret < 0)
 | 
			
		||||
		goto out_pm_put;
 | 
			
		||||
 | 
			
		||||
	rcar_i2c_init(priv);
 | 
			
		||||
 | 
			
		||||
	/* Don't suspend when multi-master to keep arbitration working */
 | 
			
		||||
	if (of_property_read_bool(dev->of_node, "multi-master"))
 | 
			
		||||
		priv->flags |= ID_P_PM_BLOCKED;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue