From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from galahad.ideasonboard.com ([185.26.127.97]:51092 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755069AbcHSIjc (ORCPT ); Fri, 19 Aug 2016 04:39:32 -0400 From: Laurent Pinchart To: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: linux-renesas-soc@vger.kernel.org Subject: [PATCH 5/6] v4l: vsp1: Add API to map and unmap DRM buffers through the VSP Date: Fri, 19 Aug 2016 11:39:33 +0300 Message-Id: <1471595974-28960-6-git-send-email-laurent.pinchart+renesas@ideasonboard.com> In-Reply-To: <1471595974-28960-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> References: <1471595974-28960-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> Sender: linux-media-owner@vger.kernel.org List-ID: The display buffers must be mapped for DMA through the device that performs memory access. Expose an API to map and unmap memory through the VSP device to be used by the DU. Signed-off-by: Laurent Pinchart --- drivers/media/platform/vsp1/vsp1_drm.c | 24 ++++++++++++++++++++++++ include/media/vsp1.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c index f76131b192a4..0472cb4bc2e4 100644 --- a/drivers/media/platform/vsp1/vsp1_drm.c +++ b/drivers/media/platform/vsp1/vsp1_drm.c @@ -12,9 +12,11 @@ */ #include +#include #include #include +#include #include #include @@ -521,6 +523,28 @@ void vsp1_du_atomic_flush(struct device *dev) } EXPORT_SYMBOL_GPL(vsp1_du_atomic_flush); +int vsp1_du_map_sg(struct device *dev, struct sg_table *sgt) +{ + struct vsp1_device *vsp1 = dev_get_drvdata(dev); + struct device *map_dev; + + map_dev = vsp1->fcp ? rcar_fcp_get_device(vsp1->fcp) : dev; + + return dma_map_sg(map_dev, sgt->sgl, sgt->nents, DMA_TO_DEVICE); +} +EXPORT_SYMBOL_GPL(vsp1_du_map_sg); + +void vsp1_du_unmap_sg(struct device *dev, struct sg_table *sgt) +{ + struct vsp1_device *vsp1 = dev_get_drvdata(dev); + struct device *map_dev; + + map_dev = vsp1->fcp ? rcar_fcp_get_device(vsp1->fcp) : dev; + + dma_unmap_sg(map_dev, sgt->sgl, sgt->nents, DMA_TO_DEVICE); +} +EXPORT_SYMBOL_GPL(vsp1_du_unmap_sg); + /* ----------------------------------------------------------------------------- * Initialization */ diff --git a/include/media/vsp1.h b/include/media/vsp1.h index 458b400373d4..8d3d07a3715e 100644 --- a/include/media/vsp1.h +++ b/include/media/vsp1.h @@ -13,6 +13,7 @@ #ifndef __MEDIA_VSP1_H__ #define __MEDIA_VSP1_H__ +#include #include #include @@ -37,5 +38,7 @@ void vsp1_du_atomic_begin(struct device *dev); int vsp1_du_atomic_update(struct device *dev, unsigned int rpf, const struct vsp1_du_atomic_config *cfg); void vsp1_du_atomic_flush(struct device *dev); +int vsp1_du_map_sg(struct device *dev, struct sg_table *sgt); +void vsp1_du_unmap_sg(struct device *dev, struct sg_table *sgt); #endif /* __MEDIA_VSP1_H__ */ -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH 5/6] v4l: vsp1: Add API to map and unmap DRM buffers through the VSP Date: Fri, 19 Aug 2016 11:39:33 +0300 Message-ID: <1471595974-28960-6-git-send-email-laurent.pinchart+renesas@ideasonboard.com> References: <1471595974-28960-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id A997D6EBBA for ; Fri, 19 Aug 2016 08:39:26 +0000 (UTC) In-Reply-To: <1471595974-28960-1-git-send-email-laurent.pinchart+renesas@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org Cc: linux-renesas-soc@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org VGhlIGRpc3BsYXkgYnVmZmVycyBtdXN0IGJlIG1hcHBlZCBmb3IgRE1BIHRocm91Z2ggdGhlIGRl dmljZSB0aGF0CnBlcmZvcm1zIG1lbW9yeSBhY2Nlc3MuIEV4cG9zZSBhbiBBUEkgdG8gbWFwIGFu ZCB1bm1hcCBtZW1vcnkgdGhyb3VnaAp0aGUgVlNQIGRldmljZSB0byBiZSB1c2VkIGJ5IHRoZSBE VS4KClNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnQrcmVu ZXNhc0BpZGVhc29uYm9hcmQuY29tPgotLS0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92 c3AxX2RybS5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL21lZGlhL3Zz cDEuaCAgICAgICAgICAgICAgICAgICB8ICAzICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFf ZHJtLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kcm0uYwppbmRleCBmNzYx MzFiMTkyYTQuLjA0NzJjYjRiYzJlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9y bS92c3AxL3ZzcDFfZHJtLmMKKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFf ZHJtLmMKQEAgLTEyLDkgKzEyLDExIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5o PgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5o PgogCiAjaW5jbHVkZSA8bWVkaWEvbWVkaWEtZW50aXR5Lmg+CisjaW5jbHVkZSA8bWVkaWEvcmNh ci1mY3AuaD4KICNpbmNsdWRlIDxtZWRpYS92NGwyLXN1YmRldi5oPgogI2luY2x1ZGUgPG1lZGlh L3ZzcDEuaD4KIApAQCAtNTIxLDYgKzUyMywyOCBAQCB2b2lkIHZzcDFfZHVfYXRvbWljX2ZsdXNo KHN0cnVjdCBkZXZpY2UgKmRldikKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHZzcDFfZHVfYXRvbWlj X2ZsdXNoKTsKIAoraW50IHZzcDFfZHVfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IHNnX3RhYmxlICpzZ3QpCit7CisJc3RydWN0IHZzcDFfZGV2aWNlICp2c3AxID0gZGV2X2dldF9k cnZkYXRhKGRldik7CisJc3RydWN0IGRldmljZSAqbWFwX2RldjsKKworCW1hcF9kZXYgPSB2c3Ax LT5mY3AgPyByY2FyX2ZjcF9nZXRfZGV2aWNlKHZzcDEtPmZjcCkgOiBkZXY7CisKKwlyZXR1cm4g ZG1hX21hcF9zZyhtYXBfZGV2LCBzZ3QtPnNnbCwgc2d0LT5uZW50cywgRE1BX1RPX0RFVklDRSk7 Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh2c3AxX2R1X21hcF9zZyk7CisKK3ZvaWQgdnNwMV9kdV91 bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzZ190YWJsZSAqc2d0KQoreworCXN0 cnVjdCB2c3AxX2RldmljZSAqdnNwMSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBk ZXZpY2UgKm1hcF9kZXY7CisKKwltYXBfZGV2ID0gdnNwMS0+ZmNwID8gcmNhcl9mY3BfZ2V0X2Rl dmljZSh2c3AxLT5mY3ApIDogZGV2OworCisJZG1hX3VubWFwX3NnKG1hcF9kZXYsIHNndC0+c2ds LCBzZ3QtPm5lbnRzLCBETUFfVE9fREVWSUNFKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHZzcDFf ZHVfdW5tYXBfc2cpOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogSW5pdGlhbGl6YXRp b24KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92c3AxLmggYi9pbmNsdWRlL21lZGlh L3ZzcDEuaAppbmRleCA0NThiNDAwMzczZDQuLjhkM2QwN2EzNzE1ZSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9tZWRpYS92c3AxLmgKKysrIGIvaW5jbHVkZS9tZWRpYS92c3AxLmgKQEAgLTEzLDYgKzEz LDcgQEAKICNpZm5kZWYgX19NRURJQV9WU1AxX0hfXwogI2RlZmluZSBfX01FRElBX1ZTUDFfSF9f CiAKKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+CiAjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CiAKQEAgLTM3LDUgKzM4LDcgQEAgdm9p ZCB2c3AxX2R1X2F0b21pY19iZWdpbihzdHJ1Y3QgZGV2aWNlICpkZXYpOwogaW50IHZzcDFfZHVf YXRvbWljX3VwZGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBycGYsCiAJCQkg IGNvbnN0IHN0cnVjdCB2c3AxX2R1X2F0b21pY19jb25maWcgKmNmZyk7CiB2b2lkIHZzcDFfZHVf YXRvbWljX2ZsdXNoKHN0cnVjdCBkZXZpY2UgKmRldik7CitpbnQgdnNwMV9kdV9tYXBfc2coc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCk7Cit2b2lkIHZzcDFfZHVfdW5t YXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2dfdGFibGUgKnNndCk7CiAKICNlbmRp ZiAvKiBfX01FRElBX1ZTUDFfSF9fICovCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==