[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20161104135500.GB3600@lunn.ch>
Date: Fri, 4 Nov 2016 14:55:00 +0100
From: Andrew Lunn <andrew@...n.ch>
To: "Allan W. Nielsen" <allan.nielsen@...rosemi.com>
Cc: netdev@...r.kernel.org, f.fainelli@...il.com,
raju.lakkaraju@...rosemi.com, cphealy@...il.com, robh@...nel.org
Subject: Re: [PATCH net-next 5/5] net: phy: Add downshift get/set support in
Microsemi PHYs driver
On Fri, Nov 04, 2016 at 02:42:34PM +0100, Allan W. Nielsen wrote:
> On 04/11/16 13:27, Andrew Lunn wrote:
> > > + } else if (count) {
> > > + /* Downshift count is either 2,3,4 or 5 */
> > > + count = (((count - 2) << DOWNSHIFT_CNTL_POS) | DOWNSHIFT_EN);
> >
> > Ah, now i see why + 2. But this means it never does what you ask it to
> > do. It would be better to round up < 2 to 2, and leave all the others
> > as is.
> Not sure I understand what you mean...
>
> If the user configure "count == 1", then you want that to be rounded up to
> "count == 2", because the HW does not support a count of 1???
Yes. The other option would be to return ERANGE when 1 is asked
for. The real question is, which is better for the user? Returning
ERANGE and letting the user make a guessing game to figure out what is
valid, or magically turn 1 into 2. I will let you decide which is
best.
> If the user configure count to 6, 7, 8 etc. would you also like to round it down
> to 5?
No. ERANGE. The user has to expect some upper limit, and ERANGE is a
good indication they have reached it. But having a lowered limit of 2
is less obvious.
Andrew
Powered by blists - more mailing lists