Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Aug 2000 17:43:14 +0100 (BST)
From:      Steve Roome <steve@sse0691.bri.hp.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/20783: patch to use IPACv1.2 with 
Message-ID:  <200008221643.RAA62521@sse0691.bri.hp.com>

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

>Number:         20783
>Category:       kern
>Synopsis:       patch to use IPACv1.2 with
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 22 09:50:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Steve Roome
>Release:        FreeBSD 4.1-STABLE i386
>Organization:
>Environment:

	4.1-stable	
	This is a patch to the i4b source to work with IPAC v1.2
	it's pulled from a mailing list and this is after it's been
	applied successfully.
	
>Description:

	newer PCI isdn cards might report themselves as IPAC v1.2
	but the driver doesn't by default support this, although
	it does seem work to treat it similarly to IPAC v.1.1

>How-To-Repeat:

	An attempt to use a newer PCI ISDN card that reports itself
	as being IPAC v.1.2 will cause the driver to malfunction.

>Fix:

diff -ur i4b.2/layer1/i4b_avm_fritz_pci.c i4b/layer1/i4b_avm_fritz_pci.c
--- i4b.2/layer1/i4b_avm_fritz_pci.c	Thu Aug  3 00:52:55 2000
+++ i4b/layer1/i4b_avm_fritz_pci.c	Mon Aug 21 19:05:12 2000
@@ -39,7 +39,7 @@
  *
  *	$Id: i4b_avm_fritz_pci.c,v 1.3 1999/12/13 21:25:26 hm Exp $
  *
- * $FreeBSD: src/sys/i4b/layer1/i4b_avm_fritz_pci.c,v 1.6.2.1 2000/08/02 23:52:55 peter Exp $
+ * $FreeBSD: src/sys/i4b/layer1/i4b_avm_fritz_pci.c,v 1.6 1999/12/14 20:48:18 hm Exp $
  *
  *      last edit-date: [Mon Dec 13 21:59:04 1999]
  *
@@ -504,7 +504,7 @@
 
 	asc->avma1pp_unit = unit;
 
-	rid = PCIR_MAPS+4;
+	rid = PCI_MAP_REG_START+4;
 	asc->avma1pp_res = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
 		0, ~0, 1, RF_ACTIVE);
 
