Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Sep 2001 10:49:32 -0600
From:      Warner Losh <imp@harmony.village.org>
To:        Lars Eggert <larse@ISI.EDU>
Cc:        mobile@FreeBSD.ORG
Subject:   Re: Partial Success! (Re: PC-Card broken: 4.4-RC4 & Dell Latitude C600) 
Message-ID:  <200109121649.f8CGnWt41331@harmony.village.org>
In-Reply-To: Your message of "Wed, 12 Sep 2001 09:12:35 PDT." <3B9F8973.C53A0ED4@isi.edu> 
References:  <3B9F8973.C53A0ED4@isi.edu>  <3B9F85BB.70DE18A6@isi.edu> <3B9EC74D.CF3DECBD@isi.edu> <3B9E81C4.5CB017D@isi.edu> <3B9D0A4C.2090203@isi.edu> <200109111837.f8BIbft34551@harmony.village.org> <200109112134.f8BLYkt35748@harmony.village.org> <3B9E843A.54EA07A7@isi.edu> <200109121453.f8CEr2t39965@harmony.village.org> <200109121604.f8CG45t40527@harmony.village.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
Actually, here's a more complete single patch.  Although, to be
honest, the code paths involved don't reallyt need the last hunk of
this patch.

Warner

Index: pcic_pci.c
===================================================================
RCS file: /home/imp/FreeBSD/CVS/src/sys/pccard/pcic_pci.c,v
retrieving revision 1.54.2.16
diff -u -r1.54.2.16 pcic_pci.c
--- pcic_pci.c	2001/09/06 20:59:49	1.54.2.16
+++ pcic_pci.c	2001/09/12 16:48:26
@@ -908,10 +908,15 @@
 	u_int32_t event;
 	u_int32_t stat;
 	int present;
+	int s;
 
 	event = bus_space_read_4(sp->bst, sp->bsh, CB_SOCKET_EVENT);
 	if (event != 0) {
 		stat = bus_space_read_4(sp->bst, sp->bsh, CB_SOCKET_STATE);
+
+		/* Ack the interrupt */
+		bus_space_write_4(sp->bst, sp->bsh, 0, event);
+
 		if (bootverbose)
 			device_printf(sc->dev, "Event mask 0x%x stat 0x%x\n",
 			    event, stat);
@@ -928,14 +933,14 @@
 				sc->cd_pending = 1;
 			} else {
 				sc->cd_present = 0;
+				s = splhigh();
 				pccard_event(sp->slt, card_removed);
+				splx(s);
 			}
 		}
 		if (stat & CB_SS_BADVCC)
 			device_printf(sc->dev, "BAD Vcc request\n");
 
-		/* Ack the interrupt */
-		bus_space_write_4(sp->bst, sp->bsh, 0, event);
 	}
 
 	/*
@@ -1314,7 +1319,7 @@
 	DEVMETHOD(bus_activate_resource, pcic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, pcic_deactivate_resource),
 	DEVMETHOD(bus_setup_intr,	pcic_setup_intr),
-	DEVMETHOD(bus_teardown_intr,	bus_generic_teardown_intr),
+	DEVMETHOD(bus_teardown_intr,	pcic_teardown_intr),
 
 	/* Card interface */
 	DEVMETHOD(card_set_res_flags,	pcic_set_res_flags),

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




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