Use the more appropriate vm_paddr_t in places where a physical

address for DMA is handled instead of pointers.

Submitted by:	Joerg Sonneberger <joerg@britannica.bec.de>
This commit is contained in:
Hartmut Brandt 2004-02-21 19:08:23 +00:00
parent 056b9907de
commit 7563a29b85
8 changed files with 74 additions and 61 deletions

View File

@ -92,6 +92,7 @@ fore_buf_allocate(fup)
Fore_unit *fup;
{
caddr_t memp;
vm_paddr_t pmemp;
/*
* Allocate non-cacheable memory for buffer supply status words
@ -105,12 +106,17 @@ fore_buf_allocate(fup)
fup->fu_buf1s_stat = (Q_status *) memp;
fup->fu_buf1l_stat = ((Q_status *) memp) + BUF1_SM_QUELEN;
memp = (caddr_t)vtophys(fup->fu_buf1s_stat);
if (memp == NULL) {
pmemp = vtophys(fup->fu_buf1s_stat);
if (pmemp == 0) {
return (1);
}
fup->fu_buf1s_statd = (Q_status *) memp;
fup->fu_buf1l_statd = ((Q_status *) memp) + BUF1_SM_QUELEN;
fup->fu_buf1s_statd = pmemp;
pmemp = vtophys(fup->fu_buf1l_stat);
if (pmemp == 0) {
return (1);
}
fup->fu_buf1l_statd = pmemp;
/*
* Allocate memory for buffer supply descriptors
@ -126,13 +132,17 @@ fore_buf_allocate(fup)
fup->fu_buf1l_desc = ((Buf_descr *) memp) +
(BUF1_SM_QUELEN * BUF1_SM_ENTSIZE);
memp = (caddr_t)vtophys(fup->fu_buf1s_desc);
if (memp == NULL) {
pmemp = vtophys(fup->fu_buf1s_desc);
if (pmemp == 0) {
return (1);
}
fup->fu_buf1s_descd = (Buf_descr *) memp;
fup->fu_buf1l_descd = ((Buf_descr *) memp) +
(BUF1_SM_QUELEN * BUF1_SM_ENTSIZE);
fup->fu_buf1s_descd = pmemp;
pmemp = vtophys(fup->fu_buf1l_desc);
if (pmemp == 0) {
return (1);
}
fup->fu_buf1l_descd = pmemp;
return (0);
}
@ -160,9 +170,9 @@ fore_buf_initialize(fup)
Buf_queue *cqp;
H_buf_queue *hbp;
Buf_descr *bdp;
Buf_descr *bdp_dma;
vm_paddr_t bdp_dma;
Q_status *qsp;
Q_status *qsp_dma;
vm_paddr_t qsp_dma;
int i;
/*
@ -215,9 +225,9 @@ fore_buf_initialize(fup)
*/
hbp++;
qsp++;
qsp_dma++;
qsp_dma += sizeof(Q_status);
bdp += BUF1_SM_ENTSIZE;
bdp_dma += BUF1_SM_ENTSIZE;
bdp_dma += BUF1_SM_ENTSIZE * sizeof(Buf_descr);
cqp++;
}
@ -277,9 +287,9 @@ fore_buf_initialize(fup)
*/
hbp++;
qsp++;
qsp_dma++;
qsp_dma += sizeof(Q_status);
bdp += BUF1_LG_ENTSIZE;
bdp_dma += BUF1_LG_ENTSIZE;
bdp_dma += BUF1_LG_ENTSIZE * sizeof(Buf_descr);
cqp++;
}
@ -755,9 +765,9 @@ fore_buf_free(fup)
if (fup->fu_buf1s_stat) {
atm_dev_free((volatile void *)fup->fu_buf1s_stat);
fup->fu_buf1s_stat = NULL;
fup->fu_buf1s_statd = NULL;
fup->fu_buf1s_statd = 0;
fup->fu_buf1l_stat = NULL;
fup->fu_buf1l_statd = NULL;
fup->fu_buf1l_statd = 0;
}
/*
@ -766,9 +776,9 @@ fore_buf_free(fup)
if (fup->fu_buf1s_desc) {
atm_dev_free(fup->fu_buf1s_desc);
fup->fu_buf1s_desc = NULL;
fup->fu_buf1s_descd = NULL;
fup->fu_buf1s_descd = 0;
fup->fu_buf1l_desc = NULL;
fup->fu_buf1l_descd = NULL;
fup->fu_buf1l_descd = 0;
}
return;

View File

@ -92,6 +92,7 @@ fore_cmd_allocate(fup)
Fore_unit *fup;
{
caddr_t memp;
vm_paddr_t pmemp;
/*
* Allocate non-cacheable memory for command status words
@ -103,11 +104,11 @@ fore_cmd_allocate(fup)
}
fup->fu_cmd_stat = (Q_status *) memp;
memp = (caddr_t)vtophys(fup->fu_cmd_stat);
if (memp == NULL) {
pmemp = vtophys(fup->fu_cmd_stat);
if (pmemp == NULL) {
return (1);
}
fup->fu_cmd_statd = (Q_status *) memp;
fup->fu_cmd_statd = pmemp;
/*
* Allocate memory for statistics buffer
@ -153,7 +154,7 @@ fore_cmd_initialize(fup)
Cmd_queue *cqp;
H_cmd_queue *hcp;
Q_status *qsp;
Q_status *qsp_dma;
vm_paddr_t qsp_dma;
int i;
/*
@ -198,7 +199,7 @@ fore_cmd_initialize(fup)
*/
hcp++;
qsp++;
qsp_dma++;
qsp_dma += sizeof(Q_status);
cqp++;
}

