summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/powermac
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2008-10-27 23:11:14 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2008-10-27 23:11:14 +0000
commit3dde3e513b6cbdb38aaa7a00356615eda15f4d15 (patch)
tree4385e3f3d59eac0526c4c2f98a3a3a306e970b79 /sys/powerpc/powermac
parent02d073e051fe2208425a0a96382ecaca344a369f (diff)
downloadFreeBSD-src-3dde3e513b6cbdb38aaa7a00356615eda15f4d15.zip
FreeBSD-src-3dde3e513b6cbdb38aaa7a00356615eda15f4d15.tar.gz
Clean up some magic numbers in the DBDMA code by replacing them with
appropriately defined constants. Suggested by: gnn
Diffstat (limited to 'sys/powerpc/powermac')
-rw-r--r--sys/powerpc/powermac/dbdma.c29
-rw-r--r--sys/powerpc/powermac/dbdmavar.h2
2 files changed, 20 insertions, 11 deletions
diff --git a/sys/powerpc/powermac/dbdma.c b/sys/powerpc/powermac/dbdma.c
index ebc0122..1172606 100644
--- a/sys/powerpc/powermac/dbdma.c
+++ b/sys/powerpc/powermac/dbdma.c
@@ -93,7 +93,7 @@ int
dbdma_resize_channel(dbdma_channel_t *chan, int newslots)
{
- if (newslots > (PAGE_SIZE / 16))
+ if (newslots > (PAGE_SIZE / sizeof(struct dbdma_command)))
return (-1);
chan->sc_nslots = newslots;
@@ -159,7 +159,8 @@ dbdma_run(dbdma_channel_t *chan)
control_reg = DBDMA_STATUS_RUN | DBDMA_STATUS_PAUSE |
DBDMA_STATUS_WAKE | DBDMA_STATUS_DEAD;
- control_reg <<= 16;
+ control_reg <<= DBDMA_REG_MASK_SHIFT;
+
control_reg |= DBDMA_STATUS_RUN;
dbdma_write_reg(chan, CHAN_CONTROL_REG, control_reg);
}
@@ -170,7 +171,8 @@ dbdma_pause(dbdma_channel_t *chan)
uint32_t control_reg;
control_reg = DBDMA_STATUS_PAUSE;
- control_reg <<= 16;
+ control_reg <<= DBDMA_REG_MASK_SHIFT;
+
control_reg |= DBDMA_STATUS_PAUSE;
dbdma_write_reg(chan, CHAN_CONTROL_REG, control_reg);
}
@@ -182,7 +184,8 @@ dbdma_wake(dbdma_channel_t *chan)
control_reg = DBDMA_STATUS_WAKE | DBDMA_STATUS_PAUSE |
DBDMA_STATUS_RUN | DBDMA_STATUS_DEAD;
- control_reg <<= 16;
+ control_reg <<= DBDMA_REG_MASK_SHIFT;
+
control_reg |= DBDMA_STATUS_WAKE | DBDMA_STATUS_RUN;
dbdma_write_reg(chan, CHAN_CONTROL_REG, control_reg);
}
@@ -193,7 +196,8 @@ dbdma_stop(dbdma_channel_t *chan)
uint32_t control_reg;
control_reg = DBDMA_STATUS_RUN;
- control_reg <<= 16;
+ control_reg <<= DBDMA_REG_MASK_SHIFT;
+
dbdma_write_reg(chan, CHAN_CONTROL_REG, control_reg);
while (dbdma_read_reg(chan, CHAN_STATUS_REG) & DBDMA_STATUS_ACTIVE)
@@ -205,7 +209,7 @@ dbdma_set_current_cmd(dbdma_channel_t *chan, int slot)
{
uint32_t cmd;
- cmd = chan->sc_slots_pa + slot * 16;
+ cmd = chan->sc_slots_pa + slot * sizeof(struct dbdma_command);
dbdma_write_reg(chan, CHAN_CMDPTR, cmd);
}
@@ -230,7 +234,7 @@ dbdma_set_device_status(dbdma_channel_t *chan, uint8_t mask, uint8_t value)
uint32_t control_reg;
control_reg = mask;
- control_reg <<= 16;
+ control_reg <<= DBDMA_REG_MASK_SHIFT;
control_reg |= value;
dbdma_write_reg(chan, CHAN_CONTROL_REG, control_reg);
@@ -242,7 +246,8 @@ dbdma_set_interrupt_selector(dbdma_channel_t *chan, uint8_t mask, uint8_t val)
uint32_t intr_select;
intr_select = mask;
- intr_select <<= 16;
+ intr_select <<= DBDMA_REG_MASK_SHIFT;
+
intr_select |= val;
dbdma_write_reg(chan, CHAN_INTR_SELECT, intr_select);
}
@@ -253,7 +258,8 @@ dbdma_set_branch_selector(dbdma_channel_t *chan, uint8_t mask, uint8_t val)
uint32_t br_select;
br_select = mask;
- br_select <<= 16;
+ br_select <<= DBDMA_REG_MASK_SHIFT;
+
br_select |= val;
dbdma_write_reg(chan, CHAN_BRANCH_SELECT, br_select);
}
@@ -264,7 +270,7 @@ dbdma_set_wait_selector(dbdma_channel_t *chan, uint8_t mask, uint8_t val)
uint32_t wait_select;
wait_select = mask;
- wait_select <<= 16;
+ wait_select <<= DBDMA_REG_MASK_SHIFT;
wait_select |= val;
dbdma_write_reg(chan, CHAN_WAIT_SELECT, wait_select);
}
@@ -286,7 +292,8 @@ dbdma_insert_command(dbdma_channel_t *chan, int slot, int command, int stream,
cmd.reqCount = count;
cmd.address = (uint32_t)(data);
if (command != DBDMA_STORE_QUAD && command != DBDMA_LOAD_QUAD)
- cmd.cmdDep = chan->sc_slots_pa + branch_slot * 16;
+ cmd.cmdDep = chan->sc_slots_pa +
+ branch_slot * sizeof(struct dbdma_command);
else
cmd.cmdDep = branch_slot;
diff --git a/sys/powerpc/powermac/dbdmavar.h b/sys/powerpc/powermac/dbdmavar.h
index 88c3185..2916b6a 100644
--- a/sys/powerpc/powermac/dbdmavar.h
+++ b/sys/powerpc/powermac/dbdmavar.h
@@ -87,6 +87,8 @@ struct dbdma_channel {
/* Channel control is the write channel to channel status, the upper 16 bits
are a mask of which bytes to change */
+#define DBDMA_REG_MASK_SHIFT 16
+
/* Status bits 0-7 are device dependent status bits */
/*
OpenPOWER on IntegriCloud