Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754547Ab3HEQQQ (ORCPT ); Mon, 5 Aug 2013 12:16:16 -0400 Received: from comal.ext.ti.com ([198.47.26.152]:51689 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751570Ab3HEQQL (ORCPT ); Mon, 5 Aug 2013 12:16:11 -0400 From: Joel Fernandes To: Tony Lindgren , Sekhar Nori , Santosh Shilimkar , Sricharan R , Rajendra Nayak , Lokesh Vutla , Matt Porter , Grant Likely , Rob Herring , Vinod Koul , Dan Williams , Mark Brown , Benoit Cousson , Russell King , Arnd Bergmann , Olof Johansson , Balaji TK , Gururaja Hebbar , Chris Ball , Jason Kridner CC: Linux OMAP List , Linux ARM Kernel List , Linux DaVinci Kernel List , Linux Kernel Mailing List , Linux MMC List , Joel Fernandes Subject: [PATCH v3 05/12] ARM: edma: Add function to enable interrupt for a PaRAM slot Date: Mon, 5 Aug 2013 11:14:50 -0500 Message-ID: <1375719297-12871-6-git-send-email-joelf@ti.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1375719297-12871-1-git-send-email-joelf@ti.com> References: <1375719297-12871-1-git-send-email-joelf@ti.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2039 Lines: 55 To prevent common programming errors, add a function to enable interrupts correctly. Also keeps calling code more readable. Signed-off-by: Joel Fernandes --- arch/arm/common/edma.c | 15 +++++++++++++++ include/linux/platform_data/edma.h | 1 + 2 files changed, 16 insertions(+) diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c index 6433b6c..aa43c49 100644 --- a/arch/arm/common/edma.c +++ b/arch/arm/common/edma.c @@ -1095,6 +1095,21 @@ void edma_set_transfer_params(unsigned slot, EXPORT_SYMBOL(edma_set_transfer_params); /** + * edma_enable_interrupt - enable interrupt on parameter RAM slot + * @slot: parameter RAM slot which is the link target + * + * The originating slot should not be part of any active DMA transfer. + */ +void edma_enable_interrupt(unsigned slot) +{ + pr_debug("Enabling interrupt on slot %d\n", slot); + + edma_parm_modify(EDMA_CTLR(slot), PARM_OPT, EDMA_CHAN_SLOT(slot), + ~TCINTEN, TCINTEN); +} +EXPORT_SYMBOL(edma_enable_interrupt); + +/** * edma_link - link one parameter RAM slot to another * @from: parameter RAM slot originating the link * @to: parameter RAM slot which is the link target diff --git a/include/linux/platform_data/edma.h b/include/linux/platform_data/edma.h index 57300fd..184ff5f 100644 --- a/include/linux/platform_data/edma.h +++ b/include/linux/platform_data/edma.h @@ -136,6 +136,7 @@ void edma_set_dest_index(unsigned slot, s16 dest_bidx, s16 dest_cidx); void edma_set_transfer_params(unsigned slot, u16 acnt, u16 bcnt, u16 ccnt, u16 bcnt_rld, enum sync_dimension sync_mode); void edma_link(unsigned from, unsigned to); +void edma_enable_interrupt(unsigned slot); void edma_unlink(unsigned from); /* calls that operate on an entire parameter RAM slot */ -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/