@@ -523,7 +523,7 @@
 	    RF_SHAREABLE | RF_ACTIVE);
 
 	if (asc->avma1pp_irq == NULL) {
-		bus_release_resource(dev, SYS_RES_IOPORT, PCIR_MAPS+4, asc->avma1pp_res);
+		bus_release_resource(dev, SYS_RES_IOPORT, PCI_MAP_REG_START+4, asc->avma1pp_res);
 		printf("avma1pp%d: couldn't map interrupt\n", unit);
 		error = ENXIO;
 		goto fail;
@@ -533,7 +533,7 @@
 
 	if (error) {
 		bus_release_resource(dev, SYS_RES_IRQ, 0, asc->avma1pp_res);
-		bus_release_resource(dev, SYS_RES_IOPORT, PCIR_MAPS+4, asc->avma1pp_res);
+		bus_release_resource(dev, SYS_RES_IOPORT, PCI_MAP_REG_START+4, asc->avma1pp_res);
 		printf("avma1pp%d: couldn't set up irq\n", unit);
 		goto fail;
 	}
diff -ur i4b.2/layer1/i4b_elsa_qs1p.c i4b/layer1/i4b_elsa_qs1p.c
--- i4b.2/layer1/i4b_elsa_qs1p.c	Thu Aug  3 00:52:55 2000
+++ i4b/layer1/i4b_elsa_qs1p.c	Mon Aug 21 19:05:12 2000
@@ -29,7 +29,7 @@
  *
  *	$Id: i4b_elsa_qs1p.c,v 1.2 1999/12/13 21:25:26 hm Exp $
  *
- * $FreeBSD: src/sys/i4b/layer1/i4b_elsa_qs1p.c,v 1.6.2.1 2000/08/02 23:52:55 peter Exp $
+ * $FreeBSD: src/sys/i4b/layer1/i4b_elsa_qs1p.c,v 1.6 1999/12/14 20:48:19 hm Exp $
  *
  *      last edit-date: [Mon Dec 13 21:59:51 1999]
  *
@@ -77,8 +77,8 @@
 #define PORT0_MAPOFF	4
 #define PORT1_MAPOFF	12
 
-#define ELSA_PORT0_MAPOFF	(PCIR_MAPS+PORT0_MAPOFF)
-#define ELSA_PORT1_MAPOFF	(PCIR_MAPS+PORT1_MAPOFF)
+#define ELSA_PORT0_MAPOFF	(PCI_MAP_REG_START+PORT0_MAPOFF)
+#define ELSA_PORT1_MAPOFF	(PCI_MAP_REG_START+PORT1_MAPOFF)
 
 #define PCI_QS1000_DID	0x1000
 #define PCI_QS1000_VID	0x1048
diff -ur i4b.2/layer1/i4b_ipac.h i4b/layer1/i4b_ipac.h
--- i4b.2/layer1/i4b_ipac.h	Tue Dec 14 20:48:20 1999
+++ i4b/layer1/i4b_ipac.h	Mon Aug 21 19:05:12 2000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 1999 Hellmuth Michaelis. All rights reserved.
+ * Copyright (c) 1997, 2000 Hellmuth Michaelis. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -49,6 +49,7 @@
 /* chip version */
 
 #define	IPAC_V11	0x01	/* IPAC Version 1.1 */
+#define IPAC_V12	0x02	/* IPAC Version 1.2 */
 
 /*
  * definitions of registers and bits for the IPAC ISDN chip.
diff -ur i4b.2/layer1/i4b_isic.c i4b/layer1/i4b_isic.c
--- i4b.2/layer1/i4b_isic.c	Tue Dec 14 20:48:21 1999
+++ i4b/layer1/i4b_isic.c	Mon Aug 21 19:05:12 2000
@@ -306,16 +306,17 @@
 
 	if(sc->sc_ipac)
 	{
-		ret = IPAC_READ(IPAC_ID);
+		sc->sc_ipac_version = IPAC_READ(IPAC_ID);
 	
-		switch(ret)
+		switch(sc->sc_ipac_version)
 		{
-			case 0x01: 
+			case IPAC_V11:
+			case IPAC_V12: 
 				break;
 	
 			default:
 				printf("isic%d: Error, IPAC version %d unknown!\n",
-					unit, ret);
+					unit, sc->sc_ipac_version);
 				return ENXIO;
 				break;
 
diff -ur i4b.2/layer1/i4b_l1.h i4b/layer1/i4b_l1.h
--- i4b.2/layer1/i4b_l1.h	Tue Dec 14 20:48:22 1999
+++ i4b/layer1/i4b_l1.h	Mon Aug 21 19:05:12 2000
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 1999 Hellmuth Michaelis. All rights reserved.
+ * Copyright (c) 1997, 2000 Hellmuth Michaelis. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -204,7 +204,8 @@
 	
 	int		sc_isac_version;	/* version number of ISAC */
 	int		sc_hscx_version;	/* version number of HSCX */
-
+	int		sc_ipac_version;	/* version number of IPAC */
+	
 	int		sc_I430state;	/* I.430 state F3 .... F8 */
 
 	int		sc_I430T3;	/* I.430 Timer T3 running */	
diff -ur i4b.2/layer1/pci_isic.c i4b/layer1/pci_isic.c
--- i4b.2/layer1/pci_isic.c	Sat Aug 28 01:45:44 1999
+++ i4b/layer1/pci_isic.c	Mon Aug 21 19:05:13 2000
@@ -220,12 +220,15 @@
 	
 	if(sc->sc_ipac)
 	{
-		u_int ret = IPAC_READ(IPAC_ID);
+		sc->sc_ipac_version = IPAC_READ(IPAC_ID);
 
-		switch(ret)
+		switch(sc->sc_ipac_version)
 		{
-			case 0x01:
-				printf("%s: IPAC PSB2115 Version 1.1\n", sc->sc_dev.dv_xname);
+			case IPAC_V11:
+			case IPAC_V12:
+				printf("%s: IPAC PSB2115 Version 1.%d\n",
+					sc->sc_dev.dv_xname,
+					sc->sc_ipac_versio);
 				break;
 	
 			default:
	


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


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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