From: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
To: 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>, <orsonzhai@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: Wed, 26 Nov 2014 12:33:13 +0000 [thread overview]
Message-ID: <20141126123313.520ac83f@lxorguk.ukuu.org.uk> (raw)
In-Reply-To: <1416917818-10506-6-git-send-email-chunyan.zhang@spreadtrum.com>
> + 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
> +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
> +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.
> +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. 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)
> +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
Looks basically sound to me
Alan
next prev parent reply other threads:[~2014-11-26 12:41 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
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 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 [this message]
2014-11-28 10:13 ` Orson Zhai
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=20141126123313.520ac83f@lxorguk.ukuu.org.uk \
--to=gnomes@lxorguk.ukuu.org.uk \
--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=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=orsonzhai@gmail.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
all inboxes | Powered by JetHome®