RE: [PATCH v2 1/2] pwm: Manage owner assignment implicitly for drivers

2023-08-08 Thread nobuhiro1.iwamatsu
Hi Uwe,

> -Original Message-
> From: Uwe Kleine-König 
> Sent: Friday, August 4, 2023 11:27 PM
> To: Thierry Reding ; Laurent Pinchart
> 
> Cc: Linus Walleij ; Bartosz Golaszewski
> ; Andy Shevchenko ; Douglas Anderson
> ; Andrzej Hajda ; Neil
> Armstrong ; Robert Foss ;
> Jonas Karlman ; Jernej Skrabec
> ; David Airlie ; Daniel Vetter
> ; Pavel Machek ; Lee Jones
> ; Hector Martin ; Sven Peter
> ; Alyssa Rosenzweig ; Nicolas
> Ferre ; Alexandre Belloni
> ; Claudiu Beznea
> ; Ray Jui ; Scott
> Branden ; Broadcom internal kernel review list
> ; Florian Fainelli
> ; Alexander Shiyan ;
> Benson Leung ; Guenter Roeck
> ; Shawn Guo ; Sascha
> Hauer ; Pengutronix Kernel Team
> ; Fabio Estevam ; NXP
> Linux Team ; Paul Cercueil ;
> Vladimir Zapolskiy ; Kevin Hilman ;
> Jerome Brunet ; Martin Blumenstingl
> ; Conor Dooley
> ; Daire McNamara
> ; Matthias Brugger
> ; AngeloGioacchino Del Regno
> ; Jonathan Neuschäfer
> ; Heiko Stuebner ; Krzysztof
> Kozlowski ; Alim Akhtar
> ; Palmer Dabbelt ; Paul
> Walmsley ; Michael Walle ;
> Orson Zhai ; Baolin Wang
> ; Chunyan Zhang
> ; Fabrice Gasnier ;
> Maxime Coquelin ; Alexandre Torgue
> ; Chen-Yu Tsai ; Samuel
> Holland ; Hammer Hsieh
> ; Jonathan Hunter ;
> iwamatsu nobuhiro(岩松 信洋 ○DITC□DIT○OST)
> ; Sean Anderson
> ; Michal Simek ;
> Johan Hovold ; Alex Elder ; Greg
> Kroah-Hartman ; Anjelique Melendez
> ; Dmitry Baryshkov
> ; Luca Weiss ; Bjorn
> Andersson ; linux-...@vger.kernel.org;
> linux-g...@vger.kernel.org; dri-devel@lists.freedesktop.org;
> linux-l...@vger.kernel.org; as...@lists.linux.dev;
> linux-arm-ker...@lists.infradead.org; linux-rpi-ker...@lists.infradead.org;
> chrome-platf...@lists.linux.dev; linux-m...@vger.kernel.org;
> linux-amlo...@lists.infradead.org; linux-ri...@lists.infradead.org;
> linux-media...@lists.infradead.org; linux-rockc...@lists.infradead.org;
> linux-samsung-...@vger.kernel.org;
> linux-st...@st-md-mailman.stormreply.com; linux-su...@lists.linux.dev;
> linux-te...@vger.kernel.org; greybus-...@lists.linaro.org;
> linux-stag...@lists.linux.dev
> Subject: [PATCH v2 1/2] pwm: Manage owner assignment implicitly for drivers
> 
> Instead of requiring each driver to care for assigning the owner member of
> struct pwm_ops, handle that implicitly using a macro. Note that the owner
> member has to be moved to struct pwm_chip, as the ops structure usually lives
> in read-only memory and so cannot be modified.
> 
> The upside is that new lowlevel drivers cannot forget the assignment and save
> one line each. The pwm-crc driver didn't assign .owner, that's not a problem 
> in
> practise though as the driver cannot be compiled as a module.
> 
> Signed-off-by: Uwe Kleine-König 
> ---
>  drivers/gpio/gpio-mvebu.c |  1 -
>  drivers/gpu/drm/bridge/ti-sn65dsi86.c |  1 -
>  drivers/leds/rgb/leds-qcom-lpg.c  |  1 -
>  drivers/pwm/core.c| 24
> ++--
>  drivers/pwm/pwm-ab8500.c  |  1 -
>  drivers/pwm/pwm-apple.c   |  1 -
>  drivers/pwm/pwm-atmel-hlcdc.c |  1 -
>  drivers/pwm/pwm-atmel-tcb.c   |  1 -
>  drivers/pwm/pwm-atmel.c   |  1 -
>  drivers/pwm/pwm-bcm-iproc.c   |  1 -
>  drivers/pwm/pwm-bcm-kona.c|  1 -
>  drivers/pwm/pwm-bcm2835.c |  1 -
>  drivers/pwm/pwm-berlin.c  |  1 -
>  drivers/pwm/pwm-brcmstb.c |  1 -
>  drivers/pwm/pwm-clk.c |  1 -
>  drivers/pwm/pwm-clps711x.c|  1 -
>  drivers/pwm/pwm-cros-ec.c |  1 -
>  drivers/pwm/pwm-dwc.c |  1 -
>  drivers/pwm/pwm-ep93xx.c  |  1 -
>  drivers/pwm/pwm-fsl-ftm.c |  1 -
>  drivers/pwm/pwm-hibvt.c   |  1 -
>  drivers/pwm/pwm-img.c |  1 -
>  drivers/pwm/pwm-imx-tpm.c |  1 -
>  drivers/pwm/pwm-imx1.c|  1 -
>  drivers/pwm/pwm-imx27.c   |  1 -
>  drivers/pwm/pwm-intel-lgm.c   |  1 -
>  drivers/pwm/pwm-iqs620a.c |  1 -
>  drivers/pwm/pwm-jz4740.c  |  1 -
>  drivers/pwm/pwm-keembay.c |  1 -
>  drivers/pwm/pwm-lp3943.c  |  1 -
>  drivers/pwm/pwm-lpc18xx-sct.c |  1 -
>  drivers/pwm/pwm-lpc32xx.c |  1 -
>  drivers/pwm/pwm-lpss.c|  1 -
>  drivers/pwm/pwm-mediatek.c|  1 -
>  drivers/pwm/pwm-meson.c   |  1 -
>  drivers/pwm/pwm-microchip-core.c  |  1 -
>  drivers/pwm/pwm-mtk-disp.c|  1 -
>  drivers/pwm/pwm-mxs.c |  1 -
>  drivers/pwm/pwm-ntxec.c   |  1 -
>  drivers/pwm/pwm-omap-dmtimer.c|  1 -
>  drivers/pwm/pwm-pca9685.c |  1 -
>  drivers/pwm/pwm-pxa.c |  1 -
>  drivers/pwm/pwm-raspberrypi-poe.c |  1 -
>  drivers/pwm/pwm-rcar.c|  1 -
>  drivers/pwm/pwm-renesas-tpu.c |  1 -
>  drivers/pwm/pwm-rockchip.c|  1 -
>  drivers/pwm/pwm-rz-mtu3.c |  1 -
>  

