Anssi Hannula
2ab2e87911
mmc: sdhci-of-arasan: fix incorrect timeout clock
...
commit 16681037e75ce08f2980ac5dbb03414429c7a55d upstream.
sdhci_arasan_get_timeout_clock() divides the frequency it has with (1 <<
(13 + divisor)).
However, the divisor is not some Arasan-specific value, but instead is
just the Data Timeout Counter Value from the SDHCI Timeout Control
Register.
Applying it here like this is wrong as the sdhci driver already takes
that value into account when calculating timeouts, and in fact it *sets*
that register value based on how long a timeout is wanted.
Additionally, sdhci core interprets the .get_timeout_clock callback
return value as if it were read from hardware registers, i.e. the unit
should be kHz or MHz depending on SDHCI_TIMEOUT_CLK_UNIT capability bit.
This bit is set at least on the tested Zynq-7000 SoC.
With the tested hardware (SDHCI_TIMEOUT_CLK_UNIT set) this results in
too high a timeout clock rate being reported, causing the core to use
longer-than-needed timeouts. Additionally, on a partitioned MMC
(therefore having erase_group_def bit set) mmc_calc_max_discard()
disables discard support as it looks like controller does not support
the long timeouts needed for that.
Do not apply the extra divisor and return the timeout clock in the
expected unit.
Tested with a Zynq-7000 SoC and a partitioned Toshiba THGBMAG5A1JBAWR
eMMC card.
Signed-off-by: Anssi Hannula <anssi.hannula@bitwise.fi>
Fixes: e3ec3a3d11 ("mmc: arasan: Add driver for Arasan SDHCI")
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-30 09:41:25 +02:00
..
accessibility
acpi
ACPI / blacklist: Make Dell Latitude 3350 ethernet work
2017-03-22 12:43:38 +01:00
amba
android
ANDROID: binder: Clear binder and cookie when setting handle in flat binder struct
2016-10-24 19:37:48 +02:00
ata
libata: Fix ATA request sense
2017-02-09 08:08:27 +01:00
atm
atm: fix improper return value
2016-12-05 14:53:46 -05:00
auxdisplay
auxdisplay: img-ascii-lcd: driver for simple ASCII LCD displays
2016-10-06 17:03:41 +02:00
base
base/memory, hotplug: fix a kernel oops in show_valid_zones()
2017-02-09 08:08:28 +01:00
bcma
bcma: use (get|put)_device when probing/removing device driver
2017-03-12 06:41:52 +01:00
block
loop: fix LO_FLAGS_PARTSCAN hang
2017-03-12 06:41:45 +01:00
bluetooth
Bluetooth: Add another AR3012 04ca:3018 device
2017-03-15 10:02:40 +08:00
bus
bus: vexpress-config: fix device reference leak
2017-01-19 20:18:07 +01:00
cdrom
char
tpm_tis: fix the error handling of init_tis()
2017-03-12 06:41:43 +01:00
clk
clk: bcm2835: Fix ->fixed_divider of pllh_aux
2017-03-22 12:43:39 +01:00
clocksource
clocksource/exynos_mct: Clear interrupt when cpu is shut down
2017-01-26 08:24:40 +01:00
connector
cpufreq
cpufreq: Fix and clean up show_cpuinfo_cur_freq()
2017-03-26 13:05:57 +02:00
cpuidle
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2016-10-15 09:26:12 -07:00
crypto
crypto: ccp - Fix double add when creating new DMA command
2017-02-14 15:25:33 -08:00
dax
device-dax: fix private mapping restriction, permit read-only
2016-12-06 17:42:37 -08:00
dca
devfreq
PM / devfreq: Fix wrong trans_stat of passive devfreq device
2017-03-12 06:41:44 +01:00
dio
dma
dmaengine: iota: ioat_alloc_chan_resources should not perform sleeping allocations.
2017-03-22 12:43:35 +01:00
dma-buf
Merge tag 'drm-for-v4.9' of git://people.freedesktop.org/~airlied/linux
2016-10-11 18:12:22 -07:00
edac
* Altera Arria10 enablement of NAND, DMA, USB, QSPI and SD-MMC FIFO
2016-10-04 12:06:26 -07:00
eisa
extcon
extcon: return error code on failure
2017-01-19 20:18:03 +01:00
firewire
firewire: net: fix fragmented datagram_size off-by-one
2016-11-03 14:46:39 +01:00
firmware
efi/arm: Fix boot crash with CONFIG_CPUMASK_OFFSTACK=y
2017-03-18 19:14:29 +08:00
fmc
fpga
gpio
gpio: Move freeing of GPIO hogs before numbing of the device
2017-01-19 20:18:00 +01:00
gpu
drm/amdgpu/si: add dpm quirk for Oland
2017-03-26 13:05:58 +02:00
hid
HID: wacom: Fix poor prox handling in 'wacom_pl_irq'
2017-02-09 08:08:29 +01:00
hsi
hv
drivers: hv: Turn off write permission on the hypercall page
2017-03-15 10:02:52 +08:00
hwmon
hwmon: (it87) Ensure that pwm control cache is current before updating values
2017-03-12 06:41:42 +01:00
hwspinlock
hwtracing
coresight: STM: Balance enable/disable
2017-03-12 06:41:42 +01:00
i2c
i2c: add missing of_node_put in i2c_mux_del_adapters
2017-03-18 19:14:30 +08:00
ide
idle
nmi_backtrace: generate one-line reports for idle cpus
2016-10-07 18:46:30 -07:00
iio
iio: magnetometer: ak8974: remove incorrect __exit markups
2017-03-30 09:41:25 +02:00
infiniband
IB/mlx5: Verify that Q counters are supported
2017-03-18 19:14:35 +08:00
input
Input: sur40 - validate number of endpoints before using them
2017-03-30 09:41:23 +02:00
iommu
iommu/vt-d: Tylersburg isoch identity map check is done too late.
2017-03-12 06:41:43 +01:00
ipack
ipack: print a hex number after a 0x prefix
2016-10-27 18:43:43 -07:00
irqchip
irqchip/gicv3-its: Add workaround for QDF2400 ITS erratum 0065
2017-03-22 12:43:39 +01:00
isdn
isdn/gigaset: fix NULL-deref at probe
2017-03-26 13:05:58 +02:00
leds
lguest
lightnvm
Merge branch 'for-4.9/block' of git://git.kernel.dk/linux-block
2016-10-07 14:42:05 -07:00
macintosh
mailbox
mailbox: PCC: Fix lockdep warning when request PCC channel
2016-11-14 22:07:38 +01:00
mcb
md
md/raid1/10: fix potential deadlock
2017-03-26 13:05:57 +02:00
media
uvcvideo: uvc_scan_fallback() for webcams with broken chain
2017-03-22 12:43:38 +01:00
memory
memory/atmel-ebi: Fix ns <-> cycles conversions
2017-03-15 10:02:45 +08:00
memstick
memstick: rtsx_usb_ms: Manage runtime PM when accessing the device
2016-10-17 15:43:05 +02:00
message
mfd
mfd: tps65217: Fix page fault on unloading modules
2017-01-12 11:39:23 +01:00
misc
cxl: fix nested locking hang during EEH hotplug
2017-03-15 10:02:42 +08:00
mmc
mmc: sdhci-of-arasan: fix incorrect timeout clock
2017-03-30 09:41:25 +02:00
mtd
mtd: pmcmsp: use kstrndup instead of kmalloc+strncpy
2017-03-18 19:14:28 +08:00
net
net: bcmgenet: remove bcmgenet_internal_phy_setup()
2017-03-30 09:41:22 +02:00
nfc
mei: bus: fix received data size check in NFC fixup
2016-10-31 10:25:22 -06:00
ntb
ntb_transport: Pick an unused queue
2017-02-23 17:44:36 +01:00
nubus
nvdimm
nfit, libnvdimm: fix interleave set cookie calculation
2017-03-15 10:02:47 +08:00
nvme
nvme: apply DELAY_BEFORE_CHK_RDY quirk at probe time too
2017-01-19 20:18:05 +01:00
nvmem
ARM: SoC driver updates for v4.9
2016-10-07 21:23:40 -07:00
of
of, numa: Return NUMA_NO_NODE from disable of_node_to_nid() if nid not possible.
2017-01-09 08:32:25 +01:00
oprofile
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2016-10-10 20:16:43 -07:00
parisc
parport
parport: fix attempt to write duplicate procfiles
2017-03-30 09:41:25 +02:00
pci
PCI: Do any VF BAR updates before enabling the BARs
2017-03-22 12:43:37 +01:00
pcmcia
pcmcia: fix return value of soc_pcmcia_regulator_set
2016-11-11 08:45:08 -08:00
perf
perf: xgene: Remove bogus IS_ERR() check
2016-10-17 15:50:07 +01:00
phy
phy: twl4030-usb: Fix for musb session bit based PM
2016-11-17 16:25:40 +01:00
pinctrl
pinctrl: intel: merrifield: Add missed check in mrfld_config_set()
2017-02-09 08:08:29 +01:00
platform
goldfish: Sanitize the broken interrupt handler
2017-02-26 11:10:52 +01:00
pnp
power
power: reset: at91-poweroff: timely shutdown LPDDR memories
2017-03-12 06:41:45 +01:00
powercap
powercap/intel_rapl: fix and tidy up error handling
2017-01-19 20:18:07 +01:00
pps
pps: kc: fix non-tickless system config dependency
2016-10-11 15:06:32 -07:00
ps3
ptp
drivers/ptp: Fix kernel memory disclosure
2016-10-13 10:20:06 -04:00
pwm
pwm: pca9685: Fix period change with same duty cycle
2017-03-15 10:02:46 +08:00
rapidio
mm: replace get_user_pages() write/force parameters with gup_flags
2016-10-19 08:11:43 -07:00
ras
regulator
regulator: Fix regulator_summary for deviceless consumers
2017-03-12 06:41:43 +01:00
remoteproc
remoteproc: qcom: mdt_loader: Don't overwrite firmware object
2017-03-12 06:41:50 +01:00
reset
reset: uniphier: rename MIO reset to SD reset for Pro5, PXs2, LD20 SoCs
2016-10-22 18:31:42 +09:00
rpmsg
rpmsg: virtio_rpmsg_bus: fix channel creation
2017-01-26 08:24:44 +01:00
rtc
rtc: sun6i: Switch to the external oscillator
2017-03-12 06:41:52 +01:00
s390
s390/zcrypt: Introduce CEX6 toleration
2017-03-22 12:43:38 +01:00
sbus
scsi
scsi: libiscsi: add lock around task lists to fix list corruption regression
2017-03-26 13:05:58 +02:00
sfi
sh
sn
soc
soc: ti: wkup_m3_ipc: Fix error return code in wkup_m3_ipc_probe()
2017-01-26 08:24:45 +01:00
spi
spi: s3c64xx: fix inconsistency between binding and driver
2017-03-12 06:41:41 +01:00
spmi
ssb
ssb: Fix error routine when fallback SPROM fails
2017-01-09 08:32:16 +01:00
staging
staging: rtl: fix possible NULL pointer dereference
2017-03-12 06:41:42 +01:00
target
target: Fix VERIFY_16 handling in sbc_parse_cdb
2017-03-26 13:05:58 +02:00
tc
thermal
thermal: hwmon: Properly report critical temperature in sysfs
2017-01-09 08:32:18 +01:00
thunderbolt
tty
serial: 8250_pci: Detach low-level driver during PCI error recovery
2017-03-22 12:43:39 +01:00
uio
usb
USB: usbtmc: fix probe error path
2017-03-30 09:41:24 +02:00
uwb
uwb: hwa-rc: fix NULL-deref at probe
2017-03-30 09:41:24 +02:00
vfio
vfio/spapr: Postpone default window creation
2017-03-22 12:43:38 +01:00
vhost
vhost: fix initialization for vq->is_le
2017-02-09 08:08:28 +01:00
video
fbdev: color map copying bounds checking
2017-02-01 08:33:02 +01:00
virt
mm: replace get_user_pages() write/force parameters with gup_flags
2016-10-19 08:11:43 -07:00
virtio
mm balloon: umount balloon_mnt when removing vb device
2017-03-12 06:41:43 +01:00
vlynq
vme
VME: restore bus_remove function causing incomplete module unload
2017-03-12 06:41:50 +01:00
w1
w1: ds2490: USB transfer buffers need to be DMAable
2017-03-12 06:41:48 +01:00
watchdog
watchdog: qcom: fix kernel panic due to external abort on non-linefetch
2017-01-06 10:40:16 +01:00
xen
swiotlb: Convert swiotlb_force from int to enum
2017-01-26 08:24:44 +01:00
zorro
Kconfig
Makefile
A small bug fix and a new driver for acting as an IPMI device.
2016-10-23 15:56:23 -07:00