From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 7E56A435A93 for ; Mon, 27 Jul 2026 20:33:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184390; cv=none; b=BKZ3XAvNSUX298wZMoe+h/BeUUEurCWMu7P3hEcXV5G2B47nS0u/d0CKBG2Ssmbs6NnkcnDI66UWgtZUZsoBsrwLLDCOx7zcHpq9OaVleM2c5r5Hs64D3chbkekCl59uFIkVm7oOEaREmpSSwqHN86J7XFvuhvC8m+yX4Dn6M/M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184390; c=relaxed/simple; bh=rwpkv3U4oxlJnzkaiO4BXPV8Z4PCynKPn3PjP6Afv2I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U4FBlz2VueqKuBfrZLwBjexos9bvU4jbbqQGtYFmcWz9m1g1hxno1Dzjk3uZG+BndK2xFuXuaMhPh15GG5SjZuYKGpr392XQznofai5Ry1FbTRSfrywWE4dkpwRP/+beKd8ec9HDBKdi5Oh9bRrQ1wwu1A3tb7wGK5nOOMwmyoo= 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=ZEyqyJjE; arc=none smtp.client-ip=209.85.214.181 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="ZEyqyJjE" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2cfff5f88dbso12623085ad.3 for ; Mon, 27 Jul 2026 13:33:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785184389; x=1785789189; 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=XalOy749noF7U/PkVHpodOoYcCuV0B+dPZogs4Uvtlo=; b=ZEyqyJjEH/uhSQQvNYfpMxMQGepBRbvfA2RmQB5AwBPbDPoTdCT8wHAgaBGqogL2k1 0IDUF2M1ByfAQ+uPQL84klb5BLyLE/FEUXM9I/uhJ5MbDzDXaaoePXTrv/7FS/OBYbfC 3ePG507MuhfsEbniMgoxg4tCQ9Jlo1qV/xxF/54D0F0QrvFR6ArcCw1l+ShRz9QpS35+ IPiDQtuZReFqUdOTlg/O/pXKoGBKXbchiZ76/QAocIwgPjEnGXwEI89V6Fhbz2zsLA6w HOEcNeHB2VEZwQYiNJftG5nn/dzRG4yOnhslecPaccK9SLoeTSY1ICcJL0FjRtIyn7XE AsLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785184389; x=1785789189; 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=XalOy749noF7U/PkVHpodOoYcCuV0B+dPZogs4Uvtlo=; b=D/BlJnPriipqgLYYJfUh31C2Mwq8vVjbJY1QdgtWHTQ8NGyW7jtxY+/PCMauRmnuzM 9ou1xJ6dwJgdsRd178M6sIfDQeznp5zlknP5F0dJdkMe7zDVMoU1ZxBtR7yi6Kmhveb0 rU6nvy7G/GgcfFwnCPexBlrHuL9h7PMIe+NYG6jjVNWg66UKRA3CSVmij50F2bqxlgB4 J83j8O+esWyVAaV0auqXO0ttdPYhwDXy8+WjZt+8pu/PvrxUYP6NktBqD+QyYdSBjv/6 0XvNUzFE0oVHeptrXkdgd1cpq7v+tMTZ0vMI0JaSbnOjlzwnSWxQavGHByVHp5eUKYNz vsDQ== X-Forwarded-Encrypted: i=1; AHgh+RpIpk1cRRC3+2DpYkhs+zBnajpzF0tN1wrd+7J5jp4QkQkO33kG+bGdEKxB6G5a28wrTzcBsVVkfPmRVmM=@vger.kernel.org X-Gm-Message-State: AOJu0YzDKrYL0A5Xu4IYZENRV8U5oPBj3H6I75QskjyC4isj8fG6Mjky 9dUMO3cqQNw4f/ZQsjgZoZwloyN2SrqDKZJZBpiVwR8qbx2PxMZqRyD5 X-Gm-Gg: AR+sD11NPmW31YEXtdgvS4fK2aj3kmb4m/kG14jE2fH7IPT/u5Lh7CROgLqJOQzk9aE 4V8elpGrVtxUg1KGwizZJm8YRCYmeD9nD6NCrwsoDMWDBXE4cP2qvgpiN+8yA3CPFj2eIVIqkNk +W0uZdXEte4u3JNwA1M0Xq1WFP87NGuN3jBe4IN98CD24ATCguH7Xs20uDJ4fKb0vMUQQnFjSQa UHKul99U15EDT350h7tdO9pNU58e6ne3nSaZA8rifT/BxX4IVFL8u7MgN+/rMdjA/dyn1lyq5cP Od+L73bjvlGuzs20gT9jg4GlObObHicB77mITazfweacqHtihshYX522cuFp8B/xmN6RQ8nv33p eF9MgMx/h2AEHPcscfPgUUihGS2g5qZCxRUAMybOyKRTJK9ZUkitzHGQ7YjzQb7atGwqyePxRf6 JeiFcN X-Received: by 2002:a17:903:3883:b0:2c6:9f66:d573 with SMTP id d9443c01a7336-2d00f269a27mr8646415ad.2.1785184388895; Mon, 27 Jul 2026 13:33:08 -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.33.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 13:33:08 -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 31/64] dmaengine: pl330: route callbacks via channel BH Date: Mon, 27 Jul 2026 13:28:59 -0700 Message-ID: <6043500b5b32bf53eb0cfc4d68e82d5822ac8f60.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 Convert the per-channel tasklet to dma_chan_*_bh while keeping the controller tasklet for non-callback events. Signed-off-by: Allen Pais --- drivers/dma/pl330.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 25ba84b18704..f4940bd1ab84 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -417,9 +417,6 @@ enum desc_status { }; struct dma_pl330_chan { - /* Schedule desc completion */ - struct tasklet_struct task; - /* DMA-Engine Channel */ struct dma_chan chan; @@ -1574,7 +1571,7 @@ static void dma_pl330_rqcb(struct dma_pl330_desc *desc, enum pl330_op_err err) spin_unlock_irqrestore(&pch->lock, flags); - tasklet_schedule(&pch->task); + dma_chan_schedule_bh(&pch->chan); } static void pl330_dotask(struct tasklet_struct *t) @@ -2060,14 +2057,15 @@ static inline void fill_queue(struct dma_pl330_chan *pch) desc->status = DONE; dev_err(pch->dmac->ddma.dev, "%s:%d Bad Desc(%d)\n", __func__, __LINE__, desc->txd.cookie); - tasklet_schedule(&pch->task); + dma_chan_schedule_bh(&pch->chan); } } } -static void pl330_tasklet(struct tasklet_struct *t) +static void pl330_tasklet(struct dma_chan *chan) { - struct dma_pl330_chan *pch = from_tasklet(pch, t, task); + struct dma_pl330_chan *pch = container_of(chan, struct dma_pl330_chan, + chan); struct dma_pl330_desc *desc, *_dt; unsigned long flags; bool power_down = false; @@ -2173,7 +2171,7 @@ static int pl330_alloc_chan_resources(struct dma_chan *chan) return -ENOMEM; } - tasklet_setup(&pch->task, pl330_tasklet); + dma_chan_init_bh(&pch->chan, pl330_tasklet); spin_unlock_irqrestore(&pl330->lock, flags); @@ -2354,7 +2352,7 @@ static void pl330_free_chan_resources(struct dma_chan *chan) struct pl330_dmac *pl330 = pch->dmac; unsigned long flags; - tasklet_kill(&pch->task); + dma_chan_kill_bh(&pch->chan); pm_runtime_get_sync(pch->dmac->ddma.dev); spin_lock_irqsave(&pl330->lock, flags); @@ -2490,7 +2488,7 @@ static void pl330_issue_pending(struct dma_chan *chan) list_splice_tail_init(&pch->submitted_list, &pch->work_list); spin_unlock_irqrestore(&pch->lock, flags); - pl330_tasklet(&pch->task); + pl330_tasklet(&pch->chan); } /* -- 2.43.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 C20F23D3D12 for ; Mon, 27 Jul 2026 20:36:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184569; cv=none; b=Gt70esfA/rl1D++ihqlcdj3f/woRi/IsPngFBBwhwTiaRxdN62+jrspiNxb7WG5h+gUBYcpHKOwr3tIeyeNP0EebG3pgE6ZA12RcyEsp7gvRhQAqS0Vmu/IKraholv8NZH5V8CxfDgdEUs59W+QohiLo8MybRBzJH7ML1NBIcrE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785184569; c=relaxed/simple; bh=rwpkv3U4oxlJnzkaiO4BXPV8Z4PCynKPn3PjP6Afv2I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AXOF5ImZ2ICRSPbieEqdLGpU0VVrcfILRZAN3K95BAMgO8OdV/JyhQX5O0h/KEMtNGn8KH4yOwbBXkgTwjHJtdczzC4C5BX0OwPw7FKO5rpE2SuUI3HFzAEPInbwLtkLwsqXrm/wvSOletBx5sxstDNZUjMFl0abuvfunw3S9bc= 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=npnhAdUh; arc=none smtp.client-ip=209.85.214.171 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="npnhAdUh" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2caea3f742bso38348275ad.0 for ; Mon, 27 Jul 2026 13:36:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785184567; x=1785789367; 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=XalOy749noF7U/PkVHpodOoYcCuV0B+dPZogs4Uvtlo=; b=npnhAdUhhD3OYR9MEkqVESAzQhQoffNEmdkeTOq7UIQd+yTd2KzRmpO3UEPEkYpceO EzhNIcVDgWx1hAaUZtcpFG1q7QMW68ttRJXQqGdLfZE7gsn1VolzDXXln71BhLEwB3a7 rNYiPm6+G+Y6bO21jkurucc4SCkbqgZ9Z6gEvWXyJcx5AREIVvArWE75PHXugEAiUL3r EyyU0TevVv7TcaO3lbFt6lvPepkJiZp/uVV22xHtFnYa5eMqvLJBbyc+XUg7luEh/jli q6/UvbOU5IpjIHpE/UQP4vyYG8ZopyVDVm7NApTdb4gDEw3a4Fpc0DNv+eyH6hX1E6dz Jk4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785184567; x=1785789367; 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=XalOy749noF7U/PkVHpodOoYcCuV0B+dPZogs4Uvtlo=; b=hWV3IoLWjQoZrvwz+ZMyFgR/UOeNdWKLIvqLTikZoC/K3t8khUWhs0QkJbmQC52u4H ZjCRroxFnOC4AX63CT3waYQTkMBfUPNNtAPi3WZ812NfUqZx5QcWuE9klDJdauAuRKdN BNpv8XnFZ38Aj7p8cODD0EFkK7Sbo8wR5EbMDu0bHmipVGcX3nk6g5Z7Ap5LdzitDx6P SBFUe/lr9qN1Ab/nLRrq/+7Y9Lg3Tp/9MXCnVc9KSa6aqh1c79WPhPWSJdluMvX5KMff 8QGbgUn8WpGBsEGLR5cUSTwGAjBX9alzgOh0BeDm4/3DdOvgVJZ50di/4RjaVY3fDnCp TrHA== X-Forwarded-Encrypted: i=1; AHgh+RooYCabVUAaPVSqfyltfTMfsncIulCldj20P6/BiKOLmpt+yPGPfs2slcASrjNW30NGyaKj7ayiii0ongA=@vger.kernel.org X-Gm-Message-State: AOJu0YwdzYmr8zDpMyFT92eNXLWLrrKjTnVfrkSyrCAQkG0ZlSHeuxV4 eAO7lzNUIZhuLu9CbGYxV6PDeKabQSZ2naTVAVT+DoSQCXxpZm/8JkVJ X-Gm-Gg: AR+sD137P1LZ7V8b+pn1UIIcNF6/YRLgjNlrIaxfDsg7iaMI/ZkfK+AkerB9P7b+WN3 J0kbAqufeBHJ80TqL21D0VLvwt0qnozLlgwB3YECmJAcpHU1sYbqDfKga1/D8g/ZbAaBXKYKk45 W1yl84mYyQWmgHQRLpNcqrihcBSPG/YzGRFuJ4Ac96An5p0QMmOqGYrtZbl9fq5xtc5Hd0rz3FW cwQBwXuw5can4fo68MfTLrP+Y9ZvzIYwh4CLrgqEjkynbcKsNveNoFLpYKjtpr96hy96aa2tU1O rAytiOmCTz1sv5NNBVIaOa41mp5yWCxPc9zckf+mkLthgMrGj5oYOmsp9cwfhhe5IP0xS+51LD+ SWAhRsEY4Ud6JQfuSyXu/oM7D7XvoNYw3J4fGgDO22e4JkOq6xkG+azCp2j851LdrgqMxckien9 JBzHto X-Received: by 2002:a17:903:2c07:b0:2c2:bd7f:ccd4 with SMTP id d9443c01a7336-2d00f2fec60mr7113565ad.21.1785184567088; Mon, 27 Jul 2026 13:36:07 -0700 (PDT) Received: from cryptic.lan ([2001:569:7fab:e200:3789:64f9:8855:c0af]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cfde5c8337sm41681885ad.20.2026.07.27.13.36.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 13:36:06 -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 31/64] dmaengine: pl330: route callbacks via channel BH Date: Mon, 27 Jul 2026 13:34:53 -0700 Message-ID: <6043500b5b32bf53eb0cfc4d68e82d5822ac8f60.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 Message-ID: <20260727203453._r_QMJ-oiUvb_kmNOvQwcps8GhIF18RIt-GuusNbO8M@z> Convert the per-channel tasklet to dma_chan_*_bh while keeping the controller tasklet for non-callback events. Signed-off-by: Allen Pais --- drivers/dma/pl330.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 25ba84b18704..f4940bd1ab84 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -417,9 +417,6 @@ enum desc_status { }; struct dma_pl330_chan { - /* Schedule desc completion */ - struct tasklet_struct task; - /* DMA-Engine Channel */ struct dma_chan chan; @@ -1574,7 +1571,7 @@ static void dma_pl330_rqcb(struct dma_pl330_desc *desc, enum pl330_op_err err) spin_unlock_irqrestore(&pch->lock, flags); - tasklet_schedule(&pch->task); + dma_chan_schedule_bh(&pch->chan); } static void pl330_dotask(struct tasklet_struct *t) @@ -2060,14 +2057,15 @@ static inline void fill_queue(struct dma_pl330_chan *pch) desc->status = DONE; dev_err(pch->dmac->ddma.dev, "%s:%d Bad Desc(%d)\n", __func__, __LINE__, desc->txd.cookie); - tasklet_schedule(&pch->task); + dma_chan_schedule_bh(&pch->chan); } } } -static void pl330_tasklet(struct tasklet_struct *t) +static void pl330_tasklet(struct dma_chan *chan) { - struct dma_pl330_chan *pch = from_tasklet(pch, t, task); + struct dma_pl330_chan *pch = container_of(chan, struct dma_pl330_chan, + chan); struct dma_pl330_desc *desc, *_dt; unsigned long flags; bool power_down = false; @@ -2173,7 +2171,7 @@ static int pl330_alloc_chan_resources(struct dma_chan *chan) return -ENOMEM; } - tasklet_setup(&pch->task, pl330_tasklet); + dma_chan_init_bh(&pch->chan, pl330_tasklet); spin_unlock_irqrestore(&pl330->lock, flags); @@ -2354,7 +2352,7 @@ static void pl330_free_chan_resources(struct dma_chan *chan) struct pl330_dmac *pl330 = pch->dmac; unsigned long flags; - tasklet_kill(&pch->task); + dma_chan_kill_bh(&pch->chan); pm_runtime_get_sync(pch->dmac->ddma.dev); spin_lock_irqsave(&pl330->lock, flags); @@ -2490,7 +2488,7 @@ static void pl330_issue_pending(struct dma_chan *chan) list_splice_tail_init(&pch->submitted_list, &pch->work_list); spin_unlock_irqrestore(&pch->lock, flags); - pl330_tasklet(&pch->task); + pl330_tasklet(&pch->chan); } /* -- 2.43.0