* [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
@ 2025-07-04 7:52 Sakari Ailus
2025-07-04 7:53 ` [PATCH 01/80] accel/ivpu: " Sakari Ailus
` (87 more replies)
0 siblings, 88 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:52 UTC (permalink / raw)
To: linux-pm; +Cc: linux-kernel, Rafael J. Wysocki
Hello everyone,
Late last year I posted a set to switch to __pm_runtime_mark_last_busy()
and gradually get rid of explicit pm_runtime_mark_last_busy() calls in
drivers, embedding them in the appropriate pm_runtime_*autosuspend*()
calls. The overall feedback I got at the time was that this is an
unnecessary intermediate step, and removing the
pm_runtime_mark_last_busy() calls can be done after adding them to the
relevant Runtime PM autosuspend related functions. The latter part has
been done and is present in Rafael's tree at the moment, also see
<URL:https://lore.kernel.org/linux-pm/CAJZ5v0g7-8UWp6ATOy+=oGdxDaCnfKHBG_+kbiTr+VeuXZsUFQ@mail.gmail.com/>:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
So before merging these, please pull Rafael's tag. My thinking is indeed
these would be best merged via the respective trees as there's some
potential for conflicts (there are around 920 call sites modified here).
These patches are on next-20250701.
The changes in these have been generated using the following Coccinelle
patch:
-----------8<-----------------------------
@@
expression E;
identifier label, rval;
@@
- pm_runtime_mark_last_busy(E);
...
(
label:
|
)
...
(
pm_runtime_put_autosuspend(E);
|
pm_runtime_put_sync_autosuspend(E);
|
pm_runtime_autosuspend(E);
|
pm_request_autosuspend(E);
|
(void)pm_runtime_put_autosuspend(E);
|
(void)pm_runtime_put_sync_autosuspend(E);
|
(void)pm_runtime_autosuspend(E);
|
(void)pm_request_autosuspend(E);
|
return pm_runtime_put_autosuspend(E);
|
return pm_runtime_put_sync_autosuspend(E);
|
return pm_runtime_autosuspend(E);
|
return pm_request_autosuspend(E);
|
rval = pm_runtime_put_autosuspend(E);
|
rval = pm_runtime_put_sync_autosuspend(E);
|
rval = pm_runtime_autosuspend(E);
|
rval = pm_request_autosuspend(E);
)
-----------8<-----------------------------
Sakari Ailus (80):
accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
Bluetooth: Remove redundant pm_runtime_mark_last_busy() calls
bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
hwrng: Remove redundant pm_runtime_mark_last_busy() calls
clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
crypto: Remove redundant pm_runtime_mark_last_busy() calls
dmaengine: at_xdmac: Remove redundant pm_runtime_mark_last_busy()
calls
dmaengine: pl330: Remove redundant pm_runtime_mark_last_busy() calls
dmaengine: qcom: Remove redundant pm_runtime_mark_last_busy() calls
dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy()
calls
dmaengine: ti: Remove redundant pm_runtime_mark_last_busy() calls
dmaengine: zynqmp_dma: Remove redundant pm_runtime_mark_last_busy()
calls
gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
drm/radeon: Remove redundant pm_runtime_mark_last_busy() calls
drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
stm class: Remove redundant pm_runtime_mark_last_busy() calls
i2c: Remove redundant pm_runtime_mark_last_busy() calls
i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
iio: chemical: Remove redundant pm_runtime_mark_last_busy() calls
iio: common: Remove redundant pm_runtime_mark_last_busy() calls
iio: dac: Remove redundant pm_runtime_mark_last_busy() calls
iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
iio: light: Remove redundant pm_runtime_mark_last_busy() calls
iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
iio: pressure: Remove redundant pm_runtime_mark_last_busy() calls
iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
Input: omap4-keypad: Remove redundant pm_runtime_mark_last_busy()
calls
Input: cs40l50: Remove redundant pm_runtime_mark_last_busy() calls
media: Remove redundant pm_runtime_mark_last_busy() calls
mfd: Remove redundant pm_runtime_mark_last_busy() calls
mei: Remove redundant pm_runtime_mark_last_busy() calls
mmc: Remove redundant pm_runtime_mark_last_busy() calls
mtd: rawnand: gpmi: Remove redundant pm_runtime_mark_last_busy() calls
net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
net: ipa: Remove redundant pm_runtime_mark_last_busy() calls
net: wireless: Remove redundant pm_runtime_mark_last_busy() calls
net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
PCI/portdrv: Remove redundant pm_runtime_mark_last_busy() calls
phy: motorola: phy-mapphone-mdm6600: Remove redundant
pm_runtime_mark_last_busy() calls
phy: ti: phy-twl4030-usb: Remove redundant pm_runtime_mark_last_busy()
calls
power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy()
calls
power: supply: twl4030_charger: Remove redundant
pm_runtime_mark_last_busy() calls
pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy()
calls
remoteproc: omap: Remove redundant pm_runtime_mark_last_busy() calls
slimbus: Remove redundant pm_runtime_mark_last_busy() calls
soundwire: Remove redundant pm_runtime_mark_last_busy() calls
spi: Remove redundant pm_runtime_mark_last_busy() calls
staging: greybus: Remove redundant pm_runtime_mark_last_busy() calls
greybus: Remove redundant pm_runtime_mark_last_busy() calls
media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
thunderbolt: Remove redundant pm_runtime_mark_last_busy() calls
serial: Remove redundant pm_runtime_mark_last_busy() calls
usb: Remove redundant pm_runtime_mark_last_busy() calls
w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls
ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
soc: apple: mailbox: Remove redundant pm_runtime_mark_last_busy()
calls
block: pm: Remove redundant pm_runtime_mark_last_busy() calls
Input: cyapa - Remove redundant pm_runtime_mark_last_busy() calls
mei: Remove redundant pm_runtime_mark_last_busy() calls
scsi: block: pm: Remove redundant pm_runtime_mark_last_busy() calls
block/blk-pm.c | 1 -
drivers/accel/amdxdna/amdxdna_pci_drv.c | 3 --
drivers/accel/ivpu/ivpu_job.c | 1 -
drivers/accel/ivpu/ivpu_pm.c | 2 --
drivers/bluetooth/btmtksdio.c | 1 -
drivers/bluetooth/hci_bcm.c | 3 --
drivers/bluetooth/hci_h5.c | 2 --
drivers/bluetooth/hci_intel.c | 3 --
drivers/bus/sunxi-rsb.c | 2 --
drivers/char/hw_random/atmel-rng.c | 1 -
drivers/char/hw_random/cctrng.c | 1 -
drivers/char/hw_random/mtk-rng.c | 1 -
drivers/char/hw_random/npcm-rng.c | 1 -
drivers/char/hw_random/omap3-rom-rng.c | 1 -
drivers/char/hw_random/rockchip-rng.c | 3 --
drivers/char/hw_random/stm32-rng.c | 1 -
drivers/clk/imx/clk-imx8qxp-lpcg.c | 1 -
drivers/clk/imx/clk-scu.c | 1 -
drivers/clk/qcom/lpassaudiocc-sc7280.c | 2 --
drivers/clk/qcom/lpasscorecc-sc7180.c | 2 --
drivers/crypto/ccree/cc_pm.c | 1 -
drivers/crypto/hisilicon/qm.c | 1 -
drivers/crypto/omap-aes-gcm.c | 1 -
drivers/crypto/omap-aes.c | 1 -
drivers/crypto/omap-des.c | 1 -
drivers/crypto/omap-sham.c | 1 -
drivers/crypto/stm32/stm32-cryp.c | 1 -
drivers/crypto/stm32/stm32-hash.c | 1 -
drivers/dma/at_xdmac.c | 11 ------
drivers/dma/pl330.c | 5 ---
drivers/dma/qcom/bam_dma.c | 5 ---
drivers/dma/qcom/hidma.c | 9 -----
drivers/dma/qcom/hidma_dbg.c | 1 -
drivers/dma/qcom/hidma_mgmt.c | 2 --
drivers/dma/ste_dma40.c | 8 -----
drivers/dma/ti/cppi41.c | 5 ---
drivers/dma/xilinx/zynqmp_dma.c | 2 --
drivers/gpio/gpio-arizona.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 1 -
.../gpu/drm/amd/amdgpu/amdgpu_connectors.c | 4 ---
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 25 -------------
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ---
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 1 -
.../gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 1 -
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 1 -
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 1 -
.../drm/bridge/analogix/analogix_dp_core.c | 2 --
drivers/gpu/drm/bridge/analogix/anx7625.c | 2 --
drivers/gpu/drm/bridge/parade-ps8640.c | 2 --
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 -
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 4 ---
drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2 --
drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 --
drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 --
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 1 -
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 -
drivers/gpu/drm/i915/intel_runtime_pm.c | 2 --
drivers/gpu/drm/imx/dcss/dcss-crtc.c | 1 -
drivers/gpu/drm/lima/lima_sched.c | 1 -
drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 --
drivers/gpu/drm/nouveau/nouveau_connector.c | 1 -
drivers/gpu/drm/nouveau/nouveau_debugfs.c | 1 -
drivers/gpu/drm/nouveau/nouveau_display.c | 1 -
drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ---
drivers/gpu/drm/nouveau/nouveau_gem.c | 3 --
drivers/gpu/drm/panel/panel-edp.c | 3 --
.../gpu/drm/panel/panel-samsung-atna33xc20.c | 2 --
drivers/gpu/drm/panel/panel-simple.c | 2 --
drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 2 --
drivers/gpu/drm/panthor/panthor_sched.c | 2 --
drivers/gpu/drm/radeon/radeon_acpi.c | 1 -
drivers/gpu/drm/radeon/radeon_connectors.c | 5 ---
drivers/gpu/drm/radeon/radeon_display.c | 2 --
drivers/gpu/drm/radeon/radeon_drv.c | 2 --
drivers/gpu/drm/radeon/radeon_fbdev.c | 2 --
drivers/gpu/drm/radeon/radeon_kms.c | 4 ---
drivers/gpu/drm/tegra/submit.c | 1 -
drivers/gpu/drm/tidss/tidss_drv.c | 2 --
drivers/gpu/drm/vc4/vc4_v3d.c | 1 -
drivers/greybus/bundle.c | 1 -
drivers/greybus/interface.c | 1 -
.../intel-quicki2c/pci-quicki2c.c | 2 --
.../intel-quicki2c/quicki2c-hid.c | 1 -
.../intel-quickspi/pci-quickspi.c | 2 --
.../intel-quickspi/quickspi-hid.c | 1 -
drivers/hsi/controllers/omap_ssi_port.c | 11 ------
drivers/hwtracing/stm/core.c | 3 --
drivers/i2c/busses/i2c-amd-mp2.h | 1 -
drivers/i2c/busses/i2c-at91-core.c | 1 -
drivers/i2c/busses/i2c-at91-master.c | 1 -
drivers/i2c/busses/i2c-cadence.c | 1 -
drivers/i2c/busses/i2c-davinci.c | 2 --
drivers/i2c/busses/i2c-designware-master.c | 1 -
drivers/i2c/busses/i2c-hix5hd2.c | 1 -
drivers/i2c/busses/i2c-i801.c | 1 -
drivers/i2c/busses/i2c-img-scb.c | 3 --
drivers/i2c/busses/i2c-imx-lpi2c.c | 4 ---
drivers/i2c/busses/i2c-imx.c | 3 --
drivers/i2c/busses/i2c-mv64xxx.c | 1 -
drivers/i2c/busses/i2c-nvidia-gpu.c | 1 -
drivers/i2c/busses/i2c-omap.c | 3 --
drivers/i2c/busses/i2c-qcom-cci.c | 2 --
drivers/i2c/busses/i2c-qcom-geni.c | 1 -
drivers/i2c/busses/i2c-qup.c | 3 --
drivers/i2c/busses/i2c-riic.c | 2 --
drivers/i2c/busses/i2c-rzv2m.c | 1 -
drivers/i2c/busses/i2c-sprd.c | 2 --
drivers/i2c/busses/i2c-stm32f7.c | 5 ---
drivers/i2c/busses/i2c-xiic.c | 1 -
drivers/i3c/master/dw-i3c-master.c | 8 -----
drivers/i3c/master/svc-i3c-master.c | 8 -----
drivers/iio/accel/bmc150-accel-core.c | 1 -
drivers/iio/accel/bmi088-accel-core.c | 3 --
drivers/iio/accel/fxls8962af-core.c | 1 -
drivers/iio/accel/kxcjk-1013.c | 1 -
drivers/iio/accel/kxsd9.c | 3 --
drivers/iio/accel/mma8452.c | 1 -
drivers/iio/accel/mma9551_core.c | 1 -
drivers/iio/accel/msa311.c | 6 ----
drivers/iio/adc/ab8500-gpadc.c | 1 -
drivers/iio/adc/at91-sama5d2_adc.c | 10 ------
drivers/iio/adc/imx8qxp-adc.c | 2 --
drivers/iio/adc/imx93_adc.c | 1 -
drivers/iio/adc/rcar-gyroadc.c | 1 -
drivers/iio/adc/rzg2l_adc.c | 3 --
drivers/iio/adc/stm32-adc-core.c | 1 -
drivers/iio/adc/stm32-adc.c | 7 ----
drivers/iio/adc/sun4i-gpadc-iio.c | 2 --
drivers/iio/adc/ti-ads1015.c | 1 -
drivers/iio/adc/ti-ads1100.c | 1 -
drivers/iio/adc/ti-ads1119.c | 2 --
drivers/iio/chemical/atlas-sensor.c | 2 --
drivers/iio/chemical/bme680_core.c | 3 --
.../common/hid-sensors/hid-sensor-trigger.c | 1 -
drivers/iio/dac/stm32-dac.c | 3 --
drivers/iio/gyro/bmg160_core.c | 1 -
drivers/iio/gyro/fxas21002c_core.c | 2 --
drivers/iio/gyro/mpu3050-core.c | 3 --
drivers/iio/gyro/mpu3050-i2c.c | 1 -
.../iio/imu/inv_icm42600/inv_icm42600_accel.c | 5 ---
.../imu/inv_icm42600/inv_icm42600_buffer.c | 1 -
.../iio/imu/inv_icm42600/inv_icm42600_gyro.c | 5 ---
.../iio/imu/inv_icm42600/inv_icm42600_temp.c | 1 -
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 6 ----
drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 1 -
drivers/iio/imu/kmx61.c | 1 -
drivers/iio/light/apds9306.c | 2 --
drivers/iio/light/apds9960.c | 1 -
drivers/iio/light/bh1780.c | 1 -
drivers/iio/light/gp2ap002.c | 2 --
drivers/iio/light/isl29028.c | 1 -
drivers/iio/light/ltrf216a.c | 1 -
drivers/iio/light/pa12203001.c | 1 -
drivers/iio/light/rpr0521.c | 1 -
drivers/iio/light/tsl2583.c | 1 -
drivers/iio/light/tsl2591.c | 2 --
drivers/iio/light/us5182d.c | 1 -
drivers/iio/light/vcnl4000.c | 1 -
drivers/iio/light/vcnl4035.c | 1 -
drivers/iio/magnetometer/ak8974.c | 2 --
drivers/iio/magnetometer/ak8975.c | 1 -
drivers/iio/magnetometer/als31300.c | 2 --
drivers/iio/magnetometer/bmc150_magn.c | 1 -
drivers/iio/magnetometer/tmag5273.c | 2 --
drivers/iio/magnetometer/yamaha-yas530.c | 2 --
drivers/iio/pressure/bmp280-core.c | 5 ---
drivers/iio/pressure/icp10100.c | 1 -
drivers/iio/pressure/mpl115.c | 2 --
drivers/iio/pressure/zpa2326.c | 2 --
.../iio/proximity/pulsedlight-lidar-lite-v2.c | 1 -
drivers/iio/proximity/srf04.c | 1 -
drivers/iio/temperature/mlx90614.c | 1 -
drivers/iio/temperature/mlx90632.c | 1 -
drivers/iio/temperature/mlx90635.c | 1 -
drivers/input/keyboard/omap4-keypad.c | 4 ---
drivers/input/misc/cs40l50-vibra.c | 4 ---
drivers/input/mouse/cyapa.c | 3 --
drivers/input/mouse/cyapa_gen5.c | 1 -
drivers/media/i2c/alvium-csi2.c | 1 -
drivers/media/i2c/ccs/ccs-core.c | 4 ---
drivers/media/i2c/dw9768.c | 1 -
drivers/media/i2c/gc0308.c | 3 --
drivers/media/i2c/gc2145.c | 3 --
drivers/media/i2c/imx219.c | 2 --
drivers/media/i2c/imx283.c | 3 --
drivers/media/i2c/imx290.c | 3 --
drivers/media/i2c/imx296.c | 1 -
drivers/media/i2c/imx415.c | 1 -
drivers/media/i2c/mt9m114.c | 6 ----
drivers/media/i2c/ov4689.c | 3 --
drivers/media/i2c/ov5640.c | 4 ---
drivers/media/i2c/ov5645.c | 3 --
drivers/media/i2c/ov64a40.c | 4 ---
drivers/media/i2c/ov8858.c | 2 --
drivers/media/i2c/st-mipid02.c | 2 --
drivers/media/i2c/tc358746.c | 5 ---
drivers/media/i2c/thp7312.c | 4 ---
drivers/media/i2c/vd55g1.c | 4 ---
drivers/media/i2c/vd56g3.c | 4 ---
drivers/media/i2c/video-i2c.c | 4 ---
.../chips-media/wave5/wave5-vpu-dec.c | 4 ---
.../chips-media/wave5/wave5-vpu-enc.c | 5 ---
.../media/platform/nvidia/tegra-vde/h264.c | 2 --
.../media/platform/qcom/iris/iris_hfi_queue.c | 1 -
.../platform/raspberrypi/pisp_be/pisp_be.c | 2 --
.../media/platform/verisilicon/hantro_drv.c | 1 -
drivers/media/rc/gpio-ir-recv.c | 1 -
drivers/mfd/arizona-irq.c | 1 -
drivers/mfd/cs40l50-core.c | 1 -
drivers/mfd/cs42l43.c | 1 -
drivers/misc/mei/client.c | 9 -----
drivers/misc/mei/interrupt.c | 2 --
drivers/mmc/core/core.c | 1 -
drivers/mmc/host/atmel-mci.c | 2 --
drivers/mmc/host/mmci.c | 1 -
drivers/mmc/host/omap_hsmmc.c | 3 --
drivers/mmc/host/sdhci-esdhc-imx.c | 1 -
drivers/mmc/host/sdhci-msm.c | 1 -
drivers/mmc/host/sdhci-omap.c | 2 --
drivers/mmc/host/sdhci-pxav3.c | 2 --
drivers/mmc/host/sdhci-sprd.c | 1 -
drivers/mmc/host/sdhci_am654.c | 1 -
drivers/mmc/host/tmio_mmc_core.c | 1 -
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 3 --
drivers/net/ethernet/cadence/macb_main.c | 5 ---
drivers/net/ethernet/freescale/fec_main.c | 8 -----
drivers/net/ethernet/renesas/ravb_main.c | 4 ---
drivers/net/ethernet/ti/davinci_mdio.c | 7 ----
drivers/net/ipa/ipa_interrupt.c | 1 -
drivers/net/ipa/ipa_main.c | 1 -
drivers/net/ipa/ipa_modem.c | 4 ---
drivers/net/ipa/ipa_smp2p.c | 2 --
drivers/net/ipa/ipa_uc.c | 2 --
drivers/net/wireless/ath/wil6210/pm.c | 1 -
drivers/net/wireless/ti/wl18xx/debugfs.c | 3 --
drivers/net/wireless/ti/wlcore/cmd.c | 1 -
drivers/net/wireless/ti/wlcore/debugfs.c | 11 ------
drivers/net/wireless/ti/wlcore/main.c | 36 -------------------
drivers/net/wireless/ti/wlcore/scan.c | 1 -
drivers/net/wireless/ti/wlcore/sysfs.c | 1 -
drivers/net/wireless/ti/wlcore/testmode.c | 2 --
drivers/net/wireless/ti/wlcore/tx.c | 1 -
drivers/net/wireless/ti/wlcore/vendor_cmd.c | 3 --
drivers/net/wwan/qcom_bam_dmux.c | 2 --
drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 3 --
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 2 --
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c | 2 --
drivers/nfc/trf7970a.c | 1 -
drivers/pci/pcie/portdrv.c | 1 -
drivers/phy/motorola/phy-mapphone-mdm6600.c | 2 --
drivers/phy/ti/phy-twl4030-usb.c | 3 --
drivers/power/supply/bq24190_charger.c | 14 --------
drivers/power/supply/twl4030_charger.c | 1 -
drivers/pwm/pwm-img.c | 2 --
drivers/regulator/stm32-vrefbuf.c | 6 ----
drivers/remoteproc/omap_remoteproc.c | 3 --
drivers/scsi/scsi_pm.c | 1 -
drivers/slimbus/core.c | 1 -
drivers/slimbus/messaging.c | 2 --
drivers/slimbus/qcom-ctrl.c | 1 -
drivers/soc/apple/mailbox.c | 1 -
drivers/soundwire/bus.c | 1 -
drivers/soundwire/cadence_master.c | 1 -
drivers/soundwire/qcom.c | 3 --
drivers/spi/atmel-quadspi.c | 5 ---
drivers/spi/spi-cadence-quadspi.c | 2 --
drivers/spi/spi-cadence.c | 1 -
drivers/spi/spi-fsl-espi.c | 2 --
drivers/spi/spi-fsl-lpspi.c | 2 --
drivers/spi/spi-imx.c | 3 --
drivers/spi/spi-mtk-nor.c | 1 -
drivers/spi/spi-nxp-fspi.c | 1 -
drivers/spi/spi-omap2-mcspi.c | 3 --
drivers/spi/spi-rockchip-sfc.c | 3 --
drivers/spi/spi-s3c64xx.c | 3 --
drivers/spi/spi-sprd.c | 1 -
drivers/spi/spi-stm32-ospi.c | 7 ----
drivers/spi/spi-stm32-qspi.c | 7 ----
drivers/spi/spi-stm32.c | 2 --
drivers/spi/spi-ti-qspi.c | 2 --
drivers/spi/spi-zynqmp-gqspi.c | 1 -
drivers/spi/spi.c | 3 --
drivers/staging/greybus/gbphy.c | 1 -
drivers/staging/greybus/gbphy.h | 1 -
drivers/staging/media/rkvdec/rkvdec.c | 1 -
drivers/thunderbolt/debugfs.c | 11 ------
drivers/thunderbolt/domain.c | 2 --
drivers/thunderbolt/icm.c | 7 ----
drivers/thunderbolt/retimer.c | 2 --
drivers/thunderbolt/switch.c | 4 ---
drivers/thunderbolt/tb.c | 9 -----
drivers/thunderbolt/usb4_port.c | 2 --
drivers/tty/serial/8250/8250_omap.c | 9 -----
drivers/tty/serial/8250/8250_port.c | 2 --
drivers/tty/serial/fsl_lpuart.c | 1 -
drivers/tty/serial/serial_core.c | 1 -
drivers/tty/serial/uartlite.c | 2 --
drivers/tty/serial/xilinx_uartps.c | 1 -
drivers/usb/cdns3/cdns3-gadget.c | 1 -
drivers/usb/cdns3/cdnsp-gadget.c | 1 -
drivers/usb/chipidea/core.c | 1 -
drivers/usb/chipidea/otg_fsm.c | 1 -
drivers/usb/dwc3/core.c | 2 --
drivers/usb/dwc3/dwc3-am62.c | 1 -
drivers/usb/dwc3/dwc3-imx8mp.c | 1 -
drivers/usb/dwc3/dwc3-pci.c | 1 -
drivers/usb/dwc3/dwc3-xilinx.c | 1 -
drivers/usb/gadget/udc/cdns2/cdns2-gadget.c | 1 -
drivers/usb/host/xhci-mtk.c | 1 -
drivers/usb/host/xhci-tegra.c | 1 -
drivers/usb/misc/apple-mfi-fastcharge.c | 1 -
drivers/usb/mtu3/mtu3_plat.c | 1 -
drivers/usb/musb/musb_core.c | 5 ---
drivers/usb/musb/musb_debugfs.c | 5 ---
drivers/usb/musb/musb_dsps.c | 1 -
drivers/usb/musb/musb_gadget.c | 4 ---
drivers/usb/musb/omap2430.c | 1 -
drivers/w1/masters/omap_hdq.c | 5 ---
sound/hda/hdac_device.c | 1 -
sound/pci/hda/cs35l41_hda.c | 4 ---
sound/pci/hda/cs35l56_hda.c | 1 -
sound/pci/hda/tas2781_hda_i2c.c | 3 --
sound/pci/hda/tas2781_hda_spi.c | 4 ---
sound/soc/atmel/mchp-spdifrx.c | 6 ----
sound/soc/codecs/arizona-jack.c | 2 --
sound/soc/codecs/cs35l41.c | 2 --
sound/soc/codecs/cs35l45.c | 1 -
sound/soc/codecs/cs35l56-sdw.c | 1 -
sound/soc/codecs/cs35l56.c | 1 -
sound/soc/codecs/cs42l42.c | 1 -
sound/soc/codecs/cs42l43-jack.c | 5 ---
sound/soc/codecs/cs42l43.c | 2 --
sound/soc/codecs/cs48l32.c | 1 -
sound/soc/codecs/hda.c | 3 --
sound/soc/codecs/max98363.c | 1 -
sound/soc/codecs/max98373-sdw.c | 1 -
sound/soc/codecs/rt1017-sdca-sdw.c | 1 -
sound/soc/codecs/rt1308-sdw.c | 1 -
sound/soc/codecs/rt1316-sdw.c | 1 -
sound/soc/codecs/rt1318-sdw.c | 1 -
sound/soc/codecs/rt1320-sdw.c | 1 -
sound/soc/codecs/rt5682-sdw.c | 1 -
sound/soc/codecs/rt700.c | 2 --
sound/soc/codecs/rt711-sdca.c | 2 --
sound/soc/codecs/rt711.c | 2 --
sound/soc/codecs/rt712-sdca-dmic.c | 1 -
sound/soc/codecs/rt712-sdca.c | 2 --
sound/soc/codecs/rt715-sdca.c | 1 -
sound/soc/codecs/rt715.c | 1 -
sound/soc/codecs/rt721-sdca.c | 2 --
sound/soc/codecs/rt722-sdca.c | 2 --
sound/soc/codecs/rt9123.c | 3 --
sound/soc/codecs/tas2552.c | 1 -
sound/soc/codecs/wcd-mbhc-v2.c | 2 --
sound/soc/codecs/wsa881x.c | 1 -
sound/soc/codecs/wsa883x.c | 1 -
sound/soc/codecs/wsa884x.c | 1 -
sound/soc/intel/atom/sst/sst_pvt.c | 1 -
sound/soc/intel/avs/core.c | 1 -
sound/soc/intel/avs/debugfs.c | 2 --
sound/soc/intel/avs/ipc.c | 1 -
sound/soc/intel/avs/pcm.c | 1 -
sound/soc/intel/catpt/pcm.c | 6 ----
sound/soc/intel/catpt/sysfs.c | 1 -
sound/soc/soc-component.c | 1 -
sound/soc/sof/control.c | 1 -
sound/soc/sof/debug.c | 1 -
sound/soc/sof/ipc3-dtrace.c | 1 -
sound/soc/sof/ipc4-loader.c | 1 -
sound/soc/sof/pcm.c | 1 -
sound/soc/sof/sof-client-ipc-flood-test.c | 1 -
.../soc/sof/sof-client-ipc-kernel-injector.c | 1 -
sound/soc/sof/sof-client-ipc-msg-injector.c | 1 -
sound/soc/sof/sof-client-probes.c | 3 --
sound/x86/intel_hdmi_audio.c | 3 --
381 files changed, 923 deletions(-)
--
2.39.5
^ permalink raw reply [flat|nested] 162+ messages in thread
* [PATCH 01/80] accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
@ 2025-07-04 7:53 ` Sakari Ailus
2025-07-07 8:29 ` Jacek Lawrynowicz
2025-07-04 7:53 ` [PATCH 02/80] accel/amdxdna: " Sakari Ailus
` (86 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:53 UTC (permalink / raw)
To: Jacek Lawrynowicz, Maciej Falkowski, Oded Gabbay; +Cc: dri-devel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/accel/ivpu/ivpu_job.c | 1 -
drivers/accel/ivpu/ivpu_pm.c | 2 --
2 files changed, 3 deletions(-)
diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
index 060f1fc031d3..05a1a768e1c9 100644
--- a/drivers/accel/ivpu/ivpu_job.c
+++ b/drivers/accel/ivpu/ivpu_job.c
@@ -1049,6 +1049,5 @@ void ivpu_context_abort_work_fn(struct work_struct *work)
mutex_unlock(&vdev->submitted_jobs_lock);
runtime_put:
- pm_runtime_mark_last_busy(vdev->drm.dev);
pm_runtime_put_autosuspend(vdev->drm.dev);
}
diff --git a/drivers/accel/ivpu/ivpu_pm.c b/drivers/accel/ivpu/ivpu_pm.c
index eacda1dbe840..761b4d7e1a5a 100644
--- a/drivers/accel/ivpu/ivpu_pm.c
+++ b/drivers/accel/ivpu/ivpu_pm.c
@@ -359,7 +359,6 @@ int ivpu_rpm_get(struct ivpu_device *vdev)
void ivpu_rpm_put(struct ivpu_device *vdev)
{
- pm_runtime_mark_last_busy(vdev->drm.dev);
pm_runtime_put_autosuspend(vdev->drm.dev);
}
@@ -428,7 +427,6 @@ void ivpu_pm_enable(struct ivpu_device *vdev)
struct device *dev = vdev->drm.dev;
pm_runtime_allow(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 02/80] accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
2025-07-04 7:53 ` [PATCH 01/80] accel/ivpu: " Sakari Ailus
@ 2025-07-04 7:53 ` Sakari Ailus
2025-07-07 16:52 ` Lizhi Hou
2025-07-04 7:53 ` [PATCH 03/80] Bluetooth: " Sakari Ailus
` (85 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:53 UTC (permalink / raw)
To: Min Ma, Lizhi Hou, Oded Gabbay; +Cc: dri-devel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/accel/amdxdna/amdxdna_pci_drv.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/accel/amdxdna/amdxdna_pci_drv.c b/drivers/accel/amdxdna/amdxdna_pci_drv.c
index f2bf1d374cc7..c7083a657333 100644
--- a/drivers/accel/amdxdna/amdxdna_pci_drv.c
+++ b/drivers/accel/amdxdna/amdxdna_pci_drv.c
@@ -101,7 +101,6 @@ static int amdxdna_drm_open(struct drm_device *ddev, struct drm_file *filp)
failed:
kfree(client);
put_rpm:
- pm_runtime_mark_last_busy(ddev->dev);
pm_runtime_put_autosuspend(ddev->dev);
return ret;
@@ -125,7 +124,6 @@ static void amdxdna_drm_close(struct drm_device *ddev, struct drm_file *filp)
XDNA_DBG(xdna, "pid %d closed", client->pid);
kfree(client);
- pm_runtime_mark_last_busy(ddev->dev);
pm_runtime_put_autosuspend(ddev->dev);
}
@@ -296,7 +294,6 @@ static int amdxdna_probe(struct pci_dev *pdev, const struct pci_device_id *id)
goto failed_sysfs_fini;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 03/80] Bluetooth: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
2025-07-04 7:53 ` [PATCH 01/80] accel/ivpu: " Sakari Ailus
2025-07-04 7:53 ` [PATCH 02/80] accel/amdxdna: " Sakari Ailus
@ 2025-07-04 7:53 ` Sakari Ailus
2025-07-04 7:53 ` [PATCH 04/80] bus: sunxi-rsb: " Sakari Ailus
` (84 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:53 UTC (permalink / raw)
To: Marcel Holtmann, Luiz Augusto von Dentz, Matthias Brugger,
AngeloGioacchino Del Regno
Cc: linux-bluetooth, linux-kernel, linux-arm-kernel, linux-mediatek
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/bluetooth/btmtksdio.c | 1 -
drivers/bluetooth/hci_bcm.c | 3 ---
drivers/bluetooth/hci_h5.c | 2 --
drivers/bluetooth/hci_intel.c | 3 ---
4 files changed, 9 deletions(-)
diff --git a/drivers/bluetooth/btmtksdio.c b/drivers/bluetooth/btmtksdio.c
index c16a3518b8ff..83aee551a848 100644
--- a/drivers/bluetooth/btmtksdio.c
+++ b/drivers/bluetooth/btmtksdio.c
@@ -615,7 +615,6 @@ static void btmtksdio_txrx_work(struct work_struct *work)
sdio_release_host(bdev->func);
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
}
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 9684eb16059b..08f9a232e375 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -326,7 +326,6 @@ static irqreturn_t bcm_host_wake(int irq, void *data)
bt_dev_dbg(bdev, "Host wake IRQ");
pm_runtime_get(bdev->dev);
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
return IRQ_HANDLED;
@@ -710,7 +709,6 @@ static int bcm_recv(struct hci_uart *hu, const void *data, int count)
mutex_lock(&bcm_device_lock);
if (bcm->dev && bcm_device_exists(bcm->dev)) {
pm_runtime_get(bcm->dev->dev);
- pm_runtime_mark_last_busy(bcm->dev->dev);
pm_runtime_put_autosuspend(bcm->dev->dev);
}
mutex_unlock(&bcm_device_lock);
@@ -749,7 +747,6 @@ static struct sk_buff *bcm_dequeue(struct hci_uart *hu)
skb = skb_dequeue(&bcm->txq);
if (bdev) {
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
}
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c
index d0d4420c1a0f..e932d66a1cc0 100644
--- a/drivers/bluetooth/hci_h5.c
+++ b/drivers/bluetooth/hci_h5.c
@@ -592,7 +592,6 @@ static int h5_recv(struct hci_uart *hu, const void *data, int count)
if (hu->serdev) {
pm_runtime_get(&hu->serdev->dev);
- pm_runtime_mark_last_busy(&hu->serdev->dev);
pm_runtime_put_autosuspend(&hu->serdev->dev);
}
@@ -634,7 +633,6 @@ static int h5_enqueue(struct hci_uart *hu, struct sk_buff *skb)
if (hu->serdev) {
pm_runtime_get_sync(&hu->serdev->dev);
- pm_runtime_mark_last_busy(&hu->serdev->dev);
pm_runtime_put_autosuspend(&hu->serdev->dev);
}
diff --git a/drivers/bluetooth/hci_intel.c b/drivers/bluetooth/hci_intel.c
index 811f33701f84..6240ee23e030 100644
--- a/drivers/bluetooth/hci_intel.c
+++ b/drivers/bluetooth/hci_intel.c
@@ -280,7 +280,6 @@ static irqreturn_t intel_irq(int irq, void *dev_id)
/* Host/Controller are now LPM resumed, trigger a new delayed suspend */
pm_runtime_get(&idev->pdev->dev);
- pm_runtime_mark_last_busy(&idev->pdev->dev);
pm_runtime_put_autosuspend(&idev->pdev->dev);
return IRQ_HANDLED;
@@ -371,7 +370,6 @@ static void intel_busy_work(struct work_struct *work)
list_for_each_entry(idev, &intel_device_list, list) {
if (intel->hu->tty->dev->parent == idev->pdev->dev.parent) {
pm_runtime_get(&idev->pdev->dev);
- pm_runtime_mark_last_busy(&idev->pdev->dev);
pm_runtime_put_autosuspend(&idev->pdev->dev);
break;
}
@@ -1003,7 +1001,6 @@ static int intel_enqueue(struct hci_uart *hu, struct sk_buff *skb)
list_for_each_entry(idev, &intel_device_list, list) {
if (hu->tty->dev->parent == idev->pdev->dev.parent) {
pm_runtime_get_sync(&idev->pdev->dev);
- pm_runtime_mark_last_busy(&idev->pdev->dev);
pm_runtime_put_autosuspend(&idev->pdev->dev);
break;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 04/80] bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (2 preceding siblings ...)
2025-07-04 7:53 ` [PATCH 03/80] Bluetooth: " Sakari Ailus
@ 2025-07-04 7:53 ` Sakari Ailus
2025-07-15 16:33 ` Chen-Yu Tsai
2025-07-04 7:53 ` [PATCH 05/80] hwrng: " Sakari Ailus
` (83 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:53 UTC (permalink / raw)
To: Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Sakari Ailus,
Arnd Bergmann, Zhang Zekun, Javier Carrasco,
Uwe Kleine-König
Cc: linux-arm-kernel, linux-sunxi, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/bus/sunxi-rsb.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c
index 7a33c3b31d1e..82735c58be11 100644
--- a/drivers/bus/sunxi-rsb.c
+++ b/drivers/bus/sunxi-rsb.c
@@ -373,7 +373,6 @@ static int sunxi_rsb_read(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
unlock:
mutex_unlock(&rsb->lock);
- pm_runtime_mark_last_busy(rsb->dev);
pm_runtime_put_autosuspend(rsb->dev);
return ret;
@@ -417,7 +416,6 @@ static int sunxi_rsb_write(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
mutex_unlock(&rsb->lock);
- pm_runtime_mark_last_busy(rsb->dev);
pm_runtime_put_autosuspend(rsb->dev);
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 05/80] hwrng: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (3 preceding siblings ...)
2025-07-04 7:53 ` [PATCH 04/80] bus: sunxi-rsb: " Sakari Ailus
@ 2025-07-04 7:53 ` Sakari Ailus
2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-18 10:58 ` Herbert Xu
2025-07-04 7:54 ` [PATCH 06/80] clk: imx: " Sakari Ailus
` (82 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:53 UTC (permalink / raw)
To: Olivia Mackall, Herbert Xu, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Hadar Gat, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Avi Fishman, Tomer Maimon, Tali Perry,
Patrick Venture, Nancy Yuen, Benjamin Fair, Daniel Golle,
Aurelien Jarno, Nicolas Frattaroli, Heiko Stuebner,
Maxime Coquelin, Alexandre Torgue, Sakari Ailus,
Uwe Kleine-König, Marek Vasut, Gatien Chevallier
Cc: linux-crypto, linux-arm-kernel, linux-kernel, linux-mediatek,
openbmc, linux-rockchip, linux-stm32
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/char/hw_random/atmel-rng.c | 1 -
drivers/char/hw_random/cctrng.c | 1 -
drivers/char/hw_random/mtk-rng.c | 1 -
drivers/char/hw_random/npcm-rng.c | 1 -
drivers/char/hw_random/omap3-rom-rng.c | 1 -
drivers/char/hw_random/rockchip-rng.c | 3 ---
drivers/char/hw_random/stm32-rng.c | 1 -
7 files changed, 9 deletions(-)
diff --git a/drivers/char/hw_random/atmel-rng.c b/drivers/char/hw_random/atmel-rng.c
index d2b00458761e..6ed24be3481d 100644
--- a/drivers/char/hw_random/atmel-rng.c
+++ b/drivers/char/hw_random/atmel-rng.c
@@ -80,7 +80,6 @@ static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max,
ret = 4;
out:
- pm_runtime_mark_last_busy(trng->dev);
pm_runtime_put_sync_autosuspend(trng->dev);
return ret;
}
diff --git a/drivers/char/hw_random/cctrng.c b/drivers/char/hw_random/cctrng.c
index 4db198849695..a5be9258037f 100644
--- a/drivers/char/hw_random/cctrng.c
+++ b/drivers/char/hw_random/cctrng.c
@@ -98,7 +98,6 @@ static void cc_trng_pm_put_suspend(struct device *dev)
{
int rc = 0;
- pm_runtime_mark_last_busy(dev);
rc = pm_runtime_put_autosuspend(dev);
if (rc)
dev_err(dev, "pm_runtime_put_autosuspend returned %x\n", rc);
diff --git a/drivers/char/hw_random/mtk-rng.c b/drivers/char/hw_random/mtk-rng.c
index b7fa1bc1122b..c89171df7635 100644
--- a/drivers/char/hw_random/mtk-rng.c
+++ b/drivers/char/hw_random/mtk-rng.c
@@ -98,7 +98,6 @@ static int mtk_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
max -= sizeof(u32);
}
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_sync_autosuspend(priv->dev);
return retval || !wait ? retval : -EIO;
diff --git a/drivers/char/hw_random/npcm-rng.c b/drivers/char/hw_random/npcm-rng.c
index 3e308c890bd2..40d6e29dea03 100644
--- a/drivers/char/hw_random/npcm-rng.c
+++ b/drivers/char/hw_random/npcm-rng.c
@@ -80,7 +80,6 @@ static int npcm_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
max--;
}
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_sync_autosuspend(priv->dev);
return retval || !wait ? retval : -EIO;
diff --git a/drivers/char/hw_random/omap3-rom-rng.c b/drivers/char/hw_random/omap3-rom-rng.c
index 8064c792caf0..aa71f61c3dc9 100644
--- a/drivers/char/hw_random/omap3-rom-rng.c
+++ b/drivers/char/hw_random/omap3-rom-rng.c
@@ -56,7 +56,6 @@ static int omap3_rom_rng_read(struct hwrng *rng, void *data, size_t max, bool w)
else
r = 4;
- pm_runtime_mark_last_busy(ddata->dev);
pm_runtime_put_autosuspend(ddata->dev);
return r;
diff --git a/drivers/char/hw_random/rockchip-rng.c b/drivers/char/hw_random/rockchip-rng.c
index fb4a30b95507..6e3ed4b85605 100644
--- a/drivers/char/hw_random/rockchip-rng.c
+++ b/drivers/char/hw_random/rockchip-rng.c
@@ -223,7 +223,6 @@ static int rk3568_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
/* Read random data stored in the registers */
memcpy_fromio(buf, rk_rng->base + TRNG_RNG_DOUT, to_read);
out:
- pm_runtime_mark_last_busy(rk_rng->dev);
pm_runtime_put_sync_autosuspend(rk_rng->dev);
return (ret < 0) ? ret : to_read;
@@ -263,7 +262,6 @@ static int rk3576_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
memcpy_fromio(buf, rk_rng->base + RKRNG_TRNG_DATA0, to_read);
out:
- pm_runtime_mark_last_busy(rk_rng->dev);
pm_runtime_put_sync_autosuspend(rk_rng->dev);
return (ret < 0) ? ret : to_read;
@@ -355,7 +353,6 @@ static int rk3588_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
/* close the TRNG */
rk_rng_writel(rk_rng, TRNG_V1_CTRL_NOP, TRNG_V1_CTRL);
- pm_runtime_mark_last_busy(rk_rng->dev);
pm_runtime_put_sync_autosuspend(rk_rng->dev);
return (ret < 0) ? ret : to_read;
diff --git a/drivers/char/hw_random/stm32-rng.c b/drivers/char/hw_random/stm32-rng.c
index 98edbe796bc5..9a8c00586ab0 100644
--- a/drivers/char/hw_random/stm32-rng.c
+++ b/drivers/char/hw_random/stm32-rng.c
@@ -255,7 +255,6 @@ static int stm32_rng_read(struct hwrng *rng, void *data, size_t max, bool wait)
}
exit_rpm:
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_sync_autosuspend(priv->dev);
return retval || !wait ? retval : -EIO;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 06/80] clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (4 preceding siblings ...)
2025-07-04 7:53 ` [PATCH 05/80] hwrng: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-07 8:30 ` Peng Fan
2025-07-24 21:37 ` Stephen Boyd
2025-07-04 7:54 ` [PATCH 07/80] clk: qcom: " Sakari Ailus
` (81 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Abel Vesa, Peng Fan, Michael Turquette, Stephen Boyd, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: linux-clk, imx, linux-arm-kernel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/clk/imx/clk-imx8qxp-lpcg.c | 1 -
drivers/clk/imx/clk-scu.c | 1 -
2 files changed, 2 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8qxp-lpcg.c b/drivers/clk/imx/clk-imx8qxp-lpcg.c
index d0ccaa040225..1dae3410ee99 100644
--- a/drivers/clk/imx/clk-imx8qxp-lpcg.c
+++ b/drivers/clk/imx/clk-imx8qxp-lpcg.c
@@ -267,7 +267,6 @@ static int imx_lpcg_parse_clks_from_dt(struct platform_device *pdev,
if (ret)
goto unreg;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c
index b27186aaf2a1..0ef661608139 100644
--- a/drivers/clk/imx/clk-scu.c
+++ b/drivers/clk/imx/clk-scu.c
@@ -567,7 +567,6 @@ static int imx_clk_scu_probe(struct platform_device *pdev)
if (!((clk->rsrc == IMX_SC_R_A35) || (clk->rsrc == IMX_SC_R_A53) ||
(clk->rsrc == IMX_SC_R_A72))) {
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 07/80] clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (5 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 06/80] clk: imx: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-24 21:46 ` Stephen Boyd
2025-07-04 7:54 ` [PATCH 08/80] crypto: " Sakari Ailus
` (80 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd
Cc: linux-arm-msm, linux-clk, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/clk/qcom/lpassaudiocc-sc7280.c | 2 --
drivers/clk/qcom/lpasscorecc-sc7180.c | 2 --
2 files changed, 4 deletions(-)
diff --git a/drivers/clk/qcom/lpassaudiocc-sc7280.c b/drivers/clk/qcom/lpassaudiocc-sc7280.c
index 22169da08a51..3ff123bffa11 100644
--- a/drivers/clk/qcom/lpassaudiocc-sc7280.c
+++ b/drivers/clk/qcom/lpassaudiocc-sc7280.c
@@ -799,7 +799,6 @@ static int lpass_audio_cc_sc7280_probe(struct platform_device *pdev)
goto exit;
}
- pm_runtime_mark_last_busy(&pdev->dev);
exit:
pm_runtime_put_autosuspend(&pdev->dev);
@@ -868,7 +867,6 @@ static int lpass_aon_cc_sc7280_probe(struct platform_device *pdev)
goto exit;
}
- pm_runtime_mark_last_busy(&pdev->dev);
exit:
pm_runtime_put_autosuspend(&pdev->dev);
diff --git a/drivers/clk/qcom/lpasscorecc-sc7180.c b/drivers/clk/qcom/lpasscorecc-sc7180.c
index 605516d03993..5937b071533b 100644
--- a/drivers/clk/qcom/lpasscorecc-sc7180.c
+++ b/drivers/clk/qcom/lpasscorecc-sc7180.c
@@ -412,7 +412,6 @@ static int lpass_core_cc_sc7180_probe(struct platform_device *pdev)
ret = qcom_cc_really_probe(&pdev->dev, &lpass_core_cc_sc7180_desc, regmap);
- pm_runtime_mark_last_busy(&pdev->dev);
exit:
pm_runtime_put_autosuspend(&pdev->dev);
@@ -433,7 +432,6 @@ static int lpass_hm_core_probe(struct platform_device *pdev)
ret = qcom_cc_probe_by_index(pdev, 0, desc);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 08/80] crypto: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (6 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 07/80] clk: qcom: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-18 10:59 ` Herbert Xu
2025-07-04 7:54 ` [PATCH 09/80] dmaengine: at_xdmac: " Sakari Ailus
` (79 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Gilad Ben-Yossef, Herbert Xu, David S. Miller, Weili Qian,
Zhou Wang, Maxime Coquelin, Alexandre Torgue, Eric Biggers,
Uwe Kleine-König, Sakari Ailus
Cc: linux-crypto, linux-kernel, linux-stm32, linux-arm-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/crypto/ccree/cc_pm.c | 1 -
drivers/crypto/hisilicon/qm.c | 1 -
drivers/crypto/omap-aes-gcm.c | 1 -
drivers/crypto/omap-aes.c | 1 -
drivers/crypto/omap-des.c | 1 -
drivers/crypto/omap-sham.c | 1 -
drivers/crypto/stm32/stm32-cryp.c | 1 -
drivers/crypto/stm32/stm32-hash.c | 1 -
8 files changed, 8 deletions(-)
diff --git a/drivers/crypto/ccree/cc_pm.c b/drivers/crypto/ccree/cc_pm.c
index 6124fbbbed94..bbd118f8de0e 100644
--- a/drivers/crypto/ccree/cc_pm.c
+++ b/drivers/crypto/ccree/cc_pm.c
@@ -77,6 +77,5 @@ int cc_pm_get(struct device *dev)
void cc_pm_put_suspend(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c
index 7c41f9593d03..2e4ee7ecfdfb 100644
--- a/drivers/crypto/hisilicon/qm.c
+++ b/drivers/crypto/hisilicon/qm.c
@@ -912,7 +912,6 @@ static void qm_pm_put_sync(struct hisi_qm *qm)
if (!test_bit(QM_SUPPORT_RPM, &qm->caps))
return;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/crypto/omap-aes-gcm.c b/drivers/crypto/omap-aes-gcm.c
index c498950402e8..1f4586509ca4 100644
--- a/drivers/crypto/omap-aes-gcm.c
+++ b/drivers/crypto/omap-aes-gcm.c
@@ -38,7 +38,6 @@ static void omap_aes_gcm_finish_req(struct omap_aes_dev *dd, int ret)
crypto_finalize_aead_request(dd->engine, req, ret);
- pm_runtime_mark_last_busy(dd->dev);
pm_runtime_put_autosuspend(dd->dev);
}
diff --git a/drivers/crypto/omap-aes.c b/drivers/crypto/omap-aes.c
index 1ecf5f6ac04e..244e24e52987 100644
--- a/drivers/crypto/omap-aes.c
+++ b/drivers/crypto/omap-aes.c
@@ -400,7 +400,6 @@ static void omap_aes_finish_req(struct omap_aes_dev *dd, int err)
crypto_finalize_skcipher_request(dd->engine, req, err);
- pm_runtime_mark_last_busy(dd->dev);
pm_runtime_put_autosuspend(dd->dev);
}
diff --git a/drivers/crypto/omap-des.c b/drivers/crypto/omap-des.c
index a099460d5f21..9c5538ae17db 100644
--- a/drivers/crypto/omap-des.c
+++ b/drivers/crypto/omap-des.c
@@ -489,7 +489,6 @@ static void omap_des_finish_req(struct omap_des_dev *dd, int err)
crypto_finalize_skcipher_request(dd->engine, req, err);
- pm_runtime_mark_last_busy(dd->dev);
pm_runtime_put_autosuspend(dd->dev);
}
diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index 56f192cb976d..6328e8026b91 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -1167,7 +1167,6 @@ static void omap_sham_finish_req(struct ahash_request *req, int err)
dd->flags &= ~(BIT(FLAGS_FINAL) | BIT(FLAGS_CPU) |
BIT(FLAGS_DMA_READY) | BIT(FLAGS_OUTPUT_READY));
- pm_runtime_mark_last_busy(dd->dev);
pm_runtime_put_autosuspend(dd->dev);
ctx->offset = 0;
diff --git a/drivers/crypto/stm32/stm32-cryp.c b/drivers/crypto/stm32/stm32-cryp.c
index 5ce88e7a8f65..a89b4c5d62a0 100644
--- a/drivers/crypto/stm32/stm32-cryp.c
+++ b/drivers/crypto/stm32/stm32-cryp.c
@@ -851,7 +851,6 @@ static void stm32_cryp_finish_req(struct stm32_cryp *cryp, int err)
if (!err && (!(is_gcm(cryp) || is_ccm(cryp) || is_ecb(cryp))))
stm32_cryp_get_iv(cryp);
- pm_runtime_mark_last_busy(cryp->dev);
pm_runtime_put_autosuspend(cryp->dev);
if (is_gcm(cryp) || is_ccm(cryp))
diff --git a/drivers/crypto/stm32/stm32-hash.c b/drivers/crypto/stm32/stm32-hash.c
index 768b27de4737..a4436728b0db 100644
--- a/drivers/crypto/stm32/stm32-hash.c
+++ b/drivers/crypto/stm32/stm32-hash.c
@@ -1373,7 +1373,6 @@ static void stm32_hash_unprepare_request(struct ahash_request *req)
*preg++ = stm32_hash_read(hdev, HASH_CSR(i));
pm_runtime:
- pm_runtime_mark_last_busy(hdev->dev);
pm_runtime_put_autosuspend(hdev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 09/80] dmaengine: at_xdmac: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (7 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 08/80] crypto: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 10/80] dmaengine: pl330: " Sakari Ailus
` (78 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Ludovic Desroches, Vinod Koul; +Cc: linux-arm-kernel, dmaengine, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/dma/at_xdmac.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
index 3fbc74710a13..ada96d490847 100644
--- a/drivers/dma/at_xdmac.c
+++ b/drivers/dma/at_xdmac.c
@@ -379,7 +379,6 @@ static void at_xdmac_runtime_suspend_descriptors(struct at_xdmac_chan *atchan)
if (!desc->active_xfer)
continue;
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
}
}
@@ -413,7 +412,6 @@ static bool at_xdmac_chan_is_enabled(struct at_xdmac_chan *atchan)
ret = !!(at_xdmac_chan_read(atchan, AT_XDMAC_GS) & atchan->mask);
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
return ret;
@@ -446,7 +444,6 @@ static void at_xdmac_off(struct at_xdmac *atxdmac, bool suspend_descriptors)
}
}
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
}
@@ -1676,7 +1673,6 @@ at_xdmac_tx_status(struct dma_chan *chan, dma_cookie_t cookie,
spin_unlock:
spin_unlock_irqrestore(&atchan->lock, flags);
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
return ret;
}
@@ -1758,7 +1754,6 @@ static void at_xdmac_handle_error(struct at_xdmac_chan *atchan)
__func__, &bad_desc->lld.mbr_sa, &bad_desc->lld.mbr_da,
bad_desc->lld.mbr_ubc);
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
/* Then continue with usual descriptor management */
@@ -1822,7 +1817,6 @@ static void at_xdmac_tasklet(struct tasklet_struct *t)
* Decrement runtime PM ref counter incremented in
* at_xdmac_start_xfer().
*/
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
}
@@ -1954,7 +1948,6 @@ static int at_xdmac_device_pause(struct dma_chan *chan)
spin_unlock_irqrestore(&atchan->lock, flags);
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
return 0;
@@ -1998,7 +1991,6 @@ static int at_xdmac_device_resume(struct dma_chan *chan)
unlock:
spin_unlock_irqrestore(&atchan->lock, flags);
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
return ret;
@@ -2041,7 +2033,6 @@ static int at_xdmac_device_terminate_all(struct dma_chan *chan)
clear_bit(AT_XDMAC_CHAN_IS_CYCLIC, &atchan->status);
spin_unlock_irqrestore(&atchan->lock, flags);
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
return 0;
@@ -2235,7 +2226,6 @@ static int __maybe_unused atmel_xdmac_resume(struct device *dev)
}
}
- pm_runtime_mark_last_busy(atxdmac->dev);
pm_runtime_put_autosuspend(atxdmac->dev);
return 0;
@@ -2412,7 +2402,6 @@ static int at_xdmac_probe(struct platform_device *pdev)
at_xdmac_axi_config(pdev);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 10/80] dmaengine: pl330: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (8 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 09/80] dmaengine: at_xdmac: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 11/80] dmaengine: qcom: " Sakari Ailus
` (77 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul; +Cc: dmaengine, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/dma/pl330.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 82a9fe88ad54..472cb6fe126d 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -2134,7 +2134,6 @@ static void pl330_tasklet(struct tasklet_struct *t)
/* If work list empty, power down */
if (power_down) {
- pm_runtime_mark_last_busy(pch->dmac->ddma.dev);
pm_runtime_put_autosuspend(pch->dmac->ddma.dev);
}
}
@@ -2313,7 +2312,6 @@ static int pl330_terminate_all(struct dma_chan *chan)
list_splice_tail_init(&pch->work_list, &pl330->desc_pool);
list_splice_tail_init(&pch->completed_list, &pl330->desc_pool);
spin_unlock_irqrestore(&pch->lock, flags);
- pm_runtime_mark_last_busy(pl330->ddma.dev);
if (power_down)
pm_runtime_put_autosuspend(pl330->ddma.dev);
pm_runtime_put_autosuspend(pl330->ddma.dev);
@@ -2347,7 +2345,6 @@ static int pl330_pause(struct dma_chan *chan)
desc->status = PAUSED;
}
spin_unlock_irqrestore(&pch->lock, flags);
- pm_runtime_mark_last_busy(pl330->ddma.dev);
pm_runtime_put_autosuspend(pl330->ddma.dev);
return 0;
@@ -2371,7 +2368,6 @@ static void pl330_free_chan_resources(struct dma_chan *chan)
list_splice_tail_init(&pch->work_list, &pch->dmac->desc_pool);
spin_unlock_irqrestore(&pl330->lock, flags);
- pm_runtime_mark_last_busy(pch->dmac->ddma.dev);
pm_runtime_put_autosuspend(pch->dmac->ddma.dev);
pl330_unprep_slave_fifo(pch);
}
@@ -3176,7 +3172,6 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
pm_runtime_irq_safe(&adev->dev);
pm_runtime_use_autosuspend(&adev->dev);
pm_runtime_set_autosuspend_delay(&adev->dev, PL330_AUTOSUSPEND_DELAY);
- pm_runtime_mark_last_busy(&adev->dev);
pm_runtime_put_autosuspend(&adev->dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 12/80] dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (10 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 11/80] dmaengine: qcom: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:41 ` Linus Walleij
2025-07-04 7:54 ` [PATCH 13/80] dmaengine: ti: " Sakari Ailus
` (75 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Linus Walleij, Vinod Koul; +Cc: linux-arm-kernel, dmaengine, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/dma/ste_dma40.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index d52e1685aed5..13d91d369be2 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -1452,7 +1452,6 @@ static int d40_pause(struct dma_chan *chan)
res = d40_channel_execute_command(d40c, D40_DMA_SUSPEND_REQ);
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
spin_unlock_irqrestore(&d40c->lock, flags);
return res;
@@ -1479,7 +1478,6 @@ static int d40_resume(struct dma_chan *chan)
if (d40_residue(d40c) || d40_tx_is_linked(d40c))
res = d40_channel_execute_command(d40c, D40_DMA_RUN);
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
spin_unlock_irqrestore(&d40c->lock, flags);
return res;
@@ -1581,7 +1579,6 @@ static void dma_tc_handle(struct d40_chan *d40c)
if (d40_queue_start(d40c) == NULL) {
d40c->busy = false;
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
}
@@ -2055,7 +2052,6 @@ static int d40_free_dma(struct d40_chan *d40c)
d40c->base->lookup_phy_chans[phy->num] = NULL;
if (d40c->busy) {
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
}
@@ -2063,7 +2059,6 @@ static int d40_free_dma(struct d40_chan *d40c)
d40c->phy_chan = NULL;
d40c->configured = false;
mark_last_busy:
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
return res;
}
@@ -2466,7 +2461,6 @@ static int d40_alloc_chan_resources(struct dma_chan *chan)
if (is_free_phy)
d40_config_write(d40c);
mark_last_busy:
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
spin_unlock_irqrestore(&d40c->lock, flags);
return err;
@@ -2618,10 +2612,8 @@ static int d40_terminate_all(struct dma_chan *chan)
chan_err(d40c, "Failed to stop channel\n");
d40_term_all(d40c);
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
if (d40c->busy) {
- pm_runtime_mark_last_busy(d40c->base->dev);
pm_runtime_put_autosuspend(d40c->base->dev);
}
d40c->busy = false;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 11/80] dmaengine: qcom: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (9 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 10/80] dmaengine: pl330: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 12/80] dmaengine: ste_dma40: " Sakari Ailus
` (76 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul, Sinan Kaya, Md Sadre Alam, Kees Cook, Dave Jiang,
Uwe Kleine-König, Sakari Ailus, Amit Vadhavana,
Casey Connolly
Cc: linux-arm-msm, dmaengine, linux-kernel, linux-arm-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/dma/qcom/bam_dma.c | 5 -----
drivers/dma/qcom/hidma.c | 9 ---------
drivers/dma/qcom/hidma_dbg.c | 1 -
drivers/dma/qcom/hidma_mgmt.c | 2 --
4 files changed, 17 deletions(-)
diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
index bbc3276992bb..e6f642e8c731 100644
--- a/drivers/dma/qcom/bam_dma.c
+++ b/drivers/dma/qcom/bam_dma.c
@@ -608,7 +608,6 @@ static void bam_free_chan(struct dma_chan *chan)
}
err:
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
}
@@ -784,7 +783,6 @@ static int bam_pause(struct dma_chan *chan)
writel_relaxed(1, bam_addr(bdev, bchan->id, BAM_P_HALT));
bchan->paused = 1;
spin_unlock_irqrestore(&bchan->vc.lock, flag);
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
return 0;
@@ -810,7 +808,6 @@ static int bam_resume(struct dma_chan *chan)
writel_relaxed(0, bam_addr(bdev, bchan->id, BAM_P_HALT));
bchan->paused = 0;
spin_unlock_irqrestore(&bchan->vc.lock, flag);
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
return 0;
@@ -927,7 +924,6 @@ static irqreturn_t bam_dma_irq(int irq, void *data)
writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR));
}
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
return IRQ_HANDLED;
@@ -1102,7 +1098,6 @@ static void bam_start_dma(struct bam_chan *bchan)
writel_relaxed(bchan->tail * sizeof(struct bam_desc_hw),
bam_addr(bdev, bchan->id, BAM_P_EVNT_REG));
- pm_runtime_mark_last_busy(bdev->dev);
pm_runtime_put_autosuspend(bdev->dev);
}
diff --git a/drivers/dma/qcom/hidma.c b/drivers/dma/qcom/hidma.c
index c2b3e4452e71..ded27a674e5f 100644
--- a/drivers/dma/qcom/hidma.c
+++ b/drivers/dma/qcom/hidma.c
@@ -185,7 +185,6 @@ static void hidma_callback(void *data)
hidma_process_completed(mchan);
if (queued) {
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
}
}
@@ -316,11 +315,9 @@ static dma_cookie_t hidma_tx_submit(struct dma_async_tx_descriptor *txd)
pm_runtime_get_sync(dmadev->ddev.dev);
if (!hidma_ll_isenabled(dmadev->lldev)) {
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
return -ENODEV;
}
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
mdesc = container_of(txd, struct hidma_desc, desc);
@@ -507,7 +504,6 @@ static int hidma_terminate_channel(struct dma_chan *chan)
rc = hidma_ll_enable(dmadev->lldev);
out:
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
return rc;
}
@@ -525,7 +521,6 @@ static int hidma_terminate_all(struct dma_chan *chan)
/* reinitialize the hardware */
pm_runtime_get_sync(dmadev->ddev.dev);
rc = hidma_ll_setup(dmadev->lldev);
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
return rc;
}
@@ -569,7 +564,6 @@ static int hidma_pause(struct dma_chan *chan)
if (hidma_ll_disable(dmadev->lldev))
dev_warn(dmadev->ddev.dev, "channel did not stop\n");
mchan->paused = true;
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
}
return 0;
@@ -591,7 +585,6 @@ static int hidma_resume(struct dma_chan *chan)
else
dev_err(dmadev->ddev.dev,
"failed to resume the channel");
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
}
return rc;
@@ -882,7 +875,6 @@ static int hidma_probe(struct platform_device *pdev)
hidma_debug_init(dmadev);
hidma_sysfs_init(dmadev);
dev_info(&pdev->dev, "HI-DMA engine driver registration complete\n");
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
return 0;
@@ -909,7 +901,6 @@ static void hidma_shutdown(struct platform_device *pdev)
pm_runtime_get_sync(dmadev->ddev.dev);
if (hidma_ll_disable(dmadev->lldev))
dev_warn(dmadev->ddev.dev, "channel did not stop\n");
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
}
diff --git a/drivers/dma/qcom/hidma_dbg.c b/drivers/dma/qcom/hidma_dbg.c
index ce87c7937a0e..7d7594da084c 100644
--- a/drivers/dma/qcom/hidma_dbg.c
+++ b/drivers/dma/qcom/hidma_dbg.c
@@ -103,7 +103,6 @@ static int hidma_chan_show(struct seq_file *s, void *unused)
hidma_ll_chstats(s, mchan->dmadev->lldev, mdesc->tre_ch);
hidma_ll_devstats(s, mchan->dmadev->lldev);
- pm_runtime_mark_last_busy(dmadev->ddev.dev);
pm_runtime_put_autosuspend(dmadev->ddev.dev);
return 0;
}
diff --git a/drivers/dma/qcom/hidma_mgmt.c b/drivers/dma/qcom/hidma_mgmt.c
index 4805ce390ffa..8442082bde23 100644
--- a/drivers/dma/qcom/hidma_mgmt.c
+++ b/drivers/dma/qcom/hidma_mgmt.c
@@ -150,7 +150,6 @@ int hidma_mgmt_setup(struct hidma_mgmt_dev *mgmtdev)
val |= mgmtdev->chreset_timeout_cycles & HIDMA_CHRESET_TIMEOUT_MASK;
writel(val, mgmtdev->virtaddr + HIDMA_CHRESET_TIMEOUT_OFFSET);
- pm_runtime_mark_last_busy(&mgmtdev->pdev->dev);
pm_runtime_put_autosuspend(&mgmtdev->pdev->dev);
return 0;
}
@@ -305,7 +304,6 @@ static int hidma_mgmt_probe(struct platform_device *pdev)
&res->start, mgmtdev->dma_channels);
platform_set_drvdata(pdev, mgmtdev);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
out:
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 13/80] dmaengine: ti: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (11 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 12/80] dmaengine: ste_dma40: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 14/80] dmaengine: zynqmp_dma: " Sakari Ailus
` (74 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul, Sakari Ailus, Uwe Kleine-König; +Cc: dmaengine, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/dma/ti/cppi41.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c
index 8d8c3d6038fc..88756dccd62c 100644
--- a/drivers/dma/ti/cppi41.c
+++ b/drivers/dma/ti/cppi41.c
@@ -390,7 +390,6 @@ static int cppi41_dma_alloc_chan_resources(struct dma_chan *chan)
if (!c->is_tx)
cppi_writel(c->q_num, c->gcr_reg + RXHPCRA0);
- pm_runtime_mark_last_busy(cdd->ddev.dev);
pm_runtime_put_autosuspend(cdd->ddev.dev);
return 0;
@@ -411,7 +410,6 @@ static void cppi41_dma_free_chan_resources(struct dma_chan *chan)
WARN_ON(!list_empty(&cdd->pending));
- pm_runtime_mark_last_busy(cdd->ddev.dev);
pm_runtime_put_autosuspend(cdd->ddev.dev);
}
@@ -509,7 +507,6 @@ static void cppi41_dma_issue_pending(struct dma_chan *chan)
cppi41_run_queue(cdd);
spin_unlock_irqrestore(&cdd->lock, flags);
- pm_runtime_mark_last_busy(cdd->ddev.dev);
pm_runtime_put_autosuspend(cdd->ddev.dev);
}
@@ -627,7 +624,6 @@ static struct dma_async_tx_descriptor *cppi41_dma_prep_slave_sg(
txd = &c->txd;
err_out_not_ready:
- pm_runtime_mark_last_busy(cdd->ddev.dev);
pm_runtime_put_autosuspend(cdd->ddev.dev);
return txd;
@@ -1139,7 +1135,6 @@ static int cppi41_dma_probe(struct platform_device *pdev)
if (ret)
goto err_of;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 14/80] dmaengine: zynqmp_dma: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (12 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 13/80] dmaengine: ti: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 15/80] gpio: arizona: " Sakari Ailus
` (73 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul, Michal Simek, Uwe Kleine-König, Sakari Ailus,
Yan Zhen, Palmer Dabbelt, Abin Joseph
Cc: dmaengine, linux-arm-kernel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/dma/xilinx/zynqmp_dma.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/dma/xilinx/zynqmp_dma.c b/drivers/dma/xilinx/zynqmp_dma.c
index d05fc5fcc77d..1e2b9f37fd40 100644
--- a/drivers/dma/xilinx/zynqmp_dma.c
+++ b/drivers/dma/xilinx/zynqmp_dma.c
@@ -695,7 +695,6 @@ static void zynqmp_dma_free_chan_resources(struct dma_chan *dchan)
(2 * ZYNQMP_DMA_DESC_SIZE(chan) * ZYNQMP_DMA_NUM_DESCS),
chan->desc_pool_v, chan->desc_pool_p);
kfree(chan->sw_desc_pool);
- pm_runtime_mark_last_busy(chan->dev);
pm_runtime_put_autosuspend(chan->dev);
}
@@ -1145,7 +1144,6 @@ static int zynqmp_dma_probe(struct platform_device *pdev)
goto free_chan_resources;
}
- pm_runtime_mark_last_busy(zdev->dev);
pm_runtime_put_sync_autosuspend(zdev->dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 15/80] gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (13 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 14/80] dmaengine: zynqmp_dma: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-07 8:46 ` Charles Keepax
2025-07-04 7:54 ` [PATCH 16/80] drm/amd: " Sakari Ailus
` (72 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Linus Walleij, Bartosz Golaszewski; +Cc: patches, linux-gpio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/gpio/gpio-arizona.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpio/gpio-arizona.c b/drivers/gpio/gpio-arizona.c
index e530c94dcce8..89ffde693019 100644
--- a/drivers/gpio/gpio-arizona.c
+++ b/drivers/gpio/gpio-arizona.c
@@ -39,7 +39,6 @@ static int arizona_gpio_direction_in(struct gpio_chip *chip, unsigned offset)
return ret;
if (change && persistent) {
- pm_runtime_mark_last_busy(chip->parent);
pm_runtime_put_autosuspend(chip->parent);
}
@@ -82,7 +81,6 @@ static int arizona_gpio_get(struct gpio_chip *chip, unsigned offset)
return ret;
}
- pm_runtime_mark_last_busy(chip->parent);
pm_runtime_put_autosuspend(chip->parent);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 16/80] drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (14 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 15/80] gpio: arizona: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 17/80] drm/nouveau: " Sakari Ailus
` (71 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Alex Deucher, Christian König, David Airlie, Simona Vetter,
Felix Kuehling, Kenneth Feng, Mario Limonciello, Alex Hung,
Antonio Quartulli, Pratap Nirujogi, Sakari Ailus, Liviu Dudau,
Harry Wentland, Dmitry Baryshkov, Jani Nikula,
Thomas Weißschuh, Ma Ke, Yang Wang, Jesse Zhang, Lijo Lazar,
Sathishkumar S, André Almeida, Hamza Mahfooz,
Thomas Zimmermann, Tim Huang, Marek Olšák, Ingo Molnar,
Thomas Gleixner, Asad Kamal, Srinivasan Shanmugam, Jack Xiao,
Prike Liang, Shashank Sharma, Victor Skvortsov, Hawking Zhang,
Tao Zhou, ganglxie, YiPeng Chai, Arunpravin Paneer Selvam
Cc: amd-gfx, dri-devel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 1 -
.../gpu/drm/amd/amdgpu/amdgpu_connectors.c | 4 ---
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 25 -------------------
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ---
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 --
drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 1 -
.../gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 1 -
drivers/gpu/drm/amd/amdkfd/kfd_process.c | 1 -
drivers/gpu/drm/amd/pm/amdgpu_pm.c | 1 -
14 files changed, 47 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
index f5466c592d94..9e4f135b9173 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
@@ -507,7 +507,6 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,
pm_runtime_get_sync(adev_to_drm(adev)->dev);
/* Just fire off a uevent and let userspace tell us what to do */
drm_helper_hpd_irq_event(adev_to_drm(adev));
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
}
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index 5e375e9c4f5d..7220ecb93ff7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -738,7 +738,6 @@ amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force)
amdgpu_connector_update_scratch_regs(connector, ret);
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -923,7 +922,6 @@ amdgpu_connector_vga_detect(struct drm_connector *connector, bool force)
out:
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -1150,7 +1148,6 @@ amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force)
exit:
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -1450,7 +1447,6 @@ amdgpu_connector_dp_detect(struct drm_connector *connector, bool force)
amdgpu_connector_update_scratch_regs(connector, ret);
out:
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
index 83f211903425..2c724e8354de 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
@@ -129,7 +129,6 @@ static int amdgpu_debugfs_process_reg_op(bool read, struct file *f,
if (use_bank) {
if ((sh_bank != 0xFFFFFFFF && sh_bank >= adev->gfx.config.max_sh_per_se) ||
(se_bank != 0xFFFFFFFF && se_bank >= adev->gfx.config.max_shader_engines)) {
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return -EINVAL;
@@ -179,7 +178,6 @@ static int amdgpu_debugfs_process_reg_op(bool read, struct file *f,
if (pm_pg_lock)
mutex_unlock(&adev->pm.mutex);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
@@ -255,7 +253,6 @@ static ssize_t amdgpu_debugfs_regs2_op(struct file *f, char __user *buf, u32 off
if (rd->id.use_grbm) {
if ((rd->id.grbm.sh != 0xFFFFFFFF && rd->id.grbm.sh >= adev->gfx.config.max_sh_per_se) ||
(rd->id.grbm.se != 0xFFFFFFFF && rd->id.grbm.se >= adev->gfx.config.max_shader_engines)) {
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
mutex_unlock(&rd->lock);
@@ -310,7 +307,6 @@ static ssize_t amdgpu_debugfs_regs2_op(struct file *f, char __user *buf, u32 off
mutex_unlock(&rd->lock);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
@@ -446,7 +442,6 @@ static ssize_t amdgpu_debugfs_gprwave_read(struct file *f, char __user *buf, siz
amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, rd->id.xcc_id);
mutex_unlock(&adev->grbm_idx_mutex);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
if (!x) {
@@ -557,7 +552,6 @@ static ssize_t amdgpu_debugfs_regs_pcie_read(struct file *f, char __user *buf,
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return r;
@@ -617,7 +611,6 @@ static ssize_t amdgpu_debugfs_regs_pcie_write(struct file *f, const char __user
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return r;
@@ -676,7 +669,6 @@ static ssize_t amdgpu_debugfs_regs_didt_read(struct file *f, char __user *buf,
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return r;
@@ -736,7 +728,6 @@ static ssize_t amdgpu_debugfs_regs_didt_write(struct file *f, const char __user
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return r;
@@ -795,7 +786,6 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file *f, char __user *buf,
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return r;
@@ -855,7 +845,6 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct file *f, const char __user *
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
amdgpu_virt_disable_access_debugfs(adev);
return r;
@@ -1003,7 +992,6 @@ static ssize_t amdgpu_debugfs_sensor_read(struct file *f, char __user *buf,
r = amdgpu_dpm_read_sensor(adev, idx, &values[0], &valuesize);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
if (r) {
@@ -1094,7 +1082,6 @@ static ssize_t amdgpu_debugfs_wave_read(struct file *f, char __user *buf,
amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0);
mutex_unlock(&adev->grbm_idx_mutex);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
if (!x) {
@@ -1192,7 +1179,6 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
amdgpu_gfx_select_se_sh(adev, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0);
mutex_unlock(&adev->grbm_idx_mutex);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
while (size) {
@@ -1266,7 +1252,6 @@ static ssize_t amdgpu_debugfs_gfxoff_residency_read(struct file *f, char __user
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
@@ -1315,7 +1300,6 @@ static ssize_t amdgpu_debugfs_gfxoff_residency_write(struct file *f, const char
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
@@ -1365,7 +1349,6 @@ static ssize_t amdgpu_debugfs_gfxoff_count_read(struct file *f, char __user *buf
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
@@ -1414,7 +1397,6 @@ static ssize_t amdgpu_debugfs_gfxoff_write(struct file *f, const char __user *bu
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
@@ -1460,7 +1442,6 @@ static ssize_t amdgpu_debugfs_gfxoff_read(struct file *f, char __user *buf,
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
@@ -1501,7 +1482,6 @@ static ssize_t amdgpu_debugfs_gfxoff_status_read(struct file *f, char __user *bu
r = result;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
@@ -1701,7 +1681,6 @@ static int amdgpu_debugfs_test_ib_show(struct seq_file *m, void *unused)
up_write(&adev->reset_domain->sem);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return 0;
@@ -1721,7 +1700,6 @@ static int amdgpu_debugfs_evict_vram(void *data, u64 *val)
*val = amdgpu_ttm_evict_resources(adev, TTM_PL_VRAM);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return 0;
@@ -1742,7 +1720,6 @@ static int amdgpu_debugfs_evict_gtt(void *data, u64 *val)
*val = amdgpu_ttm_evict_resources(adev, TTM_PL_TT);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return 0;
@@ -1762,7 +1739,6 @@ static int amdgpu_debugfs_benchmark(void *data, u64 val)
r = amdgpu_benchmark(adev, val);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return r;
@@ -2014,7 +1990,6 @@ static int amdgpu_debugfs_sclk_set(void *data, u64 val)
ret = -EINVAL;
out:
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return ret;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
index 9e463d3ee927..d5844fee7204 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
@@ -332,8 +332,6 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set,
if (crtc->enabled)
active = true;
- pm_runtime_mark_last_busy(dev->dev);
-
adev = drm_to_adev(dev);
/* if we have active crtcs and we don't have a power ref,
* take the current one
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index b299e15bb5e5..24edb5a327c2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2228,7 +2228,6 @@ static void amdgpu_get_secondary_funcs(struct amdgpu_device *adev)
adev->pdev->bus->number, i);
if (p) {
pm_runtime_get_sync(&p->dev);
- pm_runtime_mark_last_busy(&p->dev);
pm_runtime_put_autosuspend(&p->dev);
pci_dev_put(p);
}
@@ -2469,7 +2468,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
pm_runtime_allow(ddev->dev);
- pm_runtime_mark_last_busy(ddev->dev);
pm_runtime_put_autosuspend(ddev->dev);
pci_wake_from_d3(pdev, TRUE);
@@ -2907,7 +2905,6 @@ static int amdgpu_pmops_runtime_idle(struct device *dev)
ret = amdgpu_runtime_idle_check_userq(dev);
done:
- pm_runtime_mark_last_busy(dev);
pm_runtime_autosuspend(dev);
return ret;
}
@@ -2926,7 +2923,6 @@ long amdgpu_drm_ioctl(struct file *filp,
ret = drm_ioctl(filp, cmd, arg);
- pm_runtime_mark_last_busy(dev->dev);
out:
pm_runtime_put_autosuspend(dev->dev);
return ret;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 2c3547f4cea4..5e52ac2f9206 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -267,7 +267,6 @@ bool amdgpu_fence_process(struct amdgpu_ring *ring)
dma_fence_signal(fence);
dma_fence_put(fence);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
} while (last_seq != seq);
@@ -920,7 +919,6 @@ static int gpu_recover_get(void *data, u64 *val)
*val = atomic_read(&adev->reset_domain->reset_res);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
index c80c8f543532..c922e141f4c6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
@@ -1594,7 +1594,6 @@ static ssize_t amdgpu_gfx_set_run_cleaner_shader(struct device *dev,
ret = amdgpu_gfx_run_cleaner_shader(adev, value);
- pm_runtime_mark_last_busy(ddev->dev);
pm_runtime_put_autosuspend(ddev->dev);
if (ret)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 195ed81d39ff..c7233f30a29f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -1450,7 +1450,6 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
kfree(fpriv);
out_suspend:
- pm_runtime_mark_last_busy(dev->dev);
pm_put:
pm_runtime_put_autosuspend(dev->dev);
@@ -1521,7 +1520,6 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
kfree(fpriv);
file_priv->driver_priv = NULL;
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
index 123bcf5c2bb1..bacf888735db 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c
@@ -101,7 +101,6 @@ static ssize_t amdgpu_rap_debugfs_write(struct file *f, const char __user *buf,
}
amdgpu_gfx_off_ctrl(adev, true);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return size;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index dd37d8815ba5..258acce7db8f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -3869,7 +3869,6 @@ static void amdgpu_ras_counte_dw(struct work_struct *work)
atomic_set(&con->ras_ue_count, ue_count);
}
- pm_runtime_mark_last_busy(dev->dev);
Out:
pm_runtime_put_autosuspend(dev->dev);
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
index 41ebe690eeff..3739be1b71e0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.c
@@ -159,7 +159,6 @@ static ssize_t amdgpu_securedisplay_debugfs_write(struct file *f, const char __u
dev_err(adev->dev, "Invalid input: %s\n", str);
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return size;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
index 295e7186e156..5e939ea8ea42 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
@@ -322,7 +322,6 @@ amdgpu_userq_destroy(struct drm_file *filp, int queue_id)
amdgpu_userq_cleanup(uq_mgr, queue, queue_id);
mutex_unlock(&uq_mgr->userq_mutex);
- pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
return r;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
index 5be28c6c4f6a..04b1abd8e80a 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -1083,7 +1083,6 @@ static void kfd_process_destroy_pdds(struct kfd_process *p)
* for auto suspend
*/
if (pdd->runtime_inuse) {
- pm_runtime_mark_last_busy(adev_to_drm(pdd->dev->adev)->dev);
pm_runtime_put_autosuspend(adev_to_drm(pdd->dev->adev)->dev);
pdd->runtime_inuse = false;
}
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index edd9895b46c0..728b3982df57 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -172,7 +172,6 @@ static int amdgpu_pm_get_access_if_active(struct amdgpu_device *adev)
*/
static inline void amdgpu_pm_put_access(struct amdgpu_device *adev)
{
- pm_runtime_mark_last_busy(adev->dev);
pm_runtime_put_autosuspend(adev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 17/80] drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (15 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 16/80] drm/amd: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 9:24 ` Danilo Krummrich
2025-07-04 7:54 ` [PATCH 18/80] drm/radeon: " Sakari Ailus
` (70 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Lyude Paul, Danilo Krummrich, David Airlie, Simona Vetter,
Ben Skeggs, Dave Airlie, Thomas Zimmermann, Jani Nikula,
Gustavo A. R. Silva, Dmitry Baryshkov, Suraj Kandpal
Cc: dri-devel, nouveau, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 --
drivers/gpu/drm/nouveau/nouveau_connector.c | 1 -
drivers/gpu/drm/nouveau/nouveau_debugfs.c | 1 -
drivers/gpu/drm/nouveau/nouveau_display.c | 1 -
drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ----
drivers/gpu/drm/nouveau/nouveau_gem.c | 3 ---
6 files changed, 12 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index e97e39abf3a2..682d21a8a82d 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -1222,7 +1222,6 @@ nv50_mstc_detect(struct drm_connector *connector,
goto out;
out:
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
return ret;
}
@@ -2411,7 +2410,6 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state)
drm_atomic_state_put(state);
/* Drop the RPM ref we got from nv50_disp_atomic_commit() */
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 63621b1510f6..7d0c5e42d1dd 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -673,7 +673,6 @@ nouveau_connector_detect(struct drm_connector *connector, bool force)
if (!nv_connector->edid)
drm_dp_cec_unset_edid(&nv_connector->aux);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return conn_status;
diff --git a/drivers/gpu/drm/nouveau/nouveau_debugfs.c b/drivers/gpu/drm/nouveau/nouveau_debugfs.c
index 200e65a7cefc..40eedb349c6c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_debugfs.c
+++ b/drivers/gpu/drm/nouveau/nouveau_debugfs.c
@@ -62,7 +62,6 @@ nouveau_debugfs_strap_peek(struct seq_file *m, void *data)
seq_printf(m, "0x%08x\n",
nvif_rd32(&drm->client.device.object, 0x101000));
- pm_runtime_mark_last_busy(drm->dev->dev);
pm_runtime_put_autosuspend(drm->dev->dev);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index c50ec347b30a..c74f5ef315a7 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -495,7 +495,6 @@ nouveau_display_hpd_work(struct work_struct *work)
if (first_changed_connector)
drm_connector_put(first_changed_connector);
- pm_runtime_mark_last_busy(dev->dev);
noop:
pm_runtime_put_autosuspend(dev->dev);
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 0c82a63cd49d..1dccd4af1bea 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -1177,7 +1177,6 @@ nouveau_pmops_runtime_idle(struct device *dev)
return -EBUSY;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_autosuspend(dev);
/* we don't want the main rpm_idle to call suspend - we want to autosuspend */
return 1;
@@ -1224,7 +1223,6 @@ nouveau_drm_open(struct drm_device *dev, struct drm_file *fpriv)
kfree(cli);
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return ret;
}
@@ -1258,7 +1256,6 @@ nouveau_drm_postclose(struct drm_device *dev, struct drm_file *fpriv)
nouveau_cli_fini(cli);
kfree(cli);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
drm_dev_exit(dev_index);
}
@@ -1306,7 +1303,6 @@ nouveau_drm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
break;
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return ret;
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 690e10fbf0bd..d0f034b4a67c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -89,7 +89,6 @@ nouveau_gem_object_del(struct drm_gem_object *gem)
ttm_bo_put(&nvbo->bo);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -127,7 +126,6 @@ nouveau_gem_object_open(struct drm_gem_object *gem, struct drm_file *file_priv)
ret = nouveau_vma_new(nvbo, vmm, &vma);
else
ret = 0;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
out:
ttm_bo_unreserve(&nvbo->bo);
@@ -206,7 +204,6 @@ nouveau_gem_object_close(struct drm_gem_object *gem, struct drm_file *file_priv)
ret = pm_runtime_get_sync(dev);
if (!WARN_ON(ret < 0 && ret != -EACCES)) {
nouveau_gem_object_unmap(nvbo, vma);
- pm_runtime_mark_last_busy(dev);
}
pm_runtime_put_autosuspend(dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 18/80] drm/radeon: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (16 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 17/80] drm/nouveau: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 19/80] drm/panfrost: " Sakari Ailus
` (69 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Alex Deucher, Christian König, David Airlie, Simona Vetter
Cc: amd-gfx, dri-devel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/gpu/drm/radeon/radeon_acpi.c | 1 -
drivers/gpu/drm/radeon/radeon_connectors.c | 5 -----
drivers/gpu/drm/radeon/radeon_display.c | 2 --
drivers/gpu/drm/radeon/radeon_drv.c | 2 --
drivers/gpu/drm/radeon/radeon_fbdev.c | 2 --
drivers/gpu/drm/radeon/radeon_kms.c | 4 ----
6 files changed, 16 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_acpi.c b/drivers/gpu/drm/radeon/radeon_acpi.c
index 22ce61bdfc06..08f8ba4fd148 100644
--- a/drivers/gpu/drm/radeon/radeon_acpi.c
+++ b/drivers/gpu/drm/radeon/radeon_acpi.c
@@ -408,7 +408,6 @@ static int radeon_atif_handler(struct radeon_device *rdev,
pm_runtime_get_sync(rdev_to_drm(rdev)->dev);
/* Just fire off a uevent and let userspace tell us what to do */
drm_helper_hpd_irq_event(rdev_to_drm(rdev));
- pm_runtime_mark_last_busy(rdev_to_drm(rdev)->dev);
pm_runtime_put_autosuspend(rdev_to_drm(rdev)->dev);
}
}
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 9f6a3df951ba..7a4f05dbd6f7 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -876,7 +876,6 @@ radeon_lvds_detect(struct drm_connector *connector, bool force)
radeon_connector_update_scratch_regs(connector, ret);
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -1067,7 +1066,6 @@ radeon_vga_detect(struct drm_connector *connector, bool force)
out:
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -1155,7 +1153,6 @@ radeon_tv_detect(struct drm_connector *connector, bool force)
radeon_connector_update_scratch_regs(connector, ret);
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -1403,7 +1400,6 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
exit:
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
@@ -1715,7 +1711,6 @@ radeon_dp_detect(struct drm_connector *connector, bool force)
out:
if (!drm_kms_helper_is_poll_worker()) {
- pm_runtime_mark_last_busy(connector->dev->dev);
pm_runtime_put_autosuspend(connector->dev->dev);
}
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 8f5f8abcb1b4..89c3f83561d6 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -644,8 +644,6 @@ radeon_crtc_set_config(struct drm_mode_set *set,
if (crtc->enabled)
active = true;
- pm_runtime_mark_last_busy(dev->dev);
-
rdev = dev->dev_private;
/* if we have active crtcs and we don't have a power ref,
take the current one */
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 88e821d67af7..d0af0cef178a 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -477,7 +477,6 @@ static int radeon_pmops_runtime_idle(struct device *dev)
}
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_autosuspend(dev);
/* we don't want the main rpm_idle to call suspend - we want to autosuspend */
return 1;
@@ -499,7 +498,6 @@ long radeon_drm_ioctl(struct file *filp,
ret = drm_ioctl(filp, cmd, arg);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return ret;
}
diff --git a/drivers/gpu/drm/radeon/radeon_fbdev.c b/drivers/gpu/drm/radeon/radeon_fbdev.c
index d4a58bd679db..419fcad8d283 100644
--- a/drivers/gpu/drm/radeon/radeon_fbdev.c
+++ b/drivers/gpu/drm/radeon/radeon_fbdev.c
@@ -155,7 +155,6 @@ static int radeon_fbdev_fb_open(struct fb_info *info, int user)
return 0;
err_pm_runtime_mark_last_busy:
- pm_runtime_mark_last_busy(rdev_to_drm(rdev)->dev);
pm_runtime_put_autosuspend(rdev_to_drm(rdev)->dev);
return ret;
}
@@ -165,7 +164,6 @@ static int radeon_fbdev_fb_release(struct fb_info *info, int user)
struct drm_fb_helper *fb_helper = info->par;
struct radeon_device *rdev = fb_helper->dev->dev_private;
- pm_runtime_mark_last_busy(rdev_to_drm(rdev)->dev);
pm_runtime_put_autosuspend(rdev_to_drm(rdev)->dev);
return 0;
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 645e33bf7947..3144890b6007 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -170,7 +170,6 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
pm_runtime_set_autosuspend_delay(dev->dev, 5000);
pm_runtime_set_active(dev->dev);
pm_runtime_allow(dev->dev);
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
}
@@ -677,7 +676,6 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
file_priv->driver_priv = fpriv;
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return 0;
@@ -687,7 +685,6 @@ int radeon_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
kfree(fpriv);
err_suspend:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return r;
}
@@ -737,7 +734,6 @@ void radeon_driver_postclose_kms(struct drm_device *dev,
kfree(fpriv);
file_priv->driver_priv = NULL;
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 19/80] drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (17 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 18/80] drm/radeon: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 9:18 ` Steven Price
2025-07-04 7:54 ` [PATCH 21/80] HSI: omap_ssi_port: " Sakari Ailus
` (68 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Boris Brezillon, Rob Herring, Steven Price, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
index 563f16bae543..0dd62e8b2fa7 100644
--- a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
+++ b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
@@ -203,7 +203,6 @@ static int panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev,
panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
panfrost_gem_mapping_put(perfcnt->mapping);
perfcnt->mapping = NULL;
- pm_runtime_mark_last_busy(pfdev->dev);
pm_runtime_put_autosuspend(pfdev->dev);
return 0;
@@ -279,7 +278,6 @@ void panfrost_perfcnt_close(struct drm_file *file_priv)
if (perfcnt->user == pfile)
panfrost_perfcnt_disable_locked(pfdev, file_priv);
mutex_unlock(&perfcnt->lock);
- pm_runtime_mark_last_busy(pfdev->dev);
pm_runtime_put_autosuspend(pfdev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 21/80] HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (18 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 19/80] drm/panfrost: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-05 0:37 ` Sebastian Reichel
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
` (67 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Sebastian Reichel, Sakari Ailus; +Cc: linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/hsi/controllers/omap_ssi_port.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/drivers/hsi/controllers/omap_ssi_port.c b/drivers/hsi/controllers/omap_ssi_port.c
index aeb92b803a17..50dde968febe 100644
--- a/drivers/hsi/controllers/omap_ssi_port.c
+++ b/drivers/hsi/controllers/omap_ssi_port.c
@@ -362,7 +362,6 @@ static int ssi_async_break(struct hsi_msg *msg)
spin_unlock_bh(&omap_port->lock);
}
out:
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
return err;
@@ -401,7 +400,6 @@ static int ssi_async(struct hsi_msg *msg)
msg->status = HSI_STATUS_ERROR;
}
spin_unlock_bh(&omap_port->lock);
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
dev_dbg(&port->device, "msg status %d ttype %d ch %d\n",
msg->status, msg->ttype, msg->channel);
@@ -504,7 +502,6 @@ static int ssi_setup(struct hsi_client *cl)
omap_port->ssr.mode = cl->rx_cfg.mode;
out:
spin_unlock_bh(&omap_port->lock);
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
return err;
@@ -570,7 +567,6 @@ static int ssi_flush(struct hsi_client *cl)
pinctrl_pm_select_default_state(omap_port->pdev);
spin_unlock_bh(&omap_port->lock);
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
return 0;
@@ -625,7 +621,6 @@ static int ssi_stop_tx(struct hsi_client *cl)
writel(SSI_WAKE(0), omap_ssi->sys + SSI_CLEAR_WAKE_REG(port->num));
spin_unlock_bh(&omap_port->wk_lock);
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev); /* Release clocks */
@@ -653,7 +648,6 @@ static void ssi_transfer(struct omap_ssi_port *omap_port,
}
}
spin_unlock_bh(&omap_port->lock);
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
}
@@ -683,7 +677,6 @@ static void ssi_cleanup_queues(struct hsi_client *cl)
txbufstate |= (1 << i);
status |= SSI_DATAACCEPT(i);
/* Release the clocks writes, also GDD ones */
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
}
ssi_flush_queue(&omap_port->txqueue[i], cl);
@@ -739,7 +732,6 @@ static void ssi_cleanup_gdd(struct hsi_controller *ssi, struct hsi_client *cl)
* ssi_cleanup_queues
*/
if (msg->ttype == HSI_MSG_READ) {
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
}
omap_ssi->gdd_trn[i].msg = NULL;
@@ -936,7 +928,6 @@ static void ssi_pio_complete(struct hsi_port *port, struct list_head *queue)
reg = readl(omap_ssi->sys + SSI_MPU_ENABLE_REG(port->num, 0));
if (msg->ttype == HSI_MSG_WRITE) {
/* Release clocks for write transfer */
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
}
reg &= ~val;
@@ -981,7 +972,6 @@ static irqreturn_t ssi_pio_thread(int irq, void *ssi_port)
/* TODO: sleep if we retry? */
} while (status_reg);
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
return IRQ_HANDLED;
@@ -1018,7 +1008,6 @@ static irqreturn_t ssi_wake_thread(int irq __maybe_unused, void *ssi_port)
}
hsi_event(port, HSI_EVENT_STOP_RX);
if (test_and_clear_bit(SSI_WAKE_EN, &omap_port->flags)) {
- pm_runtime_mark_last_busy(omap_port->pdev);
pm_runtime_put_autosuspend(omap_port->pdev);
}
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (19 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 21/80] HSI: omap_ssi_port: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:11 ` Jani Nikula
` (5 more replies)
2025-07-04 7:54 ` [PATCH 22/80] stm class: " Sakari Ailus
` (66 subsequent siblings)
87 siblings, 6 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Douglas Anderson,
Lucas Stach, Russell King, Christian Gmeiner, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
Laurentiu Palcu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Qiang Yu, Jessica Zhang, Boris Brezillon,
Steven Price, Liviu Dudau, Thierry Reding, Mikko Perttunen,
Jonathan Hunter, Jyri Sarha, Tomi Valkeinen, Dave Stevenson,
Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Baryshkov, Damon Ding, Ayushi Makhija, Luca Ceresoli,
Uwe Kleine-König, Chen-Yu Tsai
Cc: dri-devel, linux-kernel, etnaviv, linux-arm-kernel,
linux-samsung-soc, intel-gfx, imx, lima, linux-tegra
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 2 --
drivers/gpu/drm/bridge/analogix/anx7625.c | 2 --
drivers/gpu/drm/bridge/parade-ps8640.c | 2 --
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 -
drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 4 ----
drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2 --
drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 --
drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 --
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 1 -
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 -
drivers/gpu/drm/i915/intel_runtime_pm.c | 2 --
drivers/gpu/drm/imx/dcss/dcss-crtc.c | 1 -
drivers/gpu/drm/lima/lima_sched.c | 1 -
drivers/gpu/drm/panel/panel-edp.c | 3 ---
drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 2 --
drivers/gpu/drm/panel/panel-simple.c | 2 --
drivers/gpu/drm/panthor/panthor_sched.c | 2 --
drivers/gpu/drm/tegra/submit.c | 1 -
drivers/gpu/drm/tidss/tidss_drv.c | 2 --
drivers/gpu/drm/vc4/vc4_v3d.c | 1 -
20 files changed, 36 deletions(-)
diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index a1bc3e96dd35..2f815e2e02ca 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1452,7 +1452,6 @@ static ssize_t analogix_dpaux_transfer(struct drm_dp_aux *aux,
ret = analogix_dp_transfer(dp, msg);
out:
- pm_runtime_mark_last_busy(dp->dev);
pm_runtime_put_autosuspend(dp->dev);
return ret;
@@ -1472,7 +1471,6 @@ static int analogix_dpaux_wait_hpd_asserted(struct drm_dp_aux *aux, unsigned lon
ret = readx_poll_timeout(analogix_dp_get_plug_in_status, dp, val, !val,
wait_us / 100, wait_us);
- pm_runtime_mark_last_busy(dp->dev);
pm_runtime_put_autosuspend(dp->dev);
return ret;
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 0ac4a82c5a6e..9577409a2eb2 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -1520,7 +1520,6 @@ static int anx7625_wait_hpd_asserted(struct drm_dp_aux *aux,
pm_runtime_get_sync(dev);
ret = _anx7625_hpd_polling(ctx, wait_us);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1770,7 +1769,6 @@ static ssize_t anx7625_aux_transfer(struct drm_dp_aux *aux,
if (!ret)
ret = anx7625_aux_trans(ctx, msg->request, msg->address,
msg->size, msg->buffer);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
mutex_unlock(&ctx->aux_lock);
diff --git a/drivers/gpu/drm/bridge/parade-ps8640.c b/drivers/gpu/drm/bridge/parade-ps8640.c
index 825777a5758f..4f46ce2c908e 100644
--- a/drivers/gpu/drm/bridge/parade-ps8640.c
+++ b/drivers/gpu/drm/bridge/parade-ps8640.c
@@ -198,7 +198,6 @@ static int ps8640_wait_hpd_asserted(struct drm_dp_aux *aux, unsigned long wait_u
*/
pm_runtime_get_sync(dev);
ret = _ps8640_wait_hpd_asserted(ps_bridge, wait_us);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -353,7 +352,6 @@ static ssize_t ps8640_aux_transfer(struct drm_dp_aux *aux,
goto exit;
}
ret = ps8640_aux_transfer_msg(aux, msg);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
exit:
diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
index db5cc4030238..fc100d4a6276 100644
--- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
+++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
@@ -587,7 +587,6 @@ static ssize_t ti_sn_aux_transfer(struct drm_dp_aux *aux,
exit:
mutex_unlock(&pdata->comms_mutex);
- pm_runtime_mark_last_busy(pdata->dev);
pm_runtime_put_autosuspend(pdata->dev);
if (ret)
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
index cf0d9049bcf1..bc5a94dba2d4 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
@@ -916,13 +916,11 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
etnaviv_gpu_hw_init(gpu);
mutex_unlock(&gpu->lock);
- pm_runtime_mark_last_busy(gpu->dev);
pm_runtime_put_autosuspend(gpu->dev);
return 0;
fail:
- pm_runtime_mark_last_busy(gpu->dev);
pm_put:
pm_runtime_put_autosuspend(gpu->dev);
@@ -1109,7 +1107,6 @@ int etnaviv_gpu_debugfs(struct etnaviv_gpu *gpu, struct seq_file *m)
ret = 0;
- pm_runtime_mark_last_busy(gpu->dev);
pm_put:
pm_runtime_put_autosuspend(gpu->dev);
@@ -1509,7 +1506,6 @@ void etnaviv_gpu_recover_hang(struct etnaviv_gem_submit *submit)
etnaviv_gpu_hw_init(gpu);
mutex_unlock(&gpu->lock);
- pm_runtime_mark_last_busy(gpu->dev);
pm_put:
pm_runtime_put_autosuspend(gpu->dev);
}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
index 09e33a26caaf..13ce35443206 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -967,7 +967,6 @@ static irqreturn_t fimc_irq_handler(int irq, void *dev_id)
struct exynos_drm_ipp_task *task = ctx->task;
ctx->task = NULL;
- pm_runtime_mark_last_busy(ctx->dev);
pm_runtime_put_autosuspend(ctx->dev);
exynos_drm_ipp_task_done(task, 0);
}
@@ -1119,7 +1118,6 @@ static void fimc_abort(struct exynos_drm_ipp *ipp,
struct exynos_drm_ipp_task *task = ctx->task;
ctx->task = NULL;
- pm_runtime_mark_last_busy(ctx->dev);
pm_runtime_put_autosuspend(ctx->dev);
exynos_drm_ipp_task_done(task, -EIO);
}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
index d32f2474cbaa..58a830ffdcd7 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c
@@ -881,7 +881,6 @@ static void g2d_runqueue_worker(struct work_struct *work)
g2d->runqueue_node = NULL;
if (runqueue_node) {
- pm_runtime_mark_last_busy(g2d->dev);
pm_runtime_put_autosuspend(g2d->dev);
complete(&runqueue_node->complete);
@@ -1009,7 +1008,6 @@ static void g2d_wait_finish(struct g2d_data *g2d, struct drm_file *file)
* the IRQ which triggers the PM runtime put().
* So do this manually here.
*/
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
complete(&runqueue_node->complete);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index e6d516e1976d..3b02126b7174 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -1053,7 +1053,6 @@ static irqreturn_t gsc_irq_handler(int irq, void *dev_id)
struct exynos_drm_ipp_task *task = ctx->task;
ctx->task = NULL;
- pm_runtime_mark_last_busy(ctx->dev);
pm_runtime_put_autosuspend(ctx->dev);
exynos_drm_ipp_task_done(task, err);
}
@@ -1156,7 +1155,6 @@ static void gsc_abort(struct exynos_drm_ipp *ipp,
struct exynos_drm_ipp_task *task = ctx->task;
ctx->task = NULL;
- pm_runtime_mark_last_busy(ctx->dev);
pm_runtime_put_autosuspend(ctx->dev);
exynos_drm_ipp_task_done(task, -EIO);
}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
index 7b0f4a98a70a..06a064f5d8b4 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -107,7 +107,6 @@ static irqreturn_t rotator_irq_handler(int irq, void *arg)
struct exynos_drm_ipp_task *task = rot->task;
rot->task = NULL;
- pm_runtime_mark_last_busy(rot->dev);
pm_runtime_put_autosuspend(rot->dev);
exynos_drm_ipp_task_done(task,
irq_status == ROT_IRQ_STATUS_COMPLETE ? 0 : -EINVAL);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_scaler.c b/drivers/gpu/drm/exynos/exynos_drm_scaler.c
index c8a1b6b0a29c..b59fa9973beb 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_scaler.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_scaler.c
@@ -438,7 +438,6 @@ static irqreturn_t scaler_irq_handler(int irq, void *arg)
struct exynos_drm_ipp_task *task = scaler->task;
scaler->task = NULL;
- pm_runtime_mark_last_busy(scaler->dev);
pm_runtime_put_autosuspend(scaler->dev);
exynos_drm_ipp_task_done(task, scaler_task_done(val));
}
diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
index 7ce3e6de0c19..8e95afced2ce 100644
--- a/drivers/gpu/drm/i915/intel_runtime_pm.c
+++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
@@ -305,7 +305,6 @@ static void __intel_runtime_pm_put(struct intel_runtime_pm *rpm,
intel_runtime_pm_release(rpm, wakelock);
- pm_runtime_mark_last_busy(kdev);
pm_runtime_put_autosuspend(kdev);
}
@@ -383,7 +382,6 @@ void intel_runtime_pm_enable(struct intel_runtime_pm *rpm)
dev_pm_set_driver_flags(kdev, DPM_FLAG_NO_DIRECT_COMPLETE);
pm_runtime_set_autosuspend_delay(kdev, 10000); /* 10s */
- pm_runtime_mark_last_busy(kdev);
/*
* Take a permanent reference to disable the RPM functionality and drop
diff --git a/drivers/gpu/drm/imx/dcss/dcss-crtc.c b/drivers/gpu/drm/imx/dcss/dcss-crtc.c
index af91e45b5d13..7ad8dfd4367f 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-crtc.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-crtc.c
@@ -154,7 +154,6 @@ static void dcss_crtc_atomic_disable(struct drm_crtc *crtc,
drm_crtc_vblank_off(crtc);
- pm_runtime_mark_last_busy(dcss->dev);
pm_runtime_put_autosuspend(dcss->dev);
}
diff --git a/drivers/gpu/drm/lima/lima_sched.c b/drivers/gpu/drm/lima/lima_sched.c
index 954f4325b859..267d5b68031d 100644
--- a/drivers/gpu/drm/lima/lima_sched.c
+++ b/drivers/gpu/drm/lima/lima_sched.c
@@ -197,7 +197,6 @@ static void lima_pm_idle(struct lima_device *ldev)
lima_devfreq_record_idle(&ldev->devfreq);
/* GPU can do auto runtime suspend */
- pm_runtime_mark_last_busy(ldev->dev);
pm_runtime_put_autosuspend(ldev->dev);
}
diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c
index 3796c41629cc..2de51e3ccca2 100644
--- a/drivers/gpu/drm/panel/panel-edp.c
+++ b/drivers/gpu/drm/panel/panel-edp.c
@@ -613,7 +613,6 @@ static int panel_edp_get_modes(struct drm_panel *panel,
}
}
- pm_runtime_mark_last_busy(panel->dev);
pm_runtime_put_autosuspend(panel->dev);
}
@@ -825,7 +824,6 @@ static int generic_edp_panel_probe(struct device *dev, struct panel_edp *panel)
}
exit:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -917,7 +915,6 @@ static int panel_edp_probe(struct device *dev, const struct panel_desc *desc,
if (!panel->base.backlight && panel->aux) {
pm_runtime_get_sync(dev);
err = drm_panel_dp_aux_backlight(&panel->base, panel->aux);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
/*
diff --git a/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c b/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
index 20ec27d2d6c2..34a90ea4ba7b 100644
--- a/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
+++ b/drivers/gpu/drm/panel/panel-samsung-atna33xc20.c
@@ -236,7 +236,6 @@ static int atana33xc20_get_modes(struct drm_panel *panel,
num = drm_edid_connector_add_modes(connector);
- pm_runtime_mark_last_busy(panel->dev);
pm_runtime_put_autosuspend(panel->dev);
return num;
@@ -306,7 +305,6 @@ static int atana33xc20_probe(struct dp_aux_ep_device *aux_ep)
pm_runtime_get_sync(dev);
ret = drm_panel_dp_aux_backlight(&panel->base, aux_ep->aux);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
/*
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 3333d4a07504..d6bdee56b32f 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -320,7 +320,6 @@ static int panel_simple_unprepare(struct drm_panel *panel)
{
int ret;
- pm_runtime_mark_last_busy(panel->dev);
ret = pm_runtime_put_autosuspend(panel->dev);
if (ret < 0)
return ret;
@@ -389,7 +388,6 @@ static int panel_simple_get_modes(struct drm_panel *panel,
num += drm_edid_connector_add_modes(connector);
- pm_runtime_mark_last_busy(panel->dev);
pm_runtime_put_autosuspend(panel->dev);
}
diff --git a/drivers/gpu/drm/panthor/panthor_sched.c b/drivers/gpu/drm/panthor/panthor_sched.c
index a2248f692a03..f635f26a23f4 100644
--- a/drivers/gpu/drm/panthor/panthor_sched.c
+++ b/drivers/gpu/drm/panthor/panthor_sched.c
@@ -2446,7 +2446,6 @@ static void tick_work(struct work_struct *work)
out_unlock:
mutex_unlock(&sched->lock);
- pm_runtime_mark_last_busy(ptdev->base.dev);
pm_runtime_put_autosuspend(ptdev->base.dev);
out_dev_exit:
@@ -3203,7 +3202,6 @@ queue_run_job(struct drm_sched_job *sched_job)
out_unlock:
mutex_unlock(&sched->lock);
- pm_runtime_mark_last_busy(ptdev->base.dev);
pm_runtime_put_autosuspend(ptdev->base.dev);
return done_fence;
diff --git a/drivers/gpu/drm/tegra/submit.c b/drivers/gpu/drm/tegra/submit.c
index 2430fcc97448..5e0e76ebc5be 100644
--- a/drivers/gpu/drm/tegra/submit.c
+++ b/drivers/gpu/drm/tegra/submit.c
@@ -502,7 +502,6 @@ static void release_job(struct host1x_job *job)
kfree(job_data->used_mappings);
kfree(job_data);
- pm_runtime_mark_last_busy(client->base.dev);
pm_runtime_put_autosuspend(client->base.dev);
}
diff --git a/drivers/gpu/drm/tidss/tidss_drv.c b/drivers/gpu/drm/tidss/tidss_drv.c
index a1b12e52aca4..e7e02d6017b4 100644
--- a/drivers/gpu/drm/tidss/tidss_drv.c
+++ b/drivers/gpu/drm/tidss/tidss_drv.c
@@ -45,8 +45,6 @@ void tidss_runtime_put(struct tidss_device *tidss)
dev_dbg(tidss->dev, "%s\n", __func__);
- pm_runtime_mark_last_busy(tidss->dev);
-
r = pm_runtime_put_autosuspend(tidss->dev);
WARN_ON(r < 0);
}
diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
index bb09df5000bd..11ec7e913974 100644
--- a/drivers/gpu/drm/vc4/vc4_v3d.c
+++ b/drivers/gpu/drm/vc4/vc4_v3d.c
@@ -153,7 +153,6 @@ vc4_v3d_pm_put(struct vc4_dev *vc4)
mutex_lock(&vc4->power_lock);
if (--vc4->power_refcount == 0) {
- pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev);
pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev);
}
mutex_unlock(&vc4->power_lock);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 22/80] stm class: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (20 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 23/80] i2c: " Sakari Ailus
` (65 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Alexander Shishkin, Maxime Coquelin, Alexandre Torgue
Cc: linux-stm32, linux-arm-kernel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/hwtracing/stm/core.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c
index cdba4e875b28..f75d06e3787a 100644
--- a/drivers/hwtracing/stm/core.c
+++ b/drivers/hwtracing/stm/core.c
@@ -659,7 +659,6 @@ static ssize_t stm_char_write(struct file *file, const char __user *buf,
count = stm_write(stm, &stmf->output, 0, kbuf, count, NULL);
- pm_runtime_mark_last_busy(&stm->dev);
pm_runtime_put_autosuspend(&stm->dev);
kfree(kbuf);
@@ -679,7 +678,6 @@ static void stm_mmap_close(struct vm_area_struct *vma)
struct stm_file *stmf = vma->vm_file->private_data;
struct stm_device *stm = stmf->stm;
- pm_runtime_mark_last_busy(&stm->dev);
pm_runtime_put_autosuspend(&stm->dev);
}
@@ -1082,7 +1080,6 @@ static int __stm_source_link_drop(struct stm_source_device *src,
stm_output_free(link, &src->output);
list_del_init(&src->link_entry);
- pm_runtime_mark_last_busy(&link->dev);
pm_runtime_put_autosuspend(&link->dev);
/* matches stm_find_device() from stm_source_link_store() */
stm_put_device(link);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 23/80] i2c: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (21 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 22/80] stm class: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-10 20:49 ` Andi Shyti
2025-07-04 7:54 ` [PATCH 24/80] i3c: master: svc: " Sakari Ailus
` (64 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Elie Morisse, Shyam Sundar S K, Andi Shyti, Codrin Ciubotariu,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Michal Simek,
Bartosz Golaszewski, Jarkko Nikula, Andy Shevchenko,
Mika Westerberg, Jan Dabros, Jean Delvare, Dong Aisheng,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Oleksij Rempel, Gregory CLEMENT, Ajay Gupta, Aaro Koskinen,
Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
Janusz Krzysztofik, Vignesh R, Loic Poulain, Robert Foss,
Mukesh Kumar Savaliya, Viken Dadhaniya, Chris Brandt,
Fabrizio Castro, Orson Zhai, Baolin Wang, Chunyan Zhang,
Pierre-Yves MORDRET, Alain Volmat, Maxime Coquelin,
Alexandre Torgue
Cc: linux-i2c, linux-kernel, linux-arm-kernel, imx, linux-omap,
linux-arm-msm, linux-renesas-soc, linux-stm32
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/i2c/busses/i2c-amd-mp2.h | 1 -
drivers/i2c/busses/i2c-at91-core.c | 1 -
drivers/i2c/busses/i2c-at91-master.c | 1 -
drivers/i2c/busses/i2c-cadence.c | 1 -
drivers/i2c/busses/i2c-davinci.c | 2 --
drivers/i2c/busses/i2c-designware-master.c | 1 -
drivers/i2c/busses/i2c-hix5hd2.c | 1 -
drivers/i2c/busses/i2c-i801.c | 1 -
drivers/i2c/busses/i2c-img-scb.c | 3 ---
drivers/i2c/busses/i2c-imx-lpi2c.c | 4 ----
drivers/i2c/busses/i2c-imx.c | 3 ---
drivers/i2c/busses/i2c-mv64xxx.c | 1 -
drivers/i2c/busses/i2c-nvidia-gpu.c | 1 -
drivers/i2c/busses/i2c-omap.c | 3 ---
drivers/i2c/busses/i2c-qcom-cci.c | 2 --
drivers/i2c/busses/i2c-qcom-geni.c | 1 -
drivers/i2c/busses/i2c-qup.c | 3 ---
drivers/i2c/busses/i2c-riic.c | 2 --
drivers/i2c/busses/i2c-rzv2m.c | 1 -
drivers/i2c/busses/i2c-sprd.c | 2 --
drivers/i2c/busses/i2c-stm32f7.c | 5 -----
drivers/i2c/busses/i2c-xiic.c | 1 -
22 files changed, 41 deletions(-)
diff --git a/drivers/i2c/busses/i2c-amd-mp2.h b/drivers/i2c/busses/i2c-amd-mp2.h
index 018a42de8b1e..9b7e9494dd12 100644
--- a/drivers/i2c/busses/i2c-amd-mp2.h
+++ b/drivers/i2c/busses/i2c-amd-mp2.h
@@ -207,7 +207,6 @@ static inline void amd_mp2_pm_runtime_get(struct amd_mp2_dev *mp2_dev)
static inline void amd_mp2_pm_runtime_put(struct amd_mp2_dev *mp2_dev)
{
- pm_runtime_mark_last_busy(&mp2_dev->pci_dev->dev);
pm_runtime_put_autosuspend(&mp2_dev->pci_dev->dev);
}
diff --git a/drivers/i2c/busses/i2c-at91-core.c b/drivers/i2c/busses/i2c-at91-core.c
index edc047e3e535..b64adef778d4 100644
--- a/drivers/i2c/busses/i2c-at91-core.c
+++ b/drivers/i2c/busses/i2c-at91-core.c
@@ -313,7 +313,6 @@ static int __maybe_unused at91_twi_resume_noirq(struct device *dev)
return ret;
}
- pm_runtime_mark_last_busy(dev);
pm_request_autosuspend(dev);
at91_init_twi_bus(twi_dev);
diff --git a/drivers/i2c/busses/i2c-at91-master.c b/drivers/i2c/busses/i2c-at91-master.c
index 59795c1c24ff..894cedbca99f 100644
--- a/drivers/i2c/busses/i2c-at91-master.c
+++ b/drivers/i2c/busses/i2c-at91-master.c
@@ -717,7 +717,6 @@ static int at91_twi_xfer(struct i2c_adapter *adap, struct i2c_msg *msg, int num)
ret = (ret < 0) ? ret : num;
out:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return ret;
diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c
index 697d095afbe4..0fb728ade92e 100644
--- a/drivers/i2c/busses/i2c-cadence.c
+++ b/drivers/i2c/busses/i2c-cadence.c
@@ -1128,7 +1128,6 @@ static int cdns_i2c_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
cdns_i2c_set_mode(CDNS_I2C_MODE_SLAVE, id);
#endif
- pm_runtime_mark_last_busy(id->dev);
pm_runtime_put_autosuspend(id->dev);
return ret;
}
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
index 6a3d4e9e07f4..a773ba082321 100644
--- a/drivers/i2c/busses/i2c-davinci.c
+++ b/drivers/i2c/busses/i2c-davinci.c
@@ -543,7 +543,6 @@ i2c_davinci_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
ret = num;
out:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return ret;
@@ -821,7 +820,6 @@ static int davinci_i2c_probe(struct platform_device *pdev)
if (r)
goto err_unuse_clocks;
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-designware-master.c b/drivers/i2c/busses/i2c-designware-master.c
index cbd88ffa5610..181ca0938fb2 100644
--- a/drivers/i2c/busses/i2c-designware-master.c
+++ b/drivers/i2c/busses/i2c-designware-master.c
@@ -901,7 +901,6 @@ i2c_dw_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
i2c_dw_release_lock(dev);
done_nolock:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return ret;
diff --git a/drivers/i2c/busses/i2c-hix5hd2.c b/drivers/i2c/busses/i2c-hix5hd2.c
index 370f32974763..f8aa1ea0f9a6 100644
--- a/drivers/i2c/busses/i2c-hix5hd2.c
+++ b/drivers/i2c/busses/i2c-hix5hd2.c
@@ -373,7 +373,6 @@ static int hix5hd2_i2c_xfer(struct i2c_adapter *adap,
ret = num;
out:
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return ret;
}
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index a7f89946dad4..58088e9121a1 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -928,7 +928,6 @@ static s32 i801_access(struct i2c_adapter *adap, u16 addr,
*/
iowrite8(SMBHSTSTS_INUSE_STS | STATUS_FLAGS, SMBHSTSTS(priv));
- pm_runtime_mark_last_busy(&priv->pci_dev->dev);
pm_runtime_put_autosuspend(&priv->pci_dev->dev);
return ret;
}
diff --git a/drivers/i2c/busses/i2c-img-scb.c b/drivers/i2c/busses/i2c-img-scb.c
index a454f9f25146..88192c25c44c 100644
--- a/drivers/i2c/busses/i2c-img-scb.c
+++ b/drivers/i2c/busses/i2c-img-scb.c
@@ -1131,7 +1131,6 @@ static int img_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
break;
}
- pm_runtime_mark_last_busy(adap->dev.parent);
pm_runtime_put_autosuspend(adap->dev.parent);
return i2c->msg_status ? i2c->msg_status : num;
@@ -1165,7 +1164,6 @@ static int img_i2c_init(struct img_i2c *i2c)
"Unknown hardware revision (%d.%d.%d.%d)\n",
(rev >> 24) & 0xff, (rev >> 16) & 0xff,
(rev >> 8) & 0xff, rev & 0xff);
- pm_runtime_mark_last_busy(i2c->adap.dev.parent);
pm_runtime_put_autosuspend(i2c->adap.dev.parent);
return -EINVAL;
}
@@ -1317,7 +1315,6 @@ static int img_i2c_init(struct img_i2c *i2c)
/* Perform a synchronous sequence to reset the bus */
ret = img_i2c_reset_bus(i2c);
- pm_runtime_mark_last_busy(i2c->adap.dev.parent);
pm_runtime_put_autosuspend(i2c->adap.dev.parent);
return ret;
diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c
index 064bc83840a6..6d97998859b1 100644
--- a/drivers/i2c/busses/i2c-imx-lpi2c.c
+++ b/drivers/i2c/busses/i2c-imx-lpi2c.c
@@ -362,7 +362,6 @@ static int lpi2c_imx_master_enable(struct lpi2c_imx_struct *lpi2c_imx)
return 0;
rpm_put:
- pm_runtime_mark_last_busy(lpi2c_imx->adapter.dev.parent);
pm_runtime_put_autosuspend(lpi2c_imx->adapter.dev.parent);
return ret;
@@ -376,7 +375,6 @@ static int lpi2c_imx_master_disable(struct lpi2c_imx_struct *lpi2c_imx)
temp &= ~MCR_MEN;
writel(temp, lpi2c_imx->base + LPI2C_MCR);
- pm_runtime_mark_last_busy(lpi2c_imx->adapter.dev.parent);
pm_runtime_put_autosuspend(lpi2c_imx->adapter.dev.parent);
return 0;
@@ -1372,7 +1370,6 @@ static int lpi2c_imx_probe(struct platform_device *pdev)
if (ret)
goto rpm_disable;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
dev_info(&lpi2c_imx->adapter.dev, "LPI2C adapter registered\n");
@@ -1474,7 +1471,6 @@ static int lpi2c_suspend(struct device *dev)
static int lpi2c_resume(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 60f5c790ad7c..dcce882f3eba 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -1637,7 +1637,6 @@ static int i2c_imx_xfer(struct i2c_adapter *adapter,
result = i2c_imx_xfer_common(adapter, msgs, num, false);
- pm_runtime_mark_last_busy(i2c_imx->adapter.dev.parent);
pm_runtime_put_autosuspend(i2c_imx->adapter.dev.parent);
return result;
@@ -1822,7 +1821,6 @@ static int i2c_imx_probe(struct platform_device *pdev)
if (ret < 0)
goto clk_notifier_unregister;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
dev_dbg(&i2c_imx->adapter.dev, "claimed irq %d\n", irq);
@@ -1928,7 +1926,6 @@ static int i2c_imx_suspend(struct device *dev)
static int i2c_imx_resume(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index 8fc26a511320..1acba628e16c 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -766,7 +766,6 @@ mv64xxx_i2c_xfer_core(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
drv_data->num_msgs = 0;
drv_data->msgs = NULL;
- pm_runtime_mark_last_busy(&adap->dev);
pm_runtime_put_autosuspend(&adap->dev);
return ret;
diff --git a/drivers/i2c/busses/i2c-nvidia-gpu.c b/drivers/i2c/busses/i2c-nvidia-gpu.c
index 541d808d62d0..14c059b03945 100644
--- a/drivers/i2c/busses/i2c-nvidia-gpu.c
+++ b/drivers/i2c/busses/i2c-nvidia-gpu.c
@@ -216,7 +216,6 @@ static int gpu_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
if (status2 < 0)
dev_err(i2cd->dev, "i2c stop failed %d\n", status2);
}
- pm_runtime_mark_last_busy(i2cd->dev);
pm_runtime_put_autosuspend(i2cd->dev);
return status;
}
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 8b01df3cc8e9..d62f15d1acfe 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -828,7 +828,6 @@ omap_i2c_xfer_common(struct i2c_adapter *adap, struct i2c_msg msgs[], int num,
omap->set_mpu_wkup_lat(omap->dev, -1);
out:
- pm_runtime_mark_last_busy(omap->dev);
pm_runtime_put_autosuspend(omap->dev);
return r;
}
@@ -1508,7 +1507,6 @@ omap_i2c_probe(struct platform_device *pdev)
dev_info(omap->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr,
major, minor, omap->speed);
- pm_runtime_mark_last_busy(omap->dev);
pm_runtime_put_autosuspend(omap->dev);
return 0;
@@ -1602,7 +1600,6 @@ static int omap_i2c_suspend(struct device *dev)
static int omap_i2c_resume(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c
index a3afa11a71a1..e631d79baf14 100644
--- a/drivers/i2c/busses/i2c-qcom-cci.c
+++ b/drivers/i2c/busses/i2c-qcom-cci.c
@@ -450,7 +450,6 @@ static int cci_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
ret = num;
err:
- pm_runtime_mark_last_busy(cci->dev);
pm_runtime_put_autosuspend(cci->dev);
return ret;
@@ -508,7 +507,6 @@ static int __maybe_unused cci_suspend(struct device *dev)
static int __maybe_unused cci_resume(struct device *dev)
{
cci_resume_runtime(dev);
- pm_runtime_mark_last_busy(dev);
pm_request_autosuspend(dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c
index 13889f52b6f7..30921e80d30f 100644
--- a/drivers/i2c/busses/i2c-qcom-geni.c
+++ b/drivers/i2c/busses/i2c-qcom-geni.c
@@ -714,7 +714,6 @@ static int geni_i2c_xfer(struct i2c_adapter *adap,
else
ret = geni_i2c_fifo_xfer(gi2c, msgs, num);
- pm_runtime_mark_last_busy(gi2c->se.dev);
pm_runtime_put_autosuspend(gi2c->se.dev);
gi2c->cur = NULL;
gi2c->err = 0;
diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
index 6059f585843e..61207ca13890 100644
--- a/drivers/i2c/busses/i2c-qup.c
+++ b/drivers/i2c/busses/i2c-qup.c
@@ -1137,7 +1137,6 @@ static int qup_i2c_xfer(struct i2c_adapter *adap,
ret = num;
out:
- pm_runtime_mark_last_busy(qup->dev);
pm_runtime_put_autosuspend(qup->dev);
return ret;
@@ -1622,7 +1621,6 @@ static int qup_i2c_xfer_v2(struct i2c_adapter *adap,
if (ret == 0)
ret = num;
out:
- pm_runtime_mark_last_busy(qup->dev);
pm_runtime_put_autosuspend(qup->dev);
return ret;
@@ -1989,7 +1987,6 @@ static int qup_i2c_suspend(struct device *device)
static int qup_i2c_resume(struct device *device)
{
qup_i2c_pm_resume_runtime(device);
- pm_runtime_mark_last_busy(device);
pm_request_autosuspend(device);
return 0;
}
diff --git a/drivers/i2c/busses/i2c-riic.c b/drivers/i2c/busses/i2c-riic.c
index 9c164a4b9bb9..2b7893b6152e 100644
--- a/drivers/i2c/busses/i2c-riic.c
+++ b/drivers/i2c/busses/i2c-riic.c
@@ -206,7 +206,6 @@ static int riic_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
}
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return riic->err ?: num;
@@ -452,7 +451,6 @@ static int riic_init_hw(struct riic_dev *riic)
riic_clear_set_bit(riic, ICCR1_IICRST, 0, RIIC_ICCR1);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
}
diff --git a/drivers/i2c/busses/i2c-rzv2m.c b/drivers/i2c/busses/i2c-rzv2m.c
index b0e9c0b62429..238714850673 100644
--- a/drivers/i2c/busses/i2c-rzv2m.c
+++ b/drivers/i2c/busses/i2c-rzv2m.c
@@ -372,7 +372,6 @@ static int rzv2m_i2c_xfer(struct i2c_adapter *adap,
ret = num;
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/drivers/i2c/busses/i2c-sprd.c b/drivers/i2c/busses/i2c-sprd.c
index 56b2e5c5fb49..2eddddbc84a1 100644
--- a/drivers/i2c/busses/i2c-sprd.c
+++ b/drivers/i2c/busses/i2c-sprd.c
@@ -302,7 +302,6 @@ static int sprd_i2c_xfer(struct i2c_adapter *i2c_adap,
ret = sprd_i2c_handle_msg(i2c_adap, &msgs[im++], 1);
err_msg:
- pm_runtime_mark_last_busy(i2c_dev->dev);
pm_runtime_put_autosuspend(i2c_dev->dev);
return ret < 0 ? ret : im;
@@ -559,7 +558,6 @@ static int sprd_i2c_probe(struct platform_device *pdev)
goto err_rpm_put;
}
- pm_runtime_mark_last_busy(i2c_dev->dev);
pm_runtime_put_autosuspend(i2c_dev->dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-stm32f7.c b/drivers/i2c/busses/i2c-stm32f7.c
index ef15475a7ee1..36843ac5d024 100644
--- a/drivers/i2c/busses/i2c-stm32f7.c
+++ b/drivers/i2c/busses/i2c-stm32f7.c
@@ -1757,7 +1757,6 @@ static int stm32f7_i2c_xfer_core(struct i2c_adapter *i2c_adap,
}
pm_free:
- pm_runtime_mark_last_busy(i2c_dev->dev);
pm_runtime_put_autosuspend(i2c_dev->dev);
return (ret < 0) ? ret : num;
@@ -1866,7 +1865,6 @@ static int stm32f7_i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr,
}
pm_free:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -1973,7 +1971,6 @@ static int stm32f7_i2c_reg_slave(struct i2c_client *slave)
if (!stm32f7_i2c_is_slave_registered(i2c_dev))
stm32f7_i2c_enable_wakeup(i2c_dev, false);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -2011,7 +2008,6 @@ static int stm32f7_i2c_unreg_slave(struct i2c_client *slave)
stm32f7_i2c_enable_wakeup(i2c_dev, false);
}
- pm_runtime_mark_last_busy(i2c_dev->dev);
pm_runtime_put_autosuspend(i2c_dev->dev);
return 0;
@@ -2324,7 +2320,6 @@ static int stm32f7_i2c_probe(struct platform_device *pdev)
dev_info(i2c_dev->dev, "STM32F7 I2C-%d bus adapter\n", adap->nr);
- pm_runtime_mark_last_busy(i2c_dev->dev);
pm_runtime_put_autosuspend(i2c_dev->dev);
return 0;
diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c
index 607026c921d6..28015d77599d 100644
--- a/drivers/i2c/busses/i2c-xiic.c
+++ b/drivers/i2c/busses/i2c-xiic.c
@@ -1349,7 +1349,6 @@ static int xiic_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
mutex_unlock(&i2c->lock);
out:
- pm_runtime_mark_last_busy(i2c->dev);
pm_runtime_put_autosuspend(i2c->dev);
return err;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 24/80] i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (22 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 23/80] i2c: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-15 14:00 ` Frank Li
2025-07-04 7:54 ` [PATCH 25/80] i3c: dw: " Sakari Ailus
` (63 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Miquel Raynal, Frank Li, Alexandre Belloni; +Cc: linux-i3c, imx, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/i3c/master/svc-i3c-master.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
index 7e1a7cb94b43..4f68005c47d9 100644
--- a/drivers/i3c/master/svc-i3c-master.c
+++ b/drivers/i3c/master/svc-i3c-master.c
@@ -664,7 +664,6 @@ static int svc_i3c_master_set_speed(struct i3c_master_controller *m,
}
rpm_out:
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
@@ -779,7 +778,6 @@ static int svc_i3c_master_bus_init(struct i3c_master_controller *m)
goto rpm_out;
rpm_out:
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
@@ -801,7 +799,6 @@ static void svc_i3c_master_bus_cleanup(struct i3c_master_controller *m)
/* Disable master */
writel(0, master->regs + SVC_I3C_MCONFIG);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
}
@@ -1207,7 +1204,6 @@ static int svc_i3c_master_do_daa(struct i3c_master_controller *m)
dev_err(master->dev, "Cannot handle such a list of devices");
rpm_out:
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
@@ -1511,7 +1507,6 @@ static void svc_i3c_master_enqueue_xfer(struct svc_i3c_master *master,
}
spin_unlock_irqrestore(&master->xferqueue.lock, flags);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
}
@@ -1801,7 +1796,6 @@ static int svc_i3c_master_disable_ibi(struct i3c_dev_desc *dev)
ret = i3c_master_disec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
@@ -1834,7 +1828,6 @@ static int svc_i3c_master_disable_hotjoin(struct i3c_master_controller *m)
if (!master->enabled_events)
svc_i3c_master_disable_interrupts(master);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return 0;
@@ -1954,7 +1947,6 @@ static int svc_i3c_master_probe(struct platform_device *pdev)
if (ret)
goto rpm_disable;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 25/80] i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (23 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 24/80] i3c: master: svc: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 27/80] iio: accel: " Sakari Ailus
` (62 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Alexandre Belloni, Frank Li, Aniket, Jarkko Nikula,
Shyam Sundar S K, Wolfram Sang, Sakari Ailus, Billy Tsai
Cc: linux-i3c, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/i3c/master/dw-i3c-master.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/i3c/master/dw-i3c-master.c b/drivers/i3c/master/dw-i3c-master.c
index 611c22b72c15..37bee9c21736 100644
--- a/drivers/i3c/master/dw-i3c-master.c
+++ b/drivers/i3c/master/dw-i3c-master.c
@@ -699,7 +699,6 @@ static int dw_i3c_master_bus_init(struct i3c_master_controller *m)
dw_i3c_master_enable(master);
rpm_out:
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
}
@@ -829,7 +828,6 @@ static int dw_i3c_master_send_ccc_cmd(struct i3c_master_controller *m,
else
ret = dw_i3c_ccc_set(master, ccc);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
}
@@ -912,7 +910,6 @@ static int dw_i3c_master_daa(struct i3c_master_controller *m)
dw_i3c_master_free_xfer(xfer);
rpm_out:
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
}
@@ -998,7 +995,6 @@ static int dw_i3c_master_priv_xfers(struct i3c_dev_desc *dev,
ret = xfer->ret;
dw_i3c_master_free_xfer(xfer);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
}
@@ -1148,7 +1144,6 @@ static int dw_i3c_master_i2c_xfers(struct i2c_dev_desc *dev,
ret = xfer->ret;
dw_i3c_master_free_xfer(xfer);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return ret;
}
@@ -1316,7 +1311,6 @@ static int dw_i3c_master_disable_hotjoin(struct i3c_master_controller *m)
writel(readl(master->regs + DEVICE_CTRL) | DEV_CTRL_HOT_JOIN_NACK,
master->regs + DEVICE_CTRL);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return 0;
}
@@ -1342,7 +1336,6 @@ static int dw_i3c_master_enable_ibi(struct i3c_dev_desc *dev)
if (rc) {
dw_i3c_master_set_sir_enabled(master, dev, data->index, false);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
}
@@ -1362,7 +1355,6 @@ static int dw_i3c_master_disable_ibi(struct i3c_dev_desc *dev)
dw_i3c_master_set_sir_enabled(master, dev, data->index, false);
- pm_runtime_mark_last_busy(master->dev);
pm_runtime_put_autosuspend(master->dev);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 26/80] HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (25 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 27/80] iio: accel: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-07 5:11 ` Xu, Even
2025-07-04 7:54 ` [PATCH 28/80] iio: adc: " Sakari Ailus
` (60 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Even Xu, Xinpeng Sun, Jiri Kosina, Benjamin Tissoires,
Srinivas Pandruvada, Mark Pearson, Sakari Ailus, Wentao Guan,
Philipp Stanner
Cc: linux-input, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c | 2 --
drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c | 1 -
drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c | 2 --
drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c | 1 -
4 files changed, 6 deletions(-)
diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
index e944a6ccb776..599f12d3e657 100644
--- a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
+++ b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
@@ -328,7 +328,6 @@ static irqreturn_t quicki2c_irq_thread_handler(int irq, void *dev_id)
if (try_recover(qcdev))
qcdev->state = QUICKI2C_DISABLED;
- pm_runtime_mark_last_busy(qcdev->dev);
pm_runtime_put_autosuspend(qcdev->dev);
return IRQ_HANDLED;
@@ -711,7 +710,6 @@ static int quicki2c_probe(struct pci_dev *pdev, const struct pci_device_id *id)
/* Enable runtime power management */
pm_runtime_use_autosuspend(qcdev->dev);
pm_runtime_set_autosuspend_delay(qcdev->dev, DEFAULT_AUTO_SUSPEND_DELAY_MS);
- pm_runtime_mark_last_busy(qcdev->dev);
pm_runtime_put_noidle(qcdev->dev);
pm_runtime_put_autosuspend(qcdev->dev);
diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c b/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
index 5c3ec95bb3fd..834a537b6780 100644
--- a/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
+++ b/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
@@ -72,7 +72,6 @@ static int quicki2c_hid_raw_request(struct hid_device *hid,
break;
}
- pm_runtime_mark_last_busy(qcdev->dev);
pm_runtime_put_autosuspend(qcdev->dev);
return ret;
diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
index 5e5f179dd113..2b518d88645a 100644
--- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
+++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
@@ -335,7 +335,6 @@ static irqreturn_t quickspi_irq_thread_handler(int irq, void *dev_id)
if (try_recover(qsdev))
qsdev->state = QUICKSPI_DISABLED;
- pm_runtime_mark_last_busy(qsdev->dev);
pm_runtime_put_autosuspend(qsdev->dev);
return IRQ_HANDLED;
@@ -670,7 +669,6 @@ static int quickspi_probe(struct pci_dev *pdev,
/* Enable runtime power management */
pm_runtime_use_autosuspend(qsdev->dev);
pm_runtime_set_autosuspend_delay(qsdev->dev, DEFAULT_AUTO_SUSPEND_DELAY_MS);
- pm_runtime_mark_last_busy(qsdev->dev);
pm_runtime_put_noidle(qsdev->dev);
pm_runtime_put_autosuspend(qsdev->dev);
diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
index ad52e402c28a..82c72bfa2795 100644
--- a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
+++ b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
@@ -71,7 +71,6 @@ static int quickspi_hid_raw_request(struct hid_device *hid,
break;
}
- pm_runtime_mark_last_busy(qsdev->dev);
pm_runtime_put_autosuspend(qsdev->dev);
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 27/80] iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (24 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 25/80] i3c: dw: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 9:05 ` Jonathan Cameron
2025-07-10 6:46 ` Matti Vaittinen
2025-07-04 7:54 ` [PATCH 26/80] HID: intel-thc-hid: " Sakari Ailus
` (61 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Waqar Hameed, Sakari Ailus, Julien Stephan, Peter Zijlstra,
Bo Liu, Greg KH, Al Viro, Sean Nyekjaer, Marcelo Schmitt,
Rayyan Ansari, Francisco Henriques, Matti Vaittinen
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/accel/bmc150-accel-core.c | 1 -
drivers/iio/accel/bmi088-accel-core.c | 3 ---
drivers/iio/accel/fxls8962af-core.c | 1 -
drivers/iio/accel/kxcjk-1013.c | 1 -
drivers/iio/accel/kxsd9.c | 3 ---
drivers/iio/accel/mma8452.c | 1 -
drivers/iio/accel/mma9551_core.c | 1 -
drivers/iio/accel/msa311.c | 6 ------
8 files changed, 17 deletions(-)
diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
index be5fbb0c5d29..f45beae83f8b 100644
--- a/drivers/iio/accel/bmc150-accel-core.c
+++ b/drivers/iio/accel/bmc150-accel-core.c
@@ -335,7 +335,6 @@ static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on)
if (on) {
ret = pm_runtime_resume_and_get(dev);
} else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/accel/bmi088-accel-core.c b/drivers/iio/accel/bmi088-accel-core.c
index dea126f993c1..c7da90af0d2d 100644
--- a/drivers/iio/accel/bmi088-accel-core.c
+++ b/drivers/iio/accel/bmi088-accel-core.c
@@ -375,7 +375,6 @@ static int bmi088_accel_read_raw(struct iio_dev *indio_dev,
return -EINVAL;
out_read_raw_pm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -419,7 +418,6 @@ static int bmi088_accel_write_raw(struct iio_dev *indio_dev,
return ret;
ret = bmi088_accel_set_scale(data, val, val2);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
case IIO_CHAN_INFO_SAMP_FREQ:
@@ -428,7 +426,6 @@ static int bmi088_accel_write_raw(struct iio_dev *indio_dev,
return ret;
ret = bmi088_accel_set_sample_freq(data, val);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
default:
diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c
index 12598feaa693..8afd151c03ad 100644
--- a/drivers/iio/accel/fxls8962af-core.c
+++ b/drivers/iio/accel/fxls8962af-core.c
@@ -222,7 +222,6 @@ static int fxls8962af_power_off(struct fxls8962af_data *data)
struct device *dev = regmap_get_device(data->regmap);
int ret;
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
if (ret)
dev_err(dev, "failed to power off\n");
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index 6aefe8221296..44d770729186 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -637,7 +637,6 @@ static int kxcjk1013_set_power_state(struct kxcjk1013_data *data, bool on)
if (on)
ret = pm_runtime_resume_and_get(&data->client->dev);
else {
- pm_runtime_mark_last_busy(&data->client->dev);
ret = pm_runtime_put_autosuspend(&data->client->dev);
}
if (ret < 0) {
diff --git a/drivers/iio/accel/kxsd9.c b/drivers/iio/accel/kxsd9.c
index cfc31265cdd0..4717d80fc24a 100644
--- a/drivers/iio/accel/kxsd9.c
+++ b/drivers/iio/accel/kxsd9.c
@@ -151,7 +151,6 @@ static int kxsd9_write_raw(struct iio_dev *indio_dev,
ret = kxsd9_write_scale(indio_dev, val2);
}
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return ret;
@@ -199,7 +198,6 @@ static int kxsd9_read_raw(struct iio_dev *indio_dev,
}
error_ret:
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return ret;
@@ -250,7 +248,6 @@ static int kxsd9_buffer_postdisable(struct iio_dev *indio_dev)
{
struct kxsd9_state *st = iio_priv(indio_dev);
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return 0;
diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index aba444a980d9..5863478bab62 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -227,7 +227,6 @@ static int mma8452_set_runtime_pm_state(struct i2c_client *client, bool on)
if (on) {
ret = pm_runtime_resume_and_get(&client->dev);
} else {
- pm_runtime_mark_last_busy(&client->dev);
ret = pm_runtime_put_autosuspend(&client->dev);
}
diff --git a/drivers/iio/accel/mma9551_core.c b/drivers/iio/accel/mma9551_core.c
index 3e7d9b79ed0e..22768f43fd24 100644
--- a/drivers/iio/accel/mma9551_core.c
+++ b/drivers/iio/accel/mma9551_core.c
@@ -672,7 +672,6 @@ int mma9551_set_power_state(struct i2c_client *client, bool on)
if (on)
ret = pm_runtime_resume_and_get(&client->dev);
else {
- pm_runtime_mark_last_busy(&client->dev);
ret = pm_runtime_put_autosuspend(&client->dev);
}
diff --git a/drivers/iio/accel/msa311.c b/drivers/iio/accel/msa311.c
index 3e10225410e8..ec70a517c0a9 100644
--- a/drivers/iio/accel/msa311.c
+++ b/drivers/iio/accel/msa311.c
@@ -607,7 +607,6 @@ static int msa311_read_raw_data(struct iio_dev *indio_dev,
err = msa311_get_axis(msa311, chan, &axis);
mutex_unlock(&msa311->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
iio_device_release_direct(indio_dev);
@@ -741,7 +740,6 @@ static int msa311_write_scale(struct iio_dev *indio_dev, int val, int val2)
break;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (err)
@@ -781,7 +779,6 @@ static int msa311_write_samp_freq(struct iio_dev *indio_dev, int val, int val2)
break;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
iio_device_release_direct(indio_dev);
@@ -832,7 +829,6 @@ static int msa311_debugfs_reg_access(struct iio_dev *indio_dev,
mutex_unlock(&msa311->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (err)
@@ -855,7 +851,6 @@ static int msa311_buffer_postdisable(struct iio_dev *indio_dev)
struct msa311_priv *msa311 = iio_priv(indio_dev);
struct device *dev = msa311->dev;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -1231,7 +1226,6 @@ static int msa311_probe(struct i2c_client *i2c)
if (err)
return err;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
err = devm_iio_device_register(dev, indio_dev);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 28/80] iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (26 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 26/80] HID: intel-thc-hid: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:42 ` Linus Walleij
2025-07-04 9:09 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 29/80] iio: chemical: " Sakari Ailus
` (59 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Linus Walleij, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Eugen Hristev, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Cai Huoqing, Haibo Chen, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Marek Vasut,
Geert Uytterhoeven, Magnus Damm, Lad Prabhakar, Maxime Coquelin,
Alexandre Torgue, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Francesco Dolcini, João Paulo Gonçalves,
Jiri Slaby (SUSE), Fabrice Gasnier, Rob Herring (Arm),
Uwe Kleine-König, Sakari Ailus, Mike Looijmans,
Olivier Moysan, Christophe JAILLET, Julien Stephan
Cc: linux-arm-kernel, linux-iio, linux-kernel, imx, linux-renesas-soc,
linux-stm32, linux-sunxi
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/adc/ab8500-gpadc.c | 1 -
drivers/iio/adc/at91-sama5d2_adc.c | 10 ----------
drivers/iio/adc/imx8qxp-adc.c | 2 --
drivers/iio/adc/imx93_adc.c | 1 -
drivers/iio/adc/rcar-gyroadc.c | 1 -
drivers/iio/adc/rzg2l_adc.c | 3 ---
drivers/iio/adc/stm32-adc-core.c | 1 -
drivers/iio/adc/stm32-adc.c | 7 -------
drivers/iio/adc/sun4i-gpadc-iio.c | 2 --
drivers/iio/adc/ti-ads1015.c | 1 -
drivers/iio/adc/ti-ads1100.c | 1 -
drivers/iio/adc/ti-ads1119.c | 2 --
12 files changed, 32 deletions(-)
diff --git a/drivers/iio/adc/ab8500-gpadc.c b/drivers/iio/adc/ab8500-gpadc.c
index f3b057f92310..8eaa1dd6a89b 100644
--- a/drivers/iio/adc/ab8500-gpadc.c
+++ b/drivers/iio/adc/ab8500-gpadc.c
@@ -607,7 +607,6 @@ static int ab8500_gpadc_read(struct ab8500_gpadc *gpadc,
}
/* This eventually drops the regulator */
- pm_runtime_mark_last_busy(gpadc->dev);
pm_runtime_put_autosuspend(gpadc->dev);
return (high_data << 8) | low_data;
diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c
index c3450246730e..67846fefe21a 100644
--- a/drivers/iio/adc/at91-sama5d2_adc.c
+++ b/drivers/iio/adc/at91-sama5d2_adc.c
@@ -896,7 +896,6 @@ static int at91_adc_config_emr(struct at91_adc_state *st,
emr |= osr | AT91_SAMA5D2_TRACKX(trackx);
at91_adc_writel(st, EMR, emr);
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
st->oversampling_ratio = oversampling_ratio;
@@ -971,7 +970,6 @@ static int at91_adc_configure_touch(struct at91_adc_state *st, bool state)
AT91_SAMA5D2_IER_PEN | AT91_SAMA5D2_IER_NOPEN);
at91_adc_writel(st, TSMR, 0);
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return 0;
}
@@ -1143,7 +1141,6 @@ static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state)
at91_adc_configure_trigger_registers(st, state);
if (!state) {
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
}
@@ -1336,7 +1333,6 @@ static int at91_adc_buffer_prepare(struct iio_dev *indio_dev)
at91_adc_writel(st, IER, AT91_SAMA5D2_IER_DRDY);
pm_runtime_put:
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return ret;
}
@@ -1394,7 +1390,6 @@ static int at91_adc_buffer_postdisable(struct iio_dev *indio_dev)
if (st->dma_st.dma_chan)
dmaengine_terminate_sync(st->dma_st.dma_chan);
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return 0;
@@ -1603,7 +1598,6 @@ static void at91_adc_setup_samp_freq(struct iio_dev *indio_dev, unsigned freq,
mr |= AT91_SAMA5D2_MR_TRACKTIM(tracktim);
at91_adc_writel(st, MR, mr);
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
dev_dbg(&indio_dev->dev, "freq: %u, startup: %u, prescal: %u, tracktim=%u\n",
@@ -1809,7 +1803,6 @@ static int at91_adc_read_info_raw(struct iio_dev *indio_dev,
at91_adc_readl(st, LCDR);
pm_runtime_put:
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return ret;
}
@@ -1890,7 +1883,6 @@ static int at91_adc_read_temp(struct iio_dev *indio_dev,
restore_config:
/* Revert previous settings. */
at91_adc_temp_sensor_configure(st, false);
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
if (ret < 0)
return ret;
@@ -2465,7 +2457,6 @@ static int at91_adc_probe(struct platform_device *pdev)
dev_info(&pdev->dev, "version: %x\n",
readl_relaxed(st->base + st->soc_info.platform->layout->VERSION));
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return 0;
@@ -2567,7 +2558,6 @@ static int at91_adc_resume(struct device *dev)
at91_adc_configure_trigger_registers(st, true);
}
- pm_runtime_mark_last_busy(st->dev);
pm_runtime_put_autosuspend(st->dev);
return 0;
diff --git a/drivers/iio/adc/imx8qxp-adc.c b/drivers/iio/adc/imx8qxp-adc.c
index be13a6ed7e00..d9da24efdcbe 100644
--- a/drivers/iio/adc/imx8qxp-adc.c
+++ b/drivers/iio/adc/imx8qxp-adc.c
@@ -229,7 +229,6 @@ static int imx8qxp_adc_read_raw(struct iio_dev *indio_dev,
ret = wait_for_completion_interruptible_timeout(&adc->completion,
IMX8QXP_ADC_TIMEOUT);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
if (ret == 0) {
@@ -295,7 +294,6 @@ static int imx8qxp_adc_reg_access(struct iio_dev *indio_dev, unsigned int reg,
*readval = readl(adc->regs + reg);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
return 0;
diff --git a/drivers/iio/adc/imx93_adc.c b/drivers/iio/adc/imx93_adc.c
index 7feaafd2316f..bb5bd22269b9 100644
--- a/drivers/iio/adc/imx93_adc.c
+++ b/drivers/iio/adc/imx93_adc.c
@@ -248,7 +248,6 @@ static int imx93_adc_read_raw(struct iio_dev *indio_dev,
mutex_lock(&adc->lock);
ret = imx93_adc_read_channel_conversion(adc, chan->channel, val);
mutex_unlock(&adc->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
if (ret < 0)
return ret;
diff --git a/drivers/iio/adc/rcar-gyroadc.c b/drivers/iio/adc/rcar-gyroadc.c
index cc326f21d398..467c6a9213ab 100644
--- a/drivers/iio/adc/rcar-gyroadc.c
+++ b/drivers/iio/adc/rcar-gyroadc.c
@@ -166,7 +166,6 @@ static int rcar_gyroadc_set_power(struct rcar_gyroadc *priv, bool on)
if (on) {
return pm_runtime_resume_and_get(dev);
} else {
- pm_runtime_mark_last_busy(dev);
return pm_runtime_put_autosuspend(dev);
}
}
diff --git a/drivers/iio/adc/rzg2l_adc.c b/drivers/iio/adc/rzg2l_adc.c
index 9674d48074c9..29264a410def 100644
--- a/drivers/iio/adc/rzg2l_adc.c
+++ b/drivers/iio/adc/rzg2l_adc.c
@@ -249,7 +249,6 @@ static int rzg2l_adc_conversion(struct iio_dev *indio_dev, struct rzg2l_adc *adc
rzg2l_adc_start_stop(adc, false);
rpm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -411,7 +410,6 @@ static int rzg2l_adc_hw_init(struct device *dev, struct rzg2l_adc *adc)
rzg2l_adc_writel(adc, RZG2L_ADM(3), reg);
exit_hw_init:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -591,7 +589,6 @@ static int rzg2l_adc_resume(struct device *dev)
rpm_restore:
if (adc->was_rpm_active) {
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
resets_restore:
diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c
index dea166c53369..b42fee4a4695 100644
--- a/drivers/iio/adc/stm32-adc-core.c
+++ b/drivers/iio/adc/stm32-adc-core.c
@@ -795,7 +795,6 @@ static int stm32_adc_probe(struct platform_device *pdev)
goto err_irq_remove;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c
index 588c69e175f5..54147d0afc0f 100644
--- a/drivers/iio/adc/stm32-adc.c
+++ b/drivers/iio/adc/stm32-adc.c
@@ -1528,7 +1528,6 @@ static int stm32_adc_single_conv(struct iio_dev *indio_dev,
stm32_adc_conv_irq_disable(adc);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1564,7 +1563,6 @@ static int stm32_adc_write_raw(struct iio_dev *indio_dev,
adc->cfg->set_ovs(indio_dev, idx);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
adc->ovs_idx = idx;
@@ -1759,7 +1757,6 @@ static int stm32_adc_update_scan_mode(struct iio_dev *indio_dev,
adc->num_conv = bitmap_weight(scan_mask, iio_get_masklength(indio_dev));
ret = stm32_adc_conf_scan_seq(indio_dev, scan_mask);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1808,7 +1805,6 @@ static int stm32_adc_debugfs_reg_access(struct iio_dev *indio_dev,
else
*readval = stm32_adc_readl(adc, reg);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -1954,7 +1950,6 @@ static int stm32_adc_buffer_postenable(struct iio_dev *indio_dev)
err_clr_trig:
stm32_adc_set_trig(indio_dev, NULL);
err_pm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1977,7 +1972,6 @@ static int stm32_adc_buffer_predisable(struct iio_dev *indio_dev)
if (stm32_adc_set_trig(indio_dev, NULL))
dev_err(&indio_dev->dev, "Can't clear trigger\n");
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -2614,7 +2608,6 @@ static int stm32_adc_probe(struct platform_device *pdev)
goto err_hw_stop;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (IS_ENABLED(CONFIG_DEBUG_FS))
diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c
index 6b8d6bee1873..a439f4864111 100644
--- a/drivers/iio/adc/sun4i-gpadc-iio.c
+++ b/drivers/iio/adc/sun4i-gpadc-iio.c
@@ -245,7 +245,6 @@ static int sun4i_gpadc_read(struct iio_dev *indio_dev, int channel, int *val,
*val = info->temp_data;
ret = 0;
- pm_runtime_mark_last_busy(indio_dev->dev.parent);
err:
pm_runtime_put_autosuspend(indio_dev->dev.parent);
@@ -272,7 +271,6 @@ static int sun4i_gpadc_temp_read(struct iio_dev *indio_dev, int *val)
regmap_read(info->regmap, SUN4I_GPADC_TEMP_DATA, val);
- pm_runtime_mark_last_busy(indio_dev->dev.parent);
pm_runtime_put_autosuspend(indio_dev->dev.parent);
return 0;
diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c
index 48549d617e5f..d3920fcb131b 100644
--- a/drivers/iio/adc/ti-ads1015.c
+++ b/drivers/iio/adc/ti-ads1015.c
@@ -377,7 +377,6 @@ static int ads1015_set_power_state(struct ads1015_data *data, bool on)
if (on) {
ret = pm_runtime_resume_and_get(dev);
} else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/adc/ti-ads1100.c b/drivers/iio/adc/ti-ads1100.c
index b0790e300b18..aa8946063c7d 100644
--- a/drivers/iio/adc/ti-ads1100.c
+++ b/drivers/iio/adc/ti-ads1100.c
@@ -105,7 +105,6 @@ static int ads1100_get_adc_result(struct ads1100_data *data, int chan, int *val)
ret = i2c_master_recv(data->client, (char *)&buffer, sizeof(buffer));
- pm_runtime_mark_last_busy(&data->client->dev);
pm_runtime_put_autosuspend(&data->client->dev);
if (ret < 0) {
diff --git a/drivers/iio/adc/ti-ads1119.c b/drivers/iio/adc/ti-ads1119.c
index d2f86e1ec656..9f576cfe63f9 100644
--- a/drivers/iio/adc/ti-ads1119.c
+++ b/drivers/iio/adc/ti-ads1119.c
@@ -291,7 +291,6 @@ static int ads1119_single_conversion(struct ads1119_state *st,
*val = sign_extend32(sample, chan->scan_type.realbits - 1);
ret = IIO_VAL_INT;
pdown:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -470,7 +469,6 @@ static int ads1119_triggered_buffer_postdisable(struct iio_dev *indio_dev)
if (ret)
return ret;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 29/80] iio: chemical: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (27 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 28/80] iio: adc: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 30/80] iio: common: " Sakari Ailus
` (58 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Sakari Ailus, Waqar Hameed, Marcelo Schmitt, Vasileios Amoiridis
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/chemical/atlas-sensor.c | 2 --
drivers/iio/chemical/bme680_core.c | 3 ---
2 files changed, 5 deletions(-)
diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c
index 1daaa36f87a9..8bbba85af699 100644
--- a/drivers/iio/chemical/atlas-sensor.c
+++ b/drivers/iio/chemical/atlas-sensor.c
@@ -425,7 +425,6 @@ static int atlas_buffer_predisable(struct iio_dev *indio_dev)
if (ret)
return ret;
- pm_runtime_mark_last_busy(&data->client->dev);
ret = pm_runtime_put_autosuspend(&data->client->dev);
if (ret)
return ret;
@@ -491,7 +490,6 @@ static int atlas_read_measurement(struct atlas_data *data, int reg, __be32 *val)
ret = regmap_bulk_read(data->regmap, reg, val, sizeof(*val));
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c
index 61d446fd456c..70f81c4a96ba 100644
--- a/drivers/iio/chemical/bme680_core.c
+++ b/drivers/iio/chemical/bme680_core.c
@@ -950,7 +950,6 @@ static int bme680_read_raw(struct iio_dev *indio_dev,
return ret;
ret = __bme680_read_raw(indio_dev, chan, val, val2, mask);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1021,7 +1020,6 @@ static int bme680_write_raw(struct iio_dev *indio_dev,
return ret;
ret = __bme680_write_raw(indio_dev, chan, val, val2, mask);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1140,7 +1138,6 @@ static int bme680_buffer_postdisable(struct iio_dev *indio_dev)
struct bme680_data *data = iio_priv(indio_dev);
struct device *dev = regmap_get_device(data->regmap);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 30/80] iio: common: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (28 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 29/80] iio: chemical: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 32/80] iio: gyro: " Sakari Ailus
` (57 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Greg KH, Sakari Ailus, Peter Zijlstra, Christophe JAILLET,
Srinivas Pandruvada
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
index 48193937275b..5540e2d28f4a 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
@@ -163,7 +163,6 @@ int hid_sensor_power_state(struct hid_sensor_common *st, bool state)
ret = pm_runtime_resume_and_get(&st->pdev->dev);
} else {
atomic_dec(&st->user_requested_state);
- pm_runtime_mark_last_busy(&st->pdev->dev);
pm_runtime_use_autosuspend(&st->pdev->dev);
ret = pm_runtime_put_autosuspend(&st->pdev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 31/80] iio: dac: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (30 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 32/80] iio: gyro: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 33/80] iio: imu: " Sakari Ailus
` (55 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Maxime Coquelin, Alexandre Torgue, Sakari Ailus,
Uwe Kleine-König
Cc: linux-iio, linux-stm32, linux-arm-kernel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/dac/stm32-dac.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/iio/dac/stm32-dac.c b/drivers/iio/dac/stm32-dac.c
index 344388338d9b..7d47c7dddbf8 100644
--- a/drivers/iio/dac/stm32-dac.c
+++ b/drivers/iio/dac/stm32-dac.c
@@ -96,7 +96,6 @@ static int stm32_dac_set_enable_state(struct iio_dev *indio_dev, int ch,
udelay(1);
if (!enable) {
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -104,7 +103,6 @@ static int stm32_dac_set_enable_state(struct iio_dev *indio_dev, int ch,
err_put_pm:
if (enable) {
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -349,7 +347,6 @@ static int stm32_dac_probe(struct platform_device *pdev)
if (ret)
goto err_pm_put;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 32/80] iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (29 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 30/80] iio: common: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:41 ` Linus Walleij
2025-07-04 15:25 ` Rui Miguel Silva
2025-07-04 7:54 ` [PATCH 31/80] iio: dac: " Sakari Ailus
` (56 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rui Miguel Silva, Linus Walleij, Julien Stephan, Hans de Goede,
Waqar Hameed, Sakari Ailus
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/gyro/bmg160_core.c | 1 -
drivers/iio/gyro/fxas21002c_core.c | 2 --
drivers/iio/gyro/mpu3050-core.c | 3 ---
drivers/iio/gyro/mpu3050-i2c.c | 1 -
4 files changed, 7 deletions(-)
diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c
index 781d3e96645f..4dbe3c0cc5eb 100644
--- a/drivers/iio/gyro/bmg160_core.c
+++ b/drivers/iio/gyro/bmg160_core.c
@@ -310,7 +310,6 @@ static int bmg160_set_power_state(struct bmg160_data *data, bool on)
if (on)
ret = pm_runtime_get_sync(dev);
else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c
index 754c8a564ba4..a88670207cec 100644
--- a/drivers/iio/gyro/fxas21002c_core.c
+++ b/drivers/iio/gyro/fxas21002c_core.c
@@ -373,8 +373,6 @@ static int fxas21002c_pm_put(struct fxas21002c_data *data)
{
struct device *dev = regmap_get_device(data->regmap);
- pm_runtime_mark_last_busy(dev);
-
return pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-core.c
index 16553948c5c3..67ae7d1012bc 100644
--- a/drivers/iio/gyro/mpu3050-core.c
+++ b/drivers/iio/gyro/mpu3050-core.c
@@ -370,7 +370,6 @@ static int mpu3050_read_raw(struct iio_dev *indio_dev,
out_read_raw_unlock:
mutex_unlock(&mpu3050->lock);
- pm_runtime_mark_last_busy(mpu3050->dev);
pm_runtime_put_autosuspend(mpu3050->dev);
return ret;
@@ -662,7 +661,6 @@ static int mpu3050_buffer_postdisable(struct iio_dev *indio_dev)
{
struct mpu3050 *mpu3050 = iio_priv(indio_dev);
- pm_runtime_mark_last_busy(mpu3050->dev);
pm_runtime_put_autosuspend(mpu3050->dev);
return 0;
@@ -976,7 +974,6 @@ static int mpu3050_drdy_trigger_set_state(struct iio_trigger *trig,
if (ret)
dev_err(mpu3050->dev, "error resetting FIFO\n");
- pm_runtime_mark_last_busy(mpu3050->dev);
pm_runtime_put_autosuspend(mpu3050->dev);
mpu3050->hw_irq_trigger = false;
diff --git a/drivers/iio/gyro/mpu3050-i2c.c b/drivers/iio/gyro/mpu3050-i2c.c
index 8e284f47242c..092878f2c886 100644
--- a/drivers/iio/gyro/mpu3050-i2c.c
+++ b/drivers/iio/gyro/mpu3050-i2c.c
@@ -27,7 +27,6 @@ static int mpu3050_i2c_bypass_deselect(struct i2c_mux_core *mux, u32 chan_id)
{
struct mpu3050 *mpu3050 = i2c_mux_priv(mux);
- pm_runtime_mark_last_busy(mpu3050->dev);
pm_runtime_put_autosuspend(mpu3050->dev);
return 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 33/80] iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (31 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 31/80] iio: dac: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 10:26 ` Waqar Hameed
2025-07-04 7:54 ` [PATCH 34/80] iio: light: " Sakari Ailus
` (54 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jean-Baptiste Maneyrol, Jonathan Cameron, David Lechner,
Nuno Sá, Andy Shevchenko, Waqar Hameed, Javier Carrasco
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 5 -----
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 1 -
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 5 -----
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c | 1 -
drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 6 ------
drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 1 -
drivers/iio/imu/kmx61.c | 1 -
7 files changed, 20 deletions(-)
diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
index 8a6f09e68f49..11cab815e1e2 100644
--- a/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
+++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c
@@ -289,7 +289,6 @@ static int inv_icm42600_accel_read_sensor(struct iio_dev *indio_dev,
ret = -EINVAL;
exit:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -367,7 +366,6 @@ static int inv_icm42600_accel_write_scale(struct iio_dev *indio_dev,
ret = inv_icm42600_set_accel_conf(st, &conf, NULL);
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -471,7 +469,6 @@ static int inv_icm42600_accel_write_odr(struct iio_dev *indio_dev,
out_unlock:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -523,7 +520,6 @@ static int inv_icm42600_accel_read_offset(struct inv_icm42600_state *st,
memcpy(data, st->buffer, sizeof(data));
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (ret)
return ret;
@@ -661,7 +657,6 @@ static int inv_icm42600_accel_write_offset(struct inv_icm42600_state *st,
out_unlock:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c
index 00b9db52ca78..8c36ad87f328 100644
--- a/drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c
+++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c
@@ -439,7 +439,6 @@ static int inv_icm42600_buffer_postdisable(struct iio_dev *indio_dev)
if (sleep)
msleep(sleep);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
index 9ba6f13628e6..8a7cc9127631 100644
--- a/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
+++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c
@@ -184,7 +184,6 @@ static int inv_icm42600_gyro_read_sensor(struct inv_icm42600_state *st,
ret = -EINVAL;
exit:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -283,7 +282,6 @@ static int inv_icm42600_gyro_write_scale(struct iio_dev *indio_dev,
ret = inv_icm42600_set_gyro_conf(st, &conf, NULL);
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -378,7 +376,6 @@ static int inv_icm42600_gyro_write_odr(struct iio_dev *indio_dev,
out_unlock:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -430,7 +427,6 @@ static int inv_icm42600_gyro_read_offset(struct inv_icm42600_state *st,
memcpy(data, st->buffer, sizeof(data));
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (ret)
return ret;
@@ -567,7 +563,6 @@ static int inv_icm42600_gyro_write_offset(struct inv_icm42600_state *st,
out_unlock:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
diff --git a/drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c b/drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c
index 8b15afca498c..684007376178 100644
--- a/drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c
+++ b/drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c
@@ -37,7 +37,6 @@ static int inv_icm42600_temp_read(struct inv_icm42600_state *st, s16 *temp)
exit:
mutex_unlock(&st->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
index b8656c02354a..c351d0e4f810 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c
@@ -735,7 +735,6 @@ static int inv_mpu6050_read_channel_data(struct iio_dev *indio_dev,
break;
}
- pm_runtime_mark_last_busy(pdev);
pm_runtime_put_autosuspend(pdev);
return ret;
@@ -938,7 +937,6 @@ static int inv_mpu6050_write_raw(struct iio_dev *indio_dev,
break;
}
- pm_runtime_mark_last_busy(pdev);
pm_runtime_put_autosuspend(pdev);
error_write_raw_unlock:
mutex_unlock(&st->lock);
@@ -1146,14 +1144,12 @@ static int inv_mpu6050_enable_wom(struct inv_mpu6050_state *st, bool en)
st->chip_config.wom_en = false;
}
- pm_runtime_mark_last_busy(pdev);
pm_runtime_put_autosuspend(pdev);
}
return result;
error_suspend:
- pm_runtime_mark_last_busy(pdev);
pm_runtime_put_autosuspend(pdev);
return result;
}
@@ -1249,7 +1245,6 @@ static int inv_mpu6050_write_event_value(struct iio_dev *indio_dev,
value = (u64)val * 1000000ULL + (u64)val2;
result = inv_mpu6050_set_wom_threshold(st, value, INV_MPU6050_FREQ_DIVIDER(st));
- pm_runtime_mark_last_busy(pdev);
pm_runtime_put_autosuspend(pdev);
return result;
@@ -1357,7 +1352,6 @@ inv_mpu6050_fifo_rate_store(struct device *dev, struct device_attribute *attr,
if (result)
goto fifo_rate_fail_power_off;
- pm_runtime_mark_last_busy(pdev);
fifo_rate_fail_power_off:
pm_runtime_put_autosuspend(pdev);
fifo_rate_fail_unlock:
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
index 5b1088cc3704..10a473342075 100644
--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
+++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
@@ -194,7 +194,6 @@ static int inv_mpu6050_set_enable(struct iio_dev *indio_dev, bool enable)
result = inv_mpu6050_prepare_fifo(st, false);
if (result)
goto error_power_off;
- pm_runtime_mark_last_busy(pdev);
pm_runtime_put_autosuspend(pdev);
}
diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
index 55c82891e08c..42016d56c852 100644
--- a/drivers/iio/imu/kmx61.c
+++ b/drivers/iio/imu/kmx61.c
@@ -750,7 +750,6 @@ static int kmx61_set_power_state(struct kmx61_data *data, bool on, u8 device)
if (on) {
ret = pm_runtime_resume_and_get(&data->client->dev);
} else {
- pm_runtime_mark_last_busy(&data->client->dev);
ret = pm_runtime_put_autosuspend(&data->client->dev);
}
if (ret < 0) {
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 34/80] iio: light: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (32 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 33/80] iio: imu: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:42 ` Linus Walleij
2025-07-06 10:31 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 35/80] iio: magnetometer: " Sakari Ailus
` (53 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Subhajit Ghosh, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Linus Walleij, Julien Stephan, Sakari Ailus,
Waqar Hameed, Abhash Jha, chuguangqing, Shreeya Patel,
Marek Vasut, Al Viro, Vasileios Amoiridis, Per-Daniel Olsson,
Javier Carrasco
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/light/apds9306.c | 2 --
drivers/iio/light/apds9960.c | 1 -
drivers/iio/light/bh1780.c | 1 -
drivers/iio/light/gp2ap002.c | 2 --
drivers/iio/light/isl29028.c | 1 -
drivers/iio/light/ltrf216a.c | 1 -
drivers/iio/light/pa12203001.c | 1 -
drivers/iio/light/rpr0521.c | 1 -
drivers/iio/light/tsl2583.c | 1 -
drivers/iio/light/tsl2591.c | 2 --
drivers/iio/light/us5182d.c | 1 -
drivers/iio/light/vcnl4000.c | 1 -
drivers/iio/light/vcnl4035.c | 1 -
13 files changed, 16 deletions(-)
diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c
index f676da245aa7..5916cabd0755 100644
--- a/drivers/iio/light/apds9306.c
+++ b/drivers/iio/light/apds9306.c
@@ -537,7 +537,6 @@ static int apds9306_read_data(struct apds9306_data *data, int *val, int reg)
*val = get_unaligned_le24(&buff);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return 0;
@@ -1121,7 +1120,6 @@ static int apds9306_write_event_config(struct iio_dev *indio_dev,
if (ret)
return ret;
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return 0;
diff --git a/drivers/iio/light/apds9960.c b/drivers/iio/light/apds9960.c
index b92d0fce5aec..79b202c59a0f 100644
--- a/drivers/iio/light/apds9960.c
+++ b/drivers/iio/light/apds9960.c
@@ -495,7 +495,6 @@ static int apds9960_set_power_state(struct apds9960_data *data, bool on)
usleep_range(data->als_adc_int_us,
APDS9960_MAX_INT_TIME_IN_US);
} else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/light/bh1780.c b/drivers/iio/light/bh1780.c
index c7c877d2fe67..5d3c6d5276ba 100644
--- a/drivers/iio/light/bh1780.c
+++ b/drivers/iio/light/bh1780.c
@@ -111,7 +111,6 @@ static int bh1780_read_raw(struct iio_dev *indio_dev,
value = bh1780_read_word(bh1780, BH1780_REG_DLOW);
if (value < 0)
return value;
- pm_runtime_mark_last_busy(&bh1780->client->dev);
pm_runtime_put_autosuspend(&bh1780->client->dev);
*val = value;
diff --git a/drivers/iio/light/gp2ap002.c b/drivers/iio/light/gp2ap002.c
index 42859e5b1089..a0d8a58f2704 100644
--- a/drivers/iio/light/gp2ap002.c
+++ b/drivers/iio/light/gp2ap002.c
@@ -271,7 +271,6 @@ static int gp2ap002_read_raw(struct iio_dev *indio_dev,
}
out:
- pm_runtime_mark_last_busy(gp2ap002->dev);
pm_runtime_put_autosuspend(gp2ap002->dev);
return ret;
@@ -353,7 +352,6 @@ static int gp2ap002_write_event_config(struct iio_dev *indio_dev,
pm_runtime_get_sync(gp2ap002->dev);
gp2ap002->enabled = true;
} else {
- pm_runtime_mark_last_busy(gp2ap002->dev);
pm_runtime_put_autosuspend(gp2ap002->dev);
gp2ap002->enabled = false;
}
diff --git a/drivers/iio/light/isl29028.c b/drivers/iio/light/isl29028.c
index 0e4284823d44..5ff20d423def 100644
--- a/drivers/iio/light/isl29028.c
+++ b/drivers/iio/light/isl29028.c
@@ -341,7 +341,6 @@ static int isl29028_set_pm_runtime_busy(struct isl29028_chip *chip, bool on)
if (on) {
ret = pm_runtime_resume_and_get(dev);
} else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/light/ltrf216a.c b/drivers/iio/light/ltrf216a.c
index 61f57a82b872..5f27f754fe1c 100644
--- a/drivers/iio/light/ltrf216a.c
+++ b/drivers/iio/light/ltrf216a.c
@@ -208,7 +208,6 @@ static int ltrf216a_set_power_state(struct ltrf216a_data *data, bool on)
return ret;
}
} else {
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/light/pa12203001.c b/drivers/iio/light/pa12203001.c
index 8885852bef22..93823421f42f 100644
--- a/drivers/iio/light/pa12203001.c
+++ b/drivers/iio/light/pa12203001.c
@@ -189,7 +189,6 @@ static int pa12203001_set_power_state(struct pa12203001_data *data, bool on,
ret = pm_runtime_resume_and_get(&data->client->dev);
} else {
- pm_runtime_mark_last_busy(&data->client->dev);
ret = pm_runtime_put_autosuspend(&data->client->dev);
}
diff --git a/drivers/iio/light/rpr0521.c b/drivers/iio/light/rpr0521.c
index c50183f07240..15e2cca22e4d 100644
--- a/drivers/iio/light/rpr0521.c
+++ b/drivers/iio/light/rpr0521.c
@@ -361,7 +361,6 @@ static int rpr0521_set_power_state(struct rpr0521_data *data, bool on,
if (on) {
ret = pm_runtime_resume_and_get(&data->client->dev);
} else {
- pm_runtime_mark_last_busy(&data->client->dev);
ret = pm_runtime_put_autosuspend(&data->client->dev);
}
if (ret < 0) {
diff --git a/drivers/iio/light/tsl2583.c b/drivers/iio/light/tsl2583.c
index fc3b0c4226be..d3a4923e5adc 100644
--- a/drivers/iio/light/tsl2583.c
+++ b/drivers/iio/light/tsl2583.c
@@ -646,7 +646,6 @@ static int tsl2583_set_pm_runtime_busy(struct tsl2583_chip *chip, bool on)
if (on) {
ret = pm_runtime_resume_and_get(&chip->client->dev);
} else {
- pm_runtime_mark_last_busy(&chip->client->dev);
ret = pm_runtime_put_autosuspend(&chip->client->dev);
}
diff --git a/drivers/iio/light/tsl2591.c b/drivers/iio/light/tsl2591.c
index 08476f193a44..c5557867ea43 100644
--- a/drivers/iio/light/tsl2591.c
+++ b/drivers/iio/light/tsl2591.c
@@ -772,7 +772,6 @@ static int tsl2591_read_raw(struct iio_dev *indio_dev,
err_unlock:
mutex_unlock(&chip->als_mutex);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
@@ -995,7 +994,6 @@ static int tsl2591_write_event_config(struct iio_dev *indio_dev,
pm_runtime_get_sync(&client->dev);
} else if (!state && chip->events_enabled) {
chip->events_enabled = false;
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
}
diff --git a/drivers/iio/light/us5182d.c b/drivers/iio/light/us5182d.c
index 61a0957317a1..8f0f85e98f3a 100644
--- a/drivers/iio/light/us5182d.c
+++ b/drivers/iio/light/us5182d.c
@@ -369,7 +369,6 @@ static int us5182d_set_power_state(struct us5182d_data *data, bool on)
if (on) {
ret = pm_runtime_resume_and_get(&data->client->dev);
} else {
- pm_runtime_mark_last_busy(&data->client->dev);
ret = pm_runtime_put_autosuspend(&data->client->dev);
}
diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
index 90e7d4421abf..39e2cf20038a 100644
--- a/drivers/iio/light/vcnl4000.c
+++ b/drivers/iio/light/vcnl4000.c
@@ -581,7 +581,6 @@ static int vcnl4000_set_pm_runtime_state(struct vcnl4000_data *data, bool on)
if (on) {
ret = pm_runtime_resume_and_get(dev);
} else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c
index 01bc99564f98..079fb49bf73b 100644
--- a/drivers/iio/light/vcnl4035.c
+++ b/drivers/iio/light/vcnl4035.c
@@ -147,7 +147,6 @@ static int vcnl4035_set_pm_runtime_state(struct vcnl4035_data *data, bool on)
if (on) {
ret = pm_runtime_resume_and_get(dev);
} else {
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 35/80] iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (33 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 34/80] iio: light: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:43 ` Linus Walleij
2025-07-06 10:28 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 36/80] iio: pressure: " Sakari Ailus
` (52 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Linus Walleij, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Gerald Loacker, Barnabás Czémán,
Krzysztof Kozlowski, Sakari Ailus, Neil Armstrong, Waqar Hameed,
Hans de Goede, Peter Zijlstra, Jakob Hauser, David Laight,
Al Viro
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/magnetometer/ak8974.c | 2 --
drivers/iio/magnetometer/ak8975.c | 1 -
drivers/iio/magnetometer/als31300.c | 2 --
drivers/iio/magnetometer/bmc150_magn.c | 1 -
drivers/iio/magnetometer/tmag5273.c | 2 --
drivers/iio/magnetometer/yamaha-yas530.c | 2 --
6 files changed, 10 deletions(-)
diff --git a/drivers/iio/magnetometer/ak8974.c b/drivers/iio/magnetometer/ak8974.c
index 947fe8a475f2..68ece700c7ce 100644
--- a/drivers/iio/magnetometer/ak8974.c
+++ b/drivers/iio/magnetometer/ak8974.c
@@ -583,7 +583,6 @@ static int ak8974_measure_channel(struct ak8974 *ak8974, unsigned long address,
*val = (s16)le16_to_cpu(hw_values[address]);
out_unlock:
mutex_unlock(&ak8974->lock);
- pm_runtime_mark_last_busy(&ak8974->i2c->dev);
pm_runtime_put_autosuspend(&ak8974->i2c->dev);
return ret;
@@ -678,7 +677,6 @@ static void ak8974_fill_buffer(struct iio_dev *indio_dev)
out_unlock:
mutex_unlock(&ak8974->lock);
- pm_runtime_mark_last_busy(&ak8974->i2c->dev);
pm_runtime_put_autosuspend(&ak8974->i2c->dev);
}
diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
index a1e92b2abffd..3fd0171e5d69 100644
--- a/drivers/iio/magnetometer/ak8975.c
+++ b/drivers/iio/magnetometer/ak8975.c
@@ -775,7 +775,6 @@ static int ak8975_read_axis(struct iio_dev *indio_dev, int index, int *val)
mutex_unlock(&data->lock);
- pm_runtime_mark_last_busy(&data->client->dev);
pm_runtime_put_autosuspend(&data->client->dev);
/* Swap bytes and convert to valid range. */
diff --git a/drivers/iio/magnetometer/als31300.c b/drivers/iio/magnetometer/als31300.c
index f72af829715f..03d060995ba6 100644
--- a/drivers/iio/magnetometer/als31300.c
+++ b/drivers/iio/magnetometer/als31300.c
@@ -140,7 +140,6 @@ static int als31300_get_measure(struct als31300_data *data,
*z = ALS31300_DATA_Z_GET(buf);
out:
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
@@ -401,7 +400,6 @@ static int als31300_probe(struct i2c_client *i2c)
pm_runtime_set_autosuspend_delay(dev, 200);
pm_runtime_use_autosuspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
ret = devm_iio_device_register(dev, indio_dev);
diff --git a/drivers/iio/magnetometer/bmc150_magn.c b/drivers/iio/magnetometer/bmc150_magn.c
index 761daead5ada..53d860e640a9 100644
--- a/drivers/iio/magnetometer/bmc150_magn.c
+++ b/drivers/iio/magnetometer/bmc150_magn.c
@@ -263,7 +263,6 @@ static int bmc150_magn_set_power_state(struct bmc150_magn_data *data, bool on)
if (on) {
ret = pm_runtime_resume_and_get(data->dev);
} else {
- pm_runtime_mark_last_busy(data->dev);
ret = pm_runtime_put_autosuspend(data->dev);
}
diff --git a/drivers/iio/magnetometer/tmag5273.c b/drivers/iio/magnetometer/tmag5273.c
index 2ca5c26f0091..f9ef501249e3 100644
--- a/drivers/iio/magnetometer/tmag5273.c
+++ b/drivers/iio/magnetometer/tmag5273.c
@@ -295,7 +295,6 @@ static int tmag5273_read_raw(struct iio_dev *indio_dev,
ret = tmag5273_get_measure(data, &t, &x, &y, &z, &angle, &magnitude);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
if (ret)
@@ -668,7 +667,6 @@ static int tmag5273_probe(struct i2c_client *i2c)
indio_dev->channels = tmag5273_channels;
indio_dev->num_channels = ARRAY_SIZE(tmag5273_channels);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
ret = devm_iio_device_register(dev, indio_dev);
diff --git a/drivers/iio/magnetometer/yamaha-yas530.c b/drivers/iio/magnetometer/yamaha-yas530.c
index 340607111d9a..d49e37edcbed 100644
--- a/drivers/iio/magnetometer/yamaha-yas530.c
+++ b/drivers/iio/magnetometer/yamaha-yas530.c
@@ -623,7 +623,6 @@ static int yas5xx_read_raw(struct iio_dev *indio_dev,
case IIO_CHAN_INFO_RAW:
pm_runtime_get_sync(yas5xx->dev);
ret = ci->get_measure(yas5xx, &t, &x, &y, &z);
- pm_runtime_mark_last_busy(yas5xx->dev);
pm_runtime_put_autosuspend(yas5xx->dev);
if (ret)
return ret;
@@ -664,7 +663,6 @@ static void yas5xx_fill_buffer(struct iio_dev *indio_dev)
pm_runtime_get_sync(yas5xx->dev);
ret = ci->get_measure(yas5xx, &t, &x, &y, &z);
- pm_runtime_mark_last_busy(yas5xx->dev);
pm_runtime_put_autosuspend(yas5xx->dev);
if (ret) {
dev_err(yas5xx->dev, "error refilling buffer\n");
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 36/80] iio: pressure: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (34 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 35/80] iio: magnetometer: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 37/80] iio: proximity: " Sakari Ailus
` (51 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Vasileios Amoiridis, Sakari Ailus, Marcelo Schmitt,
Jean-Baptiste Maneyrol, Peter Zijlstra, Greg KH, Matti Vaittinen,
Al Viro, Javier Carrasco
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/pressure/bmp280-core.c | 5 -----
drivers/iio/pressure/icp10100.c | 1 -
drivers/iio/pressure/mpl115.c | 2 --
drivers/iio/pressure/zpa2326.c | 2 --
4 files changed, 10 deletions(-)
diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c
index 74505c9ec1a0..b66f3b905055 100644
--- a/drivers/iio/pressure/bmp280-core.c
+++ b/drivers/iio/pressure/bmp280-core.c
@@ -752,7 +752,6 @@ static int bmp280_read_raw(struct iio_dev *indio_dev,
pm_runtime_get_sync(data->dev);
ret = bmp280_read_raw_impl(indio_dev, chan, val, val2, mask);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
@@ -927,7 +926,6 @@ static int bmp280_write_raw(struct iio_dev *indio_dev,
pm_runtime_get_sync(data->dev);
ret = bmp280_write_raw_impl(indio_dev, chan, val, val2, mask);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
@@ -2255,7 +2253,6 @@ static int bmp580_nvmem_read(void *priv, unsigned int offset, void *val,
pm_runtime_get_sync(data->dev);
ret = bmp580_nvmem_read_impl(priv, offset, val, bytes);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
@@ -2330,7 +2327,6 @@ static int bmp580_nvmem_write(void *priv, unsigned int offset, void *val,
pm_runtime_get_sync(data->dev);
ret = bmp580_nvmem_write_impl(priv, offset, val, bytes);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
@@ -3120,7 +3116,6 @@ static int bmp280_buffer_postdisable(struct iio_dev *indio_dev)
{
struct bmp280_data *data = iio_priv(indio_dev);
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return 0;
diff --git a/drivers/iio/pressure/icp10100.c b/drivers/iio/pressure/icp10100.c
index 1951c1cc84cf..3d83d0098a57 100644
--- a/drivers/iio/pressure/icp10100.c
+++ b/drivers/iio/pressure/icp10100.c
@@ -265,7 +265,6 @@ static int icp10100_get_measures(struct icp10100_state *st,
(be16_to_cpu(measures[1]) >> 8);
*temperature = be16_to_cpu(measures[2]);
- pm_runtime_mark_last_busy(&st->client->dev);
error_measure:
pm_runtime_put_autosuspend(&st->client->dev);
return ret;
diff --git a/drivers/iio/pressure/mpl115.c b/drivers/iio/pressure/mpl115.c
index 71beb28b7f2c..830a5065c008 100644
--- a/drivers/iio/pressure/mpl115.c
+++ b/drivers/iio/pressure/mpl115.c
@@ -108,7 +108,6 @@ static int mpl115_read_raw(struct iio_dev *indio_dev,
ret = mpl115_comp_pressure(data, val, val2);
if (ret < 0)
return ret;
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return IIO_VAL_INT_PLUS_MICRO;
@@ -118,7 +117,6 @@ static int mpl115_read_raw(struct iio_dev *indio_dev,
ret = mpl115_read_temp(data);
if (ret < 0)
return ret;
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
*val = ret >> 6;
diff --git a/drivers/iio/pressure/zpa2326.c b/drivers/iio/pressure/zpa2326.c
index 6eef37c0952d..4923a558a26a 100644
--- a/drivers/iio/pressure/zpa2326.c
+++ b/drivers/iio/pressure/zpa2326.c
@@ -697,7 +697,6 @@ static void zpa2326_suspend(struct iio_dev *indio_dev)
zpa2326_sleep(indio_dev);
- pm_runtime_mark_last_busy(parent);
pm_runtime_put_autosuspend(parent);
}
@@ -708,7 +707,6 @@ static void zpa2326_init_runtime(struct device *parent)
pm_runtime_enable(parent);
pm_runtime_set_autosuspend_delay(parent, 1000);
pm_runtime_use_autosuspend(parent);
- pm_runtime_mark_last_busy(parent);
pm_runtime_put_autosuspend(parent);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 37/80] iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (35 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 36/80] iio: pressure: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-06 10:27 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 38/80] iio: temperature: " Sakari Ailus
` (50 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Andreas Klinger, Marcelo Schmitt, Sakari Ailus
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 1 -
drivers/iio/proximity/srf04.c | 1 -
2 files changed, 2 deletions(-)
diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
index 1deaf70e92ce..d53a596128f5 100644
--- a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
+++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
@@ -191,7 +191,6 @@ static int lidar_get_measurement(struct lidar_data *data, u16 *reg)
}
ret = -EIO;
}
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
diff --git a/drivers/iio/proximity/srf04.c b/drivers/iio/proximity/srf04.c
index b059bac1078b..f2e2c638a2b6 100644
--- a/drivers/iio/proximity/srf04.c
+++ b/drivers/iio/proximity/srf04.c
@@ -118,7 +118,6 @@ static int srf04_read(struct srf04_data *data)
gpiod_set_value(data->gpiod_trig, 0);
if (data->gpiod_power) {
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 39/80] Input: omap4-keypad: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (37 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 38/80] iio: temperature: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 40/80] Input: cs40l50: " Sakari Ailus
` (48 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Dmitry Torokhov, Sakari Ailus, Uwe Kleine-König
Cc: linux-input, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/input/keyboard/omap4-keypad.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c
index bffe89c0717a..e783244d0c91 100644
--- a/drivers/input/keyboard/omap4-keypad.c
+++ b/drivers/input/keyboard/omap4-keypad.c
@@ -193,7 +193,6 @@ static irqreturn_t omap4_keypad_irq_thread_fn(int irq, void *dev_id)
kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,
kbd_read_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS));
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return IRQ_HANDLED;
@@ -231,7 +230,6 @@ static int omap4_keypad_open(struct input_dev *input)
enable_irq(keypad_data->irq);
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return error;
@@ -265,7 +263,6 @@ static void omap4_keypad_close(struct input_dev *input)
enable_irq(keypad_data->irq);
clk_disable_unprepare(keypad_data->fck);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -404,7 +401,6 @@ static int omap4_keypad_probe(struct platform_device *pdev)
omap4_keypad_stop(keypad_data);
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (error)
return error;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 38/80] iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (36 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 37/80] iio: proximity: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 16:00 ` Crt Mori
2025-07-04 7:54 ` [PATCH 39/80] Input: omap4-keypad: " Sakari Ailus
` (49 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Crt Mori, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko
Cc: linux-iio, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/iio/temperature/mlx90614.c | 1 -
drivers/iio/temperature/mlx90632.c | 1 -
drivers/iio/temperature/mlx90635.c | 1 -
3 files changed, 3 deletions(-)
diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c
index 740018d4b3df..8a44a00bfd5e 100644
--- a/drivers/iio/temperature/mlx90614.c
+++ b/drivers/iio/temperature/mlx90614.c
@@ -225,7 +225,6 @@ static void mlx90614_power_put(struct mlx90614_data *data)
if (!data->wakeup_gpio)
return;
- pm_runtime_mark_last_busy(&data->client->dev);
pm_runtime_put_autosuspend(&data->client->dev);
}
#else
diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
index ae4ea587e7f9..bf689f6143f3 100644
--- a/drivers/iio/temperature/mlx90632.c
+++ b/drivers/iio/temperature/mlx90632.c
@@ -1043,7 +1043,6 @@ static int mlx90632_read_raw(struct iio_dev *indio_dev,
}
mlx90632_read_raw_pm:
- pm_runtime_mark_last_busy(&data->client->dev);
pm_runtime_put_autosuspend(&data->client->dev);
return ret;
}
diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
index f7f88498ba0e..80d0eb7d2294 100644
--- a/drivers/iio/temperature/mlx90635.c
+++ b/drivers/iio/temperature/mlx90635.c
@@ -749,7 +749,6 @@ static int mlx90635_read_raw(struct iio_dev *indio_dev,
}
mlx90635_read_raw_pm:
- pm_runtime_mark_last_busy(&data->client->dev);
pm_runtime_put_autosuspend(&data->client->dev);
return ret;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 40/80] Input: cs40l50: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (38 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 39/80] Input: omap4-keypad: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
` (47 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: James Ogletree, Fred Treven, Ben Bright, Dmitry Torokhov
Cc: patches, linux-input, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/input/misc/cs40l50-vibra.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/input/misc/cs40l50-vibra.c b/drivers/input/misc/cs40l50-vibra.c
index dce3b0ec8cf3..c651a84a6335 100644
--- a/drivers/input/misc/cs40l50-vibra.c
+++ b/drivers/input/misc/cs40l50-vibra.c
@@ -306,7 +306,6 @@ static void cs40l50_add_worker(struct work_struct *work)
list_add(&effect->list, &vib->effect_head);
}
err_pm:
- pm_runtime_mark_last_busy(vib->dev);
pm_runtime_put_autosuspend(vib->dev);
err_exit:
work_data->error = error;
@@ -366,7 +365,6 @@ static void cs40l50_start_worker(struct work_struct *work)
dev_err(vib->dev, "Effect to play not found\n");
}
- pm_runtime_mark_last_busy(vib->dev);
pm_runtime_put_autosuspend(vib->dev);
err_free:
kfree(work_data);
@@ -382,7 +380,6 @@ static void cs40l50_stop_worker(struct work_struct *work)
vib->dsp.write(vib->dev, vib->regmap, vib->dsp.stop_cmd);
- pm_runtime_mark_last_busy(vib->dev);
pm_runtime_put_autosuspend(vib->dev);
kfree(work_data);
@@ -454,7 +451,6 @@ static void cs40l50_erase_worker(struct work_struct *work)
list_del(&erase_effect->list);
kfree(erase_effect);
err_pm:
- pm_runtime_mark_last_busy(vib->dev);
pm_runtime_put_autosuspend(vib->dev);
err_exit:
work_data->error = error;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (39 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 40/80] Input: cs40l50: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:56 ` Laurent Pinchart
` (6 more replies)
2025-07-04 7:54 ` [PATCH 42/80] mfd: " Sakari Ailus
` (46 subsequent siblings)
87 siblings, 7 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Tommaso Merciai, Martin Hecht, Mauro Carvalho Chehab,
Sakari Ailus, Sebastian Reichel, Alain Volmat, Dave Stevenson,
Kieran Bingham, Umang Jain, Manivannan Sadhasivam,
Laurent Pinchart, Michael Riesch, Mikhail Rudenko,
Steve Longerbeam, Jacopo Mondi, Nicholas Roth, Benjamin Mugnier,
Sylvain Petinot, Paul Elder, Matt Ranostay, Nas Chung,
Jackson Lee, Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Raspberry Pi Kernel Maintenance,
Florian Fainelli, Broadcom internal kernel review list,
Nicolas Dufresne, Benjamin Gaignard, Philipp Zabel, Sean Young,
Hans Verkuil, Matthias Fend, Marco Felsch, Tomi Valkeinen,
Ricardo Ribalda
Cc: linux-media, linux-kernel, linux-tegra, linux-arm-msm,
linux-rpi-kernel, linux-arm-kernel, linux-rockchip
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/media/i2c/alvium-csi2.c | 1 -
drivers/media/i2c/ccs/ccs-core.c | 4 ----
drivers/media/i2c/dw9768.c | 1 -
drivers/media/i2c/gc0308.c | 3 ---
drivers/media/i2c/gc2145.c | 3 ---
drivers/media/i2c/imx219.c | 2 --
drivers/media/i2c/imx283.c | 3 ---
drivers/media/i2c/imx290.c | 3 ---
drivers/media/i2c/imx296.c | 1 -
drivers/media/i2c/imx415.c | 1 -
drivers/media/i2c/mt9m114.c | 6 ------
drivers/media/i2c/ov4689.c | 3 ---
drivers/media/i2c/ov5640.c | 4 ----
drivers/media/i2c/ov5645.c | 3 ---
drivers/media/i2c/ov64a40.c | 4 ----
drivers/media/i2c/ov8858.c | 2 --
drivers/media/i2c/st-mipid02.c | 2 --
drivers/media/i2c/tc358746.c | 5 -----
drivers/media/i2c/thp7312.c | 4 ----
drivers/media/i2c/vd55g1.c | 4 ----
drivers/media/i2c/vd56g3.c | 4 ----
drivers/media/i2c/video-i2c.c | 4 ----
drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 4 ----
drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c | 5 -----
drivers/media/platform/nvidia/tegra-vde/h264.c | 2 --
drivers/media/platform/qcom/iris/iris_hfi_queue.c | 1 -
drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 2 --
drivers/media/platform/verisilicon/hantro_drv.c | 1 -
drivers/media/rc/gpio-ir-recv.c | 1 -
29 files changed, 83 deletions(-)
diff --git a/drivers/media/i2c/alvium-csi2.c b/drivers/media/i2c/alvium-csi2.c
index 05b708bd0a64..1f088acecf36 100644
--- a/drivers/media/i2c/alvium-csi2.c
+++ b/drivers/media/i2c/alvium-csi2.c
@@ -1841,7 +1841,6 @@ static int alvium_s_stream(struct v4l2_subdev *sd, int enable)
} else {
alvium_set_stream_mipi(alvium, enable);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
}
diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index 487bcabb4a19..3316639b695e 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -788,7 +788,6 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
}
if (pm_status > 0) {
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
}
@@ -1914,7 +1913,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
if (!enable) {
ccs_stop_streaming(sensor);
sensor->streaming = false;
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return 0;
@@ -1929,7 +1927,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
rval = ccs_start_streaming(sensor);
if (rval < 0) {
sensor->streaming = false;
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
}
@@ -2677,7 +2674,6 @@ nvm_show(struct device *dev, struct device_attribute *attr, char *buf)
return -ENODEV;
}
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
/*
diff --git a/drivers/media/i2c/dw9768.c b/drivers/media/i2c/dw9768.c
index 3a4d100b9199..d434721ba8ed 100644
--- a/drivers/media/i2c/dw9768.c
+++ b/drivers/media/i2c/dw9768.c
@@ -374,7 +374,6 @@ static int dw9768_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
static int dw9768_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
{
- pm_runtime_mark_last_busy(sd->dev);
pm_runtime_put_autosuspend(sd->dev);
return 0;
diff --git a/drivers/media/i2c/gc0308.c b/drivers/media/i2c/gc0308.c
index 069f42785b3c..cbcda0e18ff1 100644
--- a/drivers/media/i2c/gc0308.c
+++ b/drivers/media/i2c/gc0308.c
@@ -974,7 +974,6 @@ static int gc0308_s_ctrl(struct v4l2_ctrl *ctrl)
if (ret)
dev_err(gc0308->dev, "failed to set control: %d\n", ret);
- pm_runtime_mark_last_busy(gc0308->dev);
pm_runtime_put_autosuspend(gc0308->dev);
return ret;
@@ -1157,14 +1156,12 @@ static int gc0308_start_stream(struct gc0308 *gc0308)
return 0;
disable_pm:
- pm_runtime_mark_last_busy(gc0308->dev);
pm_runtime_put_autosuspend(gc0308->dev);
return ret;
}
static int gc0308_stop_stream(struct gc0308 *gc0308)
{
- pm_runtime_mark_last_busy(gc0308->dev);
pm_runtime_put_autosuspend(gc0308->dev);
return 0;
}
diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c
index ba02161d46e7..559a851669aa 100644
--- a/drivers/media/i2c/gc2145.c
+++ b/drivers/media/i2c/gc2145.c
@@ -963,7 +963,6 @@ static int gc2145_enable_streams(struct v4l2_subdev *sd,
return 0;
err_rpm_put:
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
}
@@ -985,7 +984,6 @@ static int gc2145_disable_streams(struct v4l2_subdev *sd,
if (ret)
dev_err(&client->dev, "%s failed to write regs\n", __func__);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
@@ -1193,7 +1191,6 @@ static int gc2145_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
index 3b4f68543342..3faf48f34af4 100644
--- a/drivers/media/i2c/imx219.c
+++ b/drivers/media/i2c/imx219.c
@@ -771,7 +771,6 @@ static int imx219_enable_streams(struct v4l2_subdev *sd,
return 0;
err_rpm_put:
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
}
@@ -793,7 +792,6 @@ static int imx219_disable_streams(struct v4l2_subdev *sd,
__v4l2_ctrl_grab(imx219->vflip, false);
__v4l2_ctrl_grab(imx219->hflip, false);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
index da618c8cbadc..67e8bb432d10 100644
--- a/drivers/media/i2c/imx283.c
+++ b/drivers/media/i2c/imx283.c
@@ -1143,7 +1143,6 @@ static int imx283_enable_streams(struct v4l2_subdev *sd,
return 0;
err_rpm_put:
- pm_runtime_mark_last_busy(imx283->dev);
pm_runtime_put_autosuspend(imx283->dev);
return ret;
@@ -1163,7 +1162,6 @@ static int imx283_disable_streams(struct v4l2_subdev *sd,
if (ret)
dev_err(imx283->dev, "Failed to stop stream\n");
- pm_runtime_mark_last_busy(imx283->dev);
pm_runtime_put_autosuspend(imx283->dev);
return ret;
@@ -1558,7 +1556,6 @@ static int imx283_probe(struct i2c_client *client)
* Decrease the PM usage count. The device will get suspended after the
* autosuspend delay, turning the power off.
*/
- pm_runtime_mark_last_busy(imx283->dev);
pm_runtime_put_autosuspend(imx283->dev);
return 0;
diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
index fbf7eba3d71d..970a8d89a3e7 100644
--- a/drivers/media/i2c/imx290.c
+++ b/drivers/media/i2c/imx290.c
@@ -869,7 +869,6 @@ static int imx290_set_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(imx290->dev);
pm_runtime_put_autosuspend(imx290->dev);
return ret;
@@ -1099,7 +1098,6 @@ static int imx290_set_stream(struct v4l2_subdev *sd, int enable)
}
} else {
imx290_stop_streaming(imx290);
- pm_runtime_mark_last_busy(imx290->dev);
pm_runtime_put_autosuspend(imx290->dev);
}
@@ -1295,7 +1293,6 @@ static int imx290_subdev_init(struct imx290 *imx290)
*/
v4l2_i2c_subdev_init(&imx290->sd, client, &imx290_subdev_ops);
imx290->sd.dev = imx290->dev;
- pm_runtime_mark_last_busy(imx290->dev);
pm_runtime_put_autosuspend(imx290->dev);
imx290->sd.internal_ops = &imx290_internal_ops;
diff --git a/drivers/media/i2c/imx296.c b/drivers/media/i2c/imx296.c
index f3bec16b527c..61116f4e3f76 100644
--- a/drivers/media/i2c/imx296.c
+++ b/drivers/media/i2c/imx296.c
@@ -604,7 +604,6 @@ static int imx296_s_stream(struct v4l2_subdev *sd, int enable)
if (!enable) {
ret = imx296_stream_off(sensor);
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
goto unlock;
diff --git a/drivers/media/i2c/imx415.c b/drivers/media/i2c/imx415.c
index 278e743646ea..276bf4d6f39d 100644
--- a/drivers/media/i2c/imx415.c
+++ b/drivers/media/i2c/imx415.c
@@ -952,7 +952,6 @@ static int imx415_s_stream(struct v4l2_subdev *sd, int enable)
if (!enable) {
ret = imx415_stream_off(sensor);
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
goto unlock;
diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c
index 3f540ca40f3c..aa3fd6c6c76c 100644
--- a/drivers/media/i2c/mt9m114.c
+++ b/drivers/media/i2c/mt9m114.c
@@ -974,7 +974,6 @@ static int mt9m114_start_streaming(struct mt9m114 *sensor,
return 0;
error:
- pm_runtime_mark_last_busy(&sensor->client->dev);
pm_runtime_put_autosuspend(&sensor->client->dev);
return ret;
@@ -988,7 +987,6 @@ static int mt9m114_stop_streaming(struct mt9m114 *sensor)
ret = mt9m114_set_state(sensor, MT9M114_SYS_STATE_ENTER_SUSPEND);
- pm_runtime_mark_last_busy(&sensor->client->dev);
pm_runtime_put_autosuspend(&sensor->client->dev);
return ret;
@@ -1046,7 +1044,6 @@ static int mt9m114_pa_g_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(&sensor->client->dev);
pm_runtime_put_autosuspend(&sensor->client->dev);
return ret;
@@ -1113,7 +1110,6 @@ static int mt9m114_pa_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(&sensor->client->dev);
pm_runtime_put_autosuspend(&sensor->client->dev);
return ret;
@@ -1565,7 +1561,6 @@ static int mt9m114_ifp_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(&sensor->client->dev);
pm_runtime_put_autosuspend(&sensor->client->dev);
return ret;
@@ -2472,7 +2467,6 @@ static int mt9m114_probe(struct i2c_client *client)
* Decrease the PM usage count. The device will get suspended after the
* autosuspend delay, turning the power off.
*/
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/media/i2c/ov4689.c b/drivers/media/i2c/ov4689.c
index 1c3a449f9354..7d740ad3926f 100644
--- a/drivers/media/i2c/ov4689.c
+++ b/drivers/media/i2c/ov4689.c
@@ -497,7 +497,6 @@ static int ov4689_s_stream(struct v4l2_subdev *sd, int on)
} else {
cci_write(ov4689->regmap, OV4689_REG_CTRL_MODE,
OV4689_MODE_SW_STANDBY, NULL);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -702,7 +701,6 @@ static int ov4689_set_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -999,7 +997,6 @@ static int ov4689_probe(struct i2c_client *client)
goto err_clean_subdev_pm;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
index 0dae0438aa80..84198613381d 100644
--- a/drivers/media/i2c/ov5640.c
+++ b/drivers/media/i2c/ov5640.c
@@ -3341,7 +3341,6 @@ static int ov5640_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
return 0;
@@ -3417,7 +3416,6 @@ static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
return ret;
@@ -3754,7 +3752,6 @@ static int ov5640_s_stream(struct v4l2_subdev *sd, int enable)
mutex_unlock(&sensor->lock);
if (!enable || ret) {
- pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
}
@@ -3965,7 +3962,6 @@ static int ov5640_probe(struct i2c_client *client)
pm_runtime_set_autosuspend_delay(dev, 1000);
pm_runtime_use_autosuspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
index 004d0ee5c3f5..58c846a44376 100644
--- a/drivers/media/i2c/ov5645.c
+++ b/drivers/media/i2c/ov5645.c
@@ -808,7 +808,6 @@ static int ov5645_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(ov5645->dev);
pm_runtime_put_autosuspend(ov5645->dev);
return ret;
@@ -979,7 +978,6 @@ static int ov5645_disable_streams(struct v4l2_subdev *sd,
OV5645_SYSTEM_CTRL0_STOP);
rpm_put:
- pm_runtime_mark_last_busy(ov5645->dev);
pm_runtime_put_autosuspend(ov5645->dev);
return ret;
@@ -1196,7 +1194,6 @@ static int ov5645_probe(struct i2c_client *client)
pm_runtime_set_autosuspend_delay(dev, 1000);
pm_runtime_use_autosuspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/media/i2c/ov64a40.c b/drivers/media/i2c/ov64a40.c
index a5da4fe47e0b..15912ecb8d26 100644
--- a/drivers/media/i2c/ov64a40.c
+++ b/drivers/media/i2c/ov64a40.c
@@ -2990,7 +2990,6 @@ static int ov64a40_start_streaming(struct ov64a40 *ov64a40,
return 0;
error_power_off:
- pm_runtime_mark_last_busy(ov64a40->dev);
pm_runtime_put_autosuspend(ov64a40->dev);
return ret;
@@ -3000,7 +2999,6 @@ static int ov64a40_stop_streaming(struct ov64a40 *ov64a40,
struct v4l2_subdev_state *state)
{
cci_update_bits(ov64a40->cci, OV64A40_REG_SMIA, BIT(0), 0, NULL);
- pm_runtime_mark_last_busy(ov64a40->dev);
pm_runtime_put_autosuspend(ov64a40->dev);
__v4l2_ctrl_grab(ov64a40->link_freq, false);
@@ -3330,7 +3328,6 @@ static int ov64a40_set_ctrl(struct v4l2_ctrl *ctrl)
}
if (pm_status > 0) {
- pm_runtime_mark_last_busy(ov64a40->dev);
pm_runtime_put_autosuspend(ov64a40->dev);
}
@@ -3622,7 +3619,6 @@ static int ov64a40_probe(struct i2c_client *client)
goto error_subdev_cleanup;
}
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return 0;
diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
index 95f9ae794846..6b7193eaea1f 100644
--- a/drivers/media/i2c/ov8858.c
+++ b/drivers/media/i2c/ov8858.c
@@ -1391,7 +1391,6 @@ static int ov8858_s_stream(struct v4l2_subdev *sd, int on)
}
} else {
ov8858_stop_stream(ov8858);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
}
@@ -1945,7 +1944,6 @@ static int ov8858_probe(struct i2c_client *client)
goto err_power_off;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
index f4568e87f018..41ae25b0911f 100644
--- a/drivers/media/i2c/st-mipid02.c
+++ b/drivers/media/i2c/st-mipid02.c
@@ -465,7 +465,6 @@ static int mipid02_disable_streams(struct v4l2_subdev *sd,
if (ret)
goto error;
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
error:
@@ -542,7 +541,6 @@ static int mipid02_enable_streams(struct v4l2_subdev *sd,
cci_write(bridge->regmap, MIPID02_DATA_LANE0_REG1, 0, &ret);
cci_write(bridge->regmap, MIPID02_DATA_LANE1_REG1, 0, &ret);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return ret;
}
diff --git a/drivers/media/i2c/tc358746.c b/drivers/media/i2c/tc358746.c
index 143aa1359aba..bcfc274cf891 100644
--- a/drivers/media/i2c/tc358746.c
+++ b/drivers/media/i2c/tc358746.c
@@ -816,7 +816,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
return 0;
err_out:
- pm_runtime_mark_last_busy(sd->dev);
pm_runtime_put_sync_autosuspend(sd->dev);
return err;
@@ -838,7 +837,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
if (err)
return err;
- pm_runtime_mark_last_busy(sd->dev);
pm_runtime_put_sync_autosuspend(sd->dev);
return v4l2_subdev_call(src, video, s_stream, 0);
@@ -1016,7 +1014,6 @@ tc358746_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
err = tc358746_read(tc358746, reg->reg, &val);
reg->val = val;
- pm_runtime_mark_last_busy(sd->dev);
pm_runtime_put_sync_autosuspend(sd->dev);
return err;
@@ -1032,7 +1029,6 @@ tc358746_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg)
tc358746_write(tc358746, (u32)reg->reg, (u32)reg->val);
- pm_runtime_mark_last_busy(sd->dev);
pm_runtime_put_sync_autosuspend(sd->dev);
return 0;
@@ -1395,7 +1391,6 @@ static int tc358746_init_hw(struct tc358746 *tc358746)
}
err = tc358746_read(tc358746, CHIPID_REG, &val);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
if (err)
return -ENODEV;
diff --git a/drivers/media/i2c/thp7312.c b/drivers/media/i2c/thp7312.c
index 8852c56431fe..775cfba188d8 100644
--- a/drivers/media/i2c/thp7312.c
+++ b/drivers/media/i2c/thp7312.c
@@ -808,7 +808,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
if (!enable) {
thp7312_stream_enable(thp7312, false);
- pm_runtime_mark_last_busy(thp7312->dev);
pm_runtime_put_autosuspend(thp7312->dev);
v4l2_subdev_unlock_state(sd_state);
@@ -839,7 +838,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
goto finish_unlock;
finish_pm:
- pm_runtime_mark_last_busy(thp7312->dev);
pm_runtime_put_autosuspend(thp7312->dev);
finish_unlock:
v4l2_subdev_unlock_state(sd_state);
@@ -1147,7 +1145,6 @@ static int thp7312_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(thp7312->dev);
pm_runtime_put_autosuspend(thp7312->dev);
return ret;
@@ -2183,7 +2180,6 @@ static int thp7312_probe(struct i2c_client *client)
* Decrease the PM usage count. The device will get suspended after the
* autosuspend delay, turning the power off.
*/
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
dev_info(dev, "THP7312 firmware version %02u.%02u\n",
diff --git a/drivers/media/i2c/vd55g1.c b/drivers/media/i2c/vd55g1.c
index c0754fd03b1d..7c39183dd44b 100644
--- a/drivers/media/i2c/vd55g1.c
+++ b/drivers/media/i2c/vd55g1.c
@@ -1104,7 +1104,6 @@ static int vd55g1_disable_streams(struct v4l2_subdev *sd,
vd55g1_grab_ctrls(sensor, false);
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
return ret;
@@ -1338,7 +1337,6 @@ static int vd55g1_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
return ret;
@@ -1433,7 +1431,6 @@ static int vd55g1_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
return ret;
@@ -1895,7 +1892,6 @@ static int vd55g1_probe(struct i2c_client *client)
pm_runtime_enable(dev);
pm_runtime_set_autosuspend_delay(dev, 4000);
pm_runtime_use_autosuspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
ret = vd55g1_subdev_init(sensor);
diff --git a/drivers/media/i2c/vd56g3.c b/drivers/media/i2c/vd56g3.c
index 5d951ad0b478..d66e21ba4498 100644
--- a/drivers/media/i2c/vd56g3.c
+++ b/drivers/media/i2c/vd56g3.c
@@ -493,7 +493,6 @@ static int vd56g3_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
return ret;
@@ -577,7 +576,6 @@ static int vd56g3_s_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
return ret;
@@ -1021,7 +1019,6 @@ static int vd56g3_disable_streams(struct v4l2_subdev *sd,
__v4l2_ctrl_grab(sensor->vflip_ctrl, false);
__v4l2_ctrl_grab(sensor->patgen_ctrl, false);
- pm_runtime_mark_last_busy(sensor->dev);
pm_runtime_put_autosuspend(sensor->dev);
return ret;
@@ -1527,7 +1524,6 @@ static int vd56g3_probe(struct i2c_client *client)
}
/* Sensor could now be powered off (after the autosuspend delay) */
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
dev_dbg(dev, "Successfully probe %s sensor\n",
diff --git a/drivers/media/i2c/video-i2c.c b/drivers/media/i2c/video-i2c.c
index 0dd991d70d53..1eee2d4f5b40 100644
--- a/drivers/media/i2c/video-i2c.c
+++ b/drivers/media/i2c/video-i2c.c
@@ -288,7 +288,6 @@ static int amg88xx_read(struct device *dev, enum hwmon_sensor_types type,
return tmp;
tmp = regmap_bulk_read(data->regmap, AMG88XX_REG_TTHL, &buf, 2);
- pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
if (tmp)
return tmp;
@@ -527,7 +526,6 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
return 0;
error_rpm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
error_del_list:
video_i2c_del_list(vq, VB2_BUF_STATE_QUEUED);
@@ -544,7 +542,6 @@ static void stop_streaming(struct vb2_queue *vq)
kthread_stop(data->kthread_vid_cap);
data->kthread_vid_cap = NULL;
- pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
video_i2c_del_list(vq, VB2_BUF_STATE_ERROR);
@@ -853,7 +850,6 @@ static int video_i2c_probe(struct i2c_client *client)
if (ret < 0)
goto error_pm_disable;
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_autosuspend(&client->dev);
return 0;
diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
index fd71f0c43ac3..a9ce032cc5a2 100644
--- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
+++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
@@ -451,7 +451,6 @@ static void wave5_vpu_dec_finish_decode(struct vpu_instance *inst)
if (q_status.report_queue_count == 0 &&
(q_status.instance_queue_count == 0 || dec_info.sequence_changed)) {
dev_dbg(inst->dev->dev, "%s: finishing job.\n", __func__);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
}
@@ -1364,7 +1363,6 @@ static int wave5_vpu_dec_start_streaming(struct vb2_queue *q, unsigned int count
}
}
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
return ret;
@@ -1498,7 +1496,6 @@ static void wave5_vpu_dec_stop_streaming(struct vb2_queue *q)
else
streamoff_capture(q);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
}
@@ -1662,7 +1659,6 @@ static void wave5_vpu_dec_device_run(void *priv)
finish_job_and_return:
dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
}
diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
index 1e5fc5f8b856..35913a7de834 100644
--- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
+++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
@@ -1391,12 +1391,10 @@ static int wave5_vpu_enc_start_streaming(struct vb2_queue *q, unsigned int count
if (ret)
goto return_buffers;
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
return 0;
return_buffers:
wave5_return_bufs(q, VB2_BUF_STATE_QUEUED);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
return ret;
}
@@ -1465,7 +1463,6 @@ static void wave5_vpu_enc_stop_streaming(struct vb2_queue *q)
else
streamoff_capture(inst, q);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
}
@@ -1520,7 +1517,6 @@ static void wave5_vpu_enc_device_run(void *priv)
break;
}
dev_dbg(inst->dev->dev, "%s: leave with active job", __func__);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
return;
default:
@@ -1529,7 +1525,6 @@ static void wave5_vpu_enc_device_run(void *priv)
break;
}
dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
- pm_runtime_mark_last_busy(inst->dev->dev);
pm_runtime_put_autosuspend(inst->dev->dev);
v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
}
diff --git a/drivers/media/platform/nvidia/tegra-vde/h264.c b/drivers/media/platform/nvidia/tegra-vde/h264.c
index 0e56a4331b0d..45f8f6904867 100644
--- a/drivers/media/platform/nvidia/tegra-vde/h264.c
+++ b/drivers/media/platform/nvidia/tegra-vde/h264.c
@@ -585,7 +585,6 @@ static int tegra_vde_decode_begin(struct tegra_vde *vde,
return 0;
put_runtime_pm:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
unlock:
@@ -612,7 +611,6 @@ static void tegra_vde_decode_abort(struct tegra_vde *vde)
if (err)
dev_err(dev, "DEC end: Failed to assert HW reset: %d\n", err);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
mutex_unlock(&vde->lock);
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_queue.c b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
index fac7df0c4d1a..0b37f9b76da5 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
+++ b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
@@ -142,7 +142,6 @@ int iris_hfi_queue_cmd_write(struct iris_core *core, void *pkt, u32 pkt_size)
}
mutex_unlock(&core->lock);
- pm_runtime_mark_last_busy(core->dev);
pm_runtime_put_autosuspend(core->dev);
return 0;
diff --git a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
index 7596ae1f7de6..8a10a36abbc2 100644
--- a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
+++ b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
@@ -951,7 +951,6 @@ static void pispbe_node_stop_streaming(struct vb2_queue *q)
pispbe->streaming_map &= ~BIT(node->id);
spin_unlock_irqrestore(&pispbe->hw_lock, flags);
- pm_runtime_mark_last_busy(pispbe->dev);
pm_runtime_put_autosuspend(pispbe->dev);
dev_dbg(pispbe->dev, "Nodes streaming now 0x%x\n",
@@ -1740,7 +1739,6 @@ static int pispbe_probe(struct platform_device *pdev)
if (ret)
goto disable_devs_err;
- pm_runtime_mark_last_busy(pispbe->dev);
pm_runtime_put_autosuspend(pispbe->dev);
return 0;
diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
index 8542238e0fb1..fa972effd4a2 100644
--- a/drivers/media/platform/verisilicon/hantro_drv.c
+++ b/drivers/media/platform/verisilicon/hantro_drv.c
@@ -89,7 +89,6 @@ static void hantro_job_finish(struct hantro_dev *vpu,
struct hantro_ctx *ctx,
enum vb2_buffer_state result)
{
- pm_runtime_mark_last_busy(vpu->dev);
pm_runtime_put_autosuspend(vpu->dev);
clk_bulk_disable(vpu->variant->num_clocks, vpu->clocks);
diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c
index bf6d8fa983bf..161f8919022c 100644
--- a/drivers/media/rc/gpio-ir-recv.c
+++ b/drivers/media/rc/gpio-ir-recv.c
@@ -49,7 +49,6 @@ static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id)
ir_raw_event_store_edge(gpio_dev->rcdev, val == 1);
if (pmdev) {
- pm_runtime_mark_last_busy(pmdev);
pm_runtime_put_autosuspend(pmdev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 42/80] mfd: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (40 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-07 8:47 ` Charles Keepax
2025-07-23 8:42 ` (subset) " Lee Jones
2025-07-04 7:54 ` [PATCH 43/80] mei: " Sakari Ailus
` (45 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Lee Jones, James Ogletree, Fred Treven, Ben Bright, David Rhodes,
Richard Fitzgerald
Cc: patches, linux-kernel, linux-sound
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/mfd/arizona-irq.c | 1 -
drivers/mfd/cs40l50-core.c | 1 -
drivers/mfd/cs42l43.c | 1 -
3 files changed, 3 deletions(-)
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index ac2139597fab..3f8622ee0e59 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -152,7 +152,6 @@ static irqreturn_t arizona_irq_thread(int irq, void *data)
}
} while (poll);
- pm_runtime_mark_last_busy(arizona->dev);
pm_runtime_put_autosuspend(arizona->dev);
return IRQ_HANDLED;
diff --git a/drivers/mfd/cs40l50-core.c b/drivers/mfd/cs40l50-core.c
index c91bccda0858..662d987b650b 100644
--- a/drivers/mfd/cs40l50-core.c
+++ b/drivers/mfd/cs40l50-core.c
@@ -531,7 +531,6 @@ int cs40l50_probe(struct cs40l50 *cs40l50)
if (ret)
return dev_err_probe(dev, ret, "Failed to request %s\n", CS40L50_FW);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/mfd/cs42l43.c b/drivers/mfd/cs42l43.c
index 103787f37443..07c8f1b8183e 100644
--- a/drivers/mfd/cs42l43.c
+++ b/drivers/mfd/cs42l43.c
@@ -962,7 +962,6 @@ static void cs42l43_boot_work(struct work_struct *work)
goto err;
}
- pm_runtime_mark_last_busy(cs42l43->dev);
pm_runtime_put_autosuspend(cs42l43->dev);
return;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 43/80] mei: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (41 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 42/80] mfd: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 45/80] mtd: rawnand: gpmi: " Sakari Ailus
` (44 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Alexander Usyskin, Arnd Bergmann, Greg Kroah-Hartman; +Cc: linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/misc/mei/client.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index 3db07d2a881f..191ab784e160 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -709,7 +709,6 @@ void mei_host_client_init(struct mei_device *dev)
schedule_work(&dev->bus_rescan_work);
- pm_runtime_mark_last_busy(dev->dev);
dev_dbg(dev->dev, "rpm: autosuspend\n");
pm_request_autosuspend(dev->dev);
}
@@ -991,7 +990,6 @@ int mei_cl_disconnect(struct mei_cl *cl)
rets = __mei_cl_disconnect(cl);
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
return rets;
@@ -1167,7 +1165,6 @@ int mei_cl_connect(struct mei_cl *cl, struct mei_me_client *me_cl,
rets = cl->status;
out:
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
mei_io_cb_free(cb);
@@ -1554,7 +1551,6 @@ int mei_cl_notify_request(struct mei_cl *cl,
out:
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
mei_io_cb_free(cb);
@@ -1702,7 +1698,6 @@ int mei_cl_read_start(struct mei_cl *cl, size_t length, const struct file *fp)
out:
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
nortpm:
if (rets)
@@ -2092,7 +2087,6 @@ ssize_t mei_cl_write(struct mei_cl *cl, struct mei_cl_cb *cb, unsigned long time
rets = buf_len;
err:
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
free:
mei_io_cb_free(cb);
@@ -2119,7 +2113,6 @@ void mei_cl_complete(struct mei_cl *cl, struct mei_cl_cb *cb)
if (waitqueue_active(&cl->tx_wait)) {
wake_up_interruptible(&cl->tx_wait);
} else {
- pm_runtime_mark_last_busy(dev->dev);
pm_request_autosuspend(dev->dev);
}
break;
@@ -2366,7 +2359,6 @@ int mei_cl_dma_alloc_and_map(struct mei_cl *cl, const struct file *fp,
mei_cl_dma_free(cl);
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
mei_io_cb_free(cb);
@@ -2444,7 +2436,6 @@ int mei_cl_dma_unmap(struct mei_cl *cl, const struct file *fp)
mei_cl_dma_free(cl);
out:
cl_dbg(dev, cl, "rpm: autosuspend\n");
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
mei_io_cb_free(cb);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 45/80] mtd: rawnand: gpmi: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (42 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 43/80] mei: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 44/80] mmc: " Sakari Ailus
` (43 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Han Xu, Miquel Raynal, Richard Weinberger, Vignesh Raghavendra
Cc: imx, linux-mtd, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
index f4e68008ea03..8c1bf09bdbae 100644
--- a/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c
@@ -188,7 +188,6 @@ static int gpmi_init(struct gpmi_nand_data *this)
r->gpmi_regs + HW_GPMI_CTRL1_SET);
err_out:
- pm_runtime_mark_last_busy(this->dev);
pm_runtime_put_autosuspend(this->dev);
return ret;
}
@@ -758,7 +757,6 @@ static int bch_set_geometry(struct gpmi_nand_data *this)
ret = 0;
err_out:
- pm_runtime_mark_last_busy(this->dev);
pm_runtime_put_autosuspend(this->dev);
return ret;
@@ -2664,7 +2662,6 @@ static int gpmi_nfc_exec_op(struct nand_chip *chip,
this->bch = false;
out_pm:
- pm_runtime_mark_last_busy(this->dev);
pm_runtime_put_autosuspend(this->dev);
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 44/80] mmc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (43 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 45/80] mtd: rawnand: gpmi: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-09 14:02 ` Ulf Hansson
2025-07-04 7:54 ` [PATCH 46/80] net: ethernet: " Sakari Ailus
` (42 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Ulf Hansson, Aubin Constans, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Russell King, Adrian Hunter, Haibo Chen,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Vignesh Raghavendra, Orson Zhai, Baolin Wang, Chunyan Zhang,
Wolfram Sang, Avri Altman, Sakari Ailus, Victor Shih, Binbin Zhou,
Huacai Chen, Uwe Kleine-König
Cc: linux-mmc, linux-kernel, linux-arm-kernel, linux-omap, imx, s32,
linux-arm-msm, linux-renesas-soc
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/mmc/core/core.c | 1 -
drivers/mmc/host/atmel-mci.c | 2 --
drivers/mmc/host/mmci.c | 1 -
drivers/mmc/host/omap_hsmmc.c | 3 ---
drivers/mmc/host/sdhci-esdhc-imx.c | 1 -
drivers/mmc/host/sdhci-msm.c | 1 -
drivers/mmc/host/sdhci-omap.c | 2 --
drivers/mmc/host/sdhci-pxav3.c | 2 --
drivers/mmc/host/sdhci-sprd.c | 1 -
drivers/mmc/host/sdhci_am654.c | 1 -
drivers/mmc/host/tmio_mmc_core.c | 1 -
11 files changed, 16 deletions(-)
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index a0e2dce70434..874c6fe92855 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -882,7 +882,6 @@ void mmc_put_card(struct mmc_card *card, struct mmc_ctx *ctx)
WARN_ON(ctx && host->claimer != ctx);
mmc_release_host(host);
- pm_runtime_mark_last_busy(&card->dev);
pm_runtime_put_autosuspend(&card->dev);
}
EXPORT_SYMBOL(mmc_put_card);
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index c885c04e938a..43f92f48590f 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -541,7 +541,6 @@ static int atmci_regs_show(struct seq_file *s, void *v)
memcpy_fromio(buf, host->regs, ATMCI_REGS_SIZE);
spin_unlock_bh(&host->lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
seq_printf(s, "MR:\t0x%08x%s%s ",
@@ -2567,7 +2566,6 @@ static int atmci_probe(struct platform_device *pdev)
dev_info(dev, "Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
host->mapbase, irq, nr_slots);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index c70c64f8adc4..8367283647a9 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -2082,7 +2082,6 @@ static void mmci_enable_sdio_irq(struct mmc_host *mmc, int enable)
spin_unlock_irqrestore(&host->lock, flags);
if (!enable) {
- pm_runtime_mark_last_busy(mmc_dev(mmc));
pm_runtime_put_autosuspend(mmc_dev(mmc));
}
}
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index bf3b9f5b067c..adc0d0b6ae37 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1663,7 +1663,6 @@ static int mmc_regs_show(struct seq_file *s, void *data)
seq_printf(s, "CAPA:\t\t0x%08x\n",
OMAP_HSMMC_READ(host->base, CAPA));
- pm_runtime_mark_last_busy(host->dev);
pm_runtime_put_autosuspend(host->dev);
return 0;
@@ -1954,7 +1953,6 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
}
omap_hsmmc_debugfs(mmc);
- pm_runtime_mark_last_busy(host->dev);
pm_runtime_put_autosuspend(host->dev);
return 0;
@@ -2031,7 +2029,6 @@ static int omap_hsmmc_resume(struct device *dev)
if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER))
omap_hsmmc_conf_bus_power(host);
- pm_runtime_mark_last_busy(host->dev);
pm_runtime_put_autosuspend(host->dev);
return 0;
}
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 64c27349d79f..a040c0896a7b 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -2108,7 +2108,6 @@ static int sdhci_esdhc_resume(struct device *dev)
esdhc_is_usdhc(imx_data))
sdhc_esdhc_tuning_restore(host);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 732b65d4b61a..68e56251d5e8 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -2750,7 +2750,6 @@ static int sdhci_msm_probe(struct platform_device *pdev)
if (ret)
goto pm_runtime_disable;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c
index 429d8a517fb6..cdb09605e009 100644
--- a/drivers/mmc/host/sdhci-omap.c
+++ b/drivers/mmc/host/sdhci-omap.c
@@ -1370,7 +1370,6 @@ static int sdhci_omap_probe(struct platform_device *pdev)
host->mmc->pm_caps |= MMC_PM_KEEP_POWER | MMC_PM_WAKE_SDIO_IRQ;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -1379,7 +1378,6 @@ static int sdhci_omap_probe(struct platform_device *pdev)
sdhci_cleanup_host(host);
err_rpm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
err_rpm_disable:
pm_runtime_dont_use_autosuspend(dev);
diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
index 34abf986573f..1371960e34eb 100644
--- a/drivers/mmc/host/sdhci-pxav3.c
+++ b/drivers/mmc/host/sdhci-pxav3.c
@@ -494,7 +494,6 @@ static int sdhci_pxav3_suspend(struct device *dev)
if (host->tuning_mode != SDHCI_TUNING_MODE_3)
mmc_retune_needed(host->mmc);
ret = sdhci_suspend_host(host);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -507,7 +506,6 @@ static int sdhci_pxav3_resume(struct device *dev)
pm_runtime_get_sync(dev);
ret = sdhci_resume_host(host);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c
index a5dec1a0e934..fe2fe52b23b2 100644
--- a/drivers/mmc/host/sdhci-sprd.c
+++ b/drivers/mmc/host/sdhci-sprd.c
@@ -863,7 +863,6 @@ static int sdhci_sprd_probe(struct platform_device *pdev)
if (ret)
goto err_cleanup_host;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index ea14d56558c4..e2c4a0049d61 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -986,7 +986,6 @@ static int sdhci_am654_probe(struct platform_device *pdev)
/* Setting up autosuspend */
pm_runtime_set_autosuspend_delay(dev, SDHCI_AM654_AUTOSUSPEND_DELAY);
pm_runtime_use_autosuspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index 2cec463b5e00..21c2f9095bac 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -160,7 +160,6 @@ static void tmio_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask);
host->sdio_irq_enabled = false;
- pm_runtime_mark_last_busy(mmc_dev(mmc));
pm_runtime_put_autosuspend(mmc_dev(mmc));
}
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 46/80] net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (44 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 44/80] mmc: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:57 ` Niklas Söderlund
2025-07-04 7:54 ` [PATCH 47/80] net: ipa: " Sakari Ailus
` (41 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Nicolas Ferre, Claudiu Beznea, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Wei Fang, Shenwei Wang,
Clark Wang, Niklas Söderlund, Paul Barker,
Siddharth Vadapalli, Roger Quadros, Uwe Kleine-König,
Sakari Ailus
Cc: netdev, linux-kernel, imx, linux-renesas-soc, linux-omap
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/net/ethernet/cadence/macb_main.c | 5 -----
drivers/net/ethernet/freescale/fec_main.c | 8 --------
drivers/net/ethernet/renesas/ravb_main.c | 4 ----
drivers/net/ethernet/ti/davinci_mdio.c | 7 -------
4 files changed, 24 deletions(-)
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 53aaf6b08e39..9b7cbb3e3108 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -360,7 +360,6 @@ static int macb_mdio_read_c22(struct mii_bus *bus, int mii_id, int regnum)
status = MACB_BFEXT(DATA, macb_readl(bp, MAN));
mdio_read_exit:
- pm_runtime_mark_last_busy(&bp->pdev->dev);
pm_runtime_put_autosuspend(&bp->pdev->dev);
mdio_pm_exit:
return status;
@@ -406,7 +405,6 @@ static int macb_mdio_read_c45(struct mii_bus *bus, int mii_id, int devad,
status = MACB_BFEXT(DATA, macb_readl(bp, MAN));
mdio_read_exit:
- pm_runtime_mark_last_busy(&bp->pdev->dev);
pm_runtime_put_autosuspend(&bp->pdev->dev);
mdio_pm_exit:
return status;
@@ -438,7 +436,6 @@ static int macb_mdio_write_c22(struct mii_bus *bus, int mii_id, int regnum,
goto mdio_write_exit;
mdio_write_exit:
- pm_runtime_mark_last_busy(&bp->pdev->dev);
pm_runtime_put_autosuspend(&bp->pdev->dev);
mdio_pm_exit:
return status;
@@ -484,7 +481,6 @@ static int macb_mdio_write_c45(struct mii_bus *bus, int mii_id,
goto mdio_write_exit;
mdio_write_exit:
- pm_runtime_mark_last_busy(&bp->pdev->dev);
pm_runtime_put_autosuspend(&bp->pdev->dev);
mdio_pm_exit:
return status;
@@ -5358,7 +5354,6 @@ static int macb_probe(struct platform_device *pdev)
macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID),
dev->base_addr, dev->irq, dev->dev_addr);
- pm_runtime_mark_last_busy(&bp->pdev->dev);
pm_runtime_put_autosuspend(&bp->pdev->dev);
return 0;
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index d4eed252ad40..e6979599ae7e 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -2207,7 +2207,6 @@ static int fec_enet_mdio_read_c22(struct mii_bus *bus, int mii_id, int regnum)
ret = FEC_MMFR_DATA(readl(fep->hwp + FEC_MII_DATA));
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -2256,7 +2255,6 @@ static int fec_enet_mdio_read_c45(struct mii_bus *bus, int mii_id,
ret = FEC_MMFR_DATA(readl(fep->hwp + FEC_MII_DATA));
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -2288,7 +2286,6 @@ static int fec_enet_mdio_write_c22(struct mii_bus *bus, int mii_id, int regnum,
if (ret)
netdev_err(fep->netdev, "MDIO write timeout\n");
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -2332,7 +2329,6 @@ static int fec_enet_mdio_write_c45(struct mii_bus *bus, int mii_id,
netdev_err(fep->netdev, "MDIO write timeout\n");
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -2814,7 +2810,6 @@ static void fec_enet_get_regs(struct net_device *ndev,
buf[off] = readl(&theregs[off]);
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -3590,7 +3585,6 @@ fec_enet_open(struct net_device *ndev)
err_enet_alloc:
fec_enet_clk_enable(ndev, false);
clk_enable:
- pm_runtime_mark_last_busy(&fep->pdev->dev);
pm_runtime_put_autosuspend(&fep->pdev->dev);
pinctrl_pm_select_sleep_state(&fep->pdev->dev);
return ret;
@@ -3621,7 +3615,6 @@ fec_enet_close(struct net_device *ndev)
cpu_latency_qos_remove_request(&fep->pm_qos_req);
pinctrl_pm_select_sleep_state(&fep->pdev->dev);
- pm_runtime_mark_last_busy(&fep->pdev->dev);
pm_runtime_put_autosuspend(&fep->pdev->dev);
fec_enet_free_buffers(ndev);
@@ -4568,7 +4561,6 @@ fec_probe(struct platform_device *pdev)
INIT_WORK(&fep->tx_timeout_work, fec_enet_timeout_work);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index c9f4976a3527..b8bfc3cdbb6b 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -1974,7 +1974,6 @@ static int ravb_open(struct net_device *ndev)
out_set_reset:
ravb_set_opmode(ndev, CCC_OPC_RESET);
out_rpm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
out_napi_off:
if (info->nc_queues)
@@ -2383,7 +2382,6 @@ static int ravb_close(struct net_device *ndev)
if (error)
return error;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -3089,7 +3087,6 @@ static int ravb_probe(struct platform_device *pdev)
netdev_info(ndev, "Base address at %#x, %pM, IRQ %d.\n",
(u32)ndev->base_addr, ndev->dev_addr, ndev->irq);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
@@ -3274,7 +3271,6 @@ static int ravb_resume(struct device *dev)
out_rpm_put:
if (!priv->wol_enabled) {
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
index 68507126be8e..9f049ebbf107 100644
--- a/drivers/net/ethernet/ti/davinci_mdio.c
+++ b/drivers/net/ethernet/ti/davinci_mdio.c
@@ -234,7 +234,6 @@ static int davinci_mdiobb_read_c22(struct mii_bus *bus, int phy, int reg)
ret = mdiobb_read_c22(bus, phy, reg);
- pm_runtime_mark_last_busy(bus->parent);
pm_runtime_put_autosuspend(bus->parent);
return ret;
@@ -251,7 +250,6 @@ static int davinci_mdiobb_write_c22(struct mii_bus *bus, int phy, int reg,
ret = mdiobb_write_c22(bus, phy, reg, val);
- pm_runtime_mark_last_busy(bus->parent);
pm_runtime_put_autosuspend(bus->parent);
return ret;
@@ -268,7 +266,6 @@ static int davinci_mdiobb_read_c45(struct mii_bus *bus, int phy, int devad,
ret = mdiobb_read_c45(bus, phy, devad, reg);
- pm_runtime_mark_last_busy(bus->parent);
pm_runtime_put_autosuspend(bus->parent);
return ret;
@@ -285,7 +282,6 @@ static int davinci_mdiobb_write_c45(struct mii_bus *bus, int phy, int devad,
ret = mdiobb_write_c45(bus, phy, devad, reg, val);
- pm_runtime_mark_last_busy(bus->parent);
pm_runtime_put_autosuspend(bus->parent);
return ret;
@@ -332,7 +328,6 @@ static int davinci_mdio_common_reset(struct davinci_mdio_data *data)
data->bus->phy_mask = phy_mask;
done:
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return 0;
@@ -441,7 +436,6 @@ static int davinci_mdio_read(struct mii_bus *bus, int phy_id, int phy_reg)
break;
}
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
}
@@ -478,7 +472,6 @@ static int davinci_mdio_write(struct mii_bus *bus, int phy_id,
break;
}
- pm_runtime_mark_last_busy(data->dev);
pm_runtime_put_autosuspend(data->dev);
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 47/80] net: ipa: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (45 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 46/80] net: ethernet: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 48/80] net: wireless: " Sakari Ailus
` (40 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Alex Elder, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, Paolo Abeni
Cc: netdev, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/net/ipa/ipa_interrupt.c | 1 -
drivers/net/ipa/ipa_main.c | 1 -
drivers/net/ipa/ipa_modem.c | 4 ----
drivers/net/ipa/ipa_smp2p.c | 2 --
drivers/net/ipa/ipa_uc.c | 2 --
5 files changed, 10 deletions(-)
diff --git a/drivers/net/ipa/ipa_interrupt.c b/drivers/net/ipa/ipa_interrupt.c
index 245a06997055..8336596b1247 100644
--- a/drivers/net/ipa/ipa_interrupt.c
+++ b/drivers/net/ipa/ipa_interrupt.c
@@ -149,7 +149,6 @@ static irqreturn_t ipa_isr_thread(int irq, void *dev_id)
iowrite32(pending, ipa->reg_virt + reg_offset(reg));
}
out_power_put:
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
return IRQ_HANDLED;
diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
index f25f6e2cf58c..b37516de01fa 100644
--- a/drivers/net/ipa/ipa_main.c
+++ b/drivers/net/ipa/ipa_main.c
@@ -911,7 +911,6 @@ static int ipa_probe(struct platform_device *pdev)
if (ret)
goto err_deconfig;
done:
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/net/ipa/ipa_modem.c b/drivers/net/ipa/ipa_modem.c
index 8fe0d0e1a00f..9b136f6b8b4a 100644
--- a/drivers/net/ipa/ipa_modem.c
+++ b/drivers/net/ipa/ipa_modem.c
@@ -71,7 +71,6 @@ static int ipa_open(struct net_device *netdev)
netif_start_queue(netdev);
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
return 0;
@@ -102,7 +101,6 @@ static int ipa_stop(struct net_device *netdev)
ipa_endpoint_disable_one(priv->rx);
ipa_endpoint_disable_one(priv->tx);
out_power_put:
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
return 0;
@@ -175,7 +173,6 @@ ipa_start_xmit(struct sk_buff *skb, struct net_device *netdev)
ret = ipa_endpoint_skb_tx(endpoint, skb);
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
if (ret) {
@@ -432,7 +429,6 @@ static void ipa_modem_crashed(struct ipa *ipa)
dev_err(dev, "error %d zeroing modem memory regions\n", ret);
out_power_put:
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/net/ipa/ipa_smp2p.c b/drivers/net/ipa/ipa_smp2p.c
index fcaadd111a8a..420098796eec 100644
--- a/drivers/net/ipa/ipa_smp2p.c
+++ b/drivers/net/ipa/ipa_smp2p.c
@@ -171,7 +171,6 @@ static irqreturn_t ipa_smp2p_modem_setup_ready_isr(int irq, void *dev_id)
WARN(ret != 0, "error %d from ipa_setup()\n", ret);
out_power_put:
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
return IRQ_HANDLED;
@@ -213,7 +212,6 @@ static void ipa_smp2p_power_release(struct ipa *ipa)
if (!ipa->smp2p->power_on)
return;
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
ipa->smp2p->power_on = false;
}
diff --git a/drivers/net/ipa/ipa_uc.c b/drivers/net/ipa/ipa_uc.c
index 2963db83ab6b..dc7e92f2a4fb 100644
--- a/drivers/net/ipa/ipa_uc.c
+++ b/drivers/net/ipa/ipa_uc.c
@@ -158,7 +158,6 @@ static void ipa_uc_response_hdlr(struct ipa *ipa)
if (ipa->uc_powered) {
ipa->uc_loaded = true;
ipa_power_retention(ipa, true);
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
ipa->uc_powered = false;
} else {
@@ -203,7 +202,6 @@ void ipa_uc_deconfig(struct ipa *ipa)
if (!ipa->uc_powered)
return;
- pm_runtime_mark_last_busy(dev);
(void)pm_runtime_put_autosuspend(dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 48/80] net: wireless: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (46 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 47/80] net: ipa: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 49/80] net: wwan: " Sakari Ailus
` (39 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Maxime Coquelin, Alexandre Torgue, Sakari Ailus,
Dr. David Alan Gilbert, Johannes Berg, Thomas Gleixner,
Ingo Molnar, Andreas Kemnade, Roopni Devanathan,
Thomas Weißschuh, Kalle Valo, Greg Kroah-Hartman,
Christophe JAILLET, Jeff Johnson
Cc: linux-wireless, linux-kernel, linux-stm32, linux-arm-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/net/wireless/ath/wil6210/pm.c | 1 -
drivers/net/wireless/ti/wl18xx/debugfs.c | 3 --
drivers/net/wireless/ti/wlcore/cmd.c | 1 -
drivers/net/wireless/ti/wlcore/debugfs.c | 11 -------
drivers/net/wireless/ti/wlcore/main.c | 36 ---------------------
drivers/net/wireless/ti/wlcore/scan.c | 1 -
drivers/net/wireless/ti/wlcore/sysfs.c | 1 -
drivers/net/wireless/ti/wlcore/testmode.c | 2 --
drivers/net/wireless/ti/wlcore/tx.c | 1 -
drivers/net/wireless/ti/wlcore/vendor_cmd.c | 3 --
10 files changed, 60 deletions(-)
diff --git a/drivers/net/wireless/ath/wil6210/pm.c b/drivers/net/wireless/ath/wil6210/pm.c
index f521af575e9b..c866cfd144c7 100644
--- a/drivers/net/wireless/ath/wil6210/pm.c
+++ b/drivers/net/wireless/ath/wil6210/pm.c
@@ -458,6 +458,5 @@ void wil_pm_runtime_put(struct wil6210_priv *wil)
{
struct device *dev = wil_to_dev(wil);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/net/wireless/ti/wl18xx/debugfs.c b/drivers/net/wireless/ti/wl18xx/debugfs.c
index 80fbf740fe6d..ac756318e8ea 100644
--- a/drivers/net/wireless/ti/wl18xx/debugfs.c
+++ b/drivers/net/wireless/ti/wl18xx/debugfs.c
@@ -272,7 +272,6 @@ static ssize_t radar_detection_write(struct file *file,
if (ret < 0)
count = ret;
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -312,7 +311,6 @@ static ssize_t dynamic_fw_traces_write(struct file *file,
if (ret < 0)
count = ret;
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -374,7 +372,6 @@ static ssize_t radar_debug_mode_write(struct file *file,
wl->radar_debug_mode, 0);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index fa3a3f71dd15..9d73ba933a16 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -213,7 +213,6 @@ int wlcore_cmd_wait_for_event_or_timeout(struct wl1271 *wl,
} while (!event);
out:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
free_vector:
kfree(events_vector);
diff --git a/drivers/net/wireless/ti/wlcore/debugfs.c b/drivers/net/wireless/ti/wlcore/debugfs.c
index eb3d3f0e0b4d..bbfd2725215b 100644
--- a/drivers/net/wireless/ti/wlcore/debugfs.c
+++ b/drivers/net/wireless/ti/wlcore/debugfs.c
@@ -63,7 +63,6 @@ void wl1271_debugfs_update_stats(struct wl1271 *wl)
wl->stats.fw_stats_update = jiffies;
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -113,7 +112,6 @@ static void chip_op_handler(struct wl1271 *wl, unsigned long value,
chip_op = arg;
chip_op(wl);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
}
@@ -287,7 +285,6 @@ static ssize_t dynamic_ps_timeout_write(struct file *file,
wl1271_ps_set_mode(wl, wlvif, STATION_AUTO_PS_MODE);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -357,7 +354,6 @@ static ssize_t forced_ps_write(struct file *file,
wl1271_ps_set_mode(wl, wlvif, ps_mode);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -830,7 +826,6 @@ static ssize_t rx_streaming_interval_write(struct file *file,
wl1271_recalc_rx_streaming(wl, wlvif);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -886,7 +881,6 @@ static ssize_t rx_streaming_always_write(struct file *file,
wl1271_recalc_rx_streaming(wl, wlvif);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -934,7 +928,6 @@ static ssize_t beacon_filtering_write(struct file *file,
ret = wl1271_acx_beacon_filter_opt(wl, wlvif, !!value);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -1015,7 +1008,6 @@ static ssize_t sleep_auth_write(struct file *file,
goto out_sleep;
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -1090,7 +1082,6 @@ static ssize_t dev_mem_read(struct file *file,
goto part_err;
part_err:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
skip_read:
@@ -1172,7 +1163,6 @@ static ssize_t dev_mem_write(struct file *file, const char __user *user_buf,
goto part_err;
part_err:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
skip_write:
@@ -1247,7 +1237,6 @@ static ssize_t fw_logger_write(struct file *file,
ret = wl12xx_cmd_config_fwlog(wl);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 6116a8522d96..12f0167d7380 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -154,7 +154,6 @@ static void wl1271_rx_streaming_enable_work(struct work_struct *work)
jiffies + msecs_to_jiffies(wl->conf.rx_streaming.duration));
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -181,7 +180,6 @@ static void wl1271_rx_streaming_disable_work(struct work_struct *work)
goto out_sleep;
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -234,7 +232,6 @@ static void wlcore_rc_update_work(struct work_struct *work)
}
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -711,7 +708,6 @@ static int wlcore_irq_locked(struct wl1271 *wl)
}
err_ret:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -1047,7 +1043,6 @@ static void wl1271_recovery_work(struct work_struct *work)
}
wlcore_op_stop_locked(wl);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
ieee80211_restart_hw(wl->hw);
@@ -1943,7 +1938,6 @@ static int __maybe_unused wl1271_op_resume(struct ieee80211_hw *hw)
goto out_sleep;
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -2131,7 +2125,6 @@ static void wlcore_channel_switch_work(struct work_struct *work)
wl12xx_cmd_stop_channel_switch(wl, wlvif);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -2201,7 +2194,6 @@ static void wlcore_pending_auth_complete_work(struct work_struct *work)
/* cancel the ROC if active */
wlcore_update_inconn_sta(wl, wlvif, NULL, false);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -2694,7 +2686,6 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
else
wl->sta_count++;
out:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out_unlock:
mutex_unlock(&wl->mutex);
@@ -2774,7 +2765,6 @@ static void __wl1271_op_remove_interface(struct wl1271 *wl,
}
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
}
deinit:
@@ -3200,7 +3190,6 @@ static int wl1271_op_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
}
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -3315,7 +3304,6 @@ static void wl1271_op_configure_filter(struct ieee80211_hw *hw,
*/
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -3531,7 +3519,6 @@ static int wlcore_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
ret = wlcore_hw_set_key(wl, cmd, vif, sta, key_conf);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out_wake_queues:
@@ -3695,7 +3682,6 @@ static void wl1271_op_set_default_key_idx(struct ieee80211_hw *hw,
}
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out_unlock:
@@ -3724,7 +3710,6 @@ void wlcore_regdomain_config(struct wl1271 *wl)
goto out;
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -3772,7 +3757,6 @@ static int wl1271_op_hw_scan(struct ieee80211_hw *hw,
ret = wlcore_scan(hw->priv, vif, ssid, len, req);
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -3823,7 +3807,6 @@ static void wl1271_op_cancel_hw_scan(struct ieee80211_hw *hw,
ieee80211_scan_completed(wl->hw, &info);
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -3860,7 +3843,6 @@ static int wl1271_op_sched_scan_start(struct ieee80211_hw *hw,
wl->sched_vif = wlvif;
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -3887,7 +3869,6 @@ static int wl1271_op_sched_scan_stop(struct ieee80211_hw *hw,
wl->ops->sched_scan_stop(wl, wlvif);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -3916,7 +3897,6 @@ static int wl1271_op_set_frag_threshold(struct ieee80211_hw *hw,
if (ret < 0)
wl1271_warning("wl1271_op_set_frag_threshold failed: %d", ret);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -3948,7 +3928,6 @@ static int wl1271_op_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
if (ret < 0)
wl1271_warning("set rts threshold failed: %d", ret);
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -4714,7 +4693,6 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
else
wl1271_bss_info_changed_sta(wl, vif, bss_conf, changed);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -4779,7 +4757,6 @@ static void wlcore_op_change_chanctx(struct ieee80211_hw *hw,
}
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -4828,7 +4805,6 @@ static int wlcore_op_assign_vif_chanctx(struct ieee80211_hw *hw,
wlvif->radar_enabled = true;
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -4871,7 +4847,6 @@ static void wlcore_op_unassign_vif_chanctx(struct ieee80211_hw *hw,
wlvif->radar_enabled = false;
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -4941,7 +4916,6 @@ wlcore_op_switch_vif_chanctx(struct ieee80211_hw *hw,
goto out_sleep;
}
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -4995,7 +4969,6 @@ static int wl1271_op_conf_tx(struct ieee80211_hw *hw,
0, 0);
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -5029,7 +5002,6 @@ static u64 wl1271_op_get_tsf(struct ieee80211_hw *hw,
goto out_sleep;
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -5342,7 +5314,6 @@ static int wl12xx_op_sta_state(struct ieee80211_hw *hw,
ret = wl12xx_update_sta_state(wl, wlvif, sta, old_state, new_state);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -5467,7 +5438,6 @@ static int wl1271_op_ampdu_action(struct ieee80211_hw *hw,
ret = -EINVAL;
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -5511,7 +5481,6 @@ static int wl12xx_set_bitrate_mask(struct ieee80211_hw *hw,
wl1271_tx_min_rate_get(wl, wlvif->basic_rate_set);
ret = wl1271_acx_sta_rate_policies(wl, wlvif);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
}
out:
@@ -5566,7 +5535,6 @@ static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
}
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
@@ -5645,7 +5613,6 @@ static void wlcore_op_channel_switch_beacon(struct ieee80211_hw *hw,
set_bit(WLVIF_FLAG_CS_PROGRESS, &wlvif->flags);
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -5699,7 +5666,6 @@ static int wlcore_op_remain_on_channel(struct ieee80211_hw *hw,
ieee80211_queue_delayed_work(hw, &wl->roc_complete_work,
msecs_to_jiffies(duration));
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -5748,7 +5714,6 @@ static int wlcore_roc_completed(struct wl1271 *wl)
ret = __wlcore_roc_completed(wl);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -5839,7 +5804,6 @@ static void wlcore_op_sta_statistics(struct ieee80211_hw *hw,
sinfo->signal = rssi_dbm;
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
diff --git a/drivers/net/wireless/ti/wlcore/scan.c b/drivers/net/wireless/ti/wlcore/scan.c
index b414305acc32..f6dc54c1dbad 100644
--- a/drivers/net/wireless/ti/wlcore/scan.c
+++ b/drivers/net/wireless/ti/wlcore/scan.c
@@ -69,7 +69,6 @@ void wl1271_scan_complete_work(struct work_struct *work)
wlcore_cmd_regdomain_config_locked(wl);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
ieee80211_scan_completed(wl->hw, &info);
diff --git a/drivers/net/wireless/ti/wlcore/sysfs.c b/drivers/net/wireless/ti/wlcore/sysfs.c
index 65ca5dc569a0..5ab6c1683675 100644
--- a/drivers/net/wireless/ti/wlcore/sysfs.c
+++ b/drivers/net/wireless/ti/wlcore/sysfs.c
@@ -58,7 +58,6 @@ static ssize_t bt_coex_state_store(struct device *dev,
goto out;
wl1271_acx_sg_enable(wl, wl->sg_enabled);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
diff --git a/drivers/net/wireless/ti/wlcore/testmode.c b/drivers/net/wireless/ti/wlcore/testmode.c
index fc8ea58bc165..7c0cb1b7fef0 100644
--- a/drivers/net/wireless/ti/wlcore/testmode.c
+++ b/drivers/net/wireless/ti/wlcore/testmode.c
@@ -127,7 +127,6 @@ static int wl1271_tm_cmd_test(struct wl1271 *wl, struct nlattr *tb[])
}
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -192,7 +191,6 @@ static int wl1271_tm_cmd_interrogate(struct wl1271 *wl, struct nlattr *tb[])
out_free:
kfree(cmd);
out_sleep:
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
diff --git a/drivers/net/wireless/ti/wlcore/tx.c b/drivers/net/wireless/ti/wlcore/tx.c
index 464587d16ab2..f76087be2f75 100644
--- a/drivers/net/wireless/ti/wlcore/tx.c
+++ b/drivers/net/wireless/ti/wlcore/tx.c
@@ -863,7 +863,6 @@ void wl1271_tx_work(struct work_struct *work)
goto out;
}
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
diff --git a/drivers/net/wireless/ti/wlcore/vendor_cmd.c b/drivers/net/wireless/ti/wlcore/vendor_cmd.c
index e4269e2b0098..5bb9eb300f97 100644
--- a/drivers/net/wireless/ti/wlcore/vendor_cmd.c
+++ b/drivers/net/wireless/ti/wlcore/vendor_cmd.c
@@ -60,7 +60,6 @@ wlcore_vendor_cmd_smart_config_start(struct wiphy *wiphy,
ret = wlcore_smart_config_start(wl,
nla_get_u32(tb[WLCORE_VENDOR_ATTR_GROUP_ID]));
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -92,7 +91,6 @@ wlcore_vendor_cmd_smart_config_stop(struct wiphy *wiphy,
ret = wlcore_smart_config_stop(wl);
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
@@ -140,7 +138,6 @@ wlcore_vendor_cmd_smart_config_set_group_key(struct wiphy *wiphy,
nla_len(tb[WLCORE_VENDOR_ATTR_GROUP_KEY]),
nla_data(tb[WLCORE_VENDOR_ATTR_GROUP_KEY]));
- pm_runtime_mark_last_busy(wl->dev);
pm_runtime_put_autosuspend(wl->dev);
out:
mutex_unlock(&wl->mutex);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 49/80] net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (47 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 48/80] net: wireless: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-05 9:51 ` Sergey Ryazanov
2025-07-04 7:54 ` [PATCH 50/80] nfc: trf7970a: " Sakari Ailus
` (38 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Stephan Gerhold, Loic Poulain, Sergey Ryazanov, Johannes Berg,
Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Chandrashekar Devegowda, Chiranjeevi Rapolu,
Liu Haijun, M Chetan Kumar, Ricardo Martinez
Cc: netdev, linux-arm-msm, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/net/wwan/qcom_bam_dmux.c | 2 --
drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 3 ---
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 2 --
drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c | 2 --
4 files changed, 9 deletions(-)
diff --git a/drivers/net/wwan/qcom_bam_dmux.c b/drivers/net/wwan/qcom_bam_dmux.c
index 64dab8b57611..6a5b22589af4 100644
--- a/drivers/net/wwan/qcom_bam_dmux.c
+++ b/drivers/net/wwan/qcom_bam_dmux.c
@@ -162,7 +162,6 @@ static void bam_dmux_tx_done(struct bam_dmux_skb_dma *skb_dma)
struct bam_dmux *dmux = skb_dma->dmux;
unsigned long flags;
- pm_runtime_mark_last_busy(dmux->dev);
pm_runtime_put_autosuspend(dmux->dev);
if (skb_dma->addr)
@@ -397,7 +396,6 @@ static void bam_dmux_tx_wakeup_work(struct work_struct *work)
dma_async_issue_pending(dmux->tx);
out:
- pm_runtime_mark_last_busy(dmux->dev);
pm_runtime_put_autosuspend(dmux->dev);
}
diff --git a/drivers/net/wwan/t7xx/t7xx_hif_cldma.c b/drivers/net/wwan/t7xx/t7xx_hif_cldma.c
index 97163e1e5783..689c920ca898 100644
--- a/drivers/net/wwan/t7xx/t7xx_hif_cldma.c
+++ b/drivers/net/wwan/t7xx/t7xx_hif_cldma.c
@@ -250,7 +250,6 @@ static void t7xx_cldma_rx_done(struct work_struct *work)
t7xx_cldma_clear_ip_busy(&md_ctrl->hw_info);
t7xx_cldma_hw_irq_en_txrx(&md_ctrl->hw_info, queue->index, MTK_RX);
t7xx_cldma_hw_irq_en_eq(&md_ctrl->hw_info, queue->index, MTK_RX);
- pm_runtime_mark_last_busy(md_ctrl->dev);
pm_runtime_put_autosuspend(md_ctrl->dev);
}
@@ -362,7 +361,6 @@ static void t7xx_cldma_tx_done(struct work_struct *work)
}
spin_unlock_irqrestore(&md_ctrl->cldma_lock, flags);
- pm_runtime_mark_last_busy(md_ctrl->dev);
pm_runtime_put_autosuspend(md_ctrl->dev);
}
@@ -987,7 +985,6 @@ int t7xx_cldma_send_skb(struct cldma_ctrl *md_ctrl, int qno, struct sk_buff *skb
allow_sleep:
t7xx_pci_enable_sleep(md_ctrl->t7xx_dev);
- pm_runtime_mark_last_busy(md_ctrl->dev);
pm_runtime_put_autosuspend(md_ctrl->dev);
return ret;
}
diff --git a/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c b/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c
index 6a7a26085fc7..15d2a65a51de 100644
--- a/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c
+++ b/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c
@@ -877,7 +877,6 @@ int t7xx_dpmaif_napi_rx_poll(struct napi_struct *napi, const int budget)
t7xx_dpmaif_clr_ip_busy_sts(&rxq->dpmaif_ctrl->hw_info);
t7xx_dpmaif_dlq_unmask_rx_done(&rxq->dpmaif_ctrl->hw_info, rxq->index);
t7xx_pci_enable_sleep(rxq->dpmaif_ctrl->t7xx_dev);
- pm_runtime_mark_last_busy(rxq->dpmaif_ctrl->dev);
pm_runtime_put_autosuspend(rxq->dpmaif_ctrl->dev);
atomic_set(&rxq->rx_processing, 0);
} else {
@@ -1078,7 +1077,6 @@ static void t7xx_dpmaif_bat_release_work(struct work_struct *work)
}
t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev);
- pm_runtime_mark_last_busy(dpmaif_ctrl->dev);
pm_runtime_put_autosuspend(dpmaif_ctrl->dev);
}
diff --git a/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c b/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c
index 8dab025a088a..236d632cf591 100644
--- a/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c
+++ b/drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c
@@ -185,7 +185,6 @@ static void t7xx_dpmaif_tx_done(struct work_struct *work)
}
t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev);
- pm_runtime_mark_last_busy(dpmaif_ctrl->dev);
pm_runtime_put_autosuspend(dpmaif_ctrl->dev);
}
@@ -468,7 +467,6 @@ static int t7xx_dpmaif_tx_hw_push_thread(void *arg)
t7xx_pci_disable_sleep(dpmaif_ctrl->t7xx_dev);
t7xx_do_tx_hw_push(dpmaif_ctrl);
t7xx_pci_enable_sleep(dpmaif_ctrl->t7xx_dev);
- pm_runtime_mark_last_busy(dpmaif_ctrl->dev);
pm_runtime_put_autosuspend(dpmaif_ctrl->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 50/80] nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (48 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 49/80] net: wwan: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:03 ` Krzysztof Kozlowski
2025-07-04 7:54 ` [PATCH 52/80] phy: motorola: phy-mapphone-mdm6600: " Sakari Ailus
` (37 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Mark Greer, Krzysztof Kozlowski; +Cc: linux-wireless, netdev, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/nfc/trf7970a.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
index d17c701c7888..2d0d348aa278 100644
--- a/drivers/nfc/trf7970a.c
+++ b/drivers/nfc/trf7970a.c
@@ -1139,7 +1139,6 @@ static void trf7970a_switch_rf_off(struct trf7970a *trf)
trf->aborting = false;
trf->state = TRF7970A_ST_RF_OFF;
- pm_runtime_mark_last_busy(trf->dev);
pm_runtime_put_autosuspend(trf->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 51/80] PCI/portdrv: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (50 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 52/80] phy: motorola: phy-mapphone-mdm6600: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 53/80] phy: ti: phy-twl4030-usb: " Sakari Ailus
` (35 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Bjorn Helgaas, Jonathan Cameron, Lukas Wunner, Ilpo Järvinen,
Kuppuswamy Sathyanarayanan, Feng Tang, Sakari Ailus
Cc: linux-pci, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/pci/pcie/portdrv.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/pci/pcie/portdrv.c b/drivers/pci/pcie/portdrv.c
index e8318fd5f6ed..437e27f63c82 100644
--- a/drivers/pci/pcie/portdrv.c
+++ b/drivers/pci/pcie/portdrv.c
@@ -714,7 +714,6 @@ static int pcie_portdrv_probe(struct pci_dev *dev,
*/
pm_runtime_set_autosuspend_delay(&dev->dev, 100);
pm_runtime_use_autosuspend(&dev->dev);
- pm_runtime_mark_last_busy(&dev->dev);
pm_runtime_put_autosuspend(&dev->dev);
pm_runtime_allow(&dev->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 52/80] phy: motorola: phy-mapphone-mdm6600: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (49 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 50/80] nfc: trf7970a: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 51/80] PCI/portdrv: " Sakari Ailus
` (36 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Uwe Kleine-König,
Bartosz Golaszewski, David Lechner, Linus Walleij, Sakari Ailus
Cc: linux-phy, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/phy/motorola/phy-mapphone-mdm6600.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/phy/motorola/phy-mapphone-mdm6600.c b/drivers/phy/motorola/phy-mapphone-mdm6600.c
index fd0e0cd1c1cf..c82826bd2832 100644
--- a/drivers/phy/motorola/phy-mapphone-mdm6600.c
+++ b/drivers/phy/motorola/phy-mapphone-mdm6600.c
@@ -248,7 +248,6 @@ static irqreturn_t phy_mdm6600_wakeirq_thread(int irq, void *data)
}
/* Just wake-up and kick the autosuspend timer */
- pm_runtime_mark_last_busy(ddata->dev);
pm_runtime_put_autosuspend(ddata->dev);
return IRQ_HANDLED;
@@ -616,7 +615,6 @@ static int phy_mdm6600_probe(struct platform_device *pdev)
error = PTR_ERR(ddata->phy_provider);
idle:
- pm_runtime_mark_last_busy(ddata->dev);
pm_runtime_put_autosuspend(ddata->dev);
cleanup:
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 53/80] phy: ti: phy-twl4030-usb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (51 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 51/80] PCI/portdrv: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 55/80] power: supply: twl4030_charger: " Sakari Ailus
` (34 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul, Kishon Vijay Abraham I, Sakari Ailus, Johan Hovold,
Uwe Kleine-König
Cc: linux-phy, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/phy/ti/phy-twl4030-usb.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/phy/ti/phy-twl4030-usb.c b/drivers/phy/ti/phy-twl4030-usb.c
index a26aec3ab29e..1d26189ace4f 100644
--- a/drivers/phy/ti/phy-twl4030-usb.c
+++ b/drivers/phy/ti/phy-twl4030-usb.c
@@ -505,7 +505,6 @@ static int twl4030_phy_power_on(struct phy *phy)
dev_dbg(twl->dev, "%s\n", __func__);
pm_runtime_get_sync(twl->dev);
schedule_delayed_work(&twl->id_workaround_work, HZ);
- pm_runtime_mark_last_busy(twl->dev);
pm_runtime_put_autosuspend(twl->dev);
return 0;
@@ -598,7 +597,6 @@ static irqreturn_t twl4030_usb_irq(int irq, void *_twl)
if (atomic_add_unless(&twl->connected, -1, 0)) {
dev_dbg(twl->dev, "%s: cable disconnected %i\n",
__func__, status);
- pm_runtime_mark_last_busy(twl->dev);
pm_runtime_put_autosuspend(twl->dev);
twl->musb_mailbox_pending = true;
}
@@ -636,7 +634,6 @@ static int twl4030_phy_init(struct phy *phy)
pm_runtime_get_sync(twl->dev);
twl->linkstat = MUSB_UNKNOWN;
schedule_delayed_work(&twl->id_workaround_work, HZ);
- pm_runtime_mark_last_busy(twl->dev);
pm_runtime_put_autosuspend(twl->dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 54/80] power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (53 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 55/80] power: supply: twl4030_charger: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 56/80] pwm: img: " Sakari Ailus
` (32 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Sebastian Reichel; +Cc: linux-pm, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/power/supply/bq24190_charger.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
index 2c3804e1207e..e1510c7fdab3 100644
--- a/drivers/power/supply/bq24190_charger.c
+++ b/drivers/power/supply/bq24190_charger.c
@@ -504,7 +504,6 @@ static ssize_t bq24190_sysfs_show(struct device *dev,
else
count = sysfs_emit(buf, "%hhx\n", v);
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return count;
@@ -535,7 +534,6 @@ static ssize_t bq24190_sysfs_store(struct device *dev,
if (ret)
count = ret;
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return count;
@@ -562,7 +560,6 @@ static int bq24190_set_otg_vbus(struct bq24190_dev_info *bdi, bool enable)
else
ret = bq24190_charger_set_charge_type(bdi, &val);
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return ret;
@@ -605,7 +602,6 @@ static int bq24296_set_otg_vbus(struct bq24190_dev_info *bdi, bool enable)
}
out:
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return ret;
@@ -638,7 +634,6 @@ static int bq24190_vbus_is_enabled(struct regulator_dev *dev)
BQ24190_REG_POC_CHG_CONFIG_MASK,
BQ24190_REG_POC_CHG_CONFIG_SHIFT, &val);
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
if (ret)
@@ -675,7 +670,6 @@ static int bq24296_vbus_is_enabled(struct regulator_dev *dev)
BQ24296_REG_POC_OTG_CONFIG_MASK,
BQ24296_REG_POC_OTG_CONFIG_SHIFT, &val);
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
if (ret)
@@ -1376,7 +1370,6 @@ static int bq24190_charger_get_property(struct power_supply *psy,
ret = -ENODATA;
}
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return ret;
@@ -1419,7 +1412,6 @@ static int bq24190_charger_set_property(struct power_supply *psy,
ret = -EINVAL;
}
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return ret;
@@ -1682,7 +1674,6 @@ static int bq24190_battery_get_property(struct power_supply *psy,
ret = -ENODATA;
}
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return ret;
@@ -1713,7 +1704,6 @@ static int bq24190_battery_set_property(struct power_supply *psy,
ret = -EINVAL;
}
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
return ret;
@@ -1861,7 +1851,6 @@ static irqreturn_t bq24190_irq_handler_thread(int irq, void *data)
return IRQ_NONE;
}
bq24190_check_status(bdi);
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
bdi->irq_event = false;
@@ -2188,7 +2177,6 @@ static int bq24190_probe(struct i2c_client *client)
enable_irq_wake(client->irq);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -2275,7 +2263,6 @@ static __maybe_unused int bq24190_pm_suspend(struct device *dev)
bq24190_register_reset(bdi);
if (error >= 0) {
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
}
@@ -2300,7 +2287,6 @@ static __maybe_unused int bq24190_pm_resume(struct device *dev)
bq24190_read(bdi, BQ24190_REG_SS, &bdi->ss_reg);
if (error >= 0) {
- pm_runtime_mark_last_busy(bdi->dev);
pm_runtime_put_autosuspend(bdi->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 55/80] power: supply: twl4030_charger: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (52 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 53/80] phy: ti: phy-twl4030-usb: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 54/80] power: supply: bq24190: " Sakari Ailus
` (33 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Sebastian Reichel; +Cc: linux-pm, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/power/supply/twl4030_charger.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index 9dcb5457bef4..04216b2bfb6c 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -512,7 +512,6 @@ static int twl4030_charger_enable_usb(struct twl4030_bci *bci, bool enable)
ret |= twl_i2c_write_u8(TWL_MODULE_MAIN_CHARGE, 0x2a,
TWL4030_BCIMDKEY);
if (bci->usb_enabled) {
- pm_runtime_mark_last_busy(bci->transceiver->dev);
pm_runtime_put_autosuspend(bci->transceiver->dev);
bci->usb_enabled = 0;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 56/80] pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (54 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 54/80] power: supply: bq24190: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-09 8:55 ` Uwe Kleine-König
2025-07-04 7:54 ` [PATCH 57/80] regulator: stm32-vrefbuf: " Sakari Ailus
` (31 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: linux-pwm, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/pwm/pwm-img.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/pwm/pwm-img.c b/drivers/pwm/pwm-img.c
index 71542956feca..91e0b19f0c08 100644
--- a/drivers/pwm/pwm-img.c
+++ b/drivers/pwm/pwm-img.c
@@ -139,7 +139,6 @@ static int img_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
(timebase << PWM_CH_CFG_TMBASE_SHIFT);
img_pwm_writel(imgchip, PWM_CH_CFG(pwm->hwpwm), val);
- pm_runtime_mark_last_busy(pwmchip_parent(chip));
pm_runtime_put_autosuspend(pwmchip_parent(chip));
return 0;
@@ -175,7 +174,6 @@ static void img_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
val &= ~BIT(pwm->hwpwm);
img_pwm_writel(imgchip, PWM_CTRL_CFG, val);
- pm_runtime_mark_last_busy(pwmchip_parent(chip));
pm_runtime_put_autosuspend(pwmchip_parent(chip));
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 57/80] regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (55 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 56/80] pwm: img: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 58/80] remoteproc: omap: " Sakari Ailus
` (30 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, linux-stm32, linux-arm-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/regulator/stm32-vrefbuf.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/regulator/stm32-vrefbuf.c b/drivers/regulator/stm32-vrefbuf.c
index a85ea94f0673..9e391206f09d 100644
--- a/drivers/regulator/stm32-vrefbuf.c
+++ b/drivers/regulator/stm32-vrefbuf.c
@@ -67,7 +67,6 @@ static int stm32_vrefbuf_enable(struct regulator_dev *rdev)
writel_relaxed(val, priv->base + STM32_VREFBUF_CSR);
}
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return ret;
@@ -87,7 +86,6 @@ static int stm32_vrefbuf_disable(struct regulator_dev *rdev)
val &= ~STM32_ENVR;
writel_relaxed(val, priv->base + STM32_VREFBUF_CSR);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return 0;
@@ -104,7 +102,6 @@ static int stm32_vrefbuf_is_enabled(struct regulator_dev *rdev)
ret = readl_relaxed(priv->base + STM32_VREFBUF_CSR) & STM32_ENVR;
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return ret;
@@ -125,7 +122,6 @@ static int stm32_vrefbuf_set_voltage_sel(struct regulator_dev *rdev,
val = (val & ~STM32_VRS) | FIELD_PREP(STM32_VRS, sel);
writel_relaxed(val, priv->base + STM32_VREFBUF_CSR);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return 0;
@@ -144,7 +140,6 @@ static int stm32_vrefbuf_get_voltage_sel(struct regulator_dev *rdev)
val = readl_relaxed(priv->base + STM32_VREFBUF_CSR);
ret = FIELD_GET(STM32_VRS, val);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return ret;
@@ -218,7 +213,6 @@ static int stm32_vrefbuf_probe(struct platform_device *pdev)
}
platform_set_drvdata(pdev, rdev);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 58/80] remoteproc: omap: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (56 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 57/80] regulator: stm32-vrefbuf: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 60/80] soundwire: " Sakari Ailus
` (29 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier; +Cc: linux-remoteproc, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/remoteproc/omap_remoteproc.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c
index 9c9e9c3cf378..cb01354248af 100644
--- a/drivers/remoteproc/omap_remoteproc.c
+++ b/drivers/remoteproc/omap_remoteproc.c
@@ -555,7 +555,6 @@ static void omap_rproc_kick(struct rproc *rproc, int vqid)
dev_err(dev, "failed to send mailbox message, status = %d\n",
ret);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
@@ -656,7 +655,6 @@ static int omap_rproc_start(struct rproc *rproc)
pm_runtime_use_autosuspend(dev);
pm_runtime_get_noresume(dev);
pm_runtime_enable(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -714,7 +712,6 @@ static int omap_rproc_stop(struct rproc *rproc)
reset_control_deassert(oproc->reset);
out:
/* schedule the next auto-suspend */
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 59/80] slimbus: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (58 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 60/80] soundwire: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-09 6:41 ` Srinivas Kandagatla
2025-07-04 7:54 ` [PATCH 61/80] spi: " Sakari Ailus
` (27 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Srinivas Kandagatla; +Cc: linux-sound, linux-kernel, linux-arm-msm
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/slimbus/core.c | 1 -
drivers/slimbus/messaging.c | 2 --
drivers/slimbus/qcom-ctrl.c | 1 -
3 files changed, 4 deletions(-)
diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c
index 005fa2ef100f..31751ee4e400 100644
--- a/drivers/slimbus/core.c
+++ b/drivers/slimbus/core.c
@@ -504,7 +504,6 @@ int slim_device_report_present(struct slim_controller *ctrl,
ret = slim_device_alloc_laddr(sbdev, true);
slimbus_not_active:
- pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);
return ret;
}
diff --git a/drivers/slimbus/messaging.c b/drivers/slimbus/messaging.c
index 6f01d944f9c6..44197493010e 100644
--- a/drivers/slimbus/messaging.c
+++ b/drivers/slimbus/messaging.c
@@ -47,7 +47,6 @@ void slim_msg_response(struct slim_controller *ctrl, u8 *reply, u8 tid, u8 len)
complete(txn->comp);
/* Remove runtime-pm vote now that response was received for TID txn */
- pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);
}
EXPORT_SYMBOL_GPL(slim_msg_response);
@@ -171,7 +170,6 @@ int slim_do_transfer(struct slim_controller *ctrl, struct slim_msg_txn *txn)
* remove runtime-pm vote if this was TX only, or
* if there was error during this transaction
*/
- pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);
}
return ret;
diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c
index ab344f7472f2..880cf3081a20 100644
--- a/drivers/slimbus/qcom-ctrl.c
+++ b/drivers/slimbus/qcom-ctrl.c
@@ -695,7 +695,6 @@ static int qcom_slim_resume(struct device *dev)
dev_dbg(dev, "system resume");
ret = qcom_slim_runtime_resume(dev);
if (!ret) {
- pm_runtime_mark_last_busy(dev);
pm_request_autosuspend(dev);
}
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 60/80] soundwire: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (57 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 58/80] remoteproc: omap: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 59/80] slimbus: " Sakari Ailus
` (28 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Vinod Koul, Bard Liao, Pierre-Louis Bossart, Srinivas Kandagatla
Cc: linux-sound, linux-kernel, linux-arm-msm
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/soundwire/bus.c | 1 -
drivers/soundwire/cadence_master.c | 1 -
drivers/soundwire/qcom.c | 3 ---
3 files changed, 5 deletions(-)
diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c
index 4fd5cac799c5..0d31bb2aff24 100644
--- a/drivers/soundwire/bus.c
+++ b/drivers/soundwire/bus.c
@@ -1833,7 +1833,6 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
dev_warn(&slave->dev, "Reached MAX_RETRY on alert read\n");
io_err:
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
return ret;
diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c
index 21bb491d026b..bdd538d09ee7 100644
--- a/drivers/soundwire/cadence_master.c
+++ b/drivers/soundwire/cadence_master.c
@@ -486,7 +486,6 @@ static int cdns_parity_error_injection(void *data, u64 value)
* allow Master device to enter pm_runtime suspend. This may
* also result in Slave devices suspending.
*/
- pm_runtime_mark_last_busy(bus->dev);
pm_runtime_put_autosuspend(bus->dev);
return 0;
diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c
index 3265c39e6b51..0ab7e2c7945f 100644
--- a/drivers/soundwire/qcom.c
+++ b/drivers/soundwire/qcom.c
@@ -657,7 +657,6 @@ static irqreturn_t qcom_swrm_wake_irq_handler(int irq, void *dev_id)
disable_irq_nosync(ctrl->wake_irq);
}
- pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);
return IRQ_HANDLED;
@@ -1319,7 +1318,6 @@ static void qcom_swrm_shutdown(struct snd_pcm_substream *substream,
struct qcom_swrm_ctrl *ctrl = dev_get_drvdata(dai->dev);
swrm_wait_for_wr_fifo_done(ctrl);
- pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);
}
@@ -1502,7 +1500,6 @@ static int swrm_reg_show(struct seq_file *s_file, void *data)
ctrl->reg_read(ctrl, reg, ®_val);
seq_printf(s_file, "0x%.3x: 0x%.2x\n", reg, reg_val);
}
- pm_runtime_mark_last_busy(ctrl->dev);
pm_runtime_put_autosuspend(ctrl->dev);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 61/80] spi: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (59 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 59/80] slimbus: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-04 7:54 ` [PATCH 62/80] staging: greybus: " Sakari Ailus
` (26 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Mark Brown, Nicolas Ferre, Alexandre Belloni, Claudiu Beznea,
Frank Li, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Matthias Brugger, AngeloGioacchino Del Regno,
Han Xu, Haibo Chen, Yogesh Gaur, Heiko Stuebner, Andi Shyti,
Tudor Ambarus, Krzysztof Kozlowski, Alim Akhtar, Orson Zhai,
Baolin Wang, Chunyan Zhang, Maxime Coquelin, Alexandre Torgue,
Alain Volmat, Michal Simek
Cc: linux-spi, linux-arm-kernel, linux-kernel, imx, linux-mediatek,
linux-rockchip, linux-samsung-soc, linux-stm32
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/spi/atmel-quadspi.c | 5 -----
drivers/spi/spi-cadence-quadspi.c | 2 --
drivers/spi/spi-cadence.c | 1 -
drivers/spi/spi-fsl-espi.c | 2 --
drivers/spi/spi-fsl-lpspi.c | 2 --
drivers/spi/spi-imx.c | 3 ---
drivers/spi/spi-mtk-nor.c | 1 -
drivers/spi/spi-nxp-fspi.c | 1 -
drivers/spi/spi-omap2-mcspi.c | 3 ---
drivers/spi/spi-rockchip-sfc.c | 3 ---
drivers/spi/spi-s3c64xx.c | 3 ---
drivers/spi/spi-sprd.c | 1 -
drivers/spi/spi-stm32-ospi.c | 7 -------
drivers/spi/spi-stm32-qspi.c | 7 -------
drivers/spi/spi-stm32.c | 2 --
drivers/spi/spi-ti-qspi.c | 2 --
drivers/spi/spi-zynqmp-gqspi.c | 1 -
drivers/spi/spi.c | 3 ---
18 files changed, 49 deletions(-)
diff --git a/drivers/spi/atmel-quadspi.c b/drivers/spi/atmel-quadspi.c
index fc555c0ce52e..4e9bfd26aa80 100644
--- a/drivers/spi/atmel-quadspi.c
+++ b/drivers/spi/atmel-quadspi.c
@@ -965,7 +965,6 @@ static int atmel_qspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
err = aq->ops->transfer(mem, op, offset);
pm_runtime_put:
- pm_runtime_mark_last_busy(&aq->pdev->dev);
pm_runtime_put_autosuspend(&aq->pdev->dev);
return err;
}
@@ -1168,7 +1167,6 @@ static int atmel_qspi_setup(struct spi_device *spi)
aq->scr |= QSPI_SCR_SCBR(scbr);
atmel_qspi_write(aq->scr, aq, QSPI_SCR);
- pm_runtime_mark_last_busy(ctrl->dev.parent);
pm_runtime_put_autosuspend(ctrl->dev.parent);
return 0;
@@ -1230,7 +1228,6 @@ static int atmel_qspi_set_cs_timing(struct spi_device *spi)
aq->mr |= QSPI_MR_DLYBCT(cs_hold) | QSPI_MR_DLYCS(cs_inactive);
atmel_qspi_write(aq->mr, aq, QSPI_MR);
- pm_runtime_mark_last_busy(ctrl->dev.parent);
pm_runtime_put_autosuspend(ctrl->dev.parent);
return 0;
@@ -1435,7 +1432,6 @@ static int atmel_qspi_probe(struct platform_device *pdev)
if (err)
return err;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
@@ -1560,7 +1556,6 @@ static int __maybe_unused atmel_qspi_resume(struct device *dev)
atmel_qspi_write(aq->scr, aq, QSPI_SCR);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
index aa1932ba17cb..82f1c4d59af8 100644
--- a/drivers/spi/spi-cadence-quadspi.c
+++ b/drivers/spi/spi-cadence-quadspi.c
@@ -1469,7 +1469,6 @@ static int cqspi_exec_mem_op(struct spi_mem *mem, const struct spi_mem_op *op)
ret = cqspi_mem_process(mem, op);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
if (ret)
@@ -1975,7 +1974,6 @@ static int cqspi_probe(struct platform_device *pdev)
goto probe_setup_failed;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c
index 9e56bde87768..5ae09b21d23a 100644
--- a/drivers/spi/spi-cadence.c
+++ b/drivers/spi/spi-cadence.c
@@ -662,7 +662,6 @@ static int cdns_spi_probe(struct platform_device *pdev)
/* Set to default valid value */
ctlr->max_speed_hz = xspi->clk_rate / 4;
xspi->speed_hz = ctlr->max_speed_hz;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
} else {
ctlr->mode_bits |= SPI_NO_CS;
diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c
index 6a73eaa34cf7..f2f1d3298e6c 100644
--- a/drivers/spi/spi-fsl-espi.c
+++ b/drivers/spi/spi-fsl-espi.c
@@ -513,7 +513,6 @@ static int fsl_espi_setup(struct spi_device *spi)
fsl_espi_setup_transfer(spi, NULL);
- pm_runtime_mark_last_busy(espi->dev);
pm_runtime_put_autosuspend(espi->dev);
return 0;
@@ -726,7 +725,6 @@ static int fsl_espi_probe(struct device *dev, struct resource *mem,
dev_info(dev, "irq = %u\n", irq);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 5e3818445234..67d4000c3cef 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -233,7 +233,6 @@ static int lpspi_unprepare_xfer_hardware(struct spi_controller *controller)
struct fsl_lpspi_data *fsl_lpspi =
spi_controller_get_devdata(controller);
- pm_runtime_mark_last_busy(fsl_lpspi->dev);
pm_runtime_put_autosuspend(fsl_lpspi->dev);
return 0;
@@ -966,7 +965,6 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
goto free_dma;
}
- pm_runtime_mark_last_busy(fsl_lpspi->dev);
pm_runtime_put_autosuspend(fsl_lpspi->dev);
return 0;
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
index c93d80a4d734..155ddeb8fcd4 100644
--- a/drivers/spi/spi-imx.c
+++ b/drivers/spi/spi-imx.c
@@ -1748,7 +1748,6 @@ spi_imx_prepare_message(struct spi_controller *controller, struct spi_message *m
ret = spi_imx->devtype_data->prepare_message(spi_imx, msg);
if (ret) {
- pm_runtime_mark_last_busy(spi_imx->dev);
pm_runtime_put_autosuspend(spi_imx->dev);
}
@@ -1760,7 +1759,6 @@ spi_imx_unprepare_message(struct spi_controller *controller, struct spi_message
{
struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
- pm_runtime_mark_last_busy(spi_imx->dev);
pm_runtime_put_autosuspend(spi_imx->dev);
return 0;
}
@@ -1933,7 +1931,6 @@ static int spi_imx_probe(struct platform_device *pdev)
goto out_register_controller;
}
- pm_runtime_mark_last_busy(spi_imx->dev);
pm_runtime_put_autosuspend(spi_imx->dev);
return ret;
diff --git a/drivers/spi/spi-mtk-nor.c b/drivers/spi/spi-mtk-nor.c
index 85ab5ce96c4d..5cc4632e13d7 100644
--- a/drivers/spi/spi-mtk-nor.c
+++ b/drivers/spi/spi-mtk-nor.c
@@ -918,7 +918,6 @@ static int mtk_nor_probe(struct platform_device *pdev)
if (ret < 0)
goto err_probe;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
dev_info(&pdev->dev, "spi frequency: %d Hz\n", sp->spi_freq);
diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c
index e63c77e41823..c7d4827f1bf1 100644
--- a/drivers/spi/spi-nxp-fspi.c
+++ b/drivers/spi/spi-nxp-fspi.c
@@ -968,7 +968,6 @@ static int nxp_fspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
/* Invalidate the data in the AHB buffer. */
nxp_fspi_invalid(f);
- pm_runtime_mark_last_busy(f->dev);
pm_runtime_put_autosuspend(f->dev);
return err;
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c
index 70bb74b3bd9c..6dc58a30804a 100644
--- a/drivers/spi/spi-omap2-mcspi.c
+++ b/drivers/spi/spi-omap2-mcspi.c
@@ -272,7 +272,6 @@ static void omap2_mcspi_set_cs(struct spi_device *spi, bool enable)
mcspi_write_chconf0(spi, l);
- pm_runtime_mark_last_busy(mcspi->dev);
pm_runtime_put_autosuspend(mcspi->dev);
}
}
@@ -1102,7 +1101,6 @@ static int omap2_mcspi_setup(struct spi_device *spi)
if (ret && initial_setup)
omap2_mcspi_cleanup(spi);
- pm_runtime_mark_last_busy(mcspi->dev);
pm_runtime_put_autosuspend(mcspi->dev);
return ret;
@@ -1379,7 +1377,6 @@ static int omap2_mcspi_controller_setup(struct omap2_mcspi *mcspi)
ctx->wakeupenable = OMAP2_MCSPI_WAKEUPENABLE_WKEN;
omap2_mcspi_set_mode(ctlr);
- pm_runtime_mark_last_busy(mcspi->dev);
pm_runtime_put_autosuspend(mcspi->dev);
return 0;
}
diff --git a/drivers/spi/spi-rockchip-sfc.c b/drivers/spi/spi-rockchip-sfc.c
index f3fe10eddb6a..9eba5c0a60f2 100644
--- a/drivers/spi/spi-rockchip-sfc.c
+++ b/drivers/spi/spi-rockchip-sfc.c
@@ -565,7 +565,6 @@ static int rockchip_sfc_exec_mem_op(struct spi_mem *mem, const struct spi_mem_op
ret = rockchip_sfc_xfer_done(sfc, 100000);
out:
- pm_runtime_mark_last_busy(sfc->dev);
pm_runtime_put_autosuspend(sfc->dev);
return ret;
@@ -712,7 +711,6 @@ static int rockchip_sfc_probe(struct platform_device *pdev)
if (ret)
goto err_register;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -799,7 +797,6 @@ static int rockchip_sfc_resume(struct device *dev)
rockchip_sfc_init(sfc);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 9c47f5741c5f..b1567243ae19 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -1045,14 +1045,12 @@ static int s3c64xx_spi_setup(struct spi_device *spi)
}
}
- pm_runtime_mark_last_busy(&sdd->pdev->dev);
pm_runtime_put_autosuspend(&sdd->pdev->dev);
s3c64xx_spi_set_cs(spi, false);
return 0;
setup_exit:
- pm_runtime_mark_last_busy(&sdd->pdev->dev);
pm_runtime_put_autosuspend(&sdd->pdev->dev);
/* setup() returns with device de-selected */
s3c64xx_spi_set_cs(spi, false);
@@ -1384,7 +1382,6 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
dev_dbg(&pdev->dev, "\tIOmem=[%pR]\tFIFO %dbytes\n",
mem_res, sdd->fifo_depth);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/spi/spi-sprd.c b/drivers/spi/spi-sprd.c
index ae794058b381..ad75f5f0f2bf 100644
--- a/drivers/spi/spi-sprd.c
+++ b/drivers/spi/spi-sprd.c
@@ -982,7 +982,6 @@ static int sprd_spi_probe(struct platform_device *pdev)
if (ret)
goto err_rpm_put;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/spi/spi-stm32-ospi.c b/drivers/spi/spi-stm32-ospi.c
index 4ab7e86f4bd5..2829535e5cd4 100644
--- a/drivers/spi/spi-stm32-ospi.c
+++ b/drivers/spi/spi-stm32-ospi.c
@@ -547,7 +547,6 @@ static int stm32_ospi_poll_status(struct spi_mem *mem,
ret = stm32_ospi_send(mem->spi, op);
mutex_unlock(&ospi->lock);
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return ret;
@@ -571,7 +570,6 @@ static int stm32_ospi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
ret = stm32_ospi_send(mem->spi, op);
mutex_unlock(&ospi->lock);
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return ret;
@@ -628,7 +626,6 @@ static ssize_t stm32_ospi_dirmap_read(struct spi_mem_dirmap_desc *desc,
ret = stm32_ospi_send(desc->mem->spi, &op);
mutex_unlock(&ospi->lock);
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return ret ?: len;
@@ -713,7 +710,6 @@ static int stm32_ospi_transfer_one_message(struct spi_controller *ctrl,
msg->status = ret;
spi_finalize_current_message(ctrl);
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return ret;
@@ -750,7 +746,6 @@ static int stm32_ospi_setup(struct spi_device *spi)
mutex_unlock(&ospi->lock);
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return 0;
@@ -953,7 +948,6 @@ static int stm32_ospi_probe(struct platform_device *pdev)
goto err_pm_resume;
}
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return 0;
@@ -1032,7 +1026,6 @@ static int __maybe_unused stm32_ospi_resume(struct device *dev)
writel_relaxed(ospi->cr_reg, regs_base + OSPI_CR);
writel_relaxed(ospi->dcr_reg, regs_base + OSPI_DCR1);
- pm_runtime_mark_last_busy(ospi->dev);
pm_runtime_put_autosuspend(ospi->dev);
return 0;
diff --git a/drivers/spi/spi-stm32-qspi.c b/drivers/spi/spi-stm32-qspi.c
index 9691197bbf5a..f2d19f1c5ab1 100644
--- a/drivers/spi/spi-stm32-qspi.c
+++ b/drivers/spi/spi-stm32-qspi.c
@@ -463,7 +463,6 @@ static int stm32_qspi_poll_status(struct spi_mem *mem, const struct spi_mem_op *
ret = stm32_qspi_send(mem->spi, op);
mutex_unlock(&qspi->lock);
- pm_runtime_mark_last_busy(qspi->dev);
pm_runtime_put_autosuspend(qspi->dev);
return ret;
@@ -487,7 +486,6 @@ static int stm32_qspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)
ret = stm32_qspi_send(mem->spi, op);
mutex_unlock(&qspi->lock);
- pm_runtime_mark_last_busy(qspi->dev);
pm_runtime_put_autosuspend(qspi->dev);
return ret;
@@ -543,7 +541,6 @@ static ssize_t stm32_qspi_dirmap_read(struct spi_mem_dirmap_desc *desc,
ret = stm32_qspi_send(desc->mem->spi, &op);
mutex_unlock(&qspi->lock);
- pm_runtime_mark_last_busy(qspi->dev);
pm_runtime_put_autosuspend(qspi->dev);
return ret ?: len;
@@ -627,7 +624,6 @@ static int stm32_qspi_transfer_one_message(struct spi_controller *ctrl,
msg->status = ret;
spi_finalize_current_message(ctrl);
- pm_runtime_mark_last_busy(qspi->dev);
pm_runtime_put_autosuspend(qspi->dev);
return ret;
@@ -684,7 +680,6 @@ static int stm32_qspi_setup(struct spi_device *spi)
writel_relaxed(qspi->dcr_reg, qspi->io_base + QSPI_DCR);
mutex_unlock(&qspi->lock);
- pm_runtime_mark_last_busy(qspi->dev);
pm_runtime_put_autosuspend(qspi->dev);
return 0;
@@ -858,7 +853,6 @@ static int stm32_qspi_probe(struct platform_device *pdev)
if (ret)
goto err_pm_runtime_free;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -938,7 +932,6 @@ static int __maybe_unused stm32_qspi_resume(struct device *dev)
writel_relaxed(qspi->cr_reg, qspi->io_base + QSPI_CR);
writel_relaxed(qspi->dcr_reg, qspi->io_base + QSPI_DCR);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/spi/spi-stm32.c b/drivers/spi/spi-stm32.c
index 3d20f09f1ae7..e8f3eff71b0e 100644
--- a/drivers/spi/spi-stm32.c
+++ b/drivers/spi/spi-stm32.c
@@ -2469,7 +2469,6 @@ static int stm32_spi_probe(struct platform_device *pdev)
goto err_pm_disable;
}
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
dev_info(&pdev->dev, "driver initialized (%s mode)\n",
@@ -2588,7 +2587,6 @@ static int __maybe_unused stm32_spi_resume(struct device *dev)
spi->cfg->config(spi);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
index a284d2794586..0b7eaccbc797 100644
--- a/drivers/spi/spi-ti-qspi.c
+++ b/drivers/spi/spi-ti-qspi.c
@@ -158,7 +158,6 @@ static int ti_qspi_setup(struct spi_device *spi)
return ret;
}
- pm_runtime_mark_last_busy(qspi->dev);
ret = pm_runtime_put_autosuspend(qspi->dev);
if (ret < 0) {
dev_err(qspi->dev, "pm_runtime_put_autosuspend() failed\n");
@@ -195,7 +194,6 @@ static void ti_qspi_setup_clk(struct ti_qspi *qspi, u32 speed_hz)
ctx_reg->clkctrl = clk_ctrl_new;
}
- pm_runtime_mark_last_busy(qspi->dev);
pm_runtime_put_autosuspend(qspi->dev);
}
diff --git a/drivers/spi/spi-zynqmp-gqspi.c b/drivers/spi/spi-zynqmp-gqspi.c
index 595b6dc10845..502fd5eccc83 100644
--- a/drivers/spi/spi-zynqmp-gqspi.c
+++ b/drivers/spi/spi-zynqmp-gqspi.c
@@ -1330,7 +1330,6 @@ static int zynqmp_qspi_probe(struct platform_device *pdev)
goto clk_dis_all;
}
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 1bc0fdbb1bd7..91413cc0936a 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1723,7 +1723,6 @@ EXPORT_SYMBOL_GPL(spi_finalize_current_transfer);
static void spi_idle_runtime_pm(struct spi_controller *ctlr)
{
if (ctlr->auto_runtime_pm) {
- pm_runtime_mark_last_busy(ctlr->dev.parent);
pm_runtime_put_autosuspend(ctlr->dev.parent);
}
}
@@ -3856,7 +3855,6 @@ static int spi_set_cs_timing(struct spi_device *spi)
}
status = spi->controller->set_cs_timing(spi);
- pm_runtime_mark_last_busy(parent);
pm_runtime_put_autosuspend(parent);
} else {
status = spi->controller->set_cs_timing(spi);
@@ -3991,7 +3989,6 @@ int spi_setup(struct spi_device *spi)
status = 0;
spi_set_cs(spi, false, true);
- pm_runtime_mark_last_busy(spi->controller->dev.parent);
pm_runtime_put_autosuspend(spi->controller->dev.parent);
} else {
spi_set_cs(spi, false, true);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 62/80] staging: greybus: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (60 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 61/80] spi: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 63/80] " Sakari Ailus
` (25 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Johan Hovold, Alex Elder, Greg Kroah-Hartman
Cc: greybus-dev, linux-staging, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/staging/greybus/gbphy.c | 1 -
drivers/staging/greybus/gbphy.h | 1 -
2 files changed, 2 deletions(-)
diff --git a/drivers/staging/greybus/gbphy.c b/drivers/staging/greybus/gbphy.c
index 6adcad286633..3068bd71cd98 100644
--- a/drivers/staging/greybus/gbphy.c
+++ b/drivers/staging/greybus/gbphy.c
@@ -53,7 +53,6 @@ static void gbphy_dev_release(struct device *dev)
#ifdef CONFIG_PM
static int gb_gbphy_idle(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_request_autosuspend(dev);
return 0;
}
diff --git a/drivers/staging/greybus/gbphy.h b/drivers/staging/greybus/gbphy.h
index d4a225b76338..4a4ebc7f2b98 100644
--- a/drivers/staging/greybus/gbphy.h
+++ b/drivers/staging/greybus/gbphy.h
@@ -85,7 +85,6 @@ static inline void gbphy_runtime_put_autosuspend(struct gbphy_device *gbphy_dev)
{
struct device *dev = &gbphy_dev->dev;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 63/80] greybus: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (61 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 62/80] staging: greybus: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 64/80] media: rkvdec: " Sakari Ailus
` (24 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Johan Hovold, Alex Elder, Greg Kroah-Hartman; +Cc: greybus-dev, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/greybus/bundle.c | 1 -
drivers/greybus/interface.c | 1 -
2 files changed, 2 deletions(-)
diff --git a/drivers/greybus/bundle.c b/drivers/greybus/bundle.c
index a6e1cca06172..269a82c5c757 100644
--- a/drivers/greybus/bundle.c
+++ b/drivers/greybus/bundle.c
@@ -155,7 +155,6 @@ static int gb_bundle_resume(struct device *dev)
static int gb_bundle_idle(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_request_autosuspend(dev);
return 0;
diff --git a/drivers/greybus/interface.c b/drivers/greybus/interface.c
index a0f3e9422721..c49fe54c16ca 100644
--- a/drivers/greybus/interface.c
+++ b/drivers/greybus/interface.c
@@ -753,7 +753,6 @@ static int gb_interface_resume(struct device *dev)
static int gb_interface_runtime_idle(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_request_autosuspend(dev);
return 0;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 64/80] media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (62 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 63/80] " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 13:05 ` Nicolas Dufresne
2025-08-11 13:48 ` Nicolas Dufresne
2025-07-04 7:54 ` [PATCH 65/80] thunderbolt: " Sakari Ailus
` (23 subsequent siblings)
87 siblings, 2 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Ezequiel Garcia, Mauro Carvalho Chehab, Greg Kroah-Hartman
Cc: linux-media, linux-rockchip, linux-staging, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/staging/media/rkvdec/rkvdec.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c
index d707088ec0dc..445f7c92eee3 100644
--- a/drivers/staging/media/rkvdec/rkvdec.c
+++ b/drivers/staging/media/rkvdec/rkvdec.c
@@ -765,7 +765,6 @@ static void rkvdec_job_finish(struct rkvdec_ctx *ctx,
{
struct rkvdec_dev *rkvdec = ctx->dev;
- pm_runtime_mark_last_busy(rkvdec->dev);
pm_runtime_put_autosuspend(rkvdec->dev);
rkvdec_job_finish_no_pm(ctx, result);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 65/80] thunderbolt: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (63 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 64/80] media: rkvdec: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 66/80] serial: " Sakari Ailus
` (22 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Andreas Noever, Michael Jamet, Mika Westerberg, Yehezkel Bernat
Cc: linux-usb, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/thunderbolt/debugfs.c | 11 -----------
drivers/thunderbolt/domain.c | 2 --
drivers/thunderbolt/icm.c | 7 -------
drivers/thunderbolt/retimer.c | 2 --
drivers/thunderbolt/switch.c | 4 ----
drivers/thunderbolt/tb.c | 9 ---------
drivers/thunderbolt/usb4_port.c | 2 --
7 files changed, 37 deletions(-)
diff --git a/drivers/thunderbolt/debugfs.c b/drivers/thunderbolt/debugfs.c
index f8328ca7e22e..d0e91c93916d 100644
--- a/drivers/thunderbolt/debugfs.c
+++ b/drivers/thunderbolt/debugfs.c
@@ -262,7 +262,6 @@ static ssize_t regs_write(struct tb_switch *sw, struct tb_port *port,
mutex_unlock(&tb->lock);
out:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
free_page((unsigned long)buf);
@@ -403,7 +402,6 @@ static ssize_t port_sb_regs_write(struct file *file, const char __user *user_buf
mutex_unlock(&tb->lock);
out:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
free_page((unsigned long)buf);
@@ -436,7 +434,6 @@ static ssize_t retimer_sb_regs_write(struct file *file,
mutex_unlock(&tb->lock);
out:
- pm_runtime_mark_last_busy(&rt->dev);
pm_runtime_put_autosuspend(&rt->dev);
free_page((unsigned long)buf);
@@ -1304,7 +1301,6 @@ static int margining_run_write(void *data, u64 val)
out_unlock:
mutex_unlock(&tb->lock);
out_rpm_put:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -1923,7 +1919,6 @@ static ssize_t counters_write(struct file *file, const char __user *user_buf,
mutex_unlock(&tb->lock);
out:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
free_page((unsigned long)buf);
@@ -2118,7 +2113,6 @@ static int port_regs_show(struct seq_file *s, void *not_used)
out_unlock:
mutex_unlock(&tb->lock);
out_rpm_put:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -2222,7 +2216,6 @@ static int switch_regs_show(struct seq_file *s, void *not_used)
out_unlock:
mutex_unlock(&tb->lock);
out_rpm_put:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -2283,7 +2276,6 @@ static int path_show(struct seq_file *s, void *not_used)
out_unlock:
mutex_unlock(&tb->lock);
out_rpm_put:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -2337,7 +2329,6 @@ static int counters_show(struct seq_file *s, void *not_used)
mutex_unlock(&tb->lock);
out:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -2391,7 +2382,6 @@ static int port_sb_regs_show(struct seq_file *s, void *not_used)
mutex_unlock(&tb->lock);
out_rpm_put:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -2506,7 +2496,6 @@ static int retimer_sb_regs_show(struct seq_file *s, void *not_used)
mutex_unlock(&tb->lock);
out_rpm_put:
- pm_runtime_mark_last_busy(&rt->dev);
pm_runtime_put_autosuspend(&rt->dev);
return ret;
diff --git a/drivers/thunderbolt/domain.c b/drivers/thunderbolt/domain.c
index a3a7c8059eee..15d7c8881be1 100644
--- a/drivers/thunderbolt/domain.c
+++ b/drivers/thunderbolt/domain.c
@@ -150,7 +150,6 @@ static ssize_t boot_acl_show(struct device *dev, struct device_attribute *attr,
}
out:
- pm_runtime_mark_last_busy(&tb->dev);
pm_runtime_put_autosuspend(&tb->dev);
kfree(uuids);
@@ -222,7 +221,6 @@ static ssize_t boot_acl_store(struct device *dev, struct device_attribute *attr,
mutex_unlock(&tb->lock);
err_rpm_put:
- pm_runtime_mark_last_busy(&tb->dev);
pm_runtime_put_autosuspend(&tb->dev);
err_free_acl:
kfree(acl);
diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index f213d9174dc5..ed8c9d8b1e36 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -367,7 +367,6 @@ static void icm_veto_end(struct tb *tb)
if (icm->veto) {
icm->veto = false;
/* Allow the domain suspend now */
- pm_runtime_mark_last_busy(&tb->dev);
pm_runtime_put_autosuspend(&tb->dev);
}
}
@@ -721,7 +720,6 @@ static void add_xdomain(struct tb_switch *sw, u64 route,
tb_xdomain_add(xd);
out:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
}
@@ -883,7 +881,6 @@ icm_fr_device_connected(struct tb *tb, const struct icm_pkg_header *hdr)
tb_switch_put(sw);
}
- pm_runtime_mark_last_busy(&parent_sw->dev);
pm_runtime_put_autosuspend(&parent_sw->dev);
tb_switch_put(parent_sw);
@@ -917,7 +914,6 @@ icm_fr_device_disconnected(struct tb *tb, const struct icm_pkg_header *hdr)
remove_switch(sw);
- pm_runtime_mark_last_busy(sw->dev.parent);
pm_runtime_put_autosuspend(sw->dev.parent);
tb_switch_put(sw);
@@ -1315,7 +1311,6 @@ __icm_tr_device_connected(struct tb *tb, const struct icm_pkg_header *hdr,
tb_switch_put(sw);
}
- pm_runtime_mark_last_busy(&parent_sw->dev);
pm_runtime_put_autosuspend(&parent_sw->dev);
tb_switch_put(parent_sw);
@@ -1346,7 +1341,6 @@ icm_tr_device_disconnected(struct tb *tb, const struct icm_pkg_header *hdr)
remove_switch(sw);
- pm_runtime_mark_last_busy(sw->dev.parent);
pm_runtime_put_autosuspend(sw->dev.parent);
tb_switch_put(sw);
@@ -2078,7 +2072,6 @@ static void remove_unplugged_switch(struct tb_switch *sw)
bus_for_each_dev(&tb_bus_type, &sw->dev, NULL, complete_rpm);
tb_switch_remove(sw);
- pm_runtime_mark_last_busy(parent);
pm_runtime_put_autosuspend(parent);
put_device(parent);
diff --git a/drivers/thunderbolt/retimer.c b/drivers/thunderbolt/retimer.c
index 361fece3d818..fa861567d246 100644
--- a/drivers/thunderbolt/retimer.c
+++ b/drivers/thunderbolt/retimer.c
@@ -53,7 +53,6 @@ static int nvm_read(void *priv, unsigned int offset, void *val, size_t bytes)
mutex_unlock(&rt->tb->lock);
out:
- pm_runtime_mark_last_busy(&rt->dev);
pm_runtime_put_autosuspend(&rt->dev);
return ret;
@@ -304,7 +303,6 @@ static ssize_t nvm_authenticate_store(struct device *dev,
tb_retimer_unset_inbound_sbtx(rt->port);
mutex_unlock(&rt->tb->lock);
exit_rpm:
- pm_runtime_mark_last_busy(&rt->dev);
pm_runtime_put_autosuspend(&rt->dev);
if (ret)
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index e9f4186f20f4..44e821444412 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -318,7 +318,6 @@ static int nvm_read(void *priv, unsigned int offset, void *val, size_t bytes)
mutex_unlock(&sw->tb->lock);
out:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -1846,7 +1845,6 @@ static ssize_t authorized_store(struct device *dev,
pm_runtime_get_sync(&sw->dev);
ret = tb_switch_set_authorized(sw, val);
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret ? ret : count;
@@ -2078,7 +2076,6 @@ static ssize_t nvm_authenticate_sysfs(struct device *dev, const char *buf,
exit_unlock:
mutex_unlock(&sw->tb->lock);
exit_rpm:
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
return ret;
@@ -3351,7 +3348,6 @@ int tb_switch_add(struct tb_switch *sw)
if (sw->rpm) {
pm_runtime_set_autosuspend_delay(&sw->dev, TB_AUTOSUSPEND_DELAY);
pm_runtime_use_autosuspend(&sw->dev);
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_enable(&sw->dev);
pm_request_autosuspend(&sw->dev);
}
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index c14ab1fbeeaf..bd8bfd774345 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -1271,7 +1271,6 @@ static void tb_scan_switch(struct tb_switch *sw)
tb_switch_for_each_port(sw, port)
tb_scan_port(port);
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
}
@@ -1415,7 +1414,6 @@ static void tb_scan_port(struct tb_port *port)
out_rpm_put:
if (port->usb4) {
- pm_runtime_mark_last_busy(&port->usb4->dev);
pm_runtime_put_autosuspend(&port->usb4->dev);
}
}
@@ -1740,9 +1738,7 @@ static void tb_deactivate_and_free_tunnel(struct tb_tunnel *tunnel)
*/
tb_configure_sym(tb, src_port, dst_port, true);
/* Now we can allow the domain to runtime suspend again */
- pm_runtime_mark_last_busy(&dst_port->sw->dev);
pm_runtime_put_autosuspend(&dst_port->sw->dev);
- pm_runtime_mark_last_busy(&src_port->sw->dev);
pm_runtime_put_autosuspend(&src_port->sw->dev);
fallthrough;
@@ -2046,9 +2042,7 @@ static void tb_tunnel_one_dp(struct tb *tb, struct tb_port *in,
err_dealloc_dp:
tb_switch_dealloc_dp_resource(in->sw, in);
err_rpm_put:
- pm_runtime_mark_last_busy(&out->sw->dev);
pm_runtime_put_autosuspend(&out->sw->dev);
- pm_runtime_mark_last_busy(&in->sw->dev);
pm_runtime_put_autosuspend(&in->sw->dev);
}
@@ -2508,7 +2502,6 @@ static void tb_handle_hotplug(struct work_struct *work)
}
}
- pm_runtime_mark_last_busy(&sw->dev);
pm_runtime_put_autosuspend(&sw->dev);
put_sw:
@@ -2516,7 +2509,6 @@ static void tb_handle_hotplug(struct work_struct *work)
out:
mutex_unlock(&tb->lock);
- pm_runtime_mark_last_busy(&tb->dev);
pm_runtime_put_autosuspend(&tb->dev);
kfree(ev);
@@ -2843,7 +2835,6 @@ static void tb_handle_dp_bandwidth_request(struct work_struct *work)
unlock:
mutex_unlock(&tb->lock);
- pm_runtime_mark_last_busy(&tb->dev);
pm_runtime_put_autosuspend(&tb->dev);
kfree(ev);
diff --git a/drivers/thunderbolt/usb4_port.c b/drivers/thunderbolt/usb4_port.c
index 852a45fcd19d..4739e92bb46f 100644
--- a/drivers/thunderbolt/usb4_port.c
+++ b/drivers/thunderbolt/usb4_port.c
@@ -200,7 +200,6 @@ static ssize_t offline_store(struct device *dev,
out_unlock:
mutex_unlock(&tb->lock);
out_rpm:
- pm_runtime_mark_last_busy(&usb4->dev);
pm_runtime_put_autosuspend(&usb4->dev);
return ret ? ret : count;
@@ -242,7 +241,6 @@ static ssize_t rescan_store(struct device *dev,
out_unlock:
mutex_unlock(&tb->lock);
out_rpm:
- pm_runtime_mark_last_busy(&usb4->dev);
pm_runtime_put_autosuspend(&usb4->dev);
return ret ? ret : count;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 66/80] serial: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (64 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 65/80] thunderbolt: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 67/80] usb: " Sakari Ailus
` (21 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Greg Kroah-Hartman, Jiri Slaby, Peter Korsgaard, Michal Simek,
Kevin Hilman, Markus Schneider-Pargmann, John Ogness,
Uwe Kleine-König, Sakari Ailus, Ilpo Järvinen,
Andy Shevchenko, Sherry Sun, Ingo Molnar, Peng Fan,
Thomas Gleixner, Christophe JAILLET, Petr Mladek,
Marcos Paulo de Souza, Nam Cao, Zack Rusin, Jinjie Ruan,
Sean Anderson
Cc: linux-kernel, linux-serial, linux-arm-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/tty/serial/8250/8250_omap.c | 9 ---------
drivers/tty/serial/8250/8250_port.c | 2 --
drivers/tty/serial/fsl_lpuart.c | 1 -
drivers/tty/serial/serial_core.c | 1 -
drivers/tty/serial/uartlite.c | 2 --
drivers/tty/serial/xilinx_uartps.c | 1 -
6 files changed, 16 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index 6707f55bdbe7..091afea71b95 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -207,7 +207,6 @@ static void omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl)
__omap8250_set_mctrl(port, mctrl);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
}
@@ -516,7 +515,6 @@ static void omap_8250_set_termios(struct uart_port *port,
omap8250_restore_regs(up);
uart_port_unlock_irq(&up->port);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
/* calculate wakeup latency constraint */
@@ -554,7 +552,6 @@ static void omap_8250_pm(struct uart_port *port, unsigned int state,
uart_port_unlock_irq(port);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
}
@@ -773,7 +770,6 @@ static int omap_8250_startup(struct uart_port *port)
enable_irq(port->irq);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
return 0;
}
@@ -811,7 +807,6 @@ static void omap_8250_shutdown(struct uart_port *port)
serial_out(up, UART_LCR, up->lcr & ~UART_LCR_SBC);
serial_out(up, UART_FCR, UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
}
@@ -827,7 +822,6 @@ static void omap_8250_throttle(struct uart_port *port)
priv->throttled = true;
uart_port_unlock_irqrestore(port, flags);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
}
@@ -848,7 +842,6 @@ static void omap_8250_unthrottle(struct uart_port *port)
serial_out(up, UART_IER, up->ier);
uart_port_unlock_irqrestore(port, flags);
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
}
@@ -1594,7 +1587,6 @@ static int omap8250_probe(struct platform_device *pdev)
goto err;
}
priv->line = ret;
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return 0;
err:
@@ -1682,7 +1674,6 @@ static int omap8250_resume(struct device *dev)
serial8250_resume_port(priv->line);
/* Paired with pm_runtime_resume_and_get() in omap8250_suspend() */
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 7eddcab318b4..22ad70117c44 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -519,7 +519,6 @@ static void serial8250_rpm_put(struct uart_8250_port *p)
{
if (!(p->capabilities & UART_CAP_RPM))
return;
- pm_runtime_mark_last_busy(p->port.dev);
pm_runtime_put_autosuspend(p->port.dev);
}
@@ -659,7 +658,6 @@ static void serial8250_rpm_put_tx(struct uart_8250_port *p)
rpm_active = xchg(&p->rpm_tx_active, 0);
if (!rpm_active)
return;
- pm_runtime_mark_last_busy(p->port.dev);
pm_runtime_put_autosuspend(p->port.dev);
}
diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
index c9519e649e82..79050a42cd1b 100644
--- a/drivers/tty/serial/fsl_lpuart.c
+++ b/drivers/tty/serial/fsl_lpuart.c
@@ -825,7 +825,6 @@ lpuart_uart_pm(struct uart_port *port, unsigned int state, unsigned int oldstate
{
switch (state) {
case UART_PM_STATE_OFF:
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
break;
default:
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 86d404d649a3..f9fc9afcd845 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -159,7 +159,6 @@ static void __uart_start(struct uart_state *state)
*/
if (!pm_runtime_enabled(port->dev) || pm_runtime_active(&port_dev->dev))
port->ops->start_tx(port);
- pm_runtime_mark_last_busy(&port_dev->dev);
pm_runtime_put_autosuspend(&port_dev->dev);
}
diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
index 39c1fd1ff9ce..c21cd5f5be27 100644
--- a/drivers/tty/serial/uartlite.c
+++ b/drivers/tty/serial/uartlite.c
@@ -422,7 +422,6 @@ static void ulite_pm(struct uart_port *port, unsigned int state,
if (ret < 0)
dev_err(port->dev, "Failed to enable clocks\n");
} else {
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
}
}
@@ -882,7 +881,6 @@ static int ulite_probe(struct platform_device *pdev)
ret = ulite_assign(&pdev->dev, id, res->start, irq, pdata);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
return ret;
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index fe457bf1e15b..36afa2a8f158 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1240,7 +1240,6 @@ static void cdns_uart_pm(struct uart_port *port, unsigned int state,
{
switch (state) {
case UART_PM_STATE_OFF:
- pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
break;
default:
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 67/80] usb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (65 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 66/80] serial: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 9:11 ` Thierry Reding
` (2 more replies)
2025-07-04 7:54 ` [PATCH 68/80] w1: omap-hdq: " Sakari Ailus
` (20 subsequent siblings)
87 siblings, 3 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Peter Chen, Pawel Laszczak, Roger Quadros, Greg Kroah-Hartman,
Thinh Nguyen, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Michal Simek, Chunfeng Yun, Mathias Nyman,
Matthias Brugger, AngeloGioacchino Del Regno, Thierry Reding,
Jonathan Hunter, Bastien Nocera, Bin Liu
Cc: linux-usb, linux-kernel, imx, linux-arm-kernel, linux-mediatek,
linux-tegra, linux-omap
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/usb/cdns3/cdns3-gadget.c | 1 -
drivers/usb/cdns3/cdnsp-gadget.c | 1 -
drivers/usb/chipidea/core.c | 1 -
drivers/usb/chipidea/otg_fsm.c | 1 -
drivers/usb/dwc3/core.c | 2 --
drivers/usb/dwc3/dwc3-am62.c | 1 -
drivers/usb/dwc3/dwc3-imx8mp.c | 1 -
drivers/usb/dwc3/dwc3-pci.c | 1 -
drivers/usb/dwc3/dwc3-xilinx.c | 1 -
drivers/usb/gadget/udc/cdns2/cdns2-gadget.c | 1 -
drivers/usb/host/xhci-mtk.c | 1 -
drivers/usb/host/xhci-tegra.c | 1 -
drivers/usb/misc/apple-mfi-fastcharge.c | 1 -
drivers/usb/mtu3/mtu3_plat.c | 1 -
drivers/usb/musb/musb_core.c | 5 -----
drivers/usb/musb/musb_debugfs.c | 5 -----
drivers/usb/musb/musb_dsps.c | 1 -
drivers/usb/musb/musb_gadget.c | 4 ----
drivers/usb/musb/omap2430.c | 1 -
19 files changed, 31 deletions(-)
diff --git a/drivers/usb/cdns3/cdns3-gadget.c b/drivers/usb/cdns3/cdns3-gadget.c
index d9d8dc05b235..168707213ed9 100644
--- a/drivers/usb/cdns3/cdns3-gadget.c
+++ b/drivers/usb/cdns3/cdns3-gadget.c
@@ -3251,7 +3251,6 @@ static void cdns3_gadget_exit(struct cdns *cdns)
priv_dev = cdns->gadget_dev;
- pm_runtime_mark_last_busy(cdns->dev);
pm_runtime_put_autosuspend(cdns->dev);
usb_del_gadget(&priv_dev->gadget);
diff --git a/drivers/usb/cdns3/cdnsp-gadget.c b/drivers/usb/cdns3/cdnsp-gadget.c
index 55f95f41b3b4..2ffe24a6e477 100644
--- a/drivers/usb/cdns3/cdnsp-gadget.c
+++ b/drivers/usb/cdns3/cdnsp-gadget.c
@@ -1996,7 +1996,6 @@ static void cdnsp_gadget_exit(struct cdns *cdns)
struct cdnsp_device *pdev = cdns->gadget_dev;
devm_free_irq(pdev->dev, cdns->dev_irq, pdev);
- pm_runtime_mark_last_busy(cdns->dev);
pm_runtime_put_autosuspend(cdns->dev);
usb_del_gadget_udc(&pdev->gadget);
cdnsp_gadget_free_endpoints(pdev);
diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
index 694b4a8e4e1d..a6ce73dcc871 100644
--- a/drivers/usb/chipidea/core.c
+++ b/drivers/usb/chipidea/core.c
@@ -1372,7 +1372,6 @@ static int ci_controller_resume(struct device *dev)
ci->in_lpm = false;
if (ci->wakeup_int) {
ci->wakeup_int = false;
- pm_runtime_mark_last_busy(ci->dev);
pm_runtime_put_autosuspend(ci->dev);
enable_irq(ci->irq);
if (ci_otg_is_fsm_mode(ci))
diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c
index a093544482d5..929536dc96ec 100644
--- a/drivers/usb/chipidea/otg_fsm.c
+++ b/drivers/usb/chipidea/otg_fsm.c
@@ -629,7 +629,6 @@ int ci_otg_fsm_work(struct ci_hdrc *ci)
ci_otg_queue_work(ci);
}
} else if (ci->fsm.otg->state == OTG_STATE_A_HOST) {
- pm_runtime_mark_last_busy(ci->dev);
pm_runtime_put_autosuspend(ci->dev);
return 0;
}
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 8002c23a5a02..77b309ebd704 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -279,7 +279,6 @@ static void __dwc3_set_mode(struct work_struct *work)
}
out:
- pm_runtime_mark_last_busy(dwc->dev);
pm_runtime_put_autosuspend(dwc->dev);
mutex_unlock(&dwc->mutex);
}
@@ -2642,7 +2641,6 @@ int dwc3_runtime_idle(struct dwc3 *dwc)
break;
}
- pm_runtime_mark_last_busy(dev);
pm_runtime_autosuspend(dev);
return 0;
diff --git a/drivers/usb/dwc3/dwc3-am62.c b/drivers/usb/dwc3/dwc3-am62.c
index 9db8f3ca493d..e11d7643f966 100644
--- a/drivers/usb/dwc3/dwc3-am62.c
+++ b/drivers/usb/dwc3/dwc3-am62.c
@@ -292,7 +292,6 @@ static int dwc3_ti_probe(struct platform_device *pdev)
/* Setting up autosuspend */
pm_runtime_set_autosuspend_delay(dev, DWC3_AM62_AUTOSUSPEND_DELAY);
pm_runtime_use_autosuspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/usb/dwc3/dwc3-imx8mp.c b/drivers/usb/dwc3/dwc3-imx8mp.c
index 3edc5aca76f9..37700d95bc09 100644
--- a/drivers/usb/dwc3/dwc3-imx8mp.c
+++ b/drivers/usb/dwc3/dwc3-imx8mp.c
@@ -307,7 +307,6 @@ static int dwc3_imx8mp_resume(struct dwc3_imx8mp *dwc3_imx, pm_message_t msg)
if (dwc3_imx->wakeup_pending) {
dwc3_imx->wakeup_pending = false;
if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_DEVICE) {
- pm_runtime_mark_last_busy(dwc->dev);
pm_runtime_put_autosuspend(dwc->dev);
} else {
/*
diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c
index 54a4ee2b90b7..07dfa0b5d184 100644
--- a/drivers/usb/dwc3/dwc3-pci.c
+++ b/drivers/usb/dwc3/dwc3-pci.c
@@ -321,7 +321,6 @@ static void dwc3_pci_resume_work(struct work_struct *work)
return;
}
- pm_runtime_mark_last_busy(&dwc3->dev);
pm_runtime_put_sync_autosuspend(&dwc3->dev);
}
#endif
diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-xilinx.c
index 1e28d6f50ed0..0a8c47876ff9 100644
--- a/drivers/usb/dwc3/dwc3-xilinx.c
+++ b/drivers/usb/dwc3/dwc3-xilinx.c
@@ -383,7 +383,6 @@ static int __maybe_unused dwc3_xlnx_runtime_resume(struct device *dev)
static int __maybe_unused dwc3_xlnx_runtime_idle(struct device *dev)
{
- pm_runtime_mark_last_busy(dev);
pm_runtime_autosuspend(dev);
return 0;
diff --git a/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c b/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
index 7e69944ef18a..9b53daf76583 100644
--- a/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
+++ b/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
@@ -2415,7 +2415,6 @@ int cdns2_gadget_resume(struct cdns2_device *pdev, bool hibernated)
void cdns2_gadget_remove(struct cdns2_device *pdev)
{
- pm_runtime_mark_last_busy(pdev->dev);
pm_runtime_put_autosuspend(pdev->dev);
usb_del_gadget(&pdev->gadget);
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
index 208558cf822d..06043c7c3100 100644
--- a/drivers/usb/host/xhci-mtk.c
+++ b/drivers/usb/host/xhci-mtk.c
@@ -670,7 +670,6 @@ static int xhci_mtk_probe(struct platform_device *pdev)
}
device_enable_async_suspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
pm_runtime_forbid(dev);
diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
index 0c7af44d4dae..554b03e3ae92 100644
--- a/drivers/usb/host/xhci-tegra.c
+++ b/drivers/usb/host/xhci-tegra.c
@@ -1394,7 +1394,6 @@ static void tegra_xhci_id_work(struct work_struct *work)
}
tegra_xhci_set_port_power(tegra, true, true);
- pm_runtime_mark_last_busy(tegra->dev);
} else {
if (tegra->otg_usb3_port >= 0)
diff --git a/drivers/usb/misc/apple-mfi-fastcharge.c b/drivers/usb/misc/apple-mfi-fastcharge.c
index 8e852f4b8262..47b38dcc2992 100644
--- a/drivers/usb/misc/apple-mfi-fastcharge.c
+++ b/drivers/usb/misc/apple-mfi-fastcharge.c
@@ -134,7 +134,6 @@ static int apple_mfi_fc_set_property(struct power_supply *psy,
ret = -EINVAL;
}
- pm_runtime_mark_last_busy(&mfi->udev->dev);
pm_runtime_put_autosuspend(&mfi->udev->dev);
return ret;
diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
index 7b5a431acb56..cc8a864dbd63 100644
--- a/drivers/usb/mtu3/mtu3_plat.c
+++ b/drivers/usb/mtu3/mtu3_plat.c
@@ -431,7 +431,6 @@ static int mtu3_probe(struct platform_device *pdev)
}
device_enable_async_suspend(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
pm_runtime_forbid(dev);
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index c7234b236971..0acc62569ae5 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2031,7 +2031,6 @@ static void musb_pm_runtime_check_session(struct musb *musb)
if (!musb->session)
break;
trace_musb_state(musb, devctl, "Allow PM on possible host mode disconnect");
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
musb->session = false;
return;
@@ -2063,7 +2062,6 @@ static void musb_pm_runtime_check_session(struct musb *musb)
msecs_to_jiffies(3000));
} else {
trace_musb_state(musb, devctl, "Allow PM with no session");
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
}
@@ -2090,7 +2088,6 @@ static void musb_irq_work(struct work_struct *data)
sysfs_notify(&musb->controller->kobj, NULL, "mode");
}
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
}
@@ -2564,7 +2561,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
musb_init_debugfs(musb);
musb->is_initialized = 1;
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return 0;
@@ -2887,7 +2883,6 @@ static int musb_resume(struct device *dev)
error);
spin_unlock_irqrestore(&musb->lock, flags);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
index 2d623284edf6..5092d62c2062 100644
--- a/drivers/usb/musb/musb_debugfs.c
+++ b/drivers/usb/musb/musb_debugfs.c
@@ -106,7 +106,6 @@ static int musb_regdump_show(struct seq_file *s, void *unused)
}
}
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return 0;
}
@@ -119,7 +118,6 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
pm_runtime_get_sync(musb->controller);
test = musb_readb(musb->mregs, MUSB_TESTMODE);
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
@@ -216,7 +214,6 @@ static ssize_t musb_test_mode_write(struct file *file,
musb_writeb(musb->mregs, MUSB_TESTMODE, test);
ret:
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return count;
}
@@ -243,7 +240,6 @@ static int musb_softconnect_show(struct seq_file *s, void *unused)
reg = musb_readb(musb->mregs, MUSB_DEVCTL);
connect = reg & MUSB_DEVCTL_SESSION ? 1 : 0;
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
break;
default:
@@ -304,7 +300,6 @@ static ssize_t musb_softconnect_write(struct file *file,
}
}
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return count;
}
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index 12f587ab8511..9f93ed59a7e6 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -296,7 +296,6 @@ static void otg_timer(struct timer_list *t)
if (err < 0)
dev_err(dev, "%s resume work: %i\n", __func__, err);
spin_unlock_irqrestore(&musb->lock, flags);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 6869c58367f2..f6ea91df80e4 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1258,7 +1258,6 @@ static int musb_gadget_queue(struct usb_ep *ep, struct usb_request *req,
unlock:
spin_unlock_irqrestore(&musb->lock, lockflags);
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return status;
@@ -1642,7 +1641,6 @@ static void musb_gadget_work(struct work_struct *work)
spin_lock_irqsave(&musb->lock, flags);
musb_pullup(musb, musb->softconnect);
spin_unlock_irqrestore(&musb->lock, flags);
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
}
@@ -1862,7 +1860,6 @@ static int musb_gadget_start(struct usb_gadget *g,
if (musb->xceiv && musb->xceiv->last_event == USB_EVENT_ID)
musb_platform_set_vbus(musb, 1);
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return 0;
@@ -1915,7 +1912,6 @@ static int musb_gadget_stop(struct usb_gadget *g)
*/
/* Force check of devctl register for PM runtime */
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
return 0;
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 2970967a4fd2..191901317d7f 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -151,7 +151,6 @@ static void omap_musb_set_mailbox(struct omap2430_glue *glue)
default:
dev_dbg(musb->controller, "ID float\n");
}
- pm_runtime_mark_last_busy(musb->controller);
pm_runtime_put_autosuspend(musb->controller);
atomic_notifier_call_chain(&musb->xceiv->notifier,
musb->xceiv->last_event, NULL);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 68/80] w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (66 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 67/80] usb: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 69/80] ALSA: hda: " Sakari Ailus
` (19 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Krzysztof Kozlowski, Sakari Ailus; +Cc: linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/w1/masters/omap_hdq.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c
index 69b1d145657a..d13db3396570 100644
--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -445,7 +445,6 @@ static u8 omap_w1_triplet(void *_hdq, u8 bdir)
out:
mutex_unlock(&hdq_data->hdq_mutex);
rtn:
- pm_runtime_mark_last_busy(hdq_data->dev);
pm_runtime_put_autosuspend(hdq_data->dev);
return ret;
@@ -466,7 +465,6 @@ static u8 omap_w1_reset_bus(void *_hdq)
omap_hdq_break(hdq_data);
- pm_runtime_mark_last_busy(hdq_data->dev);
pm_runtime_put_autosuspend(hdq_data->dev);
return 0;
@@ -490,7 +488,6 @@ static u8 omap_w1_read_byte(void *_hdq)
if (ret)
val = -1;
- pm_runtime_mark_last_busy(hdq_data->dev);
pm_runtime_put_autosuspend(hdq_data->dev);
return val;
@@ -525,7 +522,6 @@ static void omap_w1_write_byte(void *_hdq, u8 byte)
}
out_err:
- pm_runtime_mark_last_busy(hdq_data->dev);
pm_runtime_put_autosuspend(hdq_data->dev);
}
@@ -625,7 +621,6 @@ static int omap_hdq_probe(struct platform_device *pdev)
omap_hdq_break(hdq_data);
- pm_runtime_mark_last_busy(&pdev->dev);
pm_runtime_put_autosuspend(&pdev->dev);
omap_w1_master.data = hdq_data;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 70/80] ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (68 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 69/80] ALSA: hda: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 71/80] ASoC: codecs: " Sakari Ailus
` (17 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Claudiu Beznea, Andrei Simion, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Nicolas Ferre, Alexandre Belloni
Cc: linux-sound, linux-arm-kernel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/soc/atmel/mchp-spdifrx.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/sound/soc/atmel/mchp-spdifrx.c b/sound/soc/atmel/mchp-spdifrx.c
index fb820609c043..521bee4998f8 100644
--- a/sound/soc/atmel/mchp-spdifrx.c
+++ b/sound/soc/atmel/mchp-spdifrx.c
@@ -577,7 +577,6 @@ static int mchp_spdifrx_cs_get(struct mchp_spdifrx_dev *dev,
sizeof(ch_stat->data));
pm_runtime_put:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
unlock:
mutex_unlock(&dev->mlock);
@@ -660,7 +659,6 @@ static int mchp_spdifrx_subcode_ch_get(struct mchp_spdifrx_dev *dev,
sizeof(user_data->data));
pm_runtime_put:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
unlock:
mutex_unlock(&dev->mlock);
@@ -726,7 +724,6 @@ static int mchp_spdifrx_ulock_get(struct snd_kcontrol *kcontrol,
uvalue->value.integer.value[0] = ctrl->ulock;
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
unlock:
mutex_unlock(&dev->mlock);
@@ -762,7 +759,6 @@ static int mchp_spdifrx_badf_get(struct snd_kcontrol *kcontrol,
ctrl->badf = 0;
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
unlock:
mutex_unlock(&dev->mlock);
@@ -811,7 +807,6 @@ static int mchp_spdifrx_signal_get(struct snd_kcontrol *kcontrol,
regmap_read(dev->regmap, SPDIFRX_RSR, &val);
}
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
unlock:
@@ -875,7 +870,6 @@ static int mchp_spdifrx_rate_get(struct snd_kcontrol *kcontrol,
ucontrol->value.integer.value[0] = rate / (32 * SPDIFRX_RSR_IFS(val));
pm_runtime_put:
- pm_runtime_mark_last_busy(dev->dev);
pm_runtime_put_autosuspend(dev->dev);
unlock:
mutex_unlock(&dev->mlock);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 69/80] ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (67 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 68/80] w1: omap-hdq: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 11:47 ` Takashi Iwai
2025-07-04 7:54 ` [PATCH 70/80] ASoC: atmel: " Sakari Ailus
` (18 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai, David Rhodes, Richard Fitzgerald,
Shenghao Ding, Kevin Lu, Baojun Xu, Amadeusz Sławiński,
Sakari Ailus, Cezary Rojewski, Mark Brown, Andy Shevchenko,
Dan Carpenter, Chen Ni
Cc: linux-sound, linux-kernel, patches
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/hda/hdac_device.c | 1 -
sound/pci/hda/cs35l41_hda.c | 4 ----
sound/pci/hda/cs35l56_hda.c | 1 -
sound/pci/hda/tas2781_hda_i2c.c | 3 ---
sound/pci/hda/tas2781_hda_spi.c | 4 ----
5 files changed, 13 deletions(-)
diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c
index 0053831eed2d..a02dce5f6a88 100644
--- a/sound/hda/hdac_device.c
+++ b/sound/hda/hdac_device.c
@@ -581,7 +581,6 @@ int snd_hdac_power_down(struct hdac_device *codec)
{
struct device *dev = &codec->dev;
- pm_runtime_mark_last_busy(dev);
return pm_runtime_put_autosuspend(dev);
}
EXPORT_SYMBOL_GPL(snd_hdac_power_down);
diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index c2cf3813872a..fc3f9ed3be13 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -836,7 +836,6 @@ static void cs35l41_hda_playback_hook(struct device *dev, int action)
* Playback must be finished for all amps before we start runtime suspend.
* This ensures no amps are playing back when we start putting them to sleep.
*/
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
break;
default:
@@ -1284,7 +1283,6 @@ static void cs35l41_fw_load_work(struct work_struct *work)
cs35l41->fw_request_ongoing = false;
mutex_unlock(&cs35l41->fw_mutex);
- pm_runtime_mark_last_busy(cs35l41->dev);
pm_runtime_put_autosuspend(cs35l41->dev);
}
@@ -1515,7 +1513,6 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas
dev_warn(dev, "Unable to create device link\n");
unlock_system_sleep(sleep_flags);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
dev_info(cs35l41->dev,
@@ -2036,7 +2033,6 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
pm_runtime_set_autosuspend_delay(cs35l41->dev, 3000);
pm_runtime_use_autosuspend(cs35l41->dev);
- pm_runtime_mark_last_busy(cs35l41->dev);
pm_runtime_set_active(cs35l41->dev);
pm_runtime_get_noresume(cs35l41->dev);
pm_runtime_enable(cs35l41->dev);
diff --git a/sound/pci/hda/cs35l56_hda.c b/sound/pci/hda/cs35l56_hda.c
index 3f2fd32f4ad9..0391bbffed7d 100644
--- a/sound/pci/hda/cs35l56_hda.c
+++ b/sound/pci/hda/cs35l56_hda.c
@@ -89,7 +89,6 @@ static void cs35l56_hda_pause(struct cs35l56_hda *cs35l56)
BIT(CS35L56_ASP_TX1_EN_SHIFT) | BIT(CS35L56_ASP_TX2_EN_SHIFT) |
BIT(CS35L56_ASP_TX3_EN_SHIFT) | BIT(CS35L56_ASP_TX4_EN_SHIFT));
- pm_runtime_mark_last_busy(cs35l56->base.dev);
pm_runtime_put_autosuspend(cs35l56->base.dev);
}
diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
index b9cdbca951e4..8a461acbc3b9 100644
--- a/sound/pci/hda/tas2781_hda_i2c.c
+++ b/sound/pci/hda/tas2781_hda_i2c.c
@@ -157,7 +157,6 @@ static void tas2781_hda_playback_hook(struct device *dev, int action)
tas_hda->priv->playback_started = false;
mutex_unlock(&tas_hda->priv->codec_lock);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
break;
default:
@@ -483,7 +482,6 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
out:
mutex_unlock(&tas_hda->priv->codec_lock);
release_firmware(fmw);
- pm_runtime_mark_last_busy(tas_hda->dev);
pm_runtime_put_autosuspend(tas_hda->dev);
}
@@ -526,7 +524,6 @@ static int tas2781_hda_bind(struct device *dev, struct device *master,
if (!ret)
comp->playback_hook = tas2781_hda_playback_hook;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/sound/pci/hda/tas2781_hda_spi.c b/sound/pci/hda/tas2781_hda_spi.c
index 5c03e9d2283a..c4b9a3c1a7f0 100644
--- a/sound/pci/hda/tas2781_hda_spi.c
+++ b/sound/pci/hda/tas2781_hda_spi.c
@@ -400,7 +400,6 @@ static void tas2781_hda_playback_hook(struct device *dev, int action)
guard(mutex)(&tas_priv->codec_lock);
if (tas_priv->fw_state == TASDEVICE_DSP_FW_ALL_OK)
tasdevice_tuning_switch(tas_priv, 1);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
}
}
@@ -698,7 +697,6 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
tas2781_save_calibration(tas_hda);
out:
release_firmware(fmw);
- pm_runtime_mark_last_busy(tas_hda->priv->dev);
pm_runtime_put_autosuspend(tas_hda->priv->dev);
}
@@ -731,7 +729,6 @@ static int tas2781_hda_bind(struct device *dev, struct device *master,
if (!ret)
comp->playback_hook = tas2781_hda_playback_hook;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
@@ -816,7 +813,6 @@ static int tas2781_hda_spi_probe(struct spi_device *spi)
pm_runtime_set_autosuspend_delay(tas_priv->dev, 3000);
pm_runtime_use_autosuspend(tas_priv->dev);
- pm_runtime_mark_last_busy(tas_priv->dev);
pm_runtime_set_active(tas_priv->dev);
pm_runtime_get_noresume(tas_priv->dev);
pm_runtime_enable(tas_priv->dev);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 71/80] ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (69 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 70/80] ASoC: atmel: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-07 9:16 ` Charles Keepax
2025-07-04 7:54 ` [PATCH 72/80] ASoC: Intel: " Sakari Ailus
` (16 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
David Rhodes, Richard Fitzgerald, Oder Chiou, Shenghao Ding,
Kevin Lu, Baojun Xu, Srinivas Kandagatla, Sakari Ailus,
Cezary Rojewski, Amadeusz Sławiński, Charles Keepax,
Krzysztof Kozlowski
Cc: patches, linux-sound, linux-kernel, linux-arm-msm
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/soc/codecs/arizona-jack.c | 2 --
sound/soc/codecs/cs35l41.c | 2 --
sound/soc/codecs/cs35l45.c | 1 -
sound/soc/codecs/cs35l56-sdw.c | 1 -
sound/soc/codecs/cs35l56.c | 1 -
sound/soc/codecs/cs42l42.c | 1 -
sound/soc/codecs/cs42l43-jack.c | 5 -----
sound/soc/codecs/cs42l43.c | 2 --
sound/soc/codecs/cs48l32.c | 1 -
sound/soc/codecs/hda.c | 3 ---
sound/soc/codecs/max98363.c | 1 -
sound/soc/codecs/max98373-sdw.c | 1 -
sound/soc/codecs/rt1017-sdca-sdw.c | 1 -
sound/soc/codecs/rt1308-sdw.c | 1 -
sound/soc/codecs/rt1316-sdw.c | 1 -
sound/soc/codecs/rt1318-sdw.c | 1 -
sound/soc/codecs/rt1320-sdw.c | 1 -
sound/soc/codecs/rt5682-sdw.c | 1 -
sound/soc/codecs/rt700.c | 2 --
sound/soc/codecs/rt711-sdca.c | 2 --
sound/soc/codecs/rt711.c | 2 --
sound/soc/codecs/rt712-sdca-dmic.c | 1 -
sound/soc/codecs/rt712-sdca.c | 2 --
sound/soc/codecs/rt715-sdca.c | 1 -
sound/soc/codecs/rt715.c | 1 -
sound/soc/codecs/rt721-sdca.c | 2 --
sound/soc/codecs/rt722-sdca.c | 2 --
sound/soc/codecs/rt9123.c | 3 ---
sound/soc/codecs/tas2552.c | 1 -
sound/soc/codecs/wcd-mbhc-v2.c | 2 --
sound/soc/codecs/wsa881x.c | 1 -
sound/soc/codecs/wsa883x.c | 1 -
sound/soc/codecs/wsa884x.c | 1 -
33 files changed, 51 deletions(-)
diff --git a/sound/soc/codecs/arizona-jack.c b/sound/soc/codecs/arizona-jack.c
index 9c15ddba6008..22f9c431a0e5 100644
--- a/sound/soc/codecs/arizona-jack.c
+++ b/sound/soc/codecs/arizona-jack.c
@@ -319,7 +319,6 @@ static void arizona_stop_mic(struct arizona_priv *info)
if (change) {
regulator_disable(info->micvdd);
- pm_runtime_mark_last_busy(arizona->dev);
pm_runtime_put_autosuspend(arizona->dev);
}
}
@@ -1127,7 +1126,6 @@ static irqreturn_t arizona_jackdet(int irq, void *data)
mutex_unlock(&info->lock);
- pm_runtime_mark_last_busy(arizona->dev);
pm_runtime_put_autosuspend(arizona->dev);
return IRQ_HANDLED;
diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c
index ff4134bee858..224d65987a8d 100644
--- a/sound/soc/codecs/cs35l41.c
+++ b/sound/soc/codecs/cs35l41.c
@@ -483,7 +483,6 @@ static irqreturn_t cs35l41_irq(int irq, void *data)
}
done:
- pm_runtime_mark_last_busy(cs35l41->dev);
pm_runtime_put_autosuspend(cs35l41->dev);
return ret;
@@ -1328,7 +1327,6 @@ int cs35l41_probe(struct cs35l41_private *cs35l41, const struct cs35l41_hw_cfg *
pm_runtime_set_autosuspend_delay(cs35l41->dev, 3000);
pm_runtime_use_autosuspend(cs35l41->dev);
- pm_runtime_mark_last_busy(cs35l41->dev);
pm_runtime_set_active(cs35l41->dev);
pm_runtime_get_noresume(cs35l41->dev);
pm_runtime_enable(cs35l41->dev);
diff --git a/sound/soc/codecs/cs35l45.c b/sound/soc/codecs/cs35l45.c
index 432a19f4de2b..d4dcdf37bb70 100644
--- a/sound/soc/codecs/cs35l45.c
+++ b/sound/soc/codecs/cs35l45.c
@@ -1427,7 +1427,6 @@ int cs35l45_probe(struct cs35l45_private *cs35l45)
pm_runtime_set_autosuspend_delay(cs35l45->dev, 3000);
pm_runtime_use_autosuspend(cs35l45->dev);
- pm_runtime_mark_last_busy(cs35l45->dev);
pm_runtime_set_active(cs35l45->dev);
pm_runtime_get_noresume(cs35l45->dev);
pm_runtime_enable(cs35l45->dev);
diff --git a/sound/soc/codecs/cs35l56-sdw.c b/sound/soc/codecs/cs35l56-sdw.c
index fa9693af3722..ee14031695a1 100644
--- a/sound/soc/codecs/cs35l56-sdw.c
+++ b/sound/soc/codecs/cs35l56-sdw.c
@@ -283,7 +283,6 @@ static void cs35l56_sdw_init(struct sdw_slave *peripheral)
}
out:
- pm_runtime_mark_last_busy(cs35l56->base.dev);
pm_runtime_put_autosuspend(cs35l56->base.dev);
}
diff --git a/sound/soc/codecs/cs35l56.c b/sound/soc/codecs/cs35l56.c
index 1b42586794ad..b1c65d8331e7 100644
--- a/sound/soc/codecs/cs35l56.c
+++ b/sound/soc/codecs/cs35l56.c
@@ -871,7 +871,6 @@ static void cs35l56_dsp_work(struct work_struct *work)
cs35l56_log_tuning(&cs35l56->base, &cs35l56->dsp.cs_dsp);
err:
- pm_runtime_mark_last_busy(cs35l56->base.dev);
pm_runtime_put_autosuspend(cs35l56->base.dev);
}
diff --git a/sound/soc/codecs/cs42l42.c b/sound/soc/codecs/cs42l42.c
index 56668c392063..78bb093fa0cc 100644
--- a/sound/soc/codecs/cs42l42.c
+++ b/sound/soc/codecs/cs42l42.c
@@ -1775,7 +1775,6 @@ irqreturn_t cs42l42_irq_thread(int irq, void *data)
}
mutex_unlock(&cs42l42->irq_lock);
- pm_runtime_mark_last_busy(cs42l42->dev);
pm_runtime_put_autosuspend(cs42l42->dev);
return IRQ_HANDLED;
diff --git a/sound/soc/codecs/cs42l43-jack.c b/sound/soc/codecs/cs42l43-jack.c
index 72a4150709de..2a0a4986a9ce 100644
--- a/sound/soc/codecs/cs42l43-jack.c
+++ b/sound/soc/codecs/cs42l43-jack.c
@@ -242,7 +242,6 @@ int cs42l43_set_jack(struct snd_soc_component *component,
error:
mutex_unlock(&priv->jack_lock);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return ret;
@@ -429,7 +428,6 @@ irqreturn_t cs42l43_button_press(int irq, void *data)
error:
mutex_unlock(&priv->jack_lock);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return iret;
@@ -461,7 +459,6 @@ irqreturn_t cs42l43_button_release(int irq, void *data)
mutex_unlock(&priv->jack_lock);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return iret;
@@ -496,7 +493,6 @@ void cs42l43_bias_sense_timeout(struct work_struct *work)
mutex_unlock(&priv->jack_lock);
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
}
@@ -768,7 +764,6 @@ void cs42l43_tip_sense_work(struct work_struct *work)
priv->suspend_jack_debounce = false;
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
}
diff --git a/sound/soc/codecs/cs42l43.c b/sound/soc/codecs/cs42l43.c
index 41a0f4529ea1..b0c27d696c58 100644
--- a/sound/soc/codecs/cs42l43.c
+++ b/sound/soc/codecs/cs42l43.c
@@ -1080,7 +1080,6 @@ static int cs42l43_shutter_get(struct cs42l43_codec *priv, unsigned int shift)
ret ? "open" : "closed");
error:
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return ret;
@@ -2356,7 +2355,6 @@ static int cs42l43_codec_probe(struct platform_device *pdev)
goto err_clk;
}
- pm_runtime_mark_last_busy(priv->dev);
pm_runtime_put_autosuspend(priv->dev);
return 0;
diff --git a/sound/soc/codecs/cs48l32.c b/sound/soc/codecs/cs48l32.c
index 9bdd48aab42a..a306af4289ad 100644
--- a/sound/soc/codecs/cs48l32.c
+++ b/sound/soc/codecs/cs48l32.c
@@ -1385,7 +1385,6 @@ static irqreturn_t cs48l32_irq(int irq, void *data)
result = IRQ_HANDLED;
out:
- pm_runtime_mark_last_busy(cs48l32_codec->core.dev);
pm_runtime_put_autosuspend(cs48l32_codec->core.dev);
return result;
diff --git a/sound/soc/codecs/hda.c b/sound/soc/codecs/hda.c
index dc7794c9ac44..7e4df1481486 100644
--- a/sound/soc/codecs/hda.c
+++ b/sound/soc/codecs/hda.c
@@ -162,7 +162,6 @@ int hda_codec_probe_complete(struct hda_codec *codec)
snd_hda_codec_register(codec);
/* Complement pm_runtime_get_sync(bus) in probe */
- pm_runtime_mark_last_busy(bus->dev);
pm_runtime_put_autosuspend(bus->dev);
return ret;
@@ -262,7 +261,6 @@ static int hda_codec_probe(struct snd_soc_component *component)
snd_hdac_ext_bus_link_put(bus, hlink);
- pm_runtime_mark_last_busy(bus->dev);
pm_runtime_put_autosuspend(bus->dev);
return ret;
}
@@ -300,7 +298,6 @@ static void hda_codec_remove(struct snd_soc_component *component)
* not be called due to early error, leaving bus uc unbalanced
*/
if (!was_registered) {
- pm_runtime_mark_last_busy(bus->dev);
pm_runtime_put_autosuspend(bus->dev);
}
diff --git a/sound/soc/codecs/max98363.c b/sound/soc/codecs/max98363.c
index fd6830a7579d..25af78ab30d5 100644
--- a/sound/soc/codecs/max98363.c
+++ b/sound/soc/codecs/max98363.c
@@ -188,7 +188,6 @@ static int max98363_io_init(struct sdw_slave *slave)
max98363->hw_init = true;
out:
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
diff --git a/sound/soc/codecs/max98373-sdw.c b/sound/soc/codecs/max98373-sdw.c
index 43b52bda6ad5..88ff215f52b3 100644
--- a/sound/soc/codecs/max98373-sdw.c
+++ b/sound/soc/codecs/max98373-sdw.c
@@ -458,7 +458,6 @@ static int max98373_io_init(struct sdw_slave *slave)
max98373->first_hw_init = true;
max98373->hw_init = true;
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
diff --git a/sound/soc/codecs/rt1017-sdca-sdw.c b/sound/soc/codecs/rt1017-sdca-sdw.c
index 88fc23a4999f..a9c000876be8 100644
--- a/sound/soc/codecs/rt1017-sdca-sdw.c
+++ b/sound/soc/codecs/rt1017-sdca-sdw.c
@@ -362,7 +362,6 @@ static int rt1017_sdca_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt1017->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "hw_init complete\n");
diff --git a/sound/soc/codecs/rt1308-sdw.c b/sound/soc/codecs/rt1308-sdw.c
index ea708068f0e8..b6c224832a43 100644
--- a/sound/soc/codecs/rt1308-sdw.c
+++ b/sound/soc/codecs/rt1308-sdw.c
@@ -291,7 +291,6 @@ static int rt1308_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt1308->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt1316-sdw.c b/sound/soc/codecs/rt1316-sdw.c
index 960b6c4f5a66..01a977398864 100644
--- a/sound/soc/codecs/rt1316-sdw.c
+++ b/sound/soc/codecs/rt1316-sdw.c
@@ -302,7 +302,6 @@ static int rt1316_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt1316->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt1318-sdw.c b/sound/soc/codecs/rt1318-sdw.c
index 4eb636e0c9ed..70db5450d6d2 100644
--- a/sound/soc/codecs/rt1318-sdw.c
+++ b/sound/soc/codecs/rt1318-sdw.c
@@ -434,7 +434,6 @@ static int rt1318_io_init(struct device *dev, struct sdw_slave *slave)
rt1318->first_hw_init = true;
rt1318->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt1320-sdw.c b/sound/soc/codecs/rt1320-sdw.c
index 015cc710e6dc..b13d7a99bf63 100644
--- a/sound/soc/codecs/rt1320-sdw.c
+++ b/sound/soc/codecs/rt1320-sdw.c
@@ -763,7 +763,6 @@ static int rt1320_io_init(struct device *dev, struct sdw_slave *slave)
rt1320->first_hw_init = true;
rt1320->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt5682-sdw.c b/sound/soc/codecs/rt5682-sdw.c
index aa229894129b..055bea0a4a3b 100644
--- a/sound/soc/codecs/rt5682-sdw.c
+++ b/sound/soc/codecs/rt5682-sdw.c
@@ -474,7 +474,6 @@ static int rt5682_io_init(struct device *dev, struct sdw_slave *slave)
rt5682->first_hw_init = true;
err_nodev:
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete: %d\n", __func__, ret);
diff --git a/sound/soc/codecs/rt700.c b/sound/soc/codecs/rt700.c
index 434b926f96c8..8f6d569c8f25 100644
--- a/sound/soc/codecs/rt700.c
+++ b/sound/soc/codecs/rt700.c
@@ -338,7 +338,6 @@ static int rt700_set_jack_detect(struct snd_soc_component *component,
rt700_jack_init(rt700);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1230,7 +1229,6 @@ int rt700_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt700->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt711-sdca.c b/sound/soc/codecs/rt711-sdca.c
index dd6ccf17afd4..16c351779243 100644
--- a/sound/soc/codecs/rt711-sdca.c
+++ b/sound/soc/codecs/rt711-sdca.c
@@ -545,7 +545,6 @@ static int rt711_sdca_set_jack_detect(struct snd_soc_component *component,
rt711_sdca_jack_init(rt711);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1662,7 +1661,6 @@ int rt711_sdca_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt711->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt711.c b/sound/soc/codecs/rt711.c
index 5446f9506a16..af3a49aee618 100644
--- a/sound/soc/codecs/rt711.c
+++ b/sound/soc/codecs/rt711.c
@@ -480,7 +480,6 @@ static int rt711_set_jack_detect(struct snd_soc_component *component,
rt711_jack_init(rt711);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1331,7 +1330,6 @@ int rt711_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt711->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt712-sdca-dmic.c b/sound/soc/codecs/rt712-sdca-dmic.c
index 4d044dfa3136..42f8f7b8bed0 100644
--- a/sound/soc/codecs/rt712-sdca-dmic.c
+++ b/sound/soc/codecs/rt712-sdca-dmic.c
@@ -236,7 +236,6 @@ static int rt712_sdca_dmic_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt712->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt712-sdca.c b/sound/soc/codecs/rt712-sdca.c
index 570c2af1245d..5b298db5f0f6 100644
--- a/sound/soc/codecs/rt712-sdca.c
+++ b/sound/soc/codecs/rt712-sdca.c
@@ -479,7 +479,6 @@ static int rt712_sdca_set_jack_detect(struct snd_soc_component *component,
rt712_sdca_jack_init(rt712);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1925,7 +1924,6 @@ int rt712_sdca_io_init(struct device *dev, struct sdw_slave *slave)
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
suspend:
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
return 0;
diff --git a/sound/soc/codecs/rt715-sdca.c b/sound/soc/codecs/rt715-sdca.c
index 7fb02654c16b..db7d43349d7d 100644
--- a/sound/soc/codecs/rt715-sdca.c
+++ b/sound/soc/codecs/rt715-sdca.c
@@ -1065,7 +1065,6 @@ int rt715_sdca_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt715->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
return 0;
diff --git a/sound/soc/codecs/rt715.c b/sound/soc/codecs/rt715.c
index 2cf461852091..0fa445d88e23 100644
--- a/sound/soc/codecs/rt715.c
+++ b/sound/soc/codecs/rt715.c
@@ -1129,7 +1129,6 @@ int rt715_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt715->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
return 0;
diff --git a/sound/soc/codecs/rt721-sdca.c b/sound/soc/codecs/rt721-sdca.c
index ba080957e933..f6f7c2ffde1c 100644
--- a/sound/soc/codecs/rt721-sdca.c
+++ b/sound/soc/codecs/rt721-sdca.c
@@ -327,7 +327,6 @@ static int rt721_sdca_set_jack_detect(struct snd_soc_component *component,
rt721_sdca_jack_init(rt721);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1548,7 +1547,6 @@ int rt721_sdca_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt721->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt722-sdca.c b/sound/soc/codecs/rt722-sdca.c
index ac9588284a95..333611490ae3 100644
--- a/sound/soc/codecs/rt722-sdca.c
+++ b/sound/soc/codecs/rt722-sdca.c
@@ -339,7 +339,6 @@ static int rt722_sdca_set_jack_detect(struct snd_soc_component *component,
rt722_sdca_jack_init(rt722);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1559,7 +1558,6 @@ int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave)
/* Mark Slave initialization complete */
rt722->hw_init = true;
- pm_runtime_mark_last_busy(&slave->dev);
pm_runtime_put_autosuspend(&slave->dev);
dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);
diff --git a/sound/soc/codecs/rt9123.c b/sound/soc/codecs/rt9123.c
index 242e8c975a62..b162824526d6 100644
--- a/sound/soc/codecs/rt9123.c
+++ b/sound/soc/codecs/rt9123.c
@@ -77,7 +77,6 @@ static int rt9123_enable_event(struct snd_soc_dapm_widget *w, struct snd_kcontro
/* AMPON bit is located in volatile RG, use pm_runtime to guarantee the RG access */
snd_soc_component_write_field(comp, RT9123_REG_AMPCTRL, RT9123_MASK_AMPON, enable);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return 0;
@@ -140,7 +139,6 @@ static int rt9123_xhandler_get(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
if (ret < 0)
dev_err(dev, "Failed to get control (%d)\n", ret);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
@@ -168,7 +166,6 @@ static int rt9123_xhandler_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
if (ret < 0)
dev_err(dev, "Failed to put control (%d)\n", ret);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_autosuspend(dev);
return ret;
}
diff --git a/sound/soc/codecs/tas2552.c b/sound/soc/codecs/tas2552.c
index b56dd279d90a..43449d7c2584 100644
--- a/sound/soc/codecs/tas2552.c
+++ b/sound/soc/codecs/tas2552.c
@@ -724,7 +724,6 @@ static int tas2552_probe(struct i2c_client *client)
pm_runtime_set_autosuspend_delay(&client->dev, 1000);
pm_runtime_use_autosuspend(&client->dev);
pm_runtime_enable(&client->dev);
- pm_runtime_mark_last_busy(&client->dev);
pm_runtime_put_sync_autosuspend(&client->dev);
dev_set_drvdata(&client->dev, data);
diff --git a/sound/soc/codecs/wcd-mbhc-v2.c b/sound/soc/codecs/wcd-mbhc-v2.c
index 4b7c3d6080a1..26ebcdadeb7d 100644
--- a/sound/soc/codecs/wcd-mbhc-v2.c
+++ b/sound/soc/codecs/wcd-mbhc-v2.c
@@ -825,7 +825,6 @@ static int wcd_mbhc_initialise(struct wcd_mbhc *mbhc)
mutex_unlock(&mbhc->lock);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return 0;
@@ -1319,7 +1318,6 @@ static void wcd_correct_swch_plug(struct work_struct *work)
if (mbhc->mbhc_cb->hph_pull_down_ctrl)
mbhc->mbhc_cb->hph_pull_down_ctrl(component, true);
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
}
diff --git a/sound/soc/codecs/wsa881x.c b/sound/soc/codecs/wsa881x.c
index d479521a6d50..636e59abc377 100644
--- a/sound/soc/codecs/wsa881x.c
+++ b/sound/soc/codecs/wsa881x.c
@@ -775,7 +775,6 @@ static int wsa881x_put_pa_gain(struct snd_kcontrol *kc,
usleep_range(1000, 1010);
}
- pm_runtime_mark_last_busy(comp->dev);
pm_runtime_put_autosuspend(comp->dev);
return 1;
diff --git a/sound/soc/codecs/wsa883x.c b/sound/soc/codecs/wsa883x.c
index 13c9d4a6f015..188363b03b93 100644
--- a/sound/soc/codecs/wsa883x.c
+++ b/sound/soc/codecs/wsa883x.c
@@ -1491,7 +1491,6 @@ static int wsa883x_get_temp(struct wsa883x_priv *wsa883x, long *temp)
ret = -EAGAIN;
}
out:
- pm_runtime_mark_last_busy(wsa883x->dev);
pm_runtime_put_autosuspend(wsa883x->dev);
return ret;
diff --git a/sound/soc/codecs/wsa884x.c b/sound/soc/codecs/wsa884x.c
index 07d8a2645404..2484d4b8e2d9 100644
--- a/sound/soc/codecs/wsa884x.c
+++ b/sound/soc/codecs/wsa884x.c
@@ -1941,7 +1941,6 @@ static int wsa884x_get_temp(struct wsa884x_priv *wsa884x, long *temp)
}
out:
- pm_runtime_mark_last_busy(wsa884x->dev);
pm_runtime_put_autosuspend(wsa884x->dev);
return ret;
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 72/80] ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (70 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 71/80] ASoC: codecs: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 73/80] ASoC: component: " Sakari Ailus
` (15 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Cezary Rojewski, Liam Girdwood, Peter Ujfalusi, Bard Liao,
Ranjani Sridharan, Kai Vehmanen, Pierre-Louis Bossart, Mark Brown,
Jaroslav Kysela, Takashi Iwai, Sakari Ailus,
Dr. David Alan Gilbert, Amadeusz Sławiński,
Philipp Stanner, Al Viro, Ethan Carter Edwards, Jerome Brunet,
Henry Martin
Cc: linux-sound, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/soc/intel/atom/sst/sst_pvt.c | 1 -
sound/soc/intel/avs/core.c | 1 -
sound/soc/intel/avs/debugfs.c | 2 --
sound/soc/intel/avs/ipc.c | 1 -
sound/soc/intel/avs/pcm.c | 1 -
sound/soc/intel/catpt/pcm.c | 6 ------
sound/soc/intel/catpt/sysfs.c | 1 -
7 files changed, 13 deletions(-)
diff --git a/sound/soc/intel/atom/sst/sst_pvt.c b/sound/soc/intel/atom/sst/sst_pvt.c
index 5d08f7d803f9..c01b29616ebc 100644
--- a/sound/soc/intel/atom/sst/sst_pvt.c
+++ b/sound/soc/intel/atom/sst/sst_pvt.c
@@ -259,7 +259,6 @@ int sst_pm_runtime_put(struct intel_sst_drv *sst_drv)
{
int ret;
- pm_runtime_mark_last_busy(sst_drv->dev);
ret = pm_runtime_put_autosuspend(sst_drv->dev);
if (ret < 0)
return ret;
diff --git a/sound/soc/intel/avs/core.c b/sound/soc/intel/avs/core.c
index ec1b3f55cb5c..7af324753673 100644
--- a/sound/soc/intel/avs/core.c
+++ b/sound/soc/intel/avs/core.c
@@ -231,7 +231,6 @@ static void avs_hda_probe_work(struct work_struct *work)
/* configure PM */
pm_runtime_set_autosuspend_delay(bus->dev, 2000);
pm_runtime_use_autosuspend(bus->dev);
- pm_runtime_mark_last_busy(bus->dev);
pm_runtime_put_autosuspend(bus->dev);
pm_runtime_allow(bus->dev);
}
diff --git a/sound/soc/intel/avs/debugfs.c b/sound/soc/intel/avs/debugfs.c
index c625cf879f17..f508f215ecd2 100644
--- a/sound/soc/intel/avs/debugfs.c
+++ b/sound/soc/intel/avs/debugfs.c
@@ -315,7 +315,6 @@ static int enable_logs(struct avs_dev *adev, u32 resource_mask, u32 *priorities)
if (!adev->logged_resources) {
avs_dsp_enable_d0ix(adev);
err_d0ix:
- pm_runtime_mark_last_busy(adev->dev);
pm_runtime_put_autosuspend(adev->dev);
}
@@ -342,7 +341,6 @@ static int disable_logs(struct avs_dev *adev, u32 resource_mask)
/* If that's the last resource, allow for D3. */
if (!adev->logged_resources) {
avs_dsp_enable_d0ix(adev);
- pm_runtime_mark_last_busy(adev->dev);
pm_runtime_put_autosuspend(adev->dev);
}
diff --git a/sound/soc/intel/avs/ipc.c b/sound/soc/intel/avs/ipc.c
index 0314f9d4ea5f..6bfb9d1a1ca8 100644
--- a/sound/soc/intel/avs/ipc.c
+++ b/sound/soc/intel/avs/ipc.c
@@ -141,7 +141,6 @@ static void avs_dsp_recovery(struct avs_dev *adev)
if (ret < 0)
dev_err(adev->dev, "dsp reboot failed: %d\n", ret);
- pm_runtime_mark_last_busy(adev->dev);
pm_runtime_enable(adev->dev);
pm_request_autosuspend(adev->dev);
diff --git a/sound/soc/intel/avs/pcm.c b/sound/soc/intel/avs/pcm.c
index ccf90428126d..3a22a8cb5185 100644
--- a/sound/soc/intel/avs/pcm.c
+++ b/sound/soc/intel/avs/pcm.c
@@ -979,7 +979,6 @@ static int avs_component_load_libraries(struct avs_soc_component *acomp)
if (!ret)
ret = avs_module_info_init(adev, false);
- pm_runtime_mark_last_busy(adev->dev);
pm_runtime_put_autosuspend(adev->dev);
return ret;
diff --git a/sound/soc/intel/catpt/pcm.c b/sound/soc/intel/catpt/pcm.c
index 81a2f0339e05..46acb7fdc547 100644
--- a/sound/soc/intel/catpt/pcm.c
+++ b/sound/soc/intel/catpt/pcm.c
@@ -673,7 +673,6 @@ static int catpt_dai_pcm_new(struct snd_soc_pcm_runtime *rtm,
ret = catpt_ipc_set_device_format(cdev, &devfmt);
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
if (ret)
@@ -871,7 +870,6 @@ static int catpt_mixer_volume_get(struct snd_kcontrol *kcontrol,
ucontrol->value.integer.value[i] = dspvol_to_ctlvol(dspvol);
}
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
return 0;
@@ -892,7 +890,6 @@ static int catpt_mixer_volume_put(struct snd_kcontrol *kcontrol,
ret = catpt_set_dspvol(cdev, cdev->mixer.mixer_hw_id,
ucontrol->value.integer.value);
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
return ret;
@@ -927,7 +924,6 @@ static int catpt_stream_volume_get(struct snd_kcontrol *kcontrol,
ucontrol->value.integer.value[i] = dspvol_to_ctlvol(dspvol);
}
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
return 0;
@@ -958,7 +954,6 @@ static int catpt_stream_volume_put(struct snd_kcontrol *kcontrol,
ret = catpt_set_dspvol(cdev, stream->info.stream_hw_id,
ucontrol->value.integer.value);
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
if (ret)
@@ -1035,7 +1030,6 @@ static int catpt_loopback_switch_put(struct snd_kcontrol *kcontrol,
ret = catpt_ipc_mute_loopback(cdev, stream->info.stream_hw_id, mute);
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
if (ret)
diff --git a/sound/soc/intel/catpt/sysfs.c b/sound/soc/intel/catpt/sysfs.c
index 936ac9d503ff..048253002ec8 100644
--- a/sound/soc/intel/catpt/sysfs.c
+++ b/sound/soc/intel/catpt/sysfs.c
@@ -21,7 +21,6 @@ static ssize_t fw_version_show(struct device *dev,
ret = catpt_ipc_get_fw_version(cdev, &version);
- pm_runtime_mark_last_busy(cdev->dev);
pm_runtime_put_autosuspend(cdev->dev);
if (ret)
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 73/80] ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (71 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 72/80] ASoC: Intel: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 74/80] ASoC: SOF: " Sakari Ailus
` (14 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
Cc: linux-sound, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/soc/soc-component.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c
index 25f5e543ae8d..65c495094024 100644
--- a/sound/soc/soc-component.c
+++ b/sound/soc/soc-component.c
@@ -1278,7 +1278,6 @@ void snd_soc_pcm_component_pm_runtime_put(struct snd_soc_pcm_runtime *rtd,
if (rollback && !soc_component_mark_match(component, stream, pm))
continue;
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
/* remove marked stream */
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 74/80] ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (72 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 73/80] ASoC: component: " Sakari Ailus
@ 2025-07-04 7:54 ` Sakari Ailus
2025-07-04 8:26 ` Péter Ujfalusi
2025-07-04 7:55 ` [PATCH 75/80] ALSA: intel_hdmi: " Sakari Ailus
` (13 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:54 UTC (permalink / raw)
To: Liam Girdwood, Peter Ujfalusi, Bard Liao, Ranjani Sridharan,
Daniel Baluta, Kai Vehmanen, Pierre-Louis Bossart, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: sound-open-firmware, linux-sound, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/soc/sof/control.c | 1 -
sound/soc/sof/debug.c | 1 -
sound/soc/sof/ipc3-dtrace.c | 1 -
sound/soc/sof/ipc4-loader.c | 1 -
sound/soc/sof/pcm.c | 1 -
sound/soc/sof/sof-client-ipc-flood-test.c | 1 -
sound/soc/sof/sof-client-ipc-kernel-injector.c | 1 -
sound/soc/sof/sof-client-ipc-msg-injector.c | 1 -
sound/soc/sof/sof-client-probes.c | 3 ---
9 files changed, 11 deletions(-)
diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
index 463d418e7200..a3fd1d523c09 100644
--- a/sound/soc/sof/control.c
+++ b/sound/soc/sof/control.c
@@ -196,7 +196,6 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _
if (tplg_ops && tplg_ops->control && tplg_ops->control->bytes_ext_volatile_get)
ret = tplg_ops->control->bytes_ext_volatile_get(scontrol, binary_data, size);
- pm_runtime_mark_last_busy(scomp->dev);
err = pm_runtime_put_autosuspend(scomp->dev);
if (err < 0)
dev_err_ratelimited(scomp->dev, "%s: failed to idle %d\n", __func__, err);
diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
index d0ffa1d71145..b24943a65c89 100644
--- a/sound/soc/sof/debug.c
+++ b/sound/soc/sof/debug.c
@@ -217,7 +217,6 @@ static int memory_info_update(struct snd_sof_dev *sdev, char *buf, size_t buff_s
}
ret = sof_ipc_tx_message(sdev->ipc, &msg, msg.size, reply, SOF_IPC_MSG_MAX_SIZE);
- pm_runtime_mark_last_busy(sdev->dev);
pm_runtime_put_autosuspend(sdev->dev);
if (ret < 0 || reply->rhdr.error < 0) {
ret = min(ret, reply->rhdr.error);
diff --git a/sound/soc/sof/ipc3-dtrace.c b/sound/soc/sof/ipc3-dtrace.c
index 744a91a150bc..e5c8fec173c4 100644
--- a/sound/soc/sof/ipc3-dtrace.c
+++ b/sound/soc/sof/ipc3-dtrace.c
@@ -172,7 +172,6 @@ static int ipc3_trace_update_filter(struct snd_sof_dev *sdev, int num_elems,
goto error;
}
ret = sof_ipc_tx_message_no_reply(sdev->ipc, msg, msg->hdr.size);
- pm_runtime_mark_last_busy(sdev->dev);
pm_runtime_put_autosuspend(sdev->dev);
error:
diff --git a/sound/soc/sof/ipc4-loader.c b/sound/soc/sof/ipc4-loader.c
index ee61394e73d7..b0d293f62d1c 100644
--- a/sound/soc/sof/ipc4-loader.c
+++ b/sound/soc/sof/ipc4-loader.c
@@ -236,7 +236,6 @@ static int sof_ipc4_load_library(struct snd_sof_dev *sdev, unsigned long lib_id,
ret = ipc4_data->load_library(sdev, fw_lib, false);
- pm_runtime_mark_last_busy(sdev->dev);
err = pm_runtime_put_autosuspend(sdev->dev);
if (err < 0)
dev_err_ratelimited(sdev->dev, "%s: pm_runtime idle failed: %d\n",
diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
index 090ea3a76892..fe43de1fe96c 100644
--- a/sound/soc/sof/pcm.c
+++ b/sound/soc/sof/pcm.c
@@ -712,7 +712,6 @@ static int sof_pcm_probe(struct snd_soc_component *component)
ret);
pm_error:
- pm_runtime_mark_last_busy(component->dev);
pm_runtime_put_autosuspend(component->dev);
return ret;
diff --git a/sound/soc/sof/sof-client-ipc-flood-test.c b/sound/soc/sof/sof-client-ipc-flood-test.c
index 11b6f7da2882..373f3a125372 100644
--- a/sound/soc/sof/sof-client-ipc-flood-test.c
+++ b/sound/soc/sof/sof-client-ipc-flood-test.c
@@ -223,7 +223,6 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
ret = sof_debug_ipc_flood_test(cdev, flood_duration_test,
ipc_duration_ms, ipc_count);
- pm_runtime_mark_last_busy(dev);
err = pm_runtime_put_autosuspend(dev);
if (err < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
diff --git a/sound/soc/sof/sof-client-ipc-kernel-injector.c b/sound/soc/sof/sof-client-ipc-kernel-injector.c
index 8b28c3dc920c..249bd2d6c8d2 100644
--- a/sound/soc/sof/sof-client-ipc-kernel-injector.c
+++ b/sound/soc/sof/sof-client-ipc-kernel-injector.c
@@ -65,7 +65,6 @@ static ssize_t sof_kernel_msg_inject_dfs_write(struct file *file, const char __u
sof_client_ipc_rx_message(cdev, hdr, priv->kernel_buffer);
- pm_runtime_mark_last_busy(dev);
ret = pm_runtime_put_autosuspend(dev);
if (ret < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", ret);
diff --git a/sound/soc/sof/sof-client-ipc-msg-injector.c b/sound/soc/sof/sof-client-ipc-msg-injector.c
index ba7ca1c5027f..9c8a0fbfb8df 100644
--- a/sound/soc/sof/sof-client-ipc-msg-injector.c
+++ b/sound/soc/sof/sof-client-ipc-msg-injector.c
@@ -137,7 +137,6 @@ static int sof_msg_inject_send_message(struct sof_client_dev *cdev)
if (ret)
dev_err(dev, "IPC message send failed: %d\n", ret);
- pm_runtime_mark_last_busy(dev);
err = pm_runtime_put_autosuspend(dev);
if (err < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
diff --git a/sound/soc/sof/sof-client-probes.c b/sound/soc/sof/sof-client-probes.c
index aff9ce980429..663c0d3c314c 100644
--- a/sound/soc/sof/sof-client-probes.c
+++ b/sound/soc/sof/sof-client-probes.c
@@ -238,7 +238,6 @@ static ssize_t sof_probes_dfs_points_read(struct file *file, char __user *to,
kfree(desc);
pm_error:
- pm_runtime_mark_last_busy(dev);
err = pm_runtime_put_autosuspend(dev);
if (err < 0)
dev_err_ratelimited(dev, "debugfs read failed to idle %d\n", err);
@@ -289,7 +288,6 @@ sof_probes_dfs_points_write(struct file *file, const char __user *from,
if (!ret)
ret = count;
- pm_runtime_mark_last_busy(dev);
err = pm_runtime_put_autosuspend(dev);
if (err < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
@@ -337,7 +335,6 @@ sof_probes_dfs_points_remove_write(struct file *file, const char __user *from,
if (!ret)
ret = count;
- pm_runtime_mark_last_busy(dev);
err = pm_runtime_put_autosuspend(dev);
if (err < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 75/80] ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (73 preceding siblings ...)
2025-07-04 7:54 ` [PATCH 74/80] ASoC: SOF: " Sakari Ailus
@ 2025-07-04 7:55 ` Sakari Ailus
2025-07-04 11:45 ` Takashi Iwai
2025-07-04 7:55 ` [PATCH 76/80] soc: apple: mailbox: " Sakari Ailus
` (12 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:55 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai, Sakari Ailus, Thorsten Blum
Cc: linux-sound, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
sound/x86/intel_hdmi_audio.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
index fe5cb4139088..cc54539c6030 100644
--- a/sound/x86/intel_hdmi_audio.c
+++ b/sound/x86/intel_hdmi_audio.c
@@ -1102,7 +1102,6 @@ static int had_pcm_open(struct snd_pcm_substream *substream)
return retval;
error:
- pm_runtime_mark_last_busy(intelhaddata->dev);
pm_runtime_put_autosuspend(intelhaddata->dev);
return retval;
}
@@ -1127,7 +1126,6 @@ static int had_pcm_close(struct snd_pcm_substream *substream)
}
spin_unlock_irq(&intelhaddata->had_spinlock);
- pm_runtime_mark_last_busy(intelhaddata->dev);
pm_runtime_put_autosuspend(intelhaddata->dev);
return 0;
}
@@ -1589,7 +1587,6 @@ static void had_audio_wq(struct work_struct *work)
}
mutex_unlock(&ctx->mutex);
- pm_runtime_mark_last_busy(ctx->dev);
pm_runtime_put_autosuspend(ctx->dev);
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 76/80] soc: apple: mailbox: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (74 preceding siblings ...)
2025-07-04 7:55 ` [PATCH 75/80] ALSA: intel_hdmi: " Sakari Ailus
@ 2025-07-04 7:55 ` Sakari Ailus
2025-07-04 7:55 ` [PATCH 77/80] block: pm: " Sakari Ailus
` (11 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:55 UTC (permalink / raw)
To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa
Cc: asahi, linux-arm-kernel, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/soc/apple/mailbox.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/soc/apple/mailbox.c b/drivers/soc/apple/mailbox.c
index 49a0955e82d6..b56600229a7d 100644
--- a/drivers/soc/apple/mailbox.c
+++ b/drivers/soc/apple/mailbox.c
@@ -275,7 +275,6 @@ void apple_mbox_stop(struct apple_mbox *mbox)
mbox->active = false;
disable_irq(mbox->irq_recv_not_empty);
- pm_runtime_mark_last_busy(mbox->dev);
pm_runtime_put_autosuspend(mbox->dev);
}
EXPORT_SYMBOL(apple_mbox_stop);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 77/80] block: pm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (75 preceding siblings ...)
2025-07-04 7:55 ` [PATCH 76/80] soc: apple: mailbox: " Sakari Ailus
@ 2025-07-04 7:55 ` Sakari Ailus
2025-07-07 5:59 ` Christoph Hellwig
2025-07-04 7:55 ` [PATCH 78/80] Input: cyapa - " Sakari Ailus
` (10 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:55 UTC (permalink / raw)
To: Jens Axboe; +Cc: linux-block, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
block/blk-pm.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/block/blk-pm.c b/block/blk-pm.c
index 8d3e052f91da..d6eab3193a20 100644
--- a/block/blk-pm.c
+++ b/block/blk-pm.c
@@ -181,7 +181,6 @@ void blk_post_runtime_resume(struct request_queue *q)
spin_lock_irq(&q->queue_lock);
old_status = q->rpm_status;
q->rpm_status = RPM_ACTIVE;
- pm_runtime_mark_last_busy(q->dev);
pm_request_autosuspend(q->dev);
spin_unlock_irq(&q->queue_lock);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 78/80] Input: cyapa - Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (76 preceding siblings ...)
2025-07-04 7:55 ` [PATCH 77/80] block: pm: " Sakari Ailus
@ 2025-07-04 7:55 ` Sakari Ailus
2025-07-04 7:55 ` [PATCH 80/80] scsi: block: pm: " Sakari Ailus
` (9 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:55 UTC (permalink / raw)
To: Dmitry Torokhov, Josh Poimboeuf, Sakari Ailus, Ingo Molnar,
Al Viro
Cc: linux-input, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/input/mouse/cyapa.c | 3 ---
drivers/input/mouse/cyapa_gen5.c | 1 -
2 files changed, 4 deletions(-)
diff --git a/drivers/input/mouse/cyapa.c b/drivers/input/mouse/cyapa.c
index 00c87c0532a6..6e0d956617a1 100644
--- a/drivers/input/mouse/cyapa.c
+++ b/drivers/input/mouse/cyapa.c
@@ -403,7 +403,6 @@ static int cyapa_open(struct input_dev *input)
}
pm_runtime_get_sync(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
out:
mutex_unlock(&cyapa->state_sync_lock);
@@ -666,7 +665,6 @@ static int cyapa_reinitialize(struct cyapa *cyapa)
pm_runtime_enable(dev);
pm_runtime_get_sync(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
}
@@ -710,7 +708,6 @@ static irqreturn_t cyapa_irq(int irq, void *dev_id)
* process.
*/
pm_runtime_get_sync(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
}
diff --git a/drivers/input/mouse/cyapa_gen5.c b/drivers/input/mouse/cyapa_gen5.c
index 3b4439f10635..59f6e97d5482 100644
--- a/drivers/input/mouse/cyapa_gen5.c
+++ b/drivers/input/mouse/cyapa_gen5.c
@@ -2833,7 +2833,6 @@ static int cyapa_pip_event_process(struct cyapa *cyapa,
* process.
*/
pm_runtime_get_sync(dev);
- pm_runtime_mark_last_busy(dev);
pm_runtime_put_sync_autosuspend(dev);
return 0;
} else if (report_id != PIP_TOUCH_REPORT_ID &&
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 79/80] mei: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (78 preceding siblings ...)
2025-07-04 7:55 ` [PATCH 80/80] scsi: block: pm: " Sakari Ailus
@ 2025-07-04 7:55 ` Sakari Ailus
2025-07-04 9:03 ` [PATCH 00/80] treewide: " Jonathan Cameron
` (7 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:55 UTC (permalink / raw)
To: Alexander Usyskin, Arnd Bergmann, Greg Kroah-Hartman; +Cc: linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/misc/mei/interrupt.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c
index c484f416fae4..d74159811f75 100644
--- a/drivers/misc/mei/interrupt.c
+++ b/drivers/misc/mei/interrupt.c
@@ -229,7 +229,6 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl,
cl_dbg(dev, cl, "completed read length = %zu\n", cb->buf_idx);
list_move_tail(&cb->list, cmpl_list);
} else {
- pm_runtime_mark_last_busy(dev->dev);
pm_request_autosuspend(dev->dev);
}
@@ -310,7 +309,6 @@ static int mei_cl_irq_read(struct mei_cl *cl, struct mei_cl_cb *cb,
return ret;
}
- pm_runtime_mark_last_busy(dev->dev);
pm_request_autosuspend(dev->dev);
list_move_tail(&cb->list, &cl->rd_pending);
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* [PATCH 80/80] scsi: block: pm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (77 preceding siblings ...)
2025-07-04 7:55 ` [PATCH 78/80] Input: cyapa - " Sakari Ailus
@ 2025-07-04 7:55 ` Sakari Ailus
2025-07-04 7:55 ` [PATCH 79/80] mei: " Sakari Ailus
` (8 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-04 7:55 UTC (permalink / raw)
To: James E.J. Bottomley, Martin K. Petersen; +Cc: linux-scsi, linux-kernel
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
---
The cover letter of the set can be found here
<URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
In brief, this patch depends on PM runtime patches adding marking the last
busy timestamp in autosuspend related functions. The patches are here, on
rc2:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-runtime-6.17-rc1
drivers/scsi/scsi_pm.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
index d581613d87c7..2652fecbfe47 100644
--- a/drivers/scsi/scsi_pm.c
+++ b/drivers/scsi/scsi_pm.c
@@ -205,7 +205,6 @@ static int scsi_runtime_idle(struct device *dev)
/* Insert hooks here for targets, hosts, and transport classes */
if (scsi_is_sdev_device(dev)) {
- pm_runtime_mark_last_busy(dev);
pm_runtime_autosuspend(dev);
return -EBUSY;
}
--
2.39.5
^ permalink raw reply related [flat|nested] 162+ messages in thread
* Re: [PATCH 50/80] nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 50/80] nfc: trf7970a: " Sakari Ailus
@ 2025-07-04 8:03 ` Krzysztof Kozlowski
2025-07-15 8:18 ` Sakari Ailus
0 siblings, 1 reply; 162+ messages in thread
From: Krzysztof Kozlowski @ 2025-07-04 8:03 UTC (permalink / raw)
To: Sakari Ailus, Mark Greer; +Cc: linux-wireless, netdev, linux-kernel
On 04/07/2025 09:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
You did not send cover letter to people, so this changelog should
explain what I should do with this patch (what is the merging/dependency).
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
@ 2025-07-04 8:11 ` Jani Nikula
2025-07-04 8:58 ` Laurent Pinchart
` (4 subsequent siblings)
5 siblings, 0 replies; 162+ messages in thread
From: Jani Nikula @ 2025-07-04 8:11 UTC (permalink / raw)
To: Sakari Ailus, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Douglas Anderson, Lucas Stach, Russell King,
Christian Gmeiner, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Joonas Lahtinen, Rodrigo Vivi,
Tvrtko Ursulin, Laurentiu Palcu, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Qiang Yu, Jessica Zhang,
Boris Brezillon, Steven Price, Liviu Dudau, Thierry Reding,
Mikko Perttunen, Jonathan Hunter, Jyri Sarha, Tomi Valkeinen,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Baryshkov, Damon Ding, Ayushi Makhija, Luca Ceresoli,
Uwe Kleine-König, Chen-Yu Tsai
Cc: dri-devel, linux-kernel, etnaviv, linux-arm-kernel,
linux-samsung-soc, intel-gfx, imx, lima, linux-tegra
On Fri, 04 Jul 2025, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
I would think it's better to wait for linux-pm to get merged to Linus'
tree and then backmerged to drm after -rc1 instead of cross-merging that
directly to drm.
Regardless, for merging the i915 changes via whichever tree,
Acked-by: Jani Nikula <jani.nikula@intel.com>
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 74/80] ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 74/80] ASoC: SOF: " Sakari Ailus
@ 2025-07-04 8:26 ` Péter Ujfalusi
0 siblings, 0 replies; 162+ messages in thread
From: Péter Ujfalusi @ 2025-07-04 8:26 UTC (permalink / raw)
To: Sakari Ailus, Liam Girdwood, Bard Liao, Ranjani Sridharan,
Daniel Baluta, Kai Vehmanen, Pierre-Louis Bossart, Mark Brown,
Jaroslav Kysela, Takashi Iwai
Cc: sound-open-firmware, linux-sound, linux-kernel
On 04/07/2025 10:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> sound/soc/sof/control.c | 1 -
> sound/soc/sof/debug.c | 1 -
> sound/soc/sof/ipc3-dtrace.c | 1 -
> sound/soc/sof/ipc4-loader.c | 1 -
> sound/soc/sof/pcm.c | 1 -
> sound/soc/sof/sof-client-ipc-flood-test.c | 1 -
> sound/soc/sof/sof-client-ipc-kernel-injector.c | 1 -
> sound/soc/sof/sof-client-ipc-msg-injector.c | 1 -
> sound/soc/sof/sof-client-probes.c | 3 ---
> 9 files changed, 11 deletions(-)
>
> diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
> index 463d418e7200..a3fd1d523c09 100644
> --- a/sound/soc/sof/control.c
> +++ b/sound/soc/sof/control.c
> @@ -196,7 +196,6 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _
> if (tplg_ops && tplg_ops->control && tplg_ops->control->bytes_ext_volatile_get)
> ret = tplg_ops->control->bytes_ext_volatile_get(scontrol, binary_data, size);
>
> - pm_runtime_mark_last_busy(scomp->dev);
> err = pm_runtime_put_autosuspend(scomp->dev);
> if (err < 0)
> dev_err_ratelimited(scomp->dev, "%s: failed to idle %d\n", __func__, err);
> diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
> index d0ffa1d71145..b24943a65c89 100644
> --- a/sound/soc/sof/debug.c
> +++ b/sound/soc/sof/debug.c
> @@ -217,7 +217,6 @@ static int memory_info_update(struct snd_sof_dev *sdev, char *buf, size_t buff_s
> }
>
> ret = sof_ipc_tx_message(sdev->ipc, &msg, msg.size, reply, SOF_IPC_MSG_MAX_SIZE);
> - pm_runtime_mark_last_busy(sdev->dev);
> pm_runtime_put_autosuspend(sdev->dev);
> if (ret < 0 || reply->rhdr.error < 0) {
> ret = min(ret, reply->rhdr.error);
> diff --git a/sound/soc/sof/ipc3-dtrace.c b/sound/soc/sof/ipc3-dtrace.c
> index 744a91a150bc..e5c8fec173c4 100644
> --- a/sound/soc/sof/ipc3-dtrace.c
> +++ b/sound/soc/sof/ipc3-dtrace.c
> @@ -172,7 +172,6 @@ static int ipc3_trace_update_filter(struct snd_sof_dev *sdev, int num_elems,
> goto error;
> }
> ret = sof_ipc_tx_message_no_reply(sdev->ipc, msg, msg->hdr.size);
> - pm_runtime_mark_last_busy(sdev->dev);
> pm_runtime_put_autosuspend(sdev->dev);
>
> error:
> diff --git a/sound/soc/sof/ipc4-loader.c b/sound/soc/sof/ipc4-loader.c
> index ee61394e73d7..b0d293f62d1c 100644
> --- a/sound/soc/sof/ipc4-loader.c
> +++ b/sound/soc/sof/ipc4-loader.c
> @@ -236,7 +236,6 @@ static int sof_ipc4_load_library(struct snd_sof_dev *sdev, unsigned long lib_id,
>
> ret = ipc4_data->load_library(sdev, fw_lib, false);
>
> - pm_runtime_mark_last_busy(sdev->dev);
> err = pm_runtime_put_autosuspend(sdev->dev);
> if (err < 0)
> dev_err_ratelimited(sdev->dev, "%s: pm_runtime idle failed: %d\n",
> diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
> index 090ea3a76892..fe43de1fe96c 100644
> --- a/sound/soc/sof/pcm.c
> +++ b/sound/soc/sof/pcm.c
> @@ -712,7 +712,6 @@ static int sof_pcm_probe(struct snd_soc_component *component)
> ret);
>
> pm_error:
> - pm_runtime_mark_last_busy(component->dev);
> pm_runtime_put_autosuspend(component->dev);
>
> return ret;
> diff --git a/sound/soc/sof/sof-client-ipc-flood-test.c b/sound/soc/sof/sof-client-ipc-flood-test.c
> index 11b6f7da2882..373f3a125372 100644
> --- a/sound/soc/sof/sof-client-ipc-flood-test.c
> +++ b/sound/soc/sof/sof-client-ipc-flood-test.c
> @@ -223,7 +223,6 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
> ret = sof_debug_ipc_flood_test(cdev, flood_duration_test,
> ipc_duration_ms, ipc_count);
>
> - pm_runtime_mark_last_busy(dev);
> err = pm_runtime_put_autosuspend(dev);
> if (err < 0)
> dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
> diff --git a/sound/soc/sof/sof-client-ipc-kernel-injector.c b/sound/soc/sof/sof-client-ipc-kernel-injector.c
> index 8b28c3dc920c..249bd2d6c8d2 100644
> --- a/sound/soc/sof/sof-client-ipc-kernel-injector.c
> +++ b/sound/soc/sof/sof-client-ipc-kernel-injector.c
> @@ -65,7 +65,6 @@ static ssize_t sof_kernel_msg_inject_dfs_write(struct file *file, const char __u
>
> sof_client_ipc_rx_message(cdev, hdr, priv->kernel_buffer);
>
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> if (ret < 0)
> dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", ret);
> diff --git a/sound/soc/sof/sof-client-ipc-msg-injector.c b/sound/soc/sof/sof-client-ipc-msg-injector.c
> index ba7ca1c5027f..9c8a0fbfb8df 100644
> --- a/sound/soc/sof/sof-client-ipc-msg-injector.c
> +++ b/sound/soc/sof/sof-client-ipc-msg-injector.c
> @@ -137,7 +137,6 @@ static int sof_msg_inject_send_message(struct sof_client_dev *cdev)
> if (ret)
> dev_err(dev, "IPC message send failed: %d\n", ret);
>
> - pm_runtime_mark_last_busy(dev);
> err = pm_runtime_put_autosuspend(dev);
> if (err < 0)
> dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
> diff --git a/sound/soc/sof/sof-client-probes.c b/sound/soc/sof/sof-client-probes.c
> index aff9ce980429..663c0d3c314c 100644
> --- a/sound/soc/sof/sof-client-probes.c
> +++ b/sound/soc/sof/sof-client-probes.c
> @@ -238,7 +238,6 @@ static ssize_t sof_probes_dfs_points_read(struct file *file, char __user *to,
> kfree(desc);
>
> pm_error:
> - pm_runtime_mark_last_busy(dev);
> err = pm_runtime_put_autosuspend(dev);
> if (err < 0)
> dev_err_ratelimited(dev, "debugfs read failed to idle %d\n", err);
> @@ -289,7 +288,6 @@ sof_probes_dfs_points_write(struct file *file, const char __user *from,
> if (!ret)
> ret = count;
>
> - pm_runtime_mark_last_busy(dev);
> err = pm_runtime_put_autosuspend(dev);
> if (err < 0)
> dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
> @@ -337,7 +335,6 @@ sof_probes_dfs_points_remove_write(struct file *file, const char __user *from,
> if (!ret)
> ret = count;
>
> - pm_runtime_mark_last_busy(dev);
> err = pm_runtime_put_autosuspend(dev);
> if (err < 0)
> dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
--
Péter
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 12/80] dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 12/80] dmaengine: ste_dma40: " Sakari Ailus
@ 2025-07-04 8:41 ` Linus Walleij
0 siblings, 0 replies; 162+ messages in thread
From: Linus Walleij @ 2025-07-04 8:41 UTC (permalink / raw)
To: Sakari Ailus; +Cc: Vinod Koul, linux-arm-kernel, dmaengine, linux-kernel
On Fri, Jul 4, 2025 at 9:54 AM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 32/80] iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 32/80] iio: gyro: " Sakari Ailus
@ 2025-07-04 8:41 ` Linus Walleij
2025-07-04 15:25 ` Rui Miguel Silva
1 sibling, 0 replies; 162+ messages in thread
From: Linus Walleij @ 2025-07-04 8:41 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Rui Miguel Silva, Julien Stephan, Hans de Goede, Waqar Hameed,
linux-iio, linux-kernel
On Fri, Jul 4, 2025 at 9:54 AM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 34/80] iio: light: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 34/80] iio: light: " Sakari Ailus
@ 2025-07-04 8:42 ` Linus Walleij
2025-07-06 10:31 ` Jonathan Cameron
1 sibling, 0 replies; 162+ messages in thread
From: Linus Walleij @ 2025-07-04 8:42 UTC (permalink / raw)
To: Sakari Ailus
Cc: Subhajit Ghosh, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Julien Stephan, Waqar Hameed, Abhash Jha,
chuguangqing, Shreeya Patel, Marek Vasut, Al Viro,
Vasileios Amoiridis, Per-Daniel Olsson, Javier Carrasco,
linux-iio, linux-kernel
On Fri, Jul 4, 2025 at 9:54 AM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 28/80] iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 28/80] iio: adc: " Sakari Ailus
@ 2025-07-04 8:42 ` Linus Walleij
2025-07-04 9:09 ` Jonathan Cameron
1 sibling, 0 replies; 162+ messages in thread
From: Linus Walleij @ 2025-07-04 8:42 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Eugen Hristev, Nicolas Ferre, Alexandre Belloni, Claudiu Beznea,
Cai Huoqing, Haibo Chen, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Marek Vasut,
Geert Uytterhoeven, Magnus Damm, Lad Prabhakar, Maxime Coquelin,
Alexandre Torgue, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Francesco Dolcini, João Paulo Gonçalves,
Jiri Slaby (SUSE), Fabrice Gasnier, Rob Herring (Arm),
Uwe Kleine-König, Mike Looijmans, Olivier Moysan,
Christophe JAILLET, Julien Stephan, linux-arm-kernel, linux-iio,
linux-kernel, imx, linux-renesas-soc, linux-stm32, linux-sunxi
On Fri, Jul 4, 2025 at 9:54 AM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 35/80] iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 35/80] iio: magnetometer: " Sakari Ailus
@ 2025-07-04 8:43 ` Linus Walleij
2025-07-06 10:28 ` Jonathan Cameron
1 sibling, 0 replies; 162+ messages in thread
From: Linus Walleij @ 2025-07-04 8:43 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Gerald Loacker, Barnabás Czémán,
Krzysztof Kozlowski, Neil Armstrong, Waqar Hameed, Hans de Goede,
Peter Zijlstra, Jakob Hauser, David Laight, Al Viro, linux-iio,
linux-kernel
On Fri, Jul 4, 2025 at 9:54 AM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
@ 2025-07-04 8:56 ` Laurent Pinchart
2025-07-04 9:07 ` Thierry Reding
` (5 subsequent siblings)
6 siblings, 0 replies; 162+ messages in thread
From: Laurent Pinchart @ 2025-07-04 8:56 UTC (permalink / raw)
To: Sakari Ailus
Cc: Tommaso Merciai, Martin Hecht, Mauro Carvalho Chehab,
Sebastian Reichel, Alain Volmat, Dave Stevenson, Kieran Bingham,
Umang Jain, Manivannan Sadhasivam, Michael Riesch,
Mikhail Rudenko, Steve Longerbeam, Jacopo Mondi, Nicholas Roth,
Benjamin Mugnier, Sylvain Petinot, Paul Elder, Matt Ranostay,
Nas Chung, Jackson Lee, Dmitry Osipenko, Thierry Reding,
Jonathan Hunter, Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Raspberry Pi Kernel Maintenance,
Florian Fainelli, Broadcom internal kernel review list,
Nicolas Dufresne, Benjamin Gaignard, Philipp Zabel, Sean Young,
Hans Verkuil, Matthias Fend, Marco Felsch, Tomi Valkeinen,
Ricardo Ribalda, linux-media, linux-kernel, linux-tegra,
linux-arm-msm, linux-rpi-kernel, linux-arm-kernel, linux-rockchip
Hi Sakari,
On Fri, Jul 04, 2025 at 10:54:31AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/media/i2c/alvium-csi2.c | 1 -
> drivers/media/i2c/ccs/ccs-core.c | 4 ----
> drivers/media/i2c/dw9768.c | 1 -
> drivers/media/i2c/gc0308.c | 3 ---
> drivers/media/i2c/gc2145.c | 3 ---
> drivers/media/i2c/imx219.c | 2 --
> drivers/media/i2c/imx283.c | 3 ---
> drivers/media/i2c/imx290.c | 3 ---
> drivers/media/i2c/imx296.c | 1 -
> drivers/media/i2c/imx415.c | 1 -
> drivers/media/i2c/mt9m114.c | 6 ------
> drivers/media/i2c/ov4689.c | 3 ---
> drivers/media/i2c/ov5640.c | 4 ----
> drivers/media/i2c/ov5645.c | 3 ---
> drivers/media/i2c/ov64a40.c | 4 ----
> drivers/media/i2c/ov8858.c | 2 --
> drivers/media/i2c/st-mipid02.c | 2 --
> drivers/media/i2c/tc358746.c | 5 -----
> drivers/media/i2c/thp7312.c | 4 ----
> drivers/media/i2c/vd55g1.c | 4 ----
> drivers/media/i2c/vd56g3.c | 4 ----
> drivers/media/i2c/video-i2c.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c | 5 -----
> drivers/media/platform/nvidia/tegra-vde/h264.c | 2 --
> drivers/media/platform/qcom/iris/iris_hfi_queue.c | 1 -
> drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 2 --
> drivers/media/platform/verisilicon/hantro_drv.c | 1 -
> drivers/media/rc/gpio-ir-recv.c | 1 -
> 29 files changed, 83 deletions(-)
[snip]
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 487bcabb4a19..3316639b695e 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -788,7 +788,6 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
> }
>
> if (pm_status > 0) {
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
You can now drop the curly braces.
>
[snip]
> diff --git a/drivers/media/i2c/ov64a40.c b/drivers/media/i2c/ov64a40.c
> index a5da4fe47e0b..15912ecb8d26 100644
> --- a/drivers/media/i2c/ov64a40.c
> +++ b/drivers/media/i2c/ov64a40.c
[snip]
> @@ -3330,7 +3328,6 @@ static int ov64a40_set_ctrl(struct v4l2_ctrl *ctrl)
> }
>
> if (pm_status > 0) {
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
> }
Same here.
>
[snip]
> diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c
> index bf6d8fa983bf..161f8919022c 100644
> --- a/drivers/media/rc/gpio-ir-recv.c
> +++ b/drivers/media/rc/gpio-ir-recv.c
> @@ -49,7 +49,6 @@ static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id)
> ir_raw_event_store_edge(gpio_dev->rcdev, val == 1);
>
> if (pmdev) {
> - pm_runtime_mark_last_busy(pmdev);
> pm_runtime_put_autosuspend(pmdev);
> }
And here too.
With that,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 46/80] net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 46/80] net: ethernet: " Sakari Ailus
@ 2025-07-04 8:57 ` Niklas Söderlund
0 siblings, 0 replies; 162+ messages in thread
From: Niklas Söderlund @ 2025-07-04 8:57 UTC (permalink / raw)
To: Sakari Ailus
Cc: Nicolas Ferre, Claudiu Beznea, Andrew Lunn, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Wei Fang, Shenwei Wang,
Clark Wang, Paul Barker, Siddharth Vadapalli, Roger Quadros,
Uwe Kleine-König, netdev, linux-kernel, imx,
linux-renesas-soc, linux-omap
Hej Sakari,
Thanks for your work, this is a nice improvement!
On 2025-07-04 10:54:35 +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/net/ethernet/cadence/macb_main.c | 5 -----
> drivers/net/ethernet/freescale/fec_main.c | 8 --------
> drivers/net/ethernet/renesas/ravb_main.c | 4 ----
For RAVB,
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> drivers/net/ethernet/ti/davinci_mdio.c | 7 -------
> 4 files changed, 24 deletions(-)
>
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index 53aaf6b08e39..9b7cbb3e3108 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -360,7 +360,6 @@ static int macb_mdio_read_c22(struct mii_bus *bus, int mii_id, int regnum)
> status = MACB_BFEXT(DATA, macb_readl(bp, MAN));
>
> mdio_read_exit:
> - pm_runtime_mark_last_busy(&bp->pdev->dev);
> pm_runtime_put_autosuspend(&bp->pdev->dev);
> mdio_pm_exit:
> return status;
> @@ -406,7 +405,6 @@ static int macb_mdio_read_c45(struct mii_bus *bus, int mii_id, int devad,
> status = MACB_BFEXT(DATA, macb_readl(bp, MAN));
>
> mdio_read_exit:
> - pm_runtime_mark_last_busy(&bp->pdev->dev);
> pm_runtime_put_autosuspend(&bp->pdev->dev);
> mdio_pm_exit:
> return status;
> @@ -438,7 +436,6 @@ static int macb_mdio_write_c22(struct mii_bus *bus, int mii_id, int regnum,
> goto mdio_write_exit;
>
> mdio_write_exit:
> - pm_runtime_mark_last_busy(&bp->pdev->dev);
> pm_runtime_put_autosuspend(&bp->pdev->dev);
> mdio_pm_exit:
> return status;
> @@ -484,7 +481,6 @@ static int macb_mdio_write_c45(struct mii_bus *bus, int mii_id,
> goto mdio_write_exit;
>
> mdio_write_exit:
> - pm_runtime_mark_last_busy(&bp->pdev->dev);
> pm_runtime_put_autosuspend(&bp->pdev->dev);
> mdio_pm_exit:
> return status;
> @@ -5358,7 +5354,6 @@ static int macb_probe(struct platform_device *pdev)
> macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID),
> dev->base_addr, dev->irq, dev->dev_addr);
>
> - pm_runtime_mark_last_busy(&bp->pdev->dev);
> pm_runtime_put_autosuspend(&bp->pdev->dev);
>
> return 0;
> diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
> index d4eed252ad40..e6979599ae7e 100644
> --- a/drivers/net/ethernet/freescale/fec_main.c
> +++ b/drivers/net/ethernet/freescale/fec_main.c
> @@ -2207,7 +2207,6 @@ static int fec_enet_mdio_read_c22(struct mii_bus *bus, int mii_id, int regnum)
> ret = FEC_MMFR_DATA(readl(fep->hwp + FEC_MII_DATA));
>
> out:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -2256,7 +2255,6 @@ static int fec_enet_mdio_read_c45(struct mii_bus *bus, int mii_id,
> ret = FEC_MMFR_DATA(readl(fep->hwp + FEC_MII_DATA));
>
> out:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -2288,7 +2286,6 @@ static int fec_enet_mdio_write_c22(struct mii_bus *bus, int mii_id, int regnum,
> if (ret)
> netdev_err(fep->netdev, "MDIO write timeout\n");
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -2332,7 +2329,6 @@ static int fec_enet_mdio_write_c45(struct mii_bus *bus, int mii_id,
> netdev_err(fep->netdev, "MDIO write timeout\n");
>
> out:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -2814,7 +2810,6 @@ static void fec_enet_get_regs(struct net_device *ndev,
> buf[off] = readl(&theregs[off]);
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
>
> @@ -3590,7 +3585,6 @@ fec_enet_open(struct net_device *ndev)
> err_enet_alloc:
> fec_enet_clk_enable(ndev, false);
> clk_enable:
> - pm_runtime_mark_last_busy(&fep->pdev->dev);
> pm_runtime_put_autosuspend(&fep->pdev->dev);
> pinctrl_pm_select_sleep_state(&fep->pdev->dev);
> return ret;
> @@ -3621,7 +3615,6 @@ fec_enet_close(struct net_device *ndev)
> cpu_latency_qos_remove_request(&fep->pm_qos_req);
>
> pinctrl_pm_select_sleep_state(&fep->pdev->dev);
> - pm_runtime_mark_last_busy(&fep->pdev->dev);
> pm_runtime_put_autosuspend(&fep->pdev->dev);
>
> fec_enet_free_buffers(ndev);
> @@ -4568,7 +4561,6 @@ fec_probe(struct platform_device *pdev)
>
> INIT_WORK(&fep->tx_timeout_work, fec_enet_timeout_work);
>
> - pm_runtime_mark_last_busy(&pdev->dev);
> pm_runtime_put_autosuspend(&pdev->dev);
>
> return 0;
> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index c9f4976a3527..b8bfc3cdbb6b 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -1974,7 +1974,6 @@ static int ravb_open(struct net_device *ndev)
> out_set_reset:
> ravb_set_opmode(ndev, CCC_OPC_RESET);
> out_rpm_put:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> out_napi_off:
> if (info->nc_queues)
> @@ -2383,7 +2382,6 @@ static int ravb_close(struct net_device *ndev)
> if (error)
> return error;
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> @@ -3089,7 +3087,6 @@ static int ravb_probe(struct platform_device *pdev)
> netdev_info(ndev, "Base address at %#x, %pM, IRQ %d.\n",
> (u32)ndev->base_addr, ndev->dev_addr, ndev->irq);
>
> - pm_runtime_mark_last_busy(&pdev->dev);
> pm_runtime_put_autosuspend(&pdev->dev);
>
> return 0;
> @@ -3274,7 +3271,6 @@ static int ravb_resume(struct device *dev)
>
> out_rpm_put:
> if (!priv->wol_enabled) {
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
>
> diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
> index 68507126be8e..9f049ebbf107 100644
> --- a/drivers/net/ethernet/ti/davinci_mdio.c
> +++ b/drivers/net/ethernet/ti/davinci_mdio.c
> @@ -234,7 +234,6 @@ static int davinci_mdiobb_read_c22(struct mii_bus *bus, int phy, int reg)
>
> ret = mdiobb_read_c22(bus, phy, reg);
>
> - pm_runtime_mark_last_busy(bus->parent);
> pm_runtime_put_autosuspend(bus->parent);
>
> return ret;
> @@ -251,7 +250,6 @@ static int davinci_mdiobb_write_c22(struct mii_bus *bus, int phy, int reg,
>
> ret = mdiobb_write_c22(bus, phy, reg, val);
>
> - pm_runtime_mark_last_busy(bus->parent);
> pm_runtime_put_autosuspend(bus->parent);
>
> return ret;
> @@ -268,7 +266,6 @@ static int davinci_mdiobb_read_c45(struct mii_bus *bus, int phy, int devad,
>
> ret = mdiobb_read_c45(bus, phy, devad, reg);
>
> - pm_runtime_mark_last_busy(bus->parent);
> pm_runtime_put_autosuspend(bus->parent);
>
> return ret;
> @@ -285,7 +282,6 @@ static int davinci_mdiobb_write_c45(struct mii_bus *bus, int phy, int devad,
>
> ret = mdiobb_write_c45(bus, phy, devad, reg, val);
>
> - pm_runtime_mark_last_busy(bus->parent);
> pm_runtime_put_autosuspend(bus->parent);
>
> return ret;
> @@ -332,7 +328,6 @@ static int davinci_mdio_common_reset(struct davinci_mdio_data *data)
> data->bus->phy_mask = phy_mask;
>
> done:
> - pm_runtime_mark_last_busy(data->dev);
> pm_runtime_put_autosuspend(data->dev);
>
> return 0;
> @@ -441,7 +436,6 @@ static int davinci_mdio_read(struct mii_bus *bus, int phy_id, int phy_reg)
> break;
> }
>
> - pm_runtime_mark_last_busy(data->dev);
> pm_runtime_put_autosuspend(data->dev);
> return ret;
> }
> @@ -478,7 +472,6 @@ static int davinci_mdio_write(struct mii_bus *bus, int phy_id,
> break;
> }
>
> - pm_runtime_mark_last_busy(data->dev);
> pm_runtime_put_autosuspend(data->dev);
>
> return ret;
> --
> 2.39.5
>
--
Kind Regards,
Niklas Söderlund
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
2025-07-04 8:11 ` Jani Nikula
@ 2025-07-04 8:58 ` Laurent Pinchart
2025-07-04 9:12 ` Thierry Reding
` (3 subsequent siblings)
5 siblings, 0 replies; 162+ messages in thread
From: Laurent Pinchart @ 2025-07-04 8:58 UTC (permalink / raw)
To: Sakari Ailus
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Jonas Karlman,
Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Douglas Anderson,
Lucas Stach, Russell King, Christian Gmeiner, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
Laurentiu Palcu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Qiang Yu, Jessica Zhang, Boris Brezillon,
Steven Price, Liviu Dudau, Thierry Reding, Mikko Perttunen,
Jonathan Hunter, Jyri Sarha, Tomi Valkeinen, Dave Stevenson,
Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Baryshkov, Damon Ding, Ayushi Makhija, Luca Ceresoli,
Uwe Kleine-König, Chen-Yu Tsai, dri-devel, linux-kernel,
etnaviv, linux-arm-kernel, linux-samsung-soc, intel-gfx, imx,
lima, linux-tegra
Hi Sakari,
Thank you for the patch.
On Fri, Jul 04, 2025 at 10:54:13AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 2 --
> drivers/gpu/drm/bridge/analogix/anx7625.c | 2 --
> drivers/gpu/drm/bridge/parade-ps8640.c | 2 --
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 -
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 4 ----
> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 1 -
> drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 -
> drivers/gpu/drm/i915/intel_runtime_pm.c | 2 --
> drivers/gpu/drm/imx/dcss/dcss-crtc.c | 1 -
> drivers/gpu/drm/lima/lima_sched.c | 1 -
> drivers/gpu/drm/panel/panel-edp.c | 3 ---
> drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 2 --
> drivers/gpu/drm/panel/panel-simple.c | 2 --
> drivers/gpu/drm/panthor/panthor_sched.c | 2 --
> drivers/gpu/drm/tegra/submit.c | 1 -
> drivers/gpu/drm/tidss/tidss_drv.c | 2 --
> drivers/gpu/drm/vc4/vc4_v3d.c | 1 -
> 20 files changed, 36 deletions(-)
[snip]
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> index cf0d9049bcf1..bc5a94dba2d4 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> @@ -916,13 +916,11 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
> etnaviv_gpu_hw_init(gpu);
> mutex_unlock(&gpu->lock);
>
> - pm_runtime_mark_last_busy(gpu->dev);
> pm_runtime_put_autosuspend(gpu->dev);
>
> return 0;
>
> fail:
You can drop the fail error later and replace it with pm_put.
> - pm_runtime_mark_last_busy(gpu->dev);
> pm_put:
> pm_runtime_put_autosuspend(gpu->dev);
>
> @@ -1109,7 +1107,6 @@ int etnaviv_gpu_debugfs(struct etnaviv_gpu *gpu, struct seq_file *m)
>
> ret = 0;
>
> - pm_runtime_mark_last_busy(gpu->dev);
> pm_put:
> pm_runtime_put_autosuspend(gpu->dev);
>
> @@ -1509,7 +1506,6 @@ void etnaviv_gpu_recover_hang(struct etnaviv_gem_submit *submit)
> etnaviv_gpu_hw_init(gpu);
>
> mutex_unlock(&gpu->lock);
> - pm_runtime_mark_last_busy(gpu->dev);
> pm_put:
> pm_runtime_put_autosuspend(gpu->dev);
> }
[snip]
> diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
> index bb09df5000bd..11ec7e913974 100644
> --- a/drivers/gpu/drm/vc4/vc4_v3d.c
> +++ b/drivers/gpu/drm/vc4/vc4_v3d.c
> @@ -153,7 +153,6 @@ vc4_v3d_pm_put(struct vc4_dev *vc4)
>
> mutex_lock(&vc4->power_lock);
> if (--vc4->power_refcount == 0) {
> - pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev);
> pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev);
> }
And here you can drop the curly braces. With that,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> mutex_unlock(&vc4->power_lock);
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (79 preceding siblings ...)
2025-07-04 7:55 ` [PATCH 79/80] mei: " Sakari Ailus
@ 2025-07-04 9:03 ` Jonathan Cameron
2025-07-04 12:04 ` Mark Brown
` (6 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-04 9:03 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-pm, linux-kernel, Rafael J. Wysocki, linux-iio
On Fri, 4 Jul 2025 10:52:25 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> Hello everyone,
>
> Late last year I posted a set to switch to __pm_runtime_mark_last_busy()
> and gradually get rid of explicit pm_runtime_mark_last_busy() calls in
> drivers, embedding them in the appropriate pm_runtime_*autosuspend*()
> calls. The overall feedback I got at the time was that this is an
> unnecessary intermediate step, and removing the
> pm_runtime_mark_last_busy() calls can be done after adding them to the
> relevant Runtime PM autosuspend related functions. The latter part has
> been done and is present in Rafael's tree at the moment, also see
> <URL:https://lore.kernel.org/linux-pm/CAJZ5v0g7-8UWp6ATOy+=oGdxDaCnfKHBG_+kbiTr+VeuXZsUFQ@mail.gmail.com/>:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> So before merging these, please pull Rafael's tag. My thinking is indeed
> these would be best merged via the respective trees as there's some
> potential for conflicts (there are around 920 call sites modified here).
>
> These patches are on next-20250701.
Hi Sakari,
Great change in general - however...
I'd much of preferred to see a per subsystem series for this rather than
all together. That would have avoided the back reference to this cover letter
in each patch. Also would have provided a subsystem specific cover letter
for people to reply with general comments and tags.
As you note there is no need for these all to land together and the
expectation is they will go through subsystem trees.
Grouping by 'type' of driver is a good step though, so thanks for doing that.
Ah well, I guess I'll cherry-pick the IIO ones from this series.
Jonathan
>
> The changes in these have been generated using the following Coccinelle
> patch:
>
> -----------8<-----------------------------
> @@
> expression E;
> identifier label, rval;
> @@
> - pm_runtime_mark_last_busy(E);
> ...
> (
> label:
> |
> )
> ...
> (
> pm_runtime_put_autosuspend(E);
> |
> pm_runtime_put_sync_autosuspend(E);
> |
> pm_runtime_autosuspend(E);
> |
> pm_request_autosuspend(E);
> |
> (void)pm_runtime_put_autosuspend(E);
> |
> (void)pm_runtime_put_sync_autosuspend(E);
> |
> (void)pm_runtime_autosuspend(E);
> |
> (void)pm_request_autosuspend(E);
> |
> return pm_runtime_put_autosuspend(E);
> |
> return pm_runtime_put_sync_autosuspend(E);
> |
> return pm_runtime_autosuspend(E);
> |
> return pm_request_autosuspend(E);
> |
> rval = pm_runtime_put_autosuspend(E);
> |
> rval = pm_runtime_put_sync_autosuspend(E);
> |
> rval = pm_runtime_autosuspend(E);
> |
> rval = pm_request_autosuspend(E);
> )
> -----------8<-----------------------------
>
> Sakari Ailus (80):
> accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
> accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
> Bluetooth: Remove redundant pm_runtime_mark_last_busy() calls
> bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
> hwrng: Remove redundant pm_runtime_mark_last_busy() calls
> clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
> clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> crypto: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: at_xdmac: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: pl330: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: ti: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: zynqmp_dma: Remove redundant pm_runtime_mark_last_busy()
> calls
> gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
> drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
> drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
> drm/radeon: Remove redundant pm_runtime_mark_last_busy() calls
> drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
> drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
> HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
> stm class: Remove redundant pm_runtime_mark_last_busy() calls
> i2c: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
> HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
> iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
> iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
> iio: chemical: Remove redundant pm_runtime_mark_last_busy() calls
> iio: common: Remove redundant pm_runtime_mark_last_busy() calls
> iio: dac: Remove redundant pm_runtime_mark_last_busy() calls
> iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
> iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
> iio: light: Remove redundant pm_runtime_mark_last_busy() calls
> iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
> iio: pressure: Remove redundant pm_runtime_mark_last_busy() calls
> iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
> iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
> Input: omap4-keypad: Remove redundant pm_runtime_mark_last_busy()
> calls
> Input: cs40l50: Remove redundant pm_runtime_mark_last_busy() calls
> media: Remove redundant pm_runtime_mark_last_busy() calls
> mfd: Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> mmc: Remove redundant pm_runtime_mark_last_busy() calls
> mtd: rawnand: gpmi: Remove redundant pm_runtime_mark_last_busy() calls
> net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
> net: ipa: Remove redundant pm_runtime_mark_last_busy() calls
> net: wireless: Remove redundant pm_runtime_mark_last_busy() calls
> net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
> nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
> PCI/portdrv: Remove redundant pm_runtime_mark_last_busy() calls
> phy: motorola: phy-mapphone-mdm6600: Remove redundant
> pm_runtime_mark_last_busy() calls
> phy: ti: phy-twl4030-usb: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: twl4030_charger: Remove redundant
> pm_runtime_mark_last_busy() calls
> pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
> regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy()
> calls
> remoteproc: omap: Remove redundant pm_runtime_mark_last_busy() calls
> slimbus: Remove redundant pm_runtime_mark_last_busy() calls
> soundwire: Remove redundant pm_runtime_mark_last_busy() calls
> spi: Remove redundant pm_runtime_mark_last_busy() calls
> staging: greybus: Remove redundant pm_runtime_mark_last_busy() calls
> greybus: Remove redundant pm_runtime_mark_last_busy() calls
> media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
> thunderbolt: Remove redundant pm_runtime_mark_last_busy() calls
> serial: Remove redundant pm_runtime_mark_last_busy() calls
> usb: Remove redundant pm_runtime_mark_last_busy() calls
> w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
> soc: apple: mailbox: Remove redundant pm_runtime_mark_last_busy()
> calls
> block: pm: Remove redundant pm_runtime_mark_last_busy() calls
> Input: cyapa - Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> scsi: block: pm: Remove redundant pm_runtime_mark_last_busy() calls
>
> block/blk-pm.c | 1 -
> drivers/accel/amdxdna/amdxdna_pci_drv.c | 3 --
> drivers/accel/ivpu/ivpu_job.c | 1 -
> drivers/accel/ivpu/ivpu_pm.c | 2 --
> drivers/bluetooth/btmtksdio.c | 1 -
> drivers/bluetooth/hci_bcm.c | 3 --
> drivers/bluetooth/hci_h5.c | 2 --
> drivers/bluetooth/hci_intel.c | 3 --
> drivers/bus/sunxi-rsb.c | 2 --
> drivers/char/hw_random/atmel-rng.c | 1 -
> drivers/char/hw_random/cctrng.c | 1 -
> drivers/char/hw_random/mtk-rng.c | 1 -
> drivers/char/hw_random/npcm-rng.c | 1 -
> drivers/char/hw_random/omap3-rom-rng.c | 1 -
> drivers/char/hw_random/rockchip-rng.c | 3 --
> drivers/char/hw_random/stm32-rng.c | 1 -
> drivers/clk/imx/clk-imx8qxp-lpcg.c | 1 -
> drivers/clk/imx/clk-scu.c | 1 -
> drivers/clk/qcom/lpassaudiocc-sc7280.c | 2 --
> drivers/clk/qcom/lpasscorecc-sc7180.c | 2 --
> drivers/crypto/ccree/cc_pm.c | 1 -
> drivers/crypto/hisilicon/qm.c | 1 -
> drivers/crypto/omap-aes-gcm.c | 1 -
> drivers/crypto/omap-aes.c | 1 -
> drivers/crypto/omap-des.c | 1 -
> drivers/crypto/omap-sham.c | 1 -
> drivers/crypto/stm32/stm32-cryp.c | 1 -
> drivers/crypto/stm32/stm32-hash.c | 1 -
> drivers/dma/at_xdmac.c | 11 ------
> drivers/dma/pl330.c | 5 ---
> drivers/dma/qcom/bam_dma.c | 5 ---
> drivers/dma/qcom/hidma.c | 9 -----
> drivers/dma/qcom/hidma_dbg.c | 1 -
> drivers/dma/qcom/hidma_mgmt.c | 2 --
> drivers/dma/ste_dma40.c | 8 -----
> drivers/dma/ti/cppi41.c | 5 ---
> drivers/dma/xilinx/zynqmp_dma.c | 2 --
> drivers/gpio/gpio-arizona.c | 2 --
> drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 1 -
> .../gpu/drm/amd/amdgpu/amdgpu_connectors.c | 4 ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 25 -------------
> drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 --
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 2 --
> drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 1 -
> drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 --
> drivers/gpu/drm/amd/amdgpu/amdgpu_rap.c | 1 -
> drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 1 -
> .../gpu/drm/amd/amdgpu/amdgpu_securedisplay.c | 1 -
> drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 1 -
> drivers/gpu/drm/amd/amdkfd/kfd_process.c | 1 -
> drivers/gpu/drm/amd/pm/amdgpu_pm.c | 1 -
> .../drm/bridge/analogix/analogix_dp_core.c | 2 --
> drivers/gpu/drm/bridge/analogix/anx7625.c | 2 --
> drivers/gpu/drm/bridge/parade-ps8640.c | 2 --
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 -
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 4 ---
> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 1 -
> drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 -
> drivers/gpu/drm/i915/intel_runtime_pm.c | 2 --
> drivers/gpu/drm/imx/dcss/dcss-crtc.c | 1 -
> drivers/gpu/drm/lima/lima_sched.c | 1 -
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 --
> drivers/gpu/drm/nouveau/nouveau_connector.c | 1 -
> drivers/gpu/drm/nouveau/nouveau_debugfs.c | 1 -
> drivers/gpu/drm/nouveau/nouveau_display.c | 1 -
> drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ---
> drivers/gpu/drm/nouveau/nouveau_gem.c | 3 --
> drivers/gpu/drm/panel/panel-edp.c | 3 --
> .../gpu/drm/panel/panel-samsung-atna33xc20.c | 2 --
> drivers/gpu/drm/panel/panel-simple.c | 2 --
> drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 2 --
> drivers/gpu/drm/panthor/panthor_sched.c | 2 --
> drivers/gpu/drm/radeon/radeon_acpi.c | 1 -
> drivers/gpu/drm/radeon/radeon_connectors.c | 5 ---
> drivers/gpu/drm/radeon/radeon_display.c | 2 --
> drivers/gpu/drm/radeon/radeon_drv.c | 2 --
> drivers/gpu/drm/radeon/radeon_fbdev.c | 2 --
> drivers/gpu/drm/radeon/radeon_kms.c | 4 ---
> drivers/gpu/drm/tegra/submit.c | 1 -
> drivers/gpu/drm/tidss/tidss_drv.c | 2 --
> drivers/gpu/drm/vc4/vc4_v3d.c | 1 -
> drivers/greybus/bundle.c | 1 -
> drivers/greybus/interface.c | 1 -
> .../intel-quicki2c/pci-quicki2c.c | 2 --
> .../intel-quicki2c/quicki2c-hid.c | 1 -
> .../intel-quickspi/pci-quickspi.c | 2 --
> .../intel-quickspi/quickspi-hid.c | 1 -
> drivers/hsi/controllers/omap_ssi_port.c | 11 ------
> drivers/hwtracing/stm/core.c | 3 --
> drivers/i2c/busses/i2c-amd-mp2.h | 1 -
> drivers/i2c/busses/i2c-at91-core.c | 1 -
> drivers/i2c/busses/i2c-at91-master.c | 1 -
> drivers/i2c/busses/i2c-cadence.c | 1 -
> drivers/i2c/busses/i2c-davinci.c | 2 --
> drivers/i2c/busses/i2c-designware-master.c | 1 -
> drivers/i2c/busses/i2c-hix5hd2.c | 1 -
> drivers/i2c/busses/i2c-i801.c | 1 -
> drivers/i2c/busses/i2c-img-scb.c | 3 --
> drivers/i2c/busses/i2c-imx-lpi2c.c | 4 ---
> drivers/i2c/busses/i2c-imx.c | 3 --
> drivers/i2c/busses/i2c-mv64xxx.c | 1 -
> drivers/i2c/busses/i2c-nvidia-gpu.c | 1 -
> drivers/i2c/busses/i2c-omap.c | 3 --
> drivers/i2c/busses/i2c-qcom-cci.c | 2 --
> drivers/i2c/busses/i2c-qcom-geni.c | 1 -
> drivers/i2c/busses/i2c-qup.c | 3 --
> drivers/i2c/busses/i2c-riic.c | 2 --
> drivers/i2c/busses/i2c-rzv2m.c | 1 -
> drivers/i2c/busses/i2c-sprd.c | 2 --
> drivers/i2c/busses/i2c-stm32f7.c | 5 ---
> drivers/i2c/busses/i2c-xiic.c | 1 -
> drivers/i3c/master/dw-i3c-master.c | 8 -----
> drivers/i3c/master/svc-i3c-master.c | 8 -----
> drivers/iio/accel/bmc150-accel-core.c | 1 -
> drivers/iio/accel/bmi088-accel-core.c | 3 --
> drivers/iio/accel/fxls8962af-core.c | 1 -
> drivers/iio/accel/kxcjk-1013.c | 1 -
> drivers/iio/accel/kxsd9.c | 3 --
> drivers/iio/accel/mma8452.c | 1 -
> drivers/iio/accel/mma9551_core.c | 1 -
> drivers/iio/accel/msa311.c | 6 ----
> drivers/iio/adc/ab8500-gpadc.c | 1 -
> drivers/iio/adc/at91-sama5d2_adc.c | 10 ------
> drivers/iio/adc/imx8qxp-adc.c | 2 --
> drivers/iio/adc/imx93_adc.c | 1 -
> drivers/iio/adc/rcar-gyroadc.c | 1 -
> drivers/iio/adc/rzg2l_adc.c | 3 --
> drivers/iio/adc/stm32-adc-core.c | 1 -
> drivers/iio/adc/stm32-adc.c | 7 ----
> drivers/iio/adc/sun4i-gpadc-iio.c | 2 --
> drivers/iio/adc/ti-ads1015.c | 1 -
> drivers/iio/adc/ti-ads1100.c | 1 -
> drivers/iio/adc/ti-ads1119.c | 2 --
> drivers/iio/chemical/atlas-sensor.c | 2 --
> drivers/iio/chemical/bme680_core.c | 3 --
> .../common/hid-sensors/hid-sensor-trigger.c | 1 -
> drivers/iio/dac/stm32-dac.c | 3 --
> drivers/iio/gyro/bmg160_core.c | 1 -
> drivers/iio/gyro/fxas21002c_core.c | 2 --
> drivers/iio/gyro/mpu3050-core.c | 3 --
> drivers/iio/gyro/mpu3050-i2c.c | 1 -
> .../iio/imu/inv_icm42600/inv_icm42600_accel.c | 5 ---
> .../imu/inv_icm42600/inv_icm42600_buffer.c | 1 -
> .../iio/imu/inv_icm42600/inv_icm42600_gyro.c | 5 ---
> .../iio/imu/inv_icm42600/inv_icm42600_temp.c | 1 -
> drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 6 ----
> drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c | 1 -
> drivers/iio/imu/kmx61.c | 1 -
> drivers/iio/light/apds9306.c | 2 --
> drivers/iio/light/apds9960.c | 1 -
> drivers/iio/light/bh1780.c | 1 -
> drivers/iio/light/gp2ap002.c | 2 --
> drivers/iio/light/isl29028.c | 1 -
> drivers/iio/light/ltrf216a.c | 1 -
> drivers/iio/light/pa12203001.c | 1 -
> drivers/iio/light/rpr0521.c | 1 -
> drivers/iio/light/tsl2583.c | 1 -
> drivers/iio/light/tsl2591.c | 2 --
> drivers/iio/light/us5182d.c | 1 -
> drivers/iio/light/vcnl4000.c | 1 -
> drivers/iio/light/vcnl4035.c | 1 -
> drivers/iio/magnetometer/ak8974.c | 2 --
> drivers/iio/magnetometer/ak8975.c | 1 -
> drivers/iio/magnetometer/als31300.c | 2 --
> drivers/iio/magnetometer/bmc150_magn.c | 1 -
> drivers/iio/magnetometer/tmag5273.c | 2 --
> drivers/iio/magnetometer/yamaha-yas530.c | 2 --
> drivers/iio/pressure/bmp280-core.c | 5 ---
> drivers/iio/pressure/icp10100.c | 1 -
> drivers/iio/pressure/mpl115.c | 2 --
> drivers/iio/pressure/zpa2326.c | 2 --
> .../iio/proximity/pulsedlight-lidar-lite-v2.c | 1 -
> drivers/iio/proximity/srf04.c | 1 -
> drivers/iio/temperature/mlx90614.c | 1 -
> drivers/iio/temperature/mlx90632.c | 1 -
> drivers/iio/temperature/mlx90635.c | 1 -
> drivers/input/keyboard/omap4-keypad.c | 4 ---
> drivers/input/misc/cs40l50-vibra.c | 4 ---
> drivers/input/mouse/cyapa.c | 3 --
> drivers/input/mouse/cyapa_gen5.c | 1 -
> drivers/media/i2c/alvium-csi2.c | 1 -
> drivers/media/i2c/ccs/ccs-core.c | 4 ---
> drivers/media/i2c/dw9768.c | 1 -
> drivers/media/i2c/gc0308.c | 3 --
> drivers/media/i2c/gc2145.c | 3 --
> drivers/media/i2c/imx219.c | 2 --
> drivers/media/i2c/imx283.c | 3 --
> drivers/media/i2c/imx290.c | 3 --
> drivers/media/i2c/imx296.c | 1 -
> drivers/media/i2c/imx415.c | 1 -
> drivers/media/i2c/mt9m114.c | 6 ----
> drivers/media/i2c/ov4689.c | 3 --
> drivers/media/i2c/ov5640.c | 4 ---
> drivers/media/i2c/ov5645.c | 3 --
> drivers/media/i2c/ov64a40.c | 4 ---
> drivers/media/i2c/ov8858.c | 2 --
> drivers/media/i2c/st-mipid02.c | 2 --
> drivers/media/i2c/tc358746.c | 5 ---
> drivers/media/i2c/thp7312.c | 4 ---
> drivers/media/i2c/vd55g1.c | 4 ---
> drivers/media/i2c/vd56g3.c | 4 ---
> drivers/media/i2c/video-i2c.c | 4 ---
> .../chips-media/wave5/wave5-vpu-dec.c | 4 ---
> .../chips-media/wave5/wave5-vpu-enc.c | 5 ---
> .../media/platform/nvidia/tegra-vde/h264.c | 2 --
> .../media/platform/qcom/iris/iris_hfi_queue.c | 1 -
> .../platform/raspberrypi/pisp_be/pisp_be.c | 2 --
> .../media/platform/verisilicon/hantro_drv.c | 1 -
> drivers/media/rc/gpio-ir-recv.c | 1 -
> drivers/mfd/arizona-irq.c | 1 -
> drivers/mfd/cs40l50-core.c | 1 -
> drivers/mfd/cs42l43.c | 1 -
> drivers/misc/mei/client.c | 9 -----
> drivers/misc/mei/interrupt.c | 2 --
> drivers/mmc/core/core.c | 1 -
> drivers/mmc/host/atmel-mci.c | 2 --
> drivers/mmc/host/mmci.c | 1 -
> drivers/mmc/host/omap_hsmmc.c | 3 --
> drivers/mmc/host/sdhci-esdhc-imx.c | 1 -
> drivers/mmc/host/sdhci-msm.c | 1 -
> drivers/mmc/host/sdhci-omap.c | 2 --
> drivers/mmc/host/sdhci-pxav3.c | 2 --
> drivers/mmc/host/sdhci-sprd.c | 1 -
> drivers/mmc/host/sdhci_am654.c | 1 -
> drivers/mmc/host/tmio_mmc_core.c | 1 -
> drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 3 --
> drivers/net/ethernet/cadence/macb_main.c | 5 ---
> drivers/net/ethernet/freescale/fec_main.c | 8 -----
> drivers/net/ethernet/renesas/ravb_main.c | 4 ---
> drivers/net/ethernet/ti/davinci_mdio.c | 7 ----
> drivers/net/ipa/ipa_interrupt.c | 1 -
> drivers/net/ipa/ipa_main.c | 1 -
> drivers/net/ipa/ipa_modem.c | 4 ---
> drivers/net/ipa/ipa_smp2p.c | 2 --
> drivers/net/ipa/ipa_uc.c | 2 --
> drivers/net/wireless/ath/wil6210/pm.c | 1 -
> drivers/net/wireless/ti/wl18xx/debugfs.c | 3 --
> drivers/net/wireless/ti/wlcore/cmd.c | 1 -
> drivers/net/wireless/ti/wlcore/debugfs.c | 11 ------
> drivers/net/wireless/ti/wlcore/main.c | 36 -------------------
> drivers/net/wireless/ti/wlcore/scan.c | 1 -
> drivers/net/wireless/ti/wlcore/sysfs.c | 1 -
> drivers/net/wireless/ti/wlcore/testmode.c | 2 --
> drivers/net/wireless/ti/wlcore/tx.c | 1 -
> drivers/net/wireless/ti/wlcore/vendor_cmd.c | 3 --
> drivers/net/wwan/qcom_bam_dmux.c | 2 --
> drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 3 --
> drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 2 --
> drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c | 2 --
> drivers/nfc/trf7970a.c | 1 -
> drivers/pci/pcie/portdrv.c | 1 -
> drivers/phy/motorola/phy-mapphone-mdm6600.c | 2 --
> drivers/phy/ti/phy-twl4030-usb.c | 3 --
> drivers/power/supply/bq24190_charger.c | 14 --------
> drivers/power/supply/twl4030_charger.c | 1 -
> drivers/pwm/pwm-img.c | 2 --
> drivers/regulator/stm32-vrefbuf.c | 6 ----
> drivers/remoteproc/omap_remoteproc.c | 3 --
> drivers/scsi/scsi_pm.c | 1 -
> drivers/slimbus/core.c | 1 -
> drivers/slimbus/messaging.c | 2 --
> drivers/slimbus/qcom-ctrl.c | 1 -
> drivers/soc/apple/mailbox.c | 1 -
> drivers/soundwire/bus.c | 1 -
> drivers/soundwire/cadence_master.c | 1 -
> drivers/soundwire/qcom.c | 3 --
> drivers/spi/atmel-quadspi.c | 5 ---
> drivers/spi/spi-cadence-quadspi.c | 2 --
> drivers/spi/spi-cadence.c | 1 -
> drivers/spi/spi-fsl-espi.c | 2 --
> drivers/spi/spi-fsl-lpspi.c | 2 --
> drivers/spi/spi-imx.c | 3 --
> drivers/spi/spi-mtk-nor.c | 1 -
> drivers/spi/spi-nxp-fspi.c | 1 -
> drivers/spi/spi-omap2-mcspi.c | 3 --
> drivers/spi/spi-rockchip-sfc.c | 3 --
> drivers/spi/spi-s3c64xx.c | 3 --
> drivers/spi/spi-sprd.c | 1 -
> drivers/spi/spi-stm32-ospi.c | 7 ----
> drivers/spi/spi-stm32-qspi.c | 7 ----
> drivers/spi/spi-stm32.c | 2 --
> drivers/spi/spi-ti-qspi.c | 2 --
> drivers/spi/spi-zynqmp-gqspi.c | 1 -
> drivers/spi/spi.c | 3 --
> drivers/staging/greybus/gbphy.c | 1 -
> drivers/staging/greybus/gbphy.h | 1 -
> drivers/staging/media/rkvdec/rkvdec.c | 1 -
> drivers/thunderbolt/debugfs.c | 11 ------
> drivers/thunderbolt/domain.c | 2 --
> drivers/thunderbolt/icm.c | 7 ----
> drivers/thunderbolt/retimer.c | 2 --
> drivers/thunderbolt/switch.c | 4 ---
> drivers/thunderbolt/tb.c | 9 -----
> drivers/thunderbolt/usb4_port.c | 2 --
> drivers/tty/serial/8250/8250_omap.c | 9 -----
> drivers/tty/serial/8250/8250_port.c | 2 --
> drivers/tty/serial/fsl_lpuart.c | 1 -
> drivers/tty/serial/serial_core.c | 1 -
> drivers/tty/serial/uartlite.c | 2 --
> drivers/tty/serial/xilinx_uartps.c | 1 -
> drivers/usb/cdns3/cdns3-gadget.c | 1 -
> drivers/usb/cdns3/cdnsp-gadget.c | 1 -
> drivers/usb/chipidea/core.c | 1 -
> drivers/usb/chipidea/otg_fsm.c | 1 -
> drivers/usb/dwc3/core.c | 2 --
> drivers/usb/dwc3/dwc3-am62.c | 1 -
> drivers/usb/dwc3/dwc3-imx8mp.c | 1 -
> drivers/usb/dwc3/dwc3-pci.c | 1 -
> drivers/usb/dwc3/dwc3-xilinx.c | 1 -
> drivers/usb/gadget/udc/cdns2/cdns2-gadget.c | 1 -
> drivers/usb/host/xhci-mtk.c | 1 -
> drivers/usb/host/xhci-tegra.c | 1 -
> drivers/usb/misc/apple-mfi-fastcharge.c | 1 -
> drivers/usb/mtu3/mtu3_plat.c | 1 -
> drivers/usb/musb/musb_core.c | 5 ---
> drivers/usb/musb/musb_debugfs.c | 5 ---
> drivers/usb/musb/musb_dsps.c | 1 -
> drivers/usb/musb/musb_gadget.c | 4 ---
> drivers/usb/musb/omap2430.c | 1 -
> drivers/w1/masters/omap_hdq.c | 5 ---
> sound/hda/hdac_device.c | 1 -
> sound/pci/hda/cs35l41_hda.c | 4 ---
> sound/pci/hda/cs35l56_hda.c | 1 -
> sound/pci/hda/tas2781_hda_i2c.c | 3 --
> sound/pci/hda/tas2781_hda_spi.c | 4 ---
> sound/soc/atmel/mchp-spdifrx.c | 6 ----
> sound/soc/codecs/arizona-jack.c | 2 --
> sound/soc/codecs/cs35l41.c | 2 --
> sound/soc/codecs/cs35l45.c | 1 -
> sound/soc/codecs/cs35l56-sdw.c | 1 -
> sound/soc/codecs/cs35l56.c | 1 -
> sound/soc/codecs/cs42l42.c | 1 -
> sound/soc/codecs/cs42l43-jack.c | 5 ---
> sound/soc/codecs/cs42l43.c | 2 --
> sound/soc/codecs/cs48l32.c | 1 -
> sound/soc/codecs/hda.c | 3 --
> sound/soc/codecs/max98363.c | 1 -
> sound/soc/codecs/max98373-sdw.c | 1 -
> sound/soc/codecs/rt1017-sdca-sdw.c | 1 -
> sound/soc/codecs/rt1308-sdw.c | 1 -
> sound/soc/codecs/rt1316-sdw.c | 1 -
> sound/soc/codecs/rt1318-sdw.c | 1 -
> sound/soc/codecs/rt1320-sdw.c | 1 -
> sound/soc/codecs/rt5682-sdw.c | 1 -
> sound/soc/codecs/rt700.c | 2 --
> sound/soc/codecs/rt711-sdca.c | 2 --
> sound/soc/codecs/rt711.c | 2 --
> sound/soc/codecs/rt712-sdca-dmic.c | 1 -
> sound/soc/codecs/rt712-sdca.c | 2 --
> sound/soc/codecs/rt715-sdca.c | 1 -
> sound/soc/codecs/rt715.c | 1 -
> sound/soc/codecs/rt721-sdca.c | 2 --
> sound/soc/codecs/rt722-sdca.c | 2 --
> sound/soc/codecs/rt9123.c | 3 --
> sound/soc/codecs/tas2552.c | 1 -
> sound/soc/codecs/wcd-mbhc-v2.c | 2 --
> sound/soc/codecs/wsa881x.c | 1 -
> sound/soc/codecs/wsa883x.c | 1 -
> sound/soc/codecs/wsa884x.c | 1 -
> sound/soc/intel/atom/sst/sst_pvt.c | 1 -
> sound/soc/intel/avs/core.c | 1 -
> sound/soc/intel/avs/debugfs.c | 2 --
> sound/soc/intel/avs/ipc.c | 1 -
> sound/soc/intel/avs/pcm.c | 1 -
> sound/soc/intel/catpt/pcm.c | 6 ----
> sound/soc/intel/catpt/sysfs.c | 1 -
> sound/soc/soc-component.c | 1 -
> sound/soc/sof/control.c | 1 -
> sound/soc/sof/debug.c | 1 -
> sound/soc/sof/ipc3-dtrace.c | 1 -
> sound/soc/sof/ipc4-loader.c | 1 -
> sound/soc/sof/pcm.c | 1 -
> sound/soc/sof/sof-client-ipc-flood-test.c | 1 -
> .../soc/sof/sof-client-ipc-kernel-injector.c | 1 -
> sound/soc/sof/sof-client-ipc-msg-injector.c | 1 -
> sound/soc/sof/sof-client-probes.c | 3 --
> sound/x86/intel_hdmi_audio.c | 3 --
> 381 files changed, 923 deletions(-)
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 27/80] iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 27/80] iio: accel: " Sakari Ailus
@ 2025-07-04 9:05 ` Jonathan Cameron
2025-07-10 6:46 ` Matti Vaittinen
1 sibling, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-04 9:05 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
Waqar Hameed, Julien Stephan, Peter Zijlstra, Bo Liu, Greg KH,
Al Viro, Sean Nyekjaer, Marcelo Schmitt, Rayyan Ansari,
Francisco Henriques, Matti Vaittinen, linux-iio, linux-kernel
On Fri, 4 Jul 2025 10:54:18 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/iio/accel/bmc150-accel-core.c | 1 -
> drivers/iio/accel/bmi088-accel-core.c | 3 ---
> drivers/iio/accel/fxls8962af-core.c | 1 -
> drivers/iio/accel/kxcjk-1013.c | 1 -
> drivers/iio/accel/kxsd9.c | 3 ---
> drivers/iio/accel/mma8452.c | 1 -
> drivers/iio/accel/mma9551_core.c | 1 -
> drivers/iio/accel/msa311.c | 6 ------
> 8 files changed, 17 deletions(-)
>
> diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
> index be5fbb0c5d29..f45beae83f8b 100644
> --- a/drivers/iio/accel/bmc150-accel-core.c
> +++ b/drivers/iio/accel/bmc150-accel-core.c
> @@ -335,7 +335,6 @@ static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(dev);
> } else {
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> }
See kernel coding style. The drop to one line in each leg means we should drop the {}
> diff --git a/drivers/iio/accel/fxls8962af-core.c b/drivers/iio/accel/fxls8962af-core.c
> index 12598feaa693..8afd151c03ad 100644
> --- a/drivers/iio/accel/fxls8962af-core.c
> +++ b/drivers/iio/accel/fxls8962af-core.c
> @@ -222,7 +222,6 @@ static int fxls8962af_power_off(struct fxls8962af_data *data)
> struct device *dev = regmap_get_device(data->regmap);
> int ret;
>
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> if (ret)
> dev_err(dev, "failed to power off\n");
> diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> index 6aefe8221296..44d770729186 100644
> --- a/drivers/iio/accel/kxcjk-1013.c
> +++ b/drivers/iio/accel/kxcjk-1013.c
> @@ -637,7 +637,6 @@ static int kxcjk1013_set_power_state(struct kxcjk1013_data *data, bool on)
> if (on)
> ret = pm_runtime_resume_and_get(&data->client->dev);
> else {
> - pm_runtime_mark_last_busy(&data->client->dev);
Likewise here.
> ret = pm_runtime_put_autosuspend(&data->client->dev);
> }
> if (ret < 0) {
> diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> index aba444a980d9..5863478bab62 100644
> --- a/drivers/iio/accel/mma8452.c
> +++ b/drivers/iio/accel/mma8452.c
> @@ -227,7 +227,6 @@ static int mma8452_set_runtime_pm_state(struct i2c_client *client, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(&client->dev);
> } else {
> - pm_runtime_mark_last_busy(&client->dev);
And here.
> ret = pm_runtime_put_autosuspend(&client->dev);
> }
>
> diff --git a/drivers/iio/accel/mma9551_core.c b/drivers/iio/accel/mma9551_core.c
> index 3e7d9b79ed0e..22768f43fd24 100644
> --- a/drivers/iio/accel/mma9551_core.c
> +++ b/drivers/iio/accel/mma9551_core.c
> @@ -672,7 +672,6 @@ int mma9551_set_power_state(struct i2c_client *client, bool on)
> if (on)
> ret = pm_runtime_resume_and_get(&client->dev);
> else {
> - pm_runtime_mark_last_busy(&client->dev);
And here...
> ret = pm_runtime_put_autosuspend(&client->dev);
> }
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
2025-07-04 8:56 ` Laurent Pinchart
@ 2025-07-04 9:07 ` Thierry Reding
2025-07-04 9:32 ` Tommaso Merciai
` (4 subsequent siblings)
6 siblings, 0 replies; 162+ messages in thread
From: Thierry Reding @ 2025-07-04 9:07 UTC (permalink / raw)
To: Sakari Ailus
Cc: Tommaso Merciai, Martin Hecht, Mauro Carvalho Chehab,
Sebastian Reichel, Alain Volmat, Dave Stevenson, Kieran Bingham,
Umang Jain, Manivannan Sadhasivam, Laurent Pinchart,
Michael Riesch, Mikhail Rudenko, Steve Longerbeam, Jacopo Mondi,
Nicholas Roth, Benjamin Mugnier, Sylvain Petinot, Paul Elder,
Matt Ranostay, Nas Chung, Jackson Lee, Dmitry Osipenko,
Jonathan Hunter, Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Raspberry Pi Kernel Maintenance,
Florian Fainelli, Broadcom internal kernel review list,
Nicolas Dufresne, Benjamin Gaignard, Philipp Zabel, Sean Young,
Hans Verkuil, Matthias Fend, Marco Felsch, Tomi Valkeinen,
Ricardo Ribalda, linux-media, linux-kernel, linux-tegra,
linux-arm-msm, linux-rpi-kernel, linux-arm-kernel, linux-rockchip
[-- Attachment #1: Type: text/plain, Size: 513 bytes --]
On Fri, Jul 04, 2025 at 10:54:31AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
[...]
> drivers/media/platform/nvidia/tegra-vde/h264.c | 2 --
[...]
Acked-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 28/80] iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 28/80] iio: adc: " Sakari Ailus
2025-07-04 8:42 ` Linus Walleij
@ 2025-07-04 9:09 ` Jonathan Cameron
1 sibling, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-04 9:09 UTC (permalink / raw)
To: Sakari Ailus
Cc: Linus Walleij, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Eugen Hristev, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Cai Huoqing, Haibo Chen, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Marek Vasut,
Geert Uytterhoeven, Magnus Damm, Lad Prabhakar, Maxime Coquelin,
Alexandre Torgue, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland,
Francesco Dolcini, João Paulo Gonçalves,
Jiri Slaby (SUSE), Fabrice Gasnier, Rob Herring (Arm),
Uwe Kleine-König, Mike Looijmans, Olivier Moysan,
Christophe JAILLET, Julien Stephan, linux-arm-kernel, linux-iio,
linux-kernel, imx, linux-renesas-soc, linux-stm32, linux-sunxi
On Fri, 4 Jul 2025 10:54:19 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/iio/adc/ab8500-gpadc.c | 1 -
> drivers/iio/adc/at91-sama5d2_adc.c | 10 ----------
> drivers/iio/adc/imx8qxp-adc.c | 2 --
> drivers/iio/adc/imx93_adc.c | 1 -
> drivers/iio/adc/rcar-gyroadc.c | 1 -
> drivers/iio/adc/rzg2l_adc.c | 3 ---
> drivers/iio/adc/stm32-adc-core.c | 1 -
> drivers/iio/adc/stm32-adc.c | 7 -------
> drivers/iio/adc/sun4i-gpadc-iio.c | 2 --
> drivers/iio/adc/ti-ads1015.c | 1 -
> drivers/iio/adc/ti-ads1100.c | 1 -
> drivers/iio/adc/ti-ads1119.c | 2 --
> 12 files changed, 32 deletions(-)
>
> diff --git a/drivers/iio/adc/ab8500-gpadc.c b/drivers/iio/adc/ab8500-gpadc.c
> index f3b057f92310..8eaa1dd6a89b 100644
> --- a/drivers/iio/adc/ab8500-gpadc.c
> +++ b/drivers/iio/adc/ab8500-gpadc.c
> @@ -607,7 +607,6 @@ static int ab8500_gpadc_read(struct ab8500_gpadc *gpadc,
> }
>
> /* This eventually drops the regulator */
> - pm_runtime_mark_last_busy(gpadc->dev);
> pm_runtime_put_autosuspend(gpadc->dev);
>
> return (high_data << 8) | low_data;
> diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c
> index c3450246730e..67846fefe21a 100644
> --- a/drivers/iio/adc/at91-sama5d2_adc.c
> +++ b/drivers/iio/adc/at91-sama5d2_adc.c
> @@ -896,7 +896,6 @@ static int at91_adc_config_emr(struct at91_adc_state *st,
> emr |= osr | AT91_SAMA5D2_TRACKX(trackx);
> at91_adc_writel(st, EMR, emr);
>
> - pm_runtime_mark_last_busy(st->dev);
> pm_runtime_put_autosuspend(st->dev);
>
> st->oversampling_ratio = oversampling_ratio;
> @@ -971,7 +970,6 @@ static int at91_adc_configure_touch(struct at91_adc_state *st, bool state)
> AT91_SAMA5D2_IER_PEN | AT91_SAMA5D2_IER_NOPEN);
> at91_adc_writel(st, TSMR, 0);
>
> - pm_runtime_mark_last_busy(st->dev);
> pm_runtime_put_autosuspend(st->dev);
> return 0;
> }
> @@ -1143,7 +1141,6 @@ static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state)
> at91_adc_configure_trigger_registers(st, state);
>
> if (!state) {
> - pm_runtime_mark_last_busy(st->dev);
Getting familiar. I'll not comment on other cases but {} should go here.
> pm_runtime_put_autosuspend(st->dev);
> }
Please fix all those up and post a v2 series for IIO.
I'd guess similar are present in other subsystems though so may well
need a v2 as well with the excess brackets dropped.
Jonathan
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 67/80] usb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 67/80] usb: " Sakari Ailus
@ 2025-07-04 9:11 ` Thierry Reding
2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-21 2:25 ` Peter Chen (CIX)
2 siblings, 0 replies; 162+ messages in thread
From: Thierry Reding @ 2025-07-04 9:11 UTC (permalink / raw)
To: Sakari Ailus
Cc: Peter Chen, Pawel Laszczak, Roger Quadros, Greg Kroah-Hartman,
Thinh Nguyen, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Michal Simek, Chunfeng Yun, Mathias Nyman,
Matthias Brugger, AngeloGioacchino Del Regno, Jonathan Hunter,
Bastien Nocera, Bin Liu, linux-usb, linux-kernel, imx,
linux-arm-kernel, linux-mediatek, linux-tegra, linux-omap
[-- Attachment #1: Type: text/plain, Size: 1204 bytes --]
On Fri, Jul 04, 2025 at 10:54:53AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
[...]
> diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
> index 0c7af44d4dae..554b03e3ae92 100644
> --- a/drivers/usb/host/xhci-tegra.c
> +++ b/drivers/usb/host/xhci-tegra.c
> @@ -1394,7 +1394,6 @@ static void tegra_xhci_id_work(struct work_struct *work)
> }
>
> tegra_xhci_set_port_power(tegra, true, true);
> - pm_runtime_mark_last_busy(tegra->dev);
>
> } else {
> if (tegra->otg_usb3_port >= 0)
pm_runtime_mark_last_busy() was previously called conditionally only for
host mode, but not for peripheral mode. That said, since that call was
now moved into the pm_runtime_put_autosuspend(), any issues would
already have been introduced by the series that this depends on, so
we'll see if there's any fallout.
Acked-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
2025-07-04 8:11 ` Jani Nikula
2025-07-04 8:58 ` Laurent Pinchart
@ 2025-07-04 9:12 ` Thierry Reding
2025-07-04 9:18 ` Steven Price
` (2 subsequent siblings)
5 siblings, 0 replies; 162+ messages in thread
From: Thierry Reding @ 2025-07-04 9:12 UTC (permalink / raw)
To: Sakari Ailus
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Douglas Anderson,
Lucas Stach, Russell King, Christian Gmeiner, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
Laurentiu Palcu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Qiang Yu, Jessica Zhang, Boris Brezillon,
Steven Price, Liviu Dudau, Mikko Perttunen, Jonathan Hunter,
Jyri Sarha, Tomi Valkeinen, Dave Stevenson, Maíra Canal,
Raspberry Pi Kernel Maintenance, Dmitry Baryshkov, Damon Ding,
Ayushi Makhija, Luca Ceresoli, Uwe Kleine-König,
Chen-Yu Tsai, dri-devel, linux-kernel, etnaviv, linux-arm-kernel,
linux-samsung-soc, intel-gfx, imx, lima, linux-tegra
[-- Attachment #1: Type: text/plain, Size: 888 bytes --]
On Fri, Jul 04, 2025 at 10:54:13AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
[...]
> diff --git a/drivers/gpu/drm/tegra/submit.c b/drivers/gpu/drm/tegra/submit.c
> index 2430fcc97448..5e0e76ebc5be 100644
> --- a/drivers/gpu/drm/tegra/submit.c
> +++ b/drivers/gpu/drm/tegra/submit.c
> @@ -502,7 +502,6 @@ static void release_job(struct host1x_job *job)
> kfree(job_data->used_mappings);
> kfree(job_data);
>
> - pm_runtime_mark_last_busy(client->base.dev);
> pm_runtime_put_autosuspend(client->base.dev);
> }
>
Acked-by: Thierry Reding <treding@nvidia.com>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 19/80] drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 19/80] drm/panfrost: " Sakari Ailus
@ 2025-07-04 9:18 ` Steven Price
2025-08-15 14:22 ` Steven Price
0 siblings, 1 reply; 162+ messages in thread
From: Steven Price @ 2025-07-04 9:18 UTC (permalink / raw)
To: Sakari Ailus, Boris Brezillon, Rob Herring, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel
On 04/07/2025 08:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Steven Price <steven.price@arm.com>
But this can't be merged via drm-misc until the PM changes have hit
Linus' tree and been backmerged to drm-misc-next.
Thanks,
Steve
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
> index 563f16bae543..0dd62e8b2fa7 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
> @@ -203,7 +203,6 @@ static int panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev,
> panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
> panfrost_gem_mapping_put(perfcnt->mapping);
> perfcnt->mapping = NULL;
> - pm_runtime_mark_last_busy(pfdev->dev);
> pm_runtime_put_autosuspend(pfdev->dev);
>
> return 0;
> @@ -279,7 +278,6 @@ void panfrost_perfcnt_close(struct drm_file *file_priv)
> if (perfcnt->user == pfile)
> panfrost_perfcnt_disable_locked(pfdev, file_priv);
> mutex_unlock(&perfcnt->lock);
> - pm_runtime_mark_last_busy(pfdev->dev);
> pm_runtime_put_autosuspend(pfdev->dev);
> }
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
` (2 preceding siblings ...)
2025-07-04 9:12 ` Thierry Reding
@ 2025-07-04 9:18 ` Steven Price
2025-07-04 10:24 ` Maíra Canal
2025-07-08 14:01 ` Luca Ceresoli
5 siblings, 0 replies; 162+ messages in thread
From: Steven Price @ 2025-07-04 9:18 UTC (permalink / raw)
To: Sakari Ailus, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Douglas Anderson, Lucas Stach, Russell King,
Christian Gmeiner, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Joonas Lahtinen,
Rodrigo Vivi, Tvrtko Ursulin, Laurentiu Palcu, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Qiang Yu,
Jessica Zhang, Boris Brezillon, Liviu Dudau, Thierry Reding,
Mikko Perttunen, Jonathan Hunter, Jyri Sarha, Tomi Valkeinen,
Dave Stevenson, Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Baryshkov, Damon Ding, Ayushi Makhija, Luca Ceresoli,
Uwe Kleine-König, Chen-Yu Tsai
Cc: dri-devel, linux-kernel, etnaviv, linux-arm-kernel,
linux-samsung-soc, intel-gfx, imx, lima, linux-tegra
On 04/07/2025 08:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 2 --
> drivers/gpu/drm/bridge/analogix/anx7625.c | 2 --
> drivers/gpu/drm/bridge/parade-ps8640.c | 2 --
> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 1 -
> drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 4 ----
> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 2 --
> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 1 -
> drivers/gpu/drm/exynos/exynos_drm_scaler.c | 1 -
> drivers/gpu/drm/i915/intel_runtime_pm.c | 2 --
> drivers/gpu/drm/imx/dcss/dcss-crtc.c | 1 -
> drivers/gpu/drm/lima/lima_sched.c | 1 -
> drivers/gpu/drm/panel/panel-edp.c | 3 ---
> drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 2 --
> drivers/gpu/drm/panel/panel-simple.c | 2 --
> drivers/gpu/drm/panthor/panthor_sched.c | 2 --
Panthor changes are:
Reviewed-by: Steven Price <steven.price@arm.com>
Thanks,
Steve
> drivers/gpu/drm/tegra/submit.c | 1 -
> drivers/gpu/drm/tidss/tidss_drv.c | 2 --
> drivers/gpu/drm/vc4/vc4_v3d.c | 1 -
> 20 files changed, 36 deletions(-)
>
[...]
> diff --git a/drivers/gpu/drm/panthor/panthor_sched.c b/drivers/gpu/drm/panthor/panthor_sched.c
> index a2248f692a03..f635f26a23f4 100644
> --- a/drivers/gpu/drm/panthor/panthor_sched.c
> +++ b/drivers/gpu/drm/panthor/panthor_sched.c
> @@ -2446,7 +2446,6 @@ static void tick_work(struct work_struct *work)
>
> out_unlock:
> mutex_unlock(&sched->lock);
> - pm_runtime_mark_last_busy(ptdev->base.dev);
> pm_runtime_put_autosuspend(ptdev->base.dev);
>
> out_dev_exit:
> @@ -3203,7 +3202,6 @@ queue_run_job(struct drm_sched_job *sched_job)
>
> out_unlock:
> mutex_unlock(&sched->lock);
> - pm_runtime_mark_last_busy(ptdev->base.dev);
> pm_runtime_put_autosuspend(ptdev->base.dev);
>
> return done_fence;
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 17/80] drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 17/80] drm/nouveau: " Sakari Ailus
@ 2025-07-04 9:24 ` Danilo Krummrich
0 siblings, 0 replies; 162+ messages in thread
From: Danilo Krummrich @ 2025-07-04 9:24 UTC (permalink / raw)
To: Sakari Ailus
Cc: Lyude Paul, David Airlie, Simona Vetter, Ben Skeggs, Dave Airlie,
Thomas Zimmermann, Jani Nikula, Gustavo A. R. Silva,
Dmitry Baryshkov, Suraj Kandpal, dri-devel, nouveau, linux-kernel
On 7/4/25 9:54 AM, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Danilo Krummrich <dakr@kernel.org>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
2025-07-04 8:56 ` Laurent Pinchart
2025-07-04 9:07 ` Thierry Reding
@ 2025-07-04 9:32 ` Tommaso Merciai
2025-07-04 11:30 ` Dikshita Agarwal
` (3 subsequent siblings)
6 siblings, 0 replies; 162+ messages in thread
From: Tommaso Merciai @ 2025-07-04 9:32 UTC (permalink / raw)
To: Sakari Ailus
Cc: Tommaso Merciai, Martin Hecht, Mauro Carvalho Chehab,
Sebastian Reichel, Alain Volmat, Dave Stevenson, Kieran Bingham,
Umang Jain, Manivannan Sadhasivam, Laurent Pinchart,
Michael Riesch, Mikhail Rudenko, Steve Longerbeam, Jacopo Mondi,
Nicholas Roth, Benjamin Mugnier, Sylvain Petinot, Paul Elder,
Matt Ranostay, Nas Chung, Jackson Lee, Dmitry Osipenko,
Thierry Reding, Jonathan Hunter, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue,
Raspberry Pi Kernel Maintenance, Florian Fainelli,
Broadcom internal kernel review list, Nicolas Dufresne,
Benjamin Gaignard, Philipp Zabel, Sean Young, Hans Verkuil,
Matthias Fend, Marco Felsch, Tomi Valkeinen, Ricardo Ribalda,
linux-media, linux-kernel, linux-tegra, linux-arm-msm,
linux-rpi-kernel, linux-arm-kernel, linux-rockchip
Hi Sakari,
Thanks for your patch!
On Fri, Jul 04, 2025 at 10:54:31AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/media/i2c/alvium-csi2.c | 1 -
Acked-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Thanks & Regards,
Tommaso
> drivers/media/i2c/ccs/ccs-core.c | 4 ----
> drivers/media/i2c/dw9768.c | 1 -
> drivers/media/i2c/gc0308.c | 3 ---
> drivers/media/i2c/gc2145.c | 3 ---
> drivers/media/i2c/imx219.c | 2 --
> drivers/media/i2c/imx283.c | 3 ---
> drivers/media/i2c/imx290.c | 3 ---
> drivers/media/i2c/imx296.c | 1 -
> drivers/media/i2c/imx415.c | 1 -
> drivers/media/i2c/mt9m114.c | 6 ------
> drivers/media/i2c/ov4689.c | 3 ---
> drivers/media/i2c/ov5640.c | 4 ----
> drivers/media/i2c/ov5645.c | 3 ---
> drivers/media/i2c/ov64a40.c | 4 ----
> drivers/media/i2c/ov8858.c | 2 --
> drivers/media/i2c/st-mipid02.c | 2 --
> drivers/media/i2c/tc358746.c | 5 -----
> drivers/media/i2c/thp7312.c | 4 ----
> drivers/media/i2c/vd55g1.c | 4 ----
> drivers/media/i2c/vd56g3.c | 4 ----
> drivers/media/i2c/video-i2c.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c | 5 -----
> drivers/media/platform/nvidia/tegra-vde/h264.c | 2 --
> drivers/media/platform/qcom/iris/iris_hfi_queue.c | 1 -
> drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 2 --
> drivers/media/platform/verisilicon/hantro_drv.c | 1 -
> drivers/media/rc/gpio-ir-recv.c | 1 -
> 29 files changed, 83 deletions(-)
>
> diff --git a/drivers/media/i2c/alvium-csi2.c b/drivers/media/i2c/alvium-csi2.c
> index 05b708bd0a64..1f088acecf36 100644
> --- a/drivers/media/i2c/alvium-csi2.c
> +++ b/drivers/media/i2c/alvium-csi2.c
> @@ -1841,7 +1841,6 @@ static int alvium_s_stream(struct v4l2_subdev *sd, int enable)
>
> } else {
> alvium_set_stream_mipi(alvium, enable);
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 487bcabb4a19..3316639b695e 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -788,7 +788,6 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
> }
>
> if (pm_status > 0) {
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> @@ -1914,7 +1913,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
> if (!enable) {
> ccs_stop_streaming(sensor);
> sensor->streaming = false;
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return 0;
> @@ -1929,7 +1927,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
> rval = ccs_start_streaming(sensor);
> if (rval < 0) {
> sensor->streaming = false;
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> @@ -2677,7 +2674,6 @@ nvm_show(struct device *dev, struct device_attribute *attr, char *buf)
> return -ENODEV;
> }
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> /*
> diff --git a/drivers/media/i2c/dw9768.c b/drivers/media/i2c/dw9768.c
> index 3a4d100b9199..d434721ba8ed 100644
> --- a/drivers/media/i2c/dw9768.c
> +++ b/drivers/media/i2c/dw9768.c
> @@ -374,7 +374,6 @@ static int dw9768_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
>
> static int dw9768_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
> {
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_autosuspend(sd->dev);
>
> return 0;
> diff --git a/drivers/media/i2c/gc0308.c b/drivers/media/i2c/gc0308.c
> index 069f42785b3c..cbcda0e18ff1 100644
> --- a/drivers/media/i2c/gc0308.c
> +++ b/drivers/media/i2c/gc0308.c
> @@ -974,7 +974,6 @@ static int gc0308_s_ctrl(struct v4l2_ctrl *ctrl)
> if (ret)
> dev_err(gc0308->dev, "failed to set control: %d\n", ret);
>
> - pm_runtime_mark_last_busy(gc0308->dev);
> pm_runtime_put_autosuspend(gc0308->dev);
>
> return ret;
> @@ -1157,14 +1156,12 @@ static int gc0308_start_stream(struct gc0308 *gc0308)
> return 0;
>
> disable_pm:
> - pm_runtime_mark_last_busy(gc0308->dev);
> pm_runtime_put_autosuspend(gc0308->dev);
> return ret;
> }
>
> static int gc0308_stop_stream(struct gc0308 *gc0308)
> {
> - pm_runtime_mark_last_busy(gc0308->dev);
> pm_runtime_put_autosuspend(gc0308->dev);
> return 0;
> }
> diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c
> index ba02161d46e7..559a851669aa 100644
> --- a/drivers/media/i2c/gc2145.c
> +++ b/drivers/media/i2c/gc2145.c
> @@ -963,7 +963,6 @@ static int gc2145_enable_streams(struct v4l2_subdev *sd,
> return 0;
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> return ret;
> }
> @@ -985,7 +984,6 @@ static int gc2145_disable_streams(struct v4l2_subdev *sd,
> if (ret)
> dev_err(&client->dev, "%s failed to write regs\n", __func__);
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> @@ -1193,7 +1191,6 @@ static int gc2145_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> index 3b4f68543342..3faf48f34af4 100644
> --- a/drivers/media/i2c/imx219.c
> +++ b/drivers/media/i2c/imx219.c
> @@ -771,7 +771,6 @@ static int imx219_enable_streams(struct v4l2_subdev *sd,
> return 0;
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> return ret;
> }
> @@ -793,7 +792,6 @@ static int imx219_disable_streams(struct v4l2_subdev *sd,
> __v4l2_ctrl_grab(imx219->vflip, false);
> __v4l2_ctrl_grab(imx219->hflip, false);
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
> index da618c8cbadc..67e8bb432d10 100644
> --- a/drivers/media/i2c/imx283.c
> +++ b/drivers/media/i2c/imx283.c
> @@ -1143,7 +1143,6 @@ static int imx283_enable_streams(struct v4l2_subdev *sd,
> return 0;
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(imx283->dev);
> pm_runtime_put_autosuspend(imx283->dev);
>
> return ret;
> @@ -1163,7 +1162,6 @@ static int imx283_disable_streams(struct v4l2_subdev *sd,
> if (ret)
> dev_err(imx283->dev, "Failed to stop stream\n");
>
> - pm_runtime_mark_last_busy(imx283->dev);
> pm_runtime_put_autosuspend(imx283->dev);
>
> return ret;
> @@ -1558,7 +1556,6 @@ static int imx283_probe(struct i2c_client *client)
> * Decrease the PM usage count. The device will get suspended after the
> * autosuspend delay, turning the power off.
> */
> - pm_runtime_mark_last_busy(imx283->dev);
> pm_runtime_put_autosuspend(imx283->dev);
>
> return 0;
> diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
> index fbf7eba3d71d..970a8d89a3e7 100644
> --- a/drivers/media/i2c/imx290.c
> +++ b/drivers/media/i2c/imx290.c
> @@ -869,7 +869,6 @@ static int imx290_set_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(imx290->dev);
> pm_runtime_put_autosuspend(imx290->dev);
>
> return ret;
> @@ -1099,7 +1098,6 @@ static int imx290_set_stream(struct v4l2_subdev *sd, int enable)
> }
> } else {
> imx290_stop_streaming(imx290);
> - pm_runtime_mark_last_busy(imx290->dev);
> pm_runtime_put_autosuspend(imx290->dev);
> }
>
> @@ -1295,7 +1293,6 @@ static int imx290_subdev_init(struct imx290 *imx290)
> */
> v4l2_i2c_subdev_init(&imx290->sd, client, &imx290_subdev_ops);
> imx290->sd.dev = imx290->dev;
> - pm_runtime_mark_last_busy(imx290->dev);
> pm_runtime_put_autosuspend(imx290->dev);
>
> imx290->sd.internal_ops = &imx290_internal_ops;
> diff --git a/drivers/media/i2c/imx296.c b/drivers/media/i2c/imx296.c
> index f3bec16b527c..61116f4e3f76 100644
> --- a/drivers/media/i2c/imx296.c
> +++ b/drivers/media/i2c/imx296.c
> @@ -604,7 +604,6 @@ static int imx296_s_stream(struct v4l2_subdev *sd, int enable)
> if (!enable) {
> ret = imx296_stream_off(sensor);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> goto unlock;
> diff --git a/drivers/media/i2c/imx415.c b/drivers/media/i2c/imx415.c
> index 278e743646ea..276bf4d6f39d 100644
> --- a/drivers/media/i2c/imx415.c
> +++ b/drivers/media/i2c/imx415.c
> @@ -952,7 +952,6 @@ static int imx415_s_stream(struct v4l2_subdev *sd, int enable)
> if (!enable) {
> ret = imx415_stream_off(sensor);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> goto unlock;
> diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c
> index 3f540ca40f3c..aa3fd6c6c76c 100644
> --- a/drivers/media/i2c/mt9m114.c
> +++ b/drivers/media/i2c/mt9m114.c
> @@ -974,7 +974,6 @@ static int mt9m114_start_streaming(struct mt9m114 *sensor,
> return 0;
>
> error:
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -988,7 +987,6 @@ static int mt9m114_stop_streaming(struct mt9m114 *sensor)
>
> ret = mt9m114_set_state(sensor, MT9M114_SYS_STATE_ENTER_SUSPEND);
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -1046,7 +1044,6 @@ static int mt9m114_pa_g_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -1113,7 +1110,6 @@ static int mt9m114_pa_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -1565,7 +1561,6 @@ static int mt9m114_ifp_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -2472,7 +2467,6 @@ static int mt9m114_probe(struct i2c_client *client)
> * Decrease the PM usage count. The device will get suspended after the
> * autosuspend delay, turning the power off.
> */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov4689.c b/drivers/media/i2c/ov4689.c
> index 1c3a449f9354..7d740ad3926f 100644
> --- a/drivers/media/i2c/ov4689.c
> +++ b/drivers/media/i2c/ov4689.c
> @@ -497,7 +497,6 @@ static int ov4689_s_stream(struct v4l2_subdev *sd, int on)
> } else {
> cci_write(ov4689->regmap, OV4689_REG_CTRL_MODE,
> OV4689_MODE_SW_STANDBY, NULL);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
>
> @@ -702,7 +701,6 @@ static int ov4689_set_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -999,7 +997,6 @@ static int ov4689_probe(struct i2c_client *client)
> goto err_clean_subdev_pm;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
> index 0dae0438aa80..84198613381d 100644
> --- a/drivers/media/i2c/ov5640.c
> +++ b/drivers/media/i2c/ov5640.c
> @@ -3341,7 +3341,6 @@ static int ov5640_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
> pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
>
> return 0;
> @@ -3417,7 +3416,6 @@ static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
> pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
>
> return ret;
> @@ -3754,7 +3752,6 @@ static int ov5640_s_stream(struct v4l2_subdev *sd, int enable)
> mutex_unlock(&sensor->lock);
>
> if (!enable || ret) {
> - pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
> pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
> }
>
> @@ -3965,7 +3962,6 @@ static int ov5640_probe(struct i2c_client *client)
>
> pm_runtime_set_autosuspend_delay(dev, 1000);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
> index 004d0ee5c3f5..58c846a44376 100644
> --- a/drivers/media/i2c/ov5645.c
> +++ b/drivers/media/i2c/ov5645.c
> @@ -808,7 +808,6 @@ static int ov5645_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(ov5645->dev);
> pm_runtime_put_autosuspend(ov5645->dev);
>
> return ret;
> @@ -979,7 +978,6 @@ static int ov5645_disable_streams(struct v4l2_subdev *sd,
> OV5645_SYSTEM_CTRL0_STOP);
>
> rpm_put:
> - pm_runtime_mark_last_busy(ov5645->dev);
> pm_runtime_put_autosuspend(ov5645->dev);
>
> return ret;
> @@ -1196,7 +1194,6 @@ static int ov5645_probe(struct i2c_client *client)
>
> pm_runtime_set_autosuspend_delay(dev, 1000);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov64a40.c b/drivers/media/i2c/ov64a40.c
> index a5da4fe47e0b..15912ecb8d26 100644
> --- a/drivers/media/i2c/ov64a40.c
> +++ b/drivers/media/i2c/ov64a40.c
> @@ -2990,7 +2990,6 @@ static int ov64a40_start_streaming(struct ov64a40 *ov64a40,
> return 0;
>
> error_power_off:
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
>
> return ret;
> @@ -3000,7 +2999,6 @@ static int ov64a40_stop_streaming(struct ov64a40 *ov64a40,
> struct v4l2_subdev_state *state)
> {
> cci_update_bits(ov64a40->cci, OV64A40_REG_SMIA, BIT(0), 0, NULL);
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
>
> __v4l2_ctrl_grab(ov64a40->link_freq, false);
> @@ -3330,7 +3328,6 @@ static int ov64a40_set_ctrl(struct v4l2_ctrl *ctrl)
> }
>
> if (pm_status > 0) {
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
> }
>
> @@ -3622,7 +3619,6 @@ static int ov64a40_probe(struct i2c_client *client)
> goto error_subdev_cleanup;
> }
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
> index 95f9ae794846..6b7193eaea1f 100644
> --- a/drivers/media/i2c/ov8858.c
> +++ b/drivers/media/i2c/ov8858.c
> @@ -1391,7 +1391,6 @@ static int ov8858_s_stream(struct v4l2_subdev *sd, int on)
> }
> } else {
> ov8858_stop_stream(ov8858);
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> @@ -1945,7 +1944,6 @@ static int ov8858_probe(struct i2c_client *client)
> goto err_power_off;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
> index f4568e87f018..41ae25b0911f 100644
> --- a/drivers/media/i2c/st-mipid02.c
> +++ b/drivers/media/i2c/st-mipid02.c
> @@ -465,7 +465,6 @@ static int mipid02_disable_streams(struct v4l2_subdev *sd,
> if (ret)
> goto error;
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> error:
> @@ -542,7 +541,6 @@ static int mipid02_enable_streams(struct v4l2_subdev *sd,
> cci_write(bridge->regmap, MIPID02_DATA_LANE0_REG1, 0, &ret);
> cci_write(bridge->regmap, MIPID02_DATA_LANE1_REG1, 0, &ret);
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> return ret;
> }
> diff --git a/drivers/media/i2c/tc358746.c b/drivers/media/i2c/tc358746.c
> index 143aa1359aba..bcfc274cf891 100644
> --- a/drivers/media/i2c/tc358746.c
> +++ b/drivers/media/i2c/tc358746.c
> @@ -816,7 +816,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
> return 0;
>
> err_out:
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return err;
> @@ -838,7 +837,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
> if (err)
> return err;
>
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return v4l2_subdev_call(src, video, s_stream, 0);
> @@ -1016,7 +1014,6 @@ tc358746_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
> err = tc358746_read(tc358746, reg->reg, &val);
> reg->val = val;
>
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return err;
> @@ -1032,7 +1029,6 @@ tc358746_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg)
>
> tc358746_write(tc358746, (u32)reg->reg, (u32)reg->val);
>
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return 0;
> @@ -1395,7 +1391,6 @@ static int tc358746_init_hw(struct tc358746 *tc358746)
> }
>
> err = tc358746_read(tc358746, CHIPID_REG, &val);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_sync_autosuspend(dev);
> if (err)
> return -ENODEV;
> diff --git a/drivers/media/i2c/thp7312.c b/drivers/media/i2c/thp7312.c
> index 8852c56431fe..775cfba188d8 100644
> --- a/drivers/media/i2c/thp7312.c
> +++ b/drivers/media/i2c/thp7312.c
> @@ -808,7 +808,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
> if (!enable) {
> thp7312_stream_enable(thp7312, false);
>
> - pm_runtime_mark_last_busy(thp7312->dev);
> pm_runtime_put_autosuspend(thp7312->dev);
>
> v4l2_subdev_unlock_state(sd_state);
> @@ -839,7 +838,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
> goto finish_unlock;
>
> finish_pm:
> - pm_runtime_mark_last_busy(thp7312->dev);
> pm_runtime_put_autosuspend(thp7312->dev);
> finish_unlock:
> v4l2_subdev_unlock_state(sd_state);
> @@ -1147,7 +1145,6 @@ static int thp7312_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(thp7312->dev);
> pm_runtime_put_autosuspend(thp7312->dev);
>
> return ret;
> @@ -2183,7 +2180,6 @@ static int thp7312_probe(struct i2c_client *client)
> * Decrease the PM usage count. The device will get suspended after the
> * autosuspend delay, turning the power off.
> */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> dev_info(dev, "THP7312 firmware version %02u.%02u\n",
> diff --git a/drivers/media/i2c/vd55g1.c b/drivers/media/i2c/vd55g1.c
> index c0754fd03b1d..7c39183dd44b 100644
> --- a/drivers/media/i2c/vd55g1.c
> +++ b/drivers/media/i2c/vd55g1.c
> @@ -1104,7 +1104,6 @@ static int vd55g1_disable_streams(struct v4l2_subdev *sd,
>
> vd55g1_grab_ctrls(sensor, false);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1338,7 +1337,6 @@ static int vd55g1_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1433,7 +1431,6 @@ static int vd55g1_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1895,7 +1892,6 @@ static int vd55g1_probe(struct i2c_client *client)
> pm_runtime_enable(dev);
> pm_runtime_set_autosuspend_delay(dev, 4000);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> ret = vd55g1_subdev_init(sensor);
> diff --git a/drivers/media/i2c/vd56g3.c b/drivers/media/i2c/vd56g3.c
> index 5d951ad0b478..d66e21ba4498 100644
> --- a/drivers/media/i2c/vd56g3.c
> +++ b/drivers/media/i2c/vd56g3.c
> @@ -493,7 +493,6 @@ static int vd56g3_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -577,7 +576,6 @@ static int vd56g3_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1021,7 +1019,6 @@ static int vd56g3_disable_streams(struct v4l2_subdev *sd,
> __v4l2_ctrl_grab(sensor->vflip_ctrl, false);
> __v4l2_ctrl_grab(sensor->patgen_ctrl, false);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1527,7 +1524,6 @@ static int vd56g3_probe(struct i2c_client *client)
> }
>
> /* Sensor could now be powered off (after the autosuspend delay) */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> dev_dbg(dev, "Successfully probe %s sensor\n",
> diff --git a/drivers/media/i2c/video-i2c.c b/drivers/media/i2c/video-i2c.c
> index 0dd991d70d53..1eee2d4f5b40 100644
> --- a/drivers/media/i2c/video-i2c.c
> +++ b/drivers/media/i2c/video-i2c.c
> @@ -288,7 +288,6 @@ static int amg88xx_read(struct device *dev, enum hwmon_sensor_types type,
> return tmp;
>
> tmp = regmap_bulk_read(data->regmap, AMG88XX_REG_TTHL, &buf, 2);
> - pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
> pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
> if (tmp)
> return tmp;
> @@ -527,7 +526,6 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
> return 0;
>
> error_rpm_put:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> error_del_list:
> video_i2c_del_list(vq, VB2_BUF_STATE_QUEUED);
> @@ -544,7 +542,6 @@ static void stop_streaming(struct vb2_queue *vq)
>
> kthread_stop(data->kthread_vid_cap);
> data->kthread_vid_cap = NULL;
> - pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
> pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
>
> video_i2c_del_list(vq, VB2_BUF_STATE_ERROR);
> @@ -853,7 +850,6 @@ static int video_i2c_probe(struct i2c_client *client)
> if (ret < 0)
> goto error_pm_disable;
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return 0;
> diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> index fd71f0c43ac3..a9ce032cc5a2 100644
> --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> @@ -451,7 +451,6 @@ static void wave5_vpu_dec_finish_decode(struct vpu_instance *inst)
> if (q_status.report_queue_count == 0 &&
> (q_status.instance_queue_count == 0 || dec_info.sequence_changed)) {
> dev_dbg(inst->dev->dev, "%s: finishing job.\n", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
> }
> @@ -1364,7 +1363,6 @@ static int wave5_vpu_dec_start_streaming(struct vb2_queue *q, unsigned int count
> }
>
> }
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return ret;
>
> @@ -1498,7 +1496,6 @@ static void wave5_vpu_dec_stop_streaming(struct vb2_queue *q)
> else
> streamoff_capture(q);
>
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> }
>
> @@ -1662,7 +1659,6 @@ static void wave5_vpu_dec_device_run(void *priv)
>
> finish_job_and_return:
> dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
> }
> diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
> index 1e5fc5f8b856..35913a7de834 100644
> --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
> +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
> @@ -1391,12 +1391,10 @@ static int wave5_vpu_enc_start_streaming(struct vb2_queue *q, unsigned int count
> if (ret)
> goto return_buffers;
>
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return 0;
> return_buffers:
> wave5_return_bufs(q, VB2_BUF_STATE_QUEUED);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return ret;
> }
> @@ -1465,7 +1463,6 @@ static void wave5_vpu_enc_stop_streaming(struct vb2_queue *q)
> else
> streamoff_capture(inst, q);
>
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> }
>
> @@ -1520,7 +1517,6 @@ static void wave5_vpu_enc_device_run(void *priv)
> break;
> }
> dev_dbg(inst->dev->dev, "%s: leave with active job", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return;
> default:
> @@ -1529,7 +1525,6 @@ static void wave5_vpu_enc_device_run(void *priv)
> break;
> }
> dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
> }
> diff --git a/drivers/media/platform/nvidia/tegra-vde/h264.c b/drivers/media/platform/nvidia/tegra-vde/h264.c
> index 0e56a4331b0d..45f8f6904867 100644
> --- a/drivers/media/platform/nvidia/tegra-vde/h264.c
> +++ b/drivers/media/platform/nvidia/tegra-vde/h264.c
> @@ -585,7 +585,6 @@ static int tegra_vde_decode_begin(struct tegra_vde *vde,
> return 0;
>
> put_runtime_pm:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> unlock:
> @@ -612,7 +611,6 @@ static void tegra_vde_decode_abort(struct tegra_vde *vde)
> if (err)
> dev_err(dev, "DEC end: Failed to assert HW reset: %d\n", err);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> mutex_unlock(&vde->lock);
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_queue.c b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> index fac7df0c4d1a..0b37f9b76da5 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> @@ -142,7 +142,6 @@ int iris_hfi_queue_cmd_write(struct iris_core *core, void *pkt, u32 pkt_size)
> }
> mutex_unlock(&core->lock);
>
> - pm_runtime_mark_last_busy(core->dev);
> pm_runtime_put_autosuspend(core->dev);
>
> return 0;
> diff --git a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> index 7596ae1f7de6..8a10a36abbc2 100644
> --- a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> +++ b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> @@ -951,7 +951,6 @@ static void pispbe_node_stop_streaming(struct vb2_queue *q)
> pispbe->streaming_map &= ~BIT(node->id);
> spin_unlock_irqrestore(&pispbe->hw_lock, flags);
>
> - pm_runtime_mark_last_busy(pispbe->dev);
> pm_runtime_put_autosuspend(pispbe->dev);
>
> dev_dbg(pispbe->dev, "Nodes streaming now 0x%x\n",
> @@ -1740,7 +1739,6 @@ static int pispbe_probe(struct platform_device *pdev)
> if (ret)
> goto disable_devs_err;
>
> - pm_runtime_mark_last_busy(pispbe->dev);
> pm_runtime_put_autosuspend(pispbe->dev);
>
> return 0;
> diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
> index 8542238e0fb1..fa972effd4a2 100644
> --- a/drivers/media/platform/verisilicon/hantro_drv.c
> +++ b/drivers/media/platform/verisilicon/hantro_drv.c
> @@ -89,7 +89,6 @@ static void hantro_job_finish(struct hantro_dev *vpu,
> struct hantro_ctx *ctx,
> enum vb2_buffer_state result)
> {
> - pm_runtime_mark_last_busy(vpu->dev);
> pm_runtime_put_autosuspend(vpu->dev);
>
> clk_bulk_disable(vpu->variant->num_clocks, vpu->clocks);
> diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c
> index bf6d8fa983bf..161f8919022c 100644
> --- a/drivers/media/rc/gpio-ir-recv.c
> +++ b/drivers/media/rc/gpio-ir-recv.c
> @@ -49,7 +49,6 @@ static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id)
> ir_raw_event_store_edge(gpio_dev->rcdev, val == 1);
>
> if (pmdev) {
> - pm_runtime_mark_last_busy(pmdev);
> pm_runtime_put_autosuspend(pmdev);
> }
>
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
` (3 preceding siblings ...)
2025-07-04 9:18 ` Steven Price
@ 2025-07-04 10:24 ` Maíra Canal
2025-07-08 14:01 ` Luca Ceresoli
5 siblings, 0 replies; 162+ messages in thread
From: Maíra Canal @ 2025-07-04 10:24 UTC (permalink / raw)
To: Sakari Ailus, Andrzej Hajda, Neil Armstrong, Robert Foss,
Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie,
Simona Vetter, Douglas Anderson, Lucas Stach, Russell King,
Christian Gmeiner, Inki Dae, Seung-Woo Kim, Kyungmin Park,
Krzysztof Kozlowski, Alim Akhtar, Jani Nikula, Joonas Lahtinen,
Rodrigo Vivi, Tvrtko Ursulin, Laurentiu Palcu, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Qiang Yu,
Jessica Zhang, Boris Brezillon, Steven Price, Liviu Dudau,
Thierry Reding, Mikko Perttunen, Jonathan Hunter, Jyri Sarha,
Tomi Valkeinen, Dave Stevenson, Raspberry Pi Kernel Maintenance,
Dmitry Baryshkov, Damon Ding, Ayushi Makhija, Luca Ceresoli,
Uwe Kleine-König, Chen-Yu Tsai
Cc: dri-devel, linux-kernel, etnaviv, linux-arm-kernel,
linux-samsung-soc, intel-gfx, imx, lima, linux-tegra
Hi Sakari,
On 04/07/25 04:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
[...]
> diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
> index bb09df5000bd..11ec7e913974 100644
> --- a/drivers/gpu/drm/vc4/vc4_v3d.c
> +++ b/drivers/gpu/drm/vc4/vc4_v3d.c
> @@ -153,7 +153,6 @@ vc4_v3d_pm_put(struct vc4_dev *vc4)
>
> mutex_lock(&vc4->power_lock);
> if (--vc4->power_refcount == 0) {
> - pm_runtime_mark_last_busy(&vc4->v3d->pdev->dev);
> pm_runtime_put_autosuspend(&vc4->v3d->pdev->dev);
> }
Nit: please, drop the curly braces.
> mutex_unlock(&vc4->power_lock);
For vc4,
Reviewed-by: Maíra Canal <mcanal@igalia.com>
Best Regards,
- Maíra
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 33/80] iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 33/80] iio: imu: " Sakari Ailus
@ 2025-07-04 10:26 ` Waqar Hameed
0 siblings, 0 replies; 162+ messages in thread
From: Waqar Hameed @ 2025-07-04 10:26 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jean-Baptiste Maneyrol, Jonathan Cameron, David Lechner,
Nuno Sá, Andy Shevchenko, Javier Carrasco, linux-iio,
linux-kernel
On Fri, Jul 04, 2025 at 10:54 +0300 Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
[...]
> diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
> index 55c82891e08c..42016d56c852 100644
> --- a/drivers/iio/imu/kmx61.c
> +++ b/drivers/iio/imu/kmx61.c
> @@ -750,7 +750,6 @@ static int kmx61_set_power_state(struct kmx61_data *data, bool on, u8 device)
> if (on) {
> ret = pm_runtime_resume_and_get(&data->client->dev);
> } else {
> - pm_runtime_mark_last_busy(&data->client->dev);
> ret = pm_runtime_put_autosuspend(&data->client->dev);
As Jonathan mentioned in [PATCH 27/80], please run `checkpatch.pl`. It
will tell you that the braces should be eliminated.
> }
> if (ret < 0) {
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
` (2 preceding siblings ...)
2025-07-04 9:32 ` Tommaso Merciai
@ 2025-07-04 11:30 ` Dikshita Agarwal
2025-07-04 15:16 ` Sean Young
` (2 subsequent siblings)
6 siblings, 0 replies; 162+ messages in thread
From: Dikshita Agarwal @ 2025-07-04 11:30 UTC (permalink / raw)
To: Sakari Ailus, Tommaso Merciai, Martin Hecht,
Mauro Carvalho Chehab, Sebastian Reichel, Alain Volmat,
Dave Stevenson, Kieran Bingham, Umang Jain, Manivannan Sadhasivam,
Laurent Pinchart, Michael Riesch, Mikhail Rudenko,
Steve Longerbeam, Jacopo Mondi, Nicholas Roth, Benjamin Mugnier,
Sylvain Petinot, Paul Elder, Matt Ranostay, Nas Chung,
Jackson Lee, Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
Vikash Garodia, Abhinav Kumar, Bryan O'Donoghue,
Raspberry Pi Kernel Maintenance, Florian Fainelli,
Broadcom internal kernel review list, Nicolas Dufresne,
Benjamin Gaignard, Philipp Zabel, Sean Young, Hans Verkuil,
Matthias Fend, Marco Felsch, Tomi Valkeinen, Ricardo Ribalda
Cc: linux-media, linux-kernel, linux-tegra, linux-arm-msm,
linux-rpi-kernel, linux-arm-kernel, linux-rockchip
On 7/4/2025 1:24 PM, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/media/i2c/alvium-csi2.c | 1 -
> drivers/media/i2c/ccs/ccs-core.c | 4 ----
> drivers/media/i2c/dw9768.c | 1 -
> drivers/media/i2c/gc0308.c | 3 ---
> drivers/media/i2c/gc2145.c | 3 ---
> drivers/media/i2c/imx219.c | 2 --
> drivers/media/i2c/imx283.c | 3 ---
> drivers/media/i2c/imx290.c | 3 ---
> drivers/media/i2c/imx296.c | 1 -
> drivers/media/i2c/imx415.c | 1 -
> drivers/media/i2c/mt9m114.c | 6 ------
> drivers/media/i2c/ov4689.c | 3 ---
> drivers/media/i2c/ov5640.c | 4 ----
> drivers/media/i2c/ov5645.c | 3 ---
> drivers/media/i2c/ov64a40.c | 4 ----
> drivers/media/i2c/ov8858.c | 2 --
> drivers/media/i2c/st-mipid02.c | 2 --
> drivers/media/i2c/tc358746.c | 5 -----
> drivers/media/i2c/thp7312.c | 4 ----
> drivers/media/i2c/vd55g1.c | 4 ----
> drivers/media/i2c/vd56g3.c | 4 ----
> drivers/media/i2c/video-i2c.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c | 5 -----
> drivers/media/platform/nvidia/tegra-vde/h264.c | 2 --
> drivers/media/platform/qcom/iris/iris_hfi_queue.c | 1 -
> drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 2 --
> drivers/media/platform/verisilicon/hantro_drv.c | 1 -
> drivers/media/rc/gpio-ir-recv.c | 1 -
> 29 files changed, 83 deletions(-)
>
[snip]> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> index fac7df0c4d1a..0b37f9b76da5 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> @@ -142,7 +142,6 @@ int iris_hfi_queue_cmd_write(struct iris_core *core, void *pkt, u32 pkt_size)
> }
> mutex_unlock(&core->lock);
>
> - pm_runtime_mark_last_busy(core->dev);
> pm_runtime_put_autosuspend(core->dev);
>
> return 0;
Reviewed-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Thanks,
Dikshita
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 75/80] ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:55 ` [PATCH 75/80] ALSA: intel_hdmi: " Sakari Ailus
@ 2025-07-04 11:45 ` Takashi Iwai
2025-07-06 8:26 ` Takashi Iwai
0 siblings, 1 reply; 162+ messages in thread
From: Takashi Iwai @ 2025-07-04 11:45 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jaroslav Kysela, Takashi Iwai, Thorsten Blum, linux-sound,
linux-kernel
On Fri, 04 Jul 2025 09:55:00 +0200,
Sakari Ailus wrote:
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
thanks,
Takashi
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> sound/x86/intel_hdmi_audio.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/sound/x86/intel_hdmi_audio.c b/sound/x86/intel_hdmi_audio.c
> index fe5cb4139088..cc54539c6030 100644
> --- a/sound/x86/intel_hdmi_audio.c
> +++ b/sound/x86/intel_hdmi_audio.c
> @@ -1102,7 +1102,6 @@ static int had_pcm_open(struct snd_pcm_substream *substream)
>
> return retval;
> error:
> - pm_runtime_mark_last_busy(intelhaddata->dev);
> pm_runtime_put_autosuspend(intelhaddata->dev);
> return retval;
> }
> @@ -1127,7 +1126,6 @@ static int had_pcm_close(struct snd_pcm_substream *substream)
> }
> spin_unlock_irq(&intelhaddata->had_spinlock);
>
> - pm_runtime_mark_last_busy(intelhaddata->dev);
> pm_runtime_put_autosuspend(intelhaddata->dev);
> return 0;
> }
> @@ -1589,7 +1587,6 @@ static void had_audio_wq(struct work_struct *work)
> }
>
> mutex_unlock(&ctx->mutex);
> - pm_runtime_mark_last_busy(ctx->dev);
> pm_runtime_put_autosuspend(ctx->dev);
> }
>
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 69/80] ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 69/80] ALSA: hda: " Sakari Ailus
@ 2025-07-04 11:47 ` Takashi Iwai
2025-07-04 11:52 ` Mark Brown
0 siblings, 1 reply; 162+ messages in thread
From: Takashi Iwai @ 2025-07-04 11:47 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jaroslav Kysela, Takashi Iwai, David Rhodes, Richard Fitzgerald,
Shenghao Ding, Kevin Lu, Baojun Xu, Amadeusz Sławiński,
Cezary Rojewski, Mark Brown, Andy Shevchenko, Dan Carpenter,
Chen Ni, linux-sound, linux-kernel, patches
On Fri, 04 Jul 2025 09:54:55 +0200,
Sakari Ailus wrote:
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
thanks,
Takashi
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> sound/hda/hdac_device.c | 1 -
> sound/pci/hda/cs35l41_hda.c | 4 ----
> sound/pci/hda/cs35l56_hda.c | 1 -
> sound/pci/hda/tas2781_hda_i2c.c | 3 ---
> sound/pci/hda/tas2781_hda_spi.c | 4 ----
> 5 files changed, 13 deletions(-)
>
> diff --git a/sound/hda/hdac_device.c b/sound/hda/hdac_device.c
> index 0053831eed2d..a02dce5f6a88 100644
> --- a/sound/hda/hdac_device.c
> +++ b/sound/hda/hdac_device.c
> @@ -581,7 +581,6 @@ int snd_hdac_power_down(struct hdac_device *codec)
> {
> struct device *dev = &codec->dev;
>
> - pm_runtime_mark_last_busy(dev);
> return pm_runtime_put_autosuspend(dev);
> }
> EXPORT_SYMBOL_GPL(snd_hdac_power_down);
> diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
> index c2cf3813872a..fc3f9ed3be13 100644
> --- a/sound/pci/hda/cs35l41_hda.c
> +++ b/sound/pci/hda/cs35l41_hda.c
> @@ -836,7 +836,6 @@ static void cs35l41_hda_playback_hook(struct device *dev, int action)
> * Playback must be finished for all amps before we start runtime suspend.
> * This ensures no amps are playing back when we start putting them to sleep.
> */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> break;
> default:
> @@ -1284,7 +1283,6 @@ static void cs35l41_fw_load_work(struct work_struct *work)
> cs35l41->fw_request_ongoing = false;
> mutex_unlock(&cs35l41->fw_mutex);
>
> - pm_runtime_mark_last_busy(cs35l41->dev);
> pm_runtime_put_autosuspend(cs35l41->dev);
> }
>
> @@ -1515,7 +1513,6 @@ static int cs35l41_hda_bind(struct device *dev, struct device *master, void *mas
> dev_warn(dev, "Unable to create device link\n");
> unlock_system_sleep(sleep_flags);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> dev_info(cs35l41->dev,
> @@ -2036,7 +2033,6 @@ int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int i
>
> pm_runtime_set_autosuspend_delay(cs35l41->dev, 3000);
> pm_runtime_use_autosuspend(cs35l41->dev);
> - pm_runtime_mark_last_busy(cs35l41->dev);
> pm_runtime_set_active(cs35l41->dev);
> pm_runtime_get_noresume(cs35l41->dev);
> pm_runtime_enable(cs35l41->dev);
> diff --git a/sound/pci/hda/cs35l56_hda.c b/sound/pci/hda/cs35l56_hda.c
> index 3f2fd32f4ad9..0391bbffed7d 100644
> --- a/sound/pci/hda/cs35l56_hda.c
> +++ b/sound/pci/hda/cs35l56_hda.c
> @@ -89,7 +89,6 @@ static void cs35l56_hda_pause(struct cs35l56_hda *cs35l56)
> BIT(CS35L56_ASP_TX1_EN_SHIFT) | BIT(CS35L56_ASP_TX2_EN_SHIFT) |
> BIT(CS35L56_ASP_TX3_EN_SHIFT) | BIT(CS35L56_ASP_TX4_EN_SHIFT));
>
> - pm_runtime_mark_last_busy(cs35l56->base.dev);
> pm_runtime_put_autosuspend(cs35l56->base.dev);
> }
>
> diff --git a/sound/pci/hda/tas2781_hda_i2c.c b/sound/pci/hda/tas2781_hda_i2c.c
> index b9cdbca951e4..8a461acbc3b9 100644
> --- a/sound/pci/hda/tas2781_hda_i2c.c
> +++ b/sound/pci/hda/tas2781_hda_i2c.c
> @@ -157,7 +157,6 @@ static void tas2781_hda_playback_hook(struct device *dev, int action)
> tas_hda->priv->playback_started = false;
> mutex_unlock(&tas_hda->priv->codec_lock);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> break;
> default:
> @@ -483,7 +482,6 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
> out:
> mutex_unlock(&tas_hda->priv->codec_lock);
> release_firmware(fmw);
> - pm_runtime_mark_last_busy(tas_hda->dev);
> pm_runtime_put_autosuspend(tas_hda->dev);
> }
>
> @@ -526,7 +524,6 @@ static int tas2781_hda_bind(struct device *dev, struct device *master,
> if (!ret)
> comp->playback_hook = tas2781_hda_playback_hook;
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> diff --git a/sound/pci/hda/tas2781_hda_spi.c b/sound/pci/hda/tas2781_hda_spi.c
> index 5c03e9d2283a..c4b9a3c1a7f0 100644
> --- a/sound/pci/hda/tas2781_hda_spi.c
> +++ b/sound/pci/hda/tas2781_hda_spi.c
> @@ -400,7 +400,6 @@ static void tas2781_hda_playback_hook(struct device *dev, int action)
> guard(mutex)(&tas_priv->codec_lock);
> if (tas_priv->fw_state == TASDEVICE_DSP_FW_ALL_OK)
> tasdevice_tuning_switch(tas_priv, 1);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
> }
> @@ -698,7 +697,6 @@ static void tasdev_fw_ready(const struct firmware *fmw, void *context)
> tas2781_save_calibration(tas_hda);
> out:
> release_firmware(fmw);
> - pm_runtime_mark_last_busy(tas_hda->priv->dev);
> pm_runtime_put_autosuspend(tas_hda->priv->dev);
> }
>
> @@ -731,7 +729,6 @@ static int tas2781_hda_bind(struct device *dev, struct device *master,
> if (!ret)
> comp->playback_hook = tas2781_hda_playback_hook;
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -816,7 +813,6 @@ static int tas2781_hda_spi_probe(struct spi_device *spi)
>
> pm_runtime_set_autosuspend_delay(tas_priv->dev, 3000);
> pm_runtime_use_autosuspend(tas_priv->dev);
> - pm_runtime_mark_last_busy(tas_priv->dev);
> pm_runtime_set_active(tas_priv->dev);
> pm_runtime_get_noresume(tas_priv->dev);
> pm_runtime_enable(tas_priv->dev);
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 69/80] ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 11:47 ` Takashi Iwai
@ 2025-07-04 11:52 ` Mark Brown
2025-07-04 11:58 ` Takashi Iwai
0 siblings, 1 reply; 162+ messages in thread
From: Mark Brown @ 2025-07-04 11:52 UTC (permalink / raw)
To: Takashi Iwai
Cc: Sakari Ailus, Jaroslav Kysela, Takashi Iwai, David Rhodes,
Richard Fitzgerald, Shenghao Ding, Kevin Lu, Baojun Xu,
Amadeusz Sławiński, Cezary Rojewski, Andy Shevchenko,
Dan Carpenter, Chen Ni, linux-sound, linux-kernel, patches
[-- Attachment #1: Type: text/plain, Size: 504 bytes --]
On Fri, Jul 04, 2025 at 01:47:26PM +0200, Takashi Iwai wrote:
> Sakari Ailus wrote:
> > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > pm_runtime_mark_last_busy().
> Acked-by: Takashi Iwai <tiwai@suse.de>
The suggestion in the cover letter was that we should apply these to our
trees after pulling a tag from Rafael's tree.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 69/80] ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 11:52 ` Mark Brown
@ 2025-07-04 11:58 ` Takashi Iwai
2025-07-06 8:27 ` Takashi Iwai
0 siblings, 1 reply; 162+ messages in thread
From: Takashi Iwai @ 2025-07-04 11:58 UTC (permalink / raw)
To: Mark Brown
Cc: Takashi Iwai, Sakari Ailus, Jaroslav Kysela, Takashi Iwai,
David Rhodes, Richard Fitzgerald, Shenghao Ding, Kevin Lu,
Baojun Xu, Amadeusz Sławiński, Cezary Rojewski,
Andy Shevchenko, Dan Carpenter, Chen Ni, linux-sound,
linux-kernel, patches
On Fri, 04 Jul 2025 13:52:50 +0200,
Mark Brown wrote:
>
> On Fri, Jul 04, 2025 at 01:47:26PM +0200, Takashi Iwai wrote:
> > Sakari Ailus wrote:
>
> > > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > > pm_runtime_mark_last_busy().
>
> > Acked-by: Takashi Iwai <tiwai@suse.de>
>
> The suggestion in the cover letter was that we should apply these to our
> trees after pulling a tag from Rafael's tree.
Ah thanks, that'd be even better, as we may have a big code
restructuring of HD-audio for 6.17, and this would be certainly
conflicting.
Takashi
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (80 preceding siblings ...)
2025-07-04 9:03 ` [PATCH 00/80] treewide: " Jonathan Cameron
@ 2025-07-04 12:04 ` Mark Brown
2025-07-08 10:01 ` Sakari Ailus
2025-07-04 18:15 ` (subset) " Mark Brown
` (5 subsequent siblings)
87 siblings, 1 reply; 162+ messages in thread
From: Mark Brown @ 2025-07-04 12:04 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-pm, linux-kernel, Rafael J. Wysocki
[-- Attachment #1: Type: text/plain, Size: 700 bytes --]
On Fri, Jul 04, 2025 at 10:52:25AM +0300, Sakari Ailus wrote:
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
> So before merging these, please pull Rafael's tag. My thinking is indeed
> these would be best merged via the respective trees as there's some
> potential for conflicts (there are around 920 call sites modified here).
Please if you're doing things like this in future could you send
individual serieses to each subsystem - it just makes everything
clearer, for those of us with multiple subsystems it makes life easier
and a series this big causes scaling issues with the tooling (it took
several minutes for b4 to figure out a base...).
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 64/80] media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 64/80] media: rkvdec: " Sakari Ailus
@ 2025-07-04 13:05 ` Nicolas Dufresne
2025-08-11 13:48 ` Nicolas Dufresne
1 sibling, 0 replies; 162+ messages in thread
From: Nicolas Dufresne @ 2025-07-04 13:05 UTC (permalink / raw)
To: Sakari Ailus, Ezequiel Garcia, Mauro Carvalho Chehab,
Greg Kroah-Hartman
Cc: linux-media, linux-rockchip, linux-staging, linux-kernel
Le vendredi 04 juillet 2025 à 10:54 +0300, Sakari Ailus a écrit :
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
> ---
> The cover letter of the set can be found here
> <URL:
> https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.i
> ntel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/staging/media/rkvdec/rkvdec.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/staging/media/rkvdec/rkvdec.c
> b/drivers/staging/media/rkvdec/rkvdec.c
> index d707088ec0dc..445f7c92eee3 100644
> --- a/drivers/staging/media/rkvdec/rkvdec.c
> +++ b/drivers/staging/media/rkvdec/rkvdec.c
> @@ -765,7 +765,6 @@ static void rkvdec_job_finish(struct rkvdec_ctx *ctx,
> {
> struct rkvdec_dev *rkvdec = ctx->dev;
>
> - pm_runtime_mark_last_busy(rkvdec->dev);
> pm_runtime_put_autosuspend(rkvdec->dev);
> rkvdec_job_finish_no_pm(ctx, result);
> }
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
` (3 preceding siblings ...)
2025-07-04 11:30 ` Dikshita Agarwal
@ 2025-07-04 15:16 ` Sean Young
2025-07-07 15:57 ` Dave Stevenson
2025-07-09 8:43 ` Benjamin Gaignard
6 siblings, 0 replies; 162+ messages in thread
From: Sean Young @ 2025-07-04 15:16 UTC (permalink / raw)
To: Sakari Ailus
Cc: Tommaso Merciai, Martin Hecht, Mauro Carvalho Chehab,
Sebastian Reichel, Alain Volmat, Dave Stevenson, Kieran Bingham,
Umang Jain, Manivannan Sadhasivam, Laurent Pinchart,
Michael Riesch, Mikhail Rudenko, Steve Longerbeam, Jacopo Mondi,
Nicholas Roth, Benjamin Mugnier, Sylvain Petinot, Paul Elder,
Matt Ranostay, Nas Chung, Jackson Lee, Dmitry Osipenko,
Thierry Reding, Jonathan Hunter, Vikash Garodia, Dikshita Agarwal,
Abhinav Kumar, Bryan O'Donoghue,
Raspberry Pi Kernel Maintenance, Florian Fainelli,
Broadcom internal kernel review list, Nicolas Dufresne,
Benjamin Gaignard, Philipp Zabel, Hans Verkuil, Matthias Fend,
Marco Felsch, Tomi Valkeinen, Ricardo Ribalda, linux-media,
linux-kernel, linux-tegra, linux-arm-msm, linux-rpi-kernel,
linux-arm-kernel, linux-rockchip
On Fri, Jul 04, 2025 at 10:54:31AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
...
> diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c
> index bf6d8fa983bf..161f8919022c 100644
> --- a/drivers/media/rc/gpio-ir-recv.c
> +++ b/drivers/media/rc/gpio-ir-recv.c
> @@ -49,7 +49,6 @@ static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id)
> ir_raw_event_store_edge(gpio_dev->rcdev, val == 1);
>
> if (pmdev) {
> - pm_runtime_mark_last_busy(pmdev);
> pm_runtime_put_autosuspend(pmdev);
> }
No need for braces any more - as Laurent already pointed out.
Reviewed-by: Sean Young <sean@mess.org>
Sean
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 32/80] iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 32/80] iio: gyro: " Sakari Ailus
2025-07-04 8:41 ` Linus Walleij
@ 2025-07-04 15:25 ` Rui Miguel Silva
1 sibling, 0 replies; 162+ messages in thread
From: Rui Miguel Silva @ 2025-07-04 15:25 UTC (permalink / raw)
To: Sakari Ailus, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Rui Miguel Silva, Linus Walleij, Julien Stephan,
Hans de Goede, Waqar Hameed
Cc: linux-iio, linux-kernel
Hi Sakari,
Thanks for the patch
On Fri Jul 4, 2025 at 8:54 AM WEST, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/iio/gyro/bmg160_core.c | 1 -
> drivers/iio/gyro/fxas21002c_core.c | 2 --
> drivers/iio/gyro/mpu3050-core.c | 3 ---
> drivers/iio/gyro/mpu3050-i2c.c | 1 -
> 4 files changed, 7 deletions(-)
>
> diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c
> index 781d3e96645f..4dbe3c0cc5eb 100644
> --- a/drivers/iio/gyro/bmg160_core.c
> +++ b/drivers/iio/gyro/bmg160_core.c
> @@ -310,7 +310,6 @@ static int bmg160_set_power_state(struct bmg160_data *data, bool on)
> if (on)
> ret = pm_runtime_get_sync(dev);
> else {
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> }
>
> diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c
> index 754c8a564ba4..a88670207cec 100644
> --- a/drivers/iio/gyro/fxas21002c_core.c
> +++ b/drivers/iio/gyro/fxas21002c_core.c
> @@ -373,8 +373,6 @@ static int fxas21002c_pm_put(struct fxas21002c_data *data)
> {
> struct device *dev = regmap_get_device(data->regmap);
>
> - pm_runtime_mark_last_busy(dev);
> -
> return pm_runtime_put_autosuspend(dev);
> }
LGTM,
Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org>
Cheers,
Rui
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 38/80] iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 38/80] iio: temperature: " Sakari Ailus
@ 2025-07-04 16:00 ` Crt Mori
2025-07-06 10:25 ` Jonathan Cameron
0 siblings, 1 reply; 162+ messages in thread
From: Crt Mori @ 2025-07-04 16:00 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jonathan Cameron, David Lechner, Nuno Sá, Andy Shevchenko,
linux-iio, linux-kernel
If that is the case then:
Acked-by: Crt Mori<cmo@melexis.com>
On Fri, 4 Jul 2025 at 09:54, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/iio/temperature/mlx90614.c | 1 -
> drivers/iio/temperature/mlx90632.c | 1 -
> drivers/iio/temperature/mlx90635.c | 1 -
> 3 files changed, 3 deletions(-)
>
> diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c
> index 740018d4b3df..8a44a00bfd5e 100644
> --- a/drivers/iio/temperature/mlx90614.c
> +++ b/drivers/iio/temperature/mlx90614.c
> @@ -225,7 +225,6 @@ static void mlx90614_power_put(struct mlx90614_data *data)
> if (!data->wakeup_gpio)
> return;
>
> - pm_runtime_mark_last_busy(&data->client->dev);
> pm_runtime_put_autosuspend(&data->client->dev);
> }
> #else
> diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
> index ae4ea587e7f9..bf689f6143f3 100644
> --- a/drivers/iio/temperature/mlx90632.c
> +++ b/drivers/iio/temperature/mlx90632.c
> @@ -1043,7 +1043,6 @@ static int mlx90632_read_raw(struct iio_dev *indio_dev,
> }
>
> mlx90632_read_raw_pm:
> - pm_runtime_mark_last_busy(&data->client->dev);
> pm_runtime_put_autosuspend(&data->client->dev);
> return ret;
> }
> diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
> index f7f88498ba0e..80d0eb7d2294 100644
> --- a/drivers/iio/temperature/mlx90635.c
> +++ b/drivers/iio/temperature/mlx90635.c
> @@ -749,7 +749,6 @@ static int mlx90635_read_raw(struct iio_dev *indio_dev,
> }
>
> mlx90635_read_raw_pm:
> - pm_runtime_mark_last_busy(&data->client->dev);
> pm_runtime_put_autosuspend(&data->client->dev);
> return ret;
> }
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (81 preceding siblings ...)
2025-07-04 12:04 ` Mark Brown
@ 2025-07-04 18:15 ` Mark Brown
2025-07-04 23:39 ` Mark Brown
` (4 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Mark Brown @ 2025-07-04 18:15 UTC (permalink / raw)
To: linux-pm, Sakari Ailus; +Cc: linux-kernel, Rafael J. Wysocki
On Fri, 04 Jul 2025 10:52:25 +0300, Sakari Ailus wrote:
> Sakari Ailus (80):
> accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
> accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
> Bluetooth: Remove redundant pm_runtime_mark_last_busy() calls
> bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
> hwrng: Remove redundant pm_runtime_mark_last_busy() calls
> clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
> clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> crypto: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: at_xdmac: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: pl330: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: ti: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: zynqmp_dma: Remove redundant pm_runtime_mark_last_busy()
> calls
> gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
> drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
> drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
> drm/radeon: Remove redundant pm_runtime_mark_last_busy() calls
> drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
> drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
> HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
> stm class: Remove redundant pm_runtime_mark_last_busy() calls
> i2c: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
> HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
> iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
> iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
> iio: chemical: Remove redundant pm_runtime_mark_last_busy() calls
> iio: common: Remove redundant pm_runtime_mark_last_busy() calls
> iio: dac: Remove redundant pm_runtime_mark_last_busy() calls
> iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
> iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
> iio: light: Remove redundant pm_runtime_mark_last_busy() calls
> iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
> iio: pressure: Remove redundant pm_runtime_mark_last_busy() calls
> iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
> iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
> Input: omap4-keypad: Remove redundant pm_runtime_mark_last_busy()
> calls
> Input: cs40l50: Remove redundant pm_runtime_mark_last_busy() calls
> media: Remove redundant pm_runtime_mark_last_busy() calls
> mfd: Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> mmc: Remove redundant pm_runtime_mark_last_busy() calls
> mtd: rawnand: gpmi: Remove redundant pm_runtime_mark_last_busy() calls
> net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
> net: ipa: Remove redundant pm_runtime_mark_last_busy() calls
> net: wireless: Remove redundant pm_runtime_mark_last_busy() calls
> net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
> nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
> PCI/portdrv: Remove redundant pm_runtime_mark_last_busy() calls
> phy: motorola: phy-mapphone-mdm6600: Remove redundant
> pm_runtime_mark_last_busy() calls
> phy: ti: phy-twl4030-usb: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: twl4030_charger: Remove redundant
> pm_runtime_mark_last_busy() calls
> pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
> regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy()
> calls
> remoteproc: omap: Remove redundant pm_runtime_mark_last_busy() calls
> slimbus: Remove redundant pm_runtime_mark_last_busy() calls
> soundwire: Remove redundant pm_runtime_mark_last_busy() calls
> spi: Remove redundant pm_runtime_mark_last_busy() calls
> staging: greybus: Remove redundant pm_runtime_mark_last_busy() calls
> greybus: Remove redundant pm_runtime_mark_last_busy() calls
> media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
> thunderbolt: Remove redundant pm_runtime_mark_last_busy() calls
> serial: Remove redundant pm_runtime_mark_last_busy() calls
> usb: Remove redundant pm_runtime_mark_last_busy() calls
> w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
> soc: apple: mailbox: Remove redundant pm_runtime_mark_last_busy()
> calls
> block: pm: Remove redundant pm_runtime_mark_last_busy() calls
> Input: cyapa - Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> scsi: block: pm: Remove redundant pm_runtime_mark_last_busy() calls
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
Thanks!
[57/80] regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy() calls
commit: c61e94e5e4e6bc50064119e6a779564d1d2ac0e7
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (82 preceding siblings ...)
2025-07-04 18:15 ` (subset) " Mark Brown
@ 2025-07-04 23:39 ` Mark Brown
2025-07-06 23:04 ` Sebastian Reichel
` (3 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Mark Brown @ 2025-07-04 23:39 UTC (permalink / raw)
To: linux-pm, Sakari Ailus; +Cc: linux-kernel, Rafael J. Wysocki
On Fri, 04 Jul 2025 10:52:25 +0300, Sakari Ailus wrote:
> Sakari Ailus (80):
> accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
> accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
> Bluetooth: Remove redundant pm_runtime_mark_last_busy() calls
> bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
> hwrng: Remove redundant pm_runtime_mark_last_busy() calls
> clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
> clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> crypto: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: at_xdmac: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: pl330: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: ti: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: zynqmp_dma: Remove redundant pm_runtime_mark_last_busy()
> calls
> gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
> drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
> drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
> drm/radeon: Remove redundant pm_runtime_mark_last_busy() calls
> drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
> drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
> HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
> stm class: Remove redundant pm_runtime_mark_last_busy() calls
> i2c: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
> HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
> iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
> iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
> iio: chemical: Remove redundant pm_runtime_mark_last_busy() calls
> iio: common: Remove redundant pm_runtime_mark_last_busy() calls
> iio: dac: Remove redundant pm_runtime_mark_last_busy() calls
> iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
> iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
> iio: light: Remove redundant pm_runtime_mark_last_busy() calls
> iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
> iio: pressure: Remove redundant pm_runtime_mark_last_busy() calls
> iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
> iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
> Input: omap4-keypad: Remove redundant pm_runtime_mark_last_busy()
> calls
> Input: cs40l50: Remove redundant pm_runtime_mark_last_busy() calls
> media: Remove redundant pm_runtime_mark_last_busy() calls
> mfd: Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> mmc: Remove redundant pm_runtime_mark_last_busy() calls
> mtd: rawnand: gpmi: Remove redundant pm_runtime_mark_last_busy() calls
> net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
> net: ipa: Remove redundant pm_runtime_mark_last_busy() calls
> net: wireless: Remove redundant pm_runtime_mark_last_busy() calls
> net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
> nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
> PCI/portdrv: Remove redundant pm_runtime_mark_last_busy() calls
> phy: motorola: phy-mapphone-mdm6600: Remove redundant
> pm_runtime_mark_last_busy() calls
> phy: ti: phy-twl4030-usb: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: twl4030_charger: Remove redundant
> pm_runtime_mark_last_busy() calls
> pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
> regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy()
> calls
> remoteproc: omap: Remove redundant pm_runtime_mark_last_busy() calls
> slimbus: Remove redundant pm_runtime_mark_last_busy() calls
> soundwire: Remove redundant pm_runtime_mark_last_busy() calls
> spi: Remove redundant pm_runtime_mark_last_busy() calls
> staging: greybus: Remove redundant pm_runtime_mark_last_busy() calls
> greybus: Remove redundant pm_runtime_mark_last_busy() calls
> media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
> thunderbolt: Remove redundant pm_runtime_mark_last_busy() calls
> serial: Remove redundant pm_runtime_mark_last_busy() calls
> usb: Remove redundant pm_runtime_mark_last_busy() calls
> w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
> soc: apple: mailbox: Remove redundant pm_runtime_mark_last_busy()
> calls
> block: pm: Remove redundant pm_runtime_mark_last_busy() calls
> Input: cyapa - Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> scsi: block: pm: Remove redundant pm_runtime_mark_last_busy() calls
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[70/80] ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
commit: 9069141d1d9c585a20e43037c2f9c00d9d3fc9eb
[71/80] ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
commit: bbe5e3c433a34e7f7bc762c390abb38205f821c5
[72/80] ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
commit: 077e700cd709b9a0334bd442a1a4090c9de0d152
[73/80] ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
commit: e879f14d88c8ce4ecb647d80983f74b2fdd9f18b
[74/80] ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
commit: 2bd9648d5a8d329ca734ca2c273a80934867471e
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 21/80] HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 21/80] HSI: omap_ssi_port: " Sakari Ailus
@ 2025-07-05 0:37 ` Sebastian Reichel
0 siblings, 0 replies; 162+ messages in thread
From: Sebastian Reichel @ 2025-07-05 0:37 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 4679 bytes --]
Hi,
On Fri, Jul 04, 2025 at 10:54:13AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Acked-by: Sebastian Reichel <sre@kernel.org>
-- Sebastian
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/hsi/controllers/omap_ssi_port.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
> diff --git a/drivers/hsi/controllers/omap_ssi_port.c b/drivers/hsi/controllers/omap_ssi_port.c
> index aeb92b803a17..50dde968febe 100644
> --- a/drivers/hsi/controllers/omap_ssi_port.c
> +++ b/drivers/hsi/controllers/omap_ssi_port.c
> @@ -362,7 +362,6 @@ static int ssi_async_break(struct hsi_msg *msg)
> spin_unlock_bh(&omap_port->lock);
> }
> out:
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
>
> return err;
> @@ -401,7 +400,6 @@ static int ssi_async(struct hsi_msg *msg)
> msg->status = HSI_STATUS_ERROR;
> }
> spin_unlock_bh(&omap_port->lock);
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
> dev_dbg(&port->device, "msg status %d ttype %d ch %d\n",
> msg->status, msg->ttype, msg->channel);
> @@ -504,7 +502,6 @@ static int ssi_setup(struct hsi_client *cl)
> omap_port->ssr.mode = cl->rx_cfg.mode;
> out:
> spin_unlock_bh(&omap_port->lock);
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
>
> return err;
> @@ -570,7 +567,6 @@ static int ssi_flush(struct hsi_client *cl)
> pinctrl_pm_select_default_state(omap_port->pdev);
>
> spin_unlock_bh(&omap_port->lock);
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
>
> return 0;
> @@ -625,7 +621,6 @@ static int ssi_stop_tx(struct hsi_client *cl)
> writel(SSI_WAKE(0), omap_ssi->sys + SSI_CLEAR_WAKE_REG(port->num));
> spin_unlock_bh(&omap_port->wk_lock);
>
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev); /* Release clocks */
>
>
> @@ -653,7 +648,6 @@ static void ssi_transfer(struct omap_ssi_port *omap_port,
> }
> }
> spin_unlock_bh(&omap_port->lock);
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
> }
>
> @@ -683,7 +677,6 @@ static void ssi_cleanup_queues(struct hsi_client *cl)
> txbufstate |= (1 << i);
> status |= SSI_DATAACCEPT(i);
> /* Release the clocks writes, also GDD ones */
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
> }
> ssi_flush_queue(&omap_port->txqueue[i], cl);
> @@ -739,7 +732,6 @@ static void ssi_cleanup_gdd(struct hsi_controller *ssi, struct hsi_client *cl)
> * ssi_cleanup_queues
> */
> if (msg->ttype == HSI_MSG_READ) {
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
> }
> omap_ssi->gdd_trn[i].msg = NULL;
> @@ -936,7 +928,6 @@ static void ssi_pio_complete(struct hsi_port *port, struct list_head *queue)
> reg = readl(omap_ssi->sys + SSI_MPU_ENABLE_REG(port->num, 0));
> if (msg->ttype == HSI_MSG_WRITE) {
> /* Release clocks for write transfer */
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
> }
> reg &= ~val;
> @@ -981,7 +972,6 @@ static irqreturn_t ssi_pio_thread(int irq, void *ssi_port)
> /* TODO: sleep if we retry? */
> } while (status_reg);
>
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
>
> return IRQ_HANDLED;
> @@ -1018,7 +1008,6 @@ static irqreturn_t ssi_wake_thread(int irq __maybe_unused, void *ssi_port)
> }
> hsi_event(port, HSI_EVENT_STOP_RX);
> if (test_and_clear_bit(SSI_WAKE_EN, &omap_port->flags)) {
> - pm_runtime_mark_last_busy(omap_port->pdev);
> pm_runtime_put_autosuspend(omap_port->pdev);
> }
> }
> --
> 2.39.5
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 49/80] net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 49/80] net: wwan: " Sakari Ailus
@ 2025-07-05 9:51 ` Sergey Ryazanov
0 siblings, 0 replies; 162+ messages in thread
From: Sergey Ryazanov @ 2025-07-05 9:51 UTC (permalink / raw)
To: Sakari Ailus, Stephan Gerhold, Loic Poulain, Johannes Berg,
Andrew Lunn, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni, Chandrashekar Devegowda, Chiranjeevi Rapolu,
Liu Haijun, M Chetan Kumar, Ricardo Martinez
Cc: netdev, linux-arm-msm, linux-kernel
On 7/4/25 10:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/net/wwan/qcom_bam_dmux.c | 2 --
> drivers/net/wwan/t7xx/t7xx_hif_cldma.c | 3 ---
> drivers/net/wwan/t7xx/t7xx_hif_dpmaif_rx.c | 2 --
> drivers/net/wwan/t7xx/t7xx_hif_dpmaif_tx.c | 2 --
> 4 files changed, 9 deletions(-)
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 75/80] ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 11:45 ` Takashi Iwai
@ 2025-07-06 8:26 ` Takashi Iwai
0 siblings, 0 replies; 162+ messages in thread
From: Takashi Iwai @ 2025-07-06 8:26 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jaroslav Kysela, Takashi Iwai, Thorsten Blum, linux-sound,
linux-kernel
On Fri, 04 Jul 2025 13:45:13 +0200,
Takashi Iwai wrote:
>
> On Fri, 04 Jul 2025 09:55:00 +0200,
> Sakari Ailus wrote:
> >
> > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > pm_runtime_mark_last_busy().
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
>
> Acked-by: Takashi Iwai <tiwai@suse.de>
I merged now to for-next branch together with Rafael's preliminary
branch.
thanks,
Takashi
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 69/80] ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 11:58 ` Takashi Iwai
@ 2025-07-06 8:27 ` Takashi Iwai
0 siblings, 0 replies; 162+ messages in thread
From: Takashi Iwai @ 2025-07-06 8:27 UTC (permalink / raw)
To: Sakari Ailus
Cc: Mark Brown, Jaroslav Kysela, Takashi Iwai, David Rhodes,
Richard Fitzgerald, Shenghao Ding, Kevin Lu, Baojun Xu,
Amadeusz Sławiński, Cezary Rojewski, Andy Shevchenko,
Dan Carpenter, Chen Ni, linux-sound, linux-kernel, patches
On Fri, 04 Jul 2025 13:58:06 +0200,
Takashi Iwai wrote:
>
> On Fri, 04 Jul 2025 13:52:50 +0200,
> Mark Brown wrote:
> >
> > On Fri, Jul 04, 2025 at 01:47:26PM +0200, Takashi Iwai wrote:
> > > Sakari Ailus wrote:
> >
> > > > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > > > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > > > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > > > pm_runtime_mark_last_busy().
> >
> > > Acked-by: Takashi Iwai <tiwai@suse.de>
> >
> > The suggestion in the cover letter was that we should apply these to our
> > trees after pulling a tag from Rafael's tree.
>
> Ah thanks, that'd be even better, as we may have a big code
> restructuring of HD-audio for 6.17, and this would be certainly
> conflicting.
So now merged this to for-next branch.
thanks,
Takashi
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 38/80] iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 16:00 ` Crt Mori
@ 2025-07-06 10:25 ` Jonathan Cameron
2025-07-06 10:26 ` Jonathan Cameron
0 siblings, 1 reply; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-06 10:25 UTC (permalink / raw)
To: Crt Mori
Cc: Sakari Ailus, David Lechner, Nuno Sá, Andy Shevchenko,
linux-iio, linux-kernel
On Fri, 4 Jul 2025 18:00:02 +0200
Crt Mori <cmo@melexis.com> wrote:
> If that is the case then:
> Acked-by: Crt Mori<cmo@melexis.com>
>
>
>
> On Fri, 4 Jul 2025 at 09:54, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> >
> > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > pm_runtime_mark_last_busy().
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
No {} issues in here so applied to the testing branch of iio.git.
I'll push it out as togreg later in the week at which point linux-next
will see it.
Jonathan
> > ---
> > The cover letter of the set can be found here
> > <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
> >
> > In brief, this patch depends on PM runtime patches adding marking the last
> > busy timestamp in autosuspend related functions. The patches are here, on
> > rc2:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> > pm-runtime-6.17-rc1
> >
> > drivers/iio/temperature/mlx90614.c | 1 -
> > drivers/iio/temperature/mlx90632.c | 1 -
> > drivers/iio/temperature/mlx90635.c | 1 -
> > 3 files changed, 3 deletions(-)
> >
> > diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c
> > index 740018d4b3df..8a44a00bfd5e 100644
> > --- a/drivers/iio/temperature/mlx90614.c
> > +++ b/drivers/iio/temperature/mlx90614.c
> > @@ -225,7 +225,6 @@ static void mlx90614_power_put(struct mlx90614_data *data)
> > if (!data->wakeup_gpio)
> > return;
> >
> > - pm_runtime_mark_last_busy(&data->client->dev);
> > pm_runtime_put_autosuspend(&data->client->dev);
> > }
> > #else
> > diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
> > index ae4ea587e7f9..bf689f6143f3 100644
> > --- a/drivers/iio/temperature/mlx90632.c
> > +++ b/drivers/iio/temperature/mlx90632.c
> > @@ -1043,7 +1043,6 @@ static int mlx90632_read_raw(struct iio_dev *indio_dev,
> > }
> >
> > mlx90632_read_raw_pm:
> > - pm_runtime_mark_last_busy(&data->client->dev);
> > pm_runtime_put_autosuspend(&data->client->dev);
> > return ret;
> > }
> > diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
> > index f7f88498ba0e..80d0eb7d2294 100644
> > --- a/drivers/iio/temperature/mlx90635.c
> > +++ b/drivers/iio/temperature/mlx90635.c
> > @@ -749,7 +749,6 @@ static int mlx90635_read_raw(struct iio_dev *indio_dev,
> > }
> >
> > mlx90635_read_raw_pm:
> > - pm_runtime_mark_last_busy(&data->client->dev);
> > pm_runtime_put_autosuspend(&data->client->dev);
> > return ret;
> > }
> > --
> > 2.39.5
> >
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 38/80] iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-06 10:25 ` Jonathan Cameron
@ 2025-07-06 10:26 ` Jonathan Cameron
2025-07-08 10:52 ` Sakari Ailus
0 siblings, 1 reply; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-06 10:26 UTC (permalink / raw)
To: Crt Mori
Cc: Sakari Ailus, David Lechner, Nuno Sá, Andy Shevchenko,
linux-iio, linux-kernel
On Sun, 6 Jul 2025 11:25:02 +0100
Jonathan Cameron <jic23@kernel.org> wrote:
> On Fri, 4 Jul 2025 18:00:02 +0200
> Crt Mori <cmo@melexis.com> wrote:
>
> > If that is the case then:
> > Acked-by: Crt Mori<cmo@melexis.com>
> >
> >
> >
> > On Fri, 4 Jul 2025 at 09:54, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> > >
> > > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > > pm_runtime_mark_last_busy().
> > >
> > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> No {} issues in here so applied to the testing branch of iio.git.
> I'll push it out as togreg later in the week at which point linux-next
> will see it.
>
Actually - change of plan. I'll wait on your set with the others fixed
up as I don't want to pull in the pm-runtime change if I'm only going
to have a few of these ready by the end of the cycle. I don't mind merging
that with the whole lot if they are ready though.
Jonathan
> Jonathan
>
> > > ---
> > > The cover letter of the set can be found here
> > > <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
> > >
> > > In brief, this patch depends on PM runtime patches adding marking the last
> > > busy timestamp in autosuspend related functions. The patches are here, on
> > > rc2:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> > > pm-runtime-6.17-rc1
> > >
> > > drivers/iio/temperature/mlx90614.c | 1 -
> > > drivers/iio/temperature/mlx90632.c | 1 -
> > > drivers/iio/temperature/mlx90635.c | 1 -
> > > 3 files changed, 3 deletions(-)
> > >
> > > diff --git a/drivers/iio/temperature/mlx90614.c b/drivers/iio/temperature/mlx90614.c
> > > index 740018d4b3df..8a44a00bfd5e 100644
> > > --- a/drivers/iio/temperature/mlx90614.c
> > > +++ b/drivers/iio/temperature/mlx90614.c
> > > @@ -225,7 +225,6 @@ static void mlx90614_power_put(struct mlx90614_data *data)
> > > if (!data->wakeup_gpio)
> > > return;
> > >
> > > - pm_runtime_mark_last_busy(&data->client->dev);
> > > pm_runtime_put_autosuspend(&data->client->dev);
> > > }
> > > #else
> > > diff --git a/drivers/iio/temperature/mlx90632.c b/drivers/iio/temperature/mlx90632.c
> > > index ae4ea587e7f9..bf689f6143f3 100644
> > > --- a/drivers/iio/temperature/mlx90632.c
> > > +++ b/drivers/iio/temperature/mlx90632.c
> > > @@ -1043,7 +1043,6 @@ static int mlx90632_read_raw(struct iio_dev *indio_dev,
> > > }
> > >
> > > mlx90632_read_raw_pm:
> > > - pm_runtime_mark_last_busy(&data->client->dev);
> > > pm_runtime_put_autosuspend(&data->client->dev);
> > > return ret;
> > > }
> > > diff --git a/drivers/iio/temperature/mlx90635.c b/drivers/iio/temperature/mlx90635.c
> > > index f7f88498ba0e..80d0eb7d2294 100644
> > > --- a/drivers/iio/temperature/mlx90635.c
> > > +++ b/drivers/iio/temperature/mlx90635.c
> > > @@ -749,7 +749,6 @@ static int mlx90635_read_raw(struct iio_dev *indio_dev,
> > > }
> > >
> > > mlx90635_read_raw_pm:
> > > - pm_runtime_mark_last_busy(&data->client->dev);
> > > pm_runtime_put_autosuspend(&data->client->dev);
> > > return ret;
> > > }
> > > --
> > > 2.39.5
> > >
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 37/80] iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 37/80] iio: proximity: " Sakari Ailus
@ 2025-07-06 10:27 ` Jonathan Cameron
0 siblings, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-06 10:27 UTC (permalink / raw)
To: Sakari Ailus
Cc: David Lechner, Nuno Sá, Andy Shevchenko, Andreas Klinger,
Marcelo Schmitt, linux-iio, linux-kernel
On Fri, 4 Jul 2025 10:54:27 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/iio/proximity/pulsedlight-lidar-lite-v2.c | 1 -
> drivers/iio/proximity/srf04.c | 1 -
> 2 files changed, 2 deletions(-)
>
> diff --git a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
> index 1deaf70e92ce..d53a596128f5 100644
> --- a/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
> +++ b/drivers/iio/proximity/pulsedlight-lidar-lite-v2.c
> @@ -191,7 +191,6 @@ static int lidar_get_measurement(struct lidar_data *data, u16 *reg)
> }
> ret = -EIO;
> }
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> diff --git a/drivers/iio/proximity/srf04.c b/drivers/iio/proximity/srf04.c
> index b059bac1078b..f2e2c638a2b6 100644
> --- a/drivers/iio/proximity/srf04.c
> +++ b/drivers/iio/proximity/srf04.c
> @@ -118,7 +118,6 @@ static int srf04_read(struct srf04_data *data)
> gpiod_set_value(data->gpiod_trig, 0);
>
> if (data->gpiod_power) {
> - pm_runtime_mark_last_busy(data->dev);
> pm_runtime_put_autosuspend(data->dev);
> }
>
Drop {}
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 35/80] iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 35/80] iio: magnetometer: " Sakari Ailus
2025-07-04 8:43 ` Linus Walleij
@ 2025-07-06 10:28 ` Jonathan Cameron
1 sibling, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-06 10:28 UTC (permalink / raw)
To: Sakari Ailus
Cc: Linus Walleij, David Lechner, Nuno Sá, Andy Shevchenko,
Gerald Loacker, Barnabás Czémán,
Krzysztof Kozlowski, Neil Armstrong, Waqar Hameed, Hans de Goede,
Peter Zijlstra, Jakob Hauser, David Laight, Al Viro, linux-iio,
linux-kernel
On Fri, 4 Jul 2025 10:54:25 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> diff --git a/drivers/iio/magnetometer/bmc150_magn.c b/drivers/iio/magnetometer/bmc150_magn.c
> index 761daead5ada..53d860e640a9 100644
> --- a/drivers/iio/magnetometer/bmc150_magn.c
> +++ b/drivers/iio/magnetometer/bmc150_magn.c
> @@ -263,7 +263,6 @@ static int bmc150_magn_set_power_state(struct bmc150_magn_data *data, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(data->dev);
> } else {
> - pm_runtime_mark_last_busy(data->dev);
> ret = pm_runtime_put_autosuspend(data->dev);
> }
>
Drop {} in both legs now neither has multiple lines.
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 34/80] iio: light: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 34/80] iio: light: " Sakari Ailus
2025-07-04 8:42 ` Linus Walleij
@ 2025-07-06 10:31 ` Jonathan Cameron
1 sibling, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-06 10:31 UTC (permalink / raw)
To: Sakari Ailus
Cc: Subhajit Ghosh, David Lechner, Nuno Sá, Andy Shevchenko,
Linus Walleij, Julien Stephan, Waqar Hameed, Abhash Jha,
chuguangqing, Shreeya Patel, Marek Vasut, Al Viro,
Vasileios Amoiridis, Per-Daniel Olsson, Javier Carrasco,
linux-iio, linux-kernel
On Fri, 4 Jul 2025 10:54:24 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> diff --git a/drivers/iio/light/isl29028.c b/drivers/iio/light/isl29028.c
> index 0e4284823d44..5ff20d423def 100644
> --- a/drivers/iio/light/isl29028.c
> +++ b/drivers/iio/light/isl29028.c
> @@ -341,7 +341,6 @@ static int isl29028_set_pm_runtime_busy(struct isl29028_chip *chip, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(dev);
> } else {
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> }
Drop {}
> diff --git a/drivers/iio/light/pa12203001.c b/drivers/iio/light/pa12203001.c
> index 8885852bef22..93823421f42f 100644
> --- a/drivers/iio/light/pa12203001.c
> +++ b/drivers/iio/light/pa12203001.c
> @@ -189,7 +189,6 @@ static int pa12203001_set_power_state(struct pa12203001_data *data, bool on,
> ret = pm_runtime_resume_and_get(&data->client->dev);
>
Whilst here drop this random blank line.
> } else {
> - pm_runtime_mark_last_busy(&data->client->dev);
> ret = pm_runtime_put_autosuspend(&data->client->dev);
> }
Drop {}
>
> diff --git a/drivers/iio/light/rpr0521.c b/drivers/iio/light/rpr0521.c
> index c50183f07240..15e2cca22e4d 100644
> --- a/drivers/iio/light/rpr0521.c
> +++ b/drivers/iio/light/rpr0521.c
> @@ -361,7 +361,6 @@ static int rpr0521_set_power_state(struct rpr0521_data *data, bool on,
> if (on) {
> ret = pm_runtime_resume_and_get(&data->client->dev);
> } else {
> - pm_runtime_mark_last_busy(&data->client->dev);
> ret = pm_runtime_put_autosuspend(&data->client->dev);
> }
Drop {}
> if (ret < 0) {
> diff --git a/drivers/iio/light/tsl2583.c b/drivers/iio/light/tsl2583.c
> index fc3b0c4226be..d3a4923e5adc 100644
> --- a/drivers/iio/light/tsl2583.c
> +++ b/drivers/iio/light/tsl2583.c
> @@ -646,7 +646,6 @@ static int tsl2583_set_pm_runtime_busy(struct tsl2583_chip *chip, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(&chip->client->dev);
> } else {
> - pm_runtime_mark_last_busy(&chip->client->dev);
> ret = pm_runtime_put_autosuspend(&chip->client->dev);
> }
Drop {}
>
> diff --git a/drivers/iio/light/us5182d.c b/drivers/iio/light/us5182d.c
> index 61a0957317a1..8f0f85e98f3a 100644
> --- a/drivers/iio/light/us5182d.c
> +++ b/drivers/iio/light/us5182d.c
> @@ -369,7 +369,6 @@ static int us5182d_set_power_state(struct us5182d_data *data, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(&data->client->dev);
> } else {
> - pm_runtime_mark_last_busy(&data->client->dev);
> ret = pm_runtime_put_autosuspend(&data->client->dev);
> }
Drop {}
>
> diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
> index 90e7d4421abf..39e2cf20038a 100644
> --- a/drivers/iio/light/vcnl4000.c
> +++ b/drivers/iio/light/vcnl4000.c
> @@ -581,7 +581,6 @@ static int vcnl4000_set_pm_runtime_state(struct vcnl4000_data *data, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(dev);
> } else {
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> }
Drop {}
>
> diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c
> index 01bc99564f98..079fb49bf73b 100644
> --- a/drivers/iio/light/vcnl4035.c
> +++ b/drivers/iio/light/vcnl4035.c
> @@ -147,7 +147,6 @@ static int vcnl4035_set_pm_runtime_state(struct vcnl4035_data *data, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(dev);
> } else {
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> }
Drop {}
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (83 preceding siblings ...)
2025-07-04 23:39 ` Mark Brown
@ 2025-07-06 23:04 ` Sebastian Reichel
2025-07-07 8:03 ` Bartosz Golaszewski
` (2 subsequent siblings)
87 siblings, 0 replies; 162+ messages in thread
From: Sebastian Reichel @ 2025-07-06 23:04 UTC (permalink / raw)
To: linux-pm, Sakari Ailus; +Cc: linux-kernel, Rafael J. Wysocki
On Fri, 04 Jul 2025 10:52:25 +0300, Sakari Ailus wrote:
> Late last year I posted a set to switch to __pm_runtime_mark_last_busy()
> and gradually get rid of explicit pm_runtime_mark_last_busy() calls in
> drivers, embedding them in the appropriate pm_runtime_*autosuspend*()
> calls. The overall feedback I got at the time was that this is an
> unnecessary intermediate step, and removing the
> pm_runtime_mark_last_busy() calls can be done after adding them to the
> relevant Runtime PM autosuspend related functions. The latter part has
> been done and is present in Rafael's tree at the moment, also see
> <URL:https://lore.kernel.org/linux-pm/CAJZ5v0g7-8UWp6ATOy+=oGdxDaCnfKHBG_+kbiTr+VeuXZsUFQ@mail.gmail.com/>:
>
> [...]
Applied, thanks!
[54/80] power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy() calls
commit: 2453753f395e68af947d9ac6ce37bf0eb40f7123
[55/80] power: supply: twl4030_charger: Remove redundant pm_runtime_mark_last_busy() calls
commit: f9335bb4f5d4f3b913efd5872c2794d027dd85a6
Best regards,
--
Sebastian Reichel <sebastian.reichel@collabora.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* RE: [PATCH 26/80] HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 26/80] HID: intel-thc-hid: " Sakari Ailus
@ 2025-07-07 5:11 ` Xu, Even
0 siblings, 0 replies; 162+ messages in thread
From: Xu, Even @ 2025-07-07 5:11 UTC (permalink / raw)
To: Sakari Ailus, Sun, Xinpeng, Jiri Kosina, Benjamin Tissoires,
Srinivas Pandruvada, Mark Pearson, Wentao Guan, Philipp Stanner
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
> -----Original Message-----
> From: Sakari Ailus <sakari.ailus@linux.intel.com>
> Sent: Friday, July 4, 2025 3:54 PM
> To: Xu, Even <even.xu@intel.com>; Sun, Xinpeng <xinpeng.sun@intel.com>; Jiri
> Kosina <jikos@kernel.org>; Benjamin Tissoires <bentiss@kernel.org>; Srinivas
> Pandruvada <srinivas.pandruvada@linux.intel.com>; Mark Pearson <mpearson-
> lenovo@squebb.ca>; Sakari Ailus <sakari.ailus@linux.intel.com>; Wentao Guan
> <guanwentao@uniontech.com>; Philipp Stanner <phasta@kernel.org>
> Cc: linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH 26/80] HID: intel-thc-hid: Remove redundant
> pm_runtime_mark_last_busy() calls
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call to
> pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here <URL:https://lore.kernel.org/linux-
> pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last busy
> timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
Make sense, Thanks for the change!
Reviewed-by: Even Xu <even.xu@intel.com>
> drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c | 2 -- drivers/hid/intel-
> thc-hid/intel-quicki2c/quicki2c-hid.c | 1 - drivers/hid/intel-thc-hid/intel-
> quickspi/pci-quickspi.c | 2 -- drivers/hid/intel-thc-hid/intel-quickspi/quickspi-
> hid.c | 1 -
> 4 files changed, 6 deletions(-)
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> index e944a6ccb776..599f12d3e657 100644
> --- a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> +++ b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> @@ -328,7 +328,6 @@ static irqreturn_t quicki2c_irq_thread_handler(int irq,
> void *dev_id)
> if (try_recover(qcdev))
> qcdev->state = QUICKI2C_DISABLED;
>
> - pm_runtime_mark_last_busy(qcdev->dev);
> pm_runtime_put_autosuspend(qcdev->dev);
>
> return IRQ_HANDLED;
> @@ -711,7 +710,6 @@ static int quicki2c_probe(struct pci_dev *pdev, const
> struct pci_device_id *id)
> /* Enable runtime power management */
> pm_runtime_use_autosuspend(qcdev->dev);
> pm_runtime_set_autosuspend_delay(qcdev->dev,
> DEFAULT_AUTO_SUSPEND_DELAY_MS);
> - pm_runtime_mark_last_busy(qcdev->dev);
> pm_runtime_put_noidle(qcdev->dev);
> pm_runtime_put_autosuspend(qcdev->dev);
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
> b/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
> index 5c3ec95bb3fd..834a537b6780 100644
> --- a/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
> +++ b/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-hid.c
> @@ -72,7 +72,6 @@ static int quicki2c_hid_raw_request(struct hid_device *hid,
> break;
> }
>
> - pm_runtime_mark_last_busy(qcdev->dev);
> pm_runtime_put_autosuspend(qcdev->dev);
>
> return ret;
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> index 5e5f179dd113..2b518d88645a 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> @@ -335,7 +335,6 @@ static irqreturn_t quickspi_irq_thread_handler(int irq,
> void *dev_id)
> if (try_recover(qsdev))
> qsdev->state = QUICKSPI_DISABLED;
>
> - pm_runtime_mark_last_busy(qsdev->dev);
> pm_runtime_put_autosuspend(qsdev->dev);
>
> return IRQ_HANDLED;
> @@ -670,7 +669,6 @@ static int quickspi_probe(struct pci_dev *pdev,
> /* Enable runtime power management */
> pm_runtime_use_autosuspend(qsdev->dev);
> pm_runtime_set_autosuspend_delay(qsdev->dev,
> DEFAULT_AUTO_SUSPEND_DELAY_MS);
> - pm_runtime_mark_last_busy(qsdev->dev);
> pm_runtime_put_noidle(qsdev->dev);
> pm_runtime_put_autosuspend(qsdev->dev);
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
> b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
> index ad52e402c28a..82c72bfa2795 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-hid.c
> @@ -71,7 +71,6 @@ static int quickspi_hid_raw_request(struct hid_device *hid,
> break;
> }
>
> - pm_runtime_mark_last_busy(qsdev->dev);
> pm_runtime_put_autosuspend(qsdev->dev);
>
> return ret;
> --
> 2.39.5
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 77/80] block: pm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:55 ` [PATCH 77/80] block: pm: " Sakari Ailus
@ 2025-07-07 5:59 ` Christoph Hellwig
0 siblings, 0 replies; 162+ messages in thread
From: Christoph Hellwig @ 2025-07-07 5:59 UTC (permalink / raw)
To: Sakari Ailus; +Cc: Jens Axboe, linux-block, linux-kernel
Sending a single patch out of many to a list makes it unreviable.
That might not matter as a 80 patch series is basically unreviable
anyway.
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (84 preceding siblings ...)
2025-07-06 23:04 ` Sebastian Reichel
@ 2025-07-07 8:03 ` Bartosz Golaszewski
2025-07-07 16:29 ` Mark Brown
2025-07-30 23:40 ` Alexandre Belloni
87 siblings, 0 replies; 162+ messages in thread
From: Bartosz Golaszewski @ 2025-07-07 8:03 UTC (permalink / raw)
To: linux-pm, Sakari Ailus
Cc: Bartosz Golaszewski, linux-kernel, Rafael J. Wysocki
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
On Fri, 04 Jul 2025 10:52:25 +0300, Sakari Ailus wrote:
> Late last year I posted a set to switch to __pm_runtime_mark_last_busy()
> and gradually get rid of explicit pm_runtime_mark_last_busy() calls in
> drivers, embedding them in the appropriate pm_runtime_*autosuspend*()
> calls. The overall feedback I got at the time was that this is an
> unnecessary intermediate step, and removing the
> pm_runtime_mark_last_busy() calls can be done after adding them to the
> relevant Runtime PM autosuspend related functions. The latter part has
> been done and is present in Rafael's tree at the moment, also see
> <URL:https://lore.kernel.org/linux-pm/CAJZ5v0g7-8UWp6ATOy+=oGdxDaCnfKHBG_+kbiTr+VeuXZsUFQ@mail.gmail.com/>:
>
> [...]
Applied, thanks!
[15/80] gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
https://git.kernel.org/brgl/linux/c/2fd13c8e5be15369d157da3277ac7407fa73f90a
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 01/80] accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:53 ` [PATCH 01/80] accel/ivpu: " Sakari Ailus
@ 2025-07-07 8:29 ` Jacek Lawrynowicz
0 siblings, 0 replies; 162+ messages in thread
From: Jacek Lawrynowicz @ 2025-07-07 8:29 UTC (permalink / raw)
To: Sakari Ailus, Maciej Falkowski, Oded Gabbay; +Cc: dri-devel, linux-kernel
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
On 7/4/2025 9:53 AM, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/accel/ivpu/ivpu_job.c | 1 -
> drivers/accel/ivpu/ivpu_pm.c | 2 --
> 2 files changed, 3 deletions(-)
>
> diff --git a/drivers/accel/ivpu/ivpu_job.c b/drivers/accel/ivpu/ivpu_job.c
> index 060f1fc031d3..05a1a768e1c9 100644
> --- a/drivers/accel/ivpu/ivpu_job.c
> +++ b/drivers/accel/ivpu/ivpu_job.c
> @@ -1049,6 +1049,5 @@ void ivpu_context_abort_work_fn(struct work_struct *work)
> mutex_unlock(&vdev->submitted_jobs_lock);
>
> runtime_put:
> - pm_runtime_mark_last_busy(vdev->drm.dev);
> pm_runtime_put_autosuspend(vdev->drm.dev);
> }
> diff --git a/drivers/accel/ivpu/ivpu_pm.c b/drivers/accel/ivpu/ivpu_pm.c
> index eacda1dbe840..761b4d7e1a5a 100644
> --- a/drivers/accel/ivpu/ivpu_pm.c
> +++ b/drivers/accel/ivpu/ivpu_pm.c
> @@ -359,7 +359,6 @@ int ivpu_rpm_get(struct ivpu_device *vdev)
>
> void ivpu_rpm_put(struct ivpu_device *vdev)
> {
> - pm_runtime_mark_last_busy(vdev->drm.dev);
> pm_runtime_put_autosuspend(vdev->drm.dev);
> }
>
> @@ -428,7 +427,6 @@ void ivpu_pm_enable(struct ivpu_device *vdev)
> struct device *dev = vdev->drm.dev;
>
> pm_runtime_allow(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 06/80] clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 06/80] clk: imx: " Sakari Ailus
@ 2025-07-07 8:30 ` Peng Fan
2025-07-24 21:37 ` Stephen Boyd
1 sibling, 0 replies; 162+ messages in thread
From: Peng Fan @ 2025-07-07 8:30 UTC (permalink / raw)
To: Sakari Ailus
Cc: Abel Vesa, Peng Fan, Michael Turquette, Stephen Boyd, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, linux-clk,
imx, linux-arm-kernel, linux-kernel
On Fri, Jul 04, 2025 at 10:54:00AM +0300, Sakari Ailus wrote:
>pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
>pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
>to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
>pm_runtime_mark_last_busy().
>
>Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 15/80] gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 15/80] gpio: arizona: " Sakari Ailus
@ 2025-07-07 8:46 ` Charles Keepax
0 siblings, 0 replies; 162+ messages in thread
From: Charles Keepax @ 2025-07-07 8:46 UTC (permalink / raw)
To: Sakari Ailus
Cc: Linus Walleij, Bartosz Golaszewski, patches, linux-gpio,
linux-kernel
On Fri, Jul 04, 2025 at 10:54:08AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 42/80] mfd: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 42/80] mfd: " Sakari Ailus
@ 2025-07-07 8:47 ` Charles Keepax
2025-07-23 8:42 ` (subset) " Lee Jones
1 sibling, 0 replies; 162+ messages in thread
From: Charles Keepax @ 2025-07-07 8:47 UTC (permalink / raw)
To: Sakari Ailus
Cc: Lee Jones, James Ogletree, Fred Treven, Ben Bright, David Rhodes,
Richard Fitzgerald, patches, linux-kernel, linux-sound
On Fri, Jul 04, 2025 at 10:54:32AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 71/80] ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 71/80] ASoC: codecs: " Sakari Ailus
@ 2025-07-07 9:16 ` Charles Keepax
0 siblings, 0 replies; 162+ messages in thread
From: Charles Keepax @ 2025-07-07 9:16 UTC (permalink / raw)
To: Sakari Ailus
Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
David Rhodes, Richard Fitzgerald, Oder Chiou, Shenghao Ding,
Kevin Lu, Baojun Xu, Srinivas Kandagatla, Cezary Rojewski,
Amadeusz Sławiński, Krzysztof Kozlowski, patches,
linux-sound, linux-kernel, linux-arm-msm
On Fri, Jul 04, 2025 at 10:54:56AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> sound/soc/codecs/arizona-jack.c | 2 --
> sound/soc/codecs/cs35l41.c | 2 --
> sound/soc/codecs/cs35l45.c | 1 -
> sound/soc/codecs/cs35l56-sdw.c | 1 -
> sound/soc/codecs/cs35l56.c | 1 -
> sound/soc/codecs/cs42l42.c | 1 -
> sound/soc/codecs/cs42l43-jack.c | 5 -----
> sound/soc/codecs/cs42l43.c | 2 --
> sound/soc/codecs/cs48l32.c | 1 -
For the Cirrus/Wolfson bits:
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Thanks,
Charles
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 67/80] usb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 67/80] usb: " Sakari Ailus
2025-07-04 9:11 ` Thierry Reding
@ 2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-21 2:25 ` Peter Chen (CIX)
2 siblings, 0 replies; 162+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07 9:35 UTC (permalink / raw)
To: Sakari Ailus, Peter Chen, Pawel Laszczak, Roger Quadros,
Greg Kroah-Hartman, Thinh Nguyen, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Michal Simek,
Chunfeng Yun, Mathias Nyman, Matthias Brugger, Thierry Reding,
Jonathan Hunter, Bastien Nocera, Bin Liu
Cc: linux-usb, linux-kernel, imx, linux-arm-kernel, linux-mediatek,
linux-tegra, linux-omap
Il 04/07/25 09:54, Sakari Ailus ha scritto:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
For MediaTek MTU3:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 61/80] spi: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 61/80] spi: " Sakari Ailus
@ 2025-07-07 9:35 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 162+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07 9:35 UTC (permalink / raw)
To: Sakari Ailus, Mark Brown, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Frank Li, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Matthias Brugger, Han Xu,
Haibo Chen, Yogesh Gaur, Heiko Stuebner, Andi Shyti,
Tudor Ambarus, Krzysztof Kozlowski, Alim Akhtar, Orson Zhai,
Baolin Wang, Chunyan Zhang, Maxime Coquelin, Alexandre Torgue,
Alain Volmat, Michal Simek
Cc: linux-spi, linux-arm-kernel, linux-kernel, imx, linux-mediatek,
linux-rockchip, linux-samsung-soc, linux-stm32
Il 04/07/25 09:54, Sakari Ailus ha scritto:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
For MediaTek:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 05/80] hwrng: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:53 ` [PATCH 05/80] hwrng: " Sakari Ailus
@ 2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-18 10:58 ` Herbert Xu
1 sibling, 0 replies; 162+ messages in thread
From: AngeloGioacchino Del Regno @ 2025-07-07 9:35 UTC (permalink / raw)
To: Sakari Ailus, Olivia Mackall, Herbert Xu, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Hadar Gat, Sean Wang,
Matthias Brugger, Avi Fishman, Tomer Maimon, Tali Perry,
Patrick Venture, Nancy Yuen, Benjamin Fair, Daniel Golle,
Aurelien Jarno, Nicolas Frattaroli, Heiko Stuebner,
Maxime Coquelin, Alexandre Torgue, Uwe Kleine-König,
Marek Vasut, Gatien Chevallier
Cc: linux-crypto, linux-arm-kernel, linux-kernel, linux-mediatek,
openbmc, linux-rockchip, linux-stm32
Il 04/07/25 09:53, Sakari Ailus ha scritto:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
For MediaTek:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
` (4 preceding siblings ...)
2025-07-04 15:16 ` Sean Young
@ 2025-07-07 15:57 ` Dave Stevenson
2025-07-09 8:43 ` Benjamin Gaignard
6 siblings, 0 replies; 162+ messages in thread
From: Dave Stevenson @ 2025-07-07 15:57 UTC (permalink / raw)
To: Sakari Ailus
Cc: Tommaso Merciai, Martin Hecht, Mauro Carvalho Chehab,
Sebastian Reichel, Alain Volmat, Kieran Bingham, Umang Jain,
Manivannan Sadhasivam, Laurent Pinchart, Michael Riesch,
Mikhail Rudenko, Steve Longerbeam, Jacopo Mondi, Nicholas Roth,
Benjamin Mugnier, Sylvain Petinot, Paul Elder, Matt Ranostay,
Nas Chung, Jackson Lee, Dmitry Osipenko, Thierry Reding,
Jonathan Hunter, Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Raspberry Pi Kernel Maintenance,
Florian Fainelli, Broadcom internal kernel review list,
Nicolas Dufresne, Benjamin Gaignard, Philipp Zabel, Sean Young,
Hans Verkuil, Matthias Fend, Marco Felsch, Tomi Valkeinen,
Ricardo Ribalda, linux-media, linux-kernel, linux-tegra,
linux-arm-msm, linux-rpi-kernel, linux-arm-kernel, linux-rockchip
Hi Sakari
On Fri, 4 Jul 2025 at 08:54, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
[...]
> drivers/media/i2c/imx219.c | 2 --
Acked-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (85 preceding siblings ...)
2025-07-07 8:03 ` Bartosz Golaszewski
@ 2025-07-07 16:29 ` Mark Brown
2025-07-30 23:40 ` Alexandre Belloni
87 siblings, 0 replies; 162+ messages in thread
From: Mark Brown @ 2025-07-07 16:29 UTC (permalink / raw)
To: linux-pm, Sakari Ailus; +Cc: linux-kernel, Rafael J. Wysocki
On Fri, 04 Jul 2025 10:52:25 +0300, Sakari Ailus wrote:
> Sakari Ailus (80):
> accel/ivpu: Remove redundant pm_runtime_mark_last_busy() calls
> accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
> Bluetooth: Remove redundant pm_runtime_mark_last_busy() calls
> bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
> hwrng: Remove redundant pm_runtime_mark_last_busy() calls
> clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
> clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> crypto: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: at_xdmac: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: pl330: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: qcom: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy()
> calls
> dmaengine: ti: Remove redundant pm_runtime_mark_last_busy() calls
> dmaengine: zynqmp_dma: Remove redundant pm_runtime_mark_last_busy()
> calls
> gpio: arizona: Remove redundant pm_runtime_mark_last_busy() calls
> drm/amd: Remove redundant pm_runtime_mark_last_busy() calls
> drm/nouveau: Remove redundant pm_runtime_mark_last_busy() calls
> drm/radeon: Remove redundant pm_runtime_mark_last_busy() calls
> drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
> drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
> HSI: omap_ssi_port: Remove redundant pm_runtime_mark_last_busy() calls
> stm class: Remove redundant pm_runtime_mark_last_busy() calls
> i2c: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
> i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
> HID: intel-thc-hid: Remove redundant pm_runtime_mark_last_busy() calls
> iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
> iio: adc: Remove redundant pm_runtime_mark_last_busy() calls
> iio: chemical: Remove redundant pm_runtime_mark_last_busy() calls
> iio: common: Remove redundant pm_runtime_mark_last_busy() calls
> iio: dac: Remove redundant pm_runtime_mark_last_busy() calls
> iio: gyro: Remove redundant pm_runtime_mark_last_busy() calls
> iio: imu: Remove redundant pm_runtime_mark_last_busy() calls
> iio: light: Remove redundant pm_runtime_mark_last_busy() calls
> iio: magnetometer: Remove redundant pm_runtime_mark_last_busy() calls
> iio: pressure: Remove redundant pm_runtime_mark_last_busy() calls
> iio: proximity: Remove redundant pm_runtime_mark_last_busy() calls
> iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
> Input: omap4-keypad: Remove redundant pm_runtime_mark_last_busy()
> calls
> Input: cs40l50: Remove redundant pm_runtime_mark_last_busy() calls
> media: Remove redundant pm_runtime_mark_last_busy() calls
> mfd: Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> mmc: Remove redundant pm_runtime_mark_last_busy() calls
> mtd: rawnand: gpmi: Remove redundant pm_runtime_mark_last_busy() calls
> net: ethernet: Remove redundant pm_runtime_mark_last_busy() calls
> net: ipa: Remove redundant pm_runtime_mark_last_busy() calls
> net: wireless: Remove redundant pm_runtime_mark_last_busy() calls
> net: wwan: Remove redundant pm_runtime_mark_last_busy() calls
> nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
> PCI/portdrv: Remove redundant pm_runtime_mark_last_busy() calls
> phy: motorola: phy-mapphone-mdm6600: Remove redundant
> pm_runtime_mark_last_busy() calls
> phy: ti: phy-twl4030-usb: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: bq24190: Remove redundant pm_runtime_mark_last_busy()
> calls
> power: supply: twl4030_charger: Remove redundant
> pm_runtime_mark_last_busy() calls
> pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
> regulator: stm32-vrefbuf: Remove redundant pm_runtime_mark_last_busy()
> calls
> remoteproc: omap: Remove redundant pm_runtime_mark_last_busy() calls
> slimbus: Remove redundant pm_runtime_mark_last_busy() calls
> soundwire: Remove redundant pm_runtime_mark_last_busy() calls
> spi: Remove redundant pm_runtime_mark_last_busy() calls
> staging: greybus: Remove redundant pm_runtime_mark_last_busy() calls
> greybus: Remove redundant pm_runtime_mark_last_busy() calls
> media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
> thunderbolt: Remove redundant pm_runtime_mark_last_busy() calls
> serial: Remove redundant pm_runtime_mark_last_busy() calls
> usb: Remove redundant pm_runtime_mark_last_busy() calls
> w1: omap-hdq: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: hda: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: atmel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: codecs: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: Intel: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: component: Remove redundant pm_runtime_mark_last_busy() calls
> ASoC: SOF: Remove redundant pm_runtime_mark_last_busy() calls
> ALSA: intel_hdmi: Remove redundant pm_runtime_mark_last_busy() calls
> soc: apple: mailbox: Remove redundant pm_runtime_mark_last_busy()
> calls
> block: pm: Remove redundant pm_runtime_mark_last_busy() calls
> Input: cyapa - Remove redundant pm_runtime_mark_last_busy() calls
> mei: Remove redundant pm_runtime_mark_last_busy() calls
> scsi: block: pm: Remove redundant pm_runtime_mark_last_busy() calls
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next
Thanks!
[61/80] spi: Remove redundant pm_runtime_mark_last_busy() calls
commit: 2fca750160f29015ab1109bb478537a4e415f7cd
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 02/80] accel/amdxdna: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:53 ` [PATCH 02/80] accel/amdxdna: " Sakari Ailus
@ 2025-07-07 16:52 ` Lizhi Hou
0 siblings, 0 replies; 162+ messages in thread
From: Lizhi Hou @ 2025-07-07 16:52 UTC (permalink / raw)
To: Sakari Ailus, Min Ma, Oded Gabbay; +Cc: dri-devel, linux-kernel
Reviewed-by: Lizhi Hou <lizhi.hou@amd.com>
On 7/4/25 00:53, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/accel/amdxdna/amdxdna_pci_drv.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/accel/amdxdna/amdxdna_pci_drv.c b/drivers/accel/amdxdna/amdxdna_pci_drv.c
> index f2bf1d374cc7..c7083a657333 100644
> --- a/drivers/accel/amdxdna/amdxdna_pci_drv.c
> +++ b/drivers/accel/amdxdna/amdxdna_pci_drv.c
> @@ -101,7 +101,6 @@ static int amdxdna_drm_open(struct drm_device *ddev, struct drm_file *filp)
> failed:
> kfree(client);
> put_rpm:
> - pm_runtime_mark_last_busy(ddev->dev);
> pm_runtime_put_autosuspend(ddev->dev);
>
> return ret;
> @@ -125,7 +124,6 @@ static void amdxdna_drm_close(struct drm_device *ddev, struct drm_file *filp)
>
> XDNA_DBG(xdna, "pid %d closed", client->pid);
> kfree(client);
> - pm_runtime_mark_last_busy(ddev->dev);
> pm_runtime_put_autosuspend(ddev->dev);
> }
>
> @@ -296,7 +294,6 @@ static int amdxdna_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> goto failed_sysfs_fini;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> return 0;
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 12:04 ` Mark Brown
@ 2025-07-08 10:01 ` Sakari Ailus
0 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-08 10:01 UTC (permalink / raw)
To: Mark Brown; +Cc: linux-pm, linux-kernel, Rafael J. Wysocki
Hi Mark,
On Fri, Jul 04, 2025 at 01:04:51PM +0100, Mark Brown wrote:
> On Fri, Jul 04, 2025 at 10:52:25AM +0300, Sakari Ailus wrote:
>
> > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> > pm-runtime-6.17-rc1
>
> > So before merging these, please pull Rafael's tag. My thinking is indeed
> > these would be best merged via the respective trees as there's some
> > potential for conflicts (there are around 920 call sites modified here).
>
> Please if you're doing things like this in future could you send
> individual serieses to each subsystem - it just makes everything
> clearer, for those of us with multiple subsystems it makes life easier
> and a series this big causes scaling issues with the tooling (it took
> several minutes for b4 to figure out a base...).
Thanks for the feedback.
I guess at this phase it's really just mechanical and the added benefit of
having a single cover letter is minimal. Right now it looks like only a few
subsystems need v2 of this (drm, media and iio).
--
Kind regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 38/80] iio: temperature: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-06 10:26 ` Jonathan Cameron
@ 2025-07-08 10:52 ` Sakari Ailus
0 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-08 10:52 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Crt Mori, David Lechner, Nuno Sá, Andy Shevchenko, linux-iio,
linux-kernel
Hi Jonathan,
On Sun, Jul 06, 2025 at 11:26:31AM +0100, Jonathan Cameron wrote:
> On Sun, 6 Jul 2025 11:25:02 +0100
> Jonathan Cameron <jic23@kernel.org> wrote:
>
> > On Fri, 4 Jul 2025 18:00:02 +0200
> > Crt Mori <cmo@melexis.com> wrote:
> >
> > > If that is the case then:
> > > Acked-by: Crt Mori<cmo@melexis.com>
> > >
> > >
> > >
> > > On Fri, 4 Jul 2025 at 09:54, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> > > >
> > > > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > > > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > > > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > > > pm_runtime_mark_last_busy().
> > > >
> > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > No {} issues in here so applied to the testing branch of iio.git.
> > I'll push it out as togreg later in the week at which point linux-next
> > will see it.
> >
> Actually - change of plan. I'll wait on your set with the others fixed
> up as I don't want to pull in the pm-runtime change if I'm only going
> to have a few of these ready by the end of the cycle. I don't mind merging
> that with the whole lot if they are ready though.
Thanks for the review. I'll send v2 of the iio-related patches soonish.
--
Kind regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 20/80] drivers: drm: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
` (4 preceding siblings ...)
2025-07-04 10:24 ` Maíra Canal
@ 2025-07-08 14:01 ` Luca Ceresoli
5 siblings, 0 replies; 162+ messages in thread
From: Luca Ceresoli @ 2025-07-08 14:01 UTC (permalink / raw)
To: Sakari Ailus
Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Douglas Anderson,
Lucas Stach, Russell King, Christian Gmeiner, Inki Dae,
Seung-Woo Kim, Kyungmin Park, Krzysztof Kozlowski, Alim Akhtar,
Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
Laurentiu Palcu, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, Qiang Yu, Jessica Zhang, Boris Brezillon,
Steven Price, Liviu Dudau, Thierry Reding, Mikko Perttunen,
Jonathan Hunter, Jyri Sarha, Tomi Valkeinen, Dave Stevenson,
Maíra Canal, Raspberry Pi Kernel Maintenance,
Dmitry Baryshkov, Damon Ding, Ayushi Makhija,
Uwe Kleine-König, Chen-Yu Tsai, dri-devel, linux-kernel,
etnaviv, linux-arm-kernel, linux-samsung-soc, intel-gfx, imx,
lima, linux-tegra
On Fri, 4 Jul 2025 10:54:13 +0300
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
With the cleanups required by Laurent and Maíra:
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 59/80] slimbus: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 59/80] slimbus: " Sakari Ailus
@ 2025-07-09 6:41 ` Srinivas Kandagatla
0 siblings, 0 replies; 162+ messages in thread
From: Srinivas Kandagatla @ 2025-07-09 6:41 UTC (permalink / raw)
To: Sakari Ailus, Srinivas Kandagatla
Cc: linux-sound, linux-kernel, linux-arm-msm
On 7/4/25 8:54 AM, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Acked-by: Srinivas Kandagatla <srini@kernel.org>
--srini
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/slimbus/core.c | 1 -
> drivers/slimbus/messaging.c | 2 --
> drivers/slimbus/qcom-ctrl.c | 1 -
> 3 files changed, 4 deletions(-)
>
> diff --git a/drivers/slimbus/core.c b/drivers/slimbus/core.c
> index 005fa2ef100f..31751ee4e400 100644
> --- a/drivers/slimbus/core.c
> +++ b/drivers/slimbus/core.c
> @@ -504,7 +504,6 @@ int slim_device_report_present(struct slim_controller *ctrl,
> ret = slim_device_alloc_laddr(sbdev, true);
>
> slimbus_not_active:
> - pm_runtime_mark_last_busy(ctrl->dev);
> pm_runtime_put_autosuspend(ctrl->dev);
> return ret;
> }
> diff --git a/drivers/slimbus/messaging.c b/drivers/slimbus/messaging.c
> index 6f01d944f9c6..44197493010e 100644
> --- a/drivers/slimbus/messaging.c
> +++ b/drivers/slimbus/messaging.c
> @@ -47,7 +47,6 @@ void slim_msg_response(struct slim_controller *ctrl, u8 *reply, u8 tid, u8 len)
> complete(txn->comp);
>
> /* Remove runtime-pm vote now that response was received for TID txn */
> - pm_runtime_mark_last_busy(ctrl->dev);
> pm_runtime_put_autosuspend(ctrl->dev);
> }
> EXPORT_SYMBOL_GPL(slim_msg_response);
> @@ -171,7 +170,6 @@ int slim_do_transfer(struct slim_controller *ctrl, struct slim_msg_txn *txn)
> * remove runtime-pm vote if this was TX only, or
> * if there was error during this transaction
> */
> - pm_runtime_mark_last_busy(ctrl->dev);
> pm_runtime_put_autosuspend(ctrl->dev);
> }
> return ret;
> diff --git a/drivers/slimbus/qcom-ctrl.c b/drivers/slimbus/qcom-ctrl.c
> index ab344f7472f2..880cf3081a20 100644
> --- a/drivers/slimbus/qcom-ctrl.c
> +++ b/drivers/slimbus/qcom-ctrl.c
> @@ -695,7 +695,6 @@ static int qcom_slim_resume(struct device *dev)
> dev_dbg(dev, "system resume");
> ret = qcom_slim_runtime_resume(dev);
> if (!ret) {
> - pm_runtime_mark_last_busy(dev);
> pm_request_autosuspend(dev);
> }
> return ret;
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 41/80] media: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
` (5 preceding siblings ...)
2025-07-07 15:57 ` Dave Stevenson
@ 2025-07-09 8:43 ` Benjamin Gaignard
6 siblings, 0 replies; 162+ messages in thread
From: Benjamin Gaignard @ 2025-07-09 8:43 UTC (permalink / raw)
To: Sakari Ailus, Tommaso Merciai, Martin Hecht,
Mauro Carvalho Chehab, Sebastian Reichel, Alain Volmat,
Dave Stevenson, Kieran Bingham, Umang Jain, Manivannan Sadhasivam,
Laurent Pinchart, Michael Riesch, Mikhail Rudenko,
Steve Longerbeam, Jacopo Mondi, Nicholas Roth, Benjamin Mugnier,
Sylvain Petinot, Paul Elder, Matt Ranostay, Nas Chung,
Jackson Lee, Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
Vikash Garodia, Dikshita Agarwal, Abhinav Kumar,
Bryan O'Donoghue, Raspberry Pi Kernel Maintenance,
Florian Fainelli, Broadcom internal kernel review list,
Nicolas Dufresne, Philipp Zabel, Sean Young, Hans Verkuil,
Matthias Fend, Marco Felsch, Tomi Valkeinen, Ricardo Ribalda
Cc: linux-media, linux-kernel, linux-tegra, linux-arm-msm,
linux-rpi-kernel, linux-arm-kernel, linux-rockchip
Le 04/07/2025 à 09:54, Sakari Ailus a écrit :
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/media/i2c/alvium-csi2.c | 1 -
> drivers/media/i2c/ccs/ccs-core.c | 4 ----
> drivers/media/i2c/dw9768.c | 1 -
> drivers/media/i2c/gc0308.c | 3 ---
> drivers/media/i2c/gc2145.c | 3 ---
> drivers/media/i2c/imx219.c | 2 --
> drivers/media/i2c/imx283.c | 3 ---
> drivers/media/i2c/imx290.c | 3 ---
> drivers/media/i2c/imx296.c | 1 -
> drivers/media/i2c/imx415.c | 1 -
> drivers/media/i2c/mt9m114.c | 6 ------
> drivers/media/i2c/ov4689.c | 3 ---
> drivers/media/i2c/ov5640.c | 4 ----
> drivers/media/i2c/ov5645.c | 3 ---
> drivers/media/i2c/ov64a40.c | 4 ----
> drivers/media/i2c/ov8858.c | 2 --
> drivers/media/i2c/st-mipid02.c | 2 --
> drivers/media/i2c/tc358746.c | 5 -----
> drivers/media/i2c/thp7312.c | 4 ----
> drivers/media/i2c/vd55g1.c | 4 ----
> drivers/media/i2c/vd56g3.c | 4 ----
> drivers/media/i2c/video-i2c.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 4 ----
> drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c | 5 -----
> drivers/media/platform/nvidia/tegra-vde/h264.c | 2 --
> drivers/media/platform/qcom/iris/iris_hfi_queue.c | 1 -
> drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 2 --
> drivers/media/platform/verisilicon/hantro_drv.c | 1 -
Reviewed-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> drivers/media/rc/gpio-ir-recv.c | 1 -
> 29 files changed, 83 deletions(-)
>
> diff --git a/drivers/media/i2c/alvium-csi2.c b/drivers/media/i2c/alvium-csi2.c
> index 05b708bd0a64..1f088acecf36 100644
> --- a/drivers/media/i2c/alvium-csi2.c
> +++ b/drivers/media/i2c/alvium-csi2.c
> @@ -1841,7 +1841,6 @@ static int alvium_s_stream(struct v4l2_subdev *sd, int enable)
>
> } else {
> alvium_set_stream_mipi(alvium, enable);
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
> index 487bcabb4a19..3316639b695e 100644
> --- a/drivers/media/i2c/ccs/ccs-core.c
> +++ b/drivers/media/i2c/ccs/ccs-core.c
> @@ -788,7 +788,6 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
> }
>
> if (pm_status > 0) {
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> @@ -1914,7 +1913,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
> if (!enable) {
> ccs_stop_streaming(sensor);
> sensor->streaming = false;
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return 0;
> @@ -1929,7 +1927,6 @@ static int ccs_set_stream(struct v4l2_subdev *subdev, int enable)
> rval = ccs_start_streaming(sensor);
> if (rval < 0) {
> sensor->streaming = false;
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> @@ -2677,7 +2674,6 @@ nvm_show(struct device *dev, struct device_attribute *attr, char *buf)
> return -ENODEV;
> }
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> /*
> diff --git a/drivers/media/i2c/dw9768.c b/drivers/media/i2c/dw9768.c
> index 3a4d100b9199..d434721ba8ed 100644
> --- a/drivers/media/i2c/dw9768.c
> +++ b/drivers/media/i2c/dw9768.c
> @@ -374,7 +374,6 @@ static int dw9768_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
>
> static int dw9768_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
> {
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_autosuspend(sd->dev);
>
> return 0;
> diff --git a/drivers/media/i2c/gc0308.c b/drivers/media/i2c/gc0308.c
> index 069f42785b3c..cbcda0e18ff1 100644
> --- a/drivers/media/i2c/gc0308.c
> +++ b/drivers/media/i2c/gc0308.c
> @@ -974,7 +974,6 @@ static int gc0308_s_ctrl(struct v4l2_ctrl *ctrl)
> if (ret)
> dev_err(gc0308->dev, "failed to set control: %d\n", ret);
>
> - pm_runtime_mark_last_busy(gc0308->dev);
> pm_runtime_put_autosuspend(gc0308->dev);
>
> return ret;
> @@ -1157,14 +1156,12 @@ static int gc0308_start_stream(struct gc0308 *gc0308)
> return 0;
>
> disable_pm:
> - pm_runtime_mark_last_busy(gc0308->dev);
> pm_runtime_put_autosuspend(gc0308->dev);
> return ret;
> }
>
> static int gc0308_stop_stream(struct gc0308 *gc0308)
> {
> - pm_runtime_mark_last_busy(gc0308->dev);
> pm_runtime_put_autosuspend(gc0308->dev);
> return 0;
> }
> diff --git a/drivers/media/i2c/gc2145.c b/drivers/media/i2c/gc2145.c
> index ba02161d46e7..559a851669aa 100644
> --- a/drivers/media/i2c/gc2145.c
> +++ b/drivers/media/i2c/gc2145.c
> @@ -963,7 +963,6 @@ static int gc2145_enable_streams(struct v4l2_subdev *sd,
> return 0;
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> return ret;
> }
> @@ -985,7 +984,6 @@ static int gc2145_disable_streams(struct v4l2_subdev *sd,
> if (ret)
> dev_err(&client->dev, "%s failed to write regs\n", __func__);
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> @@ -1193,7 +1191,6 @@ static int gc2145_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c
> index 3b4f68543342..3faf48f34af4 100644
> --- a/drivers/media/i2c/imx219.c
> +++ b/drivers/media/i2c/imx219.c
> @@ -771,7 +771,6 @@ static int imx219_enable_streams(struct v4l2_subdev *sd,
> return 0;
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> return ret;
> }
> @@ -793,7 +792,6 @@ static int imx219_disable_streams(struct v4l2_subdev *sd,
> __v4l2_ctrl_grab(imx219->vflip, false);
> __v4l2_ctrl_grab(imx219->hflip, false);
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return ret;
> diff --git a/drivers/media/i2c/imx283.c b/drivers/media/i2c/imx283.c
> index da618c8cbadc..67e8bb432d10 100644
> --- a/drivers/media/i2c/imx283.c
> +++ b/drivers/media/i2c/imx283.c
> @@ -1143,7 +1143,6 @@ static int imx283_enable_streams(struct v4l2_subdev *sd,
> return 0;
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(imx283->dev);
> pm_runtime_put_autosuspend(imx283->dev);
>
> return ret;
> @@ -1163,7 +1162,6 @@ static int imx283_disable_streams(struct v4l2_subdev *sd,
> if (ret)
> dev_err(imx283->dev, "Failed to stop stream\n");
>
> - pm_runtime_mark_last_busy(imx283->dev);
> pm_runtime_put_autosuspend(imx283->dev);
>
> return ret;
> @@ -1558,7 +1556,6 @@ static int imx283_probe(struct i2c_client *client)
> * Decrease the PM usage count. The device will get suspended after the
> * autosuspend delay, turning the power off.
> */
> - pm_runtime_mark_last_busy(imx283->dev);
> pm_runtime_put_autosuspend(imx283->dev);
>
> return 0;
> diff --git a/drivers/media/i2c/imx290.c b/drivers/media/i2c/imx290.c
> index fbf7eba3d71d..970a8d89a3e7 100644
> --- a/drivers/media/i2c/imx290.c
> +++ b/drivers/media/i2c/imx290.c
> @@ -869,7 +869,6 @@ static int imx290_set_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(imx290->dev);
> pm_runtime_put_autosuspend(imx290->dev);
>
> return ret;
> @@ -1099,7 +1098,6 @@ static int imx290_set_stream(struct v4l2_subdev *sd, int enable)
> }
> } else {
> imx290_stop_streaming(imx290);
> - pm_runtime_mark_last_busy(imx290->dev);
> pm_runtime_put_autosuspend(imx290->dev);
> }
>
> @@ -1295,7 +1293,6 @@ static int imx290_subdev_init(struct imx290 *imx290)
> */
> v4l2_i2c_subdev_init(&imx290->sd, client, &imx290_subdev_ops);
> imx290->sd.dev = imx290->dev;
> - pm_runtime_mark_last_busy(imx290->dev);
> pm_runtime_put_autosuspend(imx290->dev);
>
> imx290->sd.internal_ops = &imx290_internal_ops;
> diff --git a/drivers/media/i2c/imx296.c b/drivers/media/i2c/imx296.c
> index f3bec16b527c..61116f4e3f76 100644
> --- a/drivers/media/i2c/imx296.c
> +++ b/drivers/media/i2c/imx296.c
> @@ -604,7 +604,6 @@ static int imx296_s_stream(struct v4l2_subdev *sd, int enable)
> if (!enable) {
> ret = imx296_stream_off(sensor);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> goto unlock;
> diff --git a/drivers/media/i2c/imx415.c b/drivers/media/i2c/imx415.c
> index 278e743646ea..276bf4d6f39d 100644
> --- a/drivers/media/i2c/imx415.c
> +++ b/drivers/media/i2c/imx415.c
> @@ -952,7 +952,6 @@ static int imx415_s_stream(struct v4l2_subdev *sd, int enable)
> if (!enable) {
> ret = imx415_stream_off(sensor);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> goto unlock;
> diff --git a/drivers/media/i2c/mt9m114.c b/drivers/media/i2c/mt9m114.c
> index 3f540ca40f3c..aa3fd6c6c76c 100644
> --- a/drivers/media/i2c/mt9m114.c
> +++ b/drivers/media/i2c/mt9m114.c
> @@ -974,7 +974,6 @@ static int mt9m114_start_streaming(struct mt9m114 *sensor,
> return 0;
>
> error:
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -988,7 +987,6 @@ static int mt9m114_stop_streaming(struct mt9m114 *sensor)
>
> ret = mt9m114_set_state(sensor, MT9M114_SYS_STATE_ENTER_SUSPEND);
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -1046,7 +1044,6 @@ static int mt9m114_pa_g_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -1113,7 +1110,6 @@ static int mt9m114_pa_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -1565,7 +1561,6 @@ static int mt9m114_ifp_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->client->dev);
> pm_runtime_put_autosuspend(&sensor->client->dev);
>
> return ret;
> @@ -2472,7 +2467,6 @@ static int mt9m114_probe(struct i2c_client *client)
> * Decrease the PM usage count. The device will get suspended after the
> * autosuspend delay, turning the power off.
> */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov4689.c b/drivers/media/i2c/ov4689.c
> index 1c3a449f9354..7d740ad3926f 100644
> --- a/drivers/media/i2c/ov4689.c
> +++ b/drivers/media/i2c/ov4689.c
> @@ -497,7 +497,6 @@ static int ov4689_s_stream(struct v4l2_subdev *sd, int on)
> } else {
> cci_write(ov4689->regmap, OV4689_REG_CTRL_MODE,
> OV4689_MODE_SW_STANDBY, NULL);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
>
> @@ -702,7 +701,6 @@ static int ov4689_set_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -999,7 +997,6 @@ static int ov4689_probe(struct i2c_client *client)
> goto err_clean_subdev_pm;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
> index 0dae0438aa80..84198613381d 100644
> --- a/drivers/media/i2c/ov5640.c
> +++ b/drivers/media/i2c/ov5640.c
> @@ -3341,7 +3341,6 @@ static int ov5640_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
> pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
>
> return 0;
> @@ -3417,7 +3416,6 @@ static int ov5640_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
> pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
>
> return ret;
> @@ -3754,7 +3752,6 @@ static int ov5640_s_stream(struct v4l2_subdev *sd, int enable)
> mutex_unlock(&sensor->lock);
>
> if (!enable || ret) {
> - pm_runtime_mark_last_busy(&sensor->i2c_client->dev);
> pm_runtime_put_autosuspend(&sensor->i2c_client->dev);
> }
>
> @@ -3965,7 +3962,6 @@ static int ov5640_probe(struct i2c_client *client)
>
> pm_runtime_set_autosuspend_delay(dev, 1000);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov5645.c b/drivers/media/i2c/ov5645.c
> index 004d0ee5c3f5..58c846a44376 100644
> --- a/drivers/media/i2c/ov5645.c
> +++ b/drivers/media/i2c/ov5645.c
> @@ -808,7 +808,6 @@ static int ov5645_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(ov5645->dev);
> pm_runtime_put_autosuspend(ov5645->dev);
>
> return ret;
> @@ -979,7 +978,6 @@ static int ov5645_disable_streams(struct v4l2_subdev *sd,
> OV5645_SYSTEM_CTRL0_STOP);
>
> rpm_put:
> - pm_runtime_mark_last_busy(ov5645->dev);
> pm_runtime_put_autosuspend(ov5645->dev);
>
> return ret;
> @@ -1196,7 +1194,6 @@ static int ov5645_probe(struct i2c_client *client)
>
> pm_runtime_set_autosuspend_delay(dev, 1000);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov64a40.c b/drivers/media/i2c/ov64a40.c
> index a5da4fe47e0b..15912ecb8d26 100644
> --- a/drivers/media/i2c/ov64a40.c
> +++ b/drivers/media/i2c/ov64a40.c
> @@ -2990,7 +2990,6 @@ static int ov64a40_start_streaming(struct ov64a40 *ov64a40,
> return 0;
>
> error_power_off:
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
>
> return ret;
> @@ -3000,7 +2999,6 @@ static int ov64a40_stop_streaming(struct ov64a40 *ov64a40,
> struct v4l2_subdev_state *state)
> {
> cci_update_bits(ov64a40->cci, OV64A40_REG_SMIA, BIT(0), 0, NULL);
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
>
> __v4l2_ctrl_grab(ov64a40->link_freq, false);
> @@ -3330,7 +3328,6 @@ static int ov64a40_set_ctrl(struct v4l2_ctrl *ctrl)
> }
>
> if (pm_status > 0) {
> - pm_runtime_mark_last_busy(ov64a40->dev);
> pm_runtime_put_autosuspend(ov64a40->dev);
> }
>
> @@ -3622,7 +3619,6 @@ static int ov64a40_probe(struct i2c_client *client)
> goto error_subdev_cleanup;
> }
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return 0;
> diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c
> index 95f9ae794846..6b7193eaea1f 100644
> --- a/drivers/media/i2c/ov8858.c
> +++ b/drivers/media/i2c/ov8858.c
> @@ -1391,7 +1391,6 @@ static int ov8858_s_stream(struct v4l2_subdev *sd, int on)
> }
> } else {
> ov8858_stop_stream(ov8858);
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> }
>
> @@ -1945,7 +1944,6 @@ static int ov8858_probe(struct i2c_client *client)
> goto err_power_off;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
> index f4568e87f018..41ae25b0911f 100644
> --- a/drivers/media/i2c/st-mipid02.c
> +++ b/drivers/media/i2c/st-mipid02.c
> @@ -465,7 +465,6 @@ static int mipid02_disable_streams(struct v4l2_subdev *sd,
> if (ret)
> goto error;
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> error:
> @@ -542,7 +541,6 @@ static int mipid02_enable_streams(struct v4l2_subdev *sd,
> cci_write(bridge->regmap, MIPID02_DATA_LANE0_REG1, 0, &ret);
> cci_write(bridge->regmap, MIPID02_DATA_LANE1_REG1, 0, &ret);
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
> return ret;
> }
> diff --git a/drivers/media/i2c/tc358746.c b/drivers/media/i2c/tc358746.c
> index 143aa1359aba..bcfc274cf891 100644
> --- a/drivers/media/i2c/tc358746.c
> +++ b/drivers/media/i2c/tc358746.c
> @@ -816,7 +816,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
> return 0;
>
> err_out:
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return err;
> @@ -838,7 +837,6 @@ static int tc358746_s_stream(struct v4l2_subdev *sd, int enable)
> if (err)
> return err;
>
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return v4l2_subdev_call(src, video, s_stream, 0);
> @@ -1016,7 +1014,6 @@ tc358746_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg)
> err = tc358746_read(tc358746, reg->reg, &val);
> reg->val = val;
>
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return err;
> @@ -1032,7 +1029,6 @@ tc358746_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg)
>
> tc358746_write(tc358746, (u32)reg->reg, (u32)reg->val);
>
> - pm_runtime_mark_last_busy(sd->dev);
> pm_runtime_put_sync_autosuspend(sd->dev);
>
> return 0;
> @@ -1395,7 +1391,6 @@ static int tc358746_init_hw(struct tc358746 *tc358746)
> }
>
> err = tc358746_read(tc358746, CHIPID_REG, &val);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_sync_autosuspend(dev);
> if (err)
> return -ENODEV;
> diff --git a/drivers/media/i2c/thp7312.c b/drivers/media/i2c/thp7312.c
> index 8852c56431fe..775cfba188d8 100644
> --- a/drivers/media/i2c/thp7312.c
> +++ b/drivers/media/i2c/thp7312.c
> @@ -808,7 +808,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
> if (!enable) {
> thp7312_stream_enable(thp7312, false);
>
> - pm_runtime_mark_last_busy(thp7312->dev);
> pm_runtime_put_autosuspend(thp7312->dev);
>
> v4l2_subdev_unlock_state(sd_state);
> @@ -839,7 +838,6 @@ static int thp7312_s_stream(struct v4l2_subdev *sd, int enable)
> goto finish_unlock;
>
> finish_pm:
> - pm_runtime_mark_last_busy(thp7312->dev);
> pm_runtime_put_autosuspend(thp7312->dev);
> finish_unlock:
> v4l2_subdev_unlock_state(sd_state);
> @@ -1147,7 +1145,6 @@ static int thp7312_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(thp7312->dev);
> pm_runtime_put_autosuspend(thp7312->dev);
>
> return ret;
> @@ -2183,7 +2180,6 @@ static int thp7312_probe(struct i2c_client *client)
> * Decrease the PM usage count. The device will get suspended after the
> * autosuspend delay, turning the power off.
> */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> dev_info(dev, "THP7312 firmware version %02u.%02u\n",
> diff --git a/drivers/media/i2c/vd55g1.c b/drivers/media/i2c/vd55g1.c
> index c0754fd03b1d..7c39183dd44b 100644
> --- a/drivers/media/i2c/vd55g1.c
> +++ b/drivers/media/i2c/vd55g1.c
> @@ -1104,7 +1104,6 @@ static int vd55g1_disable_streams(struct v4l2_subdev *sd,
>
> vd55g1_grab_ctrls(sensor, false);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1338,7 +1337,6 @@ static int vd55g1_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1433,7 +1431,6 @@ static int vd55g1_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1895,7 +1892,6 @@ static int vd55g1_probe(struct i2c_client *client)
> pm_runtime_enable(dev);
> pm_runtime_set_autosuspend_delay(dev, 4000);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> ret = vd55g1_subdev_init(sensor);
> diff --git a/drivers/media/i2c/vd56g3.c b/drivers/media/i2c/vd56g3.c
> index 5d951ad0b478..d66e21ba4498 100644
> --- a/drivers/media/i2c/vd56g3.c
> +++ b/drivers/media/i2c/vd56g3.c
> @@ -493,7 +493,6 @@ static int vd56g3_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -577,7 +576,6 @@ static int vd56g3_s_ctrl(struct v4l2_ctrl *ctrl)
> break;
> }
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1021,7 +1019,6 @@ static int vd56g3_disable_streams(struct v4l2_subdev *sd,
> __v4l2_ctrl_grab(sensor->vflip_ctrl, false);
> __v4l2_ctrl_grab(sensor->patgen_ctrl, false);
>
> - pm_runtime_mark_last_busy(sensor->dev);
> pm_runtime_put_autosuspend(sensor->dev);
>
> return ret;
> @@ -1527,7 +1524,6 @@ static int vd56g3_probe(struct i2c_client *client)
> }
>
> /* Sensor could now be powered off (after the autosuspend delay) */
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> dev_dbg(dev, "Successfully probe %s sensor\n",
> diff --git a/drivers/media/i2c/video-i2c.c b/drivers/media/i2c/video-i2c.c
> index 0dd991d70d53..1eee2d4f5b40 100644
> --- a/drivers/media/i2c/video-i2c.c
> +++ b/drivers/media/i2c/video-i2c.c
> @@ -288,7 +288,6 @@ static int amg88xx_read(struct device *dev, enum hwmon_sensor_types type,
> return tmp;
>
> tmp = regmap_bulk_read(data->regmap, AMG88XX_REG_TTHL, &buf, 2);
> - pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
> pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
> if (tmp)
> return tmp;
> @@ -527,7 +526,6 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
> return 0;
>
> error_rpm_put:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> error_del_list:
> video_i2c_del_list(vq, VB2_BUF_STATE_QUEUED);
> @@ -544,7 +542,6 @@ static void stop_streaming(struct vb2_queue *vq)
>
> kthread_stop(data->kthread_vid_cap);
> data->kthread_vid_cap = NULL;
> - pm_runtime_mark_last_busy(regmap_get_device(data->regmap));
> pm_runtime_put_autosuspend(regmap_get_device(data->regmap));
>
> video_i2c_del_list(vq, VB2_BUF_STATE_ERROR);
> @@ -853,7 +850,6 @@ static int video_i2c_probe(struct i2c_client *client)
> if (ret < 0)
> goto error_pm_disable;
>
> - pm_runtime_mark_last_busy(&client->dev);
> pm_runtime_put_autosuspend(&client->dev);
>
> return 0;
> diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> index fd71f0c43ac3..a9ce032cc5a2 100644
> --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> @@ -451,7 +451,6 @@ static void wave5_vpu_dec_finish_decode(struct vpu_instance *inst)
> if (q_status.report_queue_count == 0 &&
> (q_status.instance_queue_count == 0 || dec_info.sequence_changed)) {
> dev_dbg(inst->dev->dev, "%s: finishing job.\n", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
> }
> @@ -1364,7 +1363,6 @@ static int wave5_vpu_dec_start_streaming(struct vb2_queue *q, unsigned int count
> }
>
> }
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return ret;
>
> @@ -1498,7 +1496,6 @@ static void wave5_vpu_dec_stop_streaming(struct vb2_queue *q)
> else
> streamoff_capture(q);
>
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> }
>
> @@ -1662,7 +1659,6 @@ static void wave5_vpu_dec_device_run(void *priv)
>
> finish_job_and_return:
> dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
> }
> diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
> index 1e5fc5f8b856..35913a7de834 100644
> --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
> +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-enc.c
> @@ -1391,12 +1391,10 @@ static int wave5_vpu_enc_start_streaming(struct vb2_queue *q, unsigned int count
> if (ret)
> goto return_buffers;
>
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return 0;
> return_buffers:
> wave5_return_bufs(q, VB2_BUF_STATE_QUEUED);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return ret;
> }
> @@ -1465,7 +1463,6 @@ static void wave5_vpu_enc_stop_streaming(struct vb2_queue *q)
> else
> streamoff_capture(inst, q);
>
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> }
>
> @@ -1520,7 +1517,6 @@ static void wave5_vpu_enc_device_run(void *priv)
> break;
> }
> dev_dbg(inst->dev->dev, "%s: leave with active job", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> return;
> default:
> @@ -1529,7 +1525,6 @@ static void wave5_vpu_enc_device_run(void *priv)
> break;
> }
> dev_dbg(inst->dev->dev, "%s: leave and finish job", __func__);
> - pm_runtime_mark_last_busy(inst->dev->dev);
> pm_runtime_put_autosuspend(inst->dev->dev);
> v4l2_m2m_job_finish(inst->v4l2_m2m_dev, m2m_ctx);
> }
> diff --git a/drivers/media/platform/nvidia/tegra-vde/h264.c b/drivers/media/platform/nvidia/tegra-vde/h264.c
> index 0e56a4331b0d..45f8f6904867 100644
> --- a/drivers/media/platform/nvidia/tegra-vde/h264.c
> +++ b/drivers/media/platform/nvidia/tegra-vde/h264.c
> @@ -585,7 +585,6 @@ static int tegra_vde_decode_begin(struct tegra_vde *vde,
> return 0;
>
> put_runtime_pm:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> unlock:
> @@ -612,7 +611,6 @@ static void tegra_vde_decode_abort(struct tegra_vde *vde)
> if (err)
> dev_err(dev, "DEC end: Failed to assert HW reset: %d\n", err);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> mutex_unlock(&vde->lock);
> diff --git a/drivers/media/platform/qcom/iris/iris_hfi_queue.c b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> index fac7df0c4d1a..0b37f9b76da5 100644
> --- a/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> +++ b/drivers/media/platform/qcom/iris/iris_hfi_queue.c
> @@ -142,7 +142,6 @@ int iris_hfi_queue_cmd_write(struct iris_core *core, void *pkt, u32 pkt_size)
> }
> mutex_unlock(&core->lock);
>
> - pm_runtime_mark_last_busy(core->dev);
> pm_runtime_put_autosuspend(core->dev);
>
> return 0;
> diff --git a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> index 7596ae1f7de6..8a10a36abbc2 100644
> --- a/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> +++ b/drivers/media/platform/raspberrypi/pisp_be/pisp_be.c
> @@ -951,7 +951,6 @@ static void pispbe_node_stop_streaming(struct vb2_queue *q)
> pispbe->streaming_map &= ~BIT(node->id);
> spin_unlock_irqrestore(&pispbe->hw_lock, flags);
>
> - pm_runtime_mark_last_busy(pispbe->dev);
> pm_runtime_put_autosuspend(pispbe->dev);
>
> dev_dbg(pispbe->dev, "Nodes streaming now 0x%x\n",
> @@ -1740,7 +1739,6 @@ static int pispbe_probe(struct platform_device *pdev)
> if (ret)
> goto disable_devs_err;
>
> - pm_runtime_mark_last_busy(pispbe->dev);
> pm_runtime_put_autosuspend(pispbe->dev);
>
> return 0;
> diff --git a/drivers/media/platform/verisilicon/hantro_drv.c b/drivers/media/platform/verisilicon/hantro_drv.c
> index 8542238e0fb1..fa972effd4a2 100644
> --- a/drivers/media/platform/verisilicon/hantro_drv.c
> +++ b/drivers/media/platform/verisilicon/hantro_drv.c
> @@ -89,7 +89,6 @@ static void hantro_job_finish(struct hantro_dev *vpu,
> struct hantro_ctx *ctx,
> enum vb2_buffer_state result)
> {
> - pm_runtime_mark_last_busy(vpu->dev);
> pm_runtime_put_autosuspend(vpu->dev);
>
> clk_bulk_disable(vpu->variant->num_clocks, vpu->clocks);
> diff --git a/drivers/media/rc/gpio-ir-recv.c b/drivers/media/rc/gpio-ir-recv.c
> index bf6d8fa983bf..161f8919022c 100644
> --- a/drivers/media/rc/gpio-ir-recv.c
> +++ b/drivers/media/rc/gpio-ir-recv.c
> @@ -49,7 +49,6 @@ static irqreturn_t gpio_ir_recv_irq(int irq, void *dev_id)
> ir_raw_event_store_edge(gpio_dev->rcdev, val == 1);
>
> if (pmdev) {
> - pm_runtime_mark_last_busy(pmdev);
> pm_runtime_put_autosuspend(pmdev);
> }
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 56/80] pwm: img: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 56/80] pwm: img: " Sakari Ailus
@ 2025-07-09 8:55 ` Uwe Kleine-König
0 siblings, 0 replies; 162+ messages in thread
From: Uwe Kleine-König @ 2025-07-09 8:55 UTC (permalink / raw)
To: Sakari Ailus; +Cc: linux-pwm, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1117 bytes --]
On Fri, Jul 04, 2025 at 10:54:43AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
My tree is based on v6.16-rc1 and this tag on -rc2. I merged it anyhow
and applied the pwm patch. We will see how much trouble this creates, I
hope very little.
Find the result on
https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git pwm/for-next
.
Best regards
Uwe
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 44/80] mmc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 44/80] mmc: " Sakari Ailus
@ 2025-07-09 14:02 ` Ulf Hansson
0 siblings, 0 replies; 162+ messages in thread
From: Ulf Hansson @ 2025-07-09 14:02 UTC (permalink / raw)
To: Sakari Ailus
Cc: Aubin Constans, Nicolas Ferre, Alexandre Belloni, Claudiu Beznea,
Russell King, Adrian Hunter, Haibo Chen, Shawn Guo, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Vignesh Raghavendra,
Orson Zhai, Baolin Wang, Chunyan Zhang, Wolfram Sang, Avri Altman,
Victor Shih, Binbin Zhou, Huacai Chen, Uwe Kleine-König,
linux-mmc, linux-kernel, linux-arm-kernel, linux-omap, imx, s32,
linux-arm-msm, linux-renesas-soc
On Fri, 4 Jul 2025 at 09:54, Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
I have pulled in pm-runtime-6.17-rc1 and applied the $subject patch
for next, thanks!
Kind regards
Uffe
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/mmc/core/core.c | 1 -
> drivers/mmc/host/atmel-mci.c | 2 --
> drivers/mmc/host/mmci.c | 1 -
> drivers/mmc/host/omap_hsmmc.c | 3 ---
> drivers/mmc/host/sdhci-esdhc-imx.c | 1 -
> drivers/mmc/host/sdhci-msm.c | 1 -
> drivers/mmc/host/sdhci-omap.c | 2 --
> drivers/mmc/host/sdhci-pxav3.c | 2 --
> drivers/mmc/host/sdhci-sprd.c | 1 -
> drivers/mmc/host/sdhci_am654.c | 1 -
> drivers/mmc/host/tmio_mmc_core.c | 1 -
> 11 files changed, 16 deletions(-)
>
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index a0e2dce70434..874c6fe92855 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -882,7 +882,6 @@ void mmc_put_card(struct mmc_card *card, struct mmc_ctx *ctx)
> WARN_ON(ctx && host->claimer != ctx);
>
> mmc_release_host(host);
> - pm_runtime_mark_last_busy(&card->dev);
> pm_runtime_put_autosuspend(&card->dev);
> }
> EXPORT_SYMBOL(mmc_put_card);
> diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
> index c885c04e938a..43f92f48590f 100644
> --- a/drivers/mmc/host/atmel-mci.c
> +++ b/drivers/mmc/host/atmel-mci.c
> @@ -541,7 +541,6 @@ static int atmci_regs_show(struct seq_file *s, void *v)
> memcpy_fromio(buf, host->regs, ATMCI_REGS_SIZE);
> spin_unlock_bh(&host->lock);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> seq_printf(s, "MR:\t0x%08x%s%s ",
> @@ -2567,7 +2566,6 @@ static int atmci_probe(struct platform_device *pdev)
> dev_info(dev, "Atmel MCI controller at 0x%08lx irq %d, %u slots\n",
> host->mapbase, irq, nr_slots);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
> index c70c64f8adc4..8367283647a9 100644
> --- a/drivers/mmc/host/mmci.c
> +++ b/drivers/mmc/host/mmci.c
> @@ -2082,7 +2082,6 @@ static void mmci_enable_sdio_irq(struct mmc_host *mmc, int enable)
> spin_unlock_irqrestore(&host->lock, flags);
>
> if (!enable) {
> - pm_runtime_mark_last_busy(mmc_dev(mmc));
> pm_runtime_put_autosuspend(mmc_dev(mmc));
> }
> }
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index bf3b9f5b067c..adc0d0b6ae37 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -1663,7 +1663,6 @@ static int mmc_regs_show(struct seq_file *s, void *data)
> seq_printf(s, "CAPA:\t\t0x%08x\n",
> OMAP_HSMMC_READ(host->base, CAPA));
>
> - pm_runtime_mark_last_busy(host->dev);
> pm_runtime_put_autosuspend(host->dev);
>
> return 0;
> @@ -1954,7 +1953,6 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
> }
>
> omap_hsmmc_debugfs(mmc);
> - pm_runtime_mark_last_busy(host->dev);
> pm_runtime_put_autosuspend(host->dev);
>
> return 0;
> @@ -2031,7 +2029,6 @@ static int omap_hsmmc_resume(struct device *dev)
> if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER))
> omap_hsmmc_conf_bus_power(host);
>
> - pm_runtime_mark_last_busy(host->dev);
> pm_runtime_put_autosuspend(host->dev);
> return 0;
> }
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 64c27349d79f..a040c0896a7b 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -2108,7 +2108,6 @@ static int sdhci_esdhc_resume(struct device *dev)
> esdhc_is_usdhc(imx_data))
> sdhc_esdhc_tuning_restore(host);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index 732b65d4b61a..68e56251d5e8 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -2750,7 +2750,6 @@ static int sdhci_msm_probe(struct platform_device *pdev)
> if (ret)
> goto pm_runtime_disable;
>
> - pm_runtime_mark_last_busy(&pdev->dev);
> pm_runtime_put_autosuspend(&pdev->dev);
>
> return 0;
> diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c
> index 429d8a517fb6..cdb09605e009 100644
> --- a/drivers/mmc/host/sdhci-omap.c
> +++ b/drivers/mmc/host/sdhci-omap.c
> @@ -1370,7 +1370,6 @@ static int sdhci_omap_probe(struct platform_device *pdev)
> host->mmc->pm_caps |= MMC_PM_KEEP_POWER | MMC_PM_WAKE_SDIO_IRQ;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> @@ -1379,7 +1378,6 @@ static int sdhci_omap_probe(struct platform_device *pdev)
> sdhci_cleanup_host(host);
>
> err_rpm_put:
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> err_rpm_disable:
> pm_runtime_dont_use_autosuspend(dev);
> diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
> index 34abf986573f..1371960e34eb 100644
> --- a/drivers/mmc/host/sdhci-pxav3.c
> +++ b/drivers/mmc/host/sdhci-pxav3.c
> @@ -494,7 +494,6 @@ static int sdhci_pxav3_suspend(struct device *dev)
> if (host->tuning_mode != SDHCI_TUNING_MODE_3)
> mmc_retune_needed(host->mmc);
> ret = sdhci_suspend_host(host);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> @@ -507,7 +506,6 @@ static int sdhci_pxav3_resume(struct device *dev)
>
> pm_runtime_get_sync(dev);
> ret = sdhci_resume_host(host);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return ret;
> diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c
> index a5dec1a0e934..fe2fe52b23b2 100644
> --- a/drivers/mmc/host/sdhci-sprd.c
> +++ b/drivers/mmc/host/sdhci-sprd.c
> @@ -863,7 +863,6 @@ static int sdhci_sprd_probe(struct platform_device *pdev)
> if (ret)
> goto err_cleanup_host;
>
> - pm_runtime_mark_last_busy(&pdev->dev);
> pm_runtime_put_autosuspend(&pdev->dev);
>
> return 0;
> diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
> index ea14d56558c4..e2c4a0049d61 100644
> --- a/drivers/mmc/host/sdhci_am654.c
> +++ b/drivers/mmc/host/sdhci_am654.c
> @@ -986,7 +986,6 @@ static int sdhci_am654_probe(struct platform_device *pdev)
> /* Setting up autosuspend */
> pm_runtime_set_autosuspend_delay(dev, SDHCI_AM654_AUTOSUSPEND_DELAY);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> return 0;
>
> diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
> index 2cec463b5e00..21c2f9095bac 100644
> --- a/drivers/mmc/host/tmio_mmc_core.c
> +++ b/drivers/mmc/host/tmio_mmc_core.c
> @@ -160,7 +160,6 @@ static void tmio_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
> sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask);
>
> host->sdio_irq_enabled = false;
> - pm_runtime_mark_last_busy(mmc_dev(mmc));
> pm_runtime_put_autosuspend(mmc_dev(mmc));
> }
> }
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 27/80] iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 27/80] iio: accel: " Sakari Ailus
2025-07-04 9:05 ` Jonathan Cameron
@ 2025-07-10 6:46 ` Matti Vaittinen
2025-07-13 13:43 ` Jonathan Cameron
1 sibling, 1 reply; 162+ messages in thread
From: Matti Vaittinen @ 2025-07-10 6:46 UTC (permalink / raw)
To: Sakari Ailus, Jonathan Cameron, David Lechner, Nuno Sá,
Andy Shevchenko, Waqar Hameed, Julien Stephan, Peter Zijlstra,
Bo Liu, Greg KH, Al Viro, Sean Nyekjaer, Marcelo Schmitt,
Rayyan Ansari, Francisco Henriques
Cc: linux-iio, linux-kernel
On 04/07/2025 10:54, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Looks good to me. Just one comment (to 4 drivers) - but I'm not
insisting it to be addressed :)
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/iio/accel/bmc150-accel-core.c | 1 -
> drivers/iio/accel/bmi088-accel-core.c | 3 ---
> drivers/iio/accel/fxls8962af-core.c | 1 -
> drivers/iio/accel/kxcjk-1013.c | 1 -
> drivers/iio/accel/kxsd9.c | 3 ---
> drivers/iio/accel/mma8452.c | 1 -
> drivers/iio/accel/mma9551_core.c | 1 -
> drivers/iio/accel/msa311.c | 6 ------
> 8 files changed, 17 deletions(-)
>
> diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
> index be5fbb0c5d29..f45beae83f8b 100644
> --- a/drivers/iio/accel/bmc150-accel-core.c
> +++ b/drivers/iio/accel/bmc150-accel-core.c
> @@ -335,7 +335,6 @@ static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(dev);
> } else {
> - pm_runtime_mark_last_busy(dev);
> ret = pm_runtime_put_autosuspend(dev);
> }
>
// snip
> diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> index 6aefe8221296..44d770729186 100644
> --- a/drivers/iio/accel/kxcjk-1013.c
> +++ b/drivers/iio/accel/kxcjk-1013.c
> @@ -637,7 +637,6 @@ static int kxcjk1013_set_power_state(struct kxcjk1013_data *data, bool on)
> if (on)
> ret = pm_runtime_resume_and_get(&data->client->dev);
> else {
> - pm_runtime_mark_last_busy(&data->client->dev);
> ret = pm_runtime_put_autosuspend(&data->client->dev);
> }
> if (ret < 0) {
//snip
> diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> index aba444a980d9..5863478bab62 100644
> --- a/drivers/iio/accel/mma8452.c
> +++ b/drivers/iio/accel/mma8452.c
> @@ -227,7 +227,6 @@ static int mma8452_set_runtime_pm_state(struct i2c_client *client, bool on)
> if (on) {
> ret = pm_runtime_resume_and_get(&client->dev);
> } else {
> - pm_runtime_mark_last_busy(&client->dev);
> ret = pm_runtime_put_autosuspend(&client->dev);
> }
//snip
>
> diff --git a/drivers/iio/accel/mma9551_core.c b/drivers/iio/accel/mma9551_core.c
> index 3e7d9b79ed0e..22768f43fd24 100644
> --- a/drivers/iio/accel/mma9551_core.c
> +++ b/drivers/iio/accel/mma9551_core.c
> @@ -672,7 +672,6 @@ int mma9551_set_power_state(struct i2c_client *client, bool on)
> if (on)
> ret = pm_runtime_resume_and_get(&client->dev);
> else {
> - pm_runtime_mark_last_busy(&client->dev);
> ret = pm_runtime_put_autosuspend(&client->dev);
> }
>
Do these really warrant a function? (Especially for the mma9551 where
the function is exported). I think it'd be fine to have the
pm_runtime_resume_and_get() and the pm_runtime_put_autosuspend() called
directly without these wrappers.
Anyways, this looks good to me - thanks!
Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com>
Yours
-- Matti
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 23/80] i2c: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 23/80] i2c: " Sakari Ailus
@ 2025-07-10 20:49 ` Andi Shyti
0 siblings, 0 replies; 162+ messages in thread
From: Andi Shyti @ 2025-07-10 20:49 UTC (permalink / raw)
To: Sakari Ailus
Cc: Elie Morisse, Shyam Sundar S K, Codrin Ciubotariu, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Michal Simek,
Bartosz Golaszewski, Jarkko Nikula, Andy Shevchenko,
Mika Westerberg, Jan Dabros, Jean Delvare, Dong Aisheng,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Oleksij Rempel, Gregory CLEMENT, Ajay Gupta, Aaro Koskinen,
Andreas Kemnade, Kevin Hilman, Roger Quadros, Tony Lindgren,
Janusz Krzysztofik, Vignesh R, Loic Poulain, Robert Foss,
Mukesh Kumar Savaliya, Viken Dadhaniya, Chris Brandt,
Fabrizio Castro, Orson Zhai, Baolin Wang, Chunyan Zhang,
Pierre-Yves MORDRET, Alain Volmat, Maxime Coquelin,
Alexandre Torgue, linux-i2c, linux-kernel, linux-arm-kernel, imx,
linux-omap, linux-arm-msm, linux-renesas-soc, linux-stm32
Hi Sakari,
On Fri, Jul 04, 2025 at 10:54:15AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Andi Shyti <andi.shyti@kernel.org>
Thanks,
Andi
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 27/80] iio: accel: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-10 6:46 ` Matti Vaittinen
@ 2025-07-13 13:43 ` Jonathan Cameron
0 siblings, 0 replies; 162+ messages in thread
From: Jonathan Cameron @ 2025-07-13 13:43 UTC (permalink / raw)
To: Matti Vaittinen
Cc: Sakari Ailus, David Lechner, Nuno Sá, Andy Shevchenko,
Waqar Hameed, Julien Stephan, Peter Zijlstra, Bo Liu, Greg KH,
Al Viro, Sean Nyekjaer, Marcelo Schmitt, Rayyan Ansari,
Francisco Henriques, linux-iio, linux-kernel
On Thu, 10 Jul 2025 09:46:12 +0300
Matti Vaittinen <mazziesaccount@gmail.com> wrote:
> On 04/07/2025 10:54, Sakari Ailus wrote:
> > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > pm_runtime_mark_last_busy().
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > ---
>
> Looks good to me. Just one comment (to 4 drivers) - but I'm not
> insisting it to be addressed :)
>
> > The cover letter of the set can be found here
> > <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
> >
> > In brief, this patch depends on PM runtime patches adding marking the last
> > busy timestamp in autosuspend related functions. The patches are here, on
> > rc2:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> > pm-runtime-6.17-rc1
> >
> > drivers/iio/accel/bmc150-accel-core.c | 1 -
> > drivers/iio/accel/bmi088-accel-core.c | 3 ---
> > drivers/iio/accel/fxls8962af-core.c | 1 -
> > drivers/iio/accel/kxcjk-1013.c | 1 -
> > drivers/iio/accel/kxsd9.c | 3 ---
> > drivers/iio/accel/mma8452.c | 1 -
> > drivers/iio/accel/mma9551_core.c | 1 -
> > drivers/iio/accel/msa311.c | 6 ------
> > 8 files changed, 17 deletions(-)
> >
> > diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
> > index be5fbb0c5d29..f45beae83f8b 100644
> > --- a/drivers/iio/accel/bmc150-accel-core.c
> > +++ b/drivers/iio/accel/bmc150-accel-core.c
> > @@ -335,7 +335,6 @@ static int bmc150_accel_set_power_state(struct bmc150_accel_data *data, bool on)
> > if (on) {
> > ret = pm_runtime_resume_and_get(dev);
> > } else {
> > - pm_runtime_mark_last_busy(dev);
> > ret = pm_runtime_put_autosuspend(dev);
> > }
> >
>
> // snip
>
> > diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
> > index 6aefe8221296..44d770729186 100644
> > --- a/drivers/iio/accel/kxcjk-1013.c
> > +++ b/drivers/iio/accel/kxcjk-1013.c
> > @@ -637,7 +637,6 @@ static int kxcjk1013_set_power_state(struct kxcjk1013_data *data, bool on)
> > if (on)
> > ret = pm_runtime_resume_and_get(&data->client->dev);
> > else {
> > - pm_runtime_mark_last_busy(&data->client->dev);
> > ret = pm_runtime_put_autosuspend(&data->client->dev);
> > }
> > if (ret < 0) {
>
> //snip
>
> > diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> > index aba444a980d9..5863478bab62 100644
> > --- a/drivers/iio/accel/mma8452.c
> > +++ b/drivers/iio/accel/mma8452.c
> > @@ -227,7 +227,6 @@ static int mma8452_set_runtime_pm_state(struct i2c_client *client, bool on)
> > if (on) {
> > ret = pm_runtime_resume_and_get(&client->dev);
> > } else {
> > - pm_runtime_mark_last_busy(&client->dev);
> > ret = pm_runtime_put_autosuspend(&client->dev);
> > }
>
> //snip
>
> >
> > diff --git a/drivers/iio/accel/mma9551_core.c b/drivers/iio/accel/mma9551_core.c
> > index 3e7d9b79ed0e..22768f43fd24 100644
> > --- a/drivers/iio/accel/mma9551_core.c
> > +++ b/drivers/iio/accel/mma9551_core.c
> > @@ -672,7 +672,6 @@ int mma9551_set_power_state(struct i2c_client *client, bool on)
> > if (on)
> > ret = pm_runtime_resume_and_get(&client->dev);
> > else {
> > - pm_runtime_mark_last_busy(&client->dev);
> > ret = pm_runtime_put_autosuspend(&client->dev);
> > }
> >
>
> Do these really warrant a function? (Especially for the mma9551 where
> the function is exported). I think it'd be fine to have the
> pm_runtime_resume_and_get() and the pm_runtime_put_autosuspend() called
> directly without these wrappers.
Absolutely agree that they don't. However, I think it may make
sense to clean that up in two jumps. This series just makes the
specific drop of the unnecessary call, next series does the refactor.
That keeps this series tightly focused on one topic.
Jonathan
>
> Anyways, this looks good to me - thanks!
>
> Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com>
>
> Yours
> -- Matti
>
>
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 50/80] nfc: trf7970a: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 8:03 ` Krzysztof Kozlowski
@ 2025-07-15 8:18 ` Sakari Ailus
0 siblings, 0 replies; 162+ messages in thread
From: Sakari Ailus @ 2025-07-15 8:18 UTC (permalink / raw)
To: Krzysztof Kozlowski; +Cc: Mark Greer, linux-wireless, netdev, linux-kernel
Hi Krzysztof,
On Fri, Jul 04, 2025 at 10:03:27AM +0200, Krzysztof Kozlowski wrote:
> On 04/07/2025 09:54, Sakari Ailus wrote:
> > pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> > pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> > to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> > pm_runtime_mark_last_busy().
> >
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > ---
> > The cover letter of the set can be found here
> > <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
> >
> > In brief, this patch depends on PM runtime patches adding marking the last
> > busy timestamp in autosuspend related functions. The patches are here, on
> > rc2:
> >
>
> You did not send cover letter to people, so this changelog should
> explain what I should do with this patch (what is the merging/dependency).
I didn't as it would have had too many recipients (more than 200 in fact).
As you may have noticed, the URL for the cover letter is a few lines above,
also its Message-ID can be found in the In-reply-to: header.
--
Kind regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 24/80] i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 24/80] i3c: master: svc: " Sakari Ailus
@ 2025-07-15 14:00 ` Frank Li
0 siblings, 0 replies; 162+ messages in thread
From: Frank Li @ 2025-07-15 14:00 UTC (permalink / raw)
To: Sakari Ailus
Cc: Miquel Raynal, Alexandre Belloni, linux-i3c, imx, linux-kernel
On Fri, Jul 04, 2025 at 10:54:16AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Reviewed-by: Frank Li <Frank.Li@nxp.com>
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/i3c/master/svc-i3c-master.c | 8 --------
> 1 file changed, 8 deletions(-)
>
> diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
> index 7e1a7cb94b43..4f68005c47d9 100644
> --- a/drivers/i3c/master/svc-i3c-master.c
> +++ b/drivers/i3c/master/svc-i3c-master.c
> @@ -664,7 +664,6 @@ static int svc_i3c_master_set_speed(struct i3c_master_controller *m,
> }
>
> rpm_out:
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
>
> return ret;
> @@ -779,7 +778,6 @@ static int svc_i3c_master_bus_init(struct i3c_master_controller *m)
> goto rpm_out;
>
> rpm_out:
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
>
> return ret;
> @@ -801,7 +799,6 @@ static void svc_i3c_master_bus_cleanup(struct i3c_master_controller *m)
> /* Disable master */
> writel(0, master->regs + SVC_I3C_MCONFIG);
>
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
> }
>
> @@ -1207,7 +1204,6 @@ static int svc_i3c_master_do_daa(struct i3c_master_controller *m)
> dev_err(master->dev, "Cannot handle such a list of devices");
>
> rpm_out:
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
>
> return ret;
> @@ -1511,7 +1507,6 @@ static void svc_i3c_master_enqueue_xfer(struct svc_i3c_master *master,
> }
> spin_unlock_irqrestore(&master->xferqueue.lock, flags);
>
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
> }
>
> @@ -1801,7 +1796,6 @@ static int svc_i3c_master_disable_ibi(struct i3c_dev_desc *dev)
>
> ret = i3c_master_disec_locked(m, dev->info.dyn_addr, I3C_CCC_EVENT_SIR);
>
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
>
> return ret;
> @@ -1834,7 +1828,6 @@ static int svc_i3c_master_disable_hotjoin(struct i3c_master_controller *m)
> if (!master->enabled_events)
> svc_i3c_master_disable_interrupts(master);
>
> - pm_runtime_mark_last_busy(master->dev);
> pm_runtime_put_autosuspend(master->dev);
>
> return 0;
> @@ -1954,7 +1947,6 @@ static int svc_i3c_master_probe(struct platform_device *pdev)
> if (ret)
> goto rpm_disable;
>
> - pm_runtime_mark_last_busy(&pdev->dev);
> pm_runtime_put_autosuspend(&pdev->dev);
>
> return 0;
> --
> 2.39.5
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 04/80] bus: sunxi-rsb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:53 ` [PATCH 04/80] bus: sunxi-rsb: " Sakari Ailus
@ 2025-07-15 16:33 ` Chen-Yu Tsai
0 siblings, 0 replies; 162+ messages in thread
From: Chen-Yu Tsai @ 2025-07-15 16:33 UTC (permalink / raw)
To: Sakari Ailus
Cc: Jernej Skrabec, Samuel Holland, Arnd Bergmann, Zhang Zekun,
Javier Carrasco, Uwe Kleine-König, linux-arm-kernel,
linux-sunxi, linux-kernel
On Fri, Jul 4, 2025 at 3:54 PM Sakari Ailus
<sakari.ailus@linux.intel.com> wrote:
>
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Chen-Yu Tsai <wens@csie.org>
Could this go through the PM tree?
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/bus/sunxi-rsb.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c
> index 7a33c3b31d1e..82735c58be11 100644
> --- a/drivers/bus/sunxi-rsb.c
> +++ b/drivers/bus/sunxi-rsb.c
> @@ -373,7 +373,6 @@ static int sunxi_rsb_read(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
> unlock:
> mutex_unlock(&rsb->lock);
>
> - pm_runtime_mark_last_busy(rsb->dev);
> pm_runtime_put_autosuspend(rsb->dev);
>
> return ret;
> @@ -417,7 +416,6 @@ static int sunxi_rsb_write(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
>
> mutex_unlock(&rsb->lock);
>
> - pm_runtime_mark_last_busy(rsb->dev);
> pm_runtime_put_autosuspend(rsb->dev);
>
> return ret;
> --
> 2.39.5
>
>
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 05/80] hwrng: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:53 ` [PATCH 05/80] hwrng: " Sakari Ailus
2025-07-07 9:35 ` AngeloGioacchino Del Regno
@ 2025-07-18 10:58 ` Herbert Xu
1 sibling, 0 replies; 162+ messages in thread
From: Herbert Xu @ 2025-07-18 10:58 UTC (permalink / raw)
To: Sakari Ailus
Cc: Olivia Mackall, Nicolas Ferre, Alexandre Belloni, Claudiu Beznea,
Hadar Gat, Sean Wang, Matthias Brugger,
AngeloGioacchino Del Regno, Avi Fishman, Tomer Maimon, Tali Perry,
Patrick Venture, Nancy Yuen, Benjamin Fair, Daniel Golle,
Aurelien Jarno, Nicolas Frattaroli, Heiko Stuebner,
Maxime Coquelin, Alexandre Torgue, Uwe Kleine-König,
Marek Vasut, Gatien Chevallier, linux-crypto, linux-arm-kernel,
linux-kernel, linux-mediatek, openbmc, linux-rockchip,
linux-stm32
On Fri, Jul 04, 2025 at 10:53:59AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/char/hw_random/atmel-rng.c | 1 -
> drivers/char/hw_random/cctrng.c | 1 -
> drivers/char/hw_random/mtk-rng.c | 1 -
> drivers/char/hw_random/npcm-rng.c | 1 -
> drivers/char/hw_random/omap3-rom-rng.c | 1 -
> drivers/char/hw_random/rockchip-rng.c | 3 ---
> drivers/char/hw_random/stm32-rng.c | 1 -
> 7 files changed, 9 deletions(-)
Patch applied. Thanks.
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 08/80] crypto: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 08/80] crypto: " Sakari Ailus
@ 2025-07-18 10:59 ` Herbert Xu
0 siblings, 0 replies; 162+ messages in thread
From: Herbert Xu @ 2025-07-18 10:59 UTC (permalink / raw)
To: Sakari Ailus
Cc: Gilad Ben-Yossef, David S. Miller, Weili Qian, Zhou Wang,
Maxime Coquelin, Alexandre Torgue, Eric Biggers,
Uwe Kleine-König, linux-crypto, linux-kernel, linux-stm32,
linux-arm-kernel
On Fri, Jul 04, 2025 at 10:54:02AM +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/crypto/ccree/cc_pm.c | 1 -
> drivers/crypto/hisilicon/qm.c | 1 -
> drivers/crypto/omap-aes-gcm.c | 1 -
> drivers/crypto/omap-aes.c | 1 -
> drivers/crypto/omap-des.c | 1 -
> drivers/crypto/omap-sham.c | 1 -
> drivers/crypto/stm32/stm32-cryp.c | 1 -
> drivers/crypto/stm32/stm32-hash.c | 1 -
> 8 files changed, 8 deletions(-)
Patch applied. Thanks.
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 67/80] usb: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 67/80] usb: " Sakari Ailus
2025-07-04 9:11 ` Thierry Reding
2025-07-07 9:35 ` AngeloGioacchino Del Regno
@ 2025-07-21 2:25 ` Peter Chen (CIX)
2 siblings, 0 replies; 162+ messages in thread
From: Peter Chen (CIX) @ 2025-07-21 2:25 UTC (permalink / raw)
To: Sakari Ailus
Cc: Pawel Laszczak, Roger Quadros, Greg Kroah-Hartman, Thinh Nguyen,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
Michal Simek, Chunfeng Yun, Mathias Nyman, Matthias Brugger,
AngeloGioacchino Del Regno, Thierry Reding, Jonathan Hunter,
Bastien Nocera, Bin Liu, linux-usb, linux-kernel, imx,
linux-arm-kernel, linux-mediatek, linux-tegra, linux-omap
On 25-07-04 10:54:53, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
For chipidea and cdns3 parts:
Acked-by: Peter Chen <peter.chen@kernel.org>
Peter
> ---
> The cover letter of the set can be found here
> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/usb/cdns3/cdns3-gadget.c | 1 -
> drivers/usb/cdns3/cdnsp-gadget.c | 1 -
> drivers/usb/chipidea/core.c | 1 -
> drivers/usb/chipidea/otg_fsm.c | 1 -
> drivers/usb/dwc3/core.c | 2 --
> drivers/usb/dwc3/dwc3-am62.c | 1 -
> drivers/usb/dwc3/dwc3-imx8mp.c | 1 -
> drivers/usb/dwc3/dwc3-pci.c | 1 -
> drivers/usb/dwc3/dwc3-xilinx.c | 1 -
> drivers/usb/gadget/udc/cdns2/cdns2-gadget.c | 1 -
> drivers/usb/host/xhci-mtk.c | 1 -
> drivers/usb/host/xhci-tegra.c | 1 -
> drivers/usb/misc/apple-mfi-fastcharge.c | 1 -
> drivers/usb/mtu3/mtu3_plat.c | 1 -
> drivers/usb/musb/musb_core.c | 5 -----
> drivers/usb/musb/musb_debugfs.c | 5 -----
> drivers/usb/musb/musb_dsps.c | 1 -
> drivers/usb/musb/musb_gadget.c | 4 ----
> drivers/usb/musb/omap2430.c | 1 -
> 19 files changed, 31 deletions(-)
>
> diff --git a/drivers/usb/cdns3/cdns3-gadget.c b/drivers/usb/cdns3/cdns3-gadget.c
> index d9d8dc05b235..168707213ed9 100644
> --- a/drivers/usb/cdns3/cdns3-gadget.c
> +++ b/drivers/usb/cdns3/cdns3-gadget.c
> @@ -3251,7 +3251,6 @@ static void cdns3_gadget_exit(struct cdns *cdns)
> priv_dev = cdns->gadget_dev;
>
>
> - pm_runtime_mark_last_busy(cdns->dev);
> pm_runtime_put_autosuspend(cdns->dev);
>
> usb_del_gadget(&priv_dev->gadget);
> diff --git a/drivers/usb/cdns3/cdnsp-gadget.c b/drivers/usb/cdns3/cdnsp-gadget.c
> index 55f95f41b3b4..2ffe24a6e477 100644
> --- a/drivers/usb/cdns3/cdnsp-gadget.c
> +++ b/drivers/usb/cdns3/cdnsp-gadget.c
> @@ -1996,7 +1996,6 @@ static void cdnsp_gadget_exit(struct cdns *cdns)
> struct cdnsp_device *pdev = cdns->gadget_dev;
>
> devm_free_irq(pdev->dev, cdns->dev_irq, pdev);
> - pm_runtime_mark_last_busy(cdns->dev);
> pm_runtime_put_autosuspend(cdns->dev);
> usb_del_gadget_udc(&pdev->gadget);
> cdnsp_gadget_free_endpoints(pdev);
> diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
> index 694b4a8e4e1d..a6ce73dcc871 100644
> --- a/drivers/usb/chipidea/core.c
> +++ b/drivers/usb/chipidea/core.c
> @@ -1372,7 +1372,6 @@ static int ci_controller_resume(struct device *dev)
> ci->in_lpm = false;
> if (ci->wakeup_int) {
> ci->wakeup_int = false;
> - pm_runtime_mark_last_busy(ci->dev);
> pm_runtime_put_autosuspend(ci->dev);
> enable_irq(ci->irq);
> if (ci_otg_is_fsm_mode(ci))
> diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c
> index a093544482d5..929536dc96ec 100644
> --- a/drivers/usb/chipidea/otg_fsm.c
> +++ b/drivers/usb/chipidea/otg_fsm.c
> @@ -629,7 +629,6 @@ int ci_otg_fsm_work(struct ci_hdrc *ci)
> ci_otg_queue_work(ci);
> }
> } else if (ci->fsm.otg->state == OTG_STATE_A_HOST) {
> - pm_runtime_mark_last_busy(ci->dev);
> pm_runtime_put_autosuspend(ci->dev);
> return 0;
> }
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 8002c23a5a02..77b309ebd704 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -279,7 +279,6 @@ static void __dwc3_set_mode(struct work_struct *work)
> }
>
> out:
> - pm_runtime_mark_last_busy(dwc->dev);
> pm_runtime_put_autosuspend(dwc->dev);
> mutex_unlock(&dwc->mutex);
> }
> @@ -2642,7 +2641,6 @@ int dwc3_runtime_idle(struct dwc3 *dwc)
> break;
> }
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/usb/dwc3/dwc3-am62.c b/drivers/usb/dwc3/dwc3-am62.c
> index 9db8f3ca493d..e11d7643f966 100644
> --- a/drivers/usb/dwc3/dwc3-am62.c
> +++ b/drivers/usb/dwc3/dwc3-am62.c
> @@ -292,7 +292,6 @@ static int dwc3_ti_probe(struct platform_device *pdev)
> /* Setting up autosuspend */
> pm_runtime_set_autosuspend_delay(dev, DWC3_AM62_AUTOSUSPEND_DELAY);
> pm_runtime_use_autosuspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> return 0;
>
> diff --git a/drivers/usb/dwc3/dwc3-imx8mp.c b/drivers/usb/dwc3/dwc3-imx8mp.c
> index 3edc5aca76f9..37700d95bc09 100644
> --- a/drivers/usb/dwc3/dwc3-imx8mp.c
> +++ b/drivers/usb/dwc3/dwc3-imx8mp.c
> @@ -307,7 +307,6 @@ static int dwc3_imx8mp_resume(struct dwc3_imx8mp *dwc3_imx, pm_message_t msg)
> if (dwc3_imx->wakeup_pending) {
> dwc3_imx->wakeup_pending = false;
> if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_DEVICE) {
> - pm_runtime_mark_last_busy(dwc->dev);
> pm_runtime_put_autosuspend(dwc->dev);
> } else {
> /*
> diff --git a/drivers/usb/dwc3/dwc3-pci.c b/drivers/usb/dwc3/dwc3-pci.c
> index 54a4ee2b90b7..07dfa0b5d184 100644
> --- a/drivers/usb/dwc3/dwc3-pci.c
> +++ b/drivers/usb/dwc3/dwc3-pci.c
> @@ -321,7 +321,6 @@ static void dwc3_pci_resume_work(struct work_struct *work)
> return;
> }
>
> - pm_runtime_mark_last_busy(&dwc3->dev);
> pm_runtime_put_sync_autosuspend(&dwc3->dev);
> }
> #endif
> diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-xilinx.c
> index 1e28d6f50ed0..0a8c47876ff9 100644
> --- a/drivers/usb/dwc3/dwc3-xilinx.c
> +++ b/drivers/usb/dwc3/dwc3-xilinx.c
> @@ -383,7 +383,6 @@ static int __maybe_unused dwc3_xlnx_runtime_resume(struct device *dev)
>
> static int __maybe_unused dwc3_xlnx_runtime_idle(struct device *dev)
> {
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c b/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
> index 7e69944ef18a..9b53daf76583 100644
> --- a/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
> +++ b/drivers/usb/gadget/udc/cdns2/cdns2-gadget.c
> @@ -2415,7 +2415,6 @@ int cdns2_gadget_resume(struct cdns2_device *pdev, bool hibernated)
>
> void cdns2_gadget_remove(struct cdns2_device *pdev)
> {
> - pm_runtime_mark_last_busy(pdev->dev);
> pm_runtime_put_autosuspend(pdev->dev);
>
> usb_del_gadget(&pdev->gadget);
> diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
> index 208558cf822d..06043c7c3100 100644
> --- a/drivers/usb/host/xhci-mtk.c
> +++ b/drivers/usb/host/xhci-mtk.c
> @@ -670,7 +670,6 @@ static int xhci_mtk_probe(struct platform_device *pdev)
> }
>
> device_enable_async_suspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> pm_runtime_forbid(dev);
>
> diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
> index 0c7af44d4dae..554b03e3ae92 100644
> --- a/drivers/usb/host/xhci-tegra.c
> +++ b/drivers/usb/host/xhci-tegra.c
> @@ -1394,7 +1394,6 @@ static void tegra_xhci_id_work(struct work_struct *work)
> }
>
> tegra_xhci_set_port_power(tegra, true, true);
> - pm_runtime_mark_last_busy(tegra->dev);
>
> } else {
> if (tegra->otg_usb3_port >= 0)
> diff --git a/drivers/usb/misc/apple-mfi-fastcharge.c b/drivers/usb/misc/apple-mfi-fastcharge.c
> index 8e852f4b8262..47b38dcc2992 100644
> --- a/drivers/usb/misc/apple-mfi-fastcharge.c
> +++ b/drivers/usb/misc/apple-mfi-fastcharge.c
> @@ -134,7 +134,6 @@ static int apple_mfi_fc_set_property(struct power_supply *psy,
> ret = -EINVAL;
> }
>
> - pm_runtime_mark_last_busy(&mfi->udev->dev);
> pm_runtime_put_autosuspend(&mfi->udev->dev);
>
> return ret;
> diff --git a/drivers/usb/mtu3/mtu3_plat.c b/drivers/usb/mtu3/mtu3_plat.c
> index 7b5a431acb56..cc8a864dbd63 100644
> --- a/drivers/usb/mtu3/mtu3_plat.c
> +++ b/drivers/usb/mtu3/mtu3_plat.c
> @@ -431,7 +431,6 @@ static int mtu3_probe(struct platform_device *pdev)
> }
>
> device_enable_async_suspend(dev);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> pm_runtime_forbid(dev);
>
> diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
> index c7234b236971..0acc62569ae5 100644
> --- a/drivers/usb/musb/musb_core.c
> +++ b/drivers/usb/musb/musb_core.c
> @@ -2031,7 +2031,6 @@ static void musb_pm_runtime_check_session(struct musb *musb)
> if (!musb->session)
> break;
> trace_musb_state(musb, devctl, "Allow PM on possible host mode disconnect");
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> musb->session = false;
> return;
> @@ -2063,7 +2062,6 @@ static void musb_pm_runtime_check_session(struct musb *musb)
> msecs_to_jiffies(3000));
> } else {
> trace_musb_state(musb, devctl, "Allow PM with no session");
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> }
>
> @@ -2090,7 +2088,6 @@ static void musb_irq_work(struct work_struct *data)
> sysfs_notify(&musb->controller->kobj, NULL, "mode");
> }
>
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> }
>
> @@ -2564,7 +2561,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
> musb_init_debugfs(musb);
>
> musb->is_initialized = 1;
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
>
> return 0;
> @@ -2887,7 +2883,6 @@ static int musb_resume(struct device *dev)
> error);
> spin_unlock_irqrestore(&musb->lock, flags);
>
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
>
> return 0;
> diff --git a/drivers/usb/musb/musb_debugfs.c b/drivers/usb/musb/musb_debugfs.c
> index 2d623284edf6..5092d62c2062 100644
> --- a/drivers/usb/musb/musb_debugfs.c
> +++ b/drivers/usb/musb/musb_debugfs.c
> @@ -106,7 +106,6 @@ static int musb_regdump_show(struct seq_file *s, void *unused)
> }
> }
>
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> return 0;
> }
> @@ -119,7 +118,6 @@ static int musb_test_mode_show(struct seq_file *s, void *unused)
>
> pm_runtime_get_sync(musb->controller);
> test = musb_readb(musb->mregs, MUSB_TESTMODE);
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
>
> if (test == (MUSB_TEST_FORCE_HOST | MUSB_TEST_FORCE_FS))
> @@ -216,7 +214,6 @@ static ssize_t musb_test_mode_write(struct file *file,
> musb_writeb(musb->mregs, MUSB_TESTMODE, test);
>
> ret:
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> return count;
> }
> @@ -243,7 +240,6 @@ static int musb_softconnect_show(struct seq_file *s, void *unused)
> reg = musb_readb(musb->mregs, MUSB_DEVCTL);
> connect = reg & MUSB_DEVCTL_SESSION ? 1 : 0;
>
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> break;
> default:
> @@ -304,7 +300,6 @@ static ssize_t musb_softconnect_write(struct file *file,
> }
> }
>
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> return count;
> }
> diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
> index 12f587ab8511..9f93ed59a7e6 100644
> --- a/drivers/usb/musb/musb_dsps.c
> +++ b/drivers/usb/musb/musb_dsps.c
> @@ -296,7 +296,6 @@ static void otg_timer(struct timer_list *t)
> if (err < 0)
> dev_err(dev, "%s resume work: %i\n", __func__, err);
> spin_unlock_irqrestore(&musb->lock, flags);
> - pm_runtime_mark_last_busy(dev);
> pm_runtime_put_autosuspend(dev);
> }
>
> diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
> index 6869c58367f2..f6ea91df80e4 100644
> --- a/drivers/usb/musb/musb_gadget.c
> +++ b/drivers/usb/musb/musb_gadget.c
> @@ -1258,7 +1258,6 @@ static int musb_gadget_queue(struct usb_ep *ep, struct usb_request *req,
>
> unlock:
> spin_unlock_irqrestore(&musb->lock, lockflags);
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
>
> return status;
> @@ -1642,7 +1641,6 @@ static void musb_gadget_work(struct work_struct *work)
> spin_lock_irqsave(&musb->lock, flags);
> musb_pullup(musb, musb->softconnect);
> spin_unlock_irqrestore(&musb->lock, flags);
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> }
>
> @@ -1862,7 +1860,6 @@ static int musb_gadget_start(struct usb_gadget *g,
> if (musb->xceiv && musb->xceiv->last_event == USB_EVENT_ID)
> musb_platform_set_vbus(musb, 1);
>
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
>
> return 0;
> @@ -1915,7 +1912,6 @@ static int musb_gadget_stop(struct usb_gadget *g)
> */
>
> /* Force check of devctl register for PM runtime */
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
>
> return 0;
> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
> index 2970967a4fd2..191901317d7f 100644
> --- a/drivers/usb/musb/omap2430.c
> +++ b/drivers/usb/musb/omap2430.c
> @@ -151,7 +151,6 @@ static void omap_musb_set_mailbox(struct omap2430_glue *glue)
> default:
> dev_dbg(musb->controller, "ID float\n");
> }
> - pm_runtime_mark_last_busy(musb->controller);
> pm_runtime_put_autosuspend(musb->controller);
> atomic_notifier_call_chain(&musb->xceiv->notifier,
> musb->xceiv->last_event, NULL);
> --
> 2.39.5
>
--
Best regards,
Peter
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 42/80] mfd: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 42/80] mfd: " Sakari Ailus
2025-07-07 8:47 ` Charles Keepax
@ 2025-07-23 8:42 ` Lee Jones
1 sibling, 0 replies; 162+ messages in thread
From: Lee Jones @ 2025-07-23 8:42 UTC (permalink / raw)
To: Lee Jones, James Ogletree, Fred Treven, Ben Bright, David Rhodes,
Richard Fitzgerald, Sakari Ailus
Cc: patches, linux-kernel, linux-sound
On Fri, 04 Jul 2025 10:54:32 +0300, Sakari Ailus wrote:
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
>
Applied, thanks!
[42/80] mfd: Remove redundant pm_runtime_mark_last_busy() calls
commit: 324db89e720150e9592d26f1c8da84685f68996b
--
Lee Jones [李琼斯]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 06/80] clk: imx: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 06/80] clk: imx: " Sakari Ailus
2025-07-07 8:30 ` Peng Fan
@ 2025-07-24 21:37 ` Stephen Boyd
1 sibling, 0 replies; 162+ messages in thread
From: Stephen Boyd @ 2025-07-24 21:37 UTC (permalink / raw)
To: Abel Vesa, Fabio Estevam, Michael Turquette, Peng Fan,
Pengutronix Kernel Team, Sakari Ailus, Sascha Hauer, Shawn Guo
Cc: linux-clk, imx, linux-arm-kernel, linux-kernel
Quoting Sakari Ailus (2025-07-04 00:54:00)
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Applied to clk-next
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 07/80] clk: qcom: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 07/80] clk: qcom: " Sakari Ailus
@ 2025-07-24 21:46 ` Stephen Boyd
0 siblings, 0 replies; 162+ messages in thread
From: Stephen Boyd @ 2025-07-24 21:46 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Sakari Ailus
Cc: linux-arm-msm, linux-clk, linux-kernel
Quoting Sakari Ailus (2025-07-04 00:54:01)
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
Applied to clk-next
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: (subset) [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
` (86 preceding siblings ...)
2025-07-07 16:29 ` Mark Brown
@ 2025-07-30 23:40 ` Alexandre Belloni
87 siblings, 0 replies; 162+ messages in thread
From: Alexandre Belloni @ 2025-07-30 23:40 UTC (permalink / raw)
To: linux-pm, Sakari Ailus; +Cc: linux-kernel, Rafael J. Wysocki
On Fri, 04 Jul 2025 10:52:25 +0300, Sakari Ailus wrote:
> Late last year I posted a set to switch to __pm_runtime_mark_last_busy()
> and gradually get rid of explicit pm_runtime_mark_last_busy() calls in
> drivers, embedding them in the appropriate pm_runtime_*autosuspend*()
> calls. The overall feedback I got at the time was that this is an
> unnecessary intermediate step, and removing the
> pm_runtime_mark_last_busy() calls can be done after adding them to the
> relevant Runtime PM autosuspend related functions. The latter part has
> been done and is present in Rafael's tree at the moment, also see
> <URL:https://lore.kernel.org/linux-pm/CAJZ5v0g7-8UWp6ATOy+=oGdxDaCnfKHBG_+kbiTr+VeuXZsUFQ@mail.gmail.com/>:
>
> [...]
Applied, thanks!
[24/80] i3c: master: svc: Remove redundant pm_runtime_mark_last_busy() calls
https://git.kernel.org/abelloni/c/0c2ce4fba48c
[25/80] i3c: dw: Remove redundant pm_runtime_mark_last_busy() calls
https://git.kernel.org/abelloni/c/5fa62d4ec49a
Best regards,
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 64/80] media: rkvdec: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 7:54 ` [PATCH 64/80] media: rkvdec: " Sakari Ailus
2025-07-04 13:05 ` Nicolas Dufresne
@ 2025-08-11 13:48 ` Nicolas Dufresne
1 sibling, 0 replies; 162+ messages in thread
From: Nicolas Dufresne @ 2025-08-11 13:48 UTC (permalink / raw)
To: Sakari Ailus, Ezequiel Garcia, Mauro Carvalho Chehab,
Greg Kroah-Hartman
Cc: linux-media, linux-rockchip, linux-staging, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1568 bytes --]
Hi Sakari,
Le vendredi 04 juillet 2025 à 10:54 +0300, Sakari Ailus a écrit :
> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
> pm_runtime_mark_last_busy().
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> The cover letter of the set can be found here
> <URL:
> https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.i
> ntel.com>.
>
> In brief, this patch depends on PM runtime patches adding marking the last
> busy timestamp in autosuspend related functions. The patches are here, on
> rc2:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
> pm-runtime-6.17-rc1
>
> drivers/staging/media/rkvdec/rkvdec.c | 1 -
This driver was de-stage during 6.17, I will port it, no action required.
Nicolas
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/staging/media/rkvdec/rkvdec.c
> b/drivers/staging/media/rkvdec/rkvdec.c
> index d707088ec0dc..445f7c92eee3 100644
> --- a/drivers/staging/media/rkvdec/rkvdec.c
> +++ b/drivers/staging/media/rkvdec/rkvdec.c
> @@ -765,7 +765,6 @@ static void rkvdec_job_finish(struct rkvdec_ctx *ctx,
> {
> struct rkvdec_dev *rkvdec = ctx->dev;
>
> - pm_runtime_mark_last_busy(rkvdec->dev);
> pm_runtime_put_autosuspend(rkvdec->dev);
> rkvdec_job_finish_no_pm(ctx, result);
> }
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 162+ messages in thread
* Re: [PATCH 19/80] drm/panfrost: Remove redundant pm_runtime_mark_last_busy() calls
2025-07-04 9:18 ` Steven Price
@ 2025-08-15 14:22 ` Steven Price
0 siblings, 0 replies; 162+ messages in thread
From: Steven Price @ 2025-08-15 14:22 UTC (permalink / raw)
To: Sakari Ailus, Boris Brezillon, Rob Herring, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter
Cc: dri-devel, linux-kernel
On 04/07/2025 10:18, Steven Price wrote:
> On 04/07/2025 08:54, Sakari Ailus wrote:
>> pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
>> pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
>> to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
>> pm_runtime_mark_last_busy().
>>
>> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
>
> Reviewed-by: Steven Price <steven.price@arm.com>
>
> But this can't be merged via drm-misc until the PM changes have hit
> Linus' tree and been backmerged to drm-misc-next.
The back merged of -rc1 happened, so I've now merged this to drm-misc-next.
Thanks,
Steve
> Thanks,
> Steve
>
>> ---
>> The cover letter of the set can be found here
>> <URL:https://lore.kernel.org/linux-pm/20250704075225.3212486-1-sakari.ailus@linux.intel.com>.
>>
>> In brief, this patch depends on PM runtime patches adding marking the last
>> busy timestamp in autosuspend related functions. The patches are here, on
>> rc2:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
>> pm-runtime-6.17-rc1
>>
>> drivers/gpu/drm/panfrost/panfrost_perfcnt.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
>> index 563f16bae543..0dd62e8b2fa7 100644
>> --- a/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
>> +++ b/drivers/gpu/drm/panfrost/panfrost_perfcnt.c
>> @@ -203,7 +203,6 @@ static int panfrost_perfcnt_disable_locked(struct panfrost_device *pfdev,
>> panfrost_mmu_as_put(pfdev, perfcnt->mapping->mmu);
>> panfrost_gem_mapping_put(perfcnt->mapping);
>> perfcnt->mapping = NULL;
>> - pm_runtime_mark_last_busy(pfdev->dev);
>> pm_runtime_put_autosuspend(pfdev->dev);
>>
>> return 0;
>> @@ -279,7 +278,6 @@ void panfrost_perfcnt_close(struct drm_file *file_priv)
>> if (perfcnt->user == pfile)
>> panfrost_perfcnt_disable_locked(pfdev, file_priv);
>> mutex_unlock(&perfcnt->lock);
>> - pm_runtime_mark_last_busy(pfdev->dev);
>> pm_runtime_put_autosuspend(pfdev->dev);
>> }
>>
>
^ permalink raw reply [flat|nested] 162+ messages in thread
end of thread, other threads:[~2025-08-15 14:22 UTC | newest]
Thread overview: 162+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-04 7:52 [PATCH 00/80] treewide: Remove redundant pm_runtime_mark_last_busy() calls Sakari Ailus
2025-07-04 7:53 ` [PATCH 01/80] accel/ivpu: " Sakari Ailus
2025-07-07 8:29 ` Jacek Lawrynowicz
2025-07-04 7:53 ` [PATCH 02/80] accel/amdxdna: " Sakari Ailus
2025-07-07 16:52 ` Lizhi Hou
2025-07-04 7:53 ` [PATCH 03/80] Bluetooth: " Sakari Ailus
2025-07-04 7:53 ` [PATCH 04/80] bus: sunxi-rsb: " Sakari Ailus
2025-07-15 16:33 ` Chen-Yu Tsai
2025-07-04 7:53 ` [PATCH 05/80] hwrng: " Sakari Ailus
2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-18 10:58 ` Herbert Xu
2025-07-04 7:54 ` [PATCH 06/80] clk: imx: " Sakari Ailus
2025-07-07 8:30 ` Peng Fan
2025-07-24 21:37 ` Stephen Boyd
2025-07-04 7:54 ` [PATCH 07/80] clk: qcom: " Sakari Ailus
2025-07-24 21:46 ` Stephen Boyd
2025-07-04 7:54 ` [PATCH 08/80] crypto: " Sakari Ailus
2025-07-18 10:59 ` Herbert Xu
2025-07-04 7:54 ` [PATCH 09/80] dmaengine: at_xdmac: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 10/80] dmaengine: pl330: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 11/80] dmaengine: qcom: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 12/80] dmaengine: ste_dma40: " Sakari Ailus
2025-07-04 8:41 ` Linus Walleij
2025-07-04 7:54 ` [PATCH 13/80] dmaengine: ti: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 14/80] dmaengine: zynqmp_dma: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 15/80] gpio: arizona: " Sakari Ailus
2025-07-07 8:46 ` Charles Keepax
2025-07-04 7:54 ` [PATCH 16/80] drm/amd: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 17/80] drm/nouveau: " Sakari Ailus
2025-07-04 9:24 ` Danilo Krummrich
2025-07-04 7:54 ` [PATCH 18/80] drm/radeon: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 19/80] drm/panfrost: " Sakari Ailus
2025-07-04 9:18 ` Steven Price
2025-08-15 14:22 ` Steven Price
2025-07-04 7:54 ` [PATCH 21/80] HSI: omap_ssi_port: " Sakari Ailus
2025-07-05 0:37 ` Sebastian Reichel
2025-07-04 7:54 ` [PATCH 20/80] drivers: drm: " Sakari Ailus
2025-07-04 8:11 ` Jani Nikula
2025-07-04 8:58 ` Laurent Pinchart
2025-07-04 9:12 ` Thierry Reding
2025-07-04 9:18 ` Steven Price
2025-07-04 10:24 ` Maíra Canal
2025-07-08 14:01 ` Luca Ceresoli
2025-07-04 7:54 ` [PATCH 22/80] stm class: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 23/80] i2c: " Sakari Ailus
2025-07-10 20:49 ` Andi Shyti
2025-07-04 7:54 ` [PATCH 24/80] i3c: master: svc: " Sakari Ailus
2025-07-15 14:00 ` Frank Li
2025-07-04 7:54 ` [PATCH 25/80] i3c: dw: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 27/80] iio: accel: " Sakari Ailus
2025-07-04 9:05 ` Jonathan Cameron
2025-07-10 6:46 ` Matti Vaittinen
2025-07-13 13:43 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 26/80] HID: intel-thc-hid: " Sakari Ailus
2025-07-07 5:11 ` Xu, Even
2025-07-04 7:54 ` [PATCH 28/80] iio: adc: " Sakari Ailus
2025-07-04 8:42 ` Linus Walleij
2025-07-04 9:09 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 29/80] iio: chemical: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 30/80] iio: common: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 32/80] iio: gyro: " Sakari Ailus
2025-07-04 8:41 ` Linus Walleij
2025-07-04 15:25 ` Rui Miguel Silva
2025-07-04 7:54 ` [PATCH 31/80] iio: dac: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 33/80] iio: imu: " Sakari Ailus
2025-07-04 10:26 ` Waqar Hameed
2025-07-04 7:54 ` [PATCH 34/80] iio: light: " Sakari Ailus
2025-07-04 8:42 ` Linus Walleij
2025-07-06 10:31 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 35/80] iio: magnetometer: " Sakari Ailus
2025-07-04 8:43 ` Linus Walleij
2025-07-06 10:28 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 36/80] iio: pressure: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 37/80] iio: proximity: " Sakari Ailus
2025-07-06 10:27 ` Jonathan Cameron
2025-07-04 7:54 ` [PATCH 38/80] iio: temperature: " Sakari Ailus
2025-07-04 16:00 ` Crt Mori
2025-07-06 10:25 ` Jonathan Cameron
2025-07-06 10:26 ` Jonathan Cameron
2025-07-08 10:52 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 39/80] Input: omap4-keypad: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 40/80] Input: cs40l50: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 41/80] media: " Sakari Ailus
2025-07-04 8:56 ` Laurent Pinchart
2025-07-04 9:07 ` Thierry Reding
2025-07-04 9:32 ` Tommaso Merciai
2025-07-04 11:30 ` Dikshita Agarwal
2025-07-04 15:16 ` Sean Young
2025-07-07 15:57 ` Dave Stevenson
2025-07-09 8:43 ` Benjamin Gaignard
2025-07-04 7:54 ` [PATCH 42/80] mfd: " Sakari Ailus
2025-07-07 8:47 ` Charles Keepax
2025-07-23 8:42 ` (subset) " Lee Jones
2025-07-04 7:54 ` [PATCH 43/80] mei: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 45/80] mtd: rawnand: gpmi: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 44/80] mmc: " Sakari Ailus
2025-07-09 14:02 ` Ulf Hansson
2025-07-04 7:54 ` [PATCH 46/80] net: ethernet: " Sakari Ailus
2025-07-04 8:57 ` Niklas Söderlund
2025-07-04 7:54 ` [PATCH 47/80] net: ipa: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 48/80] net: wireless: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 49/80] net: wwan: " Sakari Ailus
2025-07-05 9:51 ` Sergey Ryazanov
2025-07-04 7:54 ` [PATCH 50/80] nfc: trf7970a: " Sakari Ailus
2025-07-04 8:03 ` Krzysztof Kozlowski
2025-07-15 8:18 ` Sakari Ailus
2025-07-04 7:54 ` [PATCH 52/80] phy: motorola: phy-mapphone-mdm6600: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 51/80] PCI/portdrv: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 53/80] phy: ti: phy-twl4030-usb: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 55/80] power: supply: twl4030_charger: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 54/80] power: supply: bq24190: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 56/80] pwm: img: " Sakari Ailus
2025-07-09 8:55 ` Uwe Kleine-König
2025-07-04 7:54 ` [PATCH 57/80] regulator: stm32-vrefbuf: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 58/80] remoteproc: omap: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 60/80] soundwire: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 59/80] slimbus: " Sakari Ailus
2025-07-09 6:41 ` Srinivas Kandagatla
2025-07-04 7:54 ` [PATCH 61/80] spi: " Sakari Ailus
2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-04 7:54 ` [PATCH 62/80] staging: greybus: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 63/80] " Sakari Ailus
2025-07-04 7:54 ` [PATCH 64/80] media: rkvdec: " Sakari Ailus
2025-07-04 13:05 ` Nicolas Dufresne
2025-08-11 13:48 ` Nicolas Dufresne
2025-07-04 7:54 ` [PATCH 65/80] thunderbolt: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 66/80] serial: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 67/80] usb: " Sakari Ailus
2025-07-04 9:11 ` Thierry Reding
2025-07-07 9:35 ` AngeloGioacchino Del Regno
2025-07-21 2:25 ` Peter Chen (CIX)
2025-07-04 7:54 ` [PATCH 68/80] w1: omap-hdq: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 69/80] ALSA: hda: " Sakari Ailus
2025-07-04 11:47 ` Takashi Iwai
2025-07-04 11:52 ` Mark Brown
2025-07-04 11:58 ` Takashi Iwai
2025-07-06 8:27 ` Takashi Iwai
2025-07-04 7:54 ` [PATCH 70/80] ASoC: atmel: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 71/80] ASoC: codecs: " Sakari Ailus
2025-07-07 9:16 ` Charles Keepax
2025-07-04 7:54 ` [PATCH 72/80] ASoC: Intel: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 73/80] ASoC: component: " Sakari Ailus
2025-07-04 7:54 ` [PATCH 74/80] ASoC: SOF: " Sakari Ailus
2025-07-04 8:26 ` Péter Ujfalusi
2025-07-04 7:55 ` [PATCH 75/80] ALSA: intel_hdmi: " Sakari Ailus
2025-07-04 11:45 ` Takashi Iwai
2025-07-06 8:26 ` Takashi Iwai
2025-07-04 7:55 ` [PATCH 76/80] soc: apple: mailbox: " Sakari Ailus
2025-07-04 7:55 ` [PATCH 77/80] block: pm: " Sakari Ailus
2025-07-07 5:59 ` Christoph Hellwig
2025-07-04 7:55 ` [PATCH 78/80] Input: cyapa - " Sakari Ailus
2025-07-04 7:55 ` [PATCH 80/80] scsi: block: pm: " Sakari Ailus
2025-07-04 7:55 ` [PATCH 79/80] mei: " Sakari Ailus
2025-07-04 9:03 ` [PATCH 00/80] treewide: " Jonathan Cameron
2025-07-04 12:04 ` Mark Brown
2025-07-08 10:01 ` Sakari Ailus
2025-07-04 18:15 ` (subset) " Mark Brown
2025-07-04 23:39 ` Mark Brown
2025-07-06 23:04 ` Sebastian Reichel
2025-07-07 8:03 ` Bartosz Golaszewski
2025-07-07 16:29 ` Mark Brown
2025-07-30 23:40 ` Alexandre Belloni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).