* Patch for link detection for R8169
@ 2005-09-06 14:32 Miroslaw Mieszczak
2005-09-06 14:46 ` Matthieu CASTET
2005-09-06 19:46 ` Francois Romieu
0 siblings, 2 replies; 11+ messages in thread
From: Miroslaw Mieszczak @ 2005-09-06 14:32 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 179 bytes --]
There is a patch to driver of RLT8169 network card. This match make
possible detection of the link status even if network interface is down.
This is usefull for laptop users.
[-- Attachment #2: r8169.diff --]
[-- Type: text/plain, Size: 1442 bytes --]
--- r8169.c 2005-09-02 15:34:52.000000000 +0200
+++ linux/drivers/net/r8169.c 2005-09-05 21:11:15.000000000 +0200
@@ -538,14 +538,27 @@
static unsigned int rtl8169_tbi_link_ok(void __iomem *ioaddr)
{
- return RTL_R32(TBICSR) & TBILinkOk;
+ return (RTL_R32(TBICSR) & TBILinkOk) == TBILinkOk ? 1:0;
}
static unsigned int rtl8169_xmii_link_ok(void __iomem *ioaddr)
{
- return RTL_R8(PHYstatus) & LinkStatus;
+ return (RTL_R8(PHYstatus) & LinkStatus) == LinkStatus ? 1:0;
}
+static u32 rtl8169_get_link(struct net_device *dev)
+{
+ struct rtl8169_private *np = netdev_priv(dev);
+ unsigned int result;
+ unsigned long flags;
+
+ spin_lock_irqsave(&np->lock, flags);
+ result = np->link_ok(np->mmio_addr);
+ spin_unlock_irqrestore(&np->lock, flags);
+ return result;
+}
+
+
static void rtl8169_tbi_reset_enable(void __iomem *ioaddr)
{
RTL_W32(TBICSR, RTL_R32(TBICSR) | TBIReset);
@@ -577,6 +590,8 @@
spin_unlock_irqrestore(&tp->lock, flags);
}
+
+
static void rtl8169_link_option(int idx, u8 *autoneg, u16 *speed, u8 *duplex)
{
struct {
@@ -1010,7 +1025,7 @@
static struct ethtool_ops rtl8169_ethtool_ops = {
.get_drvinfo = rtl8169_get_drvinfo,
.get_regs_len = rtl8169_get_regs_len,
- .get_link = ethtool_op_get_link,
+ .get_link = rtl8169_get_link,/* ethtool_op_get_link,*/
.get_settings = rtl8169_get_settings,
.set_settings = rtl8169_set_settings,
.get_msglevel = rtl8169_get_msglevel,
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Patch for link detection for R8169
2005-09-06 14:32 Patch for link detection for R8169 Miroslaw Mieszczak
@ 2005-09-06 14:46 ` Matthieu CASTET
2005-09-06 19:46 ` Francois Romieu
1 sibling, 0 replies; 11+ messages in thread
From: Matthieu CASTET @ 2005-09-06 14:46 UTC (permalink / raw)
To: linux-kernel
Le Tue, 06 Sep 2005 16:32:39 +0200, Miroslaw Mieszczak a écrit :
> There is a patch to driver of RLT8169 network card. This match make
> possible detection of the link status even if network interface is down.
> This is usefull for laptop users.
>
>
>
> --- r8169.c 2005-09-02 15:34:52.000000000 +0200
> +++ linux/drivers/net/r8169.c 2005-09-05 21:11:15.000000000 +0200
> @@ -538,14 +538,27 @@
>
> static unsigned int rtl8169_tbi_link_ok(void __iomem *ioaddr)
> {
> - return RTL_R32(TBICSR) & TBILinkOk;
> + return (RTL_R32(TBICSR) & TBILinkOk) == TBILinkOk ? 1:0;
> }
>
> static unsigned int rtl8169_xmii_link_ok(void __iomem *ioaddr)
> {
> - return RTL_R8(PHYstatus) & LinkStatus;
> + return (RTL_R8(PHYstatus) & LinkStatus) == LinkStatus ? 1:0;
> }
>
(a==b)?1:0 is stupid just use (a==b) ...
And in this case I am sure we care only if it is null or non-null,
so there no need to change that...
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: Patch for link detection for R8169
2005-09-06 14:32 Patch for link detection for R8169 Miroslaw Mieszczak
2005-09-06 14:46 ` Matthieu CASTET
@ 2005-09-06 19:46 ` Francois Romieu
2005-09-06 20:02 ` Valdis.Kletnieks
2005-09-07 1:56 ` Jeff Garzik
1 sibling, 2 replies; 11+ messages in thread
From: Francois Romieu @ 2005-09-06 19:46 UTC (permalink / raw)
To: Miroslaw Mieszczak; +Cc: jgarzik, linux-kernel
Miroslaw Mieszczak <mieszcz@zabrze.zigzag.pl> :
> There is a patch to driver of RLT8169 network card. This match make
> possible detection of the link status even if network interface is down.
> This is usefull for laptop users.
(side note: there is maintainer entry for the r8169 and network related
patches are welcome on netdev@vger.kernel.org)
Can you elaborate why it is usefull for laptop users ?
I am sceptical: tg3/bn2x/skge do not seem to allow it either.
Jeff, is it a requirement ?
--
Ueimor
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-06 19:46 ` Francois Romieu
@ 2005-09-06 20:02 ` Valdis.Kletnieks
2005-09-06 20:42 ` Francois Romieu
2005-09-07 1:56 ` Jeff Garzik
1 sibling, 1 reply; 11+ messages in thread
From: Valdis.Kletnieks @ 2005-09-06 20:02 UTC (permalink / raw)
To: Francois Romieu; +Cc: Miroslaw Mieszczak, jgarzik, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1141 bytes --]
On Tue, 06 Sep 2005 21:46:02 +0200, Francois Romieu said:
> Miroslaw Mieszczak <mieszcz@zabrze.zigzag.pl> :
> > There is a patch to driver of RLT8169 network card. This match make
> > possible detection of the link status even if network interface is down.
> > This is usefull for laptop users.
>
> (side note: there is maintainer entry for the r8169 and network related
> patches are welcome on netdev@vger.kernel.org)
>
> Can you elaborate why it is usefull for laptop users ?
Desktops and rack mounts you tend to leave that RJ45 plugged into the back
all the time. As a result, "no link" is a rare error condition.
On the other hand, laptops are often sitting around with no RJ45 in sight.
Being able to detect "card present but no cable plugged in" can be useful in
startup scripts and the like, so you can do something like
if [ link-is-up eth3 ];
then
ifup eth3;
fi
and avoid throwing nasty error messages (and even worse, timeouts) trying to
bring up the card if there's nothing plugged in. There's no sense in trying to
do the whole DHCP thing (or whatever you need to do) if you can tell beforehand
that it will fail....
[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-06 20:02 ` Valdis.Kletnieks
@ 2005-09-06 20:42 ` Francois Romieu
2005-09-06 20:59 ` Valdis.Kletnieks
2005-09-07 14:45 ` Miroslaw Mieszczak
0 siblings, 2 replies; 11+ messages in thread
From: Francois Romieu @ 2005-09-06 20:42 UTC (permalink / raw)
To: Valdis.Kletnieks; +Cc: Miroslaw Mieszczak, jgarzik, linux-kernel
Valdis.Kletnieks@vt.edu <Valdis.Kletnieks@vt.edu> :
[...]
Ok, thanks for the hint.
Currently one can do 'ifconfig ethX up', check the link status, then try
to DHCP or whatever. Apparently a few drivers do not support tne detection
of link as presented above. So is it anything like a vendor requirement/a
standard (or should it be the new right way (TM)) or does the userspace
needs fixing wrt its expectation ?
The lack of irq means that netif_carrier_on/off can not be reliable until
the device is up. It is a bit worrying.
--
Ueimor
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-06 20:42 ` Francois Romieu
@ 2005-09-06 20:59 ` Valdis.Kletnieks
2005-09-06 21:15 ` Francois Romieu
2005-09-07 14:45 ` Miroslaw Mieszczak
1 sibling, 1 reply; 11+ messages in thread
From: Valdis.Kletnieks @ 2005-09-06 20:59 UTC (permalink / raw)
To: Francois Romieu; +Cc: Miroslaw Mieszczak, jgarzik, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 943 bytes --]
On Tue, 06 Sep 2005 22:42:21 +0200, Francois Romieu said:
> Currently one can do 'ifconfig ethX up', check the link status, then try
> to DHCP or whatever. Apparently a few drivers do not support tne detection
> of link as presented above. So is it anything like a vendor requirement/a
> standard (or should it be the new right way (TM)) or does the userspace
> needs fixing wrt its expectation ?
The "ifconfig up then check link status" method is probably usable for the
vast majority of cases. Are there any driver/card combos that *can't* be fixed
to support that? (A somewhat hidden side effect is that if you're doing this,
the driver also needs to be able to support additional ifconfig calls later
to set encapsulation, address/netmask, and the like. I've run across dain-bramaged
older hardware/software (not Linux-based) that would require an 'ifconfig down'
followed by 'ifconfig foo <value> bar <value> up' to change stuff....
[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-06 20:59 ` Valdis.Kletnieks
@ 2005-09-06 21:15 ` Francois Romieu
0 siblings, 0 replies; 11+ messages in thread
From: Francois Romieu @ 2005-09-06 21:15 UTC (permalink / raw)
To: Valdis.Kletnieks; +Cc: Miroslaw Mieszczak, jgarzik, linux-kernel
Valdis.Kletnieks@vt.edu <Valdis.Kletnieks@vt.edu> :
> On Tue, 06 Sep 2005 22:42:21 +0200, Francois Romieu said:
>
> > Currently one can do 'ifconfig ethX up', check the link status, then try
> > to DHCP or whatever. Apparently a few drivers do not support tne detection
> > of link as presented above. So is it anything like a vendor requirement/a
> > standard (or should it be the new right way (TM)) or does the userspace
> > needs fixing wrt its expectation ?
>
> The "ifconfig up then check link status" method is probably usable for the
> vast majority of cases. Are there any driver/card combos that *can't* be
> fixed to support that? (A somewhat hidden side effect is that if you're
I meant "as presented above" == "check the link while the network device
is down".
--
Ueimor
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-06 20:42 ` Francois Romieu
2005-09-06 20:59 ` Valdis.Kletnieks
@ 2005-09-07 14:45 ` Miroslaw Mieszczak
2005-09-07 18:17 ` Francois Romieu
1 sibling, 1 reply; 11+ messages in thread
From: Miroslaw Mieszczak @ 2005-09-07 14:45 UTC (permalink / raw)
To: Francois Romieu; +Cc: Valdis.Kletnieks, jgarzik, linux-kernel
Francois Romieu napisał(a):
>Valdis.Kletnieks@vt.edu <Valdis.Kletnieks@vt.edu> :
>[...]
>
>Ok, thanks for the hint.
>
>Currently one can do 'ifconfig ethX up', check the link status, then try
>to DHCP or whatever. Apparently a few drivers do not support tne detection
>of link as presented above. So is it anything like a vendor requirement/a
>standard (or should it be the new right way (TM)) or does the userspace
>needs fixing wrt its expectation ?
>
>
The main problem with this driver is, that if I do like this, then every
10 seconds I receive new message from the network card in kernel log.
There is following message:
Sep 4 16:31:43 laptop_mirka eth0: PHY reset until link up
Sep 4 16:31:53 laptop_mirka eth0: PHY reset until link up
Do you think, that this is correct way t do the things? I
In my opinion, the solution, that link status can be checked (if
hardware allow this) when interface is down is more usefull.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-07 14:45 ` Miroslaw Mieszczak
@ 2005-09-07 18:17 ` Francois Romieu
[not found] ` <43207052.3030403@zabrze.zigzag.pl>
0 siblings, 1 reply; 11+ messages in thread
From: Francois Romieu @ 2005-09-07 18:17 UTC (permalink / raw)
To: Miroslaw Mieszczak; +Cc: Valdis.Kletnieks, jgarzik, linux-kernel
Miroslaw Mieszczak <mieszcz@zabrze.zigzag.pl> :
[...]
> The main problem with this driver is, that if I do like this, then every
> 10 seconds I receive new message from the network card in kernel log.
> There is following message:
>
> Sep 4 16:31:43 laptop_mirka eth0: PHY reset until link up
> Sep 4 16:31:53 laptop_mirka eth0: PHY reset until link up
You can silence this message in 2.6.13 by using the 'msglvl'
option of the ethtool command.
> Do you think, that this is correct way t do the things?
You would not believe how arrogant I can be :o)
More seriously, does there remain any issue for you wrt the
usability of the r8169 driver ?
--
Ueimor
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Patch for link detection for R8169
2005-09-06 19:46 ` Francois Romieu
2005-09-06 20:02 ` Valdis.Kletnieks
@ 2005-09-07 1:56 ` Jeff Garzik
1 sibling, 0 replies; 11+ messages in thread
From: Jeff Garzik @ 2005-09-07 1:56 UTC (permalink / raw)
To: Francois Romieu; +Cc: Miroslaw Mieszczak, linux-kernel, Netdev List
Francois Romieu wrote:
> Miroslaw Mieszczak <mieszcz@zabrze.zigzag.pl> :
>
>>There is a patch to driver of RLT8169 network card. This match make
>>possible detection of the link status even if network interface is down.
>>This is usefull for laptop users.
>
>
> (side note: there is maintainer entry for the r8169 and network related
> patches are welcome on netdev@vger.kernel.org)
>
> Can you elaborate why it is usefull for laptop users ?
>
> I am sceptical: tg3/bn2x/skge do not seem to allow it either.
>
> Jeff, is it a requirement ?
Generally most drivers power down hardware, MAC at least, when the
interface is down. As such, many drivers do not (cannot), as written,
report any useful link information.
IF the phy is not powered down, when the interface goes down, and IF
hardware permits, it would certainly be nice to report link state when
interface is down. This is a hardware-dependent, driver-dependent choice.
Jeff
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2005-09-08 23:55 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-06 14:32 Patch for link detection for R8169 Miroslaw Mieszczak
2005-09-06 14:46 ` Matthieu CASTET
2005-09-06 19:46 ` Francois Romieu
2005-09-06 20:02 ` Valdis.Kletnieks
2005-09-06 20:42 ` Francois Romieu
2005-09-06 20:59 ` Valdis.Kletnieks
2005-09-06 21:15 ` Francois Romieu
2005-09-07 14:45 ` Miroslaw Mieszczak
2005-09-07 18:17 ` Francois Romieu
[not found] ` <43207052.3030403@zabrze.zigzag.pl>
2005-09-08 23:49 ` Francois Romieu
2005-09-07 1:56 ` Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox