2007-06-04 09:08:47

by Jesse Huang

[permalink] [raw]
Subject: [PATCH] sundance: PHY address form 0, only for device ID 0x0200 (IP100A)

From: Jesse Huang <[email protected]>

Change Logs:
Search PHY address form 0, only for device ID 0x0200 (IP100A). Other device are from PHY address 1.

Signed-off-by: Jesse Huang <[email protected]>
---

drivers/net/sundance.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

5724a72722dfc9cafbb8f273cb82dbf577bd9ad0
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index e1f912d..914ab29 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -562,7 +562,9 @@ #endif
* It seems some phys doesn't deal well with address 0 being accessed
* first, so leave address zero to the end of the loop (32 & 31).
*/
- for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
+ if(sundance_pci_tbl[np->chip_id].device == 0x0200) phy = 0;
+ else phy = 1;
+ for (; phy <= 32 && phy_idx < MII_CNT; phy++) {
int phyx = phy & 0x1f;
int mii_status = mdio_read(dev, phyx, MII_BMSR);
if (mii_status != 0xffff && mii_status != 0x0000) {
--
1.3.GIT




2007-06-04 16:02:21

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] sundance: PHY address form 0, only for device ID 0x0200 (IP100A)

On Mon, 04 Jun 2007 17:04:39 -0400 Jesse Huang wrote:

> From: Jesse Huang <[email protected]>
>
> Change Logs:
> Search PHY address form 0, only for device ID 0x0200 (IP100A). Other device are from PHY address 1.
>
> Signed-off-by: Jesse Huang <[email protected]>
> ---
>
> drivers/net/sundance.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> 5724a72722dfc9cafbb8f273cb82dbf577bd9ad0
> diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
> index e1f912d..914ab29 100644
> --- a/drivers/net/sundance.c
> +++ b/drivers/net/sundance.c
> @@ -562,7 +562,9 @@ #endif
> * It seems some phys doesn't deal well with address 0 being accessed
> * first, so leave address zero to the end of the loop (32 & 31).
> */
> - for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
> + if(sundance_pci_tbl[np->chip_id].device == 0x0200) phy = 0;

kernel style:
if (sundance_pci_tbl[np->chip_id].device == 0x0200)
phy = 0;
else
phy = 1;

> + else phy = 1;
> + for (; phy <= 32 && phy_idx < MII_CNT; phy++) {
> int phyx = phy & 0x1f;
> int mii_status = mdio_read(dev, phyx, MII_BMSR);
> if (mii_status != 0xffff && mii_status != 0x0000) {
> --


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***