linux/drivers
Tam Nguyen e8183fa10c i2c: designware: Disable TX_EMPTY irq while waiting for block length byte
During SMBus block data read process, we have seen high interrupt rate
because of TX_EMPTY irq status while waiting for block length byte (the
first data byte after the address phase). The interrupt handler does not
do anything because the internal state is kept as STATUS_WRITE_IN_PROGRESS.
Hence, we should disable TX_EMPTY IRQ until I2C DesignWare receives
first data byte from I2C device, then re-enable it to resume SMBus
transaction.

It takes 0.789 ms for host to receive data length from slave.
Without the patch, i2c_dw_isr() is called 99 times by TX_EMPTY interrupt.
And it is none after applying the patch.

Cc: stable@vger.kernel.org
Co-developed-by: Chuong Tran <chuong@os.amperecomputing.com>
Signed-off-by: Chuong Tran <chuong@os.amperecomputing.com>
Signed-off-by: Tam Nguyen <tamnguyenchi@os.amperecomputing.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
2023-11-08 10:19:48 +01:00
..
accel As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
accessibility
acpi cxl for v6.7 2023-11-04 16:20:36 -10:00
amba
android Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
ata ATA changes for 6.7-rc1 2023-11-01 12:50:12 -10:00
atm pci-v6.7-changes 2023-11-02 14:05:18 -10:00
auxdisplay
base regmap: Fix for v6.7 2023-11-07 16:56:10 -08:00
bcma
block vhost,virtio,vdpa: features, fixes, cleanups 2023-11-05 09:02:32 -10:00
bluetooth Bluetooth: btmtksdio: enable bluetooth wakeup in system suspend 2023-10-23 11:04:51 -07:00
bus SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
cache riscv: RISCV_NONSTANDARD_CACHE_OPS shouldn't depend on RISCV_DMA_NONCOHERENT 2023-10-26 09:42:37 +02:00
cdrom
cdx Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
char Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
clk SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
clocksource arm64 updates for 6.7: 2023-11-01 09:34:55 -10:00
comedi
connector Fix NULL pointer dereference in cn_filter() 2023-10-24 10:53:45 +02:00
counter
cpufreq Merge branch 'pm-cpufreq' 2023-11-07 20:45:12 +01:00
cpuidle
crypto crypto: talitos - stop using crypto_ahash::init 2023-10-27 18:04:29 +08:00
cxl cxl/pci: Change CXL AER support check to use native AER 2023-11-02 14:09:01 -07:00
dax Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
dca
devfreq
dio
dma dmaengine updates for v6.7 2023-11-03 18:56:51 -10:00
dma-buf As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
dpll
edac hardening updates for v6.7-rc1 2023-10-30 19:09:55 -10:00
eisa
extcon
firewire firewire: Annotate struct fw_node with __counted_by 2023-11-05 21:15:17 +09:00
firmware TTY/Serial changes for 6.7-rc1 2023-11-03 15:44:25 -10:00
fpga Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
fsi
gnss
gpio pinctrl: tegra: drop the wrapper around pinctrl_gpio_request() 2023-11-04 10:23:23 +01:00
gpu drm next and fixes for 6.7-rc1 2023-11-07 17:10:02 -08:00
greybus greybus: Add BeaglePlay Linux Driver 2023-10-27 13:19:04 +02:00
hid Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
hsi
hte hte: Changes for v6.7-rc1 2023-10-31 18:32:51 -10:00
hv TTY/Serial changes for 6.7-rc1 2023-11-03 15:44:25 -10:00
hwmon hwmon updates for v6.7-rc1 2023-10-31 17:44:17 -10:00
hwspinlock
hwtracing
i2c i2c: designware: Disable TX_EMPTY irq while waiting for block length byte 2023-11-08 10:19:48 +01:00
i3c I3C for 6.7 2023-11-04 16:25:36 -10:00
idle
iio Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
infiniband RDMA for v6.7 2023-11-02 15:20:30 -10:00
input asm-generic updates for v6.7 2023-11-01 15:28:33 -10:00
interconnect
iommu iommufd for 6.7 2023-11-01 16:44:56 -10:00
ipack
irqchip arm64 updates for 6.7: 2023-11-01 09:34:55 -10:00
isdn hardening updates for v6.7-rc1 2023-10-30 19:09:55 -10:00
leds - Core Frameworks 2023-11-02 14:53:19 -10:00
macintosh powerpc updates for 6.7 2023-11-03 10:07:39 -10:00
mailbox Moving repo 2023-11-05 18:45:32 -08:00
mcb
md Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
media media updates for v6.7-rc1 2023-11-06 15:06:06 -08:00
memory
memstick
message scsi: message: fusion: Initialize return value in mptfc_bus_reset() 2023-10-24 22:36:39 -04:00
mfd - Core Frameworks 2023-11-02 14:40:51 -10:00
misc I2C has largely driver updates for 6.7., i.e. feature additions (like 2023-11-05 08:41:14 -10:00
mmc mmc: Merge branch fixes into next 2023-10-27 12:00:35 +02:00
most
mtd This pull request contains updates for UBI and UBIFS 2023-11-05 08:28:32 -10:00
mux
net As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
nfc
ntb
nubus
nvdimm
nvme for-6.7/block-2023-10-30 2023-11-01 12:30:07 -10:00
nvmem Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
of Devicetree updates for 6.7: 2023-10-31 18:50:13 -10:00
opp
parisc parisc/power: Trivial whitespace cleanups and license update 2023-10-30 14:54:40 +01:00
parport Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
pci cxl for v6.7 2023-11-04 16:20:36 -10:00
pcmcia PCMCIA odd cleanups and fixes for v6.7-rc1 2023-11-07 16:40:42 -08:00
peci
perf sysctl-6.7-rc1 2023-11-01 20:51:41 -10:00
phy phy-for-6.6 2023-11-03 19:06:12 -10:00
pinctrl pinctrl: nuvoton: npcm8xx: drop wrappers around pinctrl_gpio_request/free() 2023-11-04 10:23:23 +01:00
platform Major microcode loader restructuring, cleanup and improvements by Thomas 2023-11-04 08:46:37 -10:00
pmdomain SoC driver updates for 6.7 2023-11-01 14:46:51 -10:00
pnp
power USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
powercap powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() 2023-10-24 22:07:07 +02:00
pps
ps3
ptp
pwm
rapidio
ras
regulator regulator: Merge up pending fix 2023-10-30 13:14:27 +00:00
remoteproc
reset reset: Annotate struct reset_control_array with __counted_by 2023-10-24 14:10:04 -07:00
rpmsg rpmsg: virtio: Replace deprecated strncpy with strscpy/_pad 2023-10-23 13:11:07 -06:00
rtc RTC for 6.7 2023-11-05 18:49:40 -08:00
s390 s390 updates for the 6.7 merge window 2023-11-03 10:17:22 -10:00
sbus
scsi As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
sh sh: Remove superhyway bus support 2023-10-25 16:50:11 +02:00
siox
slimbus
soc powerpc updates for 6.7 2023-11-03 10:07:39 -10:00
soundwire soundwire updates for 6.7 2023-11-03 19:10:41 -10:00
spi USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
spmi spmi: rename spmi device lookup helper 2023-11-01 10:02:18 +00:00
ssb
staging media updates for v6.7-rc1 2023-11-06 15:06:06 -08:00
target SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
tc
tee
thermal Thermal control updates for 6.7-rc1 2023-10-31 15:28:37 -10:00
thunderbolt USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
tty TTY/Serial changes for 6.7-rc1 2023-11-03 15:44:25 -10:00
ufs SCSI misc on 20231102 2023-11-02 15:13:50 -10:00
uio
usb USB/Thunderbolt changes for 6.7-rc1 2023-11-03 16:00:42 -10:00
vdpa vdpa_sim: implement .reset_map support 2023-11-01 09:20:00 -04:00
vfio Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
vhost vhost,virtio,vdpa: features, fixes, cleanups 2023-11-05 09:02:32 -10:00
video TTY/Serial changes for 6.7-rc1 2023-11-03 15:44:25 -10:00
virt configfs-tsm for v6.7 2023-11-04 15:58:13 -10:00
virtio vhost,virtio,vdpa: features, fixes, cleanups 2023-11-05 09:02:32 -10:00
vlynq
w1
watchdog
xen Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
zorro
Kconfig - Move Kconfig files into the pmdomain subsystem 2023-11-01 13:09:46 -10:00
Makefile