forcedeth boot delay fix
Subsystems (2)
PATCH 8/8 forcedeth boot delay fix
From: Ayaz Abdulla <[email protected]>
Fix a long boot delay in the forcedeth driver. During initialization, the timeout for the handshake between mgmt unit and driver can be very long. The patch reduces the timeout by eliminating a extra loop around the timeout logic.
Addresses http://bugzilla.kernel.org/show_bug.cgi?id=9308
Signed-off-by Ayaz Abdulla <[email protected]>
Cc Alex Howells <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/net/forcedeth.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-)
drivers/net/forcedeth.c renamed from drivers/net/forcedeth.c~forcedeth-boot-delay-fix +9 -13
@@ -5294,19 +5294,15 @@ static int __devinit nv_probe(struct pciif (readl (base + NvRegTransmitterControl) &NVREG_XMITCTL_SYNC_PHY_INIT ) { np->mac_in_use =readl (base + NvRegTransmitterControl) &NVREG_XMITCTL_MGMT_ST ;dprintk (KERN_INFO "%s: mgmt unit is running. mac in use %x.\n" ,pci_name (pci_dev), np->mac_in_use); -for (i =0 ; i <5000 ; i++) { -msleep (1 ); -if (nv_mgmt_acquire_sema (dev)) { -/* management unit setup the phy already? */ -if ((readl (base + NvRegTransmitterControl) &NVREG_XMITCTL_SYNC_MASK ) == -NVREG_XMITCTL_SYNC_PHY_INIT ) { -/* phy is inited by mgmt unit */ - phyinitialized =1 ; -dprintk (KERN_INFO "%s: Phy already initialized by mgmt unit.\n" ,pci_name (pci_dev)); - }else { -/* we need to init the phy */ - } -break ; +if (nv_mgmt_acquire_sema (dev)) { +/* management unit setup the phy already? */ +if ((readl (base + NvRegTransmitterControl) &NVREG_XMITCTL_SYNC_MASK ) == +NVREG_XMITCTL_SYNC_PHY_INIT ) { +/* phy is inited by mgmt unit */ + phyinitialized =1 ; +dprintk (KERN_INFO "%s: Phy already initialized by mgmt unit.\n" ,pci_name (pci_dev)); + }else { +/* we need to init the phy */ } } }
_
Quoted 11 lines · [email protected] wrote:
From: Ayaz Abdulla <[email protected]>
Fix a long boot delay in the forcedeth driver. During initialization, the
timeout for the handshake between mgmt unit and driver can be very long. The patch reduces the timeout by eliminating a extra loop around the timeout logic.Addresses http://bugzilla.kernel.org/show_bug.cgi?id=9308
Signed-off-by Ayaz Abdulla <[email protected]>Cc Alex Howells <[email protected]>Signed-off-by Andrew Morton <[email protected]>
applied #upstream-fixes