sdhci-of: fix SD clock calculation
Linear divisor's values in a register start at 0 (zero means "divide by 1"). Before this patch the code didn't account that fact, so SD cards were running underclocked. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Cc: Pierre Ossman <pierre@ossman.eu> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: David Vrabel <david.vrabel@csr.com> Cc: Ben Dooks <ben@fluff.org> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									4245c0256d
								
							
						
					
					
						commit
						1e5df7525d
					
				| @ -136,6 +136,7 @@ static void esdhc_set_clock(struct sdhci_host *host, unsigned int clock) | ||||
| 	} | ||||
| 
 | ||||
| 	pre_div >>= 1; | ||||
| 	div--; | ||||
| 
 | ||||
| 	setbits32(host->ioaddr + ESDHC_SYSTEM_CONTROL, ESDHC_CLOCK_IPGEN | | ||||
| 		  ESDHC_CLOCK_HCKEN | ESDHC_CLOCK_PEREN | | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user