From udo.schweigert@mchp.siemens.de Fri Feb 26 05:05:04 1999
Return-Path: <udo.schweigert@mchp.siemens.de>
Received: from david.siemens.de (david.siemens.de [192.35.17.14])
	by hub.freebsd.org (Postfix) with ESMTP id 4E52A14F15
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 26 Feb 1999 05:05:02 -0800 (PST)
	(envelope-from udo.schweigert@mchp.siemens.de)
Received: from herkules.siemens.de (herkules.siemens.de [139.23.33.14])
	by david.siemens.de (8.9.3/8.9.3) with ESMTP id OAA28619
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 26 Feb 1999 14:04:42 +0100 (MET)
Received: from reims.mchp.siemens.de (reims.mchp.siemens.de [139.23.202.134])
	by herkules.siemens.de (8.9.3/8.9.3) with ESMTP id OAA26023
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 26 Feb 1999 14:04:53 +0100 (MET)
Received: (from ust@localhost)
	by reims.mchp.siemens.de (8.9.2/8.9.2/ust-1.4) id NAA33306;
	Fri, 26 Feb 1999 13:06:33 GMT
	(envelope-from ust)
Message-Id: <199902261306.NAA33306@reims.mchp.siemens.de>
Date: Fri, 26 Feb 1999 13:06:33 GMT
From: Udo Schweigert <udo.schweigert@mchp.siemens.de>
Reply-To: udo.schweigert@mchp.siemens.de
To: FreeBSD-gnats-submit@freebsd.org
Subject: Fritz! PCMCIA Card in i4b does not work
X-Send-Pr-Version: 3.2

>Number:         10278
>Category:       kern
>Synopsis:       Fritz! PCMCIA Card in i4b does not work
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    hm
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 26 10:10:07 PST 1999
>Closed-Date:    Tue Mar 16 03:13:38 PST 1999
>Last-Modified:  Tue Mar 16 03:16:00 PST 1999
>Originator:     Udo Schweigert
>Release:        FreeBSD 3.1-STABLE i386
>Organization:
Siemens CERT, ZT IK 3
>Environment:
FreeBSD 3.1-STABLE
>Description:

The Fritz! PCMCIA Card did not work out of the box, like my Fritz! ISA Card.

To get it work, i had to do the following patch.

>How-To-Repeat:
>Fix:
	
diff -rc ./layer1/i4b_avm_fritz_pcmcia.c /tmp/i4b/layer1/i4b_avm_fritz_pcmcia.c
*** ./layer1/i4b_avm_fritz_pcmcia.c	Sun Dec 27 22:46:44 1998
--- /tmp/i4b/layer1/i4b_avm_fritz_pcmcia.c	Thu Jan 28 20:33:12 1999
***************
*** 49,55 ****
  #define NISIC 1
  #endif
  
! #if NISIC > 0 && defined(AVM_PCMCIA)
  
  #include <sys/param.h>
  #if defined(__FreeBSD__) && __FreeBSD__ >= 3
--- 49,55 ----
  #define NISIC 1
  #endif
  
! #if NISIC > 0 && defined(AVM_A1_PCMCIA)
  
  #include <sys/param.h>
  #if defined(__FreeBSD__) && __FreeBSD__ >= 3
***************
*** 391,398 ****
   *	isic_attach_fritzpcmcia - attach Fritz!Card
   *---------------------------------------------------------------------------*/
  #ifdef __FreeBSD__
