patch-2.4.0-test2 linux/drivers/pcmcia/yenta.c

Next file: linux/drivers/pnp/isapnp.c
Previous file: linux/drivers/pci/setup-res.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test1/linux/drivers/pcmcia/yenta.c linux/drivers/pcmcia/yenta.c
@@ -127,6 +127,8 @@
 
 	val  = (state & CB_3VCARD) ? SS_3VCARD : 0;
 	val |= (state & CB_XVCARD) ? SS_XVCARD : 0;
+	val |= (state & (CB_CDETECT1 | CB_CDETECT2 | CB_5VCARD | CB_3VCARD
+			 | CB_XVCARD | CB_YVCARD)) ? 0 : SS_PENDING;
 
 	if (state & CB_CBCARD) {
 		val |= SS_CARDBUS;	
@@ -556,30 +558,6 @@
 	}
 }
 
-/*
- * Many chipsets (all TI chips?) seem to have
- * problems sensing the power state of the card
- * that was inserted at chip init time, so force
- * it if necessary..
- */
-static void yenta_power_sense(pci_socket_t *socket)
-{
-	u32 status = cb_readl(socket, CB_SOCKET_STATE);
-
-	/*
-	 * Nothing inserted, nothing to sense..
-	 * ..or sense status already available.
-	 */
-	if (status & (CB_CDETECT1 | CB_CDETECT2 | CB_5VCARD | CB_3VCARD | CB_XVCARD | CB_YVCARD))
-		return;
-
-	/*
-	 * Ho humm. It reports a card, but it doesn't report
-	 * any voltages. Need to redo the VS test..
-	 */
-	cb_writel(socket, CB_SOCKET_FORCE, CB_CVSTEST);
-}
-
 /* Called at resume and initialization events */
 static int yenta_init(pci_socket_t *socket)
 {
@@ -620,7 +598,8 @@
 	exca_writeb(socket, I365_GBLCTL, 0x00);
 	exca_writeb(socket, I365_GENCTL, 0x00);
 
-	yenta_power_sense(socket);
+	/* Redo card voltage interrogation */
+	cb_writel(socket, CB_SOCKET_FORCE, CB_CVSTEST);
 
 	yenta_clear_maps(socket);
 	return 0;
@@ -788,7 +767,7 @@
 	 */
 	if (pci_enable_device(dev))
 		return -1;
-	if (!dev->resource[0].start) {
+	if (!pci_resource_start(dev, 0)) {
 		printk("No cardbus resource!\n");
 		return -1;
 	}
@@ -797,7 +776,7 @@
 	 * Ok, start setup.. Map the cardbus registers,
 	 * and request the IRQ.
 	 */
-	socket->base = ioremap(dev->resource[0].start, 0x1000);
+	socket->base = ioremap(pci_resource_start(dev, 0), 0x1000);
 	if (!socket->base)
 		return -1;
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)