Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Feb 1999 13:06:33 GMT
From:      Udo Schweigert <udo.schweigert@mchp.siemens.de>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/10278: Fritz! PCMCIA Card in i4b does not work
Message-ID:  <199902261306.NAA33306@reims.mchp.siemens.de>

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

>Number:         10278
>Category:       kern
>Synopsis:       Fritz! PCMCIA Card in i4b does not work
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Feb 26 10:10:07 PST 1999
>Closed-Date:
>Last-Modified:
>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:
>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?199902261306.NAA33306>