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

Commit ecb7dece authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Vinod Koul
Browse files

dmaengine: edma: DT: Change memcpy channel array from 16bit to 32bit type



This change makes the DT file to be easier to read since the memcpy
channels array does not need the '/bits/ 16' to be specified, which might
confuse some people.

Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarRob Herring <robh@kernel.org>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent 8005c49d
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -22,8 +22,7 @@ Required properties:
Optional properties:
- ti,hwmods:	Name of the hwmods associated to the eDMA CC
- ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
		these channels will be SW triggered channels. The list must
		contain 16 bits numbers, see example.
		these channels will be SW triggered channels. See example.
- ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
		the driver, they are allocated to be used by for example the
		DSP. See example.
@@ -56,7 +55,7 @@ edma: edma@49000000 {
	ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 7>, <&edma_tptc2 0>;

	/* Channel 20 and 21 is allocated for memcpy */
	ti,edma-memcpy-channels = /bits/ 16 <20 21>;
	ti,edma-memcpy-channels = <20 21>;
	/* The following PaRAM slots are reserved: 35-45 and 100-110 */
	ti,edma-reserved-slot-ranges = /bits/ 16 <35 10>,
				       /bits/ 16 <100 10>;
+10 −12
Original line number Diff line number Diff line
@@ -1752,16 +1752,14 @@ static enum dma_status edma_tx_status(struct dma_chan *chan,
	return ret;
}

static bool edma_is_memcpy_channel(int ch_num, u16 *memcpy_channels)
static bool edma_is_memcpy_channel(int ch_num, s32 *memcpy_channels)
{
	s16 *memcpy_ch = memcpy_channels;

	if (!memcpy_channels)
		return false;
	while (*memcpy_ch != -1) {
		if (*memcpy_ch == ch_num)
	while (*memcpy_channels != -1) {
		if (*memcpy_channels == ch_num)
			return true;
		memcpy_ch++;
		memcpy_channels++;
	}
	return false;
}
@@ -1775,7 +1773,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode)
{
	struct dma_device *s_ddev = &ecc->dma_slave;
	struct dma_device *m_ddev = NULL;
	s16 *memcpy_channels = ecc->info->memcpy_channels;
	s32 *memcpy_channels = ecc->info->memcpy_channels;
	int i, j;

	dma_cap_zero(s_ddev->cap_mask);
@@ -1996,16 +1994,16 @@ static struct edma_soc_info *edma_setup_info_from_dt(struct device *dev,
	prop = of_find_property(dev->of_node, "ti,edma-memcpy-channels", &sz);
	if (prop) {
		const char pname[] = "ti,edma-memcpy-channels";
		size_t nelm = sz / sizeof(s16);
		s16 *memcpy_ch;
		size_t nelm = sz / sizeof(s32);
		s32 *memcpy_ch;

		memcpy_ch = devm_kcalloc(dev, nelm + 1, sizeof(s16),
		memcpy_ch = devm_kcalloc(dev, nelm + 1, sizeof(s32),
					 GFP_KERNEL);
		if (!memcpy_ch)
			return ERR_PTR(-ENOMEM);

		ret = of_property_read_u16_array(dev->of_node, pname,
						 (u16 *)memcpy_ch, nelm);
		ret = of_property_read_u32_array(dev->of_node, pname,
						 (u32 *)memcpy_ch, nelm);
		if (ret)
			return ERR_PTR(ret);

+1 −1
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ struct edma_soc_info {
	struct edma_rsv_info	*rsv;

	/* List of channels allocated for memcpy, terminated with -1 */
	s16			*memcpy_channels;
	s32			*memcpy_channels;

	s8	(*queue_priority_mapping)[2];
	const s16	(*xbar_chans)[2];