* [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1
2005-10-19 1:31 [patch 2.6.14-rc3 0/3] misc fixes/cleanups for sundance John W. Linville
@ 2005-10-19 1:31 ` John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 John W. Linville
2005-10-19 2:29 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 Jeff Garzik
0 siblings, 2 replies; 10+ messages in thread
From: John W. Linville @ 2005-10-19 1:31 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: jgarzik
Remove an if (1) { ... } block in sundance_probe1. Its purpose seems
to be only to allow for delaring some extra local variables. But, it also
adds ugly indentation without adding any meaning to the code.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/sundance.c | 48 +++++++++++++++++++++++-------------------------
1 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -518,6 +518,7 @@ static int __devinit sundance_probe1 (st
#else
int bar = 1;
#endif
+ int phy, phy_idx = 0;
/* when built into the kernel, we only print version if device is found */
@@ -605,33 +606,30 @@ static int __devinit sundance_probe1 (st
printk("%2.2x:", dev->dev_addr[i]);
printk("%2.2x, IRQ %d.\n", dev->dev_addr[i], irq);
- if (1) {
- int phy, phy_idx = 0;
- np->phys[0] = 1; /* Default setting */
- np->mii_preamble_required++;
- for (phy = 1; phy < 32 && phy_idx < MII_CNT; phy++) {
- int mii_status = mdio_read(dev, phy, MII_BMSR);
- if (mii_status != 0xffff && mii_status != 0x0000) {
- np->phys[phy_idx++] = phy;
- np->mii_if.advertising = mdio_read(dev, phy, MII_ADVERTISE);
- if ((mii_status & 0x0040) == 0)
- np->mii_preamble_required++;
- printk(KERN_INFO "%s: MII PHY found at address %d, status "
- "0x%4.4x advertising %4.4x.\n",
- dev->name, phy, mii_status, np->mii_if.advertising);
- }
- }
- np->mii_preamble_required--;
-
- if (phy_idx == 0) {
- printk(KERN_INFO "%s: No MII transceiver found, aborting. ASIC status %x\n",
- dev->name, ioread32(ioaddr + ASICCtrl));
- goto err_out_unregister;
- }
-
- np->mii_if.phy_id = np->phys[0];
+ np->phys[0] = 1; /* Default setting */
+ np->mii_preamble_required++;
+ for (phy = 1; phy < 32 && phy_idx < MII_CNT; phy++) {
+ int mii_status = mdio_read(dev, phy, MII_BMSR);
+ if (mii_status != 0xffff && mii_status != 0x0000) {
+ np->phys[phy_idx++] = phy;
+ np->mii_if.advertising = mdio_read(dev, phy, MII_ADVERTISE);
+ if ((mii_status & 0x0040) == 0)
+ np->mii_preamble_required++;
+ printk(KERN_INFO "%s: MII PHY found at address %d, status "
+ "0x%4.4x advertising %4.4x.\n",
+ dev->name, phy, mii_status, np->mii_if.advertising);
+ }
+ }
+ np->mii_preamble_required--;
+
+ if (phy_idx == 0) {
+ printk(KERN_INFO "%s: No MII transceiver found, aborting. ASIC status %x\n",
+ dev->name, ioread32(ioaddr + ASICCtrl));
+ goto err_out_unregister;
}
+ np->mii_if.phy_id = np->phys[0];
+
/* Parse override configuration */
np->an_enable = 1;
if (card_idx < MAX_UNITS) {
^ permalink raw reply [flat|nested] 10+ messages in thread
* [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0
2005-10-19 1:31 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 John W. Linville
@ 2005-10-19 1:31 ` John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 3/3] sundance: expand reset mask John W. Linville
2005-10-19 2:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 Jeff Garzik
2005-10-19 2:29 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 Jeff Garzik
1 sibling, 2 replies; 10+ messages in thread
From: John W. Linville @ 2005-10-19 1:31 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: jgarzik
Probe for PHYs starting at MII address 0 instead of MII address 1.
This covers the entire range of MII addresses.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/sundance.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -608,7 +608,7 @@ static int __devinit sundance_probe1 (st
np->phys[0] = 1; /* Default setting */
np->mii_preamble_required++;
- for (phy = 1; phy < 32 && phy_idx < MII_CNT; phy++) {
+ for (phy = 0; phy < 32 && phy_idx < MII_CNT; phy++) {
int mii_status = mdio_read(dev, phy, MII_BMSR);
if (mii_status != 0xffff && mii_status != 0x0000) {
np->phys[phy_idx++] = phy;
^ permalink raw reply [flat|nested] 10+ messages in thread
* [patch 2.6.14-rc3 0/3] misc fixes/cleanups for sundance
@ 2005-10-19 1:31 John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 John W. Linville
0 siblings, 1 reply; 10+ messages in thread
From: John W. Linville @ 2005-10-19 1:31 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: jgarzik
Just a little cleanup from me, and some fixes snarfed from the
ICPlus (chip vendor) version of the driver.
-- Get rid of if (1) { ... } block in sundance_probe1
-- Change PHY probing to start from MII address 0
-- Expand the mask used when resetting the chip
Patches to follow...
^ permalink raw reply [flat|nested] 10+ messages in thread
* [patch 2.6.14-rc3 3/3] sundance: expand reset mask
2005-10-19 1:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 John W. Linville
@ 2005-10-19 1:31 ` John W. Linville
2005-10-19 2:29 ` Jeff Garzik
2005-10-19 2:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 Jeff Garzik
1 sibling, 1 reply; 10+ messages in thread
From: John W. Linville @ 2005-10-19 1:31 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: jgarzik
Expand the mask used when reseting the chip to include the GlobalReset
bit. This fix comes from ICPlus and seems to be required for some
cards.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/sundance.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -690,7 +690,7 @@ static int __devinit sundance_probe1 (st
/* Reset the chip to erase previous misconfiguration. */
if (netif_msg_hw(np))
printk("ASIC Control is %x.\n", ioread32(ioaddr + ASICCtrl));
- iowrite16(0x007f, ioaddr + ASICCtrl + 2);
+ iowrite16(0x00ff, ioaddr + ASICCtrl + 2);
if (netif_msg_hw(np))
printk("ASIC Control is now %x.\n", ioread32(ioaddr + ASICCtrl));
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1
2005-10-19 1:31 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 John W. Linville
@ 2005-10-19 2:29 ` Jeff Garzik
1 sibling, 0 replies; 10+ messages in thread
From: Jeff Garzik @ 2005-10-19 2:29 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-kernel, netdev
applied
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 2.6.14-rc3 3/3] sundance: expand reset mask
2005-10-19 1:31 ` [patch 2.6.14-rc3 3/3] sundance: expand reset mask John W. Linville
@ 2005-10-19 2:29 ` Jeff Garzik
0 siblings, 0 replies; 10+ messages in thread
From: Jeff Garzik @ 2005-10-19 2:29 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-kernel, netdev
applied
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0
2005-10-19 1:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 3/3] sundance: expand reset mask John W. Linville
@ 2005-10-19 2:31 ` Jeff Garzik
2005-10-19 12:00 ` John W. Linville
1 sibling, 1 reply; 10+ messages in thread
From: Jeff Garzik @ 2005-10-19 2:31 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-kernel, netdev
John W. Linville wrote:
> Probe for PHYs starting at MII address 0 instead of MII address 1.
> This covers the entire range of MII addresses.
>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
> ---
>
> drivers/net/sundance.c | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
> --- a/drivers/net/sundance.c
> +++ b/drivers/net/sundance.c
> @@ -608,7 +608,7 @@ static int __devinit sundance_probe1 (st
>
> np->phys[0] = 1; /* Default setting */
> np->mii_preamble_required++;
> - for (phy = 1; phy < 32 && phy_idx < MII_CNT; phy++) {
> + for (phy = 0; phy < 32 && phy_idx < MII_CNT; phy++) {
NAK. MII address 0 should be scanned _last_, after all other addresses.
In some phys, it is a ghost, mirroring another address.
Take a look at some of the original Becker MII scan code from
ftp://ftp.scyld.com/pub/network/ to see an elegant method for this.
Becker's scan code would utilize a mask to keep the loop nice and
elegant, eliminating an "if (phy == 32) phy = 0;" test.
Jeff
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0
2005-10-19 2:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 Jeff Garzik
@ 2005-10-19 12:00 ` John W. Linville
2005-10-19 12:07 ` [patch 2.6.14-rc3] sundance: include MII address 0 in PHY probe John W. Linville
0 siblings, 1 reply; 10+ messages in thread
From: John W. Linville @ 2005-10-19 12:00 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel, netdev
On Tue, Oct 18, 2005 at 10:31:51PM -0400, Jeff Garzik wrote:
> John W. Linville wrote:
> >--- a/drivers/net/sundance.c
> >+++ b/drivers/net/sundance.c
> >@@ -608,7 +608,7 @@ static int __devinit sundance_probe1 (st
> >
> > np->phys[0] = 1; /* Default setting */
> > np->mii_preamble_required++;
> >- for (phy = 1; phy < 32 && phy_idx < MII_CNT; phy++) {
> >+ for (phy = 0; phy < 32 && phy_idx < MII_CNT; phy++) {
>
> NAK. MII address 0 should be scanned _last_, after all other addresses.
> In some phys, it is a ghost, mirroring another address.
>
> Take a look at some of the original Becker MII scan code from
> ftp://ftp.scyld.com/pub/network/ to see an elegant method for this.
Hmmm...that is clever...patch to follow...
John
--
John W. Linville
linville@tuxdriver.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [patch 2.6.14-rc3] sundance: include MII address 0 in PHY probe
2005-10-19 12:00 ` John W. Linville
@ 2005-10-19 12:07 ` John W. Linville
2005-10-20 14:07 ` Jeff Garzik
0 siblings, 1 reply; 10+ messages in thread
From: John W. Linville @ 2005-10-19 12:07 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: jgarzik
Include MII address 0 at the end of the PHY scan. This covers the
entire range of possible MII addresses.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/sundance.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -608,16 +608,17 @@ static int __devinit sundance_probe1 (st
np->phys[0] = 1; /* Default setting */
np->mii_preamble_required++;
- for (phy = 1; phy < 32 && phy_idx < MII_CNT; phy++) {
+ for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
int mii_status = mdio_read(dev, phy, MII_BMSR);
+ int phyx = phy & 0x1f;
if (mii_status != 0xffff && mii_status != 0x0000) {
- np->phys[phy_idx++] = phy;
- np->mii_if.advertising = mdio_read(dev, phy, MII_ADVERTISE);
+ np->phys[phy_idx++] = phyx;
+ np->mii_if.advertising = mdio_read(dev, phyx, MII_ADVERTISE);
if ((mii_status & 0x0040) == 0)
np->mii_preamble_required++;
printk(KERN_INFO "%s: MII PHY found at address %d, status "
"0x%4.4x advertising %4.4x.\n",
- dev->name, phy, mii_status, np->mii_if.advertising);
+ dev->name, phyx, mii_status, np->mii_if.advertising);
}
}
np->mii_preamble_required--;
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [patch 2.6.14-rc3] sundance: include MII address 0 in PHY probe
2005-10-19 12:07 ` [patch 2.6.14-rc3] sundance: include MII address 0 in PHY probe John W. Linville
@ 2005-10-20 14:07 ` Jeff Garzik
0 siblings, 0 replies; 10+ messages in thread
From: Jeff Garzik @ 2005-10-20 14:07 UTC (permalink / raw)
To: John W. Linville; +Cc: linux-kernel, netdev
John W. Linville wrote:
> Include MII address 0 at the end of the PHY scan. This covers the
> entire range of possible MII addresses.
>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
applied
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-10-20 14:07 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-19 1:31 [patch 2.6.14-rc3 0/3] misc fixes/cleanups for sundance John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 John W. Linville
2005-10-19 1:31 ` [patch 2.6.14-rc3 3/3] sundance: expand reset mask John W. Linville
2005-10-19 2:29 ` Jeff Garzik
2005-10-19 2:31 ` [patch 2.6.14-rc3 2/3] sundance: probe PHYs from MII address 0 Jeff Garzik
2005-10-19 12:00 ` John W. Linville
2005-10-19 12:07 ` [patch 2.6.14-rc3] sundance: include MII address 0 in PHY probe John W. Linville
2005-10-20 14:07 ` Jeff Garzik
2005-10-19 2:29 ` [patch 2.6.14-rc3 1/3] sundance: remove if (1) { ... } block in sundance_probe1 Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).