Module Name:    src
Committed By:   martin
Date:           Sat Aug 23 21:37:56 UTC 2014

Modified Files:
        src/sys/dev/usb: umcs.c

Log Message:
Fix a few logical vs. physical port number confusions to make this
driver work with two port variants.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/dev/usb/umcs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/usb/umcs.c
diff -u src/sys/dev/usb/umcs.c:1.7 src/sys/dev/usb/umcs.c:1.8
--- src/sys/dev/usb/umcs.c:1.7	Mon May  5 20:56:15 2014
+++ src/sys/dev/usb/umcs.c	Sat Aug 23 21:37:56 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: umcs.c,v 1.7 2014/05/05 20:56:15 joerg Exp $ */
+/* $NetBSD: umcs.c,v 1.8 2014/08/23 21:37:56 martin Exp $ */
 /* $FreeBSD: head/sys/dev/usb/serial/umcs.c 260559 2014-01-12 11:44:28Z hselasky $ */
 
 /*-
@@ -41,7 +41,7 @@
  *
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: umcs.c,v 1.7 2014/05/05 20:56:15 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: umcs.c,v 1.8 2014/08/23 21:37:56 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -420,7 +420,8 @@ umcs7840_set_UART_reg(struct umcs7840_so
 }
 
 static int
-umcs7840_set_baudrate(struct umcs7840_softc *sc, uint8_t portno, uint32_t rate)
+umcs7840_set_baudrate(struct umcs7840_softc *sc, uint8_t portno,
+	uint32_t rate)
 {
 	int err;
 	uint16_t divisor;
@@ -434,7 +435,8 @@ umcs7840_set_baudrate(struct umcs7840_so
 		return (-1);
 	}
 	if (divisor == 0 || (clk & MCS7840_DEV_SPx_CLOCK_MASK) != clk) {
-		DPRINTF(("Port %d bad speed calculation: %d\n", portno, rate));
+		DPRINTF(("Port %d bad speed calculation: %d\n", portno,
+		    rate));
 		return (-1);
 	}
 	DPRINTF(("Port %d set speed: %d (%02x / %d)\n", portno, rate, clk, divisor));
@@ -585,20 +587,19 @@ static void
 umcs7840_set(void *self, int portno, int reg, int onoff)
 {
 	struct umcs7840_softc *sc = self;
-	int pn = sc->sc_ports[portno].sc_port_phys;
 
 	if (sc->sc_dying)
 		return;
 
 	switch (reg) {
 	case UCOM_SET_DTR:
-		umcs7840_dtr(sc, pn, onoff);
+		umcs7840_dtr(sc, portno, onoff);
 		break;
 	case UCOM_SET_RTS:
-		umcs7840_rts(sc, pn, onoff);
+		umcs7840_rts(sc, portno, onoff);
 		break;
 	case UCOM_SET_BREAK:
-		umcs7840_break(sc, pn, onoff);
+		umcs7840_break(sc, portno, onoff);
 		break;
 	default:
 		break;
@@ -665,7 +666,7 @@ umcs7840_param(void *self, int portno, s
 	umcs7840_set_UART_reg(sc, pn, MCS7840_UART_REG_MCR,
 	    sc->sc_ports[pn].sc_port_mcr);
 
-	if (umcs7840_set_baudrate(sc, pn, t->c_ospeed))
+	if (umcs7840_set_baudrate(sc, portno, t->c_ospeed))
 		return EIO;
 
 	return 0;
@@ -804,7 +805,7 @@ umcs7840_port_open(void *self, int portn
 		return EIO;
 
 	/* Set speed 9600 */
-	if (umcs7840_set_baudrate(sc, pn, 9600))
+	if (umcs7840_set_baudrate(sc, portno, 9600))
 		return EIO;
 
 

Reply via email to