[U-Boot] [PATCH] net: phy: ti: Fix clock output DT property

The code block reading the DT property for the clock output control was before the phy's DT node pointer was set, so it could never work. Move it after the node pointer is set.
Also store the unsigned 32-bit property into an unsigned value, not a signed value, as the former will cause a problem if value overflows. For instance, if one were to add 0xffffffff as a code to mean the clock output should be turned off.
Cc: Joe Hershberger joe.hershberger@ni.com Cc: Janine Hagemann j.hagemann@phytec.de Cc: Grygorii Strashko grygorii.strashko@ti.com Signed-off-by: Trent Piepho tpiepho@impinj.com --- drivers/net/phy/ti.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)
diff --git a/drivers/net/phy/ti.c b/drivers/net/phy/ti.c index 33f5687e0e..1aee338ec4 100644 --- a/drivers/net/phy/ti.c +++ b/drivers/net/phy/ti.c @@ -113,7 +113,7 @@ struct dp83867_private { int io_impedance; bool rxctrl_strap_quirk; int port_mirroring; - int clk_output_sel; + unsigned int clk_output_sel; };
/** @@ -214,21 +214,15 @@ static int dp83867_of_init(struct phy_device *phydev) ofnode node; u16 val;
- /* Optional configuration */ - - /* - * Keep the default value if ti,clk-output-sel is not set - * or to high - */ + node = phy_get_ofnode(phydev); + if (!ofnode_valid(node)) + return -EINVAL;
+ /* Keep the default value if ti,clk-output-sel is not set */ dp83867->clk_output_sel = ofnode_read_u32_default(node, "ti,clk-output-sel", DP83867_CLK_O_SEL_REF_CLK);
- node = phy_get_ofnode(phydev); - if (!ofnode_valid(node)) - return -EINVAL; - if (ofnode_read_bool(node, "ti,max-output-impedance")) dp83867->io_impedance = DP83867_IO_MUX_CFG_IO_IMPEDANCE_MAX; else if (ofnode_read_bool(node, "ti,min-output-impedance"))

On 10.05.19 20:49, Trent Piepho wrote:
The code block reading the DT property for the clock output control was before the phy's DT node pointer was set, so it could never work. Move it after the node pointer is set.
Also store the unsigned 32-bit property into an unsigned value, not a signed value, as the former will cause a problem if value overflows. For instance, if one were to add 0xffffffff as a code to mean the clock output should be turned off.
Cc: Joe Hershberger joe.hershberger@ni.com Cc: Janine Hagemann j.hagemann@phytec.de Cc: Grygorii Strashko grygorii.strashko@ti.com Signed-off-by: Trent Piepho tpiepho@impinj.com
drivers/net/phy/ti.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-)
Reviewed-by: Grygorii Strashko grygorii.strashko@ti.com

-----Original Message----- From: Trent Piepho tpiepho@impinj.com Sent: Friday, May 10, 2019 12:49 PM To: u-boot@lists.denx.de Cc: Trent Piepho tpiepho@impinj.com; Joseph Hershberger joseph.hershberger@ni.com; Janine Hagemann j.hagemann@phytec.de; Grygorii Strashko grygorii.strashko@ti.com Subject: [EXTERNAL] [PATCH] net: phy: ti: Fix clock output DT property
The code block reading the DT property for the clock output control was before the phy's DT node pointer was set, so it could never work. Move it after the node pointer is set.
Also store the unsigned 32-bit property into an unsigned value, not a signed value, as the former will cause a problem if value overflows. For instance, if one were to add 0xffffffff as a code to mean the clock output should be turned off.
Cc: Joe Hershberger joe.hershberger@ni.com Cc: Janine Hagemann j.hagemann@phytec.de Cc: Grygorii Strashko grygorii.strashko@ti.com Signed-off-by: Trent Piepho tpiepho@impinj.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

Hi Trent,
https://patchwork.ozlabs.org/patch/1098253/ was applied to http://git.denx.de/?p=u-boot/u-boot-net.git
Thanks! -Joe
participants (4)
-
Grygorii Strashko
-
Joe Hershberger
-
Joseph Hershberger
-
Trent Piepho