public inbox for linux-watchdog@vger.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: S Twiss <stwiss.opensource@diasemi.com>
Cc: LINUXKERNEL <linux-kernel@vger.kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Alessandro Zummo <a.zummo@towertech.it>,
	DEVICETREE <devicetree@vger.kernel.org>,
	David Dajun Chen <david.chen@diasemi.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	LINUXINPUT <linux-input@vger.kernel.org>,
	LINUXWATCHDOG <linux-watchdog@vger.kernel.org>,
	Lee Jones <lee.jones@linaro.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Pawel Moll <pawel.moll@arm.com>,
	RTCLINUX <rtc-linux@googlegroups.com>,
	Rob Herring <robh+dt@kernel.org>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Support Opensource <support.opensource@diasemi.com>,
	Wim Van Sebroeck <wim@iguana.be>
Subject: Re: [PATCH V1 2/6] regulator: da9062: DA9062 regulator driver
Date: Sat, 18 Apr 2015 12:48:28 +0100	[thread overview]
Message-ID: <20150418114828.GG26185@sirena.org.uk> (raw)
In-Reply-To: <7acb2e683450a608adf81e6b820e62b523429101.1429280614.git.stwiss.opensource@diasemi.com>

[-- Attachment #1: Type: text/plain, Size: 2493 bytes --]

On Fri, Apr 17, 2015 at 03:23:32PM +0100, S Twiss wrote:

> +/* Regulator interrupt handlers */
> +static irqreturn_t da9062_ldo_lim_event(int irq, void *data)
> +{
> +	struct da9062_regulators *regulators = data;
> +	struct da9062 *hw = regulators->regulator[0].hw;
> +	struct da9062_regulator *regl;
> +	int bits, i, ret;
> +
> +	ret = regmap_read(hw->regmap, DA9062AA_STATUS_D, &bits);
> +	if (ret < 0)
> +		return IRQ_NONE;

Please log an error for this, if we're having trouble talking to the
device that seems like a serious issue.

> +	for (i = regulators->n_regulators - 1; i >= 0; i--) {
> +		regl = &regulators->regulator[i];
> +		if (regl->info->oc_event.reg != DA9062AA_STATUS_D)
> +			continue;
> +
> +		if (BIT(regl->info->oc_event.lsb) & bits)
> +			regulator_notifier_call_chain(regl->rdev,
> +					REGULATOR_EVENT_OVER_CURRENT, NULL);
> +	}
> +
> +	return IRQ_HANDLED;

This will return IRQ_HANDLED even if none of the regulators were
flagginng an event.

> +static irqreturn_t da9062_vdd_warn_event(int irq, void *data)
> +{
> +	return IRQ_HANDLED;
> +}

Ignoring an interrupt is not usefully handling it - at the *least* this
should be generating a log message.

> +static struct da9062_regulators_pdata *da9062_parse_regulators_dt(
> +		struct platform_device *pdev,
> +		struct of_regulator_match **reg_matches)
> +{
> +	struct da9062_regulators_pdata *pdata;
> +	struct da9062_regulator_data *rdata;
> +	struct device_node *node;
> +	int i, n, num;
> +
> +	node = of_get_child_by_name(pdev->dev.parent->of_node, "regulators");
> +	if (!node) {
> +		dev_err(&pdev->dev, "Regulators device node not found\n");
> +		return ERR_PTR(-ENODEV);
> +	}
> +
> +	num = of_regulator_match(&pdev->dev, node, da9062_matches,
> +				 ARRAY_SIZE(da9062_matches));

Don't open code this, describe the DT names in the regualtor_desc and
let the core register.

> +	if (IS_ERR(pdata) || pdata->n_regulators == 0) {
> +		dev_err(&pdev->dev,
> +			"No regulators defined for the platform\n");
> +		return PTR_ERR(pdata);
> +	}
> +
> +	n_regulators = ARRAY_SIZE(local_regulator_info),

This is broken, the set of regulators in the silicon is not a property
of the platform.  The driver should just register all the regualtors
that are present in the silicon.  I'm fairly sure I've been through this
before...

> +	ret = request_threaded_irq(irq,
> +				   NULL, da9062_vdd_warn_event,
> +				   IRQF_TRIGGER_LOW | IRQF_ONESHOT,
> +				   "VDD_WARN", regulators);

devm_request_threaded_irq().

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  parent reply	other threads:[~2015-04-18 11:48 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-17 14:23 [PATCH V1 0/6] COVER LETTER S Twiss
2015-04-17 14:23 ` [PATCH V1 1/6] mfd: da9062: DA9062 MFD core driver S Twiss
2015-04-18  8:27   ` Paul Bolle
2015-04-24 14:47   ` Opensource [Steve Twiss]
2015-04-17 14:23 ` [PATCH V1 2/6] regulator: da9062: DA9062 regulator driver S Twiss
2015-04-18  8:32   ` Paul Bolle
2015-04-18 11:48   ` Mark Brown [this message]
2015-04-24 14:47     ` Opensource [Steve Twiss]
2015-04-24 15:24       ` Mark Brown
2015-04-17 14:23 ` [PATCH V1 3/6] rtc: da9062: DA9062 RTC driver S Twiss
2015-05-10  9:58   ` [rtc-linux] " Alexandre Belloni
2015-05-13 12:31     ` Opensource [Steve Twiss]
2015-05-13 12:58       ` Alexandre Belloni
2015-05-13 13:04         ` Guenter Roeck
2015-05-13 13:37           ` Alexandre Belloni
2015-05-13 13:46             ` Guenter Roeck
2015-05-13 14:56               ` Opensource [Steve Twiss]
2015-04-17 14:23 ` [PATCH V1 4/6] input: misc: onkey: da9062: DA9062 OnKey driver S Twiss
2015-04-17 16:12   ` Dmitry Torokhov
2015-04-29 15:18     ` Opensource [Steve Twiss]
2015-04-17 14:23 ` [PATCH V1 6/6] devicetree: da9062: Add bindings for DA9062 driver S Twiss
2015-04-29 10:54   ` Lee Jones
2015-04-29 11:26     ` Opensource [Steve Twiss]
2015-04-17 14:23 ` [PATCH V1 5/6] watchdog: da9062: DA9062 watchdog driver S Twiss
2015-04-18 15:52   ` Guenter Roeck
2015-05-06 14:54     ` Opensource [Steve Twiss]
2015-05-06 16:02       ` Guenter Roeck
2015-05-06 16:30         ` Opensource [Steve Twiss]
2015-05-06 20:06           ` Guenter Roeck
2015-05-07 17:45             ` Opensource [Steve Twiss]
2015-05-07 17:57               ` Guenter Roeck
2015-05-07 19:02                 ` Opensource [Steve Twiss]
2015-05-08 13:46     ` Opensource [Steve Twiss]
2015-04-18 15:54 ` [PATCH V1 0/6] COVER LETTER Guenter Roeck

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=20150418114828.GG26185@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=a.zummo@towertech.it \
    --cc=david.chen@diasemi.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=rtc-linux@googlegroups.com \
    --cc=sameo@linux.intel.com \
    --cc=stwiss.opensource@diasemi.com \
    --cc=support.opensource@diasemi.com \
    --cc=wim@iguana.be \
    /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