All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Robin Murphy <robin.murphy@arm.com>
Cc: "Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	devicetree@vger.kernel.org,
	"linux-samsung-soc@vger.kernel.org"
	<linux-samsung-soc@vger.kernel.org>,
	linux-pm@vger.kernel.org, pankaj.dubey@samsung.com,
	"Bartłomiej Żołnierkiewicz" <b.zolnierkie@samsung.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	robh+dt@kernel.org, kgene@kernel.org, vireshk@kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Marek Szyprowski" <m.szyprowski@samsung.com>
Subject: Re: [PATCH v2 3/9] soc: samsung: Add Exynos Adaptive Supply Voltage driver
Date: Thu, 8 Aug 2019 15:14:54 +0200	[thread overview]
Message-ID: <CAJKOXPc01ViCcwpasJ4o+yxvz5r8v0D1h5F5dc4=s0R0Jn4uNw@mail.gmail.com> (raw)
In-Reply-To: <669c6b25-eb7e-ed3a-72a2-ee155a568363@arm.com>

On Thu, 8 Aug 2019 at 14:48, Robin Murphy <robin.murphy@arm.com> wrote:
>
> On 08/08/2019 13:31, Krzysztof Kozlowski wrote:
> > On Thu, 8 Aug 2019 at 14:07, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote:
> >>>> +static unsigned int exynos5422_asv_parse_table(struct exynos_asv *asv,
> >>>> +                                     unsigned int pkg_id)
> >>>> +{
> >>>> +       return (pkg_id >> EXYNOS5422_TABLE_OFFSET) & EXYNOS5422_TABLE_MASK;
> >>>> +}
> >>>> +
> >>>> +static bool exynos5422_asv_parse_bin2(struct exynos_asv *asv,
> >>>> +                                    unsigned int pkg_id)
> >>>> +{
> >>>> +       return (pkg_id >> EXYNOS5422_BIN2_OFFSET) & EXYNOS5422_BIN2_MASK;
> >>>
> >>> return !!() for converting to boolean.
> >>
> >> I'm not convinced it is needed, the return type of the function is bool
> >> and value of the expression will be implicitly converted to that type.
> >> Is there any compiler warning related to that?
> >
> > Yeah, but bool is int so there will be no implicit conversion... I
> > guess it is a convention. In theory !! is the proper conversion to
> > bool but if bool==int then it's essentially conversion to 1. I am not
> > sure what's the benefit, maybe for some wrong code which would do
> > comparisons on result like if (exynos5422_asv_parse_bin2() == TRUE)...
>
> Not so - since we use "-std=gnu89", we have C99-like _Bool, which our
> bool is a typedef of. Conversions, either implicit or explicit, are
> well-defined:
>
> "6.3.1.2 Boolean type
>
> When any scalar value is converted to _Bool, the result is 0 if the
> value compares equal
> to 0; otherwise, the result is 1."
>
> This is even called out in Documentation/process/coding-style.rst:
>
> "When using bool types the !! construction is not needed, which
> eliminates a class of bugs."

Good point, thanks!

Best regards,
Krzysztof

WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Robin Murphy <robin.murphy@arm.com>
Cc: devicetree@vger.kernel.org,
	"linux-samsung-soc@vger.kernel.org"
	<linux-samsung-soc@vger.kernel.org>,
	"Bartłomiej Żołnierkiewicz" <b.zolnierkie@samsung.com>,
	pankaj.dubey@samsung.com, linux-pm@vger.kernel.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	robh+dt@kernel.org, kgene@kernel.org,
	"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
	vireshk@kernel.org, linux-arm-kernel@lists.infradead.org,
	"Marek Szyprowski" <m.szyprowski@samsung.com>
Subject: Re: [PATCH v2 3/9] soc: samsung: Add Exynos Adaptive Supply Voltage driver
Date: Thu, 8 Aug 2019 15:14:54 +0200	[thread overview]
Message-ID: <CAJKOXPc01ViCcwpasJ4o+yxvz5r8v0D1h5F5dc4=s0R0Jn4uNw@mail.gmail.com> (raw)
In-Reply-To: <669c6b25-eb7e-ed3a-72a2-ee155a568363@arm.com>

On Thu, 8 Aug 2019 at 14:48, Robin Murphy <robin.murphy@arm.com> wrote:
>
> On 08/08/2019 13:31, Krzysztof Kozlowski wrote:
> > On Thu, 8 Aug 2019 at 14:07, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote:
> >>>> +static unsigned int exynos5422_asv_parse_table(struct exynos_asv *asv,
> >>>> +                                     unsigned int pkg_id)
> >>>> +{
> >>>> +       return (pkg_id >> EXYNOS5422_TABLE_OFFSET) & EXYNOS5422_TABLE_MASK;
> >>>> +}
> >>>> +
> >>>> +static bool exynos5422_asv_parse_bin2(struct exynos_asv *asv,
> >>>> +                                    unsigned int pkg_id)
> >>>> +{
> >>>> +       return (pkg_id >> EXYNOS5422_BIN2_OFFSET) & EXYNOS5422_BIN2_MASK;
> >>>
> >>> return !!() for converting to boolean.
> >>
> >> I'm not convinced it is needed, the return type of the function is bool
> >> and value of the expression will be implicitly converted to that type.
> >> Is there any compiler warning related to that?
> >
> > Yeah, but bool is int so there will be no implicit conversion... I
> > guess it is a convention. In theory !! is the proper conversion to
> > bool but if bool==int then it's essentially conversion to 1. I am not
> > sure what's the benefit, maybe for some wrong code which would do
> > comparisons on result like if (exynos5422_asv_parse_bin2() == TRUE)...
>
> Not so - since we use "-std=gnu89", we have C99-like _Bool, which our
> bool is a typedef of. Conversions, either implicit or explicit, are
> well-defined:
>
> "6.3.1.2 Boolean type
>
> When any scalar value is converted to _Bool, the result is 0 if the
> value compares equal
> to 0; otherwise, the result is 1."
>
> This is even called out in Documentation/process/coding-style.rst:
>
> "When using bool types the !! construction is not needed, which
> eliminates a class of bugs."

Good point, thanks!

Best regards,
Krzysztof

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-08-08 13:15 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20190718143117eucas1p1e534b9075d10fbbbe427c66192205eb1@eucas1p1.samsung.com>
2019-07-18 14:30 ` [PATCH v2 0/9] Exynos Adaptive Supply Voltage support Sylwester Nawrocki
2019-07-18 14:30   ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143127eucas1p13b1e2c98d270140a87f09562ef46c9a3@eucas1p1.samsung.com>
2019-07-18 14:30     ` [PATCH v2 1/9] soc: samsung: Add exynos chipid driver support Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
2019-07-23 12:57       ` Krzysztof Kozlowski
2019-07-23 12:57         ` Krzysztof Kozlowski
2019-07-23 14:10         ` Bartlomiej Zolnierkiewicz
2019-07-23 14:10           ` Bartlomiej Zolnierkiewicz
2019-07-23 14:10           ` Bartlomiej Zolnierkiewicz
2019-07-24 10:47           ` Krzysztof Kozlowski
2019-07-24 10:47             ` Krzysztof Kozlowski
2019-07-24 10:47             ` Krzysztof Kozlowski
2019-08-08 12:07         ` Sylwester Nawrocki
2019-08-08 12:07           ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143128eucas1p2677ae16d229dddcd9a0db8084f0da5cf@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 2/9] soc: samsung: Convert exynos-chipid driver to use the regmap API Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
2019-07-23 13:01       ` Krzysztof Kozlowski
2019-07-23 13:01         ` Krzysztof Kozlowski
2019-08-08 12:07         ` Sylwester Nawrocki
2019-08-08 12:07           ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143130eucas1p26f2058f47eb2f4020e1ddbf1619d1ac8@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 3/9] soc: samsung: Add Exynos Adaptive Supply Voltage driver Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
2019-07-23 13:38       ` Krzysztof Kozlowski
2019-07-23 13:38         ` Krzysztof Kozlowski
2019-08-08 12:07         ` Sylwester Nawrocki
2019-08-08 12:07           ` Sylwester Nawrocki
2019-08-08 12:31           ` Krzysztof Kozlowski
2019-08-08 12:31             ` Krzysztof Kozlowski
2019-08-08 12:31             ` Krzysztof Kozlowski
2019-08-08 12:48             ` Robin Murphy
2019-08-08 12:48               ` Robin Murphy
2019-08-08 13:14               ` Krzysztof Kozlowski [this message]
2019-08-08 13:14                 ` Krzysztof Kozlowski
     [not found]   ` <CGME20190718143131eucas1p2e1afc9fe816fff52ee4d12e0979eeb4c@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 4/9] ARM: EXYNOS: enable exynos_chipid for ARCH_EXYNOS Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143132eucas1p2afecae86f2ef17aa8a4a99df8ffa47d9@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 5/9] ARM64: " Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143134eucas1p2aed09e2171d0d2d6b916dddac3637017@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 6/9] ARM: EXYNOS: Enable exynos-asv driver " Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143135eucas1p2da5b7842b35327c60667064184619a9f@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 7/9] soc: samsung: Update the CHIP ID DT binding documentation Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143136eucas1p2cedfe5ed5e8e6316e82b30a565dc4855@eucas1p2.samsung.com>
