Message ID | 1495476106-22688-1-git-send-email-noltari@gmail.com |
---|---|
State | Accepted, archived |
Commit | 24f85482c90227d6ba4cc3739874bae7e8969a62 |
Delegated to: | Daniel Schwierzeck |
Headers | show |
Am 22.05.2017 um 20:01 schrieb Álvaro Fernández Rojas: > It's currently bugged and doesn't work for even cases. > Right shift bits instead of dividing and fix even cases. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > v4: really fix baud rate calculation > v3: fix baud rate calculation > > drivers/serial/serial_bcm6345.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > applied to u-boot-mips/next and replaced the previously applied v3 patch, thanks.
diff --git a/drivers/serial/serial_bcm6345.c b/drivers/serial/serial_bcm6345.c index 14c1bf2..0843b48 100644 --- a/drivers/serial/serial_bcm6345.c +++ b/drivers/serial/serial_bcm6345.c @@ -157,11 +157,11 @@ static int bcm6345_serial_init(void __iomem *base, ulong clk, u32 baudrate) UART_FIFO_CFG_TX_4); /* set baud rate */ - val = (clk / baudrate) / 16; + val = ((clk / baudrate) >> 4); if (val & 0x1) - val = val; + val = (val >> 1); else - val = val / 2 - 1; + val = (val >> 1) - 1; writel_be(val, base + UART_BAUD_REG); /* clear interrupts */ @@ -243,7 +243,7 @@ static int bcm6345_serial_probe(struct udevice *dev) ret = clk_get_by_index(dev, 0, &clk); if (ret < 0) return ret; - priv->uartclk = clk_get_rate(&clk) / 2; + priv->uartclk = clk_get_rate(&clk); clk_free(&clk); /* initialize serial */
It's currently bugged and doesn't work for even cases. Right shift bits instead of dividing and fix even cases. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- v4: really fix baud rate calculation v3: fix baud rate calculation drivers/serial/serial_bcm6345.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)