All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <t.figa@samsung.com>
To: Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
	amit daniel kachhap <amit.daniel@samsung.com>
Cc: Lee Jones <lee.jones@linaro.org>,
	Alessandro Zummo <a.zummo@towertech.it>,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	Kukjin Kim <kgene.kim@samsung.com>,
	Mike Turquette <mturquette@linaro.org>,
	Tomeu Vizoso <tomeu.vizoso@collabora.com>,
	devicetree@vger.kernel.org,
	Yadwinder Singh Brar <yadi.brar01@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Doug Anderson <dianders@chromium.org>,
	Tushar Behera <trblinux@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	"linux-samsung-soc@vger.kernel.org" 
	<linux-samsung-soc@vger.kernel.org>,
	Olof Johansson <olof@lixom.net>,
	Andreas Farber <afaerber@suse.de>,
	LAK <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v7 08/24] mfd: max77686: Add Dynamic Voltage Scaling (DVS) support
Date: Fri, 11 Jul 2014 11:43:22 +0200	[thread overview]
Message-ID: <53BFB1BA.6030108@samsung.com> (raw)
In-Reply-To: <53BF41C8.4080304@collabora.co.uk>

Hi Javier,

On 11.07.2014 03:45, Javier Martinez Canillas wrote:
> On 07/10/2014 11:59 AM, amit daniel kachhap wrote:
>> On Sat, Jul 5, 2014 at 1:54 AM, Javier Martinez Canillas
>> <javier.martinez@collabora.co.uk> wrote:

[snip]

>>> @@ -111,6 +223,13 @@ static struct max77686_platform_data *max77686_i2c_parse_dt_pdata(struct device
>>>                 return NULL;
>>>
>>>         dev->platform_data = pd;
>>> +
>>> +       /* Read default index and ignore errors, since default is 0 */
>>> +       of_property_read_u32(np, "max77686,pmic-buck-default-dvs-idx",
>>> +                            &pd->buck_default_idx);
>> Any error checking code here. Say if pmic-buck-default-dvs-idx exceed 8?
> 
> I'm not a DT expert but AFAIK the kernel should expect the data in a FDT to be
> correct and should not validate it on runtime. There is work-in-progress to add
> a proper schema checking for DTS to the dtc so on build time it can be validated
> that a DTS is valid.
> 
> AFAIU the only thing that the kernel should check is if a required property does
> not exist.

I'd disagree on this.

IMHO schema (if it progresses further, as unfortunately I can't find
time to dedicate to it and looks like it's similar for other people that
used to be involved) should be focused on structural checks, i.e. proper
layout of nodes and properties, basic data types and so, to figure out
common errors earlier than at boot-up time.

On kernel side this should be treated in the same way as platform data.
I agree that some existing drivers do little to validate incoming data,
but I believe it is a good practice to validate things that the driver
has no control over, especially when it's about a PMIC, when invalid
data can have quite serious effects and detecting even some of them
(e.g. value to big, which would overflow in target bit field) might
prevent a failure.

Best regards,
Tomasz

WARNING: multiple messages have this Message-ID (diff)
From: t.figa@samsung.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 08/24] mfd: max77686: Add Dynamic Voltage Scaling (DVS) support
Date: Fri, 11 Jul 2014 11:43:22 +0200	[thread overview]
Message-ID: <53BFB1BA.6030108@samsung.com> (raw)
In-Reply-To: <53BF41C8.4080304@collabora.co.uk>

Hi Javier,

On 11.07.2014 03:45, Javier Martinez Canillas wrote:
> On 07/10/2014 11:59 AM, amit daniel kachhap wrote:
>> On Sat, Jul 5, 2014 at 1:54 AM, Javier Martinez Canillas
>> <javier.martinez@collabora.co.uk> wrote:

[snip]

