Deleted Added
full compact
if_ed_rtl80x9.c (150957) if_ed_rtl80x9.c (151299)
1/*-
2 * Copyright (c) 2003, David Madole
3 * All rights reserved.
4 * Copyright (c) 2005, M. Warner Losh.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 17 unchanged lines hidden (view full) ---

26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * Based on patches subitted by: David Madole, edited by M. Warner Losh.
30 */
31
32
33#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2003, David Madole
3 * All rights reserved.
4 * Copyright (c) 2005, M. Warner Losh.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 17 unchanged lines hidden (view full) ---

26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * Based on patches subitted by: David Madole, edited by M. Warner Losh.
30 */
31
32
33#include <sys/cdefs.h>
34__FBSDID("$FreeBSD: head/sys/dev/ed/if_ed_rtl80x9.c 150957 2005-10-05 05:21:07Z imp $");
34__FBSDID("$FreeBSD: head/sys/dev/ed/if_ed_rtl80x9.c 151299 2005-10-13 22:06:02Z imp $");
35
36#include "opt_ed.h"
37
38#include <sys/param.h>
39#include <sys/systm.h>
40#include <sys/sockio.h>
41#include <sys/mbuf.h>
42#include <sys/kernel.h>

--- 27 unchanged lines hidden (view full) ---

70{
71 return (ifmedia_ioctl(sc->ifp, ifr, &sc->ifmedia, command));
72}
73
74int
75ed_probe_RTL80x9(device_t dev, int port_rid, int flags)
76{
77 struct ed_softc *sc = device_get_softc(dev);
35
36#include "opt_ed.h"
37
38#include <sys/param.h>
39#include <sys/systm.h>
40#include <sys/sockio.h>
41#include <sys/mbuf.h>
42#include <sys/kernel.h>

--- 27 unchanged lines hidden (view full) ---

70{
71 return (ifmedia_ioctl(sc->ifp, ifr, &sc->ifmedia, command));
72}
73
74int
75ed_probe_RTL80x9(device_t dev, int port_rid, int flags)
76{
77 struct ed_softc *sc = device_get_softc(dev);
78 char *ts;
78 int error;
79
80 if ((error = ed_alloc_port(dev, port_rid, ED_NOVELL_IO_PORTS)))
81 return (error);
82
79 int error;
80
81 if ((error = ed_alloc_port(dev, port_rid, ED_NOVELL_IO_PORTS)))
82 return (error);
83
83 if (!ed_probe_generic8390(sc))
84 return (ENXIO);
85
86 if (ed_nic_inb(sc, ED_P0_CR) & (ED_CR_PS0 | ED_CR_PS1))
87 ed_nic_outb(sc, ED_P0_CR, ED_CR_RD2 | ED_CR_STP);
88
89 if (ed_nic_inb(sc, ED_RTL80X9_80X9ID0) != ED_RTL80X9_ID0)
90 return (ENXIO);
91
92 switch (ed_nic_inb(sc, ED_RTL80X9_80X9ID1)) {
93 case ED_RTL8019_ID1:
94 sc->chip_type = ED_CHIP_TYPE_RTL8019;
84 if (ed_nic_inb(sc, ED_P0_CR) & (ED_CR_PS0 | ED_CR_PS1))
85 ed_nic_outb(sc, ED_P0_CR, ED_CR_RD2 | ED_CR_STP);
86
87 if (ed_nic_inb(sc, ED_RTL80X9_80X9ID0) != ED_RTL80X9_ID0)
88 return (ENXIO);
89
90 switch (ed_nic_inb(sc, ED_RTL80X9_80X9ID1)) {
91 case ED_RTL8019_ID1:
92 sc->chip_type = ED_CHIP_TYPE_RTL8019;
93 ts = "RTL8019";
95 break;
96 case ED_RTL8029_ID1:
97 sc->chip_type = ED_CHIP_TYPE_RTL8029;
94 break;
95 case ED_RTL8029_ID1:
96 sc->chip_type = ED_CHIP_TYPE_RTL8029;
97 ts = "RTL8029";
98 break;
99 default:
100 return (ENXIO);
101 }
102
103 sc->asic_offset = ED_NOVELL_ASIC_OFFSET;
104 sc->nic_offset = ED_NOVELL_NIC_OFFSET;
105
106 if ((error = ed_probe_Novell_generic(dev, flags)))
107 return (error);
108
98 break;
99 default:
100 return (ENXIO);
101 }
102
103 sc->asic_offset = ED_NOVELL_ASIC_OFFSET;
104 sc->nic_offset = ED_NOVELL_NIC_OFFSET;
105
106 if ((error = ed_probe_Novell_generic(dev, flags)))
107 return (error);
108
109 sc->type_str = ts;
109 sc->sc_media_ioctl = &ed_rtl80x9_media_ioctl;
110 ifmedia_init(&sc->ifmedia, 0, ed_rtl_set_media, ed_rtl_get_media);
111
112 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_T | IFM_FDX, 0, 0);
113 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_T, 0, 0);
114 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_2, 0, 0);
115 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_5, 0, 0);
116 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_AUTO, 0, 0);

--- 7 unchanged lines hidden (view full) ---

124 case ED_RTL80X9_CF2_10_5:
125 ifmedia_set(&sc->ifmedia, IFM_ETHER | IFM_10_5);
126 break;
127 case ED_RTL80X9_CF2_10_2:
128 ifmedia_set(&sc->ifmedia, IFM_ETHER | IFM_10_2);
129 break;
130 case ED_RTL80X9_CF2_10_T:
131 ifmedia_set(&sc->ifmedia, IFM_ETHER | IFM_10_T |
110 sc->sc_media_ioctl = &ed_rtl80x9_media_ioctl;
111 ifmedia_init(&sc->ifmedia, 0, ed_rtl_set_media, ed_rtl_get_media);
112
113 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_T | IFM_FDX, 0, 0);
114 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_T, 0, 0);
115 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_2, 0, 0);
116 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_10_5, 0, 0);
117 ifmedia_add(&sc->ifmedia, IFM_ETHER | IFM_AUTO, 0, 0);

--- 7 unchanged lines hidden (view full) ---

125 case ED_RTL80X9_CF2_10_5:
126 ifmedia_set(&sc->ifmedia, IFM_ETHER | IFM_10_5);
127 break;
128 case ED_RTL80X9_CF2_10_2:
129 ifmedia_set(&sc->ifmedia, IFM_ETHER | IFM_10_2);
130 break;
131 case ED_RTL80X9_CF2_10_T:
132 ifmedia_set(&sc->ifmedia, IFM_ETHER | IFM_10_T |
132 (ed_nic_inb(sc, ED_RTL80X9_CONFIG3)
133 & ED_RTL80X9_CF3_FUDUP) ? IFM_FDX : 0);
133 ((ed_nic_inb(sc, ED_RTL80X9_CONFIG3)
134 & ED_RTL80X9_CF3_FUDUP) ? IFM_FDX : 0));
134 break;
135 }
136 return (0);
137}
138
139static int
140ed_rtl_set_media(struct ifnet *ifp)
141{

--- 70 unchanged lines hidden ---
135 break;
136 }
137 return (0);
138}
139
140static int
141ed_rtl_set_media(struct ifnet *ifp)
142{

--- 70 unchanged lines hidden ---