From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF34F42CAE4 for ; Mon, 27 Jul 2026 20:32:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184367; cv=none; b=Ew1WIMEygzj+Sfj7tEFySnJHut7Pr4vn9H0m+iIFK6npONF9K6DATbctkFwCJFyKy2L6VJvOi92NNk/8XlwEsFyHBmxSWwIiMQHuqG2jn0Ho/othIdtU0BV9J9Dk3HmlAdYjUgUrhqdQ5BigTBx9f00ZnQ/8HqlrcGD92nISuKA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184367; c=relaxed/simple; bh=VFUFpJ/yE12S767fT+znzGViDqnMVnfXKsvCYYCqxWQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iC6ZtKsB7WqMgtwfod0T728fJD8k7RRR7xMtspO7RNgRDMur6OBNH6a/nBd999ZcIZUUsDX/3kLDJ9uRtZVLvTqG7MF24BB01sFlI1APLSuIAH7IRVHL0zc+9t5YAqlZhPyJHCPCe54fKX5lk2pHE9lBpgKMcw0+H2dridt/NjI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UPOoHe2d; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UPOoHe2d" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2cce6a0c9c3so36268975ad.1 for ; Mon, 27 Jul 2026 13:32:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785184365; x=1785789165; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=x9DOHXLMhCLFc6gwCX9eKIgno2sve6ghbqP9ZSdXa/M=; b=UPOoHe2dzAWWZ0BTY/n0QpXuOTl+WSBCugS5oscsy4OsbZMC/blBViHoWz0gyiVIQt NgRqYNZdCj8btjLAYlK6gtoZP+xdzOCeS8aGw+GAoVLVJBXz6rnBfuK6xAktunhbWgyX NDXFVRNHYhsdYOEqgSroFbQS1aaDBonkk8KbBydFl7abvekFa9USDq7z9TkgKTeqTSTd bbvnCeg4pDvK3OZdpRlq8mCwwAcg7kTt3YGA5Bip/E3EeVw4j/ifL3cZIZI/TNZQaVAo ZORX24BxsEhDR/CmygHpPxRf7nlrTvAU4rYAZ/fuDvdkMPxkwbTUr6mAh6LeJfkeqhaf AcIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785184365; x=1785789165; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=x9DOHXLMhCLFc6gwCX9eKIgno2sve6ghbqP9ZSdXa/M=; b=VjFahlTI4bzzQcLDYOADlqrowrfuQYdmVvmpM9POH/BJbAmYMgQbASyhBy/lzGX/n1 Fulcpr4326jeWXpIYEymUX595VvbQQ1AAhl6NJAC+fnqWQ7clYa0YWGv8m3WxaHOyT6d SUBMQS+xGMKekEv+O5c2K4kaNJI9QN+HfXNn+jgrYyriOtHQ/SrgSnjm8UQl9iJgJza4 OaArU8fdXwtTh/qOmTdaWYpy5IvcW4KzFN+hCFv13E6ztywTuqJXL0DMTaBwFHuf9J+2 2EC37EjAyZfRuIChg8uVMAE1IH9ERi/MMR3dtISQrrJXKAAyBFiLDti2mRnGY2xukdvg YzLw== X-Forwarded-Encrypted: i=1; AHgh+Ro5VNjSwa5BPzuIKZEiLCLNrFaumRy/b6wz5u9SpBEPnmLHlnT2UT4tN1mtDqtXparp8A73KU5OUEy6h0g=@vger.kernel.org X-Gm-Message-State: AOJu0YxrGIP8sXGgDFBQkfc47V+nzkjlfbmfUDnAr5swBygW/KOc/B9z 9ahpqm48EEb1GioiD0Zj9itNDDzMsYeHXmOkfN5RiNfhKyLsZ9f/9LJO X-Gm-Gg: AR+sD11nrQPZYTZXICMK2X3cFLQrmmdPIF78eRaXnDK1zrgO62SAuDiCn48p+gXFKEY aPyS6xLMwOMqoNF2IEtGdPqaRVrE9Jq1sHGLX7Yu8AfOb4M1WZrKPxMAyY0SnwrMMr5CF7luDQx JVQVsMQLBE8T7vqGE7F/hkg+n6wIUhYP/IeRUD2gwe//0DViGGYWAdmYUknw8w/UC3x0C5jLBRw aow0zfVYCB/vd3RkHQS1j0mG3Owb7UDOzmR+/xtud9xX58fuAeSGIGUE8D2JrkDrqEWkMF5r1+f EjVqGv333NCZJVypwGCG+6X8Yk/6w59FtxQLpMEnAEA+6eMB2zIKH+cdTnTvWC30+p8tzfTg+e8 NG1BInh4T27i/Fluc79ZucNRm1jjurTebCXJmc4MnnaMcudZx7K0vL9j/l/j/QK1b0b5UFyPrwG wpomq8 X-Received: by 2002:a17:903:2412:b0:2cf:b23d:79c with SMTP id d9443c01a7336-2d00f4445e5mr6461445ad.43.1785184365226; Mon, 27 Jul 2026 13:32:45 -0700 (PDT) Received: from cryptic.lan ([2001:569:7fab:e200:3789:64f9:8855:c0af]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cfde59b768sm41551805ad.4.2026.07.27.13.32.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 13:32:40 -0700 (PDT) From: Allen Pais To: Vinod Koul , Frank Li Cc: Allen Pais , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Kees Cook Subject: [PATCH v2 24/64] dmaengine: txx9dmac: route callbacks via channel BH Date: Mon, 27 Jul 2026 13:28:52 -0700 Message-ID: <8c967b8a3cdc82ba43494ac218ca7c0ae2450993.1785183549.git.allen.lkml@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: References: <20260108080332.2341725-1-allen.lkml@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Use the per-channel BH helpers for descriptor completion handling and schedule per-channel work from both channel and controller IRQ paths. Signed-off-by: Allen Pais --- drivers/dma/txx9dmac.c | 12 ++++++------ drivers/dma/txx9dmac.h | 1 - 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c index 05622b68a936..6269baa28c51 100644 --- a/drivers/dma/txx9dmac.c +++ b/drivers/dma/txx9dmac.c @@ -601,13 +601,13 @@ static void txx9dmac_scan_descriptors(struct txx9dmac_chan *dc) } } -static void txx9dmac_chan_tasklet(struct tasklet_struct *t) +static void txx9dmac_chan_tasklet(struct dma_chan *chan) { int irq; u32 csr; struct txx9dmac_chan *dc; - dc = from_tasklet(dc, t, tasklet); + dc = container_of(chan, struct txx9dmac_chan, chan); csr = channel_readl(dc, CSR); dev_vdbg(chan2dev(&dc->chan), "tasklet: status=%x\n", csr); @@ -628,7 +628,7 @@ static irqreturn_t txx9dmac_chan_interrupt(int irq, void *dev_id) dev_vdbg(chan2dev(&dc->chan), "interrupt: status=%#x\n", channel_readl(dc, CSR)); - tasklet_schedule(&dc->tasklet); + dma_chan_schedule_bh(&dc->chan); /* * Just disable the interrupts. We'll turn them back on in the * softirq handler. @@ -659,7 +659,7 @@ static void txx9dmac_tasklet(struct tasklet_struct *t) spin_lock(&dc->lock); if (csr & (TXX9_DMA_CSR_ABCHC | TXX9_DMA_CSR_NCHNC | TXX9_DMA_CSR_NTRNFC)) - txx9dmac_scan_descriptors(dc); + dma_chan_schedule_bh(&dc->chan); spin_unlock(&dc->lock); } } @@ -1113,7 +1113,7 @@ static int __init txx9dmac_chan_probe(struct platform_device *pdev) irq = platform_get_irq(pdev, 0); if (irq < 0) return irq; - tasklet_setup(&dc->tasklet, txx9dmac_chan_tasklet); + dma_chan_init_bh(&dc->chan, txx9dmac_chan_tasklet); dc->irq = irq; err = devm_request_irq(&pdev->dev, dc->irq, txx9dmac_chan_interrupt, 0, dev_name(&pdev->dev), dc); @@ -1159,7 +1159,7 @@ static void txx9dmac_chan_remove(struct platform_device *pdev) dma_async_device_unregister(&dc->dma); if (dc->irq >= 0) { devm_free_irq(&pdev->dev, dc->irq, dc); - tasklet_kill(&dc->tasklet); + dma_chan_kill_bh(&dc->chan); } dc->ddev->chan[pdev->id % TXX9_DMA_MAX_NR_CHANNELS] = NULL; } diff --git a/drivers/dma/txx9dmac.h b/drivers/dma/txx9dmac.h index aa53eafb1519..f2abedb73d49 100644 --- a/drivers/dma/txx9dmac.h +++ b/drivers/dma/txx9dmac.h @@ -162,7 +162,6 @@ struct txx9dmac_chan { struct dma_device dma; struct txx9dmac_dev *ddev; void __iomem *ch_regs; - struct tasklet_struct tasklet; int irq; u32 ccr; -- 2.43.0