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
WARNING: multiple messages have this Message-ID (diff)
From: orsonzhai@gmail.com (Orson Zhai)
To: linux-arm-kernel@lists.infradead.org
Subject: [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: 135+ 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 ` Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-25 12:16 ` [PATCH v3 1/5] Documentation: DT: Renamed of-serial.txt to 8250.txt Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-25 12:16 ` 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 11:38 ` Mark Rutland
2014-11-27 11:38 ` Mark Rutland
2014-11-27 12:08 ` Lyra Zhang
2014-11-27 12:08 ` Lyra Zhang
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:16 ` Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-25 12:52 ` Arnd Bergmann
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-25 12:16 ` Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-27 11:50 ` Mark Rutland
2014-11-27 11:50 ` Mark Rutland
2014-11-27 11:50 ` Mark Rutland
2014-11-27 12:12 ` Catalin Marinas
2014-11-27 12:12 ` Catalin Marinas
2014-11-27 12:12 ` Catalin Marinas
2014-11-27 13:43 ` Mark Rutland
2014-11-27 13:43 ` Mark Rutland
2014-11-27 13:43 ` Mark Rutland
2014-11-28 14:29 ` Catalin Marinas
2014-11-28 14:29 ` Catalin Marinas
2014-11-28 14:29 ` Catalin Marinas
2014-11-28 14:35 ` Mark Rutland
2014-11-28 14:35 ` Mark Rutland
2014-11-28 14:35 ` Mark Rutland
2014-11-28 14:44 ` Will Deacon
2014-11-28 14:44 ` Will Deacon
2014-11-28 14:44 ` Will Deacon
2014-11-28 14:46 ` Mark Rutland
2014-11-28 14:46 ` Mark Rutland
2014-11-28 14:46 ` Mark Rutland
2014-11-28 14:59 ` Will Deacon
2014-11-28 14:59 ` Will Deacon
2014-11-28 14:59 ` Will Deacon
2014-11-28 14:50 ` Mark Brown
2014-11-28 14:50 ` Mark Brown
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:03 ` Catalin Marinas
2014-11-28 15:03 ` Catalin Marinas
2014-11-28 15:09 ` Will Deacon
2014-11-28 15:09 ` Will Deacon
2014-11-28 15:09 ` Will Deacon
2014-11-28 16:40 ` Mark Rutland
2014-11-28 16:40 ` Mark Rutland
2014-11-28 16:40 ` Mark Rutland
2014-11-28 17:24 ` Catalin Marinas
2014-11-28 17:24 ` Catalin Marinas
2014-11-28 17:24 ` Catalin Marinas
2014-12-03 2:35 ` Orson Zhai
2014-12-03 2:35 ` Orson Zhai
2014-12-03 9:16 ` Lyra Zhang
2014-12-03 9:16 ` Lyra Zhang
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:16 ` Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-25 12:57 ` Arnd Bergmann
2014-11-25 12:57 ` Arnd Bergmann
2014-11-26 2:32 ` Lyra Zhang
[not found] ` <CAAfSe-uoXOJ8=agCFuBnXhj7nBBTskQ=8_jMtv_SAjor2gfO2w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-26 9:00 ` Arnd Bergmann
2014-11-26 9:00 ` Arnd Bergmann
2014-11-26 9:00 ` Arnd Bergmann
2014-11-26 3:08 ` Lyra Zhang
2014-11-26 3:08 ` Lyra Zhang
2014-11-26 3:08 ` Lyra Zhang
2014-11-25 12:16 ` [PATCH v3 5/5] tty/serial: Add Spreadtrum sc9836-uart driver support Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-25 12:16 ` Chunyan Zhang
2014-11-25 20:03 ` Greg KH
2014-11-25 20:03 ` Greg KH
2014-11-27 11:05 ` Lyra Zhang
2014-11-27 11:05 ` Lyra Zhang
2014-11-27 11:05 ` Lyra Zhang
2014-11-26 9:48 ` Tobias Klauser
2014-11-26 9:48 ` Tobias Klauser
2014-11-27 11:39 ` Lyra Zhang
2014-11-27 11:39 ` Lyra Zhang
2014-11-27 11:39 ` Lyra Zhang
2014-11-26 12:33 ` One Thousand Gnomes
2014-11-26 12:33 ` One Thousand Gnomes
2014-11-26 12:33 ` One Thousand Gnomes
2014-11-28 10:13 ` Orson Zhai [this message]
2014-11-28 10:13 ` Orson Zhai
2014-11-28 18:21 ` One Thousand Gnomes
2014-11-26 18:29 ` Murali Karicheri
2014-11-26 18:29 ` Murali Karicheri
2014-11-26 18:29 ` Murali Karicheri
2014-11-27 11:59 ` Lyra Zhang
2014-11-27 11:59 ` Lyra Zhang
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 12:57 ` Arnd Bergmann
2014-11-27 12:57 ` Arnd Bergmann
2014-11-27 15:23 ` Lyra Zhang
2014-11-27 15:23 ` Lyra Zhang
2014-11-27 15:23 ` Lyra Zhang
2014-11-27 15:34 ` One Thousand Gnomes
2014-11-27 15:34 ` One Thousand Gnomes
2014-11-27 15:34 ` One Thousand Gnomes
2014-11-27 15:36 ` Arnd Bergmann
2014-11-27 15:36 ` Arnd Bergmann
2014-11-27 15:36 ` Arnd Bergmann
2014-12-03 9:17 ` Lyra Zhang
2014-12-03 9:17 ` Lyra Zhang
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 9:50 ` Arnd Bergmann
2014-12-03 9:50 ` Arnd Bergmann
2014-12-03 10:11 ` Russell King - ARM Linux
2014-12-03 10:11 ` Russell King - ARM Linux
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:08 ` Lyra Zhang
2014-12-03 12:08 ` Lyra Zhang
2014-12-03 12:15 ` Lyra Zhang
2014-12-03 12:15 ` 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:57 ` Mark Brown
2014-11-25 12:59 ` Arnd Bergmann
2014-11-25 12:59 ` Arnd Bergmann
2014-11-27 12:03 ` Mark Rutland
2014-11-27 12:03 ` Mark Rutland
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 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.