From: Orson Zhai <orsonzhai@gmail.com>
To: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
Chunyan Zhang <chunyan.zhang@spreadtrum.com>
Cc: grant.likely@linaro.org, robh+dt@kernel.org,
catalin.marinas@arm.com, gregkh@linuxfoundation.org,
ijc+devicetree@hellion.org.uk, jslaby@suse.cz,
galak@codeaurora.org, broonie@linaro.org, mark.rutland@arm.com,
m-karicheri2@ti.com, pawel.moll@arm.com, artagnon@gmail.com,
rrichter@cavium.com, will.deacon@arm.com, arnd@arndb.de,
corbet@lwn.net, jason@lakedaemon.net, broonie@kernel.org,
heiko@sntech.de, shawn.guo@freescale.com,
florian.vaussard@epfl.ch, andrew@lunn.ch, hytszk@gmail.com,
geng.ren@spreadtrum.com, zhizhou.zhang@spreadtrum.com,
lanqing.liu@spreadtrum.com, zhang.lyra@gmail.com,
wei.qiao@spreadtrum.com, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, sprdlinux@freelists.org,
linux-doc@vger.kernel.org, linux-serial@vger.kernel.org,
linux-api@vger.kernel.org
Subject: Re: [PATCH v3 5/5] tty/serial: Add Spreadtrum sc9836-uart driver support
Date: Fri, 28 Nov 2014 18:13:50 +0800 [thread overview]
Message-ID: <54784ADE.6010602@gmail.com> (raw)
In-Reply-To: <20141126123313.520ac83f@lxorguk.ukuu.org.uk>
Hi, Alan,
Thanks for your comments!
Some question for them below,
On 2014年11月26日 20:33, One Thousand Gnomes wrote:
>> + 213 = /dev/ttySPX0 SPRD serial port 0
>> + ...
>> + 216 = /dev/ttySPX3 SPRD serial port 3
> Please use dynamic allocation or give a very very good reason why you
> can't
do we just leave the .major & .minor as NULL in struct uart_driver for
dynamic allocation?
>> +config SERIAL_SPRD_NR
>> + int "Maximum number of sprd serial ports"
>> + depends on SERIAL_SPRD
>> + default "4"
> If you are doing dynamic allocation this should pretty much go away
I think you mean getting the number of uarts from dt and dynamically
allocate their port structure?
>
>> +static int sprd_startup(struct uart_port *port)
>> +{
>> + int ret = 0;
>> + unsigned int ien, ctrl1;
>> + struct sprd_uart_port *sp;
>> +
>> + serial_out(port, SPRD_CTL2, ((THLD_TX_EMPTY << 8) | THLD_RX_FULL));
>> +
>> + /* clear rx fifo */
>> + while (serial_in(port, SPRD_STS1) & 0x00ff)
>> + serial_in(port, SPRD_RXD);
>> +
>> + /* clear tx fifo */
>> + while (serial_in(port, SPRD_STS1) & 0xff00)
>> + ;
> Missing a cpu_relax and I would have thought a timeout on both of these.
We will add in V4
>
>
>> +static void sprd_set_termios(struct uart_port *port,
>> + struct ktermios *termios,
>> + struct ktermios *old)
>> +{
>> + unsigned int baud, quot;
>> + /* calculate parity */
>> + lcr &= ~SPRD_LCR_PARITY;
>> + if (termios->c_cflag & PARENB) {
>> + lcr |= SPRD_LCR_PARITY_EN;
>> + if (termios->c_cflag & PARODD)
>> + lcr |= SPRD_LCR_ODD_PAR;
>> + else
>> + lcr |= SPRD_LCR_EVEN_PAR;
>> + }
> If you don't support mark/space parity then also clear CMSPAR in
> termios->c_cflag.
just simply use code like "termios->c_cflag &= ~CMSPAR" ?
> If you do then it ought to be handled above.
>
>> +
>> + /* clock divider bit16~bit20 */
>> + serial_out(port, SPRD_CLKD1, (quot & 0x1f0000) >> 16);
>> + serial_out(port, SPRD_LCR, lcr);
>> + fc |= 0x3e00 | THLD_RX_FULL;
>> + serial_out(port, SPRD_CTL1, fc);
> Also set the resulting baud back into the termios (see the 8250 termios
> for an example)
you mean something like this part ?
/* Don't rewrite B0 */
if (tty_termios_baud_rate(termios))
tty_termios_encode_baud_rate(termios, baud, baud);
>
>
>> +static int __init sprd_console_setup(struct console *co, char *options)
>> +{
>> + struct uart_port *port;
>> + int baud = 115200;
>> + int bits = 8;
>> + int parity = 'n';
>> + int flow = 'n';
>> +
>> + if (unlikely(co->index >= UART_NR_MAX || co->index < 0))
>> + co->index = 0;
>> +
>> + port = (struct uart_port *)sprd_port[co->index];
>> + if (port == NULL) {
>> + pr_info("srial port %d not yet initialized\n", co->index);
> Typo
it will be fixed :)
Thanks,
Orson
> Looks basically sound to me
>
> Alan
next prev parent reply other threads:[~2014-11-28 10:13 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Sharkl64-v3>
2014-11-25 12:16 ` [PATCH v3 0/5] Add Spreadtrum Sharkl64 Platform support Chunyan Zhang
2014-11-25 12:16 ` [PATCH v3 1/5] Documentation: DT: Renamed of-serial.txt to 8250.txt Chunyan Zhang
[not found] ` <1416917818-10506-2-git-send-email-chunyan.zhang-lxIno14LUO0EEoCn2XhGlw@public.gmane.org>
2014-11-27 11:38 ` Mark Rutland
2014-11-27 12:08 ` Lyra Zhang
2014-11-25 12:16 ` [PATCH v3 2/5] Documentation: DT: Add bindings for Spreadtrum SoC Platform Chunyan Zhang
2014-11-25 12:52 ` Arnd Bergmann
2014-11-25 12:16 ` [PATCH v3 3/5] arm64: dts: Add support for Spreadtrum SC9836 SoC in dts and Makefile Chunyan Zhang
2014-11-27 11:50 ` Mark Rutland
2014-11-27 12:12 ` Catalin Marinas
2014-11-27 13:43 ` Mark Rutland
2014-11-28 14:29 ` Catalin Marinas
2014-11-28 14:35 ` Mark Rutland
2014-11-28 14:44 ` Will Deacon
2014-11-28 14:46 ` Mark Rutland
2014-11-28 14:59 ` Will Deacon
2014-11-28 14:50 ` Mark Brown
[not found] ` <20141128144412.GG7144-5wv7dgnIgG8@public.gmane.org>
2014-11-28 15:03 ` Catalin Marinas
2014-11-28 15:09 ` Will Deacon
2014-11-28 16:40 ` Mark Rutland
2014-11-28 17:24 ` Catalin Marinas
2014-12-03 9:16 ` Lyra Zhang
2014-11-25 12:16 ` [PATCH v3 4/5] arm64: Add support for Spreadtrum's Sharkl64 Platform in Kconfig and defconfig Chunyan Zhang
2014-11-25 12:57 ` Arnd Bergmann
2014-11-26 3:08 ` Lyra Zhang
[not found] ` <CAAfSe-uoXOJ8=agCFuBnXhj7nBBTskQ=8_jMtv_SAjor2gfO2w@mail.gmail.com>
[not found] ` <CAAfSe-uoXOJ8=agCFuBnXhj7nBBTskQ=8_jMtv_SAjor2gfO2w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-26 9:00 ` Arnd Bergmann
2014-11-25 12:16 ` [PATCH v3 5/5] tty/serial: Add Spreadtrum sc9836-uart driver support Chunyan Zhang
2014-11-25 20:03 ` Greg KH
2014-11-27 11:05 ` Lyra Zhang
2014-11-26 9:48 ` Tobias Klauser
2014-11-27 11:39 ` Lyra Zhang
2014-11-26 12:33 ` One Thousand Gnomes
2014-11-28 10:13 ` Orson Zhai [this message]
2014-11-26 18:29 ` Murali Karicheri
2014-11-27 11:59 ` Lyra Zhang
[not found] ` <CAAfSe-uMqy7zwiEK+nDoMPw_oni8L_vq7oW2Me5AY8z8KGpjwQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-27 12:57 ` Arnd Bergmann
2014-11-27 15:23 ` Lyra Zhang
2014-11-27 15:34 ` One Thousand Gnomes
2014-11-27 15:36 ` Arnd Bergmann
2014-12-03 9:17 ` Lyra Zhang
[not found] ` <CAAfSe-u+g0mYGi9Adrd+YwwZ=q0-s79yCg_paB1UAVqFoufXEA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-03 9:50 ` Arnd Bergmann
2014-12-03 10:11 ` Russell King - ARM Linux
[not found] ` <20141203101109.GB11285-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2014-12-03 12:08 ` Lyra Zhang
2014-12-03 12:15 ` Lyra Zhang
2014-11-25 12:57 ` [PATCH v3 0/5] Add Spreadtrum Sharkl64 Platform support Mark Brown
2014-11-25 12:59 ` Arnd Bergmann
2014-11-27 12:03 ` Mark Rutland
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=54784ADE.6010602@gmail.com \
--to=orsonzhai@gmail.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=artagnon@gmail.com \
--cc=broonie@kernel.org \
--cc=broonie@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=chunyan.zhang@spreadtrum.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=florian.vaussard@epfl.ch \
--cc=galak@codeaurora.org \
--cc=geng.ren@spreadtrum.com \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=heiko@sntech.de \
--cc=hytszk@gmail.com \
--cc=ijc+devicetree@hellion.org.uk \
--cc=jason@lakedaemon.net \
--cc=jslaby@suse.cz \
--cc=lanqing.liu@spreadtrum.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=m-karicheri2@ti.com \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=rrichter@cavium.com \
--cc=shawn.guo@freescale.com \
--cc=sprdlinux@freelists.org \
--cc=wei.qiao@spreadtrum.com \
--cc=will.deacon@arm.com \
--cc=zhang.lyra@gmail.com \
--cc=zhizhou.zhang@spreadtrum.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;
as well as URLs for NNTP newsgroup(s).