W dniu 2015-01-13 o 10:35, Uwe Kleine-König pisze:
Hello,

On Tue, Jan 13, 2015 at 10:29:44AM +0100, Janusz Użycki wrote:
W dniu 2015-01-13 o 09:08, Uwe Kleine-König pisze:
Hello,

On Sat, Jan 10, 2015 at 03:32:44PM +0100, Janusz Uzycki wrote:
The patch updates mxs-auart driver to use new mctrl_gpio helpers for
gpio irqs. The code is much simpler now.

Signed-off-by: Janusz Uzycki <[email protected]>
---

There is no changes since v1 (rebased only).

---
  drivers/tty/serial/mxs-auart.c | 133 ++++-------------------------------------
  1 file changed, 13 insertions(+), 120 deletions(-)
Very nice!

diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec553f8..2ddba69 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
[...]
@@ -483,18 +458,9 @@ static void mxs_auart_enable_ms(struct uart_port *port)
        s->ms_irq_enabled = true;
-       if (s->gpio_irq[UART_GPIO_CTS] >= 0)
-               enable_irq(s->gpio_irq[UART_GPIO_CTS]);
-       /* TODO: enable AUART_INTR_CTSMIEN otherwise */
-
-       if (s->gpio_irq[UART_GPIO_DSR] >= 0)
-               enable_irq(s->gpio_irq[UART_GPIO_DSR]);
-
-       if (s->gpio_irq[UART_GPIO_RI] >= 0)
-               enable_irq(s->gpio_irq[UART_GPIO_RI]);
-
-       if (s->gpio_irq[UART_GPIO_DCD] >= 0)
-               enable_irq(s->gpio_irq[UART_GPIO_DCD]);
+       mctrl_gpio_enable_ms(s->gpios);
+       /* TODO: enable AUART_INTR_CTSMIEN
+        * if s->gpios->irq[UART_GPIO_CTS] == 0 */
What is the problem here? For the other lines nothing needs to be done?
This comment doesn't match the coding style.
Right, the comment should be rather:
/* TODO: enable AUART_INTR_CTSMIEN
  * if (!mctrl_gpio_is_gpio(atmel_port->gpios, UART_GPIO_CTS)) */
I'd say:

        /*
         * TODO: enable AUART_INTR_CTSMIEN if CTS isn't handled by
         * mctrl_gpio.
         */

exactly, thanks


In this place I marked that CTSMIEN should be switched on
enable/disable_ms if CTS
is not a gpio. The driver enables CTSMIEN forever what is wrong but
I can't test it
and I don't need it so I've just marked the fact in the comment.
That's what I thought. You're not affected because CTS is a gpio for
you (or not?)?  What would be the effect otherwise?

Yes, my CTS is a gpio.
CTSMIEN control CTS signal of auart block. There is a choice in DT:
- use auart block's CTS: hardware flow control works for all baud rates, DMA can be used - use gpio as CTS: hardware flow control is limited, DMA disabled but CTS line is
  not limited by hardware pinmux
Both options can't be set at once. I workarounded auart block's CTS irq handler in condition: "if (CTS_AT_AUART() && s->ms_irq_enabled)". Support by _ms would be more elegance but as I wrote I couldn't test all cases. Therefore the code for auart block's CTS is preserved.

best regards
Janusz


Best regards
Uwe


--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to