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);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to