All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodolfo Giometti <giometti@enneenne.com>
To: Eliav Farber <farbere@amazon.com>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: Linus Walleij <linusw@kernel.org>,
	Bartosz Golaszewski <brgl@kernel.org>,
	Fabio Estevam <festevam@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Takashi Sakamoto <o-takashi@sakamocchi.jp>,
	devicetree@vger.kernel.org, linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 0/3] pps-gpio: restore pin mux on unbind and shutdown
Date: Tue, 22 Sep 2026 09:40:02 +0200	[thread overview]
Message-ID: <6ffa766f-9a99-41d0-b5df-6c517d1e94e6@enneenne.com> (raw)
In-Reply-To: <20260919171157.5502-1-farbere@amazon.com>

On Sat, Sep 19, 2026 at 05:11:54PM +0000, Eliav Farber wrote:
> Open question for the maintainers (patch 3): a probe that fails before
> pps_gpio_get_pins() has run -- devm_kzalloc() or pps_gpio_setup() -- returns
> without going through err_release_pins, so the pins are left in the
> core-applied "default" state rather than "inactive". I did not change this
> in v4 as I would like your guidance on the preferred approach; the trade-offs
> are laid out at the end of patch 3's changelog. In short:
>
>   A. Move pps_gpio_get_pins() to the top of probe and route the
>      pps_gpio_setup() failure through err_release_pins too, so every path
>      the driver can act on restores "inactive". (The devm_kzalloc() failure
>      is inherently before the driver holds any pinctrl handle, so it cannot
>      be covered by the driver in any option.)
>   B. Keep v4 as-is and treat "inactive" as a successful-ownership concern:
>      a probe that never looked up the state never took the pins, so leaving
>      the core-applied "default" (long-standing behaviour) is acceptable.
>   C. As A, but keep the release helper's existing NULL guard so it is robust
>      regardless of ordering (belt and braces).
>
> I lean towards B (the restore is meaningful only once the driver has taken
> ownership), but I am happy to implement A/C if you prefer uniform failure
> paths.

I would choose option A, keeping the NULL check in the release helper;
I believe this corresponds to your option C. In fact, to me, it
represents the symmetrical counterpart to what the core did on the
driver's behalf.

One thing I would verify on your board before proceeding is this: with
option A, an -EPROBE_DEFER error returned by pps_gpio_setup() would
result in the "inactive" state being selected, and the core would
re-apply "default" on the next attempt. I assume this mux switching is
harmless, but the hardware is available to you, not me.

I wouldn't worry too much about the devm_kzalloc() case.

I also have a couple of observations regarding patches 1/3 and 3/3; I
will send them directly in response to the patches themselves.

Ciao,

Rodolfo

  reply	other threads:[~2026-09-22  7:43 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-16 13:47 [PATCH 0/2] pps-gpio: restore pin mux on unbind and shutdown Eliav Farber
2026-09-16 13:47 ` [PATCH 1/2] dt-bindings: pps: pps-gpio: document optional idle pinctrl state Eliav Farber
2026-09-16 13:47 ` [PATCH 2/2] pps: clients: gpio: release pins to idle state on remove and shutdown Eliav Farber
2026-09-16 13:57   ` sashiko-bot
2026-09-16 16:48 ` [PATCH 0/2] pps-gpio: restore pin mux on unbind " Rodolfo Giometti
2026-09-16 18:25   ` Farber, Eliav
2026-09-16 18:26 ` [PATCH v2 " Eliav Farber
2026-09-16 18:26   ` [PATCH v2 1/2] dt-bindings: pps: pps-gpio: document optional pinctrl states Eliav Farber
2026-09-17  7:13     ` Rodolfo Giometti
2026-09-17  7:48       ` Farber, Eliav
2026-09-16 18:26   ` [PATCH v2 2/2] pps: clients: gpio: release pins to an inactive state on remove and shutdown Eliav Farber
2026-09-16 18:43     ` sashiko-bot
2026-09-17  7:14     ` Rodolfo Giometti
2026-09-17  7:52       ` Farber, Eliav
2026-09-17  7:56   ` [PATCH v3 0/3] pps-gpio: restore pin mux on unbind " Eliav Farber
2026-09-17  7:56     ` [PATCH v3 1/3] pps: clients: gpio: propagate probe error codes Eliav Farber
2026-09-17  8:04       ` sashiko-bot
2026-09-17  9:58       ` Bartosz Golaszewski
2026-09-18  7:50       ` Rodolfo Giometti
2026-09-17  7:56     ` [PATCH v3 2/3] dt-bindings: pps: pps-gpio: document optional pinctrl states Eliav Farber
2026-09-17 15:35       ` Rob Herring (Arm)
2026-09-17 16:13       ` Rob Herring
2026-09-18  7:50       ` Rodolfo Giometti
2026-09-18 15:43         ` Rob Herring
2026-09-17  7:56     ` [PATCH v3 3/3] pps: clients: gpio: release pins to an inactive state on remove and shutdown Eliav Farber
2026-09-17  8:10       ` sashiko-bot
2026-09-19 17:11     ` [PATCH v4 0/3] pps-gpio: restore pin mux on unbind " Eliav Farber
2026-09-22  7:40       ` Rodolfo Giometti [this message]
2026-09-22 10:08         ` Farber, Eliav
2026-09-22 10:30       ` [PATCH v5 0/4] " Eliav Farber
2026-09-22 10:30         ` [PATCH v5 1/4] pps: clients: gpio: propagate probe error codes Eliav Farber
2026-09-22 10:30         ` [PATCH v5 2/4] pps: clients: gpio: only tear down the echo timer when it exists Eliav Farber
2026-09-22 10:30         ` [PATCH v5 3/4] dt-bindings: pps: pps-gpio: document optional pinctrl states Eliav Farber
2026-09-22 12:46           ` Rodolfo Giometti
2026-09-23 12:36             ` Rob Herring
2026-09-23 13:13               ` Farber, Eliav
2026-09-23 18:04                 ` Rob Herring
2026-09-22 10:30         ` [PATCH v5 4/4] pps: clients: gpio: release pins to an inactive state on remove and shutdown Eliav Farber
2026-09-22 10:39           ` sashiko-bot
2026-09-22 12:46           ` Rodolfo Giometti
2026-09-22 14:55             ` Farber, Eliav
2026-09-23  7:50               ` Rodolfo Giometti
2026-09-23 18:22         ` [PATCH v6 0/4] pps-gpio: restore pin mux on unbind " Eliav Farber
2026-09-23 18:22           ` [PATCH v6 1/4] pps: clients: gpio: propagate probe error codes Eliav Farber
2026-09-24 12:58             ` Rodolfo Giometti
2026-09-24 14:46             ` Bartosz Golaszewski
2026-09-23 18:22           ` [PATCH v6 2/4] pps: clients: gpio: only tear down the echo timer when it exists Eliav Farber
2026-09-24 12:59             ` Rodolfo Giometti
2026-09-24 14:47             ` Bartosz Golaszewski
2026-09-23 18:22           ` [PATCH v6 3/4] dt-bindings: pps: pps-gpio: document optional pinctrl states Eliav Farber
2026-09-23 18:41             ` Rob Herring
2026-09-24 12:59             ` Rodolfo Giometti
2026-09-23 18:22           ` [PATCH v6 4/4] pps: clients: gpio: release pins to an inactive state on remove and shutdown Eliav Farber
2026-09-24 12:59             ` Rodolfo Giometti
2026-10-01  7:53             ` Linus Walleij
2026-09-24 12:58           ` [PATCH v6 0/4] pps-gpio: restore pin mux on unbind " Rodolfo Giometti
2026-09-19 17:11     ` [PATCH v4 1/3] pps: clients: gpio: propagate probe error codes Eliav Farber
2026-09-22  7:40       ` Rodolfo Giometti
2026-09-22  8:08         ` Farber, Eliav
2026-09-22  8:22           ` Rodolfo Giometti
2026-09-22 10:06             ` Farber, Eliav
2026-09-19 17:11     ` [PATCH v4 2/3] dt-bindings: pps: pps-gpio: document optional pinctrl states Eliav Farber
2026-09-22  7:40       ` Rodolfo Giometti
2026-09-22 10:11         ` Farber, Eliav
2026-09-19 17:11     ` [PATCH v4 3/3] pps: clients: gpio: release pins to an inactive state on remove and shutdown Eliav Farber
2026-09-22  7:40       ` Rodolfo Giometti
2026-09-22 10:13         ` Farber, Eliav

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=6ffa766f-9a99-41d0-b5df-6c517d1e94e6@enneenne.com \
    --to=giometti@enneenne.com \
    --cc=akpm@linux-foundation.org \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=farbere@amazon.com \
    --cc=festevam@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=o-takashi@sakamocchi.jp \
    --cc=robh@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.