Skip to content

Commit

Permalink
serial: sh-sci: mask SCTFDR/RFDR according to fifosize
Browse files Browse the repository at this point in the history
Current mask 0xff to SCTFDR/RFDR damages SCIFB, because the
registers on SCIFB have 9-bit data (0 to 256).

This patch changes the mask according to port->fifosize.
Though I'm not sure if the mask is really needed (I don't know if
there are variants which have non-zero upper bits), it is safer.

Signed-off-by: Takashi Yoshii <takashi.yoshii.zj@renesas.com>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px@renesas.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Takashi Yoshii authored and Greg Kroah-Hartman committed Nov 16, 2012
1 parent 9d482cc commit 63f7ad1
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/tty/serial/sh-sci.c
Original file line number Diff line number Diff line change
Expand Up @@ -485,7 +485,7 @@ static int sci_txfill(struct uart_port *port)

reg = sci_getreg(port, SCTFDR);
if (reg->size)
return serial_port_in(port, SCTFDR) & 0xff;
return serial_port_in(port, SCTFDR) & ((port->fifosize << 1) - 1);

reg = sci_getreg(port, SCFDR);
if (reg->size)
Expand All @@ -505,7 +505,7 @@ static int sci_rxfill(struct uart_port *port)

reg = sci_getreg(port, SCRFDR);
if (reg->size)
return serial_port_in(port, SCRFDR) & 0xff;
return serial_port_in(port, SCRFDR) & ((port->fifosize << 1) - 1);

reg = sci_getreg(port, SCFDR);
if (reg->size)
Expand Down

0 comments on commit 63f7ad1

Please sign in to comment.