From: "Nuno Sá" <noname.nuno@gmail.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: nuno.sa@analog.com, linux-gpio@vger.kernel.org,
linux-pwm@vger.kernel.org, devicetree@vger.kernel.org,
linux-input@vger.kernel.org, "Lee Jones" <lee@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Uwe Kleine-König" <ukleinek@kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Bartosz Golaszewski" <brgl@bgdev.pl>,
"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
"Liu Ying" <victor.liu@nxp.com>
Subject: Re: [PATCH v3 17/22] Input: adp5585: Add Analog Devices ADP5585/89 support
Date: Wed, 21 May 2025 11:06:00 +0100 [thread overview]
Message-ID: <497d549b6d055cf6402a9777c1295f5415174c86.camel@gmail.com> (raw)
In-Reply-To: <j2zueeyfq2mkr56b5pauektzqwfmo4ob32fcb7r5oavwdunsab@6knd5a6raaef>
On Tue, 2025-05-20 at 11:33 -0700, Dmitry Torokhov wrote:
> On Tue, May 20, 2025 at 09:32:53AM +0100, Nuno Sá wrote:
> > On Mon, 2025-05-19 at 15:29 -0700, Dmitry Torokhov wrote:
> > > Hi Nuno,
> > >
> > > On Mon, May 12, 2025 at 01:39:09PM +0100, Nuno Sá via B4 Relay wrote:
> > > > +
> > > > + for (pin = 0; pin < n_pins; pin++) {
> > > > + if (keypad_pins[pin] >= adp5585->info->n_pins) {
> > > > + error = dev_err_probe(dev, -EINVAL,
> > > > + "Invalid keypad pin(%u)
> > > > defined\n",
> > > > + keypad_pins[pin]);
> > > > + goto out_free_map;
> > > > + }
> > > > +
> > > > + if (test_and_set_bit(keypad_pins[pin], adp5585-
> > > > >pin_usage))
> > > > {
> > > > + error = dev_err_probe(dev, -EBUSY,
> > > > + "Keypad pin(%u) already
> > > > used\n",
> > > > + keypad_pins[pin]);
> > > > + goto out_free_map;
> > >
> > > This jump looked confusing, together with devm, etc. I wonder, can you
> > > move call to devm_add_action_or_reset() before the loop? It looks like
> > > it should handle completely unpopulated pin map just fine...
> >
> > Seemed the logical way but I agree that what you suggest makes it more
> > simpler.
> >
> > >
> > > > + }
> > > > +
> > > > + __set_bit(keypad_pins[pin], &kpad->keypad);
> > > > + }
> > > > +
> > > > + error = devm_add_action_or_reset(dev, adp5585_keys_pins_free,
> > > > kpad);
> > > > + if (error)
> > > > + return error;
> > > > +
> > > > + /*
> > > > + * Note that given that we get a mask (and the HW allows it),
> > > > we
> > > > + * can have holes in our keypad (eg: row0, row1 and row7
> > > > enabled).
> > > > + * However, for the matrix parsing functions we need to pass
> > > > the
> > > > + * number of rows/cols as the maximum row/col used plus 1. This
> > > > + * pretty much means we will also have holes in our SW keypad.
> > > > + */
> > > > +
> > > > + rows = find_last_bit(&kpad->keypad, kpad->info->max_rows) + 1;
> > > > + if (rows == kpad->info->max_rows + 1)
> > > > + return dev_err_probe(dev, -EINVAL,
> > > > + "Now rows defined in the
> > > > keypad!\n");
> > > > +
> > > > + cols = find_last_bit(&kpad->keypad, kpad->info->max_cols +
> > > > kpad-
> > > > > info->max_rows);
> > > > + if (cols < kpad->info->max_rows)
> > > > + return dev_err_probe(dev, -EINVAL,
> > > > + "No columns defined in the
> > > > keypad!\n");
> > > > +
> > > > + cols = cols + 1 - kpad->info->max_rows;
> > > > +
> > > > + error = matrix_keypad_build_keymap(NULL, NULL, rows, cols,
> > > > + kpad->keycode, kpad->input);
> > > > + if (error)
> > > > + return error;
> > > > +
> > > > + kpad->row_shift = get_count_order(cols);
> > > > +
> > > > + if (device_property_read_bool(kpad->dev, "autorepeat"))
> > > > + __set_bit(EV_REP, kpad->input->evbit);
> > > > +
> > > > + return adp5585_keys_check_special_events(adp5585, kpad);
> > >
> > > error = adp5585_keys_check_special_events(...);
> > > if (error)
> > > return error;
> >
> > Curious, any special reason for the above? Or is just personal preference?
>
> More of a personal preference, however there is some logic to it ;) -
> in a function with multiple failure/return points such form allows for
> easy addition and/or movement of the code.
>
> Thanks.
I get your point. Honestly still prefer returning right away but no strong
feelings anyways. I'll change it.
- Nuno Sá
next prev parent reply other threads:[~2025-05-21 10:06 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-12 12:38 [PATCH v3 00/22] mfd: adp5585: support keymap events and drop legacy Input driver Nuno Sá via B4 Relay
2025-05-12 12:38 ` [PATCH v3 01/22] dt-bindings: mfd: adp5585: ease on the required properties Nuno Sá via B4 Relay
2025-05-12 12:38 ` [PATCH v3 02/22] mfd: adp5585: only add devices given in FW Nuno Sá via B4 Relay
2025-05-13 14:34 ` Lee Jones
2025-05-13 15:02 ` Nuno Sá
2025-05-13 15:19 ` Laurent Pinchart
2025-05-13 15:37 ` Nuno Sá
2025-05-13 16:12 ` Lee Jones
2025-05-12 12:38 ` [PATCH v3 03/22] mfd: adp5585: enable oscilator during probe Nuno Sá via B4 Relay
2025-05-13 14:26 ` Lee Jones
2025-05-13 14:52 ` Nuno Sá
2025-05-13 16:07 ` Lee Jones
2025-05-13 15:24 ` Laurent Pinchart
2025-05-13 15:38 ` Nuno Sá
2025-05-12 12:38 ` [PATCH v3 04/22] pwm: adp5585: don't control OSC_EN in the pwm driver Nuno Sá via B4 Relay
2025-05-13 15:26 ` Laurent Pinchart
2025-05-13 15:39 ` Nuno Sá
2025-05-13 16:04 ` Lee Jones
2025-05-12 12:38 ` [PATCH v3 05/22] mfd: adp5585: make use of MFD_CELL_NAME() Nuno Sá via B4 Relay
2025-05-13 14:39 ` Lee Jones
2025-05-13 14:50 ` Nuno Sá
2025-05-12 12:38 ` [PATCH v3 06/22] dt-bindings: mfd: adp5585: document adp5589 I/O expander Nuno Sá via B4 Relay
2025-05-12 12:38 ` [PATCH v3 07/22] mfd: adp5585: refactor how regmap defaults are handled Nuno Sá via B4 Relay
2025-05-13 15:00 ` Lee Jones
2025-05-13 15:02 ` Lee Jones
2025-05-13 15:32 ` Nuno Sá
2025-05-13 15:36 ` Laurent Pinchart
2025-05-13 16:03 ` Lee Jones
2025-05-13 15:35 ` Laurent Pinchart
2025-05-13 15:41 ` Nuno Sá
2025-05-12 12:39 ` [PATCH v3 08/22] mfd: adp5585: add support for adp5589 Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 09/22] mfd: adp5585: add a per chip reg struture Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 10/22] gpio: adp5585: add support for the adp5589 expander Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 11/22] pwm: adp5585: add support for adp5589 Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 12/22] dt-bindings: mfd: adp5585: add properties for input events Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 13/22] mfd: adp5585: add support for event handling Nuno Sá via B4 Relay
2025-05-13 15:59 ` Lee Jones
2025-05-15 5:56 ` Nuno Sá
2025-05-15 6:14 ` Nuno Sá
2025-05-12 12:39 ` [PATCH v3 14/22] mfd: adp5585: support reset and unlock events Nuno Sá via B4 Relay
2025-05-13 16:22 ` Lee Jones
2025-05-14 8:35 ` Laurent Pinchart
2025-05-14 8:46 ` Lee Jones
2025-05-15 5:46 ` Nuno Sá
2025-05-12 12:39 ` [PATCH v3 15/22] mfd: adp5585: add support for input devices Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 16/22] gpio: adp5585: support gpi events Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 17/22] Input: adp5585: Add Analog Devices ADP5585/89 support Nuno Sá via B4 Relay
2025-05-19 22:29 ` Dmitry Torokhov
2025-05-20 8:32 ` Nuno Sá
2025-05-20 18:33 ` Dmitry Torokhov
2025-05-21 10:06 ` Nuno Sá [this message]
2025-05-12 12:39 ` [PATCH v3 18/22] Input: adp5589: remove the driver Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 19/22] mfd: adp5585: support getting vdd regulator Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 20/22] dt-bindings: mfd: adp5585: document reset gpio Nuno Sá via B4 Relay
2025-05-12 12:39 ` [PATCH v3 21/22] mfd: adp5585: add support for a reset pin Nuno Sá via B4 Relay
2025-05-13 16:26 ` Lee Jones
2025-05-15 5:39 ` Nuno Sá
2025-05-12 12:39 ` [PATCH v3 22/22] pwm: adp5585: make sure to include mod_devicetable.h Nuno Sá via B4 Relay
2025-05-19 16:11 ` Uwe Kleine-König
2025-05-19 16:19 ` Nuno Sá
2025-05-14 8:25 ` [PATCH v3 00/22] mfd: adp5585: support keymap events and drop legacy Input driver Lee Jones
2025-05-14 11:04 ` Nuno Sá
2025-07-02 13:34 ` Lee Jones
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=497d549b6d055cf6402a9777c1295f5415174c86.camel@gmail.com \
--to=noname.nuno@gmail.com \
--cc=brgl@bgdev.pl \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=lee@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=nuno.sa@analog.com \
--cc=robh@kernel.org \
--cc=ukleinek@kernel.org \
--cc=victor.liu@nxp.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).