mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	power: gemini-poweroff: Avoid more spurious poweroffs
Even after the previous fix I have experienced more spurious
poweroffs on the gemini SoC. After this fix it finally seems
to go away.
Fixes: f7a388d6cd ("power: reset: Add a driver for the Gemini poweroff")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
			
			
This commit is contained in:
		
							parent
							
								
									09bebb1adb
								
							
						
					
					
						commit
						ada1de89f3
					
				
					 1 changed files with 11 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -130,7 +130,17 @@ static int gemini_poweroff_probe(struct platform_device *pdev)
 | 
			
		|||
	val |= GEMINI_CTRL_ENABLE;
 | 
			
		||||
	writel(val, gpw->base + GEMINI_PWC_CTRLREG);
 | 
			
		||||
 | 
			
		||||
	/* Now that the state machine is active, clear the IRQ */
 | 
			
		||||
	/* Clear the IRQ */
 | 
			
		||||
	val = readl(gpw->base + GEMINI_PWC_CTRLREG);
 | 
			
		||||
	val |= GEMINI_CTRL_IRQ_CLR;
 | 
			
		||||
	writel(val, gpw->base + GEMINI_PWC_CTRLREG);
 | 
			
		||||
 | 
			
		||||
	/* Wait for this to clear */
 | 
			
		||||
	val = readl(gpw->base + GEMINI_PWC_STATREG);
 | 
			
		||||
	while (val & 0x70U)
 | 
			
		||||
		val = readl(gpw->base + GEMINI_PWC_STATREG);
 | 
			
		||||
 | 
			
		||||
	/* Clear the IRQ again */
 | 
			
		||||
	val = readl(gpw->base + GEMINI_PWC_CTRLREG);
 | 
			
		||||
	val |= GEMINI_CTRL_IRQ_CLR;
 | 
			
		||||
	writel(val, gpw->base + GEMINI_PWC_CTRLREG);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue