linux-pwm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: kernel@pengutronix.de,
	Florian Fainelli <florian.fainelli@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	linux-pwm@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 083/115] pwm: raspberrypi-poe: Make use of devm_pwmchip_alloc() function
Date: Wed,  6 Dec 2023 12:44:37 +0100	[thread overview]
Message-ID: <11b3a9ab42ae302071dcab5eb0bba70174c8efc6.1701860672.git.u.kleine-koenig@pengutronix.de> (raw)
In-Reply-To: <cover.1701860672.git.u.kleine-koenig@pengutronix.de>

This prepares the pwm-raspberrypi-poe driver to further changes of the pwm core
outlined in the commit introducing devm_pwmchip_alloc(). There is no
intended semantical change and the driver should behave as before.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/pwm/pwm-raspberrypi-poe.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/pwm/pwm-raspberrypi-poe.c b/drivers/pwm/pwm-raspberrypi-poe.c
index f10e8a624c51..8921e7ea2cea 100644
--- a/drivers/pwm/pwm-raspberrypi-poe.c
+++ b/drivers/pwm/pwm-raspberrypi-poe.c
@@ -27,7 +27,6 @@
 
 struct raspberrypi_pwm {
 	struct rpi_firmware *firmware;
-	struct pwm_chip chip;
 	unsigned int duty_cycle;
 };
 
@@ -40,7 +39,7 @@ struct raspberrypi_pwm_prop {
 static inline
 struct raspberrypi_pwm *raspberrypi_pwm_from_chip(struct pwm_chip *chip)
 {
-	return container_of(chip, struct raspberrypi_pwm, chip);
+	return pwmchip_get_drvdata(chip);
 }
 
 static int raspberrypi_pwm_set_property(struct rpi_firmware *firmware,
@@ -142,6 +141,7 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev)
 	struct device_node *firmware_node;
 	struct device *dev = &pdev->dev;
 	struct rpi_firmware *firmware;
+	struct pwm_chip *chip;
 	struct raspberrypi_pwm *rpipwm;
 	int ret;
 
@@ -157,14 +157,14 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev)
 		return dev_err_probe(dev, -EPROBE_DEFER,
 				     "Failed to get firmware handle\n");
 
-	rpipwm = devm_kzalloc(&pdev->dev, sizeof(*rpipwm), GFP_KERNEL);
-	if (!rpipwm)
-		return -ENOMEM;
+	chip = devm_pwmchip_alloc(&pdev->dev, RASPBERRYPI_FIRMWARE_PWM_NUM,
+				  sizeof(*rpipwm));
+	if (IS_ERR(chip))
+		return PTR_ERR(chip);
+	rpipwm = raspberrypi_pwm_from_chip(chip);
 
 	rpipwm->firmware = firmware;
-	rpipwm->chip.dev = dev;
-	rpipwm->chip.ops = &raspberrypi_pwm_ops;
-	rpipwm->chip.npwm = RASPBERRYPI_FIRMWARE_PWM_NUM;
+	chip->ops = &raspberrypi_pwm_ops;
 
 	ret = raspberrypi_pwm_get_property(rpipwm->firmware, RPI_PWM_CUR_DUTY_REG,
 					   &rpipwm->duty_cycle);
@@ -173,7 +173,7 @@ static int raspberrypi_pwm_probe(struct platform_device *pdev)
 		return ret;
 	}
 
-	return devm_pwmchip_add(dev, &rpipwm->chip);
+	return devm_pwmchip_add(dev, chip);
 }
 
 static const struct of_device_id raspberrypi_pwm_of_match[] = {
-- 
2.42.0


  parent reply	other threads:[~2023-12-06 11:48 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-06 11:43 [PATCH v4 000/115] pwm: Fix lifetime issues for pwm_chips Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 001/115] pwm: Reduce number of pointer dereferences in pwm_device_request() Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 002/115] pwm: crc: Use consistent variable naming for driver data Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 006/115] pwm: cros-ec: Change prototype of helpers to prepare further changes Uwe Kleine-König
2023-12-07  2:06   ` Tzung-Bi Shih
2023-12-06 11:43 ` [PATCH v4 007/115] pwm: Provide a macro to get the parent device of a given chip Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 008/115] pwm: ab8500: Make use of pwmchip_parent() macro Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 009/115] pwm: atmel: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 010/115] pwm: atmel-tcb: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 011/115] pwm: bcm-kona: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 012/115] pwm: crc: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 013/115] pwm: cros-ec: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 014/115] pwm: dwc: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 015/115] pwm: ep93xx: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 016/115] pwm: fsl-ftm: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 017/115] pwm: img: Make use of parent device pointer in driver data Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 018/115] pwm: imx27: Make use of pwmchip_parent() macro Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 019/115] pwm: jz4740: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 020/115] pwm: lpc18xx-sct: Make use of parent device pointer in driver data Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 021/115] pwm: lpss: Make use of pwmchip_parent() macro Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 022/115] pwm: mediatek: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 023/115] pwm: meson: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 024/115] pwm: mtk-disp: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 025/115] pwm: omap: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 026/115] pwm: pca9685: Store parent device in driver data Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 027/115] pwm: raspberrypi-poe: Make use of pwmchip_parent() macro Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 028/115] pwm: rcar: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 029/115] pwm: rz-mtu3: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 030/115] pwm: samsung: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 031/115] pwm: sifive: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 032/115] pwm: stm32-lp: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 033/115] pwm: stm32: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 034/115] pwm: stmpe: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 035/115] pwm: sun4i: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 036/115] pwm: tiecap: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 037/115] pwm: tiehrpwm: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 038/115] pwm: twl-led: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 039/115] pwm: twl: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 040/115] pwm: vt8500: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 041/115] staging: greybus: pwm: " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 042/115] pwm: Provide wrappers for storing and getting driver private data Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 043/115] pwm: Provide devm_pwmchip_alloc() function Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 044/115] pwm: ab8500: Make use of " Uwe Kleine-König
2023-12-06 11:43 ` [PATCH v4 045/115] pwm: apple: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 046/115] pwm: atmel-hlcdc: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 047/115] pwm: atmel: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 048/115] pwm: atmel-tcb: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 049/115] pwm: bcm2835: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 050/115] pwm: bcm-iproc: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 051/115] pwm: bcm-kona: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 052/115] pwm: berlin: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 053/115] pwm: brcmstb: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 054/115] pwm: clk: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 055/115] pwm: clps711x: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 056/115] pwm: crc: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 057/115] pwm: cros-ec: " Uwe Kleine-König
2023-12-07  2:07   ` Tzung-Bi Shih
2023-12-06 11:44 ` [PATCH v4 058/115] pwm: dwc: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 059/115] pwm: ep93xx: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 060/115] pwm: fsl-ftm: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 061/115] pwm: hibvt: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 062/115] pwm: img: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 063/115] pwm: imx1: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 064/115] pwm: imx27: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 065/115] pwm: imx-tpm: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 066/115] pwm: intel-lgm: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 067/115] pwm: iqs620a: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 068/115] pwm: jz4740: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 069/115] pwm: keembay: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 070/115] pwm: lp3943: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 071/115] pwm: lpc18xx-sct: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 072/115] pwm: lpc32xx: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 073/115] pwm: lpss-*: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 074/115] pwm: mediatek: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 075/115] pwm: meson: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 076/115] pwm: microchip-core: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 077/115] pwm: mtk-disp: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 078/115] pwm: mxs: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 079/115] pwm: ntxec: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 080/115] pwm: omap-dmtimer: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 081/115] pwm: pca9685: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 082/115] pwm: pxa: " Uwe Kleine-König
2023-12-06 11:44 ` Uwe Kleine-König [this message]
2023-12-06 11:44 ` [PATCH v4 084/115] pwm: rcar: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 085/115] pwm: renesas-tpu: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 086/115] pwm: rockchip: " Uwe Kleine-König
2023-12-06 13:06   ` Heiko Stübner
2023-12-06 11:44 ` [PATCH v4 087/115] pwm: rz-mtu3: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 088/115] pwm: samsung: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 089/115] pwm: sifive: " Uwe Kleine-König
2023-12-08  9:30   ` Emil Renner Berthing
2023-12-08  9:52     ` Uwe Kleine-König
2023-12-08  9:59       ` Emil Renner Berthing
2023-12-06 11:44 ` [PATCH v4 090/115] pwm: sl28cpld: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 091/115] pwm: spear: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 092/115] pwm: sprd: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 093/115] pwm: sti: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 094/115] pwm: stm32-lp: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 095/115] pwm: stm32: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 096/115] pwm: stmpe: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 097/115] pwm: sun4i: " Uwe Kleine-König
2023-12-06 17:11   ` Andre Przywara
2023-12-13 20:31   ` Jernej Škrabec
2023-12-06 11:44 ` [PATCH v4 098/115] pwm: sunplus: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 099/115] pwm: tegra: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 100/115] pwm: tiecap: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 101/115] pwm: twl-led: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 102/115] pwm: twl: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 103/115] pwm: visconti: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 104/115] pwm: vt8500: " Uwe Kleine-König
2023-12-06 11:44 ` [PATCH v4 105/115] pwm: xilinx: " Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 106/115] gpio: mvebu: " Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 107/115] drm/bridge: ti-sn65dsi86: " Uwe Kleine-König
2024-01-22 15:19   ` Robert Foss
2023-12-06 11:45 ` [PATCH v4 108/115] leds: qcom-lpg: " Uwe Kleine-König
2023-12-07 17:05   ` Lee Jones
2023-12-06 11:45 ` [PATCH v4 110/115] pwm: Ensure that pwm_chips are allocated using pwmchip_alloc() Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 111/115] pwm: Ensure a struct pwm has the same lifetime as its pwm_chip Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 112/115] pwm: Ensure the memory backing a PWM chip isn't freed while used Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 113/115] pwm: Add more locking Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 114/115] pwm: Make pwmchip_[sg]et_drvdata a wrapper around dev_set_drvdata Uwe Kleine-König
2023-12-06 11:45 ` [PATCH v4 115/115] WIP: pwm: Add support for pwmchip devices for faster and easier userspace access Uwe Kleine-König
2023-12-08 15:41 ` [PATCH v4 000/115] pwm: Fix lifetime issues for pwm_chips Thierry Reding
2023-12-08 18:50   ` Uwe Kleine-König
2023-12-11 11:33     ` Thierry Reding
2023-12-11 12:18       ` Uwe Kleine-König
2023-12-12 21:05       ` Uwe Kleine-König

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11b3a9ab42ae302071dcab5eb0bba70174c8efc6.1701860672.git.u.kleine-koenig@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).