RE: [PATCH v2 01/11] pwm: Make .get_state() callback return an error code

2022-12-02 Thread nobuhiro1.iwamatsu
> -Original Message-
> From: Uwe Kleine-König 
> Sent: Thursday, December 1, 2022 12:22 AM
> To: Thierry Reding 
> Cc: Conor Dooley ; Linus Walleij
> ; Bartosz Golaszewski ; Douglas
> Anderson ; Pavel Machek ;
> Claudiu Beznea ; Nicolas Ferre
> ; Alexandre Belloni
> ; Ray Jui ; Scott
> Branden ; Broadcom internal kernel review list
> ; Benson Leung
> ; Guenter Roeck ; Shawn
> Guo ; Sascha Hauer ;
> Pengutronix Kernel Team ; Fabio Estevam
> ; NXP Linux Team ; Kevin
> Hilman ; Jerome Brunet ;
> Martin Blumenstingl ; Matthias
> Brugger ; Florian Fainelli ;
> Heiko Stuebner ; Palmer Dabbelt
> ; Paul Walmsley ;
> Michael Walle ; Orson Zhai ;
> Baolin Wang ; Chunyan Zhang
> ; Fabrice Gasnier ;
> Maxime Coquelin ; Alexandre Torgue
> ; Chen-Yu Tsai ; Samuel
> Holland ; Hammer Hsieh
> ; iwamatsu nobuhiro(岩松 信洋 □SWC◯AC
> T) ; Sean Anderson
> ; Michal Simek ;
> Bjorn Andersson ; Stephen Boyd
> ; Matthias Kaehlcke ; Satya
> Priya ; linux-...@vger.kernel.org;
> linux-g...@vger.kernel.org; dri-devel@lists.freedesktop.org;
> linux-l...@vger.kernel.org; linux-arm-ker...@lists.infradead.org;
> chrome-platf...@lists.linux.dev; linux-amlo...@lists.infradead.org;
> linux-media...@lists.infradead.org; linux-rpi-ker...@lists.infradead.org;
> linux-rockc...@lists.infradead.org; linux-ri...@lists.infradead.org;
> linux-st...@st-md-mailman.stormreply.com; linux-su...@lists.linux.dev
> Subject: [PATCH v2 01/11] pwm: Make .get_state() callback return an error
> code
> 
> .get_state() might fail in some cases. To make it possible that a driver 
> signals
> such a failure change the prototype of .get_state() to return an error code.
> 
> This patch was created using coccinelle and the following semantic patch:
> 
> @p1@
> identifier getstatefunc;
> identifier driver;
> @@
>  struct pwm_ops driver = {
> ...,
> .get_state = getstatefunc
> ,...
>  };
> 
> @p2@
> identifier p1.getstatefunc;
> identifier chip, pwm, state;
> @@
> -void
> +int
>  getstatefunc(struct pwm_chip *chip, struct pwm_device *pwm, struct
> pwm_state *state)  {
>...
> -  return;
> +  return 0;
>...
>  }
> 
> plus the actual change of the prototype in include/linux/pwm.h (plus some
> manual fixing of indentions and empty lines).
> 
> So for now all drivers return success unconditionally. They are adapted in the
> following patches to make the changes easier reviewable.
> 
> Signed-off-by: Uwe Kleine-König 



