linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
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

  reply	other threads:[~2014-11-28 10:13 UTC|newest]

Thread overview: 47+ 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
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
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  2:35       ` Orson Zhai
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>
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
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
2014-12-03  9:50         ` Arnd Bergmann
2014-12-03 10:11           ` Russell King - ARM Linux
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=linux-arm-kernel@lists.infradead.org \
    /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).