Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 191625
b: refs/heads/master
c: 5bac942
h: refs/heads/master
i:
  191623: 558275c
v: v3
  • Loading branch information
Guennadi Liakhovetski authored and Paul Mundt committed Apr 26, 2010
1 parent db18222 commit 73974ac
Show file tree
Hide file tree
Showing 8 changed files with 31 additions and 68 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: 6b6b18e62cfba44ce7b6489c7100f12b199232d7
refs/heads/master: 5bac942db3d2c4738df04104240d65a5d1eaec6a
6 changes: 3 additions & 3 deletions trunk/arch/sh/kernel/cpu/sh4a/setup-sh7722.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include <cpu/dma-register.h>
#include <cpu/sh7722.h>

static struct sh_dmae_slave_config sh7722_dmae_slaves[] = {
static const struct sh_dmae_slave_config sh7722_dmae_slaves[] = {
{
.slave_id = SHDMA_SLAVE_SCIF0_TX,
.addr = 0xffe0000c,
Expand Down Expand Up @@ -78,7 +78,7 @@ static struct sh_dmae_slave_config sh7722_dmae_slaves[] = {
},
};

static struct sh_dmae_channel sh7722_dmae_channels[] = {
static const struct sh_dmae_channel sh7722_dmae_channels[] = {
{
.offset = 0,
.dmars = 0,
Expand Down Expand Up @@ -106,7 +106,7 @@ static struct sh_dmae_channel sh7722_dmae_channels[] = {
}
};

static unsigned int ts_shift[] = TS_SHIFT;
static const unsigned int ts_shift[] = TS_SHIFT;

static struct sh_dmae_pdata dma_platform_data = {
.slave = sh7722_dmae_slaves,
Expand Down
54 changes: 7 additions & 47 deletions trunk/arch/sh/kernel/cpu/sh4a/setup-sh7724.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#include <cpu/sh7724.h>

/* DMA */
static struct sh_dmae_channel sh7724_dmae0_channels[] = {
static const struct sh_dmae_channel sh7724_dmae_channels[] = {
{
.offset = 0,
.dmars = 0,
Expand Down Expand Up @@ -59,51 +59,11 @@ static struct sh_dmae_channel sh7724_dmae0_channels[] = {
}
};

static struct sh_dmae_channel sh7724_dmae1_channels[] = {
{
.offset = 0,
.dmars = 0,
.dmars_bit = 0,
}, {
.offset = 0x10,
.dmars = 0,
.dmars_bit = 8,
}, {
.offset = 0x20,
.dmars = 4,
.dmars_bit = 0,
}, {
.offset = 0x30,
.dmars = 4,
.dmars_bit = 8,
}, {
.offset = 0x50,
.dmars = 8,
.dmars_bit = 0,
}, {
.offset = 0x60,
.dmars = 8,
.dmars_bit = 8,
}
};

static unsigned int ts_shift[] = TS_SHIFT;

static struct sh_dmae_pdata dma0_platform_data = {
.channel = sh7724_dmae0_channels,
.channel_num = ARRAY_SIZE(sh7724_dmae0_channels),
.ts_low_shift = CHCR_TS_LOW_SHIFT,
.ts_low_mask = CHCR_TS_LOW_MASK,
.ts_high_shift = CHCR_TS_HIGH_SHIFT,
.ts_high_mask = CHCR_TS_HIGH_MASK,
.ts_shift = ts_shift,
.ts_shift_num = ARRAY_SIZE(ts_shift),
.dmaor_init = DMAOR_INIT,
};
static const unsigned int ts_shift[] = TS_SHIFT;

static struct sh_dmae_pdata dma1_platform_data = {
.channel = sh7724_dmae1_channels,
.channel_num = ARRAY_SIZE(sh7724_dmae1_channels),
static struct sh_dmae_pdata dma_platform_data = {
.channel = sh7724_dmae_channels,
.channel_num = ARRAY_SIZE(sh7724_dmae_channels),
.ts_low_shift = CHCR_TS_LOW_SHIFT,
.ts_low_mask = CHCR_TS_LOW_MASK,
.ts_high_shift = CHCR_TS_HIGH_SHIFT,
Expand Down Expand Up @@ -187,7 +147,7 @@ static struct platform_device dma0_device = {
.resource = sh7724_dmae0_resources,
.num_resources = ARRAY_SIZE(sh7724_dmae0_resources),
.dev = {
.platform_data = &dma0_platform_data,
.platform_data = &dma_platform_data,
},
.archdata = {
.hwblk_id = HWBLK_DMAC0,
Expand All @@ -200,7 +160,7 @@ static struct platform_device dma1_device = {
.resource = sh7724_dmae1_resources,
.num_resources = ARRAY_SIZE(sh7724_dmae1_resources),
.dev = {
.platform_data = &dma1_platform_data,
.platform_data = &dma_platform_data,
},
.archdata = {
.hwblk_id = HWBLK_DMAC1,
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/sh/kernel/cpu/sh4a/setup-sh7780.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ static struct platform_device rtc_device = {
};

/* DMA */
static struct sh_dmae_channel sh7780_dmae0_channels[] = {
static const struct sh_dmae_channel sh7780_dmae0_channels[] = {
{
.offset = 0,
.dmars = 0,
Expand Down Expand Up @@ -261,7 +261,7 @@ static struct sh_dmae_channel sh7780_dmae0_channels[] = {
}
};

static struct sh_dmae_channel sh7780_dmae1_channels[] = {
static const struct sh_dmae_channel sh7780_dmae1_channels[] = {
{
.offset = 0,
}, {
Expand All @@ -277,7 +277,7 @@ static struct sh_dmae_channel sh7780_dmae1_channels[] = {
}
};

static unsigned int ts_shift[] = TS_SHIFT;
static const unsigned int ts_shift[] = TS_SHIFT;

static struct sh_dmae_pdata dma0_platform_data = {
.channel = sh7780_dmae0_channels,
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/sh/kernel/cpu/sh4a/setup-sh7785.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ static struct platform_device tmu5_device = {
};

/* DMA */
static struct sh_dmae_channel sh7785_dmae0_channels[] = {
static const struct sh_dmae_channel sh7785_dmae0_channels[] = {
{
.offset = 0,
.dmars = 0,
Expand Down Expand Up @@ -303,7 +303,7 @@ static struct sh_dmae_channel sh7785_dmae0_channels[] = {
}
};

static struct sh_dmae_channel sh7785_dmae1_channels[] = {
static const struct sh_dmae_channel sh7785_dmae1_channels[] = {
{
.offset = 0,
}, {
Expand All @@ -319,7 +319,7 @@ static struct sh_dmae_channel sh7785_dmae1_channels[] = {
}
};

static unsigned int ts_shift[] = TS_SHIFT;
static const unsigned int ts_shift[] = TS_SHIFT;

static struct sh_dmae_pdata dma0_platform_data = {
.channel = sh7785_dmae0_channels,
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/sh/kernel/cpu/sh4a/setup-sh7786.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ static struct platform_device tmu11_device = {
.num_resources = ARRAY_SIZE(tmu11_resources),
};

static struct sh_dmae_channel dmac0_channels[] = {
static const struct sh_dmae_channel dmac0_channels[] = {
{
.offset = 0,
.dmars = 0,
Expand Down Expand Up @@ -473,7 +473,7 @@ static struct sh_dmae_channel dmac0_channels[] = {
}
};

static unsigned int ts_shift[] = TS_SHIFT;
static const unsigned int ts_shift[] = TS_SHIFT;

static struct sh_dmae_pdata dma0_platform_data = {
.channel = dmac0_channels,
Expand Down
12 changes: 7 additions & 5 deletions trunk/drivers/dma/shdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ static int dmae_set_dmars(struct sh_dmae_chan *sh_chan, u16 val)
struct sh_dmae_device *shdev = container_of(sh_chan->common.device,
struct sh_dmae_device, common);
struct sh_dmae_pdata *pdata = shdev->pdata;
struct sh_dmae_channel *chan_pdata = &pdata->channel[sh_chan->id];
const struct sh_dmae_channel *chan_pdata = &pdata->channel[sh_chan->id];
u16 __iomem *addr = shdev->dmars + chan_pdata->dmars / sizeof(u16);
int shift = chan_pdata->dmars_bit;

Expand Down Expand Up @@ -264,7 +264,7 @@ static struct sh_desc *sh_dmae_get_desc(struct sh_dmae_chan *sh_chan)
return NULL;
}

static struct sh_dmae_slave_config *sh_dmae_find_slave(
static const struct sh_dmae_slave_config *sh_dmae_find_slave(
struct sh_dmae_chan *sh_chan, struct sh_dmae_slave *param)
{
struct dma_device *dma_dev = sh_chan->common.device;
Expand Down Expand Up @@ -296,7 +296,7 @@ static int sh_dmae_alloc_chan_resources(struct dma_chan *chan)
* never runs concurrently with itself or free_chan_resources.
*/
if (param) {
struct sh_dmae_slave_config *cfg;
const struct sh_dmae_slave_config *cfg;

cfg = sh_dmae_find_slave(sh_chan, param);
if (!cfg)
Expand Down Expand Up @@ -557,12 +557,14 @@ static struct dma_async_tx_descriptor *sh_dmae_prep_slave_sg(
{
struct sh_dmae_slave *param;
struct sh_dmae_chan *sh_chan;
dma_addr_t slave_addr;

if (!chan)
return NULL;

sh_chan = to_sh_chan(chan);
param = chan->private;
slave_addr = param->config->addr;

/* Someone calling slave DMA on a public channel? */
if (!param || !sg_len) {
Expand All @@ -575,7 +577,7 @@ static struct dma_async_tx_descriptor *sh_dmae_prep_slave_sg(
* if (param != NULL), this is a successfully requested slave channel,
* therefore param->config != NULL too.
*/
return sh_dmae_prep_sg(sh_chan, sgl, sg_len, &param->config->addr,
return sh_dmae_prep_sg(sh_chan, sgl, sg_len, &slave_addr,
direction, flags);
}

Expand Down Expand Up @@ -856,7 +858,7 @@ static int __devinit sh_dmae_chan_probe(struct sh_dmae_device *shdev, int id,
int irq, unsigned long flags)
{
int err;
struct sh_dmae_channel *chan_pdata = &shdev->pdata->channel[id];
const struct sh_dmae_channel *chan_pdata = &shdev->pdata->channel[id];
struct platform_device *pdev = to_platform_device(shdev->common.dev);
struct sh_dmae_chan *new_sh_chan;

Expand Down
9 changes: 5 additions & 4 deletions trunk/include/linux/sh_dma.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
struct sh_dmae_slave {
unsigned int slave_id; /* Set by the platform */
struct device *dma_dev; /* Set by the platform */
struct sh_dmae_slave_config *config; /* Set by the driver */
const struct sh_dmae_slave_config *config; /* Set by the driver */
};

struct sh_dmae_regs {
Expand All @@ -36,6 +36,7 @@ struct sh_desc {
int chunks;
int mark;
};

struct sh_dmae_slave_config {
unsigned int slave_id;
dma_addr_t addr;
Expand All @@ -50,15 +51,15 @@ struct sh_dmae_channel {
};

struct sh_dmae_pdata {
struct sh_dmae_slave_config *slave;
const struct sh_dmae_slave_config *slave;
int slave_num;
struct sh_dmae_channel *channel;
const struct sh_dmae_channel *channel;
int channel_num;
unsigned int ts_low_shift;
unsigned int ts_low_mask;
unsigned int ts_high_shift;
unsigned int ts_high_mask;
unsigned int *ts_shift;
const unsigned int *ts_shift;
int ts_shift_num;
u16 dmaor_init;
};
Expand Down

0 comments on commit 73974ac

Please sign in to comment.