netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Heiner Kallweit <hkallweit1@gmail.com>
To: Marek Vasut <marex@denx.de>, Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org, f.fainelli@gmail.com
Subject: Re: [PATCH V2] net: phy: tja11xx: Add TJA11xx PHY driver
Date: Sat, 22 Dec 2018 18:24:35 +0100	[thread overview]
Message-ID: <08d66ea6-481c-94d0-373b-a3f987232951@gmail.com> (raw)
In-Reply-To: <80ec255b-ae2e-eb29-a6ea-dfa4b00ae0de@denx.de>

On 22.12.2018 00:22, Marek Vasut wrote:
> On 12/15/2018 06:38 PM, Heiner Kallweit wrote:
>> On 15.12.2018 18:01, Andrew Lunn wrote:
>>>> +static struct tja11xx_phy_stats tja11xx_hw_stats[] = {
>>>> +	{ "phy_symbol_error_count", 20, 0, 0xffff },
>>>> +	{ "phy_overtemp_error", 21, 1, BIT(1) },
>>>> +	{ "phy_undervolt_error", 21, 3, BIT(3) },
>>>> +	{ "phy_polarity_detect", 25, 6, BIT(6) },
>>>> +	{ "phy_open_detect", 25, 7, BIT(7) },
>>>> +	{ "phy_short_detect", 25, 8, BIT(8) },
>>>
>>> Hi Marek
>>>
>>> You have a number of one bit counters here, which is pretty unusual.
>>> The names also don't really suggest they are counters.
>>>
>> Apart from few counters the values seem to be flags. I just think
>> it could be done in a little bit more readable form, e.g. instead of
>> { "phy_short_detect", 25, 8, BIT(8) } use
>> { "phy_short_detect", 25, BIT(8) } and in tja11xx_get_stats() then
>> use FIELD_GET (see linux/bitfield.h).
> 
> This doesn't work with the counters, it only works with flags. The array
> contains both.
> 
Maybe we have a misunderstanding here, but FIELD_GET would work also
with the counters. FIELD_GET calculates the field offset, so you don't
need to specify it. Let's say you would have an entry in your array like
this: { "phy_xxx_error_count", 20, 4, 0xfff0 }

Then you would do:
#define XXX_ERROR_CNT_MASK GENMASK(15, 4)
{ "phy_xxx_error_count", 20, XXX_ERROR_CNT_MASK }
and access the value by
val = FIELD_GET(XXX_ERROR_CNT_MASK, reg)


>> The idea of HWMON attributes sounds good to me because it allows
>> to use the flags to trigger actions in a structured way. And I
>> assume in case of e.g. "PHY undervolt" some monitoring system
>> would like to be informed (especially because we talk about
>> automotive here).
> 
> I added HWMON_T_CRIT_ALARM and HWMON_I_LCRIT_ALARM for
> phy_overtemp_error and phy_undervolt_error respectively.
> Are there any other hwmon attributes I can use to replace the flags in
> the tja11xx_hw_stats array ?
> 
I think that's it.

  reply	other threads:[~2018-12-22 17:40 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-14 16:11 [PATCH V2] net: phy: tja11xx: Add TJA11xx PHY driver Marek Vasut
2018-12-15 17:01 ` Andrew Lunn
2018-12-15 17:31   ` Florian Fainelli
2018-12-15 17:40     ` Andrew Lunn
2018-12-15 17:38   ` Heiner Kallweit
2018-12-21 23:22     ` Marek Vasut
2018-12-22 17:24       ` Heiner Kallweit [this message]
2018-12-23  9:12         ` Marek Vasut
2018-12-15 18:01 ` Heiner Kallweit
2018-12-15 18:06   ` Heiner Kallweit
2018-12-15 18:29     ` Marek Vasut
2018-12-15 19:59     ` Andrew Lunn
2018-12-15 20:01       ` Heiner Kallweit
2018-12-21 23:31   ` Marek Vasut

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=08d66ea6-481c-94d0-373b-a3f987232951@gmail.com \
    --to=hkallweit1@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=f.fainelli@gmail.com \
    --cc=marex@denx.de \
    --cc=netdev@vger.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 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).