svn commit: r222317 - head/sys/dev/uart
Marcel Moolenaar
marcel at FreeBSD.org
Thu May 26 17:02:56 UTC 2011
Author: marcel
Date: Thu May 26 17:02:56 2011
New Revision: 222317
URL: http://svn.freebsd.org/changeset/base/222317
Log:
Ignore MCR[6] during the probe to fix a false negative. Bit 6 of the
MCR register on the Sunix Sun1699 chip tends to be set but doesn't
seem to have a function. That is, FreeBSD just works (provided the
correct RCLK is used) regardless.
PR: kern/129663
Diagnostics: Eygene Ryabinkin <rea-fbsd at codelabs.ru>
MFC after: 3 days
Modified:
head/sys/dev/uart/uart_dev_ns8250.c
Modified: head/sys/dev/uart/uart_dev_ns8250.c
==============================================================================
--- head/sys/dev/uart/uart_dev_ns8250.c Thu May 26 16:59:42 2011 (r222316)
+++ head/sys/dev/uart/uart_dev_ns8250.c Thu May 26 17:02:56 2011 (r222317)
@@ -242,8 +242,14 @@ ns8250_probe(struct uart_bas *bas)
val = uart_getreg(bas, REG_IIR);
if (val & 0x30)
return (ENXIO);
+ /*
+ * Bit 6 of the MCR (= 0x40) appears to be 1 for the Sun1699
+ * chip, but otherwise doesn't seem to have a function. In
+ * other words, uart(4) works regardless. Ignore that bit so
+ * the probe succeeds.
+ */
val = uart_getreg(bas, REG_MCR);
- if (val & 0xe0)
+ if (val & 0xa0)
return (ENXIO);
return (0);
More information about the svn-src-all
mailing list