* [PATCH 000/102] Convert drivers to explicit reset API
@ 2017-07-19 15:25 Philipp Zabel
2017-07-19 15:25 ` [PATCH 044/102] net: dsa: mt7530: explicitly request exclusive reset control Philipp Zabel
` (7 more replies)
0 siblings, 8 replies; 24+ messages in thread
From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw)
To: linux-kernel
Cc: Philipp Zabel, David S. Miller, Emilio López, Adrian Hunter,
Alan Stern, Alan Tull, Alexandre Torgue, Andrew Lunn, Ben Skeggs,
Benjamin Gaignard, Bin Liu, Bjorn Andersson, Bjorn Helgaas,
Boris Brezillon, Brian Norris, Chanwoo Choi, Chen Feng,
Chen-Yu Tsai, Corentin Labbe
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@davemloft.net>
Cc: "Emilio López" <emilio@elopez.com.ar>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Alan Tull <atull@kernel.org>
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Bin Liu <b-liu@ti.com>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Chanwoo Choi <cw00.choi@samsung.com>
Cc: Chen Feng <puck.chen@hisilicon.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Corentin Labbe <clabbe.montjoie@gmail.com>
Cc: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: David Airlie <airlied@linux.ie>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Hartmut Knaack <knaack.h@gmx.de>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Joachim Eastwood <manabian@gmail.com>
Cc: John Youn <johnyoun@synopsys.com>
Cc: Jon Hunter <jonathanh@nvidia.com>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: Kalle Valo <kvalo@qca.qualcomm.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Laxman Dewangan <ldewangan@nvidia.com>
Cc: Lee Jones <lee.jones@linaro.org>
Cc: Liam Girdwood <lgirdwood@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Marc Dietrich <marvin24@gmx.de>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Mark Yao <mark.yao@rock-chips.com>
Cc: Mathias Nyman <mathias.nyman@intel.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Moritz Fischer <moritz.fischer@ettus.com>
Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
Cc: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Cc: Peter Chen <Peter.Chen@nxp.com>
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
Cc: Rakesh Iyer <riyer@nvidia.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Richard Weinberger <richard@nod.at>
Cc: Richard Zhu <hongxing.zhu@nxp.com>
Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Ryder Lee <ryder.lee@mediatek.com>
Cc: Salil Mehta <salil.mehta@huawei.com>
Cc: Shawn Lin <shawn.lin@rock-chips.com>
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Stanimir Varbanov <svarbanov@mm-sol.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Vincent Abriou <vincent.abriou@st.com>
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: Wim Van Sebroeck <wim@iguana.be>
Cc: Wolfram Sang <wsa@the-dreams.de>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: Xinwei Kong <kong.kongxinwei@hisilicon.com>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Yisen Zhuang <yisen.zhuang@huawei.com>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: alsa-devel@alsa-project.org
Cc: ath10k@lists.infradead.org
Cc: devel@driverdev.osuosl.org
Cc: dmaengine@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-clk@vger.kernel.org
Cc: linux-crypto@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-fpga@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-i2c@vger.kernel.org
Cc: linux-ide@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-mips@linux-mips.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-mtd@lists.infradead.org
Cc: linux-pci@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linux-pwm@vger.kernel.org
Cc: linux-remoteproc@vger.kernel.org
Cc: linux-rockchip@lists.infradead.org
Cc: linux-serial@vger.kernel.org
Cc: linux-spi@vger.kernel.org
Cc: linux-tegra@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-watchdog@vger.kernel.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: nouveau@lists.freedesktop.org
^ permalink raw reply [flat|nested] 24+ messages in thread* [PATCH 044/102] net: dsa: mt7530: explicitly request exclusive reset control 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel @ 2017-07-19 15:25 ` Philipp Zabel 2017-07-19 15:25 ` [PATCH 045/102] net: ethernet: hisi_femac: " Philipp Zabel ` (6 subsequent siblings) 7 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw) To: linux-kernel Cc: Philipp Zabel, Andrew Lunn, Vivien Didelot, Florian Fainelli, netdev 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. Convert all drivers requesting exclusive resets to the explicit API call so the temporary transition helpers can be removed. No functional changes. Cc: Andrew Lunn <andrew@lunn.ch> Cc: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: netdev@vger.kernel.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/net/dsa/mt7530.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c index 1e46418a3b74c..657d06b3c6c47 100644 --- a/drivers/net/dsa/mt7530.c +++ b/drivers/net/dsa/mt7530.c @@ -1044,7 +1044,8 @@ mt7530_probe(struct mdio_device *mdiodev) if (priv->mcm) { dev_info(&mdiodev->dev, "MT7530 adapts as multi-chip module\n"); - priv->rstc = devm_reset_control_get(&mdiodev->dev, "mcm"); + priv->rstc = devm_reset_control_get_exclusive(&mdiodev->dev, + "mcm"); if (IS_ERR(priv->rstc)) { dev_err(&mdiodev->dev, "Couldn't get our reset line\n"); return PTR_ERR(priv->rstc); -- 2.11.0 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 045/102] net: ethernet: hisi_femac: explicitly request exclusive reset control 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel 2017-07-19 15:25 ` [PATCH 044/102] net: dsa: mt7530: explicitly request exclusive reset control Philipp Zabel @ 2017-07-19 15:25 ` Philipp Zabel 2017-07-19 15:25 ` [PATCH 046/102] net: ethernet: hix5hd2_gmac: " Philipp Zabel ` (5 subsequent siblings) 7 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw) To: linux-kernel; +Cc: Philipp Zabel, Yisen Zhuang, Salil Mehta, netdev 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. Convert all drivers requesting exclusive resets to the explicit API call so the temporary transition helpers can be removed. No functional changes. Cc: Yisen Zhuang <yisen.zhuang@huawei.com> Cc: Salil Mehta <salil.mehta@huawei.com> Cc: netdev@vger.kernel.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/net/ethernet/hisilicon/hisi_femac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hisi_femac.c b/drivers/net/ethernet/hisilicon/hisi_femac.c index 2c2808830e957..10aa7590afd54 100644 --- a/drivers/net/ethernet/hisilicon/hisi_femac.c +++ b/drivers/net/ethernet/hisilicon/hisi_femac.c @@ -838,14 +838,14 @@ static int hisi_femac_drv_probe(struct platform_device *pdev) goto out_free_netdev; } - priv->mac_rst = devm_reset_control_get(dev, "mac"); + priv->mac_rst = devm_reset_control_get_exclusive(dev, "mac"); if (IS_ERR(priv->mac_rst)) { ret = PTR_ERR(priv->mac_rst); goto out_disable_clk; } hisi_femac_core_reset(priv); - priv->phy_rst = devm_reset_control_get(dev, "phy"); + priv->phy_rst = devm_reset_control_get_exclusive(dev, "phy"); if (IS_ERR(priv->phy_rst)) { priv->phy_rst = NULL; } else { -- 2.11.0 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 046/102] net: ethernet: hix5hd2_gmac: explicitly request exclusive reset control 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel 2017-07-19 15:25 ` [PATCH 044/102] net: dsa: mt7530: explicitly request exclusive reset control Philipp Zabel 2017-07-19 15:25 ` [PATCH 045/102] net: ethernet: hisi_femac: " Philipp Zabel @ 2017-07-19 15:25 ` Philipp Zabel 2017-07-19 15:25 ` [PATCH 047/102] net: stmmac: " Philipp Zabel ` (4 subsequent siblings) 7 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw) To: linux-kernel; +Cc: Philipp Zabel, Yisen Zhuang, Salil Mehta, netdev 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. Convert all drivers requesting exclusive resets to the explicit API call so the temporary transition helpers can be removed. No functional changes. Cc: Yisen Zhuang <yisen.zhuang@huawei.com> Cc: Salil Mehta <salil.mehta@huawei.com> Cc: netdev@vger.kernel.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/net/ethernet/hisilicon/hix5hd2_gmac.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c b/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c index 25a6c8722ecac..02b7e2f490099 100644 --- a/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c +++ b/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c @@ -1161,16 +1161,16 @@ static int hix5hd2_dev_probe(struct platform_device *pdev) goto out_disable_mac_core_clk; } - priv->mac_core_rst = devm_reset_control_get(dev, "mac_core"); + priv->mac_core_rst = devm_reset_control_get_exclusive(dev, "mac_core"); if (IS_ERR(priv->mac_core_rst)) priv->mac_core_rst = NULL; hix5hd2_mac_core_reset(priv); - priv->mac_ifc_rst = devm_reset_control_get(dev, "mac_ifc"); + priv->mac_ifc_rst = devm_reset_control_get_exclusive(dev, "mac_ifc"); if (IS_ERR(priv->mac_ifc_rst)) priv->mac_ifc_rst = NULL; - priv->phy_rst = devm_reset_control_get(dev, "phy"); + priv->phy_rst = devm_reset_control_get_exclusive(dev, "phy"); if (IS_ERR(priv->phy_rst)) { priv->phy_rst = NULL; } else { -- 2.11.0 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 047/102] net: stmmac: explicitly request exclusive reset control 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel ` (2 preceding siblings ...) 2017-07-19 15:25 ` [PATCH 046/102] net: ethernet: hix5hd2_gmac: " Philipp Zabel @ 2017-07-19 15:25 ` Philipp Zabel 2017-07-19 15:25 ` [PATCH 048/102] net: stmmac: dwc-qos: " Philipp Zabel ` (3 subsequent siblings) 7 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw) To: linux-kernel Cc: Philipp Zabel, Giuseppe Cavallaro, Alexandre Torgue, Maxime Ripard, Chen-Yu Tsai, netdev 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. Convert all drivers requesting exclusive resets to the explicit API call so the temporary transition helpers can be removed. No functional changes. Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: Chen-Yu Tsai <wens@csie.org> Cc: netdev@vger.kernel.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 3 ++- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c index fffd6d5fc907b..2771369c105d6 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c @@ -942,7 +942,8 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) return -EINVAL; } - gmac->rst_ephy = of_reset_control_get(plat_dat->phy_node, NULL); + gmac->rst_ephy = of_reset_control_get_exclusive(plat_dat->phy_node, + NULL); if (IS_ERR(gmac->rst_ephy)) { ret = PTR_ERR(gmac->rst_ephy); if (ret == -EPROBE_DEFER) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c index a366b3747eeb5..5f94bbf745546 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -526,8 +526,8 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac) dev_dbg(&pdev->dev, "PTP rate %d\n", plat->clk_ptp_rate); } - plat->stmmac_rst = devm_reset_control_get(&pdev->dev, - STMMAC_RESOURCE_NAME); + plat->stmmac_rst = devm_reset_control_get_exclusive(&pdev->dev, + STMMAC_RESOURCE_NAME); if (IS_ERR(plat->stmmac_rst)) { if (PTR_ERR(plat->stmmac_rst) == -EPROBE_DEFER) goto error_hw_init; -- 2.11.0 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 048/102] net: stmmac: dwc-qos: explicitly request exclusive reset control 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel ` (3 preceding siblings ...) 2017-07-19 15:25 ` [PATCH 047/102] net: stmmac: " Philipp Zabel @ 2017-07-19 15:25 ` Philipp Zabel 2017-07-19 15:25 ` [PATCH 049/102] ath10k: " Philipp Zabel ` (2 subsequent siblings) 7 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw) To: linux-kernel; +Cc: Philipp Zabel, Giuseppe Cavallaro, Alexandre Torgue, netdev 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. Convert all drivers requesting exclusive resets to the explicit API call so the temporary transition helpers can be removed. No functional changes. Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: netdev@vger.kernel.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c index dd6a2f9791cc1..cf4e0f09c0361 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.c @@ -339,7 +339,7 @@ static void *tegra_eqos_probe(struct platform_device *pdev, usleep_range(2000, 4000); gpiod_set_value(eqos->reset, 0); - eqos->rst = devm_reset_control_get(&pdev->dev, "eqos"); + eqos->rst = devm_reset_control_get_exclusive(&pdev->dev, "eqos"); if (IS_ERR(eqos->rst)) { err = PTR_ERR(eqos->rst); goto reset_phy; -- 2.11.0 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 049/102] ath10k: explicitly request exclusive reset control 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel ` (4 preceding siblings ...) 2017-07-19 15:25 ` [PATCH 048/102] net: stmmac: dwc-qos: " Philipp Zabel @ 2017-07-19 15:25 ` Philipp Zabel 2017-08-03 11:38 ` [049/102] " Kalle Valo [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-07-20 20:32 ` Heiko Stuebner 7 siblings, 1 reply; 24+ messages in thread From: Philipp Zabel @ 2017-07-19 15:25 UTC (permalink / raw) To: linux-kernel; +Cc: Philipp Zabel, Kalle Valo, ath10k, linux-wireless, netdev 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. Convert all drivers requesting exclusive resets to the explicit API call so the temporary transition helpers can be removed. No functional changes. Cc: Kalle Valo <kvalo@qca.qualcomm.com> Cc: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> --- drivers/net/wireless/ath/ath10k/ahb.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/ahb.c b/drivers/net/wireless/ath/ath10k/ahb.c index da770af830369..2ad3ed7b89417 100644 --- a/drivers/net/wireless/ath/ath10k/ahb.c +++ b/drivers/net/wireless/ath/ath10k/ahb.c @@ -197,35 +197,40 @@ static int ath10k_ahb_rst_ctrl_init(struct ath10k *ar) dev = &ar_ahb->pdev->dev; - ar_ahb->core_cold_rst = devm_reset_control_get(dev, "wifi_core_cold"); + ar_ahb->core_cold_rst = devm_reset_control_get_exclusive(dev, + "wifi_core_cold"); if (IS_ERR(ar_ahb->core_cold_rst)) { ath10k_err(ar, "failed to get core cold rst ctrl: %ld\n", PTR_ERR(ar_ahb->core_cold_rst)); return PTR_ERR(ar_ahb->core_cold_rst); } - ar_ahb->radio_cold_rst = devm_reset_control_get(dev, "wifi_radio_cold"); + ar_ahb->radio_cold_rst = devm_reset_control_get_exclusive(dev, + "wifi_radio_cold"); if (IS_ERR(ar_ahb->radio_cold_rst)) { ath10k_err(ar, "failed to get radio cold rst ctrl: %ld\n", PTR_ERR(ar_ahb->radio_cold_rst)); return PTR_ERR(ar_ahb->radio_cold_rst); } - ar_ahb->radio_warm_rst = devm_reset_control_get(dev, "wifi_radio_warm"); + ar_ahb->radio_warm_rst = devm_reset_control_get_exclusive(dev, + "wifi_radio_warm"); if (IS_ERR(ar_ahb->radio_warm_rst)) { ath10k_err(ar, "failed to get radio warm rst ctrl: %ld\n", PTR_ERR(ar_ahb->radio_warm_rst)); return PTR_ERR(ar_ahb->radio_warm_rst); } - ar_ahb->radio_srif_rst = devm_reset_control_get(dev, "wifi_radio_srif"); + ar_ahb->radio_srif_rst = devm_reset_control_get_exclusive(dev, + "wifi_radio_srif"); if (IS_ERR(ar_ahb->radio_srif_rst)) { ath10k_err(ar, "failed to get radio srif rst ctrl: %ld\n", PTR_ERR(ar_ahb->radio_srif_rst)); return PTR_ERR(ar_ahb->radio_srif_rst); } - ar_ahb->cpu_init_rst = devm_reset_control_get(dev, "wifi_cpu_init"); + ar_ahb->cpu_init_rst = devm_reset_control_get_exclusive(dev, + "wifi_cpu_init"); if (IS_ERR(ar_ahb->cpu_init_rst)) { ath10k_err(ar, "failed to get cpu init rst ctrl: %ld\n", PTR_ERR(ar_ahb->cpu_init_rst)); -- 2.11.0 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [049/102] ath10k: explicitly request exclusive reset control 2017-07-19 15:25 ` [PATCH 049/102] ath10k: " Philipp Zabel @ 2017-08-03 11:38 ` Kalle Valo 0 siblings, 0 replies; 24+ messages in thread From: Kalle Valo @ 2017-08-03 11:38 UTC (permalink / raw) To: Philipp Zabel; +Cc: linux-kernel, Philipp Zabel, ath10k, linux-wireless, netdev Philipp Zabel <p.zabel@pengutronix.de> wrote: > 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. Convert all drivers requesting exclusive resets to the > explicit API call so the temporary transition helpers can be removed. > > No functional changes. > > Cc: Kalle Valo <kvalo@qca.qualcomm.com> > Cc: ath10k@lists.infradead.org > Cc: linux-wireless@vger.kernel.org > Cc: netdev@vger.kernel.org > Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> > Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com> Patch applied to ath-next branch of ath.git, thanks. a764284f34f9 ath10k: explicitly request exclusive reset control -- https://patchwork.kernel.org/patch/9852575/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches ^ permalink raw reply [flat|nested] 24+ messages in thread
[parent not found: <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2017-07-19 19:15 ` Thomas Petazzoni 2017-07-20 9:36 ` Philipp Zabel 2017-07-20 6:56 ` Maxime Ripard ` (4 subsequent siblings) 5 siblings, 1 reply; 24+ messages in thread From: Thomas Petazzoni @ 2017-07-19 19:15 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-wireless-u79uwXL29TY76Z2rM5mHXA Hello, On Wed, 19 Jul 2017 17:25:04 +0200, Philipp Zabel wrote: > 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); I don't know if it has been discussed in the past, so forgive me if it has been. Have you considered adding a "int flags" argument to the existing reset_control_get_*() functions, rather than introducing separate exclusive variants ? Indeed, with a "int flags" argument you could in the future add more variants/behaviors without actually multiplying the number of functions. Something like the "flags" argument for request_irq() for example. Best regards, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-19 19:15 ` [PATCH 000/102] Convert drivers to explicit reset API Thomas Petazzoni @ 2017-07-20 9:36 ` Philipp Zabel [not found] ` <1500543415.2354.37.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 0 siblings, 1 reply; 24+ messages in thread From: Philipp Zabel @ 2017-07-20 9:36 UTC (permalink / raw) To: Thomas Petazzoni Cc: linux-kernel, Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm, Thomas Gleixner <tglx Hi Thomas, On Wed, 2017-07-19 at 21:15 +0200, Thomas Petazzoni wrote: > Hello, > > On Wed, 19 Jul 2017 17:25:04 +0200, Philipp Zabel wrote: > > 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); > > I don't know if it has been discussed in the past, so forgive me if it > has been. Have you considered adding a "int flags" argument to the > existing reset_control_get_*() functions, rather than introducing > separate exclusive variants ? > > Indeed, with a "int flags" argument you could in the future add more > variants/behaviors without actually multiplying the number of > functions. Something like the "flags" argument for request_irq() for > example. I can't find the discussion right now, but I remember we had talked about this in the past. Behind the scenes, all the inline API functions already call common entry points with flags (well, currently separate bool parameters for shared and optional). One reason against exposing those as an int flags in the user facing API is the possibility to accidentally provide a wrong value. regards Philipp ^ permalink raw reply [flat|nested] 24+ messages in thread
[parent not found: <1500543415.2354.37.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <1500543415.2354.37.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2017-07-20 10:36 ` Thomas Petazzoni 2017-07-20 12:55 ` Philipp Zabel 0 siblings, 1 reply; 24+ messages in thread From: Thomas Petazzoni @ 2017-07-20 10:36 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-wireless-u79uwXL29TY76Z2rM5mHXA Hello, On Thu, 20 Jul 2017 11:36:55 +0200, Philipp Zabel wrote: > > I don't know if it has been discussed in the past, so forgive me if it > > has been. Have you considered adding a "int flags" argument to the > > existing reset_control_get_*() functions, rather than introducing > > separate exclusive variants ? > > > > Indeed, with a "int flags" argument you could in the future add more > > variants/behaviors without actually multiplying the number of > > functions. Something like the "flags" argument for request_irq() for > > example. > > I can't find the discussion right now, but I remember we had talked > about this in the past. > Behind the scenes, all the inline API functions already call common > entry points with flags (well, currently separate bool parameters for > shared and optional). > One reason against exposing those as an int flags in the user facing API > is the possibility to accidentally provide a wrong value. This is a quite strange argument. You could also accidentally use the wrong variant of the function, just like you could use the wrong flag. Once again, the next time you have another parameter for those reset functions, beyond the exclusive/shared variant, you will multiply again by two the number of functions ? You already have the exclusive/shared and optional/mandatory variants, so 4 variants. When you'll add a new parameter, you'll have 8 variants. Doesn't seem really good. What about reset_control_get(struct device *, const char *, int flags) to replace all those variants ? Best regards, Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-20 10:36 ` Thomas Petazzoni @ 2017-07-20 12:55 ` Philipp Zabel 2017-07-20 20:46 ` Dmitry Torokhov 0 siblings, 1 reply; 24+ messages in thread From: Philipp Zabel @ 2017-07-20 12:55 UTC (permalink / raw) To: Thomas Petazzoni Cc: linux-kernel, Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm, Thomas Gleixner <tglx Hi Thomas, On Thu, 2017-07-20 at 12:36 +0200, Thomas Petazzoni wrote: > Hello, > > On Thu, 20 Jul 2017 11:36:55 +0200, Philipp Zabel wrote: > > > > I don't know if it has been discussed in the past, so forgive me if it > > > has been. Have you considered adding a "int flags" argument to the > > > existing reset_control_get_*() functions, rather than introducing > > > separate exclusive variants ? > > > > > > Indeed, with a "int flags" argument you could in the future add more > > > variants/behaviors without actually multiplying the number of > > > functions. Something like the "flags" argument for request_irq() for > > > example. > > > > I can't find the discussion right now, but I remember we had talked > > about this in the past. > > Behind the scenes, all the inline API functions already call common > > entry points with flags (well, currently separate bool parameters for > > shared and optional). > > One reason against exposing those as an int flags in the user facing API > > is the possibility to accidentally provide a wrong value. > > This is a quite strange argument. You could also accidentally use the > wrong variant of the function, just like you could use the wrong flag. You can't accidentally use no flag at all or a completely bogus value with the "plethora of inline functions" variant. > Once again, the next time you have another parameter for those reset > functions, beyond the exclusive/shared variant, you will multiply again > by two the number of functions ? You already have the exclusive/shared > and optional/mandatory variants, so 4 variants. When you'll add a new > parameter, you'll have 8 variants. Doesn't seem really good. I'd rather avoid adding more variants, if possible. The complexity increases regardless of whether the API is expressed as a bunch of functions or as a single function with a bunch of flags. > What about reset_control_get(struct device *, const char *, int flags) > to replace all those variants ? While I like how this looks, unfortunately (devm_)reset_control_get already exists without the flags, so we can't change to that with a gentle transition. regards Philipp ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-20 12:55 ` Philipp Zabel @ 2017-07-20 20:46 ` Dmitry Torokhov 2017-07-23 18:41 ` Linus Walleij 0 siblings, 1 reply; 24+ messages in thread From: Dmitry Torokhov @ 2017-07-20 20:46 UTC (permalink / raw) To: Philipp Zabel Cc: Thomas Petazzoni, lkml, Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, DRI, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck On Thu, Jul 20, 2017 at 5:55 AM, Philipp Zabel <p.zabel@pengutronix.de> wrote: > Hi Thomas, > > On Thu, 2017-07-20 at 12:36 +0200, Thomas Petazzoni wrote: >> Hello, >> >> On Thu, 20 Jul 2017 11:36:55 +0200, Philipp Zabel wrote: >> >> > > I don't know if it has been discussed in the past, so forgive me if it >> > > has been. Have you considered adding a "int flags" argument to the >> > > existing reset_control_get_*() functions, rather than introducing >> > > separate exclusive variants ? >> > > >> > > Indeed, with a "int flags" argument you could in the future add more >> > > variants/behaviors without actually multiplying the number of >> > > functions. Something like the "flags" argument for request_irq() for >> > > example. >> > >> > I can't find the discussion right now, but I remember we had talked >> > about this in the past. >> > Behind the scenes, all the inline API functions already call common >> > entry points with flags (well, currently separate bool parameters for >> > shared and optional). >> > One reason against exposing those as an int flags in the user facing API >> > is the possibility to accidentally provide a wrong value. >> >> This is a quite strange argument. You could also accidentally use the >> wrong variant of the function, just like you could use the wrong flag. > > You can't accidentally use no flag at all or a completely bogus value > with the "plethora of inline functions" variant. > >> Once again, the next time you have another parameter for those reset >> functions, beyond the exclusive/shared variant, you will multiply again >> by two the number of functions ? You already have the exclusive/shared >> and optional/mandatory variants, so 4 variants. When you'll add a new >> parameter, you'll have 8 variants. Doesn't seem really good. > > I'd rather avoid adding more variants, if possible. The complexity > increases regardless of whether the API is expressed as a bunch of > functions or as a single function with a bunch of flags. > >> What about reset_control_get(struct device *, const char *, int flags) >> to replace all those variants ? > > While I like how this looks, unfortunately (devm_)reset_control_get > already exists without the flags, so we can't change to that with a > gentle transition. This was done for gpiod_get() and its flags argument with horrifying #define-ry, which thankfully was completely hidden from users. -- Dmitry ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-20 20:46 ` Dmitry Torokhov @ 2017-07-23 18:41 ` Linus Walleij 2017-07-24 8:33 ` Philipp Zabel 0 siblings, 1 reply; 24+ messages in thread From: Linus Walleij @ 2017-07-23 18:41 UTC (permalink / raw) To: Dmitry Torokhov Cc: Philipp Zabel, Thomas Petazzoni, lkml, Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, DRI, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck On Thu, Jul 20, 2017 at 10:46 PM, Dmitry Torokhov <dmitry.torokhov@gmail.com> wrote: > On Thu, Jul 20, 2017 at 5:55 AM, Philipp Zabel <p.zabel@pengutronix.de> wrote: >>> What about reset_control_get(struct device *, const char *, int flags) >>> to replace all those variants ? >> >> While I like how this looks, unfortunately (devm_)reset_control_get >> already exists without the flags, so we can't change to that with a >> gentle transition. > > This was done for gpiod_get() and its flags argument with horrifying > #define-ry, which thankfully was completely hidden from users. For your reference: commit bae48da237fcedd7ad09569025483b988635efb7 "gpiolib: add gpiod_get() and gpiod_put() functions" commit 39b2bbe3d715cf5013b5c48695ccdd25bd3bf120 "gpio: add flags argument to gpiod_get*() functions" commit 0dbc8b7afef6e4fddcfebcbacbeb269a0a3b06d5 "gpio: move varargs hack outside #ifdef GPIOLIB" commit b17d1bf16cc72a374a48d748940f700009d40ff4 "gpio: make flags mandatory for gpiod_get functions" Retrospectively ... was that really a good idea... it was a LOT of trouble to add a flag, maybe it had been better to try and just slam all users in a single go. But it worked. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-23 18:41 ` Linus Walleij @ 2017-07-24 8:33 ` Philipp Zabel [not found] ` <1500885221.2391.50.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 0 siblings, 1 reply; 24+ messages in thread From: Philipp Zabel @ 2017-07-24 8:33 UTC (permalink / raw) To: Linus Walleij Cc: Dmitry Torokhov, Thomas Petazzoni, lkml, Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, DRI, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck <li On Sun, 2017-07-23 at 20:41 +0200, Linus Walleij wrote: > On Thu, Jul 20, 2017 at 10:46 PM, Dmitry Torokhov > <dmitry.torokhov@gmail.com> wrote: > > On Thu, Jul 20, 2017 at 5:55 AM, Philipp Zabel <p.zabel@pengutronix.de> wrote: > > >>> What about reset_control_get(struct device *, const char *, int flags) > >>> to replace all those variants ? > >> > >> While I like how this looks, unfortunately (devm_)reset_control_get > >> already exists without the flags, so we can't change to that with a > >> gentle transition. > > > > This was done for gpiod_get() and its flags argument with horrifying > > #define-ry, which thankfully was completely hidden from users. > > For your reference: > > commit bae48da237fcedd7ad09569025483b988635efb7 > "gpiolib: add gpiod_get() and gpiod_put() functions" > > commit 39b2bbe3d715cf5013b5c48695ccdd25bd3bf120 > "gpio: add flags argument to gpiod_get*() functions" > > commit 0dbc8b7afef6e4fddcfebcbacbeb269a0a3b06d5 > "gpio: move varargs hack outside #ifdef GPIOLIB" > > commit b17d1bf16cc72a374a48d748940f700009d40ff4 > "gpio: make flags mandatory for gpiod_get functions" > > Retrospectively ... was that really a good idea... it was a LOT > of trouble to add a flag, maybe it had been better to try and > just slam all users in a single go. > > But it worked. Thanks for the hint and the references. It seems this turned out okay, but I wouldn't dare to introduce such macro horror^Wmagic. I'd rather have all users converted to the _exclusive/_shared function calls and maybe then replace the internal __reset_control_get with Thomas' suggestion. regards Philipp ^ permalink raw reply [flat|nested] 24+ messages in thread
[parent not found: <1500885221.2391.50.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>]
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <1500885221.2391.50.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2017-08-12 11:43 ` Wolfram Sang 2017-08-14 7:36 ` Philipp Zabel 0 siblings, 1 reply; 24+ messages in thread From: Wolfram Sang @ 2017-08-12 11:43 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, DRI, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, USB list, linux [-- Attachment #1.1: Type: text/plain, Size: 378 bytes --] > Thanks for the hint and the references. It seems this turned out okay, > but I wouldn't dare to introduce such macro horror^Wmagic. > I'd rather have all users converted to the _exclusive/_shared function > calls and maybe then replace the internal __reset_control_get with > Thomas' suggestion. I didn't follow the discussion closely. Shall I still apply the i2c patches? [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] [-- Attachment #2: Type: text/plain, Size: 200 bytes --] _______________________________________________ Linux-mediatek mailing list Linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-08-12 11:43 ` Wolfram Sang @ 2017-08-14 7:36 ` Philipp Zabel 0 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-08-14 7:36 UTC (permalink / raw) To: Wolfram Sang Cc: Linus Walleij, Dmitry Torokhov, Thomas Petazzoni, lkml, Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, DRI, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter On Sat, 2017-08-12 at 13:43 +0200, Wolfram Sang wrote: > > Thanks for the hint and the references. It seems this turned out > > okay, > > but I wouldn't dare to introduce such macro horror^Wmagic. > > I'd rather have all users converted to the _exclusive/_shared > > function > > calls and maybe then replace the internal __reset_control_get with > > Thomas' suggestion. > > I didn't follow the discussion closely. Shall I still apply the i2c > patches? Yes, please. regards Philipp ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-07-19 19:15 ` [PATCH 000/102] Convert drivers to explicit reset API Thomas Petazzoni @ 2017-07-20 6:56 ` Maxime Ripard 2017-07-20 8:11 ` Greg Kroah-Hartman ` (3 subsequent siblings) 5 siblings, 0 replies; 24+ messages in thread From: Maxime Ripard @ 2017-07-20 6:56 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb-u79uwXL29TaqPxH82wqD4g [-- Attachment #1.1: Type: text/plain, Size: 8914 bytes --] On Wed, Jul 19, 2017 at 05:25:04PM +0200, Philipp Zabel wrote: > 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 For all sunxi patches: Acked-by: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org> Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 801 bytes --] [-- Attachment #2: Type: text/plain, Size: 200 bytes --] _______________________________________________ Linux-mediatek mailing list Linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org http://lists.infradead.org/mailman/listinfo/linux-mediatek ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> 2017-07-19 19:15 ` [PATCH 000/102] Convert drivers to explicit reset API Thomas Petazzoni 2017-07-20 6:56 ` Maxime Ripard @ 2017-07-20 8:11 ` Greg Kroah-Hartman 2017-07-20 9:24 ` Philipp Zabel 2017-07-20 20:32 ` Heiko Stuebner ` (2 subsequent siblings) 5 siblings, 1 reply; 24+ messages in thread From: Greg Kroah-Hartman @ 2017-07-20 8:11 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-wireless-u79uwXL29TY76Z2rM5mHXA, linux-kernel@ On Wed, Jul 19, 2017 at 05:25:04PM +0200, Philipp Zabel wrote: > 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: Hey, I'm all for large api changes, but this really seems ackward, isn't there a "better" way to do this? Why not, as you say the "implicit" request is exclusive, just leave everything alone and state that the "reset_control_get()" call is exclusive and make the shared one the "odd" usage as that seems to not be the normal case. That should be a much smaller patch right? That way you don't break everything here, and require 100+ patches to just change the name of a function from one to another and do nothing else. thanks, greg k-h ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-20 8:11 ` Greg Kroah-Hartman @ 2017-07-20 9:24 ` Philipp Zabel 0 siblings, 0 replies; 24+ messages in thread From: Philipp Zabel @ 2017-07-20 9:24 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Andrew Lunn, Prashant Gaikwad, Heiko Stuebner, Peter Chen, Linus Walleij, dri-devel, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm, Thomas Gleixner, Vincent Abriou, Bin Liu, linux-usb, linux-wireless, linux-kernel@ Hi Greg, The patches in this series are completely independent of each other, and I would like the subsystem maintainers to apply them at their own leisure. Well, except for the last one, which I will apply only after there are no more users of the transition helpers. On Thu, 2017-07-20 at 10:11 +0200, Greg Kroah-Hartman wrote: > On Wed, Jul 19, 2017 at 05:25:04PM +0200, Philipp Zabel wrote: > > 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: > > Hey, I'm all for large api changes, but this really seems ackward, isn't > there a "better" way to do this? It is a bit awkward. I am sorry I haven't done this earlier. Quite a few new drivers started using the old API after the explicit requests were introduced last year. > Why not, as you say the "implicit" request is exclusive, just leave > everything alone and state that the "reset_control_get()" call is > exclusive I think it is better to let the drivers explicitly state what they expect from the API, and using reset_control_get_exclusive vs _shared helps driver developers to make a conscious decision. Further, the implicit API call predates shared reset support, so it is not clear that all of the old users really need exclusive control. A few drivers have been switched to the shared API already. > and make the shared one the "odd" usage as that seems to not > be the normal case. I am not sure, there have been people arguing that the "clock-like" case really is the common one. I suppose some of those drivers touched by the 100 patches in this series could also be changed to shared. But I don't dare to make this decision for each of them. > That should be a much smaller patch right? > > That way you don't break everything here, and require 100+ patches to > just change the name of a function from one to another and do nothing > else. I don't break anything here, and I'm absolutely fine with squashing patches together per subsystem where that is preferable. regards Philipp ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> ` (2 preceding siblings ...) 2017-07-20 8:11 ` Greg Kroah-Hartman @ 2017-07-20 20:32 ` Heiko Stuebner 2017-07-20 20:32 ` Heiko Stuebner 2017-07-20 20:32 ` Heiko Stuebner 5 siblings, 0 replies; 24+ messages in thread From: Heiko Stuebner @ 2017-07-20 20:32 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-wireless-u79uwXL29TY76Z2rM5mHXA Hi, > crypto: rockchip: explicitly request exclusive reset control > iio: adc: rockchip_saradc: explicitly request exclusive reset control > PCI: rockchip: 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 > thermal: rockchip: explicitly request exclusive reset control for the driver-related Rockchip changes Acked-by: Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org> ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> ` (3 preceding siblings ...) 2017-07-20 20:32 ` Heiko Stuebner @ 2017-07-20 20:32 ` Heiko Stuebner 2017-07-20 20:32 ` Heiko Stuebner 5 siblings, 0 replies; 24+ messages in thread From: Heiko Stuebner @ 2017-07-20 20:32 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-wireless-u79uwXL29TY76Z2rM5mHXA Hi, > crypto: rockchip: explicitly request exclusive reset control > iio: adc: rockchip_saradc: explicitly request exclusive reset control > PCI: rockchip: 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 > thermal: rockchip: explicitly request exclusive reset control for the driver-related Rockchip changes Acked-by: Heiko Stuebner <heiko@sntech.de> _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> ` (4 preceding siblings ...) 2017-07-20 20:32 ` Heiko Stuebner @ 2017-07-20 20:32 ` Heiko Stuebner 5 siblings, 0 replies; 24+ messages in thread From: Heiko Stuebner @ 2017-07-20 20:32 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Peter Chen, Linus Walleij, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk-u79uwXL29TY76Z2rM5mHXA, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm-u79uwXL29TY76Z2rM5mHXA, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-wireless-u79uwXL29TY76Z2rM5mHXA Hi, > crypto: rockchip: explicitly request exclusive reset control > iio: adc: rockchip_saradc: explicitly request exclusive reset control > PCI: rockchip: 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 > thermal: rockchip: explicitly request exclusive reset control for the driver-related Rockchip changes Acked-by: Heiko Stuebner <heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org> ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 000/102] Convert drivers to explicit reset API 2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel ` (6 preceding siblings ...) [not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> @ 2017-07-20 20:32 ` Heiko Stuebner 7 siblings, 0 replies; 24+ messages in thread From: Heiko Stuebner @ 2017-07-20 20:32 UTC (permalink / raw) To: Philipp Zabel Cc: Andrew Lunn, Prashant Gaikwad, Peter Chen, Linus Walleij, dri-devel, Marc Dietrich, Rakesh Iyer, Peter Meerwald-Stadler, linux-clk, Wim Van Sebroeck, Wolfram Sang, Xinliang Liu, Chanwoo Choi, Alan Stern, Jiri Slaby, Michael Turquette, Guenter Roeck, Ohad Ben-Cohen, linux-pm, Thomas Gleixner, Vincent Abriou, Bin Liu, Greg Kroah-Hartman, linux-usb, linux-wireless Hi, > crypto: rockchip: explicitly request exclusive reset control > iio: adc: rockchip_saradc: explicitly request exclusive reset control > PCI: rockchip: 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 > thermal: rockchip: explicitly request exclusive reset control for the driver-related Rockchip changes Acked-by: Heiko Stuebner <heiko@sntech.de> ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2017-08-14 7:36 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-19 15:25 [PATCH 000/102] Convert drivers to explicit reset API Philipp Zabel
2017-07-19 15:25 ` [PATCH 044/102] net: dsa: mt7530: explicitly request exclusive reset control Philipp Zabel
2017-07-19 15:25 ` [PATCH 045/102] net: ethernet: hisi_femac: " Philipp Zabel
2017-07-19 15:25 ` [PATCH 046/102] net: ethernet: hix5hd2_gmac: " Philipp Zabel
2017-07-19 15:25 ` [PATCH 047/102] net: stmmac: " Philipp Zabel
2017-07-19 15:25 ` [PATCH 048/102] net: stmmac: dwc-qos: " Philipp Zabel
2017-07-19 15:25 ` [PATCH 049/102] ath10k: " Philipp Zabel
2017-08-03 11:38 ` [049/102] " Kalle Valo
[not found] ` <20170719152646.25903-1-p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-07-19 19:15 ` [PATCH 000/102] Convert drivers to explicit reset API Thomas Petazzoni
2017-07-20 9:36 ` Philipp Zabel
[not found] ` <1500543415.2354.37.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-07-20 10:36 ` Thomas Petazzoni
2017-07-20 12:55 ` Philipp Zabel
2017-07-20 20:46 ` Dmitry Torokhov
2017-07-23 18:41 ` Linus Walleij
2017-07-24 8:33 ` Philipp Zabel
[not found] ` <1500885221.2391.50.camel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2017-08-12 11:43 ` Wolfram Sang
2017-08-14 7:36 ` Philipp Zabel
2017-07-20 6:56 ` Maxime Ripard
2017-07-20 8:11 ` Greg Kroah-Hartman
2017-07-20 9:24 ` Philipp Zabel
2017-07-20 20:32 ` Heiko Stuebner
2017-07-20 20:32 ` Heiko Stuebner
2017-07-20 20:32 ` Heiko Stuebner
2017-07-20 20:32 ` Heiko Stuebner
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).