aboutsummaryrefslogtreecommitdiff
path: root/drivers/spi/spi-dw.h
diff options
context:
space:
mode:
authorGravatar Viresh Kumar <viresh.kumar@st.com> 2011-08-10 14:20:57 +0530
committerGravatar Grant Likely <grant.likely@secretlab.ca> 2011-09-21 09:41:47 -0600
commit0379b2a33a8a03d4ad1036ef646419dbdf1ac15a (patch)
tree8b23e1c9779352c633f82d4d341222ab11df7593 /drivers/spi/spi-dw.h
parentspi/spi-pl022: Don't allocate more sg than required. (diff)
downloadlinux-0379b2a33a8a03d4ad1036ef646419dbdf1ac15a.tar.gz
linux-0379b2a33a8a03d4ad1036ef646419dbdf1ac15a.tar.bz2
linux-0379b2a33a8a03d4ad1036ef646419dbdf1ac15a.zip
spi/spi-pl022: calculate_effective_freq() must set rate <= requested rate
There were few issues with calculate_effective_freq() routine: - It was returning first rate found >= requested rate. Now, if system have spi's rate as 83 MHz, with possible prescaled rates as 83, 41.5, 20.75, 13.83 (as we can prescale with multiples of 2). If user has given rate to be programmed as 22 MHz, then driver programmes it to 41.5 MHz. This looks to be incorrect, as user might have given the upper limit of the device, and we are programming it above it. - Driver finds the first satisfying rate and programmes it, but with other values of scr & cpsdvsr, it is possible to get more closer rate. This patch fixes these two issues, with some reformatting inside the code. This also creates a inline routine to calculate prescaled rate based on spi's rate, cpsdvsr and scr. Signed-off-by: Viresh Kumar <viresh.kumar@st.com> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/spi/spi-dw.h')
0 files changed, 0 insertions, 0 deletions