Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 57f2685c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'next' of git://git.infradead.org/users/vkoul/slave-dma: (53 commits)
  ARM: mach-shmobile: specify CHCLR registers on SH7372
  dma: shdma: fix runtime PM: clear channel buffers on reset
  dma/imx-sdma: save irq flags when use spin_lock in sdma_tx_submit
  dmaengine/ste_dma40: clear LNK on channel startup
  dmaengine: intel_mid_dma: remove legacy pm interface
  ASoC: mxs: correct 'direction' of device_prep_dma_cyclic
  dmaengine: intel_mid_dma: error path fix
  dmaengine: intel_mid_dma: locking and freeing fixes
  mtd: gpmi-nand: move to dma_transfer_direction
  mtd: fix compile error for gpmi-nand
  mmc: mxs-mmc: fix the dma_transfer_direction migration
  dmaengine: add DMA_TRANS_NONE to dma_transfer_direction
  dma: mxs-dma: Don't use CLKGATE bits in CTRL0 to disable DMA channels
  dma: mxs-dma: make mxs_dma_prep_slave_sg() multi user safe
  dma: mxs-dma: Always leave mxs_dma_init() with the clock disabled.
  dma: mxs-dma: fix a typo in comment
  DMA: PL330: Remove pm_runtime_xxx calls from pl330 probe/remove
  video i.MX IPU: Fix display connections
  i.MX IPU DMA: Fix wrong burstsize settings
  dmaengine/ste_dma40: allow fixed physical channel
  ...

Fix up conflicts in drivers/dma/{Kconfig,mxs-dma.c,pl330.c}

The conflicts looked pretty trivial, but I'll ask people to verify them.
parents 488a9d01 e08b881a
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
* Atmel Direct Memory Access Controller (DMA)

Required properties:
- compatible: Should be "atmel,<chip>-dma"
- reg: Should contain DMA registers location and length
- interrupts: Should contain DMA interrupt

Examples:

dma@ffffec00 {
	compatible = "atmel,at91sam9g45-dma";
	reg = <0xffffec00 0x200>;
	interrupts = <21>;
};
+8 −0
Original line number Diff line number Diff line
@@ -75,6 +75,10 @@ The slave DMA usage consists of following steps:
   slave_sg	- DMA a list of scatter gather buffers from/to a peripheral
   dma_cyclic	- Perform a cyclic DMA operation from/to a peripheral till the
		  operation is explicitly stopped.
   interleaved_dma - This is common to Slave as well as M2M clients. For slave
		 address of devices' fifo could be already known to the driver.
		 Various types of operations could be expressed by setting
		 appropriate values to the 'dma_interleaved_template' members.

   A non-NULL return of this transfer API represents a "descriptor" for
   the given transaction.
@@ -89,6 +93,10 @@ The slave DMA usage consists of following steps:
		struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
		size_t period_len, enum dma_data_direction direction);

	struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
		struct dma_chan *chan, struct dma_interleaved_template *xt,
		unsigned long flags);

   The peripheral driver is expected to have mapped the scatterlist for
   the DMA operation prior to calling device_prep_slave_sg, and must
   keep the scatterlist mapped until the DMA operation has completed.
+1 −0
Original line number Diff line number Diff line
@@ -745,6 +745,7 @@ M: Barry Song <baohua.song@csr.com>
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S:	Maintained
F:	arch/arm/mach-prima2/
F:	drivers/dma/sirf-dma*

ARM/EBSA110 MACHINE SUPPORT
M:	Russell King <linux@arm.linux.org.uk>
+3 −3
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@
 */
struct ep93xx_dma_data {
	int				port;
	enum dma_data_direction		direction;
	enum dma_transfer_direction	direction;
	const char			*name;
};

@@ -80,14 +80,14 @@ static inline bool ep93xx_dma_chan_is_m2p(struct dma_chan *chan)
 * channel supports given DMA direction. Only M2P channels have such
 * limitation, for M2M channels the direction is configurable.
 */
static inline enum dma_data_direction
static inline enum dma_transfer_direction
ep93xx_dma_chan_direction(struct dma_chan *chan)
{
	if (!ep93xx_dma_chan_is_m2p(chan))
		return DMA_NONE;

	/* even channels are for TX, odd for RX */
	return (chan->chan_id % 2 == 0) ? DMA_TO_DEVICE : DMA_FROM_DEVICE;
	return (chan->chan_id % 2 == 0) ? DMA_MEM_TO_DEV : DMA_DEV_TO_MEM;
}

#endif /* __ASM_ARCH_DMA_H */
+12 −3
Original line number Diff line number Diff line
@@ -445,31 +445,39 @@ static const struct sh_dmae_slave_config sh7372_dmae_slaves[] = {
	},
};

#define SH7372_CHCLR 0x220

static const struct sh_dmae_channel sh7372_dmae_channels[] = {
	{
		.offset = 0,
		.dmars = 0,
		.dmars_bit = 0,
		.chclr_offset = SH7372_CHCLR + 0,
	}, {
		.offset = 0x10,
		.dmars = 0,
		.dmars_bit = 8,
		.chclr_offset = SH7372_CHCLR + 0x10,
	}, {
		.offset = 0x20,
		.dmars = 4,
		.dmars_bit = 0,
		.chclr_offset = SH7372_CHCLR + 0x20,
	}, {
		.offset = 0x30,
		.dmars = 4,
		.dmars_bit = 8,
		.chclr_offset = SH7372_CHCLR + 0x30,
	}, {
		.offset = 0x50,
		.dmars = 8,
		.dmars_bit = 0,
		.chclr_offset = SH7372_CHCLR + 0x50,
	}, {
		.offset = 0x60,
		.dmars = 8,
		.dmars_bit = 8,
		.chclr_offset = SH7372_CHCLR + 0x60,
	}
};

@@ -487,6 +495,7 @@ static struct sh_dmae_pdata dma_platform_data = {
	.ts_shift	= ts_shift,
	.ts_shift_num	= ARRAY_SIZE(ts_shift),
	.dmaor_init	= DMAOR_DME,
	.chclr_present	= 1,
};

/* Resource order important! */
@@ -494,7 +503,7 @@ static struct resource sh7372_dmae0_resources[] = {
	{
		/* Channel registers and DMAOR */
		.start	= 0xfe008020,
		.end	= 0xfe00808f,
		.end	= 0xfe00828f,
		.flags	= IORESOURCE_MEM,
	},
	{
@@ -522,7 +531,7 @@ static struct resource sh7372_dmae1_resources[] = {
	{
		/* Channel registers and DMAOR */
		.start	= 0xfe018020,
		.end	= 0xfe01808f,
		.end	= 0xfe01828f,
		.flags	= IORESOURCE_MEM,
	},
	{
@@ -550,7 +559,7 @@ static struct resource sh7372_dmae2_resources[] = {
	{
		/* Channel registers and DMAOR */
		.start	= 0xfe028020,
		.end	= 0xfe02808f,
		.end	= 0xfe02828f,
		.flags	= IORESOURCE_MEM,
	},
	{
Loading