From: Alan Cox <alan@linux.intel.com>
To: "Tomoya MORINAGA" <tomoya-linux@dsn.okisemi.com>
Cc: "Greg Kroah-Hartman" <gregkh@suse.de>,
"Ben Dooks" <ben-linux@fluff.org>,
"Kukjin Kim" <kgene.kim@samsung.com>,
"Mike Frysinger" <vapier@gentoo.org>,
"Feng Tang" <feng.tang@intel.com>,
"Tobias Klauser" <tklauser@distanz.ch>,
"LKML" <linux-kernel@vger.kernel.org>, <yong.y.wang@intel.com>,
<qi.wang@intel.com>, <kok.howg.ewe@intel.com>,
<andrew.chih.howe.khor@intel.com>
Subject: Re: [PATCH] EG20T: Update PCH_UART driver to 2.6.36
Date: Thu, 11 Nov 2010 11:42:44 +0000 [thread overview]
Message-ID: <20101111114244.6250ab48@linux.intel.com> (raw)
In-Reply-To: <000901cb816e$22528490$66f8800a@maildom.okisemi.com>
> > > +#ifdef CONFIG_PCH_DMA
> > > + #include <linux/dmaengine.h>
> > > + #include <linux/pch_dma.h>
> > > +#endif
> >
> > The PCH DMA will have been included in the kernel anyway before this
> > merge so you can remove the ifdefs and include it regardless
>
> No.
> PCH DMA have been already included at 2.6.36.
> You can see "pch_dma.c" in drivers/dma.
So that means pch_dma is always in the kernel source tree as of 2.6.36
- so the ifdef can go away ?
> > tty = tty_port_tty_get(...)
> >
> > and when finished tty_kref_put(tty);
> >
> > Also tty may be NULL, if the port closed as you were doing this, so
> > check the return from tty_port_tty_get and act accordingly.
>
> I have a question.
> Though I can't find any accepted UART driver uses these
> functions(tty_port.../tty_kref...), What's for ?
We are gradually going through converting them all and I'm trying to
make sure no new ones creep in that don't use tty_port_tty_get.
Basically it does this
tty_port_tty_get()
will return either a tty pointer with a reference (ie the tty will not
be deleted while you hold it), or will return NULL if the physical port
is no longer connected to a tty through close/hangup. It does all the
locking internally to ensure this is done safely.
tty_kref_put()
drops the reference it obtained and after that point if the tty
reference count hits zero it may be deleted.
It ensures this cannot occur
CPU1 CPU2
interrupt:
tty = port->port.tty
close
port->port.tty = NULL
kfree tty
write to tty
> Many UART drivers accepted by upstream use the above macro, right ?
As far as possible the selection should be done at runtime, especially
for PC class devices. Linux distributors want to build a single kernel
for everything so having it runtime configured helps a lot.
> > If you don't support CPARMRK then you should clear that bit in
> > termios->c_flag so the caller knows it couldn't be set.
>
> Sorry, I don't know CPARMRK.
> What's CPARMRK ?
Sorry my fault. I mean CMSPAR
CMSPAR if set selects mark/space parity. If your hardware doesn't
support this then do
termios->c_cflag &= ~CMSPAR;
> I will use dma_alloc_coherent.
>
> >
> > I assume the correct device in this case would be the DMA
> > controller ?
>
> Sorry, I can't understand your saying "correct device".
> What does "correct device" mean ?
dma_alloc_coherent takes a device pointer which should be the device
which is doing the DMA.
> Do you mean UART Rx/Tx interrupt Enable/Disable ?
> If yes, the control hava been already implemented.
> For example, in handle_tx (called from IRQ handler),
> you can see pch_uart_hal_disable_interrupt().
I will take another look next time the patch is submitted. However if
you are relying on disabling an IRQ source to avoid the interrupt
running in parallel with another routine remember on a multithreaded
CPU and on some hardware that it is possible for this to occur
CPU1 CPU2
Interrupt arrives
Disable interrupt
Interrupt routine runs Other code runs
Alan
next prev parent reply other threads:[~2010-11-11 12:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-09 5:01 [PATCH] EG20T: Update PCH_UART driver to 2.6.36 Tomoya MORINAGA
2010-11-09 10:37 ` Alan Cox
2010-11-11 7:00 ` Tomoya MORINAGA
2010-11-11 11:42 ` Alan Cox [this message]
2010-11-12 2:50 ` Tomoya MORINAGA
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=20101111114244.6250ab48@linux.intel.com \
--to=alan@linux.intel.com \
--cc=andrew.chih.howe.khor@intel.com \
--cc=ben-linux@fluff.org \
--cc=feng.tang@intel.com \
--cc=gregkh@suse.de \
--cc=kgene.kim@samsung.com \
--cc=kok.howg.ewe@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=qi.wang@intel.com \
--cc=tklauser@distanz.ch \
--cc=tomoya-linux@dsn.okisemi.com \
--cc=vapier@gentoo.org \
--cc=yong.y.wang@intel.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