Linux Serial subsystem development
 help / color / mirror / Atom feed
From: Bill Pringlemeir <bpringlemeir@nbsps.com>
To: Stefan Agner <stefan@agner.ch>
Cc: Yuan Yao <yao.yuan@freescale.com>,
	linux-serial@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: fsl_lpuart/VF610: Division by zero.
Date: Mon, 28 Jul 2014 18:38:39 -0400	[thread overview]
Message-ID: <87zjftaz2o.fsf@nbsps.com> (raw)
In-Reply-To: <1aa4c71fa7441f217f33e7be9a8fa1b9@agner.ch> (Stefan Agner's message of "Sat, 26 Jul 2014 14:08:38 +0200")

On 26 Jul 2014, stefan@agner.ch wrote:

> Hi Bill,
>
> Am 2014-07-26 00:36, schrieb Bill Pringlemeir:
>> On 25 Jul 2014, bpringlemeir@nbsps.com wrote:
>
>>> I looked at the vmlinux objdump and it is here,
>>>
>>> static int lpuart_dma_rx_request(struct uart_port *port)
>>> {
>>> ...
>>> 	sport->dma_rx_timeout = (sport->port.timeout - HZ / 50) *
>>> 				FSL_UART_RX_DMA_BUFFER_SIZE * 3 /
>>> 				sport->rxfifo_size / 2;
>>>
>>> The variable 'sport->rxfifo_size' is set in lpuart_setup_watermark()
>>> and this is called after lpuart_dma_rx_request() in
>>> lpuart_startup().

> I observed this division by zero too, I recently sent a patch for
> that.
> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-July/268772.html

> Greg already added that to his tty-next tree:
> https://git.kernel.org/cgit/linux/kernel/git/gregkh/tty.git/tree/drivers/tty/serial/fsl_lpuart.c?h=tty-next#n1309

> I also observed that DMA did not work yet, hence I a created a second
> patch:
> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-July/268773.html
>
> But eDMA in general was broken too, this patch solved that, hence you
> might want apply that patch too:
> http://lists.infradead.org/pipermail/linux-arm-kernel/2014-July/268199.html
>
> All patches are lined up for 3.17, so things should be smooth from
> that release on.

Thanks, I applied all three patches to the arm-soc 'for-next' and now
the serial ports seems to be working.  I am using the Tower board and
they have a 'TWR-SER2' card.

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-SER2

Unfortunately, the IOMUX conflicts with the Audio daughter-board in
vf610-twr.dts.   The I/O conflicts are,

	VF610_PAD_PTB6__FTM0_CH6
	VF610_PAD_PTB7__FTM0_CH7
versus
        VF610_PAD_PTB6__UART2_TX
        VF610_PAD_PTB7__UART2_RX

Below are the DT changes to get two 'ttyLP' working with the Tower
System which probably will never apply cleanly, but are just meant for
reference.

--- a/arch/arm/boot/dts/vf610-twr.dts
+++ b/arch/arm/boot/dts/vf610-twr.dts
@@ -58,7 +59,7 @@
                        regulator-max-microvolt = <3300000>;
                };
        };
-
+/*
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,format = "i2s";
@@ -87,6 +88,7 @@
                        bitclock-master;
                };
        };
+*/
 };
 
 &adc0 {
@@ -241,7 +243,7 @@
                };
-
+/*
                pinctrl_pwm0: pwm0grp {
                        fsl,pins = <
                                VF610_PAD_PTB0__FTM0_CH0                0x1582
@@ -252,7 +254,7 @@
                                VF610_PAD_PTB7__FTM0_CH7                0x1582
                        >;
                };
-
+*/
                pinctrl_sai2: sai2grp {
                        fsl,pins = <
                                VF610_PAD_PTA16__SAI2_TX_BCLK           0x02ed
@@ -271,6 +273,13 @@
                                VF610_PAD_PTB5__UART1_RX                0x21a1
                        >;
                };
+
+               pinctrl_uart2: uart2grp {
+                       fsl,pins = <
+                                VF610_PAD_PTB6__UART2_TX                0x21a2
+                                VF610_PAD_PTB7__UART2_RX                0x21a1
+                       >;
+               };
        };
 };
 
@@ -284,21 +293,31 @@
        status = "okay";
 };
 
+/*
 &pwm0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm0>;
        status = "okay";
 };
-
 &sai2 {
        #sound-dai-cells = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai2>;
        status = "okay";
 };
-
+*/
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};

The standard jumpers on the Tower will either route ttyLP1 to the 'USB'
or to the 'serial board'; ttyLP2 will be the opposite with the 'serial
board' or the 'USB'.

Thanks again.  I should have read the linux-arm list more diligently.

Bill Pringlemeir.

      reply	other threads:[~2014-07-28 22:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-25 22:14 fsl_lpuart/VF610: Division by zero Bill Pringlemeir
2014-07-25 22:36 ` Bill Pringlemeir
2014-07-26 12:08   ` Stefan Agner
2014-07-28 22:38     ` Bill Pringlemeir [this message]

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=87zjftaz2o.fsf@nbsps.com \
    --to=bpringlemeir@nbsps.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=stefan@agner.ch \
    --cc=yao.yuan@freescale.com \
    /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