From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Aleksander Jan Bajkowski <olek2@wp.pl>,
"David S . Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>,
john@phrozen.org, tsbogend@alpha.franken.de, hauke@hauke-m.de,
maz@kernel.org, linux-mips@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 013/146] MIPS: lantiq: dma: reset correct number of channel
Date: Mon, 8 Nov 2021 12:42:40 -0500 [thread overview]
Message-ID: <20211108174453.1187052-13-sashal@kernel.org> (raw)
In-Reply-To: <20211108174453.1187052-1-sashal@kernel.org>
From: Aleksander Jan Bajkowski <olek2@wp.pl>
[ Upstream commit 5ca9ce2ba4d5884cd94d1a856c675ab1242cd242 ]
Different SoCs have a different number of channels, e.g .:
* amazon-se has 10 channels,
* danube+ar9 have 20 channels,
* vr9 has 28 channels,
* ar10 has 24 channels.
We can read the ID register and, depending on the reported
number of channels, reset the appropriate number of channels.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
arch/mips/lantiq/xway/dma.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c
index 2784715933d13..364ab39eb8a41 100644
--- a/arch/mips/lantiq/xway/dma.c
+++ b/arch/mips/lantiq/xway/dma.c
@@ -31,6 +31,7 @@
#define LTQ_DMA_PCTRL 0x44
#define LTQ_DMA_IRNEN 0xf4
+#define DMA_ID_CHNR GENMASK(26, 20) /* channel number */
#define DMA_DESCPT BIT(3) /* descriptor complete irq */
#define DMA_TX BIT(8) /* TX channel direction */
#define DMA_CHAN_ON BIT(0) /* channel on / off bit */
@@ -41,7 +42,6 @@
#define DMA_POLL BIT(31) /* turn on channel polling */
#define DMA_CLK_DIV4 BIT(6) /* polling clock divider */
#define DMA_2W_BURST BIT(1) /* 2 word burst length */
-#define DMA_MAX_CHANNEL 20 /* the soc has 20 channels */
#define DMA_ETOP_ENDIANNESS (0xf << 8) /* endianness swap etop channels */
#define DMA_WEIGHT (BIT(17) | BIT(16)) /* default channel wheight */
@@ -207,7 +207,7 @@ ltq_dma_init(struct platform_device *pdev)
{
struct clk *clk;
struct resource *res;
- unsigned id;
+ unsigned int id, nchannels;
int i;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -229,17 +229,18 @@ ltq_dma_init(struct platform_device *pdev)
ltq_dma_w32(0, LTQ_DMA_IRNEN);
/* reset/configure each channel */
- for (i = 0; i < DMA_MAX_CHANNEL; i++) {
+ id = ltq_dma_r32(LTQ_DMA_ID);
+ nchannels = ((id & DMA_ID_CHNR) >> 20);
+ for (i = 0; i < nchannels; i++) {
ltq_dma_w32(i, LTQ_DMA_CS);
ltq_dma_w32(DMA_CHAN_RST, LTQ_DMA_CCTRL);
ltq_dma_w32(DMA_POLL | DMA_CLK_DIV4, LTQ_DMA_CPOLL);
ltq_dma_w32_mask(DMA_CHAN_ON, 0, LTQ_DMA_CCTRL);
}
- id = ltq_dma_r32(LTQ_DMA_ID);
dev_info(&pdev->dev,
"Init done - hw rev: %X, ports: %d, channels: %d\n",
- id & 0x1f, (id >> 16) & 0xf, id >> 20);
+ id & 0x1f, (id >> 16) & 0xf, nchannels);
return 0;
}
--
2.33.0
next prev parent reply other threads:[~2021-11-09 1:00 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-08 17:42 [PATCH AUTOSEL 5.15 001/146] dma-buf: WARN on dmabuf release with pending attachments Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 002/146] drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2) Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 003/146] drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1 Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 004/146] drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6 Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 005/146] Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg() Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 006/146] Bluetooth: fix use-after-free error in lock_sock_nested() Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 007/146] Bluetooth: call sock_hold earlier in sco_conn_del Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 008/146] drm/panel-orientation-quirks: add Valve Steam Deck Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 009/146] rcutorture: Avoid problematic critical section nesting on PREEMPT_RT Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 010/146] platform/x86: wmi: do not fail if disabling fails Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 011/146] drm/amdgpu: move iommu_resume before ip init/resume Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 012/146] MIPS: lantiq: dma: add small delay after reset Sasha Levin
2021-11-08 17:42 ` Sasha Levin [this message]
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 014/146] locking/lockdep: Avoid RCU-induced noinstr fail Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 015/146] net: sched: update default qdisc visibility after Tx queue cnt changes Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 016/146] ACPI: resources: Add DMI-based legacy IRQ override quirk Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 017/146] rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 018/146] smackfs: Fix use-after-free in netlbl_catmap_walk() Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 019/146] ath11k: Align bss_chan_info structure with firmware Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 020/146] crypto: aesni - check walk.nbytes instead of err Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 021/146] NET: IPV4: fix error "do not initialise globals to 0" Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 022/146] x86/mm/64: Improve stack overflow warnings Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 023/146] x86: Increase exception stack sizes Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 024/146] mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 025/146] mwifiex: Properly initialize private structure on interface type changes Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 026/146] spi: Check we have a spi_device_id for each DT compatible Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 027/146] fscrypt: allow 256-bit master keys with AES-256-XTS Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 028/146] drm/amdgpu: Fix MMIO access page fault Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 029/146] drm/amd/display: Fix null pointer dereference for encoders Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 030/146] crypto: api - Fix built-in testing dependency failures Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 031/146] selftests: net: fib_nexthops: Wait before checking reported idle time Sasha Levin
2021-11-08 17:42 ` [PATCH AUTOSEL 5.15 032/146] leds: trigger: use RCU to protect the led_cdevs list Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 033/146] ath11k: Avoid reg rules update during firmware recovery Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 034/146] ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 035/146] ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 036/146] ath10k: high latency fixes for beacon buffer Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 037/146] octeontx2-pf: Enable promisc/allmulti match MCAM entries Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 038/146] media: mt9p031: Fix corrupted frame after restarting stream Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 039/146] media: netup_unidvb: handle interrupt properly according to the firmware Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 040/146] media: atomisp: Fix error handling in probe Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 041/146] media: stm32: Potential NULL pointer dereference in dcmi_irq_thread() Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 042/146] media: uvcvideo: Set capability in s_param Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 043/146] media: uvcvideo: Return -EIO for control errors Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 044/146] media: uvcvideo: Set unique vdev name based in type Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 045/146] media: vidtv: Fix memory leak in remove Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 046/146] media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe() Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 047/146] media: s5p-mfc: Add checking to s5p_mfc_probe() Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-08 17:43 ` [PATCH AUTOSEL 5.15 048/146] media: videobuf2: rework vb2_mem_ops API Sasha Levin
2021-11-08 17:43 ` Sasha Levin
2021-11-09 7:54 ` AUTOSEL series truncated was -- Re: [PATCH AUTOSEL 5.15 001/146] dma-buf: WARN on dmabuf release with pending attachments Pavel Machek
2021-11-09 7:54 ` Pavel Machek
2021-11-09 8:07 ` Christian König
2021-11-09 8:07 ` Christian König
2021-11-09 16:05 ` Randy Dunlap
2021-11-09 16:05 ` Randy Dunlap
2021-11-14 14:25 ` Sasha Levin
2021-11-14 14:25 ` Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211108174453.1187052-13-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=davem@davemloft.net \
--cc=hauke@hauke-m.de \
--cc=john@phrozen.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=maz@kernel.org \
--cc=olek2@wp.pl \
--cc=stable@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.