From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757490Ab3AIITk (ORCPT ); Wed, 9 Jan 2013 03:19:40 -0500 Received: from mga11.intel.com ([192.55.52.93]:43190 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757419Ab3AIIR7 (ORCPT ); Wed, 9 Jan 2013 03:17:59 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.84,436,1355126400"; d="scan'208";a="271648639" From: Andy Shevchenko To: Vinod Koul , linux-kernel@vger.kernel.org, Viresh Kumar , spear-devel Subject: [resend][PATCH 16/16] dma: dw_dmac: clear suspend bit during termination Date: Wed, 9 Jan 2013 10:17:15 +0200 Message-Id: <1357719435-29955-17-git-send-email-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1357719435-29955-1-git-send-email-andriy.shevchenko@linux.intel.com> References: <20130108155423.GJ19691@intel.com> <1357719435-29955-1-git-send-email-andriy.shevchenko@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Heikki Krogerus The DMA transfer could not be established if previously it was paused and terminated. In that case the channel's suspend bit remains set that prevents to transfer anything until channel is resumed. The patch adds a code that clears the DWC_CFGL_CH_SUSP bit during termination. Signed-off-by: Heikki Krogerus Signed-off-by: Andy Shevchenko Acked-by: Viresh Kumar --- drivers/dma/dw_dmac.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index 6a8f8c7..c6ebea1 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c @@ -1059,7 +1059,7 @@ static int dwc_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, dwc_chan_disable(dw, dwc); - dwc->paused = false; + dwc_chan_resume(dwc); /* active_list entries will end up before queued entries */ list_splice_init(&dwc->queue, &list); -- 1.7.10.4