linux/drivers
Saravana Kannan f2d3b9a46e ARM: 9220/1: amba: Remove deferred device addition
The uevents generated for an amba device need PID and CID information
that's available only when the amba device is powered on, clocked and
out of reset. So, if those resources aren't available, the information
can't be read to generate the uevents. To workaround this requirement,
if the resources weren't available, the device addition was deferred and
retried periodically.

However, this deferred addition retry isn't based on resources becoming
available. Instead, it's retried every 5 seconds and causes arbitrary
probe delays for amba devices and their consumers.

Also, maintaining a separate deferred-probe like mechanism is
maintenance headache.

With this commit, instead of deferring the device addition, we simply
defer the generation of uevents for the device and probing of the device
(because drivers needs PID and CID to match) until the PID and CID
information can be read. This allows us to delete all the amba specific
deferring code and also avoid the arbitrary probing delays.

Cc: Rob Herring <robh@kernel.org>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Saravana Kannan <saravanak@google.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Nicolas Saenz Julienne <nsaenz@kernel.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: patches@armlinux.org.uk
Signed-off-by: Saravana Kannan <saravanak@google.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
2022-07-28 15:09:23 +01:00
..
accessibility Revert "speakup: Generate speakupmap.h automatically" 2022-05-20 21:07:05 +02:00
acpi platform-drivers-x86 for v5.19-4 2022-07-15 10:12:22 -07:00
amba ARM: 9220/1: amba: Remove deferred device addition 2022-07-28 15:09:23 +01:00
android fix for breakage in #work.fd this window 2022-06-05 17:14:03 -07:00
ata ata: pata_cs5535: Fix W=1 warnings 2022-06-30 08:21:43 +09:00
atm
auxdisplay
base Just when you thought that all the speculation bugs were addressed and 2022-07-11 18:15:25 -07:00
bcma
block xen/blkfront: force data bouncing when backend is untrusted 2022-07-01 10:00:50 +02:00
bluetooth
bus ARM: SoC fixes for 5.19 2022-06-26 14:12:56 -07:00
cdrom cdrom: remove obsolete TODO list 2022-05-15 18:31:28 -06:00
char random: cap jitter samples per bit to factor of HZ 2022-07-16 10:42:12 -07:00
clk clk: stm32: rcc_reset: Fix missing spin_lock_init() 2022-06-09 15:34:08 -07:00
clocksource clocksource: hyper-v: unexport __init-annotated hv_init_clocksource() 2022-06-08 12:27:08 +00:00
comedi comedi: vmk80xx: fix expression for tx buffer size 2022-06-10 15:21:23 +02:00
connector
counter
cpufreq cpufreq arm fixes for 5.19-rc6 2022-07-15 13:54:14 +02:00
cpuidle Merge branches 'pm-em' and 'pm-cpuidle' 2022-05-23 19:18:51 +02:00
crypto crypto: s390 - do not depend on CRYPTO_HW for SIMD implementations 2022-07-06 20:04:06 -07:00
cxl cxl/mbox: Fix missing variable payload checks in cmd size validation 2022-06-28 22:03:18 -07:00
dax dax: add .recovery_write dax_operation 2022-05-16 13:37:59 -07:00
dca
devfreq PM / devfreq: exynos-bus: Fix NULL pointer dereference 2022-07-08 04:32:26 +09:00
dio drivers: dio: add missing iounmap() in dio_init() 2022-05-19 18:56:51 +02:00
dma dmaengine: lgm: Fix an error handling path in intel_ldma_probe() 2022-07-06 10:53:25 +05:30
dma-buf Three mode setting fixes for fsl-ldb, a fbdev removal use-after-free fix, 2022-07-12 10:44:40 +10:00
edac - A gargen variety of fixes which don't fit any other tip bucket: 2022-05-23 19:32:59 -07:00
eisa
extcon
firewire firewire: convert sysfs sprintf/snprintf family to sysfs_emit 2022-06-17 10:43:20 +02:00
firmware platform-drivers-x86 for v5.19-4 2022-07-15 10:12:22 -07:00
fpga
fsi
gnss
gpio gpio: sim: fix the chip_name configfs item 2022-07-12 13:41:25 +02:00
gpu - Fix 32b build 2022-07-17 13:08:03 -07:00
greybus
hid HID: hyperv: Correctly access fields declared as __le16 2022-06-08 12:28:13 +00:00
hsi
hte hte: Uninitialized variable in hte_ts_get() 2022-05-20 15:54:41 +02:00
hv Drivers: hv: vmbus: Release cpu lock in error case 2022-06-10 08:41:28 +00:00
hwmon hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails 2022-07-01 11:53:29 -07:00
hwspinlock
hwtracing
i2c i2c: cadence: Unregister the clk notifier in error path 2022-07-07 23:06:34 +02:00
i3c i3c: master: svc: fix returnvar.cocci warning 2022-05-17 22:34:42 +02:00
idle intel_idle: Disable IBRS during long idle 2022-06-27 10:33:59 +02:00
iio 1st set of IIO fixes for the 5.19 cycle. 2022-06-20 09:49:52 +02:00
infiniband RDMA/cm: Fix memory leak in ib_cm_insert_listen 2022-06-24 16:41:03 -03:00
input Input updates for v5.19-rc6 2022-07-17 07:52:46 -07:00
interconnect Char / Misc / Other smaller driver subsystem updates for 5.19-rc1 2022-06-03 11:36:34 -07:00
iommu iommu/vt-d: Fix RID2PASID setup/teardown failure 2022-07-06 12:59:21 +02:00
ipack
irqchip IRQ urgent fixes by way of Marc Zygnier: 2022-07-10 08:52:12 -07:00
isdn
leds ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
macintosh macintosh: via-pmu and via-cuda need RTC_LIB 2022-05-22 15:58:30 +10:00
mailbox mailbox: qcom-ipcc: Fix -Wunused-function with CONFIG_PM_SLEEP=n 2022-05-24 08:08:24 -05:00
mcb
md dm raid: fix KASAN warning in raid5_add_disks 2022-06-29 19:48:04 -04:00
media USB / Thunderbolt changes for 5.19-rc1 2022-06-03 11:17:49 -07:00
memory memory: samsung: exynos5422-dmc: Fix refcount leak in of_get_dram_timings 2022-06-06 11:18:20 +02:00
memstick
message
mfd ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
misc misc: rtsx_usb: set return value in rsp_buf alloc err path 2022-07-02 16:20:56 +02:00
mmc mmc: mediatek: wait dma stop bit reset to 0 2022-06-15 10:05:56 -07:00
most
mtd mtd: rawnand: gpmi: Fix setting busy timeout setting 2022-06-16 16:46:08 +02:00
mux
net nfp: flower: configure tunnel neighbour on cmsg rx 2022-07-14 10:12:56 -07:00
nfc NFC: nxp-nci: don't print header length mismatch on i2c error 2022-06-29 14:05:00 +01:00
ntb
nubus
nvdimm nvdimm: Fix badblocks clear off-by-one error 2022-06-24 11:57:19 -07:00
nvme nvme: fix block device naming collision 2022-07-14 16:35:25 +02:00
nvmem
of drm for 5.19-rc1 2022-05-25 16:18:27 -07:00
opp OPP updates for 5.19-rc1 2022-05-25 15:02:26 +02:00
parisc
parport
pci Driver core changes for 5.19-rc1 2022-06-03 11:48:47 -07:00
pcmcia ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
peci
perf arm64 updates for 5.19: 2022-05-23 21:06:11 -07:00
phy phy-for-5.19 2022-05-19 16:56:17 +02:00
pinctrl pinctrl: stm32: fix optional IRQ support to gpios 2022-06-28 16:12:40 +02:00
platform platform-drivers-x86 for v5.19-4 2022-07-15 10:12:22 -07:00
pnp
power power: supply: core: Fix boundary conditions in interpolation 2022-06-09 21:08:38 +02:00
powercap Merge branches 'pm-em' and 'pm-cpuidle' 2022-05-23 19:18:51 +02:00
pps
ps3
ptp ptp: ptp_clockmatrix: fix is_single_shot 2022-05-25 21:51:32 -07:00
pwm pwm: pwm-cros-ec: Add channel type support 2022-05-20 16:40:01 +02:00
rapidio
ras
regulator regulator: qcom_smd: correct MP5496 ranges 2022-06-07 20:38:09 +01:00
remoteproc
reset
rpmsg Driver core changes for 5.19-rc1 2022-06-03 11:48:47 -07:00
rtc ARM: multiplatform changes, part 2 2022-06-02 15:23:54 -07:00
s390 s390 updates for 5.19-rc7 2022-07-16 11:00:40 -07:00
sbus
scsi scsi: pm80xx: Set stopped phy's linkrate to Disabled 2022-07-13 23:27:59 -04:00
sh
siox
slimbus Driver core changes for 5.19-rc1 2022-06-03 11:48:47 -07:00
soc soc: qcom: smem: use correct format characters 2022-07-04 14:26:51 +02:00
soundwire
spi spi: cadence-quadspi: Remove spi_master_put() in probe failure path 2022-07-14 13:26:35 +01:00
spmi
ssb
staging staging/wlan-ng: get the correct struct hfa384x in work callback 2022-07-01 09:58:58 +02:00
target scsi: target: Fix WRITE_SAME No Data Buffer crash 2022-07-07 16:38:14 -04:00
tc
tee tee: tee_get_drvdata(): fix description of return value 2022-07-08 10:51:24 +02:00
thermal Thermal control update for 5.19-rc5 2022-07-01 13:00:47 -07:00
thunderbolt USB / Thunderbolt changes for 5.19-rc1 2022-06-03 11:17:49 -07:00
tty TTY / Serial driver fixes for 5.19-rc7 2022-07-16 11:11:56 -07:00
ufs scsi: ufs: core: Fix missing clk change notification on host reset 2022-07-13 23:27:59 -04:00
uio
usb USB-serial fixes for 5.19-rc7 2022-07-14 16:22:12 +02:00
vdpa vduse: Tie vduse mgmtdev and its device 2022-06-24 02:49:48 -04:00
vfio vfio: Move IOMMU_CAP_CACHE_COHERENCY test to after we know we have a group 2022-07-05 16:06:50 -06:00
vhost vhost-vdpa: call vhost_vdpa_cleanup during the release 2022-06-27 08:05:35 -04:00
video fbcon: Use fbcon_info_from_console() in fbcon_modechange_possible() 2022-07-07 10:52:35 +02:00
virt Char / Misc / Other smaller driver subsystem updates for 5.19-rc1 2022-06-03 11:36:34 -07:00
virtio virtio_ring: make vring_create_virtqueue_split prettier 2022-06-27 08:05:35 -04:00
vlynq
vme
w1
watchdog watchdog: gxp: Add missing MODULE_LICENSE 2022-06-09 12:20:34 +02:00
xen xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE 2022-07-11 11:39:45 +02:00
zorro
Kconfig SCSI misc on 20220604 2022-06-05 09:25:12 -07:00
Makefile SCSI misc on 20220604 2022-06-05 09:25:12 -07:00