* [2/3] via-rhine: de-isolate PHY
2004-08-08 14:02 [0/3] via-rhine: experimental patches Roger Luethi
@ 2004-08-08 14:02 ` Roger Luethi
0 siblings, 0 replies; 5+ messages in thread
From: Roger Luethi @ 2004-08-08 14:02 UTC (permalink / raw)
To: Jeff Garzik; +Cc: netdev, linux-kernel
PHYs may come up isolated. Make sure we can send data to them. This code
section needs a clean-up, but I prefer to merge this fix in isolation.
Report and suggested fix by Tam, Ming Dat (Tommy).
Signed-off-by: Roger Luethi <rl@hellgate.ch>
--- linux-2.6.8-rc3-mm1/drivers/net/via-rhine.c.01 2004-08-08 12:36:03.440855262 +0200
+++ linux-2.6.8-rc3-mm1/drivers/net/via-rhine.c 2004-08-08 13:15:24.527527919 +0200
@@ -896,7 +896,10 @@ static int __devinit rhine_init_one(stru
pci_set_drvdata(pdev, dev);
{
+ u16 mii_cmd;
int mii_status = mdio_read(dev, phy_id, 1);
+ mii_cmd = mdio_read(dev, phy_id, MII_BMCR) & ~BMCR_ISOLATE;
+ mdio_write(dev, phy_id, MII_BMCR, mii_cmd);
if (mii_status != 0xffff && mii_status != 0x0000) {
rp->mii_if.advertising = mdio_read(dev, phy_id, 4);
printk(KERN_INFO "%s: MII PHY found at address "
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [2/3] via-rhine: de-isolate PHY
@ 2004-08-08 19:53 Manfred Spraul
2004-08-08 20:05 ` Roger Luethi
0 siblings, 1 reply; 5+ messages in thread
From: Manfred Spraul @ 2004-08-08 19:53 UTC (permalink / raw)
To: Roger Luethi; +Cc: linux-kernel, Netdev
Roger wrote:
> PHYs may come up isolated. Make sure we can send data to them. This code
> section needs a clean-up, but I prefer to merge this fix in isolation.
>
What was the phyid value for the isolated PHYs?
I know that PHYs go into isolate mode if the startup id is wired to 0,
but I haven't figured out what's necessary to initialize them: Just
clear the isolate bit or is it necessary to set the id to a nonzero value.
--
Manfred
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [2/3] via-rhine: de-isolate PHY
2004-08-08 19:53 [2/3] via-rhine: de-isolate PHY Manfred Spraul
@ 2004-08-08 20:05 ` Roger Luethi
2004-08-08 21:04 ` Manfred Spraul
0 siblings, 1 reply; 5+ messages in thread
From: Roger Luethi @ 2004-08-08 20:05 UTC (permalink / raw)
To: Manfred Spraul; +Cc: linux-kernel, Netdev
[ BCCed reporter in case he wants to weigh in on the issue ]
On Sun, 08 Aug 2004 21:53:57 +0200, Manfred Spraul wrote:
> Roger wrote:
>
> >PHYs may come up isolated. Make sure we can send data to them. This code
> >section needs a clean-up, but I prefer to merge this fix in isolation.
> >
> What was the phyid value for the isolated PHYs?
I suspect it was 0, because another suggestion in the same message was to
start scanning at 0 rather than 1 (obsolete with current via-rhine code).
> I know that PHYs go into isolate mode if the startup id is wired to 0,
Wouldn't that be s/go/can go/ ?
> but I haven't figured out what's necessary to initialize them: Just
> clear the isolate bit or is it necessary to set the id to a nonzero value.
The proposed fix apparently worked for the PHY in question (LSI Logic
80225).
Roger
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [2/3] via-rhine: de-isolate PHY
2004-08-08 20:05 ` Roger Luethi
@ 2004-08-08 21:04 ` Manfred Spraul
2004-08-08 21:54 ` Roger Luethi
0 siblings, 1 reply; 5+ messages in thread
From: Manfred Spraul @ 2004-08-08 21:04 UTC (permalink / raw)
To: Roger Luethi; +Cc: linux-kernel, Netdev
Roger Luethi wrote:
>
>
>>I know that PHYs go into isolate mode if the startup id is wired to 0,
>>
>>
>
>Wouldn't that be s/go/can go/ ?
>
>
>
I don't have the MII standard, my knowledge is from the DP83840A specs:
The pin description contains a section about the phy ids:
During power up five pins are latched to determine the initial phy address.
Then the following sentence in bold: "An address selection of all zeros
(00000) will result in a PHY isolation condition".
I've reread the DP specs and I now think that your current patch is
sufficient:
The isolate state is independant from the phy address - a non-zero phy
can be in isolate mode and the phy zero can be non-isolated. The phy id
just sets the power-up value of the isolate bit: 0 means start isolated,
non-zero means start non-isolated.
If this is really true then handling phy 0 is trivial:
First scan 1-31. If nothing found: try 0. If a phy is found: clear the
isolate bit and then use phy 0.
--
Manfred
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [2/3] via-rhine: de-isolate PHY
2004-08-08 21:04 ` Manfred Spraul
@ 2004-08-08 21:54 ` Roger Luethi
0 siblings, 0 replies; 5+ messages in thread
From: Roger Luethi @ 2004-08-08 21:54 UTC (permalink / raw)
To: Manfred Spraul; +Cc: linux-kernel, Netdev
On Sun, 08 Aug 2004 23:04:06 +0200, Manfred Spraul wrote:
> Roger Luethi wrote:
> >>I know that PHYs go into isolate mode if the startup id is wired to 0,
> >
> >Wouldn't that be s/go/can go/ ?
> >
> I don't have the MII standard, my knowledge is from the DP83840A specs:
> The pin description contains a section about the phy ids:
> During power up five pins are latched to determine the initial phy address.
> Then the following sentence in bold: "An address selection of all zeros
> (00000) will result in a PHY isolation condition".
I suppose all PHYs do that. Even if they don't, though, I should be
safe as long as I de-isolate unconditionally (instead of testing for
phy_id==0).
> I've reread the DP specs and I now think that your current patch is
> sufficient:
> The isolate state is independant from the phy address - a non-zero phy
> can be in isolate mode and the phy zero can be non-isolated. The phy id
Stands to reason. A PHY that can't get out of isolation wouldn't be
very useful.
> If this is really true then handling phy 0 is trivial:
> First scan 1-31. If nothing found: try 0. If a phy is found: clear the
> isolate bit and then use phy 0.
Makes sense. The Rhine is actually pretty neat in that regard, I've
been able to drop the PHY scanning entirely.
Roger
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-08-08 21:54 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-08 19:53 [2/3] via-rhine: de-isolate PHY Manfred Spraul
2004-08-08 20:05 ` Roger Luethi
2004-08-08 21:04 ` Manfred Spraul
2004-08-08 21:54 ` Roger Luethi
-- strict thread matches above, loose matches on Subject: below --
2004-08-08 14:02 [0/3] via-rhine: experimental patches Roger Luethi
2004-08-08 14:02 ` [2/3] via-rhine: de-isolate PHY Roger Luethi
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).