Deleted Added
full compact
if_ed_pccard.c (149696) if_ed_pccard.c (149832)
1/*-
2 * Copyright (c) 1995, David Greenman
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
1/*-
2 * Copyright (c) 1995, David Greenman
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
27 * $FreeBSD: head/sys/dev/ed/if_ed_pccard.c 149696 2005-09-01 20:08:24Z imp $
27 * $FreeBSD: head/sys/dev/ed/if_ed_pccard.c 149832 2005-09-06 22:44:26Z imp $
28 */
29
30#include "opt_ed.h"
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/socket.h>
35#include <sys/kernel.h>

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

102 struct pccard_product prod;
103 int flags;
104#define NE2000DVF_DL100XX 0x0001 /* chip is D-Link DL10019/22 */
105#define NE2000DVF_AX88X90 0x0002 /* chip is ASIX AX88[17]90 */
106#define NE2000DVF_ENADDR 0x0004 /* Get MAC from attr mem */
107#define NE2000DVF_ANYFUNC 0x0008 /* Allow any function type */
108#define NE2000DVF_MODEM 0x0010 /* Has a modem/serial */
109 int enoff;
28 */
29
30#include "opt_ed.h"
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/socket.h>
35#include <sys/kernel.h>

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

102 struct pccard_product prod;
103 int flags;
104#define NE2000DVF_DL100XX 0x0001 /* chip is D-Link DL10019/22 */
105#define NE2000DVF_AX88X90 0x0002 /* chip is ASIX AX88[17]90 */
106#define NE2000DVF_ENADDR 0x0004 /* Get MAC from attr mem */
107#define NE2000DVF_ANYFUNC 0x0008 /* Allow any function type */
108#define NE2000DVF_MODEM 0x0010 /* Has a modem/serial */
109 int enoff;
110 int edrid;
111 int siorid;
112} ed_pccard_products[] = {
113 { PCMCIA_CARD(ACCTON, EN2212), 0},
114 { PCMCIA_CARD(ACCTON, EN2216), 0},
115 { PCMCIA_CARD(ALLIEDTELESIS, LA_PCM), 0},
116 { PCMCIA_CARD(AMBICOM, AMB8002T), 0},
117 { PCMCIA_CARD(BILLIONTON, LNT10TN), 0},
118 { PCMCIA_CARD(BILLIONTON, CFLT10N), 0},
119 { PCMCIA_CARD(BROMAX, IPORT), 0},

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

141 { PCMCIA_CARD(DLINK, DE660PLUS), 0},
142 { PCMCIA_CARD(DLINK, DFE670TXD), NE2000DVF_DL100XX },
143 { PCMCIA_CARD(DYNALINK, L10C), 0},
144 { PCMCIA_CARD(EDIMAX, EP4000A), 0},
145 { PCMCIA_CARD(EPSON, EEN10B), 0},
146 { PCMCIA_CARD(EXP, THINLANCOMBO), 0},
147 { PCMCIA_CARD(GREY_CELL, TDK3000), 0},
148 { PCMCIA_CARD(GREY_CELL, DMF650TX),
110} ed_pccard_products[] = {
111 { PCMCIA_CARD(ACCTON, EN2212), 0},
112 { PCMCIA_CARD(ACCTON, EN2216), 0},
113 { PCMCIA_CARD(ALLIEDTELESIS, LA_PCM), 0},
114 { PCMCIA_CARD(AMBICOM, AMB8002T), 0},
115 { PCMCIA_CARD(BILLIONTON, LNT10TN), 0},
116 { PCMCIA_CARD(BILLIONTON, CFLT10N), 0},
117 { PCMCIA_CARD(BROMAX, IPORT), 0},

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

139 { PCMCIA_CARD(DLINK, DE660PLUS), 0},
140 { PCMCIA_CARD(DLINK, DFE670TXD), NE2000DVF_DL100XX },
141 { PCMCIA_CARD(DYNALINK, L10C), 0},
142 { PCMCIA_CARD(EDIMAX, EP4000A), 0},
143 { PCMCIA_CARD(EPSON, EEN10B), 0},
144 { PCMCIA_CARD(EXP, THINLANCOMBO), 0},
145 { PCMCIA_CARD(GREY_CELL, TDK3000), 0},
146 { PCMCIA_CARD(GREY_CELL, DMF650TX),
149 NE2000DVF_ANYFUNC | NE2000DVF_DL100XX | NE2000DVF_MODEM, -1, 1, 0},
147 NE2000DVF_ANYFUNC | NE2000DVF_DL100XX | NE2000DVF_MODEM},
150 { PCMCIA_CARD(IBM, HOME_AND_AWAY), 0},
151 { PCMCIA_CARD(IBM, INFOMOVER), NE2000DVF_ENADDR, 0xff0},
152 { PCMCIA_CARD(IODATA3, PCLAT), 0},
153 { PCMCIA_CARD(KINGSTON, CIO10T), 0},
154 { PCMCIA_CARD(KINGSTON, KNE2), 0},
155 { PCMCIA_CARD(LANTECH, FASTNETTX),NE2000DVF_AX88X90 },
156 { PCMCIA_CARD(LINKSYS, COMBO_ECARD),
157 NE2000DVF_DL100XX | NE2000DVF_AX88X90 },

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

246 if (romdata[12] != 0 || romdata[14] != 0)
247 return 0;
248 for (i = 0; i < ETHER_ADDR_LEN; i++)
249 enaddr[i] = romdata[i * 2];
250 return 1;
251}
252
253static int
148 { PCMCIA_CARD(IBM, HOME_AND_AWAY), 0},
149 { PCMCIA_CARD(IBM, INFOMOVER), NE2000DVF_ENADDR, 0xff0},
150 { PCMCIA_CARD(IODATA3, PCLAT), 0},
151 { PCMCIA_CARD(KINGSTON, CIO10T), 0},
152 { PCMCIA_CARD(KINGSTON, KNE2), 0},
153 { PCMCIA_CARD(LANTECH, FASTNETTX),NE2000DVF_AX88X90 },
154 { PCMCIA_CARD(LINKSYS, COMBO_ECARD),
155 NE2000DVF_DL100XX | NE2000DVF_AX88X90 },

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

