From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCHv6 5/8] dmaengine: rcar-dmac: group slave configuration Date: Mon, 9 May 2016 18:44:04 +0200 Message-ID: <1462812247-3414-6-git-send-email-niklas.soderlund+renesas@ragnatech.se> References: <1462812247-3414-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1462812247-3414-1-git-send-email-niklas.soderlund+renesas-1zkq55x86MTxsAP9Fp7wbw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: vinod.koul-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, linux-renesas-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dmaengine-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org Cc: linux-arch-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= , geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org, arnd-r2nGTMty4D4@public.gmane.org, linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org, dan.j.williams-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org List-Id: linux-arch.vger.kernel.org R3JvdXAgc2xhdmUgYWRkcmVzcyBhbmQgdHJhbnNmZXIgc2l6ZSBpbiBvd24gc3RydWN0cyBmb3Ig c291cmNlIGFuZApkZXN0aW5hdGlvbi4gVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgaG9va2lu ZyB1cCB0aGUgZG1hLW1hcHBpbmcgQVBJCnRvIHRoZSBzbGF2ZSBhZGRyZXNzZXMuCgpTaWduZWQt b2ZmLWJ5OiBOaWtsYXMgU8O2ZGVybHVuZCA8bmlrbGFzLnNvZGVybHVuZCtyZW5lc2FzQHJhZ25h dGVjaC5zZT4KUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRA aWRlYXNvbmJvYXJkLmNvbT4KLS0tCiBkcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYyB8IDM4ICsr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjIg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEv c2gvcmNhci1kbWFjLmMgYi9kcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYwppbmRleCBkZmIxNzky Li5iMGMzYmIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYworKysgYi9k cml2ZXJzL2RtYS9zaC9yY2FyLWRtYWMuYwpAQCAtMTE4LDE0ICsxMTgsMjIgQEAgc3RydWN0IHJj YXJfZG1hY19kZXNjX3BhZ2UgewogCXNpemVvZihzdHJ1Y3QgcmNhcl9kbWFjX3hmZXJfY2h1bmsp KQogCiAvKgorICogc3RydWN0IHJjYXJfZG1hY19jaGFuX3NsYXZlIC0gU2xhdmUgY29uZmlndXJh dGlvbgorICogQHNsYXZlX2FkZHI6IHNsYXZlIG1lbW9yeSBhZGRyZXNzCisgKiBAeGZlcl9zaXpl OiBzaXplIChpbiBieXRlcykgb2YgaGFyZHdhcmUgdHJhbnNmZXJzCisgKi8KK3N0cnVjdCByY2Fy X2RtYWNfY2hhbl9zbGF2ZSB7CisJcGh5c19hZGRyX3Qgc2xhdmVfYWRkcjsKKwl1bnNpZ25lZCBp bnQgeGZlcl9zaXplOworfTsKKworLyoKICAqIHN0cnVjdCByY2FyX2RtYWNfY2hhbiAtIFItQ2Fy IEdlbjIgRE1BIENvbnRyb2xsZXIgQ2hhbm5lbAogICogQGNoYW46IGJhc2UgRE1BIGNoYW5uZWwg b2JqZWN0CiAgKiBAaW9tZW06IGNoYW5uZWwgSS9PIG1lbW9yeSBiYXNlCiAgKiBAaW5kZXg6IGlu ZGV4IG9mIHRoaXMgY2hhbm5lbCBpbiB0aGUgY29udHJvbGxlcgotICogQHNyY194ZmVyX3NpemU6 IHNpemUgKGluIGJ5dGVzKSBvZiBoYXJkd2FyZSB0cmFuc2ZlcnMgb24gdGhlIHNvdXJjZSBzaWRl Ci0gKiBAZHN0X3hmZXJfc2l6ZTogc2l6ZSAoaW4gYnl0ZXMpIG9mIGhhcmR3YXJlIHRyYW5zZmVy cyBvbiB0aGUgZGVzdGluYXRpb24gc2lkZQotICogQHNyY19zbGF2ZV9hZGRyOiBzbGF2ZSBzb3Vy Y2UgbWVtb3J5IGFkZHJlc3MKLSAqIEBkc3Rfc2xhdmVfYWRkcjogc2xhdmUgZGVzdGluYXRpb24g bWVtb3J5IGFkZHJlc3MKKyAqIEBzcmM6IHNsYXZlIG1lbW9yeSBhZGRyZXNzIGFuZCBzaXplIG9u IHRoZSBzb3VyY2Ugc2lkZQorICogQGRzdDogc2xhdmUgbWVtb3J5IGFkZHJlc3MgYW5kIHNpemUg b24gdGhlIGRlc3RpbmF0aW9uIHNpZGUKICAqIEBtaWRfcmlkOiBoYXJkd2FyZSBNSUQvUklEIGZv ciB0aGUgRE1BIGNsaWVudCB1c2luZyB0aGlzIGNoYW5uZWwKICAqIEBsb2NrOiBwcm90ZWN0cyB0 aGUgY2hhbm5lbCBDSENSIHJlZ2lzdGVyIGFuZCB0aGUgZGVzYyBtZW1iZXJzCiAgKiBAZGVzYy5m cmVlOiBsaXN0IG9mIGZyZWUgZGVzY3JpcHRvcnMKQEAgLTE0MiwxMCArMTUwLDggQEAgc3RydWN0 IHJjYXJfZG1hY19jaGFuIHsKIAl2b2lkIF9faW9tZW0gKmlvbWVtOwogCXVuc2lnbmVkIGludCBp bmRleDsKIAotCXVuc2lnbmVkIGludCBzcmNfeGZlcl9zaXplOwotCXVuc2lnbmVkIGludCBkc3Rf eGZlcl9zaXplOwotCWRtYV9hZGRyX3Qgc3JjX3NsYXZlX2FkZHI7Ci0JZG1hX2FkZHJfdCBkc3Rf c2xhdmVfYWRkcjsKKwlzdHJ1Y3QgcmNhcl9kbWFjX2NoYW5fc2xhdmUgc3JjOworCXN0cnVjdCBy Y2FyX2RtYWNfY2hhbl9zbGF2ZSBkc3Q7CiAJaW50IG1pZF9yaWQ7CiAKIAlzcGlubG9ja190IGxv Y2s7CkBAIC03OTMsMTMgKzc5OSwxMyBAQCBzdGF0aWMgdm9pZCByY2FyX2RtYWNfY2hhbl9jb25m aWd1cmVfZGVzYyhzdHJ1Y3QgcmNhcl9kbWFjX2NoYW4gKmNoYW4sCiAJY2FzZSBETUFfREVWX1RP X01FTToKIAkJY2hjciA9IFJDQVJfRE1BQ0hDUl9ETV9JTkMgfCBSQ0FSX0RNQUNIQ1JfU01fRklY RUQKIAkJICAgICB8IFJDQVJfRE1BQ0hDUl9SU19ETUFSUzsKLQkJeGZlcl9zaXplID0gY2hhbi0+ c3JjX3hmZXJfc2l6ZTsKKwkJeGZlcl9zaXplID0gY2hhbi0+c3JjLnhmZXJfc2l6ZTsKIAkJYnJl YWs7CiAKIAljYXNlIERNQV9NRU1fVE9fREVWOgogCQljaGNyID0gUkNBUl9ETUFDSENSX0RNX0ZJ WEVEIHwgUkNBUl9ETUFDSENSX1NNX0lOQwogCQkgICAgIHwgUkNBUl9ETUFDSENSX1JTX0RNQVJT OwotCQl4ZmVyX3NpemUgPSBjaGFuLT5kc3RfeGZlcl9zaXplOworCQl4ZmVyX3NpemUgPSBjaGFu LT5kc3QueGZlcl9zaXplOwogCQlicmVhazsKIAogCWNhc2UgRE1BX01FTV9UT19NRU06CkBAIC0x MDM4LDcgKzEwNDQsNyBAQCByY2FyX2RtYWNfcHJlcF9zbGF2ZV9zZyhzdHJ1Y3QgZG1hX2NoYW4g KmNoYW4sIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsLAogCX0KIAogCWRldl9hZGRyID0gZGlyID09 IERNQV9ERVZfVE9fTUVNCi0JCSA/IHJjaGFuLT5zcmNfc2xhdmVfYWRkciA6IHJjaGFuLT5kc3Rf c2xhdmVfYWRkcjsKKwkJID8gcmNoYW4tPnNyYy5zbGF2ZV9hZGRyIDogcmNoYW4tPmRzdC5zbGF2 ZV9hZGRyOwogCXJldHVybiByY2FyX2RtYWNfY2hhbl9wcmVwX3NnKHJjaGFuLCBzZ2wsIHNnX2xl biwgZGV2X2FkZHIsCiAJCQkJICAgICAgZGlyLCBmbGFncywgZmFsc2UpOwogfQpAQCAtMTA5Myw3 ICsxMDk5LDcgQEAgcmNhcl9kbWFjX3ByZXBfZG1hX2N5Y2xpYyhzdHJ1Y3QgZG1hX2NoYW4gKmNo YW4sIGRtYV9hZGRyX3QgYnVmX2FkZHIsCiAJfQogCiAJZGV2X2FkZHIgPSBkaXIgPT0gRE1BX0RF Vl9UT19NRU0KLQkJID8gcmNoYW4tPnNyY19zbGF2ZV9hZGRyIDogcmNoYW4tPmRzdF9zbGF2ZV9h ZGRyOworCQkgPyByY2hhbi0+c3JjLnNsYXZlX2FkZHIgOiByY2hhbi0+ZHN0LnNsYXZlX2FkZHI7 CiAJZGVzYyA9IHJjYXJfZG1hY19jaGFuX3ByZXBfc2cocmNoYW4sIHNnbCwgc2dfbGVuLCBkZXZf YWRkciwKIAkJCQkgICAgICBkaXIsIGZsYWdzLCB0cnVlKTsKIApAQCAtMTExMCwxMCArMTExNiwx MCBAQCBzdGF0aWMgaW50IHJjYXJfZG1hY19kZXZpY2VfY29uZmlnKHN0cnVjdCBkbWFfY2hhbiAq Y2hhbiwKIAkgKiBXZSBjb3VsZCBsb2NrIHRoaXMsIGJ1dCB5b3Ugc2hvdWxkbid0IGJlIGNvbmZp Z3VyaW5nIHRoZQogCSAqIGNoYW5uZWwsIHdoaWxlIHVzaW5nIGl0Li4uCiAJICovCi0JcmNoYW4t PnNyY19zbGF2ZV9hZGRyID0gY2ZnLT5zcmNfYWRkcjsKLQlyY2hhbi0+ZHN0X3NsYXZlX2FkZHIg PSBjZmctPmRzdF9hZGRyOwotCXJjaGFuLT5zcmNfeGZlcl9zaXplID0gY2ZnLT5zcmNfYWRkcl93 aWR0aDsKLQlyY2hhbi0+ZHN0X3hmZXJfc2l6ZSA9IGNmZy0+ZHN0X2FkZHJfd2lkdGg7CisJcmNo YW4tPnNyYy5zbGF2ZV9hZGRyID0gY2ZnLT5zcmNfYWRkcjsKKwlyY2hhbi0+ZHN0LnNsYXZlX2Fk ZHIgPSBjZmctPmRzdF9hZGRyOworCXJjaGFuLT5zcmMueGZlcl9zaXplID0gY2ZnLT5zcmNfYWRk cl93aWR0aDsKKwlyY2hhbi0+ZHN0LnhmZXJfc2l6ZSA9IGNmZy0+ZHN0X2FkZHJfd2lkdGg7CiAK IAlyZXR1cm4gMDsKIH0KLS0gCjIuOC4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwppb21tdSBtYWlsaW5nIGxpc3QKaW9tbXVAbGlzdHMubGludXgtZm91 bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlz dGluZm8vaW9tbXU= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-3.sys.kth.se ([130.237.48.192]:38524 "EHLO smtp-3.sys.kth.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751040AbcEIQzH (ORCPT ); Mon, 9 May 2016 12:55:07 -0400 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCHv6 5/8] dmaengine: rcar-dmac: group slave configuration Date: Mon, 9 May 2016 18:44:04 +0200 Message-ID: <1462812247-3414-6-git-send-email-niklas.soderlund+renesas@ragnatech.se> In-Reply-To: <1462812247-3414-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> References: <1462812247-3414-1-git-send-email-niklas.soderlund+renesas@ragnatech.se> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-arch-owner@vger.kernel.org List-ID: To: vinod.koul@intel.com, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, iommu@lists.linux-foundation.org, hch@infradead.org Cc: robin.murphy@arm.com, laurent.pinchart@ideasonboard.com, geert+renesas@glider.be, linus.walleij@linaro.org, dan.j.williams@intel.com, arnd@arndb.de, linux-arch@vger.kernel.org, =?UTF-8?q?Niklas=20S=C3=B6derlund?= Message-ID: <20160509164404.MuLZfplybz4al_-qJG3EKbe6rH-dN69DHWy7dEgxyQA@z> Group slave address and transfer size in own structs for source and destination. This is in preparation for hooking up the dma-mapping API to the slave addresses. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart --- drivers/dma/sh/rcar-dmac.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index dfb1792..b0c3bb2 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -118,14 +118,22 @@ struct rcar_dmac_desc_page { sizeof(struct rcar_dmac_xfer_chunk)) /* + * struct rcar_dmac_chan_slave - Slave configuration + * @slave_addr: slave memory address + * @xfer_size: size (in bytes) of hardware transfers + */ +struct rcar_dmac_chan_slave { + phys_addr_t slave_addr; + unsigned int xfer_size; +}; + +/* * struct rcar_dmac_chan - R-Car Gen2 DMA Controller Channel * @chan: base DMA channel object * @iomem: channel I/O memory base * @index: index of this channel in the controller - * @src_xfer_size: size (in bytes) of hardware transfers on the source side - * @dst_xfer_size: size (in bytes) of hardware transfers on the destination side - * @src_slave_addr: slave source memory address - * @dst_slave_addr: slave destination memory address + * @src: slave memory address and size on the source side + * @dst: slave memory address and size on the destination side * @mid_rid: hardware MID/RID for the DMA client using this channel * @lock: protects the channel CHCR register and the desc members * @desc.free: list of free descriptors @@ -142,10 +150,8 @@ struct rcar_dmac_chan { void __iomem *iomem; unsigned int index; - unsigned int src_xfer_size; - unsigned int dst_xfer_size; - dma_addr_t src_slave_addr; - dma_addr_t dst_slave_addr; + struct rcar_dmac_chan_slave src; + struct rcar_dmac_chan_slave dst; int mid_rid; spinlock_t lock; @@ -793,13 +799,13 @@ static void rcar_dmac_chan_configure_desc(struct rcar_dmac_chan *chan, case DMA_DEV_TO_MEM: chcr = RCAR_DMACHCR_DM_INC | RCAR_DMACHCR_SM_FIXED | RCAR_DMACHCR_RS_DMARS; - xfer_size = chan->src_xfer_size; + xfer_size = chan->src.xfer_size; break; case DMA_MEM_TO_DEV: chcr = RCAR_DMACHCR_DM_FIXED | RCAR_DMACHCR_SM_INC | RCAR_DMACHCR_RS_DMARS; - xfer_size = chan->dst_xfer_size; + xfer_size = chan->dst.xfer_size; break; case DMA_MEM_TO_MEM: @@ -1038,7 +1044,7 @@ rcar_dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, } dev_addr = dir == DMA_DEV_TO_MEM - ? rchan->src_slave_addr : rchan->dst_slave_addr; + ? rchan->src.slave_addr : rchan->dst.slave_addr; return rcar_dmac_chan_prep_sg(rchan, sgl, sg_len, dev_addr, dir, flags, false); } @@ -1093,7 +1099,7 @@ rcar_dmac_prep_dma_cyclic(struct dma_chan *chan, dma_addr_t buf_addr, } dev_addr = dir == DMA_DEV_TO_MEM - ? rchan->src_slave_addr : rchan->dst_slave_addr; + ? rchan->src.slave_addr : rchan->dst.slave_addr; desc = rcar_dmac_chan_prep_sg(rchan, sgl, sg_len, dev_addr, dir, flags, true); @@ -1110,10 +1116,10 @@ static int rcar_dmac_device_config(struct dma_chan *chan, * We could lock this, but you shouldn't be configuring the * channel, while using it... */ - rchan->src_slave_addr = cfg->src_addr; - rchan->dst_slave_addr = cfg->dst_addr; - rchan->src_xfer_size = cfg->src_addr_width; - rchan->dst_xfer_size = cfg->dst_addr_width; + rchan->src.slave_addr = cfg->src_addr; + rchan->dst.slave_addr = cfg->dst_addr; + rchan->src.xfer_size = cfg->src_addr_width; + rchan->dst.xfer_size = cfg->dst_addr_width; return 0; } -- 2.8.2