aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-24 12:49:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-24 12:49:37 -0400
commitd6a4c0e5d3d433ef296f8f417e835329a834a256 (patch)
treea65de394ea1afeeccee9f84dc7e6cd21e2660639 /include/linux
parent474095e46cd14421821da3201a9fd6a4c070996b (diff)
parentcdde0e61cf2d41123604c6c9d8f09ef5c23464ee (diff)
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine updates from Vinod Koul: - new drivers for: - Ingenic JZ4780 controller - APM X-Gene controller - Freescale RaidEngine device - Renesas USB Controller - remove device_alloc_chan_resources dummy handlers - sh driver cleanups for peri peri and related emmc and asoc patches as well - fixes and enhancements spread over the drivers * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (59 commits) dmaengine: dw: don't prompt for DW_DMAC_CORE dmaengine: shdmac: avoid unused variable warnings dmaengine: fix platform_no_drv_owner.cocci warnings dmaengine: pch_dma: fix memory leak on failure path in pch_dma_probe() dmaengine: at_xdmac: unlock spin lock before return dmaengine: xgene: devm_ioremap() returns NULL on error dmaengine: xgene: buffer overflow in xgene_dma_init_channels() dmaengine: usb-dmac: Fix dereferencing freed memory 'desc' dmaengine: sa11x0: report slave capabilities to upper layers dmaengine: vdma: Fix compilation warnings dmaengine: fsl_raid: statify fsl_re_chan_probe dmaengine: Driver support for FSL RaidEngine device. dmaengine: xgene_dma_init_ring_mngr() can be static Documentation: dma: Add documentation for the APM X-Gene SoC DMA device DTS binding arm64: dts: Add APM X-Gene SoC DMA device and DMA clock DTS nodes dmaengine: Add support for APM X-Gene SoC DMA engine driver dmaengine: usb-dmac: Add Renesas USB DMA Controller (USB-DMAC) driver dmaengine: renesas,usb-dmac: Add device tree bindings documentation dmaengine: edma: fixed wrongly initialized data parameter to the edma callback dmaengine: ste_dma40: fix implicit conversion ...
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/dma/xilinx_dma.h (renamed from include/linux/amba/xilinx_dma.h)0
-rw-r--r--include/linux/dmaengine.h36
-rw-r--r--include/linux/mfd/tmio.h2
-rw-r--r--include/linux/mmc/sh_mobile_sdhi.h10
-rw-r--r--include/linux/platform_data/dma-imx-sdma.h3
-rw-r--r--include/linux/shdma-base.h1
6 files changed, 6 insertions, 46 deletions
diff --git a/include/linux/amba/xilinx_dma.h b/include/linux/dma/xilinx_dma.h
index 34b98f276ed0..34b98f276ed0 100644
--- a/include/linux/amba/xilinx_dma.h
+++ b/include/linux/dma/xilinx_dma.h
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index b6997a0cb528..ad419757241f 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -11,10 +11,6 @@
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details. 12 * more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc., 59
16 * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 *
18 * The full GNU General Public License is included in this distribution in the 14 * The full GNU General Public License is included in this distribution in the
19 * file called COPYING. 15 * file called COPYING.
20 */ 16 */
@@ -574,7 +570,6 @@ struct dma_tx_state {
574 * @copy_align: alignment shift for memcpy operations 570 * @copy_align: alignment shift for memcpy operations
575 * @xor_align: alignment shift for xor operations 571 * @xor_align: alignment shift for xor operations
576 * @pq_align: alignment shift for pq operations 572 * @pq_align: alignment shift for pq operations
577 * @fill_align: alignment shift for memset operations
578 * @dev_id: unique device ID 573 * @dev_id: unique device ID
579 * @dev: struct device reference for dma mapping api 574 * @dev: struct device reference for dma mapping api
580 * @src_addr_widths: bit mask of src addr widths the device supports 575 * @src_addr_widths: bit mask of src addr widths the device supports
@@ -625,7 +620,6 @@ struct dma_device {
625 u8 copy_align; 620 u8 copy_align;
626 u8 xor_align; 621 u8 xor_align;
627 u8 pq_align; 622 u8 pq_align;
628 u8 fill_align;
629 #define DMA_HAS_PQ_CONTINUE (1 << 15) 623 #define DMA_HAS_PQ_CONTINUE (1 << 15)
630 624
631 int dev_id; 625 int dev_id;
@@ -826,12 +820,6 @@ static inline bool is_dma_pq_aligned(struct dma_device *dev, size_t off1,
826 return dmaengine_check_align(dev->pq_align, off1, off2, len); 820 return dmaengine_check_align(dev->pq_align, off1, off2, len);
827} 821}
828 822
829static inline bool is_dma_fill_aligned(struct dma_device *dev, size_t off1,
830 size_t off2, size_t len)
831{
832 return dmaengine_check_align(dev->fill_align, off1, off2, len);
833}
834
835static inline void 823static inline void
836dma_set_maxpq(struct dma_device *dma, int maxpq, int has_pq_continue) 824dma_set_maxpq(struct dma_device *dma, int maxpq, int has_pq_continue)
837{ 825{
@@ -1098,7 +1086,6 @@ void dma_async_device_unregister(struct dma_device *device);
1098void dma_run_dependencies(struct dma_async_tx_descriptor *tx); 1086void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
1099struct dma_chan *dma_get_slave_channel(struct dma_chan *chan); 1087struct dma_chan *dma_get_slave_channel(struct dma_chan *chan);
1100struct dma_chan *dma_get_any_slave_channel(struct dma_device *device); 1088struct dma_chan *dma_get_any_slave_channel(struct dma_device *device);
1101struct dma_chan *net_dma_find_channel(void);
1102#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) 1089#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y)
1103#define dma_request_slave_channel_compat(mask, x, y, dev, name) \ 1090#define dma_request_slave_channel_compat(mask, x, y, dev, name) \
1104 __dma_request_slave_channel_compat(&(mask), x, y, dev, name) 1091 __dma_request_slave_channel_compat(&(mask), x, y, dev, name)
@@ -1116,27 +1103,4 @@ static inline struct dma_chan
1116 1103
1117 return __dma_request_channel(mask, fn, fn_param); 1104 return __dma_request_channel(mask, fn, fn_param);
1118} 1105}
1119
1120/* --- Helper iov-locking functions --- */
1121
1122struct dma_page_list {
1123 char __user *base_address;
1124 int nr_pages;
1125 struct page **pages;
1126};
1127
1128struct dma_pinned_list {
1129 int nr_iovecs;
1130 struct dma_page_list page_list[0];
1131};
1132
1133struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
1134void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
1135
1136dma_cookie_t dma_memcpy_to_iovec(struct dma_chan *chan, struct iovec *iov,
1137 struct dma_pinned_list *pinned_list, unsigned char *kdata, size_t len);
1138dma_cookie_t dma_memcpy_pg_to_iovec(struct dma_chan *chan, struct iovec *iov,
1139 struct dma_pinned_list *pinned_list, struct page *page,
1140 unsigned int offset, size_t len);
1141
1142#endif /* DMAENGINE_H */ 1106#endif /* DMAENGINE_H */
diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h
index 605812820e48..24b86d538e88 100644
--- a/include/linux/mfd/tmio.h
+++ b/include/linux/mfd/tmio.h
@@ -111,6 +111,8 @@ struct dma_chan;
111 * data for the MMC controller 111 * data for the MMC controller
112 */ 112 */
113struct tmio_mmc_data { 113struct tmio_mmc_data {
114 void *chan_priv_tx;
115 void *chan_priv_rx;
114 unsigned int hclk; 116 unsigned int hclk;
115 unsigned long capabilities; 117 unsigned long capabilities;
116 unsigned long capabilities2; 118 unsigned long capabilities2;
diff --git a/include/linux/mmc/sh_mobile_sdhi.h b/include/linux/mmc/sh_mobile_sdhi.h
index da77e5e2041d..95d6f0314a7d 100644
--- a/include/linux/mmc/sh_mobile_sdhi.h
+++ b/include/linux/mmc/sh_mobile_sdhi.h
@@ -7,14 +7,4 @@
7#define SH_MOBILE_SDHI_IRQ_SDCARD "sdcard" 7#define SH_MOBILE_SDHI_IRQ_SDCARD "sdcard"
8#define SH_MOBILE_SDHI_IRQ_SDIO "sdio" 8#define SH_MOBILE_SDHI_IRQ_SDIO "sdio"
9 9
10struct sh_mobile_sdhi_info {
11 int dma_slave_tx;
12 int dma_slave_rx;
13 unsigned long tmio_flags;
14 unsigned long tmio_caps;
15 unsigned long tmio_caps2;
16 u32 tmio_ocr_mask; /* available MMC voltages */
17 unsigned int cd_gpio;
18};
19
20#endif /* LINUX_MMC_SH_MOBILE_SDHI_H */ 10#endif /* LINUX_MMC_SH_MOBILE_SDHI_H */
diff --git a/include/linux/platform_data/dma-imx-sdma.h b/include/linux/platform_data/dma-imx-sdma.h
index eabac4e2fc99..2d08816720f6 100644
--- a/include/linux/platform_data/dma-imx-sdma.h
+++ b/include/linux/platform_data/dma-imx-sdma.h
@@ -48,6 +48,9 @@ struct sdma_script_start_addrs {
48 s32 ssish_2_mcu_addr; 48 s32 ssish_2_mcu_addr;
49 s32 hdmi_dma_addr; 49 s32 hdmi_dma_addr;
50 /* End of v2 array */ 50 /* End of v2 array */
51 s32 zcanfd_2_mcu_addr;
52 s32 zqspi_2_mcu_addr;
53 /* End of v3 array */
51}; 54};
52 55
53/** 56/**
diff --git a/include/linux/shdma-base.h b/include/linux/shdma-base.h
index abdf1f229dc3..dd0ba502ccb3 100644
--- a/include/linux/shdma-base.h
+++ b/include/linux/shdma-base.h
@@ -69,6 +69,7 @@ struct shdma_chan {
69 int id; /* Raw id of this channel */ 69 int id; /* Raw id of this channel */
70 int irq; /* Channel IRQ */ 70 int irq; /* Channel IRQ */
71 int slave_id; /* Client ID for slave DMA */ 71 int slave_id; /* Client ID for slave DMA */
72 int real_slave_id; /* argument passed to filter function */
72 int hw_req; /* DMA request line for slave DMA - same 73 int hw_req; /* DMA request line for slave DMA - same
73 * as MID/RID, used with DT */ 74 * as MID/RID, used with DT */
74 enum shdma_pm_state pm_state; 75 enum shdma_pm_state pm_state;