Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 297485
b: refs/heads/master
c: c4b5685
h: refs/heads/master
i:
  297483: 65410d5
v: v3
  • Loading branch information
Richard Zhao authored and Vinod Koul committed Jan 31, 2012
1 parent 9997591 commit 87900d6
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b9a591664a21a3d342b9e3b09b0aa2223ae7c469
refs/heads/master: c4b56857d17540e8085a04ea479b0239f4ee764c
44 changes: 22 additions & 22 deletions trunk/drivers/dma/imx-sdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -368,9 +368,9 @@ static int sdma_config_ownership(struct sdma_channel *sdmac,
if (event_override && mcu_override && dsp_override)
return -EINVAL;

evt = __raw_readl(sdma->regs + SDMA_H_EVTOVR);
mcu = __raw_readl(sdma->regs + SDMA_H_HOSTOVR);
dsp = __raw_readl(sdma->regs + SDMA_H_DSPOVR);
evt = readl_relaxed(sdma->regs + SDMA_H_EVTOVR);
mcu = readl_relaxed(sdma->regs + SDMA_H_HOSTOVR);
dsp = readl_relaxed(sdma->regs + SDMA_H_DSPOVR);

if (dsp_override)
dsp &= ~(1 << channel);
Expand All @@ -387,16 +387,16 @@ static int sdma_config_ownership(struct sdma_channel *sdmac,
else
mcu |= (1 << channel);

__raw_writel(evt, sdma->regs + SDMA_H_EVTOVR);
__raw_writel(mcu, sdma->regs + SDMA_H_HOSTOVR);
__raw_writel(dsp, sdma->regs + SDMA_H_DSPOVR);
writel_relaxed(evt, sdma->regs + SDMA_H_EVTOVR);
writel_relaxed(mcu, sdma->regs + SDMA_H_HOSTOVR);
writel_relaxed(dsp, sdma->regs + SDMA_H_DSPOVR);

return 0;
}

static void sdma_enable_channel(struct sdma_engine *sdma, int channel)
{
__raw_writel(1 << channel, sdma->regs + SDMA_H_START);
writel(1 << channel, sdma->regs + SDMA_H_START);
}

/*
Expand Down Expand Up @@ -460,9 +460,9 @@ static void sdma_event_enable(struct sdma_channel *sdmac, unsigned int event)
u32 val;
u32 chnenbl = chnenbl_ofs(sdma, event);

val = __raw_readl(sdma->regs + chnenbl);
val = readl_relaxed(sdma->regs + chnenbl);
val |= (1 << channel);
__raw_writel(val, sdma->regs + chnenbl);
writel_relaxed(val, sdma->regs + chnenbl);
}

static void sdma_event_disable(struct sdma_channel *sdmac, unsigned int event)
Expand All @@ -472,9 +472,9 @@ static void sdma_event_disable(struct sdma_channel *sdmac, unsigned int event)
u32 chnenbl = chnenbl_ofs(sdma, event);
u32 val;

val = __raw_readl(sdma->regs + chnenbl);
val = readl_relaxed(sdma->regs + chnenbl);
val &= ~(1 << channel);
__raw_writel(val, sdma->regs + chnenbl);
writel_relaxed(val, sdma->regs + chnenbl);
}

static void sdma_handle_channel_loop(struct sdma_channel *sdmac)
Expand Down Expand Up @@ -552,8 +552,8 @@ static irqreturn_t sdma_int_handler(int irq, void *dev_id)
struct sdma_engine *sdma = dev_id;
u32 stat;

stat = __raw_readl(sdma->regs + SDMA_H_INTR);
__raw_writel(stat, sdma->regs + SDMA_H_INTR);
stat = readl_relaxed(sdma->regs + SDMA_H_INTR);
writel_relaxed(stat, sdma->regs + SDMA_H_INTR);

while (stat) {
int channel = fls(stat) - 1;
Expand Down Expand Up @@ -707,7 +707,7 @@ static void sdma_disable_channel(struct sdma_channel *sdmac)
struct sdma_engine *sdma = sdmac->sdma;
int channel = sdmac->channel;

__raw_writel(1 << channel, sdma->regs + SDMA_H_STATSTOP);
writel_relaxed(1 << channel, sdma->regs + SDMA_H_STATSTOP);
sdmac->status = DMA_ERROR;
}

Expand Down Expand Up @@ -780,7 +780,7 @@ static int sdma_set_channel_priority(struct sdma_channel *sdmac,
return -EINVAL;
}

__raw_writel(priority, sdma->regs + SDMA_CHNPRI_0 + 4 * channel);
writel_relaxed(priority, sdma->regs + SDMA_CHNPRI_0 + 4 * channel);

return 0;
}
Expand Down Expand Up @@ -1228,7 +1228,7 @@ static int __init sdma_init(struct sdma_engine *sdma)
clk_enable(sdma->clk);

/* Be sure SDMA has not started yet */
__raw_writel(0, sdma->regs + SDMA_H_C0PTR);
writel_relaxed(0, sdma->regs + SDMA_H_C0PTR);

sdma->channel_control = dma_alloc_coherent(NULL,
MAX_DMA_CHANNELS * sizeof (struct sdma_channel_control) +
Expand All @@ -1251,11 +1251,11 @@ static int __init sdma_init(struct sdma_engine *sdma)

/* disable all channels */
for (i = 0; i < sdma->num_events; i++)
__raw_writel(0, sdma->regs + chnenbl_ofs(sdma, i));
writel_relaxed(0, sdma->regs + chnenbl_ofs(sdma, i));

/* All channels have priority 0 */
for (i = 0; i < MAX_DMA_CHANNELS; i++)
__raw_writel(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);
writel_relaxed(0, sdma->regs + SDMA_CHNPRI_0 + i * 4);

ret = sdma_request_channel(&sdma->channel[0]);
if (ret)
Expand All @@ -1264,16 +1264,16 @@ static int __init sdma_init(struct sdma_engine *sdma)
sdma_config_ownership(&sdma->channel[0], false, true, false);

/* Set Command Channel (Channel Zero) */
__raw_writel(0x4050, sdma->regs + SDMA_CHN0ADDR);
writel_relaxed(0x4050, sdma->regs + SDMA_CHN0ADDR);

/* Set bits of CONFIG register but with static context switching */
/* FIXME: Check whether to set ACR bit depending on clock ratios */
__raw_writel(0, sdma->regs + SDMA_H_CONFIG);
writel_relaxed(0, sdma->regs + SDMA_H_CONFIG);

__raw_writel(ccb_phys, sdma->regs + SDMA_H_C0PTR);
writel_relaxed(ccb_phys, sdma->regs + SDMA_H_C0PTR);

/* Set bits of CONFIG register with given context switching mode */
__raw_writel(SDMA_H_CONFIG_CSM, sdma->regs + SDMA_H_CONFIG);
writel_relaxed(SDMA_H_CONFIG_CSM, sdma->regs + SDMA_H_CONFIG);

/* Initializes channel's priorities */
sdma_set_channel_priority(&sdma->channel[0], 7);
Expand Down

0 comments on commit 87900d6

Please sign in to comment.