> a/drivers/pwm/pwm-visconti.c b/drivers/pwm/pwm-visconti.c index
> 927c4cbb1daf..e3fb79b3e2a7 100644
> --- a/drivers/pwm/pwm-visconti.c
> +++ b/drivers/pwm/pwm-visconti.c
> @@ -103,8 +103,8 @@ static int visconti_pwm_apply(struct pwm_chip *chip,
> struct pwm_device *pwm,
>   return 0;
>  }
> 
> -static void visconti_pwm_get_state(struct pwm_chip *chip, struct
> pwm_device *pwm,
> -struct pwm_state *state)
> +static int visconti_pwm_get_state(struct pwm_chip *chip, struct
> pwm_device *pwm,
> +   struct pwm_state *state)
>  {
>   struct visconti_pwm_chip *priv = visconti_pwm_from_chip(chip);
>   u32 period, duty, pwmc0, pwmc0_clk;
> @@ -122,6 +122,8 @@ static void visconti_pwm_get_state(struct pwm_chip
> *chip, struct pwm_device *pwm
>   state->polarity = PWM_POLARITY_NORMAL;
> 
>   state->enabled = true;
> +
> + return 0;
>  }
> 
>  static const struct pwm_ops visconti_pwm_ops = { diff --git



for the Visconti pwd:
Reviewed-by: Nobuhiro Iwamatsu