Deleted Added
full compact
ncr53c500_pccard.c (103691) ncr53c500_pccard.c (107362)
1/* $FreeBSD: head/sys/dev/ncv/ncr53c500_pccard.c 103691 2002-09-20 16:49:36Z phk $ */
1/* $FreeBSD: head/sys/dev/ncv/ncr53c500_pccard.c 107362 2002-11-28 01:13:58Z non $ */
2/* $NecBSD: ncr53c500_pisa.c,v 1.28 1998/11/26 01:59:11 honda Exp $ */
3/* $NetBSD$ */
4
5/*
6 * [Ported for FreeBSD]
7 * Copyright (c) 2000
8 * Noriaki Mitsunaga, Mitsuru Iwasaki and Takanori Watanabe.
9 * All rights reserved.

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

43#include <sys/errno.h>
44
45#include <machine/bus.h>
46#include <machine/bus_pio.h>
47#include <machine/dvcfg.h>
48
49#include <sys/device_port.h>
50
2/* $NecBSD: ncr53c500_pisa.c,v 1.28 1998/11/26 01:59:11 honda Exp $ */
3/* $NetBSD$ */
4
5/*
6 * [Ported for FreeBSD]
7 * Copyright (c) 2000
8 * Noriaki Mitsunaga, Mitsuru Iwasaki and Takanori Watanabe.
9 * All rights reserved.

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

43#include <sys/errno.h>
44
45#include <machine/bus.h>
46#include <machine/bus_pio.h>
47#include <machine/dvcfg.h>
48
49#include <sys/device_port.h>
50
51#include <dev/pccard/pccarddevs.h>
52#include <dev/pccard/pccardvar.h>
53
51#include <cam/scsi/scsi_low.h>
52#include <cam/scsi/scsi_low_pisa.h>
53
54#include <dev/ncv/ncr53c500reg.h>
55#include <dev/ncv/ncr53c500hw.h>
56#include <dev/ncv/ncr53c500var.h>
57
58#define KME_KXLC004_01 0x100

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

66#include <pccard/cardinfo.h>
67#include <pccard/slot.h>
68
69static int ncvprobe(DEVPORT_PDEVICE devi);
70static int ncvattach(DEVPORT_PDEVICE devi);
71
72static void ncv_card_unload(DEVPORT_PDEVICE);
73
54#include <cam/scsi/scsi_low.h>
55#include <cam/scsi/scsi_low_pisa.h>
56
57#include <dev/ncv/ncr53c500reg.h>
58#include <dev/ncv/ncr53c500hw.h>
59#include <dev/ncv/ncr53c500var.h>
60
61#define KME_KXLC004_01 0x100

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

69#include <pccard/cardinfo.h>
70#include <pccard/slot.h>
71
72static int ncvprobe(DEVPORT_PDEVICE devi);
73static int ncvattach(DEVPORT_PDEVICE devi);
74
75static void ncv_card_unload(DEVPORT_PDEVICE);
76
77static const struct ncv_product {
78 struct pccard_product prod;
79 int flags;
80} ncv_products[] = {
81 { PCMCIA_CARD(EPSON, SC200, 0), 0},
82 { PCMCIA_CARD(PANASONIC, KXLC002, 0), 0xb4d00000 },
83 { PCMCIA_CARD(PANASONIC, KXLC004, 0), 0xb4d00100 },
84 { PCMCIA_CARD(MACNICA, MPS100, 0), 0xb6250000 },
85 { PCMCIA_CARD(MACNICA, MPS110, 0), 0 },
86 { PCMCIA_CARD(NEC, PC9801N_J03R, 0), 0 },
87 { PCMCIA_CARD(NEWMEDIA, BASICS_SCSI, 0), 0 },
88 { PCMCIA_CARD(QLOGIC, PC05, 0), 0x84d00000 },
89#define FLAGS_REX5572 0x84d00000
90 { PCMCIA_CARD(RATOC, REX5572, 0), FLAGS_REX5572 },
91 { PCMCIA_CARD(RATOC, REX_R280, 0), 0x84d00000 },
92 { { NULL }, 0 }
93};
94
74/*
75 * Additional code for FreeBSD new-bus PCCard frontend
76 */
77
78static void
79ncv_pccard_intr(void * arg)
80{
81 ncvintr(arg);

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

175 if (sc->mem_res == NULL) {
176 ncv_release_resource(dev);
177 return(ENOMEM);
178 }
179
180 return(0);
181}
182
95/*
96 * Additional code for FreeBSD new-bus PCCard frontend
97 */
98
99static void
100ncv_pccard_intr(void * arg)
101{
102 ncvintr(arg);

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

196 if (sc->mem_res == NULL) {
197 ncv_release_resource(dev);
198 return(ENOMEM);
199 }
200
201 return(0);
202}
203
204static int ncv_pccard_match(device_t dev)
205{
206 const struct ncv_product *pp;
207 char *vendorstr;
208 char *prodstr;
209
210 if ((pp = (const struct ncv_product *) pccard_product_lookup(dev,
211 (const struct pccard_product *) ncv_products,
212 sizeof(ncv_products[0]), NULL)) != NULL) {
213 device_set_desc(dev, pp->prod.pp_name);
214 device_set_flags(dev, pp->flags);
215 return(0);
216 }
217 if (pccard_get_vendor_str(dev, &vendorstr))
218 return(EIO);
219 if (pccard_get_product_str(dev, &prodstr))
220 return(EIO);
221 if (strcmp(vendorstr, "RATOC System Inc.") == 0 &&
222 strncmp(prodstr, "SOUND/SCSI2 CARD", 16) == 0) {
223 device_set_desc(dev, "RATOC REX-5572");
224 device_set_flags(dev, FLAGS_REX5572);
225 return (0);
226 }
227 return(EIO);
228}
229
183static int
184ncv_pccard_probe(DEVPORT_PDEVICE dev)
185{
186 struct ncv_softc *sc = device_get_softc(dev);
187 int error;
188
189 bzero(sc, sizeof(struct ncv_softc));
190

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

233ncv_pccard_detach(DEVPORT_PDEVICE dev)
234{
235 ncv_card_unload(dev);
236 ncv_release_resource(dev);
237}
238
239static device_method_t ncv_pccard_methods[] = {
240 /* Device interface */
230static int
231ncv_pccard_probe(DEVPORT_PDEVICE dev)
232{
233 struct ncv_softc *sc = device_get_softc(dev);
234 int error;
235
236 bzero(sc, sizeof(struct ncv_softc));
237

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

280ncv_pccard_detach(DEVPORT_PDEVICE dev)
281{
282 ncv_card_unload(dev);
283 ncv_release_resource(dev);
284}
285
286static device_method_t ncv_pccard_methods[] = {
287 /* Device interface */
241 DEVMETHOD(device_probe, ncv_pccard_probe),
242 DEVMETHOD(device_attach, ncv_pccard_attach),
288 DEVMETHOD(device_probe, pccard_compat_probe),
289 DEVMETHOD(device_attach, pccard_compat_attach),
243 DEVMETHOD(device_detach, ncv_pccard_detach),
244
290 DEVMETHOD(device_detach, ncv_pccard_detach),
291
292 /* Card interface */
293 DEVMETHOD(card_compat_match, ncv_pccard_match),
294 DEVMETHOD(card_compat_probe, ncv_pccard_probe),
295 DEVMETHOD(card_compat_attach, ncv_pccard_attach),
296
245 { 0, 0 }
246};
247
248static driver_t ncv_pccard_driver = {
249 "ncv",
250 ncv_pccard_methods,
251 sizeof(struct ncv_softc),
252};

--- 63 unchanged lines hidden ---
297 { 0, 0 }
298};
299
300static driver_t ncv_pccard_driver = {
301 "ncv",
302 ncv_pccard_methods,
303 sizeof(struct ncv_softc),
304};

--- 63 unchanged lines hidden ---