All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Marc Zyngier <maz@misterjones.org>
Cc: Vikram Pandita <vikram.pandita@ti.com>,
	linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.arm.linux.org.uk
Subject: Re: [PATCH] serial: 8250: add IRQ trigger support
Date: Mon, 22 Jun 2009 15:40:37 +0300	[thread overview]
Message-ID: <20090622124037.GD7352@atomide.com> (raw)
In-Reply-To: <20090612213127.0f03e0c5@taxman.wild-wind.fr.eu.org>

* Marc Zyngier <maz@misterjones.org> [090612 22:31]:
> On Fri, 12 Jun 2009 12:32:51 -0500
> Vikram Pandita <vikram.pandita@ti.com> wrote:
> 
> > There is currently no provision for passing IRQ trigger flags for
> > serial IRQs with triggering requirements (such as GPIO IRQs.)
> > 
> > This patch adds UPF_IRQ_TRIG_* flags which map on to IRQF_TRIGGER_*
> > flags.
> > 
> > Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
> > Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
> 
> Note that this patch doesn't allow  the interrupt to trigger on both
> edges (not that I have ever seen a 8250 with this behavior, but this
> is a valid configuration from an interrupt point of view).

To me it sounds like the it would be better to have unsigned
long irqflags in struct uart_port instead of trying to squeeze
the irqflags the flags field. We're already not covering all the
irqflags currently like Marc pointed out.

Regards,

Tony

 
> Aside from this remark:
> Acked-by: Marc Zyngier <maz@misterjones.org>
> 
> > ---
> >  drivers/serial/8250.c       |   10 ++++++++++
> >  include/linux/serial_core.h |    4 ++++
> >  2 files changed, 14 insertions(+), 0 deletions(-)
> > 
> > diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
> > index bab115e..8235ef5 100644
> > --- a/drivers/serial/8250.c
> > +++ b/drivers/serial/8250.c
> > @@ -1641,6 +1641,16 @@ static int serial_link_irq_chain(struct
> > uart_8250_port *up) struct irq_info *i;
> >  	int ret, irq_flags = up->port.flags & UPF_SHARE_IRQ ?
> > IRQF_SHARED : 0; 
> > +	/* Get IRQ Trigger Flag */
> > +	if (up->port.flags & UPF_IRQ_TRIG_RISING)
> > +		irq_flags |= IRQF_TRIGGER_RISING;
> > +	else if (up->port.flags & UPF_IRQ_TRIG_FALLING)
> > +		irq_flags |= IRQF_TRIGGER_FALLING;
> > +	else if (up->port.flags & UPF_IRQ_TRIG_HIGH)
> > +		irq_flags |= IRQF_TRIGGER_HIGH;
> > +	else if (up->port.flags & UPF_IRQ_TRIG_LOW)
> > +		irq_flags |= IRQF_TRIGGER_LOW;
> > +
> >  	mutex_lock(&hash_mutex);
> >  
> >  	h = &irq_lists[up->port.irq % NR_IRQ_HASH];
> > diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
> > index 57a97e5..07591d5 100644
> > --- a/include/linux/serial_core.h
> > +++ b/include/linux/serial_core.h
> > @@ -296,7 +296,11 @@ struct uart_port {
> >  #define UPF_SPD_WARP		((__force upf_t) (0x1010))
> >  #define UPF_SKIP_TEST		((__force upf_t) (1 << 6))
> >  #define UPF_AUTO_IRQ		((__force upf_t) (1 << 7))
> > +#define UPF_IRQ_TRIG_RISING	((__force upf_t) (1 << 8))
> > +#define UPF_IRQ_TRIG_FALLING	((__force upf_t) (1 << 9))
> > +#define UPF_IRQ_TRIG_HIGH	((__force upf_t) (1 << 10))
> >  #define UPF_HARDPPS_CD		((__force upf_t) (1 << 11))
> > +#define UPF_IRQ_TRIG_LOW	((__force upf_t) (1 << 12))
> >  #define UPF_LOW_LATENCY		((__force upf_t) (1 << 13))
> >  #define UPF_BUGGY_UART		((__force upf_t) (1 << 14))
> >  #define UPF_NO_TXEN_TEST	((__force upf_t) (1 << 15))
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

  reply	other threads:[~2009-06-22 12:40 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-12 17:32 [PATCH] serial: 8250: add IRQ trigger support Vikram Pandita
2009-06-12 19:31 ` Marc Zyngier
2009-06-12 19:31   ` Marc Zyngier
2009-06-22 12:40   ` Tony Lindgren [this message]
2009-06-22 13:24     ` Alan Cox
2009-06-22 13:24       ` Pandita, Vikram

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=20090622124037.GD7352@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=maz@misterjones.org \
    --cc=vikram.pandita@ti.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.