2006-08-17 07:19:53

by Jesse Huang

[permalink] [raw]
Subject: [PATCH 4/6] IP100A Change search phy addr start form 0

From: Jesse Huang <[email protected]>

Change search phy addr start form 0

Change Logs:
Change search phy addr start form 0

---

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

212cd4ffa21a57300eae4254bf02e5b33b96f544
diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index 2bde1b3..f63871a 100755
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -21,7 +21,7 @@
*/

#define DRV_NAME "sundance"
-#define DRV_VERSION "1.01+LK1.13"
+#define DRV_VERSION "1.01+LK1.14"
#define DRV_RELDATE "04-Aug-2006"


@@ -559,8 +559,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 IP100A the phy should start from 0
*/
- for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
+ for (phy = 0; 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




2006-08-18 11:20:26

by Jeff Garzik

[permalink] [raw]
Subject: Re: [PATCH 4/6] IP100A Change search phy addr start form 0

Jesse Huang wrote:
> From: Jesse Huang <[email protected]>
>
> Change search phy addr start form 0
>
> Change Logs:
> Change search phy addr start form 0
>
> ---
>
> drivers/net/sundance.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> 212cd4ffa21a57300eae4254bf02e5b33b96f544
> diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
> index 2bde1b3..f63871a 100755
> --- a/drivers/net/sundance.c
> +++ b/drivers/net/sundance.c
> @@ -21,7 +21,7 @@
> */
>
> #define DRV_NAME "sundance"
> -#define DRV_VERSION "1.01+LK1.13"
> +#define DRV_VERSION "1.01+LK1.14"
> #define DRV_RELDATE "04-Aug-2006"
>
>
> @@ -559,8 +559,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 IP100A the phy should start from 0
> */
> - for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
> + for (phy = 0; 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) {

For IP100A, is the phy built into the chip?

For a standard DP83840[A] phy, phy #0 is a "ghost" which mirrors another
phy. For this reason, we scan phy #0 last.

Does the above code not work?

Jeff


2006-08-21 05:40:42

by Jesse Huang

[permalink] [raw]
Subject: Re: [PATCH 4/6] IP100A Change search phy addr start form 0

Hi Jeff:

In IP100A, phy address is 0. Because IP100A is a single chip, the in
chip phy address is 0. so, we must search phy address for 0.

Jesse
----- Original Message -----
From: "Jeff Garzik" <[email protected]>
To: "Jesse Huang" <[email protected]>
Cc: <[email protected]>; <[email protected]>;
<[email protected]>
Sent: Friday, August 18, 2006 7:20 PM
Subject: Re: [PATCH 4/6] IP100A Change search phy addr start form 0


Jesse Huang wrote:
> From: Jesse Huang <[email protected]>
>
> Change search phy addr start form 0
>
> Change Logs:
> Change search phy addr start form 0
>
> ---
>
> drivers/net/sundance.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> 212cd4ffa21a57300eae4254bf02e5b33b96f544
> diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
> index 2bde1b3..f63871a 100755
> --- a/drivers/net/sundance.c
> +++ b/drivers/net/sundance.c
> @@ -21,7 +21,7 @@
> */
>
> #define DRV_NAME "sundance"
> -#define DRV_VERSION "1.01+LK1.13"
> +#define DRV_VERSION "1.01+LK1.14"
> #define DRV_RELDATE "04-Aug-2006"
>
>
> @@ -559,8 +559,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 IP100A the phy should start from 0
> */
> - for (phy = 1; phy <= 32 && phy_idx < MII_CNT; phy++) {
> + for (phy = 0; 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) {

For IP100A, is the phy built into the chip?

For a standard DP83840[A] phy, phy #0 is a "ghost" which mirrors another
phy. For this reason, we scan phy #0 last.

Does the above code not work?

Jeff