Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Oct 2008 12:26:50 +0800 (CST)
From:      "Thinker K.F. Li" <thinker@branda.to>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/128219: puc driver can not handle parallel port card with SUN1888 chip.
Message-ID:  <200810190426.m9J4QomM064564@cowboy.branda.to>
Resent-Message-ID: <200810190450.m9J4o1mR050195@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         128219
>Category:       kern
>Synopsis:       puc driver can not handle parallel port card with SUN1888 chip.
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Oct 19 04:50:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Thinker K.F. Li
>Release:        FreeBSD 8.0-CURRENT i386
>Organization:
allwitz.com
>Environment:
System: FreeBSD cowboy.branda.to 8.0-CURRENT FreeBSD 8.0-CURRENT #7: Fri Oct 17 22:32:29 CST 2008 thinker@cowboy.branda.to:/usr/src/sys/i386/compile/cowboy i386


	
>Description:
	puc(4) is a Universal driver for serial & parallel ports.  It supports
	variaous chips & boards except the one I bought from market, SUnix's
	daul ports parallel card with SUN1888 chip.
	
>How-To-Repeat:
	Plug a parallel port card with SUN1888 to your FreeBSD box and try to
	drive it with puc driver module.  Nothing is happening.
	puc(4) can not even recoganize the card.
	
>Fix:

	apply following small patch on src/sys/dev/puc/, and rebuild the
	module in src/sys/modules/puc/.
	

--- patch-freebsd-puc.diff begins here ---
--- puc.c.orig	2008-10-17 23:55:22.000000000 +0800
+++ puc.c	2008-10-18 15:50:10.000000000 +0800
@@ -606,7 +606,7 @@
 	if (cookiep == NULL || res != port->p_ires)
 		return (EINVAL);
 	/* We demand that serdev devices use filter_only interrupts. */
-	if (ihand != NULL)
+	if (ihand != NULL && port->p_type == PUC_TYPE_SERIAL)
 		return (ENXIO);
 	if (rman_get_device(port->p_ires) != originator)
 		return (ENXIO);
--- pucdata.c.orig	2008-10-17 15:50:37.000000000 +0800
+++ pucdata.c	2008-10-18 03:01:56.000000000 +0800
@@ -586,6 +586,12 @@
 	    .config_function = puc_config_timedia
 	},
 
+	{   0x1409, 0x7268, 0xffff, 0,
+	    "Sunix SUN1888 2 Port Parallel",
+	    DEFAULT_RCLK * 8,
+	    PUC_PORT_2P, 0x10, 8, 0,
+	},
+
 	/*
 	 * Boards with an Oxford Semiconductor chip.
 	 *
--- patch-freebsd-puc.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810190426.m9J4QomM064564>