Przeglądaj źródła

Revert "bnx2: Reset device during driver initialization"

This reverts commit 3e1be7ad2d38c6bd6aeef96df9bd0a7822f4e51c.

When people build bnx2 driver into kernel, it will fail to detect
and load firmware because firmware is contained in initramfs and
initramfs has not been uncompressed yet during do_initcalls. So
revert commit 3e1be7a and work out a new way in the later patch.

Signed-off-by: Baoquan He <bhe@redhat.com>
Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Baoquan He 8 lat temu
rodzic
commit
5d0d4b91bf
1 zmienionych plików z 5 dodań i 7 usunięć
  1. 5 7
      drivers/net/ethernet/broadcom/bnx2.c

+ 5 - 7
drivers/net/ethernet/broadcom/bnx2.c

@@ -6361,6 +6361,10 @@ bnx2_open(struct net_device *dev)
 	struct bnx2 *bp = netdev_priv(dev);
 	struct bnx2 *bp = netdev_priv(dev);
 	int rc;
 	int rc;
 
 
+	rc = bnx2_request_firmware(bp);
+	if (rc < 0)
+		goto out;
+
 	netif_carrier_off(dev);
 	netif_carrier_off(dev);
 
 
 	bnx2_disable_int(bp);
 	bnx2_disable_int(bp);
@@ -6429,6 +6433,7 @@ open_err:
 	bnx2_free_irq(bp);
 	bnx2_free_irq(bp);
 	bnx2_free_mem(bp);
 	bnx2_free_mem(bp);
 	bnx2_del_napi(bp);
 	bnx2_del_napi(bp);
+	bnx2_release_firmware(bp);
 	goto out;
 	goto out;
 }
 }
 
 
@@ -8575,12 +8580,6 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 
 	pci_set_drvdata(pdev, dev);
 	pci_set_drvdata(pdev, dev);
 
 
-	rc = bnx2_request_firmware(bp);
-	if (rc < 0)
-		goto error;
-
-
-	bnx2_reset_chip(bp, BNX2_DRV_MSG_CODE_RESET);
 	memcpy(dev->dev_addr, bp->mac_addr, ETH_ALEN);
 	memcpy(dev->dev_addr, bp->mac_addr, ETH_ALEN);
 
 
 	dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
 	dev->hw_features = NETIF_F_IP_CSUM | NETIF_F_SG |
@@ -8613,7 +8612,6 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	return 0;
 	return 0;
 
 
 error:
 error:
-	bnx2_release_firmware(bp);
 	pci_iounmap(pdev, bp->regview);
 	pci_iounmap(pdev, bp->regview);
 	pci_release_regions(pdev);
 	pci_release_regions(pdev);
 	pci_disable_device(pdev);
 	pci_disable_device(pdev);