>>> @@ -111,6 +223,13 @@ static struct max77686_platform_data *max77686_i2c_parse_dt_pdata(struct device
>>>                 return NULL;
>>>
>>>         dev->platform_data = pd;
>>> +
>>> +       /* Read default index and ignore errors, since default is 0 */
>>> +       of_property_read_u32(np, "max77686,pmic-buck-default-dvs-idx",
>>> +                            &pd->buck_default_idx);
>> Any error checking code here. Say if pmic-buck-default-dvs-idx exceed 8?
> 
> I'm not a DT expert but AFAIK the kernel should expect the data in a FDT to be
> correct and should not validate it on runtime. There is work-in-progress to add
> a proper schema checking for DTS to the dtc so on build time it can be validated
> that a DTS is valid.
> 
> AFAIU the only thing that the kernel should check is if a required property does
> not exist.

I'd disagree on this.

IMHO schema (if it progresses further, as unfortunately I can't find
time to dedicate to it and looks like it's similar for other people that
used to be involved) should be focused on structural checks, i.e. proper
layout of nodes and properties, basic data types and so, to figure out
common errors earlier than at boot-up time.

On kernel side this should be treated in the same way as platform data.
I agree that some existing drivers do little to validate incoming data,
but I believe it is a good practice to validate things that the driver
has no control over, especially when it's about a PMIC, when invalid
data can have quite serious effects and detecting even some of them
(e.g. value to big, which would overflow in target bit field) might
prevent a failure.

Best regards,
Tomasz

  parent reply	other threads:[~2014-07-11  9:44 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-04 20:24 [PATCH v7 00/24] Add Maxim 77802 PMIC support Javier Martinez Canillas
2014-07-04 20:24 ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 01/24] mfd: max77686: Convert to use regmap_irq Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-18  8:17   ` Lee Jones
2014-07-18  8:17     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 02/24] mfd: max77686: Add power management support Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 14:44   ` Lee Jones
2014-07-09 14:44     ` Lee Jones
2014-07-18  8:17   ` Lee Jones
2014-07-18  8:17     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 03/24] mfd: max77686: Don't define dummy function if OF isn't enabled Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 14:50   ` Lee Jones
2014-07-09 14:50     ` Lee Jones
2014-07-18  8:17   ` Lee Jones
2014-07-18  8:17     ` Lee Jones
2014-07-18  8:17     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 04/24] mfd: max77686: Make platform data over-rule DT Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 14:52   ` Lee Jones
2014-07-09 14:52     ` Lee Jones
2014-07-09 18:15     ` Javier Martinez Canillas
2014-07-09 18:15       ` Javier Martinez Canillas
2014-07-18  8:17   ` Lee Jones
2014-07-18  8:17     ` Lee Jones
2014-07-18  8:17     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 05/24] mfd: max77686: Return correct error when pdata isn't found Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 14:53   ` Lee Jones
2014-07-09 14:53     ` Lee Jones
2014-07-18  8:18   ` Lee Jones
2014-07-18  8:18     ` Lee Jones
2014-07-18  8:18     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 06/24] mfd: max77686: Make error checking consistent Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 14:54   ` Lee Jones
2014-07-09 14:54     ` Lee Jones
2014-07-18  8:18   ` Lee Jones
2014-07-18  8:18     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 07/24] mfd: max77686: Remove unneeded OOM error message Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-18  8:18   ` Lee Jones
2014-07-18  8:18     ` Lee Jones
2014-07-18  8:18     ` Lee Jones
2014-07-04 20:24 ` [PATCH v7 08/24] mfd: max77686: Add Dynamic Voltage Scaling (DVS) support Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 15:13   ` Lee Jones
2014-07-09 15:13     ` Lee Jones
2014-07-09 18:40     ` Javier Martinez Canillas
2014-07-09 18:40       ` Javier Martinez Canillas
2014-07-10  9:46   ` Linus Walleij
2014-07-10  9:46     ` Linus Walleij
2014-07-11  0:51     ` Javier Martinez Canillas
2014-07-10  9:59   ` amit daniel kachhap
2014-07-10  9:59     ` amit daniel kachhap
2014-07-10  9:59     ` amit daniel kachhap
2014-07-11  1:45     ` Javier Martinez Canillas
2014-07-11  1:45       ` Javier Martinez Canillas
2014-07-11  1:45       ` Javier Martinez Canillas
2014-07-11  4:02       ` Doug Anderson
2014-07-11  4:02         ` Doug Anderson
2014-07-11  4:02         ` Doug Anderson
2014-07-11  9:37       ` amit daniel kachhap
2014-07-11  9:37         ` amit daniel kachhap
2014-07-11  9:37         ` amit daniel kachhap
2014-07-11  9:43       ` Tomasz Figa [this message]
2014-07-11  9:43         ` Tomasz Figa
2014-07-11  9:43         ` Tomasz Figa
2014-07-11 10:15         ` Javier Martinez Canillas
2014-07-11 10:15           ` Javier Martinez Canillas
2014-07-11 10:15           ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 09/24] rtc: max77686: Allow the max77686 rtc to wakeup the system Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 10/24] rtc: max77686: Remove dead code for SMPL and WTSR Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-07  6:09   ` Krzysztof Kozlowski
2014-07-07  6:09     ` Krzysztof Kozlowski
2014-07-04 20:24 ` [PATCH v7 11/24] clk: max77686: Add DT include for MAX77686 PMIC clock Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 12/24] clk: Add generic driver for Maxim PMIC clocks Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 13/24] clk: max77686: Convert to the generic max clock driver Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 14/24] clk: max77686: Improve Maxim 77686 PMIC clocks binding Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 15/24] regmap: Add regmap_reg_copy function Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 16/24] regulator: max77686: Setup DVS-related GPIOs on probe Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 17/24] mfd: max77686: Add documentation for DVS bindings Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 18/24] mfd: max77686: Add Maxim 77802 PMIC support Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-09 15:31   ` Lee Jones
2014-07-09 15:31     ` Lee Jones
2014-07-09 18:43     ` Javier Martinez Canillas
2014-07-09 18:43       ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 19/24] mfd: max77802: Add DT binding documentation Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 20/24] regulator: Add driver for Maxim 77802 PMIC regulators Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 21/24] clk: Add driver for Maxim 77802 PMIC clocks Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 22/24] clk: max77802: Add DT binding documentation Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 23/24] rtc: Add driver for Maxim 77802 PMIC Real-Time-Clock Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas
2014-07-07  6:06   ` Krzysztof Kozlowski
2014-07-07  6:06     ` Krzysztof Kozlowski
2014-07-07  6:57     ` Javier Martinez Canillas
2014-07-07  6:57       ` Javier Martinez Canillas
2014-07-07  6:57       ` Javier Martinez Canillas
2014-07-04 20:24 ` [PATCH v7 24/24] ARM: dts: Add max77802 to exynos5420-peach-pit and exynos5800-peach-pi Javier Martinez Canillas
2014-07-04 20:24   ` Javier Martinez Canillas

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=53BFB1BA.6030108@samsung.com \
    --to=t.figa@samsung.com \
    --cc=a.zummo@towertech.it \
    --cc=afaerber@suse.de \
    --cc=amit.daniel@samsung.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=javier.martinez@collabora.co.uk \
    --cc=k.kozlowski@samsung.com \
    --cc=kgene.kim@samsung.com \
    --cc=lee.jones@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mturquette@linaro.org \
    --cc=olof@lixom.net \
    --cc=tomeu.vizoso@collabora.com \
    --cc=trblinux@gmail.com \
    --cc=yadi.brar01@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 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.