2019-07-18 14:30     ` [PATCH v2 8/9] ARM: dts: Add "syscon" compatible string to chipid node Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
     [not found]   ` <CGME20190718143138eucas1p127542c4cb8416cee9af6a95f4bc98366@eucas1p1.samsung.com>
2019-07-18 14:30     ` [PATCH v2 9/9] ARM: dts: Add samsung,asv-bin property for odroidxu3-lite Sylwester Nawrocki
2019-07-18 14:30       ` Sylwester Nawrocki
2019-07-23  2:04   ` [PATCH v2 0/9] Exynos Adaptive Supply Voltage support Viresh Kumar
2019-07-23  2:04     ` Viresh Kumar
2019-07-24 13:10     ` Marek Szyprowski
2019-07-24 13:10       ` Marek Szyprowski
2019-07-25  2:23       ` Viresh Kumar
2019-07-25  2:23         ` Viresh Kumar
2019-08-09 15:58         ` Sylwester Nawrocki
2019-08-09 15:58           ` Sylwester Nawrocki
2019-08-19  9:09           ` Viresh Kumar
2019-08-19  9:09             ` Viresh Kumar
2019-08-19 10:06             ` Viresh Kumar
2019-08-19 10:06               ` Viresh Kumar
2019-08-19 11:16             ` Sylwester Nawrocki
2019-08-19 11:16               ` Sylwester Nawrocki
2019-08-19 11:25               ` Viresh Kumar
2019-08-19 11:25                 ` Viresh Kumar
2019-08-19 13:39                 ` Sylwester Nawrocki
2019-08-19 13:39                   ` Sylwester Nawrocki
2019-08-20  3:01                   ` Viresh Kumar
2019-08-20  3:01                     ` Viresh Kumar
2019-08-20  9:03                     ` Sylwester Nawrocki
2019-08-20  9:03                       ` Sylwester Nawrocki
2019-08-20  9:21                       ` Viresh Kumar
2019-08-20  9:21                         ` Viresh Kumar
2019-09-04 12:37                         ` Sylwester Nawrocki
2019-09-04 12:37                           ` Sylwester Nawrocki
2019-09-05  5:01                           ` Viresh Kumar
2019-09-05  5:01                             ` Viresh Kumar

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='CAJKOXPc01ViCcwpasJ4o+yxvz5r8v0D1h5F5dc4=s0R0Jn4uNw@mail.gmail.com' \
    --to=krzk@kernel.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kgene@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=pankaj.dubey@samsung.com \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=s.nawrocki@samsung.com \
    --cc=vireshk@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.