! int
! isic_attach_fritzpcmica(struct isa_device *dev)
  {
  	struct isic_softc *sc = &isic_sc[dev->id_unit];
  
--- 391,398 ----
   *	isic_attach_fritzpcmcia - attach Fritz!Card
   *---------------------------------------------------------------------------*/
  #ifdef __FreeBSD__
! int 
! isic_attach_fritz (struct isa_device *dev)
  {
  	struct isic_softc *sc = &isic_sc[dev->id_unit];
  
diff -rc ./layer1/i4b_isic_isa.c /tmp/i4b/layer1/i4b_isic_isa.c
*** ./layer1/i4b_isic_isa.c	Sun Dec 27 22:46:46 1998
--- /tmp/i4b/layer1/i4b_isic_isa.c	Thu Jan 28 20:33:29 1999
***************
*** 332,340 ****
  				   out of this ISA specific part for the other
  				   OS */
  
! #ifdef AVM_PCMCIA
  		case FLAG_AVM_A1_PCMCIA:
! 			ret = isic_attach_fritzpcmcia(PARM);
  			break;
  #endif
  
--- 332,340 ----
  				   out of this ISA specific part for the other
  				   OS */
  
! #ifdef AVM_A1_PCMCIA
  		case FLAG_AVM_A1_PCMCIA:
! 			ret = isic_attach_fritz(PARM);
  			break;
  #endif
  
diff -rc ./layer1/i4b_isic_pcmcia.c /tmp/i4b/layer1/i4b_isic_pcmcia.c
*** ./layer1/i4b_isic_pcmcia.c	Tue Jan 19 01:21:45 1999
--- /tmp/i4b/layer1/i4b_isic_pcmcia.c	Thu Jan 28 20:19:07 1999
***************
*** 115,128 ****
  	printf("isic%d: PCMCIA init, irqmask = 0x%x (%d), iobase = 0x%x\n",
                  is->id_unit, is->id_irq, devi->slt->irq, is->id_iobase);
  
- #if 0
  	/* XXX: problems resolving isic_probe_avma1_pcmcia() /phk */
  	/* 
  	 * look if there is really an AVM PCMCIA Fritz!Card and
  	 * setup the card specific stuff
  	 */
  	isic_probe_avma1_pcmcia(is);
- #endif
  
  	/* ap:
  	 * XXX what's to do with the return value?
--- 115,126 ----
diff -rc ./layer1/i4b_l1.h /tmp/i4b/layer1/i4b_l1.h
*** ./layer1/i4b_l1.h	Sun Dec 27 22:46:46 1998
--- /tmp/i4b/layer1/i4b_l1.h	Thu Jan 28 20:32:48 1999
***************
*** 359,365 ****
  extern void isic_recover(struct isic_softc *sc);
  extern int isic_realattach(struct isa_device *dev, unsigned int iobase2);
  extern int isic_attach_avma1 ( struct isa_device *dev );
! extern int isic_attach_fritzpcmcia ( struct isa_device *dev );
  extern int isic_attach_Cs0P ( struct isa_device *dev, unsigned int iobase2);
  extern int isic_attach_Dyn ( struct isa_device *dev, unsigned int iobase2);
  extern int isic_attach_s016 ( struct isa_device *dev );
--- 359,365 ----
  extern void isic_recover(struct isic_softc *sc);
  extern int isic_realattach(struct isa_device *dev, unsigned int iobase2);
  extern int isic_attach_avma1 ( struct isa_device *dev );
! extern int isic_attach_fritz ( struct isa_device *dev );
  extern int isic_attach_Cs0P ( struct isa_device *dev, unsigned int iobase2);
  extern int isic_attach_Dyn ( struct isa_device *dev, unsigned int iobase2);
  extern int isic_attach_s016 ( struct isa_device *dev );
diff -rc ./layer1/pcmcia_isic.h /tmp/i4b/layer1/pcmcia_isic.h
*** ./layer1/pcmcia_isic.h	Sun Dec 27 22:46:48 1998
--- /tmp/i4b/layer1/pcmcia_isic.h	Thu Jan 28 20:23:56 1999
***************
*** 45,60 ****
  	struct isic_softc sc_isic;	/* parent class */
  
  	/* PCMCIA-specific goo */
  	struct pcmcia_io_handle sc_pcioh;	/* PCMCIA i/o space info */
  	int sc_io_window;			/* our i/o window */
  	struct pcmcia_function *sc_pf;		/* our PCMCIA function */
  	void *sc_ih;				/* interrupt handler */
  };
  
  typedef int (*isic_pcmcia_attach_func)(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
  
  extern int isic_attach_fritzpcmcia(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
  extern int isic_attach_elsaisdnmc(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
  extern int isic_attach_elsamcall(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
! 
  
--- 45,63 ----
  	struct isic_softc sc_isic;	/* parent class */
  
  	/* PCMCIA-specific goo */
+ #ifndef __FreeBSD__
  	struct pcmcia_io_handle sc_pcioh;	/* PCMCIA i/o space info */
+ #endif
  	int sc_io_window;			/* our i/o window */
  	struct pcmcia_function *sc_pf;		/* our PCMCIA function */
  	void *sc_ih;				/* interrupt handler */
  };
  
+ #ifndef __FreeBSD__
  typedef int (*isic_pcmcia_attach_func)(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
  
  extern int isic_attach_fritzpcmcia(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
  extern int isic_attach_elsaisdnmc(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
  extern int isic_attach_elsamcall(struct pcmcia_isic_softc *sc, struct pcmcia_config_entry *cfe, struct pcmcia_attach_args *pa);
! #endif
  

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->hm 
Responsible-Changed-By: hm 
Responsible-Changed-When: Mon Mar 1 11:09:39 PST 1999 
Responsible-Changed-Why:  
State-Changed-From-To: open->closed 
State-Changed-By: hm 
State-Changed-When: Tue Mar 16 03:13:38 PST 1999 
State-Changed-Why:  
Fixed in current by recent commit to t 
>Unformatted:
