summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-10-01 15:39:01 +0100
committerMark Brown <broonie@kernel.org>2026-10-01 15:39:01 +0100
commitbbfd5527b72274c67cdcabc032e675c2f6675b23 (patch)
tree7da1927a5f4201ffa5f5805cbde2af59d5396ffc /include/linux
parent212ef79b9a47cb0da15850ad943a1f25605df1b4 (diff)
parent0a8dda0a15d3926422d286567f945a05328a4ac6 (diff)
downloadlinux-next-bbfd5527b72274c67cdcabc032e675c2f6675b23.tar.gz
linux-next-bbfd5527b72274c67cdcabc032e675c2f6675b23.zip
Merge branch 'next' of https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git
# Conflicts: # Documentation/devicetree/bindings/usb/am33xx-usb.txt # Documentation/devicetree/bindings/usb/da8xx-usb.txt
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/dma/edma.h3
-rw-r--r--include/linux/dma/imx-dma.h5
-rw-r--r--include/linux/dmaengine.h23
-rw-r--r--include/linux/fsl/bestcomm/gen_bd.h8
4 files changed, 20 insertions, 19 deletions
diff --git a/include/linux/dma/edma.h b/include/linux/dma/edma.h
index 3c8e2ef9dee0..affd896563a1 100644
--- a/include/linux/dma/edma.h
+++ b/include/linux/dma/edma.h
@@ -130,7 +130,7 @@ struct dw_edma_chip {
u16 ll_wr_cnt;
u16 ll_rd_cnt;
- /* link list address */
+ /* Linked-list regions must not cross a 4 GiB address boundary. */
struct dw_edma_region ll_region_wr[HDMA_MAX_WR_CH];
struct dw_edma_region ll_region_rd[HDMA_MAX_RD_CH];
@@ -147,6 +147,7 @@ struct dw_edma_chip {
struct dw_edma *dw;
bool cfg_non_ll;
+ u32 ch_space_sz;
};
/* Export to the platform drivers */
diff --git a/include/linux/dma/imx-dma.h b/include/linux/dma/imx-dma.h
index 76a8de9ae151..16e491f63883 100644
--- a/include/linux/dma/imx-dma.h
+++ b/include/linux/dma/imx-dma.h
@@ -57,11 +57,6 @@ struct imx_dma_data {
int priority;
};
-static inline int imx_dma_is_ipu(struct dma_chan *chan)
-{
- return !strcmp(dev_name(chan->device->dev), "ipu-core");
-}
-
static inline int imx_dma_is_general_purpose(struct dma_chan *chan)
{
return !strcmp(chan->device->dev->driver->name, "imx-sdma") ||
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index f322e501ff62..1b57bc4a7e72 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -325,7 +325,8 @@ struct dma_router {
* @lock: protect between config and prepare transfer when driver have not
* implemented callback device_prep_config_sg().
* @chan_id: channel ID for sysfs
- * @dev: class device for sysfs
+ * @chan_dev: class channel device for sysfs, some device use it for per-channel
+ * IOMMU mapping.
* @name: backlink name for sysfs
* @dbg_client_name: slave name for debugfs in format:
* dev_name(requester's dev):channel name, for example: "2b00000.mcasp:tx"
@@ -351,7 +352,14 @@ struct dma_chan {
/* sysfs */
int chan_id;
- struct dma_chan_dev *dev;
+ union {
+ struct dma_chan_dev *chan_dev;
+ /*
+ * Use chan_dev; dev will be removed once all users are
+ * converted.
+ */
+ struct dma_chan_dev *dev;
+ };
const char *name;
#ifdef CONFIG_DEBUG_FS
char *dbg_client_name;
@@ -532,7 +540,7 @@ struct dma_slave_caps {
static inline const char *dma_chan_name(struct dma_chan *chan)
{
- return dev_name(&chan->dev->device);
+ return dev_name(&chan->chan_dev->device);
}
/**
@@ -1794,10 +1802,15 @@ dmaengine_get_direction_text(enum dma_transfer_direction dir)
}
}
+static inline struct device *dmaengine_chan_dev(struct dma_chan *chan)
+{
+ return &chan->chan_dev->device;
+}
+
static inline struct device *dmaengine_get_dma_device(struct dma_chan *chan)
{
- if (chan->dev->chan_dma_dev)
- return &chan->dev->device;
+ if (chan->chan_dev->chan_dma_dev)
+ return dmaengine_chan_dev(chan);
return chan->device->dev;
}
diff --git a/include/linux/fsl/bestcomm/gen_bd.h b/include/linux/fsl/bestcomm/gen_bd.h
index aeb312a1cd00..7253d308d77a 100644
--- a/include/linux/fsl/bestcomm/gen_bd.h
+++ b/include/linux/fsl/bestcomm/gen_bd.h
@@ -16,10 +16,6 @@ struct bcom_gen_bd {
};
-extern struct bcom_task *
-bcom_gen_bd_rx_init(int queue_len, phys_addr_t fifo,
- int initiator, int ipr, int maxbufsize);
-
extern int
bcom_gen_bd_rx_reset(struct bcom_task *tsk);
@@ -27,10 +23,6 @@ extern void
bcom_gen_bd_rx_release(struct bcom_task *tsk);
-extern struct bcom_task *
-bcom_gen_bd_tx_init(int queue_len, phys_addr_t fifo,
- int initiator, int ipr);
-
extern int
bcom_gen_bd_tx_reset(struct bcom_task *tsk);