summaryrefslogtreecommitdiffstats
path: root/sys/dev/pccard
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-01-07 08:08:54 +0000
committerimp <imp@FreeBSD.org>2001-01-07 08:08:54 +0000
commit4b7a126e06e4c8b7897d75aa7ee1d99a0e5e8060 (patch)
tree32fc6b708606cdec71aff03bf3112324db82ac56 /sys/dev/pccard
parent9abe30ef582d87f37c76e2c8d585353ff5a1af44 (diff)
downloadFreeBSD-src-4b7a126e06e4c8b7897d75aa7ee1d99a0e5e8060.zip
FreeBSD-src-4b7a126e06e4c8b7897d75aa7ee1d99a0e5e8060.tar.gz
Undo the interface change to CARD_GET_MEMORY_OFFSET. It wasn't tested
by even a compile of the OLDCARD code, was unapproved by me the keeper of OLDCARD and broke OLDCARD and the ray driver. Adjust new code to cope with the older interface. If the interface changes in the future, it ***MUST*** be cleared by me so that the OLDCARD impacts taken into account. It code in card_if.m is used jointly by both OLDCARD and NEWCARD.
Diffstat (limited to 'sys/dev/pccard')
-rw-r--r--sys/dev/pccard/card_if.m1
-rw-r--r--sys/dev/pccard/pccard.c16
2 files changed, 11 insertions, 6 deletions
diff --git a/sys/dev/pccard/card_if.m b/sys/dev/pccard/card_if.m
index f3813ee..7952b86 100644
--- a/sys/dev/pccard/card_if.m
+++ b/sys/dev/pccard/card_if.m
@@ -64,7 +64,6 @@ METHOD int set_memory_offset {
device_t child;
int rid;
u_int32_t cardaddr;
- u_int32_t *offsetp;
}
METHOD int get_memory_offset {
diff --git a/sys/dev/pccard/pccard.c b/sys/dev/pccard/pccard.c
index 6bbbd12..efa170e 100644
--- a/sys/dev/pccard/pccard.c
+++ b/sys/dev/pccard/pccard.c
@@ -391,6 +391,8 @@ pccard_function_enable(struct pccard_function *pf)
struct pccard_function *tmp;
int reg;
device_t dev = pf->sc->dev;
+ uint32_t addr;
+
if (pf->cfe == NULL) {
DEVPRVERBOSE((dev, "No config entry could be allocated.\n"));
return ENOMEM;
@@ -442,12 +444,16 @@ pccard_function_enable(struct pccard_function *pf)
&pf->ccr_rid, 0, ~0, 1 << 10, RF_ACTIVE);
if (!pf->ccr_res)
goto bad;
- DEVPRINTF((dev, "ccr_res == %lx-%lx, base=%lx\n", rman_get_start(pf->ccr_res), rman_get_end(pf->ccr_res), pf->ccr_base));
+ DEVPRINTF((dev, "ccr_res == %lx-%lx, base=%lx\n",
+ rman_get_start(pf->ccr_res), rman_get_end(pf->ccr_res),
+ pf->ccr_base));
CARD_SET_RES_FLAGS(device_get_parent(dev), dev, SYS_RES_MEMORY,
pf->ccr_rid, PCCARD_A_MEM_ATTR);
CARD_SET_MEMORY_OFFSET(device_get_parent(dev), dev,
- pf->ccr_rid, pf->ccr_base,
- &pf->pf_ccr_offset);
+ pf->ccr_rid, pf->ccr_base);
+ CARD_GET_MEMORY_OFFSET(device_get_parent(dev), dev,
+ pf->ccr_rid, &addr);
+ pf->pf_ccr_offset = pf->ccr_base - addr;
pf->pf_ccrt = rman_get_bustag(pf->ccr_res);
pf->pf_ccrh = rman_get_bushandle(pf->ccr_res);
pf->pf_ccr_realsize = 1;
@@ -835,11 +841,11 @@ pccard_set_res_flags(device_t dev, device_t child, int type, int rid,
static int
pccard_set_memory_offset(device_t dev, device_t child, int rid,
- u_int32_t offset, u_int32_t *offsetp)
+ u_int32_t offset)
{
return CARD_SET_MEMORY_OFFSET(device_get_parent(dev), child, rid,
- offset, offsetp);
+ offset);
}
static int
OpenPOWER on IntegriCloud