[PATCH 1/3] split pcnet_dummy_reset to 2 functions: reset and switch_dword_mode

Dmitry Podgorny pasis.ua at gmail.com
Mon May 23 09:22:45 EDT 2011


---
 src/pcnet.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/pcnet.c b/src/pcnet.c
index 2372ec3..5b3d889 100644
--- a/src/pcnet.c
+++ b/src/pcnet.c
@@ -182,13 +182,18 @@ static unsigned long pcnet_dummy_bcr_read32(void __iomem *ioaddr,
         return ioread32(ioaddr + PCNET_IO32_BDP) & 0xffff;
 }
 
-/* resets the controller and switches to 32bit mode */
-static int pcnet_dummy_reset(void __iomem *ioaddr)
+static void pcnet_dummy_reset(void __iomem *ioaddr)
 {
-	int err = 0;
 	ioread16(ioaddr + PCNET_IO_RESET);
 	if (pcnet_dummy_csr_read16(ioaddr, CSR0) != CSR0_STOP)
 		ioread32(ioaddr + PCNET_IO32_RESET);
+}
+
+static int pcnet_dummy_switch_dword_mode(void __iomem *ioaddr)
+{
+	int err = 0;
+	
+	pcnet_dummy_reset(ioaddr);
 	iowrite32(0, ioaddr + PCNET_IO_RDP);
 	if (!(pcnet_dummy_bcr_read32(ioaddr, BCR18) & BCR18_DWIO)) {
 		printk(KERN_ERR DRV_NAME ": cannot switch controller to 32bit mode\n");
@@ -286,7 +291,7 @@ static int __devinit pcnet_dummy_init_one(struct pci_dev *pdev,
 		goto out_res;
 	pci_set_drvdata(pdev, ndev);
 
-	if (pcnet_dummy_reset(ioaddr))
+	if (pcnet_dummy_switch_dword_mode(ioaddr))
 		goto out_res_unmap;
 
 	if (pcnet_dummy_init_netdev(pdev, (unsigned long)ioaddr))
@@ -311,6 +316,7 @@ static void __devexit pcnet_dummy_remove_one(struct pci_dev *pdev)
 	struct pcnet_dummy_private *pp;
 
 	pp = netdev_priv(ndev);
+	pcnet_dummy_reset(pp->base);
 	pci_iounmap(pdev, pp->base);
 	free_netdev(ndev);
 	pci_disable_device(pdev);
-- 
1.7.5.rc3




More information about the Kernel-russian mailing list