View File

@ -360,8 +360,8 @@ fore_get_prom(fup)
cqp = hcp->hcq_cpelem;
(*hcp->hcq_status) = QSTAT_PENDING;
fup->fu_promd = (Fore_prom *)vtophys(fup->fu_prom);
if (fup->fu_promd == NULL) {
fup->fu_promd = vtophys(fup->fu_prom);
if (fup->fu_promd == 0) {
fup->fu_stats->st_drv.drv_cm_nodma++;
return;
}

View File

@ -264,7 +264,7 @@ fore_xmit_segment(fup, m, hxp, segp, lenp)
H_dma *sdmap;
KBuffer *m0, *m1, *mprev;
caddr_t cp, bfr;
void *dma;
vm_paddr_t dma;
int pdulen, nsegs, len, align;
int compressed = 0;
@ -404,7 +404,7 @@ fore_xmit_segment(fup, m, hxp, segp, lenp)
/*
* Get a DMA address for the data
*/
dma = (void *)vtophys(bfr);
dma = vtophys(bfr);
if (dma == NULL) {
fup->fu_stats->st_drv.drv_xm_segdma++;
fore_seg_dma_free(hxp, m0, nsegs);

View File

@ -87,6 +87,7 @@ fore_recv_allocate(fup)
Fore_unit *fup;
{
caddr_t memp;
vm_paddr_t pmemp;
/*
* Allocate non-cacheable memory for receive status words
@ -98,11 +99,11 @@ fore_recv_allocate(fup)
}
fup->fu_recv_stat = (Q_status *) memp;
memp = (caddr_t)vtophys(fup->fu_recv_stat);
if (memp == NULL) {
pmemp = vtophys(fup->fu_recv_stat);
if (pmemp == 0) {
return (1);
}
fup->fu_recv_statd = (Q_status *) memp;
fup->fu_recv_statd = pmemp;
/*
* Allocate memory for receive descriptors
@ -114,11 +115,11 @@ fore_recv_allocate(fup)
}
fup->fu_recv_desc = (Recv_descr *) memp;
memp = (caddr_t)vtophys(fup->fu_recv_desc);
if (memp == NULL) {
pmemp = vtophys(fup->fu_recv_desc);
if (pmemp == 0) {
return (1);
}
fup->fu_recv_descd = (Recv_descr *) memp;
fup->fu_recv_descd = pmemp;
return (0);
}
@ -146,9 +147,9 @@ fore_recv_initialize(fup)
Recv_queue *cqp;
H_recv_queue *hrp;
Recv_descr *rdp;
Recv_descr *rdp_dma;
vm_paddr_t rdp_dma;
Q_status *qsp;
Q_status *qsp_dma;
vm_paddr_t qsp_dma;
int i;
/*
@ -198,9 +199,9 @@ fore_recv_initialize(fup)
*/
hrp++;
qsp++;
qsp_dma++;
qsp_dma += sizeof(Q_status);
rdp++;
rdp_dma++;
rdp_dma += sizeof(Recv_descr);
cqp++;
}
@ -577,7 +578,7 @@ fore_recv_free(fup)
if (fup->fu_recv_stat) {
atm_dev_free((volatile void *)fup->fu_recv_stat);
fup->fu_recv_stat = NULL;
fup->fu_recv_statd = NULL;
fup->fu_recv_statd = 0;
}
/*
@ -586,7 +587,7 @@ fore_recv_free(fup)
if (fup->fu_recv_desc) {
atm_dev_free(fup->fu_recv_desc);
fup->fu_recv_desc = NULL;
fup->fu_recv_descd = NULL;
fup->fu_recv_descd = 0;
}
return;

View File

@ -130,7 +130,7 @@ fore_get_stats(fup)
*/
hcp = fup->fu_cmd_tail;
if ((*hcp->hcq_status) & QSTAT_FREE) {
void *dma;
vm_paddr_t dma;
/*
* Queue entry available, so set our view of things up
@ -146,7 +146,7 @@ fore_get_stats(fup)
cqp = hcp->hcq_cpelem;
(*hcp->hcq_status) = QSTAT_PENDING;
dma = (void *)vtophys(fup->fu_stats);
dma = vtophys(fup->fu_stats);
if (dma == NULL) {
fup->fu_stats->st_drv.drv_cm_nodma++;
(void) splx(s);

View File

@ -79,6 +79,7 @@ fore_xmit_allocate(fup)
Fore_unit *fup;
{
void *memp;
vm_paddr_t pmemp;
H_xmit_queue *hxp;
int i;
@ -92,11 +93,11 @@ fore_xmit_allocate(fup)
}
fup->fu_xmit_stat = (Q_status *) memp;
memp = (void *)vtophys(fup->fu_xmit_stat);
if (memp == NULL) {
pmemp = vtophys(fup->fu_xmit_stat);
if (pmemp == NULL) {
return (1);
}
fup->fu_xmit_statd = (Q_status *) memp;
fup->fu_xmit_statd = pmemp;
/*
* Allocate memory for transmit descriptors
@ -118,7 +119,7 @@ fore_xmit_allocate(fup)
return (1);
}
hxp->hxq_descr_dma = (Xmit_descr *)vtophys(hxp->hxq_descr);
hxp->hxq_descr_dma = vtophys(hxp->hxq_descr);
if (hxp->hxq_descr_dma == NULL) {
return (1);
}
@ -150,7 +151,7 @@ fore_xmit_initialize(fup)
Xmit_queue *cqp;
H_xmit_queue *hxp;
Q_status *qsp;
Q_status *qsp_dma;
vm_paddr_t qsp_dma;
int i;
/*
@ -195,7 +196,7 @@ fore_xmit_initialize(fup)
*/
hxp++;
qsp++;
qsp_dma++;
qsp_dma += sizeof(Q_status);
cqp++;
}

View File

@ -74,7 +74,7 @@ struct h_xmit_queue {
Xmit_queue *hxq_cpelem; /* CP queue element */
Q_status *hxq_status; /* Element status word */
Xmit_descr *hxq_descr; /* Element's transmit descriptor */
Xmit_descr *hxq_descr_dma; /* Element's transmit descriptor */
vm_paddr_t hxq_descr_dma; /* Element's transmit descriptor */
Fore_vcc *hxq_vcc; /* Data's VCC */
KBuffer *hxq_buf; /* Data's buffer chain head */
H_dma hxq_dma[XMIT_MAX_SEGS]; /* DMA addresses for segments */
@ -93,7 +93,7 @@ struct h_recv_queue {
Recv_queue *hrq_cpelem; /* CP queue element */
Q_status *hrq_status; /* Element status word */
Recv_descr *hrq_descr; /* Element's receive descriptor */
Recv_descr *hrq_descr_dma; /* Element's receive descriptor */
vm_paddr_t hrq_descr_dma; /* Element's receive descriptor */
};
typedef struct h_recv_queue H_recv_queue;
@ -109,7 +109,7 @@ struct h_buf_queue {
Buf_queue *hbq_cpelem; /* CP queue element */
Q_status *hbq_status; /* Element status word */
Buf_descr *hbq_descr; /* Element's buffer descriptor array */
Buf_descr *hbq_descr_dma; /* Element's buffer descriptor array */
vm_paddr_t hbq_descr_dma; /* Element's buffer descriptor array */
};
typedef struct h_buf_queue H_buf_queue;
@ -181,24 +181,24 @@ struct fore_unit {
H_xmit_queue *fu_xmit_head; /* Queue head */
H_xmit_queue *fu_xmit_tail; /* Queue tail */
Q_status *fu_xmit_stat; /* Status array (host) */
Q_status *fu_xmit_statd; /* Status array (DMA) */
vm_paddr_t fu_xmit_statd; /* Status array (DMA) */
/* Receive Queue */
H_recv_queue fu_recv_q[RECV_QUELEN]; /* Host queue */
H_recv_queue *fu_recv_head; /* Queue head */
Q_status *fu_recv_stat; /* Status array (host) */
Q_status *fu_recv_statd; /* Status array (DMA) */
vm_paddr_t fu_recv_statd; /* Status array (DMA) */
Recv_descr *fu_recv_desc; /* Descriptor array (host) */
Recv_descr *fu_recv_descd; /* Descriptor array (DMA) */
vm_paddr_t fu_recv_descd; /* Descriptor array (DMA) */
/* Buffer Supply Queue - Strategy 1 Small */
H_buf_queue fu_buf1s_q[BUF1_SM_QUELEN]; /* Host queue */
H_buf_queue *fu_buf1s_head; /* Queue head */
H_buf_queue *fu_buf1s_tail; /* Queue tail */
Q_status *fu_buf1s_stat; /* Status array (host) */
Q_status *fu_buf1s_statd;/* Status array (DMA) */
vm_paddr_t fu_buf1s_statd;/* Status array (DMA) */
Buf_descr *fu_buf1s_desc; /* Descriptor array (host) */
Buf_descr *fu_buf1s_descd;/* Descriptor array (DMA) */
vm_paddr_t fu_buf1s_descd;/* Descriptor array (DMA) */
Queue_t fu_buf1s_bq; /* Queue of supplied buffers */
u_int fu_buf1s_cnt; /* Count of supplied buffers */
@ -207,9 +207,9 @@ struct fore_unit {
H_buf_queue *fu_buf1l_head; /* Queue head */
H_buf_queue *fu_buf1l_tail; /* Queue tail */
Q_status *fu_buf1l_stat; /* Status array (host) */
Q_status *fu_buf1l_statd;/* Status array (DMA) */
vm_paddr_t fu_buf1l_statd;/* Status array (DMA) */
Buf_descr *fu_buf1l_desc; /* Descriptor array (host) */
Buf_descr *fu_buf1l_descd;/* Descriptor array (DMA) */
vm_paddr_t fu_buf1l_descd;/* Descriptor array (DMA) */
Queue_t fu_buf1l_bq; /* Queue of supplied buffers */
u_int fu_buf1l_cnt; /* Count of supplied buffers */
@ -218,14 +218,14 @@ struct fore_unit {
H_cmd_queue *fu_cmd_head; /* Queue head */
H_cmd_queue *fu_cmd_tail; /* Queue tail */
Q_status *fu_cmd_stat; /* Status array (host) */
Q_status *fu_cmd_statd; /* Status array (DMA) */
vm_paddr_t fu_cmd_statd; /* Status array (DMA) */
Fore_stats *fu_stats; /* Device statistics buffer */
Fore_stats *fu_statsd; /* Device statistics buffer (DMA) */
vm_paddr_t fu_statsd; /* Device statistics buffer (DMA) */
time_t fu_stats_time; /* Last stats request timestamp */
int fu_stats_ret; /* Stats request return code */
Fore_prom *fu_prom; /* Device PROM buffer */
Fore_prom *fu_promd; /* Device PROM buffer (DMA) */
vm_paddr_t fu_promd; /* Device PROM buffer (DMA) */
struct callout_handle fu_thandle; /* Timer handle */
int fu_ft4; /* Running ForeThought 4 firmware */