1
0
Fork 0
alistair23-linux/drivers
Aswath Govindraju 572a7d15f2 spi: omap2-mcspi: Improve performance waiting for CHSTAT
[ Upstream commit 7b1d968133 ]

This reverts commit 13d515c796 (spi: omap2-mcspi: Switch to
readl_poll_timeout()).

The amount of time spent polling for the MCSPI_CHSTAT bits to be set on
AM335x-icev2 platform is less than 1us (about 0.6us) in most cases, with
or without using DMA. So, in most cases the function need not sleep.
Also, setting the sleep_usecs to zero would not be optimal here because
ktime_add_us() used in readl_poll_timeout() is slower compared to the
direct addition used after the revert. So, it is sub-optimal to use
readl_poll_timeout in this case.

When DMA is not enabled, this revert results in an increase of about 27%
in throughput and decrease of about 20% in CPU usage. However, the CPU
usage and throughput are almost the same when used with DMA.

Therefore, fix this by reverting the commit which switched to using
readl_poll_timeout().

Fixes: 13d515c796 ("spi: omap2-mcspi: Switch to readl_poll_timeout()")
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Link: https://lore.kernel.org/r/20200910122624.8769-1-a-govindraju@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-29 09:57:41 +01:00
..
accessibility
acpi ACPI: Always build evged in 2020-10-17 10:11:22 +02:00
amba
android binder: Remove bogus warning on failed same-process transaction 2020-10-29 09:57:37 +01:00
ata ata: sata_mv, avoid trigerrable BUG_ON 2020-10-01 13:18:26 +02:00
atm atm: eni: fix the missed pci_disable_device() for eni_init_one() 2020-10-01 13:18:17 +02:00
auxdisplay
base driver core: Fix probe_count imbalance in really_probe() 2020-10-14 10:32:59 +02:00
bcma
block rbd: require global CAP_SYS_ADMIN for mapping and unmapping 2020-09-17 13:47:53 +02:00
bluetooth Bluetooth: hci_uart: Cancel init work before unregistering 2020-10-29 09:57:35 +01:00
bus bus: hisi_lpc: Fixup IO ports addresses to avoid use-after-free in host removal 2020-10-01 13:17:37 +02:00
cdrom
char ipmi:bt-bmc: Fix error handling and status check 2020-10-01 13:18:01 +02:00
clk clk: samsung: exynos4: mark 'chipid' clock as CLK_IGNORE_UNUSED 2020-10-07 08:01:28 +02:00
clocksource clocksource/drivers/timer-gx6605s: Fixup counter reload 2020-10-07 08:01:25 +02:00
connector
counter counter: 104-quad-8: Add lock guards - generic interface 2020-05-02 08:48:44 +02:00
cpufreq cpufreq: armada-37xx: Add missing MODULE_DEVICE_TABLE 2020-10-29 09:57:40 +01:00
cpuidle cpuidle: Fixup IRQ state 2020-09-09 19:12:21 +02:00
crypto cypto: mediatek - fix leaks in mtk_desc_ring_alloc 2020-10-29 09:57:33 +01:00
dax dax: Fix alloc_dax_region() compile warning 2020-10-01 13:17:15 +02:00
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2020-10-01 13:17:14 +02:00
dio
dma dmaengine: tegra-apb: Prevent race conditions on channel's freeing 2020-10-01 13:17:36 +02:00
dma-buf dmabuf: fix NULL pointer dereference in dma_buf_release() 2020-10-01 13:18:24 +02:00
edac EDAC/ti: Fix handling of platform_get_irq() error 2020-10-29 09:57:29 +01:00
eisa
extcon extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()' 2020-06-24 17:50:36 +02:00
firewire
firmware firmware: arm_sdei: Use cpus_read_lock() to avoid races with cpuhp 2020-10-01 13:17:37 +02:00
fpga fpga: dfl: fix bug in port reset handshake 2020-07-29 10:18:31 +02:00
fsi
gnss gnss: sirf: fix error return code in sirf_probe() 2020-06-22 09:31:20 +02:00
gpio gpio: aspeed: fix ast2600 bank properties 2020-10-07 08:01:29 +02:00
gpu drm: mxsfb: check framebuffer pitch 2020-10-29 09:57:40 +01:00
greybus
hid HID: roccat: add bounds checking in kone_sysfs_write_settings() 2020-10-29 09:57:39 +01:00
hsi
hv Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload 2020-09-23 12:40:40 +02:00
hwmon hwmon: (pmbus/max34440) Fix status register reads for MAX344{51,60,61} 2020-10-29 09:57:32 +01:00
hwspinlock
hwtracing coresight: etm4x: Handle unreachable sink in perf mode 2020-10-29 09:57:40 +01:00
i2c i2c: owl: Clear NACK and BUS error bits 2020-10-14 10:33:01 +02:00
i3c
ide ide: serverworks: potential overflow in svwks_set_pio_mode() 2020-02-24 08:36:53 +01:00
idle
iio iio: adc: qcom-spmi-adc5: fix driver name 2020-10-07 08:01:25 +02:00
infiniband IB/iser: Always check sig MR before putting it to the free pool 2020-10-01 13:17:50 +02:00
input Input: ati_remote2 - add missing newlines when printing module parameters 2020-10-14 10:33:06 +02:00
interconnect
iommu iommu/vt-d: Fix lockdep splat in iommu_flush_dev_iotlb() 2020-10-14 10:33:02 +02:00
ipack ipack: tpci200: fix error return code in tpci200_register() 2020-05-27 17:46:47 +02:00
irqchip irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by mistake 2020-09-03 11:27:06 +02:00
isdn
leds leds: mlxreg: Fix possible buffer overflow 2020-10-01 13:17:14 +02:00
lightnvm
macintosh macintosh/via-macii: Access autopoll_devs when inside lock 2020-08-19 08:16:15 +02:00
mailbox mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe() 2020-06-24 17:50:36 +02:00
mcb
md dm: fix bio splitting and its bio completion order for regular IO 2020-10-01 13:18:25 +02:00
media media: ti-vpe: Fix a missing check and reference count leak 2020-10-29 09:57:34 +01:00
memory
memstick memstick: Skip allocating card when removing host 2020-10-07 08:01:25 +02:00
message scsi: mptscsih: Fix read sense data size 2020-07-16 08:16:36 +02:00
mfd mfd: mfd-core: Protect against NULL call-back function pointer 2020-10-01 13:17:17 +02:00
misc VMCI: check return value of get_user_pages_fast() for errors 2020-10-29 09:57:37 +01:00
mmc mmc: core: don't set limits.discard_granularity as 0 2020-10-14 10:33:05 +02:00
mtd ubi: fastmap: Free unused fastmap anchor peb during detach 2020-10-01 13:18:11 +02:00
mux
net net: dsa: rtl8366rb: Support all 4096 VLANs 2020-10-29 09:57:41 +01:00
nfc NFC: st95hf: Fix memleak in st95hf_in_send_cmd 2020-09-17 13:47:45 +02:00
ntb NTB: perf: Fix race condition when run with ntb_test 2020-06-24 17:50:41 +02:00
nubus
nvdimm libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr 2020-08-21 13:05:35 +02:00
nvme nvme-pci: disable the write zeros command for Intel 600P/P3100 2020-10-29 09:57:25 +01:00
nvmem nvmem: qfprom: remove incorrect write support 2020-06-10 20:24:57 +02:00
of of: of_mdio: Correct loop scanning logic 2020-07-22 09:32:55 +02:00
opp opp: Increase parsed_static_opps in _of_add_opp_table_v1() 2020-10-01 13:18:11 +02:00
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2020-08-19 08:16:26 +02:00
parport
pci PCI: tegra: Fix runtime PM imbalance on error 2020-10-01 13:18:07 +02:00
pcmcia
perf drivers/perf: thunderx2_pmu: Fix memory resource error handling 2020-10-29 09:57:30 +01:00
phy phy: ti: am654: Fix a leak in serdes_am654_probe() 2020-10-07 08:01:28 +02:00
pinctrl pinctrl: mcp23s08: Fix mcp23x17 precious range 2020-10-29 09:57:39 +01:00
platform platform/x86: fix kconfig dependency warning for FUJITSU_LAPTOP 2020-10-14 10:33:03 +02:00
pnp
power power: supply: max17040: Correct voltage reading 2020-10-01 13:17:59 +02:00
powercap
pps
ps3
ptp
pwm pwm: lpss: Add range limit check for the base_unit register value 2020-10-29 09:57:38 +01:00
rapidio rapidio: avoid data race between file operation callbacks and mport_cdev_add(). 2020-10-01 13:18:08 +02:00
ras
regulator regulator: resolve supply after creating regulator 2020-10-29 09:57:34 +01:00
remoteproc remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load 2020-08-21 13:05:29 +02:00
reset reset: uniphier: Add SCSSI reset control for each channel 2020-02-24 08:36:41 +01:00
rpmsg
rtc rtc: ds1374: fix possible race condition 2020-10-01 13:17:43 +02:00
s390 s390/zcrypt: Fix ZCRYPT_PERDEV_REQCNT ioctl 2020-10-01 13:18:24 +02:00
sbus
scsi scsi: mpt3sas: Fix sync irqs 2020-10-29 09:57:39 +01:00
sfi
sh
siox
slimbus slimbus: core: Fix mismatch in of_node_get/put 2020-07-22 09:33:08 +02:00
soc soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag 2020-08-19 08:15:59 +02:00
soundwire soundwire: bus: disable pm_runtime in sdw_slave_delete 2020-10-01 13:17:36 +02:00
spi spi: omap2-mcspi: Improve performance waiting for CHSTAT 2020-10-29 09:57:41 +01:00
spmi spmi: pmic-arb: Set lockdep class for hierarchical irq domains 2020-02-19 19:53:07 +01:00
ssb
staging net: wilc1000: clean up resource in error path of init mon interface 2020-10-29 09:57:40 +01:00
target scsi: target: iscsi: Fix hang in iscsit_access_np() when getting tpg->np_login_sem 2020-09-17 13:47:53 +02:00
tc
tee
thermal thermal: rcar_thermal: Handle probe error gracefully 2020-10-01 13:17:44 +02:00
thunderbolt thunderbolt: Prevent crash if non-active NVMem file is read 2020-02-28 17:22:13 +01:00
tty pty: do tty_flip_buffer_push without port->lock in pty_write 2020-10-29 09:57:38 +01:00
uio uio_pdrv_genirq: fix use without device tree and no interrupt 2020-07-22 09:33:13 +02:00
usb xhci: don't create endpoint debugfs entry before ring buffer is set. 2020-10-29 09:57:40 +01:00
vfio vfio/pci: fix racy on error and request eventfd ctx 2020-10-01 13:18:10 +02:00
vhost vhost: Use vhost_get_used_size() in vhost_vring_set_addr() 2020-10-14 10:32:58 +02:00
video video: fbdev: radeon: Fix memleak in radeonfb_pci_register 2020-10-29 09:57:38 +01:00
virt drivers/virt/fsl_hypervisor: Fix error handling path 2020-10-29 09:57:38 +01:00
virtio virtio_ring: Avoid loop when vq is broken in virtqueue_poll 2020-08-26 10:40:57 +02:00
visorbus visorbus: fix uninitialized variable access 2020-02-24 08:36:47 +01:00
vlynq
vme vme: bridges: reduce stack usage 2020-02-24 08:36:48 +01:00
w1 w1: omap-hdq: cleanup to add missing newline for some dev_dbg 2020-06-22 09:31:26 +02:00
watchdog watchdog: initialize device before misc_register 2020-08-21 13:05:36 +02:00
xen xen/events: don't use chip_data for legacy IRQs 2020-10-17 10:11:24 +02:00
zorro
Kconfig
Makefile