diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index ce850f1..69e62fd 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -2585,6 +2585,9 @@ #endif
 	nic->msg_enable = (1 << debug) - 1;
 	pci_set_drvdata(pdev, netdev);
 
+	err = pci_set_power_state(pdev, PCI_D0);
+	printk(" e100 debug: unable to set power state (error %d)\n", err);
+
 	if((err = pci_enable_device(pdev))) {
 		DPRINTK(PROBE, ERR, "Cannot enable PCI device, aborting.\n");
 		goto err_out_free_dev;
@@ -2617,6 +2620,24 @@ #endif
 		goto err_out_free_res;
 	}
 
+	/* quick register test */
+	{
+		void __iomem *iobase =  pci_iomap(pdev, 1, pci_resource_len(pdev, 1));
+		u32 ioreg, iomem;
+
+		if (!iobase)
+			goto notworking;
+
+		ioreg = ioread32(iobase);
+		iomem = readb(&nic->csr->scb.status);
+
+		printk("e100 debug: read %08X/%08X from the same register\n", ioreg, iomem);
+
+		pci_iounmap(pdev, iobase);
+	
+	}
+notworking:
+
 	if(ent->driver_data)
 		nic->flags |= ich;
 	else
