Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 119038
b: refs/heads/master
c: 1a22f08
h: refs/heads/master
v: v3
  • Loading branch information
Yoshihiro Shimoda authored and Paul Mundt committed Nov 12, 2008
1 parent e69702a commit af1267b
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: acca4f4d9bd657e8bc7e1665ba5077465138f133
refs/heads/master: 1a22f08dbd0e77c7cf45b5f527f93131d0b591b6
20 changes: 11 additions & 9 deletions trunk/drivers/serial/sh-sci.c
Original file line number Diff line number Diff line change
Expand Up @@ -478,10 +478,10 @@ static void sci_transmit_chars(struct uart_port *port)
return;
}

if (port->type == PORT_SCIF)
count = scif_txroom(port);
else
if (port->type == PORT_SCI)
count = sci_txroom(port);
else
count = scif_txroom(port);

do {
unsigned char c;
Expand Down Expand Up @@ -510,7 +510,7 @@ static void sci_transmit_chars(struct uart_port *port)
} else {
ctrl = sci_in(port, SCSCR);

if (port->type == PORT_SCIF) {
if (port->type != PORT_SCI) {
sci_in(port, SCxSR); /* Dummy read */
sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
}
Expand All @@ -536,10 +536,10 @@ static inline void sci_receive_chars(struct uart_port *port)
return;

while (1) {
if (port->type == PORT_SCIF)
count = scif_rxroom(port);
else
if (port->type == PORT_SCI)
count = sci_rxroom(port);
else
count = scif_rxroom(port);

/* Don't copy more bytes than there is room for in the buffer */
count = tty_buffer_request_room(tty, count);
Expand Down Expand Up @@ -714,7 +714,7 @@ static inline int sci_handle_breaks(struct uart_port *port)

#if defined(SCIF_ORER)
/* XXX: Handle SCIF overrun error */
if (port->type == PORT_SCIF && (sci_in(port, SCLSR) & SCIF_ORER) != 0) {
if (port->type != PORT_SCI && (sci_in(port, SCLSR) & SCIF_ORER) != 0) {
sci_out(port, SCLSR, 0);
if (tty_insert_flip_char(tty, 0, TTY_OVERRUN)) {
copied++;
Expand Down Expand Up @@ -1042,7 +1042,7 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,

sci_out(port, SCSCR, 0x00); /* TE=0, RE=0, CKE1=0 */

if (port->type == PORT_SCIF)
if (port->type != PORT_SCI)
sci_out(port, SCFCR, SCFCR_RFRST | SCFCR_TFRST);

smr_val = sci_in(port, SCSMR) & 3;
Expand Down Expand Up @@ -1085,6 +1085,7 @@ static const char *sci_type(struct uart_port *port)
case PORT_SCI: return "sci";
case PORT_SCIF: return "scif";
case PORT_IRDA: return "irda";
case PORT_SCIFA: return "scifa";
}

return NULL;
Expand Down Expand Up @@ -1112,6 +1113,7 @@ static void sci_config_port(struct uart_port *port, int flags)
s->init_pins = sci_init_pins_sci;
break;
case PORT_SCIF:
case PORT_SCIFA:
s->init_pins = sci_init_pins_scif;
break;
case PORT_IRDA:
Expand Down
16 changes: 8 additions & 8 deletions trunk/drivers/serial/sh-sci.h
Original file line number Diff line number Diff line change
Expand Up @@ -289,18 +289,18 @@
#define CPU_SCIx_FNS(name, sci_offset, sci_size, scif_offset, scif_size)\
static inline unsigned int sci_##name##_in(struct uart_port *port) \
{ \
if (port->type == PORT_SCI) { \
SCI_IN(sci_size, sci_offset) \
} else { \
SCI_IN(scif_size, scif_offset); \
if (port->type == PORT_SCIF) { \
SCI_IN(scif_size, scif_offset) \
} else { /* PORT_SCI or PORT_SCIFA */ \
SCI_IN(sci_size, sci_offset); \
} \
} \
static inline void sci_##name##_out(struct uart_port *port, unsigned int value) \
{ \
if (port->type == PORT_SCI) { \
SCI_OUT(sci_size, sci_offset, value) \
} else { \
SCI_OUT(scif_size, scif_offset, value); \
if (port->type == PORT_SCIF) { \
SCI_OUT(scif_size, scif_offset, value) \
} else { /* PORT_SCI or PORT_SCIFA */ \
SCI_OUT(sci_size, sci_offset, value); \
} \
}

Expand Down
3 changes: 3 additions & 0 deletions trunk/include/linux/serial_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@

#define PORT_SC26XX 82

/* SH-SCI */
#define PORT_SCIFA 83

#ifdef __KERNEL__

#include <linux/compiler.h>
Expand Down

0 comments on commit af1267b

Please sign in to comment.