244 if (romdata[12] != 0 || romdata[14] != 0)
245 return 0;
246 for (i = 0; i < ETHER_ADDR_LEN; i++)
247 enaddr[i] = romdata[i * 2];
248 return 1;
249}
250
251static int
254ed_pccard_add_modem(device_t dev, int rid)
252ed_pccard_add_modem(device_t dev)
255{
253{
256 device_printf(dev, "Need to write this code: modem rid is %d\n", rid);
254 struct ed_softc *sc = device_get_softc(dev);
255
256 device_printf(dev, "Need to write this code: modem rid is %d\n",
257 sc->modem_rid);
257 return 0;
258}
259
260static int
261ed_pccard_attach(device_t dev)
262{
263 u_char sum;
264 u_char enaddr[ETHER_ADDR_LEN];
265 const struct ed_product *pp;
266 int error, i;
267 struct ed_softc *sc = device_get_softc(dev);
258 return 0;
259}
260
261static int
262ed_pccard_attach(device_t dev)
263{
264 u_char sum;
265 u_char enaddr[ETHER_ADDR_LEN];
266 const struct ed_product *pp;
267 int error, i;
268 struct ed_softc *sc = device_get_softc(dev);
269 u_long size;
268
269 if ((pp = (const struct ed_product *) pccard_product_lookup(dev,
270 (const struct pccard_product *) ed_pccard_products,
271 sizeof(ed_pccard_products[0]), NULL)) == NULL)
272 return (ENXIO);
270
271 if ((pp = (const struct ed_product *) pccard_product_lookup(dev,
272 (const struct pccard_product *) ed_pccard_products,
273 sizeof(ed_pccard_products[0]), NULL)) == NULL)
274 return (ENXIO);
273 sc->port_rid = pp->edrid;
275 sc->modem_rid = -1;
276 if (pp->flags & NE2000DVF_MODEM) {
277 sc->port_rid = -1;
278 for (i = 0; i < 4; i++) {
279 size = bus_get_resource_count(dev, SYS_RES_IOPORT, i);
280 if (size == ED_NOVELL_IO_PORTS)
281 sc->port_rid = i;
282 else if (size == 8)
283 sc->modem_rid = i;
284 }
285 if (sc->port_rid == -1) {
286 device_printf(dev, "Cannot locate my ports!\n");
287 return (ENXIO);
288 }
289 } else {
290 sc->port_rid = 0;
291 }
274 if (pp->flags & NE2000DVF_DL100XX) {
275 error = ed_probe_Novell(dev, sc->port_rid, 0);
276 if (error == 0)
277 error = ed_pccard_Linksys(dev);
278 ed_release_resources(dev);
279 if (error == 0)
280 goto end2;
281 }

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

365 /* Probe for an MII bus, but ignore errors. */
366 ed_pccard_dlink_mii_reset(sc);
367 sc->mii_readbits = ed_pccard_dlink_mii_readbits;
368 sc->mii_writebits = ed_pccard_dlink_mii_writebits;
369 mii_phy_probe(dev, &sc->miibus, ed_ifmedia_upd,
370 ed_ifmedia_sts);
371 }
372#endif
292 if (pp->flags & NE2000DVF_DL100XX) {
293 error = ed_probe_Novell(dev, sc->port_rid, 0);
294 if (error == 0)
295 error = ed_pccard_Linksys(dev);
296 ed_release_resources(dev);
297 if (error == 0)
298 goto end2;
299 }

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

383 /* Probe for an MII bus, but ignore errors. */
384 ed_pccard_dlink_mii_reset(sc);
385 sc->mii_readbits = ed_pccard_dlink_mii_readbits;
386 sc->mii_writebits = ed_pccard_dlink_mii_writebits;
387 mii_phy_probe(dev, &sc->miibus, ed_ifmedia_upd,
388 ed_ifmedia_sts);
389 }
390#endif
373 if (pp->flags & NE2000DVF_MODEM)
374 ed_pccard_add_modem(dev, pp->siorid);
391 if (sc->modem_rid != -1)
392 ed_pccard_add_modem(dev);
375 return (0);
376}
377
378static void
379ax88x90_geteprom(struct ed_softc *sc)
380{
381 int prom[16],i;
382 u_char tmp;

--- 275 unchanged lines hidden ---
393 return (0);
394}
395
396static void
397ax88x90_geteprom(struct ed_softc *sc)
398{
399 int prom[16],i;
400 u_char tmp;

--- 275 unchanged lines hidden ---