diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-07 14:11:43 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-07 14:11:43 -0400 |
| commit | d2b4a646717153a1a180b64d4a8464054dbd700e (patch) | |
| tree | a019907da37389f59ddb429c7d10de178514af1e /include/linux | |
| parent | 8dce5f3dee21bf976193ddb06426b9727cf5d1a2 (diff) | |
| parent | 67eacc1583909d0588c8d5d80c16298c899a6382 (diff) | |
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine updates from Vinod Koul:
"Once you have some time from extended weekend celebrations please
consider pulling the following to get:
- Various fixes and PCI driver for dw_dmac by Andy
- DT binding for imx-dma by Markus & imx-sdma by Shawn
- DT fixes for dmaengine by Lars
- jz4740 dmac driver by Lars
- and various fixes across the drivers"
What "extended weekend celebrations"? I'm in the merge window, who has
time for extended celebrations..
* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (40 commits)
DMA: shdma: add DT support
DMA: shdma: shdma_chan_filter() has to be in shdma-base.h
DMA: shdma: (cosmetic) don't re-calculate a pointer
dmaengine: at_hdmac: prepare clk before calling enable
dmaengine/trivial: at_hdmac: add curly brackets to if/else expressions
dmaengine: at_hdmac: remove unsuded atc_cleanup_descriptors()
dmaengine: at_hdmac: add FIFO configuration parameter to DMA DT binding
ARM: at91: dt: add header to define at_hdmac configuration
MIPS: jz4740: Correct clock gate bit for DMA controller
MIPS: jz4740: Remove custom DMA API
MIPS: jz4740: Register jz4740 DMA device
dma: Add a jz4740 dmaengine driver
MIPS: jz4740: Acquire and enable DMA controller clock
dma: mmp_tdma: disable irq when disabling dma channel
dmaengine: PL08x: Avoid collisions with get_signal() macro
dmaengine: dw: select DW_DMAC_BIG_ENDIAN_IO automagically
dma: dw: add PCI part of the driver
dma: dw: split driver to library part and platform code
dma: move dw_dmac driver to an own directory
dw_dmac: don't check resource with devm_ioremap_resource
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/amba/pl08x.h | 8 | ||||
| -rw-r--r-- | include/linux/of_dma.h | 1 | ||||
| -rw-r--r-- | include/linux/platform_data/dma-atmel.h | 4 | ||||
| -rw-r--r-- | include/linux/platform_data/dma-imx.h | 6 | ||||
| -rw-r--r-- | include/linux/sh_dma.h | 2 | ||||
| -rw-r--r-- | include/linux/shdma-base.h | 3 |
6 files changed, 13 insertions, 11 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index 2a5f64a11b77..10fe2a211c2e 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h | |||
| @@ -76,11 +76,11 @@ struct pl08x_channel_data { | |||
| 76 | * platform, all inclusive, including multiplexed channels. The available | 76 | * platform, all inclusive, including multiplexed channels. The available |
| 77 | * physical channels will be multiplexed around these signals as they are | 77 | * physical channels will be multiplexed around these signals as they are |
| 78 | * requested, just enumerate all possible channels. | 78 | * requested, just enumerate all possible channels. |
| 79 | * @get_signal: request a physical signal to be used for a DMA transfer | 79 | * @get_xfer_signal: request a physical signal to be used for a DMA transfer |
| 80 | * immediately: if there is some multiplexing or similar blocking the use | 80 | * immediately: if there is some multiplexing or similar blocking the use |
| 81 | * of the channel the transfer can be denied by returning less than zero, | 81 | * of the channel the transfer can be denied by returning less than zero, |
| 82 | * else it returns the allocated signal number | 82 | * else it returns the allocated signal number |
| 83 | * @put_signal: indicate to the platform that this physical signal is not | 83 | * @put_xfer_signal: indicate to the platform that this physical signal is not |
| 84 | * running any DMA transfer and multiplexing can be recycled | 84 | * running any DMA transfer and multiplexing can be recycled |
| 85 | * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2 | 85 | * @lli_buses: buses which LLIs can be fetched from: PL08X_AHB1 | PL08X_AHB2 |
| 86 | * @mem_buses: buses which memory can be accessed from: PL08X_AHB1 | PL08X_AHB2 | 86 | * @mem_buses: buses which memory can be accessed from: PL08X_AHB1 | PL08X_AHB2 |
| @@ -89,8 +89,8 @@ struct pl08x_platform_data { | |||
| 89 | const struct pl08x_channel_data *slave_channels; | 89 | const struct pl08x_channel_data *slave_channels; |
| 90 | unsigned int num_slave_channels; | 90 | unsigned int num_slave_channels; |
| 91 | struct pl08x_channel_data memcpy_channel; | 91 | struct pl08x_channel_data memcpy_channel; |
| 92 | int (*get_signal)(const struct pl08x_channel_data *); | 92 | int (*get_xfer_signal)(const struct pl08x_channel_data *); |
| 93 | void (*put_signal)(const struct pl08x_channel_data *, int); | 93 | void (*put_xfer_signal)(const struct pl08x_channel_data *, int); |
| 94 | u8 lli_buses; | 94 | u8 lli_buses; |
| 95 | u8 mem_buses; | 95 | u8 mem_buses; |
| 96 | }; | 96 | }; |
diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h index 364dda734877..ae36298ba076 100644 --- a/include/linux/of_dma.h +++ b/include/linux/of_dma.h | |||
| @@ -21,7 +21,6 @@ struct device_node; | |||
| 21 | struct of_dma { | 21 | struct of_dma { |
| 22 | struct list_head of_dma_controllers; | 22 | struct list_head of_dma_controllers; |
| 23 | struct device_node *of_node; | 23 | struct device_node *of_node; |
| 24 | int of_dma_nbcells; | ||
| 25 | struct dma_chan *(*of_dma_xlate) | 24 | struct dma_chan *(*of_dma_xlate) |
| 26 | (struct of_phandle_args *, struct of_dma *); | 25 | (struct of_phandle_args *, struct of_dma *); |
| 27 | void *of_dma_data; | 26 | void *of_dma_data; |
diff --git a/include/linux/platform_data/dma-atmel.h b/include/linux/platform_data/dma-atmel.h index cab0997be3de..e95f19c65873 100644 --- a/include/linux/platform_data/dma-atmel.h +++ b/include/linux/platform_data/dma-atmel.h | |||
| @@ -35,16 +35,20 @@ struct at_dma_slave { | |||
| 35 | 35 | ||
| 36 | 36 | ||
| 37 | /* Platform-configurable bits in CFG */ | 37 | /* Platform-configurable bits in CFG */ |
| 38 | #define ATC_PER_MSB(h) ((0x30U & (h)) >> 4) /* Extract most significant bits of a handshaking identifier */ | ||
| 39 | |||
| 38 | #define ATC_SRC_PER(h) (0xFU & (h)) /* Channel src rq associated with periph handshaking ifc h */ | 40 | #define ATC_SRC_PER(h) (0xFU & (h)) /* Channel src rq associated with periph handshaking ifc h */ |
| 39 | #define ATC_DST_PER(h) ((0xFU & (h)) << 4) /* Channel dst rq associated with periph handshaking ifc h */ | 41 | #define ATC_DST_PER(h) ((0xFU & (h)) << 4) /* Channel dst rq associated with periph handshaking ifc h */ |
| 40 | #define ATC_SRC_REP (0x1 << 8) /* Source Replay Mod */ | 42 | #define ATC_SRC_REP (0x1 << 8) /* Source Replay Mod */ |
| 41 | #define ATC_SRC_H2SEL (0x1 << 9) /* Source Handshaking Mod */ | 43 | #define ATC_SRC_H2SEL (0x1 << 9) /* Source Handshaking Mod */ |
| 42 | #define ATC_SRC_H2SEL_SW (0x0 << 9) | 44 | #define ATC_SRC_H2SEL_SW (0x0 << 9) |
| 43 | #define ATC_SRC_H2SEL_HW (0x1 << 9) | 45 | #define ATC_SRC_H2SEL_HW (0x1 << 9) |
| 46 | #define ATC_SRC_PER_MSB(h) (ATC_PER_MSB(h) << 10) /* Channel src rq (most significant bits) */ | ||
| 44 | #define ATC_DST_REP (0x1 << 12) /* Destination Replay Mod */ | 47 | #define ATC_DST_REP (0x1 << 12) /* Destination Replay Mod */ |
| 45 | #define ATC_DST_H2SEL (0x1 << 13) /* Destination Handshaking Mod */ | 48 | #define ATC_DST_H2SEL (0x1 << 13) /* Destination Handshaking Mod */ |
| 46 | #define ATC_DST_H2SEL_SW (0x0 << 13) | 49 | #define ATC_DST_H2SEL_SW (0x0 << 13) |
| 47 | #define ATC_DST_H2SEL_HW (0x1 << 13) | 50 | #define ATC_DST_H2SEL_HW (0x1 << 13) |
| 51 | #define ATC_DST_PER_MSB(h) (ATC_PER_MSB(h) << 14) /* Channel dst rq (most significant bits) */ | ||
| 48 | #define ATC_SOD (0x1 << 16) /* Stop On Done */ | 52 | #define ATC_SOD (0x1 << 16) /* Stop On Done */ |
| 49 | #define ATC_LOCK_IF (0x1 << 20) /* Interface Lock */ | 53 | #define ATC_LOCK_IF (0x1 << 20) /* Interface Lock */ |
| 50 | #define ATC_LOCK_B (0x1 << 21) /* AHB Bus Lock */ | 54 | #define ATC_LOCK_B (0x1 << 21) /* AHB Bus Lock */ |
diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h index f6d30cc1cb77..beac6b8b6a7b 100644 --- a/include/linux/platform_data/dma-imx.h +++ b/include/linux/platform_data/dma-imx.h | |||
| @@ -60,10 +60,8 @@ static inline int imx_dma_is_ipu(struct dma_chan *chan) | |||
| 60 | 60 | ||
| 61 | static inline int imx_dma_is_general_purpose(struct dma_chan *chan) | 61 | static inline int imx_dma_is_general_purpose(struct dma_chan *chan) |
| 62 | { | 62 | { |
| 63 | return strstr(dev_name(chan->device->dev), "sdma") || | 63 | return !strcmp(chan->device->dev->driver->name, "imx-sdma") || |
| 64 | !strcmp(dev_name(chan->device->dev), "imx1-dma") || | 64 | !strcmp(chan->device->dev->driver->name, "imx-dma"); |
| 65 | !strcmp(dev_name(chan->device->dev), "imx21-dma") || | ||
| 66 | !strcmp(dev_name(chan->device->dev), "imx27-dma"); | ||
| 67 | } | 65 | } |
| 68 | 66 | ||
| 69 | #endif | 67 | #endif |
diff --git a/include/linux/sh_dma.h b/include/linux/sh_dma.h index b64d6bec6f90..4e83f3e034f3 100644 --- a/include/linux/sh_dma.h +++ b/include/linux/sh_dma.h | |||
| @@ -99,6 +99,4 @@ struct sh_dmae_pdata { | |||
| 99 | #define CHCR_TE 0x00000002 | 99 | #define CHCR_TE 0x00000002 |
| 100 | #define CHCR_IE 0x00000004 | 100 | #define CHCR_IE 0x00000004 |
| 101 | 101 | ||
| 102 | bool shdma_chan_filter(struct dma_chan *chan, void *arg); | ||
| 103 | |||
| 104 | #endif | 102 | #endif |
diff --git a/include/linux/shdma-base.h b/include/linux/shdma-base.h index a3728bf66f0e..382cf710ca9a 100644 --- a/include/linux/shdma-base.h +++ b/include/linux/shdma-base.h | |||
| @@ -68,6 +68,8 @@ struct shdma_chan { | |||
| 68 | int id; /* Raw id of this channel */ | 68 | int id; /* Raw id of this channel */ |
| 69 | int irq; /* Channel IRQ */ | 69 | int irq; /* Channel IRQ */ |
| 70 | int slave_id; /* Client ID for slave DMA */ | 70 | int slave_id; /* Client ID for slave DMA */ |
| 71 | int hw_req; /* DMA request line for slave DMA - same | ||
| 72 | * as MID/RID, used with DT */ | ||
| 71 | enum shdma_pm_state pm_state; | 73 | enum shdma_pm_state pm_state; |
| 72 | }; | 74 | }; |
| 73 | 75 | ||
| @@ -122,5 +124,6 @@ void shdma_chan_remove(struct shdma_chan *schan); | |||
| 122 | int shdma_init(struct device *dev, struct shdma_dev *sdev, | 124 | int shdma_init(struct device *dev, struct shdma_dev *sdev, |
| 123 | int chan_num); | 125 | int chan_num); |
| 124 | void shdma_cleanup(struct shdma_dev *sdev); | 126 | void shdma_cleanup(struct shdma_dev *sdev); |
| 127 | bool shdma_chan_filter(struct dma_chan *chan, void *arg); | ||
| 125 | 128 | ||
| 126 | #endif | 129 | #endif |
