Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
0c0146c2
Commit
0c0146c2
authored
Sep 29, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://bk.arm.linux.org.uk/linux-2.6-serial
into home.osdl.org:/home/torvalds/v2.5/linux
parents
a94e02c7
5b751b85
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
5 deletions
+15
-5
MAINTAINERS
MAINTAINERS
+2
-2
drivers/serial/8250.c
drivers/serial/8250.c
+13
-3
No files found.
MAINTAINERS
View file @
0c0146c2
...
@@ -114,8 +114,8 @@ W: http://sourceforge.net/projects/gkernel/
...
@@ -114,8 +114,8 @@ W: http://sourceforge.net/projects/gkernel/
S: Maintained
S: Maintained
8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
P:
Theodore Ts'o
P:
Russell King
M:
tytso@mit.edu
M:
rmk+serial@arm.linux.org.uk
L: linux-serial@vger.kernel.org
L: linux-serial@vger.kernel.org
W: http://serial.sourceforge.net
W: http://serial.sourceforge.net
S: Maintained
S: Maintained
...
...
drivers/serial/8250.c
View file @
0c0146c2
...
@@ -469,8 +469,14 @@ static void autoconfig_16550a(struct uart_8250_port *up)
...
@@ -469,8 +469,14 @@ static void autoconfig_16550a(struct uart_8250_port *up)
*/
*/
serial_outp
(
up
,
UART_LCR
,
UART_LCR_DLAB
);
serial_outp
(
up
,
UART_LCR
,
UART_LCR_DLAB
);
if
(
serial_in
(
up
,
UART_EFR
)
==
0
)
{
if
(
serial_in
(
up
,
UART_EFR
)
==
0
)
{
DEBUG_AUTOCONF
(
"EFRv1 "
);
serial_outp
(
up
,
UART_EFR
,
0xA8
);
up
->
port
.
type
=
PORT_16650
;
if
(
serial_in
(
up
,
UART_EFR
)
!=
0
)
{
DEBUG_AUTOCONF
(
"EFRv1 "
);
up
->
port
.
type
=
PORT_16650
;
}
else
{
DEBUG_AUTOCONF
(
"Motorola 8xxx DUART "
);
}
serial_outp
(
up
,
UART_EFR
,
0
);
return
;
return
;
}
}
...
@@ -490,7 +496,9 @@ static void autoconfig_16550a(struct uart_8250_port *up)
...
@@ -490,7 +496,9 @@ static void autoconfig_16550a(struct uart_8250_port *up)
* Attempt to switch to bank 2, read the value of the LOOP bit
* Attempt to switch to bank 2, read the value of the LOOP bit
* from EXCR1. Switch back to bank 0, change it in MCR. Then
* from EXCR1. Switch back to bank 0, change it in MCR. Then
* switch back to bank 2, read it from EXCR1 again and check
* switch back to bank 2, read it from EXCR1 again and check
* it's changed. If so, set baud_base in EXCR2 to 921600.
* it's changed. If so, set baud_base in EXCR2 to 921600. -- dwmw2
* On PowerPC we don't want to change baud_base, as we have
* a number of different divisors. -- Tom Rini
*/
*/
serial_outp
(
up
,
UART_LCR
,
0
);
serial_outp
(
up
,
UART_LCR
,
0
);
status1
=
serial_in
(
up
,
UART_MCR
);
status1
=
serial_in
(
up
,
UART_MCR
);
...
@@ -506,12 +514,14 @@ static void autoconfig_16550a(struct uart_8250_port *up)
...
@@ -506,12 +514,14 @@ static void autoconfig_16550a(struct uart_8250_port *up)
serial_outp
(
up
,
UART_MCR
,
status1
);
serial_outp
(
up
,
UART_MCR
,
status1
);
if
((
status2
^
status1
)
&
UART_MCR_LOOP
)
{
if
((
status2
^
status1
)
&
UART_MCR_LOOP
)
{
#ifndef CONFIG_PPC
serial_outp
(
up
,
UART_LCR
,
0xE0
);
serial_outp
(
up
,
UART_LCR
,
0xE0
);
status1
=
serial_in
(
up
,
0x04
);
/* EXCR1 */
status1
=
serial_in
(
up
,
0x04
);
/* EXCR1 */
status1
&=
~
0xB0
;
/* Disable LOCK, mask out PRESL[01] */
status1
&=
~
0xB0
;
/* Disable LOCK, mask out PRESL[01] */
status1
|=
0x10
;
/* 1.625 divisor for baud_base --> 921600 */
status1
|=
0x10
;
/* 1.625 divisor for baud_base --> 921600 */
serial_outp
(
up
,
0x04
,
status1
);
serial_outp
(
up
,
0x04
,
status1
);
serial_outp
(
up
,
UART_LCR
,
0
);
serial_outp
(
up
,
UART_LCR
,
0
);
#endif
up
->
port
.
type
=
PORT_NS16550A
;
up
->
port
.
type
=
PORT_NS16550A
;
up
->
port
.
uartclk
=
921600
*
16
;
up
->
port
.
uartclk
=
921600
*
16
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment