[PATCH] 3c59x: carriercheck for forced media
Handle netif_carrier_{on,of} also if media is forced to 10baseT/100baseTx. Signed-off-by: Steffen Klassert <klassert@mathematik.tu-chemnitz.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
b4ff6450f5
commit
e94d10eb0d
@@ -1907,8 +1907,6 @@ vortex_timer(unsigned long data)
|
|||||||
printk(KERN_DEBUG "dev->watchdog_timeo=%d\n", dev->watchdog_timeo);
|
printk(KERN_DEBUG "dev->watchdog_timeo=%d\n", dev->watchdog_timeo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vp->medialock)
|
|
||||||
goto leave_media_alone;
|
|
||||||
disable_irq(dev->irq);
|
disable_irq(dev->irq);
|
||||||
old_window = ioread16(ioaddr + EL3_CMD) >> 13;
|
old_window = ioread16(ioaddr + EL3_CMD) >> 13;
|
||||||
EL3WINDOW(4);
|
EL3WINDOW(4);
|
||||||
@@ -1947,6 +1945,9 @@ vortex_timer(unsigned long data)
|
|||||||
if (!netif_carrier_ok(dev))
|
if (!netif_carrier_ok(dev))
|
||||||
next_tick = 5*HZ;
|
next_tick = 5*HZ;
|
||||||
|
|
||||||
|
if (vp->medialock)
|
||||||
|
goto leave_media_alone;
|
||||||
|
|
||||||
if ( ! ok) {
|
if ( ! ok) {
|
||||||
unsigned int config;
|
unsigned int config;
|
||||||
|
|
||||||
@@ -1980,14 +1981,14 @@ vortex_timer(unsigned long data)
|
|||||||
printk(KERN_DEBUG "wrote 0x%08x to Wn3_Config\n", config);
|
printk(KERN_DEBUG "wrote 0x%08x to Wn3_Config\n", config);
|
||||||
/* AKPM: FIXME: Should reset Rx & Tx here. P60 of 3c90xc.pdf */
|
/* AKPM: FIXME: Should reset Rx & Tx here. P60 of 3c90xc.pdf */
|
||||||
}
|
}
|
||||||
EL3WINDOW(old_window);
|
|
||||||
enable_irq(dev->irq);
|
|
||||||
|
|
||||||
leave_media_alone:
|
leave_media_alone:
|
||||||
if (vortex_debug > 2)
|
if (vortex_debug > 2)
|
||||||
printk(KERN_DEBUG "%s: Media selection timer finished, %s.\n",
|
printk(KERN_DEBUG "%s: Media selection timer finished, %s.\n",
|
||||||
dev->name, media_tbl[dev->if_port].name);
|
dev->name, media_tbl[dev->if_port].name);
|
||||||
|
|
||||||
|
EL3WINDOW(old_window);
|
||||||
|
enable_irq(dev->irq);
|
||||||
mod_timer(&vp->timer, RUN_AT(next_tick));
|
mod_timer(&vp->timer, RUN_AT(next_tick));
|
||||||
if (vp->deferred)
|
if (vp->deferred)
|
||||||
iowrite16(FakeIntr, ioaddr + EL3_CMD);
|
iowrite16(FakeIntr, ioaddr + EL3_CMD);
|
||||||
|
Reference in New Issue
Block a user