The reset control API has two modes: exclusive access, where the driver expects to have full and immediate control over the state of the reset line, and shared (clock-like) access, where drivers only request reset deassertion while active, but don't care about the state of the reset line while inactive. Commit a53e35db70d1 ("reset: Ensure drivers are explicit when requesting reset lines") started to transition the reset control request API calls to explicitly state whether the driver needs exclusive or shared reset control behavior. This series converts all drivers that currently implicitly request exclusive reset controls to the corresponding explicit API call. It is, for the most part, generated from the following semantic patch: @@ expression rstc, dev, id; @@ -rstc = reset_control_get(dev, id); +rstc = reset_control_get_exclusive(dev, id); @@ expression rstc, dev, id; @@ -rstc = reset_control_get_optional(dev, id); +rstc = reset_control_get_optional_exclusive(dev, id); @@ expression rstc, node, id; @@ -rstc = of_reset_control_get(node, id); +rstc = of_reset_control_get_exclusive(node, id); @@ expression rstc, node, index; @@ -rstc = of_reset_control_get_by_index(node, index); +rstc = of_reset_control_get_exclusive_by_index(node, index); @@ expression rstc, dev, id; @@ -rstc = devm_reset_control_get(dev, id); +rstc = devm_reset_control_get_exclusive(dev, id); @@ expression rstc, dev, id; @@ -rstc = devm_reset_control_get_optional(dev, id); +rstc = devm_reset_control_get_optional_exclusive(dev, id); @@ expression rstc, dev, index; @@ -rstc = devm_reset_control_get_by_index(dev, index); +rstc = devm_reset_control_get_exclusive_by_index(dev, index); After all driver patches are applied, the temporary transition helpers can be removed. regards Philipp Philipp Zabel (102): ARM: rockchip: explicitly request exclusive reset control ARM: socfpga: explicitly request exclusive reset control MIPS: pci-mt7620: explicitly request exclusive reset control ahci: st: explicitly request exclusive reset control ata: sata_gemini: explicitly request exclusive reset control ata: ahci_tegra: explicitly request exclusive reset control bus: sunxi-rsb: explicitly request exclusive reset control bus: tegra-gmi: explicitly request exclusive reset control clk: sunxi: explicitly request exclusive reset control clk: tegra: explicitly request exclusive reset control clocksource/drivers/timer-stm32: explicitly request exclusive reset control clocksource/drivers/sun5i: explicitly request exclusive reset control crypto: rockchip: explicitly request exclusive reset control crypto: sun4i-ss - request exclusive reset control PM / devfreq: tegra: explicitly request exclusive reset control dmaengine: stm32-dma: explicitly request exclusive reset control dmaengine: sun6i: explicitly request exclusive reset control dmaengine: tegra-apb: explicitly request exclusive reset control drm: kirin: explicitly request exclusive reset control drm/nouveau/tegra: explicitly request exclusive reset control drm/rockchip: explicitly request exclusive reset control drm/sti: explicitly request exclusive reset control drm/stm: explicitly request exclusive reset control drm/sun4i: explicitly request exclusive reset control drm/tegra: explicitly request exclusive reset control gpu: host1x: explicitly request exclusive reset control i2c: mv64xxx: explicitly request exclusive reset control i2c: stm32f4: explicitly request exclusive reset control i2c: sun6i-pw2i: explicitly request exclusive reset control i2c: tegra: explicitly request exclusive reset control iio: adc: rockchip_saradc: explicitly request exclusive reset control iio: dac: stm32-dac-core: explicitly request exclusive reset control Input: tegra-kbc - request exclusive reset control coda: explicitly request exclusive reset control st-rc: explicitly request exclusive reset control stm32-dcmi: explicitly request exclusive reset control rc: sunxi-cir: explicitly request exclusive reset control mmc: dw_mmc: explicitly request exclusive reset control mmc: sdhci-st: explicitly request exclusive reset control mmc: sunxi: explicitly request exclusive reset control mmc: tegra: explicitly request exclusive reset control mtd: nand: sunxi: explicitly request exclusive reset control mtd: spi-nor: stm32-quadspi: explicitly request exclusive reset control net: dsa: mt7530: explicitly request exclusive reset control net: ethernet: hisi_femac: explicitly request exclusive reset control net: ethernet: hix5hd2_gmac: explicitly request exclusive reset control net: stmmac: explicitly request exclusive reset control net: stmmac: dwc-qos: explicitly request exclusive reset control ath10k: explicitly request exclusive reset control nvmem: lpc18xx-eeprom: explicitly request exclusive reset control PCI: dwc: pcie-qcom: explicitly request exclusive reset control PCI: imx6: explicitly request exclusive reset control PCI: tegra: explicitly request exclusive reset control PCI: rockchip: explicitly request exclusive reset control phy: berlin-usb: explicitly request exclusive reset control PCI: mediatek: explicitly request exclusive reset control phy: qcom-usb-hs: explicitly request exclusive reset control phy: rockchip-pcie: explicitly request exclusive reset control phy: rockchip-typec: explicitly request exclusive reset control phy: rockchip-usb: explicitly request exclusive reset control phy: sun4i-usb: explicitly request exclusive reset control phy: sun9i-usb: explicitly request exclusive reset control phy: tegra: explicitly request exclusive reset control phy: qcom-qmp: explicitly request exclusive reset control phy: qcom-qusb2: explicitly request exclusive reset control pinctrl: stm32: explicitly request exclusive reset control pinctrl: sunxi: explicitly request exclusive reset control pinctrl: tegra: explicitly request exclusive reset control pwm: hibvt: explicitly request exclusive reset control pwm: tegra: explicitly request exclusive reset control remoteproc/keystone: explicitly request exclusive reset control remoteproc: qcom: explicitly request exclusive reset control remoteproc: st: explicitly request exclusive reset control soc: mediatek: PMIC wrap: explicitly request exclusive reset control soc/tegra: pmc: explicitly request exclusive reset control spi: stm32: explicitly request exclusive reset control spi: sun6i: explicitly request exclusive reset control spi: tegra20-slink: explicitly request exclusive reset control spi: tegra114: explicitly request exclusive reset control spi: tegra20-sflash: explicitly request exclusive reset control staging: nvec: explicitly request exclusive reset control thermal: rockchip: explicitly request exclusive reset control thermal: tegra: explicitly request exclusive reset control serial: 8250_dw: explicitly request exclusive reset control serial: tegra: explicitly request exclusive reset control usb: chipidea: msm: explicitly request exclusive reset control usb: dwc2: explicitly request exclusive reset control usb: host: ehci-tegra: explicitly request exclusive reset control usb: host: xhci-tegra: explicitly request exclusive reset control usb: musb: sunxi: explicitly request exclusive reset control usb: phy: msm: explicitly request exclusive reset control usb: phy: qcom-8x16-usb: explicitly request exclusive reset control watchdog: asm9260: explicitly request exclusive reset control watchdog: mt7621: explicitly request exclusive reset control watchdog: rt2880: explicitly request exclusive reset control watchdog: zx2967: explicitly request exclusive reset control ASoC: img: explicitly request exclusive reset control ASoC: stm32: explicitly request exclusive reset control ASoC: sun4i: explicitly request exclusive reset control ASoC: tegra: explicitly request exclusive reset control Documentation: devres: add explicit exclusive/shared reset control request calls reset: finish transition to explicit exclusive reset control requests Documentation/driver-model/devres.txt | 7 ++- arch/arm/mach-rockchip/platsmp.c | 2 +- arch/mips/pci/pci-mt7620.c | 2 +- drivers/ata/ahci_st.c | 6 +-- drivers/ata/ahci_tegra.c | 8 ++-- drivers/ata/sata_gemini.c | 4 +- drivers/bus/sunxi-rsb.c | 2 +- drivers/bus/tegra-gmi.c | 2 +- drivers/clk/sunxi/clk-sun9i-mmc.c | 2 +- drivers/clk/tegra/clk-dfll.c | 2 +- drivers/clocksource/timer-stm32.c | 2 +- drivers/clocksource/timer-sun5i.c | 2 +- drivers/crypto/rockchip/rk3288_crypto.c | 2 +- drivers/crypto/sunxi-ss/sun4i-ss-core.c | 3 +- drivers/devfreq/tegra-devfreq.c | 2 +- drivers/dma/stm32-dma.c | 2 +- drivers/dma/sun6i-dma.c | 2 +- drivers/dma/tegra20-apb-dma.c | 2 +- drivers/fpga/altera-hps2fpga.c | 3 +- drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 2 +- drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 2 +- drivers/gpu/drm/rockchip/cdn-dp-core.c | 8 ++-- drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 2 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 +- drivers/gpu/drm/sti/sti_hdmi.c | 2 +- drivers/gpu/drm/sti/sti_hqvdp.c | 2 +- drivers/gpu/drm/sti/sti_tvout.c | 2 +- drivers/gpu/drm/stm/ltdc.c | 2 +- drivers/gpu/drm/sun4i/sun4i_backend.c | 4 +- drivers/gpu/drm/sun4i/sun4i_tcon.c | 2 +- drivers/gpu/drm/sun4i/sun4i_tv.c | 2 +- drivers/gpu/drm/sun4i/sun6i_drc.c | 2 +- drivers/gpu/drm/sun4i/sun8i_mixer.c | 2 +- drivers/gpu/drm/tegra/dc.c | 2 +- drivers/gpu/drm/tegra/dpaux.c | 3 +- drivers/gpu/drm/tegra/dsi.c | 2 +- drivers/gpu/drm/tegra/gr3d.c | 6 +-- drivers/gpu/drm/tegra/hdmi.c | 2 +- drivers/gpu/drm/tegra/sor.c | 2 +- drivers/gpu/host1x/dev.c | 2 +- drivers/i2c/busses/i2c-mv64xxx.c | 2 +- drivers/i2c/busses/i2c-stm32f4.c | 2 +- drivers/i2c/busses/i2c-sun6i-p2wi.c | 2 +- drivers/i2c/busses/i2c-tegra.c | 2 +- drivers/iio/adc/rockchip_saradc.c | 3 +- drivers/iio/dac/stm32-dac-core.c | 2 +- drivers/input/keyboard/tegra-kbc.c | 2 +- drivers/media/platform/coda/coda-common.c | 3 +- drivers/media/platform/stm32/stm32-dcmi.c | 2 +- drivers/media/rc/st_rc.c | 2 +- drivers/media/rc/sunxi-cir.c | 2 +- drivers/mmc/host/dw_mmc.c | 2 +- drivers/mmc/host/sdhci-st.c | 2 +- drivers/mmc/host/sdhci-tegra.c | 3 +- drivers/mmc/host/sunxi-mmc.c | 3 +- drivers/mtd/nand/sunxi_nand.c | 2 +- drivers/mtd/spi-nor/stm32-quadspi.c | 2 +- drivers/net/dsa/mt7530.c | 3 +- drivers/net/ethernet/hisilicon/hisi_femac.c | 4 +- drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 6 +-- .../ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c | 2 +- drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 3 +- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 +- drivers/net/wireless/ath/ath10k/ahb.c | 15 ++++--- drivers/nvmem/lpc18xx_eeprom.c | 2 +- drivers/pci/dwc/pci-imx6.c | 7 +-- drivers/pci/dwc/pcie-qcom.c | 40 +++++++++-------- drivers/pci/host/pci-tegra.c | 6 +-- drivers/pci/host/pcie-mediatek.c | 2 +- drivers/pci/host/pcie-rockchip.c | 15 ++++--- drivers/phy/allwinner/phy-sun4i-usb.c | 2 +- drivers/phy/allwinner/phy-sun9i-usb.c | 4 +- drivers/phy/marvell/phy-berlin-usb.c | 2 +- drivers/phy/qualcomm/phy-qcom-qmp.c | 4 +- drivers/phy/qualcomm/phy-qcom-qusb2.c | 3 +- drivers/phy/qualcomm/phy-qcom-usb-hs.c | 3 +- drivers/phy/rockchip/phy-rockchip-pcie.c | 2 +- drivers/phy/rockchip/phy-rockchip-typec.c | 6 +-- drivers/phy/rockchip/phy-rockchip-usb.c | 2 +- drivers/phy/tegra/xusb-tegra210.c | 4 +- drivers/phy/tegra/xusb.c | 2 +- drivers/pinctrl/stm32/pinctrl-stm32.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sun8i-a23-r.c | 2 +- drivers/pinctrl/tegra/pinctrl-tegra-xusb.c | 2 +- drivers/pwm/pwm-hibvt.c | 2 +- drivers/pwm/pwm-tegra.c | 2 +- drivers/remoteproc/keystone_remoteproc.c | 2 +- drivers/remoteproc/qcom_q6v5_pil.c | 3 +- drivers/remoteproc/st_remoteproc.c | 6 ++- drivers/reset/core.c | 2 +- drivers/soc/mediatek/mtk-pmic-wrap.c | 5 ++- drivers/soc/tegra/pmc.c | 2 +- drivers/spi/spi-stm32.c | 2 +- drivers/spi/spi-sun6i.c | 2 +- drivers/spi/spi-tegra114.c | 2 +- drivers/spi/spi-tegra20-sflash.c | 2 +- drivers/spi/spi-tegra20-slink.c | 2 +- drivers/staging/nvec/nvec.c | 2 +- drivers/thermal/rockchip_thermal.c | 3 +- drivers/thermal/tegra/soctherm.c | 3 +- drivers/tty/serial/8250/8250_dw.c | 2 +- drivers/tty/serial/serial-tegra.c | 2 +- drivers/usb/chipidea/ci_hdrc_msm.c | 2 +- drivers/usb/dwc2/platform.c | 3 +- drivers/usb/host/ehci-tegra.c | 5 ++- drivers/usb/host/xhci-tegra.c | 6 ++- drivers/usb/musb/sunxi.c | 2 +- drivers/usb/phy/phy-msm-usb.c | 4 +- drivers/usb/phy/phy-qcom-8x16-usb.c | 2 +- drivers/watchdog/asm9260_wdt.c | 2 +- drivers/watchdog/mt7621_wdt.c | 2 +- drivers/watchdog/rt2880_wdt.c | 2 +- drivers/watchdog/zx2967_wdt.c | 2 +- include/linux/reset.h | 50 ---------------------- sound/soc/img/img-i2s-in.c | 2 +- sound/soc/img/img-i2s-out.c | 2 +- sound/soc/img/img-parallel-out.c | 2 +- sound/soc/img/img-spdif-in.c | 2 +- sound/soc/img/img-spdif-out.c | 2 +- sound/soc/stm/stm32_i2s.c | 2 +- sound/soc/stm/stm32_sai.c | 2 +- sound/soc/stm/stm32_spdifrx.c | 2 +- sound/soc/sunxi/sun4i-codec.c | 3 +- sound/soc/sunxi/sun4i-i2s.c | 2 +- sound/soc/sunxi/sun4i-spdif.c | 3 +- sound/soc/tegra/tegra30_ahub.c | 4 +- 128 files changed, 226 insertions(+), 235 deletions(-) -- 2.11.0 Cc: "David S. Miller" <davem at davemloft.net> Cc: "Emilio L?pez" <emilio at elopez.com.ar> Cc: Adrian Hunter <adrian.hunter at intel.com> Cc: Alan Stern <stern at rowland.harvard.edu> Cc: Alan Tull <atull at kernel.org> Cc: Alexandre Torgue <alexandre.torgue at st.com> Cc: Andrew Lunn <andrew at lunn.ch> Cc: Ben Skeggs <bskeggs at redhat.com> Cc: Benjamin Gaignard <benjamin.gaignard at linaro.org> Cc: Bin Liu <b-liu at ti.com> Cc: Bjorn Andersson <bjorn.andersson at linaro.org> Cc: Bjorn Helgaas <bhelgaas at google.com> Cc: Boris Brezillon <boris.brezillon at free-electrons.com> Cc: Brian Norris <computersforpeace at gmail.com> Cc: Chanwoo Choi <cw00.choi at samsung.com> Cc: Chen Feng <puck.chen at hisilicon.com> Cc: Chen-Yu Tsai <wens at csie.org> Cc: Corentin Labbe <clabbe.montjoie at gmail.com> Cc: Cyrille Pitchen <cyrille.pitchen at wedev4u.fr> Cc: Dan Williams <dan.j.williams at intel.com> Cc: Daniel Lezcano <daniel.lezcano at linaro.org> Cc: David Airlie <airlied at linux.ie> Cc: David Woodhouse <dwmw2 at infradead.org> Cc: Dmitry Torokhov <dmitry.torokhov at gmail.com> Cc: Eduardo Valentin <edubezval at gmail.com> Cc: Felipe Balbi <balbi at kernel.org> Cc: Florian Fainelli <f.fainelli at gmail.com> Cc: Giuseppe Cavallaro <peppe.cavallaro at st.com> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org> Cc: Guenter Roeck <linux at roeck-us.net> Cc: Hartmut Knaack <knaack.h at gmx.de> Cc: Heiko Stuebner <heiko at sntech.de> Cc: Herbert Xu <herbert at gondor.apana.org.au> Cc: Jaehoon Chung <jh80.chung at samsung.com> Cc: Jiri Slaby <jslaby at suse.com> Cc: Joachim Eastwood <manabian at gmail.com> Cc: John Youn <johnyoun at synopsys.com> Cc: Jon Hunter <jonathanh at nvidia.com> Cc: Jonathan Cameron <jic23 at kernel.org> Cc: Jonathan Corbet <corbet at lwn.net> Cc: Jonathan Hunter <jonathanh at nvidia.com> Cc: Kalle Valo <kvalo at qca.qualcomm.com> Cc: Kishon Vijay Abraham I <kishon at ti.com> Cc: Kyungmin Park <kyungmin.park at samsung.com> Cc: Lars-Peter Clausen <lars at metafoo.de> Cc: Laxman Dewangan <ldewangan at nvidia.com> Cc: Lee Jones <lee.jones at linaro.org> Cc: Liam Girdwood <lgirdwood at gmail.com> Cc: Linus Walleij <linus.walleij at linaro.org> Cc: Lucas Stach <l.stach at pengutronix.de> Cc: Marc Dietrich <marvin24 at gmx.de> Cc: Marek Vasut <marek.vasut at gmail.com> Cc: Mark Brown <broonie at kernel.org> Cc: Mark Yao <mark.yao at rock-chips.com> Cc: Mathias Nyman <mathias.nyman at intel.com> Cc: Matthias Brugger <matthias.bgg at gmail.com> Cc: Maxime Coquelin <mcoquelin.stm32 at gmail.com> Cc: Maxime Ripard <maxime.ripard at free-electrons.com> Cc: Michael Turquette <mturquette at baylibre.com> Cc: Moritz Fischer <moritz.fischer at ettus.com> Cc: MyungJoo Ham <myungjoo.ham at samsung.com> Cc: Ohad Ben-Cohen <ohad at wizery.com> Cc: Patrice Chotard <patrice.chotard at st.com> Cc: Peter Chen <Peter.Chen at nxp.com> Cc: Peter De Schrijver <pdeschrijver at nvidia.com> Cc: Peter Meerwald-Stadler <pmeerw at pmeerw.net> Cc: Philippe Cornu <philippe.cornu at st.com> Cc: Prashant Gaikwad <pgaikwad at nvidia.com> Cc: Rakesh Iyer <riyer at nvidia.com> Cc: Ralf Baechle <ralf at linux-mips.org> Cc: Richard Weinberger <richard at nod.at> Cc: Richard Zhu <hongxing.zhu at nxp.com> Cc: Rongrong Zou <zourongrong at gmail.com> Cc: Ryder Lee <ryder.lee at mediatek.com> Cc: Salil Mehta <salil.mehta at huawei.com> Cc: Shawn Lin <shawn.lin at rock-chips.com> Cc: Srinivas Kandagatla <srinivas.kandagatla at linaro.org> Cc: Stanimir Varbanov <svarbanov at mm-sol.com> Cc: Stephen Boyd <sboyd at codeaurora.org> Cc: Tejun Heo <tj at kernel.org> Cc: Thierry Reding <thierry.reding at gmail.com> Cc: Thomas Gleixner <tglx at linutronix.de> Cc: Ulf Hansson <ulf.hansson at linaro.org> Cc: Vincent Abriou <vincent.abriou at st.com> Cc: Vinod Koul <vinod.koul at intel.com> Cc: Vivien Didelot <vivien.didelot at savoirfairelinux.com> Cc: Wim Van Sebroeck <wim at iguana.be> Cc: Wolfram Sang <wsa at the-dreams.de> Cc: Xinliang Liu <z.liuxinliang at hisilicon.com> Cc: Xinwei Kong <kong.kongxinwei at hisilicon.com> Cc: Yannick Fertre <yannick.fertre at st.com> Cc: Yisen Zhuang <yisen.zhuang at huawei.com> Cc: Zhang Rui <rui.zhang at intel.com> Cc: alsa-devel at alsa-project.org Cc: ath10k at lists.infradead.org Cc: devel at driverdev.osuosl.org Cc: dmaengine at vger.kernel.org Cc: dri-devel at lists.freedesktop.org Cc: linux-arm-kernel at lists.infradead.org Cc: linux-arm-msm at vger.kernel.org Cc: linux-clk at vger.kernel.org Cc: linux-crypto at vger.kernel.org Cc: linux-doc at vger.kernel.org Cc: linux-fpga at vger.kernel.org Cc: linux-gpio at vger.kernel.org Cc: linux-i2c at vger.kernel.org Cc: linux-ide at vger.kernel.org Cc: linux-iio at vger.kernel.org Cc: linux-input at vger.kernel.org Cc: linux-kernel at vger.kernel.org Cc: linux-media at vger.kernel.org Cc: linux-mediatek at lists.infradead.org Cc: linux-mips at linux-mips.org Cc: linux-mmc at vger.kernel.org Cc: linux-mtd at lists.infradead.org Cc: linux-pci at vger.kernel.org Cc: linux-pm at vger.kernel.org Cc: linux-pwm at vger.kernel.org Cc: linux-remoteproc at vger.kernel.org Cc: linux-rockchip at lists.infradead.org Cc: linux-serial at vger.kernel.org Cc: linux-spi at vger.kernel.org Cc: linux-tegra at vger.kernel.org Cc: linux-usb at vger.kernel.org Cc: linux-watchdog at vger.kernel.org Cc: linux-wireless at vger.kernel.org Cc: netdev at vger.kernel.org Cc: nouveau at lists.freedesktop.org