From patchwork Wed Mar 10 14:12:25 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkatraman S X-Patchwork-Id: 84609 X-Patchwork-Delegate: tony@atomide.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o2AECSGZ028731 for ; Wed, 10 Mar 2010 14:12:28 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932421Ab0CJOM1 (ORCPT ); Wed, 10 Mar 2010 09:12:27 -0500 Received: from mail-iw0-f176.google.com ([209.85.223.176]:37056 "EHLO mail-iw0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932360Ab0CJOMZ (ORCPT ); Wed, 10 Mar 2010 09:12:25 -0500 Received: by mail-iw0-f176.google.com with SMTP id 6so4812356iwn.4 for ; Wed, 10 Mar 2010 06:12:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=Re0Ti1U+rd1oPNEo9c8VYLUzWWzw/iKSNam8yP8fJ9o=; b=IUxbBTMe3XHuY1GlJuHwfMET5yXdS8ZAt41eTKO7Pz/6df5vKIZiC3NdA2hHIM/0n7 rzlctbe2Hy91pVVUe7WElYjJIaRaKNA0Pd3gzKynPf6uAW8dYSEhl9/gEhl00PeRIjQF Fzm+Q+88kFYKvdSfAVuBvqqJzjuSGG57ajlp0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; b=Nw2jLp2/u1uCeZOhAqku8qS2bp3+WHFxHfeGRBdZn4ffVe90WGF5PQjMhjGTxDAGyj Y188P49EsE4owKhYjKiDEGthkwcm8Ni1hi8BqnuR7KZWX3cAKv6NxZDj8DVavuY4RxV2 9L2me4yt3Z1bxpFIrskKiY4R8w2P9N9A5EL3M= MIME-Version: 1.0 Received: by 10.231.145.70 with SMTP id c6mr50694ibv.36.1268230345236; Wed, 10 Mar 2010 06:12:25 -0800 (PST) Date: Wed, 10 Mar 2010 19:42:25 +0530 X-Google-Sender-Auth: af1cb0f76ad0fe7f Message-ID: <618f0c911003100612l33b1fec9s163720a5a93a1787@mail.gmail.com> Subject: [PATCH 03/03] omap hsmmc: adaptation of sdma descriptor autoloading feature From: Venkatraman S To: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mmc@vger.kernel.org Cc: Adrian Hunter , Madhusudhan Chikkature , Tony Lindgren Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Wed, 10 Mar 2010 14:12:28 +0000 (UTC) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index ea2a082..131d889 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -102,6 +102,7 @@ #define SRD (1 << 26) #define SOFTRESET (1 << 1) #define RESETDONE (1 << 0) +#define DMA_ICR_QUIET 0xD00 /* * FIXME: Most likely all the data using these _DEVID defines should come @@ -118,6 +119,12 @@ #define OMAP_MMC_MASTER_CLOCK 96000000 #define DRIVER_NAME "mmci-omap-hs" +#define DMA_TYPE_NODMA 0 +#define DMA_TYPE_SDMA 1 +#define DMA_TYPE_SDMA_DLOAD 2 + +#define DMA_CTRL_BUF_SIZE (PAGE_SIZE * 3) + /* Timeouts for entering power saving states on inactivity, msec */ #define OMAP_MMC_DISABLED_TIMEOUT 100 #define OMAP_MMC_SLEEP_TIMEOUT 1000 @@ -172,7 +179,11 @@ struct omap_hsmmc_host { u32 bytesleft; int suspended; int irq; - int use_dma, dma_ch; + int dma_caps; + int dma_in_use; + int dma_ch; + void *dma_ctrl_buf; + dma_addr_t dma_ctrl_buf_phy; int dma_line_tx, dma_line_rx; int slot_id; int got_dbclk; @@ -768,7 +779,7 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, struct mmc_command *cmd, OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); OMAP_HSMMC_WRITE(host->base, ISE, INT_EN_MASK); - if (host->use_dma) + if (host->dma_in_use) OMAP_HSMMC_WRITE(host->base, IE, INT_EN_MASK & ~(BRR_ENABLE | BWR_ENABLE));