]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
net/wan/fsl_ucc_hdlc: call qe_setbrg only for loopback mode
authorHolger Brunck <holger.brunck@keymile.com>
Wed, 17 May 2017 15:24:36 +0000 (17:24 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 May 2017 14:28:38 +0000 (10:28 -0400)
We can't assume that we are always in loopback mode if rx and tx clock
have the same clock source. If we want to use HDLC busmode we also have
the same clock source but we are not in loopback mode. So move the
setting of the baudrate generator after the check for property for the
loopback mode.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
Cc: Zhao Qiang <qiang.zhao@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/fsl_ucc_hdlc.c

index 49b91b2c113ca3f1ad5c100c560d64b3a07edb9f..4c93d561b18ab435ae9d6c1c77534c44395d7a43 100644 (file)
@@ -113,6 +113,9 @@ static int uhdlc_init(struct ucc_hdlc_private *priv)
        /* Loopback mode */
        if (priv->loopback) {
                dev_info(priv->dev, "Loopback Mode\n");
+               /* use the same clock when work in loopback */
+               qe_setbrg(ut_info->uf_info.rx_clock, 20000000, 1);
+
                gumr = ioread32be(&priv->uf_regs->gumr);
                gumr |= (UCC_FAST_GUMR_LOOPBACK | UCC_FAST_GUMR_CDS |
                         UCC_FAST_GUMR_TCI);
@@ -1021,10 +1024,6 @@ static int ucc_hdlc_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
-       /* use the same clock when work in loopback */
-       if (ut_info->uf_info.rx_clock == ut_info->uf_info.tx_clock)
-               qe_setbrg(ut_info->uf_info.rx_clock, 20000000, 1);
-
        ret = of_address_to_resource(np, 0, &res);
        if (ret)
                return -EINVAL;