|
Lines 184-189
static void re_driver_stop __P((struct re_sof
Link Here
|
| 184 |
|
184 |
|
| 185 |
static void re_hw_phy_config __P((struct re_softc *)); |
185 |
static void re_hw_phy_config __P((struct re_softc *)); |
| 186 |
static void re_init __P((void *)); |
186 |
static void re_init __P((void *)); |
|
|
187 |
static void re_init_locked __P((void *)); |
| 187 |
static int re_var_init __P((struct re_softc *)); |
188 |
static int re_var_init __P((struct re_softc *)); |
| 188 |
static void re_reset __P((struct re_softc *)); |
189 |
static void re_reset __P((struct re_softc *)); |
| 189 |
static void re_stop __P((struct re_softc *)); |
190 |
static void re_stop __P((struct re_softc *)); |
|
Lines 7077-7088
static void re_init_unlock(void *xsc) /* Software &
Link Here
|
| 7077 |
return; |
7078 |
return; |
| 7078 |
} |
7079 |
} |
| 7079 |
|
7080 |
|
| 7080 |
static void re_init(void *xsc) /* Software & Hardware Initialize */ |
7081 |
static void re_init_locked(void *xsc) /* Software & Hardware Initialize */ |
| 7081 |
{ |
7082 |
{ |
| 7082 |
struct re_softc *sc = xsc; |
7083 |
struct re_softc *sc = xsc; |
| 7083 |
struct ifnet *ifp; |
7084 |
struct ifnet *ifp; |
| 7084 |
|
7085 |
|
| 7085 |
RE_LOCK(sc); |
|
|
| 7086 |
ifp = RE_GET_IFNET(sc); |
7086 |
ifp = RE_GET_IFNET(sc); |
| 7087 |
|
7087 |
|
| 7088 |
if (re_link_ok(sc)) { |
7088 |
if (re_link_ok(sc)) { |
|
Lines 7093-7099
static void re_init(void *xsc) /* Software & Hardwar
Link Here
|
| 7093 |
|
7093 |
|
| 7094 |
sc->re_link_chg_det = 1; |
7094 |
sc->re_link_chg_det = 1; |
| 7095 |
re_start_timer(sc); |
7095 |
re_start_timer(sc); |
|
|
7096 |
} |
| 7096 |
|
7097 |
|
|
|
7098 |
static void re_init(void *xsc) /* Software & Hardware Initialize */ |
| 7099 |
{ |
| 7100 |
struct re_softc *sc = xsc; |
| 7101 |
|
| 7102 |
RE_LOCK(sc); |
| 7103 |
re_init_locked(sc); |
| 7097 |
RE_UNLOCK(sc); |
7104 |
RE_UNLOCK(sc); |
| 7098 |
} |
7105 |
} |
| 7099 |
|
7106 |
|
|
Lines 8442-8448
static void re_int_task(void *arg, int npending)
Link Here
|
| 8442 |
if ((status & RE_ISR_FIFO_OFLOW) && |
8449 |
if ((status & RE_ISR_FIFO_OFLOW) && |
| 8443 |
(!(status & (RE_ISR_RX_OK | RE_ISR_TX_OK | RE_ISR_RX_OVERRUN)))) { |
8450 |
(!(status & (RE_ISR_RX_OK | RE_ISR_TX_OK | RE_ISR_RX_OVERRUN)))) { |
| 8444 |
re_reset(sc); |
8451 |
re_reset(sc); |
| 8445 |
re_init(sc); |
8452 |
re_init_locked(sc); |
| 8446 |
sc->rx_fifo_overflow = 0; |
8453 |
sc->rx_fifo_overflow = 0; |
| 8447 |
CSR_WRITE_2(sc, RE_ISR, RE_ISR_FIFO_OFLOW); |
8454 |
CSR_WRITE_2(sc, RE_ISR, RE_ISR_FIFO_OFLOW); |
| 8448 |
} |
8455 |
} |
|
Lines 8453-8459
static void re_int_task(void *arg, int npending)
Link Here
|
| 8453 |
|
8460 |
|
| 8454 |
if (status & RE_ISR_SYSTEM_ERR) { |
8461 |
if (status & RE_ISR_SYSTEM_ERR) { |
| 8455 |
re_reset(sc); |
8462 |
re_reset(sc); |
| 8456 |
re_init(sc); |
8463 |
re_init_locked(sc); |
| 8457 |
} |
8464 |
} |
| 8458 |
|
8465 |
|
| 8459 |
switch(sc->re_type) { |
8466 |
switch(sc->re_type) { |
|
Lines 8518-8524
static void re_int_task_8125(void *arg, int npending)
Link Here
|
| 8518 |
|
8525 |
|
| 8519 |
if (status & RE_ISR_SYSTEM_ERR) { |
8526 |
if (status & RE_ISR_SYSTEM_ERR) { |
| 8520 |
re_reset(sc); |
8527 |
re_reset(sc); |
| 8521 |
re_init(sc); |
8528 |
re_init_locked(sc); |
| 8522 |
} |
8529 |
} |
| 8523 |
|
8530 |
|
| 8524 |
RE_UNLOCK(sc); |
8531 |
RE_UNLOCK(sc); |
|
Lines 8750-8756
caddr_t data;
Link Here
|
| 8750 |
error =re_alloc_buf(sc); |
8757 |
error =re_alloc_buf(sc); |
| 8751 |
|
8758 |
|
| 8752 |
if (error == 0) { |
8759 |
if (error == 0) { |
| 8753 |
re_init(sc); |
8760 |
re_init_locked(sc); |
| 8754 |
} |
8761 |
} |
| 8755 |
RE_UNLOCK(sc); |
8762 |
RE_UNLOCK(sc); |
| 8756 |
|
8763 |
|
|
Lines 8773-8779
caddr_t data;
Link Here
|
| 8773 |
case SIOCSIFFLAGS: |
8780 |
case SIOCSIFFLAGS: |
| 8774 |
RE_LOCK(sc); |
8781 |
RE_LOCK(sc); |
| 8775 |
if (ifp->if_flags & IFF_UP) { |
8782 |
if (ifp->if_flags & IFF_UP) { |
| 8776 |
re_init(sc); |
8783 |
re_init_locked(sc); |
| 8777 |
} else if (ifp->if_drv_flags & IFF_DRV_RUNNING) { |
8784 |
} else if (ifp->if_drv_flags & IFF_DRV_RUNNING) { |
| 8778 |
re_stop(sc); |
8785 |
re_stop(sc); |
| 8779 |
} |
8786 |
} |