diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-24 12:49:37 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-24 12:49:37 -0400 |
| commit | d6a4c0e5d3d433ef296f8f417e835329a834a256 (patch) | |
| tree | a65de394ea1afeeccee9f84dc7e6cd21e2660639 /include/linux | |
| parent | 474095e46cd14421821da3201a9fd6a4c070996b (diff) | |
| parent | cdde0e61cf2d41123604c6c9d8f09ef5c23464ee (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.h | 36 | ||||
| -rw-r--r-- | include/linux/mfd/tmio.h | 2 | ||||
| -rw-r--r-- | include/linux/mmc/sh_mobile_sdhi.h | 10 | ||||
| -rw-r--r-- | include/linux/platform_data/dma-imx-sdma.h | 3 | ||||
| -rw-r--r-- | include/linux/shdma-base.h | 1 |
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 | ||
| 829 | static 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 | |||
| 835 | static inline void | 823 | static inline void |
| 836 | dma_set_maxpq(struct dma_device *dma, int maxpq, int has_pq_continue) | 824 | dma_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); | |||
| 1098 | void dma_run_dependencies(struct dma_async_tx_descriptor *tx); | 1086 | void dma_run_dependencies(struct dma_async_tx_descriptor *tx); |
| 1099 | struct dma_chan *dma_get_slave_channel(struct dma_chan *chan); | 1087 | struct dma_chan *dma_get_slave_channel(struct dma_chan *chan); |
| 1100 | struct dma_chan *dma_get_any_slave_channel(struct dma_device *device); | 1088 | struct dma_chan *dma_get_any_slave_channel(struct dma_device *device); |
| 1101 | struct 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 | |||
| 1122 | struct dma_page_list { | ||
| 1123 | char __user *base_address; | ||
| 1124 | int nr_pages; | ||
| 1125 | struct page **pages; | ||
| 1126 | }; | ||
| 1127 | |||
| 1128 | struct dma_pinned_list { | ||
| 1129 | int nr_iovecs; | ||
| 1130 | struct dma_page_list page_list[0]; | ||
| 1131 | }; | ||
| 1132 | |||
| 1133 | struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len); | ||
| 1134 | void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list); | ||
| 1135 | |||
| 1136 | dma_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); | ||
| 1138 | dma_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 | */ |
| 113 | struct tmio_mmc_data { | 113 | struct 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 | ||
| 10 | struct 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; |
