From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/fb_cma_helper: Implement fb_mmap callback Date: Tue, 7 Jun 2016 21:43:51 +0200 Message-ID: <20160607194351.GF3363@phenom.ffwll.local> References: <8fd95ac1440e0f01daad6d4380be3a4c8fa61055.1465301219.git.robin.murphy@arm.com> <20160607144305.GC3363@phenom.ffwll.local> <5756E24C.7070402@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E3226E82B for ; Tue, 7 Jun 2016 19:43:56 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id r5so8548377wmr.0 for ; Tue, 07 Jun 2016 12:43:56 -0700 (PDT) Content-Disposition: inline In-Reply-To: <5756E24C.7070402@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Robin Murphy Cc: liviu.dudau@arm.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdW4gMDcsIDIwMTYgYXQgMDQ6MDM6NDBQTSArMDEwMCwgUm9iaW4gTXVycGh5IHdy b3RlOgo+IE9uIDA3LzA2LzE2IDE1OjQzLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gT24gVHVl LCBKdW4gMDcsIDIwMTYgYXQgMDE6MTg6MDlQTSArMDEwMCwgUm9iaW4gTXVycGh5IHdyb3RlOgo+ ID4gPiBJbiB0aGUgYWJzZW5jZSBvZiBhbiBmYl9tbWFwIGNhbGxiYWNrLCB0aGUgZmJkZXYgY29k ZSBmYWxscyBiYWNrIHRvIGEKPiA+ID4gbmFpdmUgaW1wbGVtZW50YXRpb24gd2hpY2ggcmVsaWVz IHVwb24gdGhlIERNQSBhZGRyZXNzIGJlaW5nIHRoZSBzYW1lCj4gPiA+IGFzIHRoZSBwaHlzaWNh bCBhZGRyZXNzLCBhbmQgdGhlIGJ1ZmZlciBiZWluZyBwaHlzaWNhbGx5IGNvbnRpZ3VvdXMKPiA+ ID4gZnJvbSB0aGVyZS4gV2hpbHN0IHRoaXMgb2Z0ZW4gaG9sZHMgZm9yIHN0YW5kYXJkIENNQSBh bGxvY2F0aW9ucyB2aWEKPiA+ID4gdGhlIHBsYXRmb3JtJ3MgcmVndWxhciBETUEgb3BzLCBpZiB0 aGUgYWxsb2NhdGlvbiBpcyBwcm92aWRlZCBieSBhbgo+ID4gPiBJT01NVSB0aGVuIHN1Y2ggYXNz dW1wdGlvbnMgY2FuIGZhbGwgYXBhcnQgc3BlY3RhY3VsYXJseS4KPiA+ID4gCj4gPiA+IFRvIHJl c29sdmUgdGhpcywgcmVyb3V0ZSB0aGUgZmJfbW1hcCBjYWxsIHRvIHRoZSBhcHByb3ByaWF0ZSBE TUEgQVBJCj4gPiA+IGltcGxlbWVudGF0aW9uLCBhcyBwZXIgdGhlIG90aGVyIGNtYV9oZWxwZXIg Y2FsbHMuCj4gPiA+IAo+ID4gPiBBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KPiA+ID4gU2lnbmVkLW9mZi1ieTogUm9iaW4gTXVycGh5IDxyb2Jpbi5tdXJw aHlAYXJtLmNvbT4KPiA+ID4gLS0tCj4gPiA+IAo+ID4gPiBSZXNlbmRpbmcgcmViYXNlZCB0byA0 LjctcmMxIHdpdGggRGFuaWVsJ3MgYWNrLiBJIGtub3cgUnVzc2VsbCByYWlzZWQKPiA+ID4gc29t ZSBjb25jZXJucyBhYm91dCB0aGUgZ2VuZXJhbCB3YXkgZmJfY21hX2hlbHBlciB1c2VzIGZiX2lu Zm9bMV0sIGJ1dAo+ID4gPiBBRkFJQ1MgdGhhdCdzIGEgbG9uZ3N0YW5kaW5nIHNlcGFyYXRlIHBy b2JsZW0gb3J0aG9nb25hbCB0byB0aGlzIHBhdGNoLgo+ID4gCj4gPiBEbyB5b3Ugd2FudCBtZSB0 byBwdWxsIHRoaXMgaW4gdGhyb3VnaCBkcm0tbWlzYywgb3Igd2lsbCB0aGlzIGxhbmQgdGhyb3Vn aAo+ID4gc29tZSBkcml2ZXIgdHJlZT8gTm90ZSB0aGF0IEknbGwgZG8gLW1pc2MgcHVsbHMgYWJv dXQgZXZlcnkgd2Vlaywgc28gaWYKPiA+IHlvdSBkb24ndCBzZW5kIHlvdXIgcHVsbCB0aGlzIHdl ZWsgSSdkIGxpa2UgdG8gcHVsbCBpdCBpbiB0byBhdm9pZAo+ID4gaGlsYXJpdHleVyBuZWVkbGVz cyBjb25mbGljdHMuCj4gCj4gWWVhaCwgZHJtLW1pc2Mgc291bmRzIGFwcHJvcHJpYXRlIHNvIGlm IHlvdSdyZSBoYXBweSB0byBwaWNrIGl0IHVwLCBwbGVhc2UKPiBmZWVsIGZyZWUgOikKCkFwcGxp ZWQsIHRoYW5rcy4KLURhbmllbAoKPiAKPiBSb2Jpbi4KPiAKPiA+IC1EYW5pZWwKPiA+IAo+ID4g PiAKPiA+ID4gUm9iaW4uCj4gPiA+IAo+ID4gPiBbMV06aHR0cDovL3RocmVhZC5nbWFuZS5vcmcv Z21hbmUuY29tcC52aWRlby5kcmkuZGV2ZWwvMTQ5Mjg4Cj4gPiA+IAo+ID4gPiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jIHwgOCArKysrKysrKwo+ID4gPiAgIDEgZmlsZSBj aGFuZ2VkLCA4IGluc2VydGlvbnMoKykKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21h X2hlbHBlci5jCj4gPiA+IGluZGV4IDE3MmNhZmUxMWM3MS4uYTI1YWZjMDY4ZDNmIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4gPiBAQCAtMjMsNiArMjMs NyBAQAo+ID4gPiAgICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gPiA+ICAgI2lu Y2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KPiA+ID4gICAjaW5jbHVkZSA8ZHJtL2Ry bV9mYl9jbWFfaGVscGVyLmg+Cj4gPiA+ICsjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4K PiA+ID4gICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiA+IAo+ID4gPiAgICNkZWZpbmUg REVGQVVMVF9GQkRFRklPX0RFTEFZX01TIDUwCj4gPiA+IEBAIC0yOTcsNiArMjk4LDEyIEBAIGlu dCBkcm1fZmJfY21hX2RlYnVnZnNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmFyZykK PiA+ID4gICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZmJfY21hX2RlYnVnZnNfc2hvdyk7Cj4gPiA+ ICAgI2VuZGlmCj4gPiA+IAo+ID4gPiArc3RhdGljIGludCBkcm1fZmJfY21hX21tYXAoc3RydWN0 IGZiX2luZm8gKmluZm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ID4gPiArewo+ID4g PiArCXJldHVybiBkbWFfbW1hcF93cml0ZWNvbWJpbmUoaW5mby0+ZGV2aWNlLCB2bWEsIGluZm8t PnNjcmVlbl9iYXNlLAo+ID4gPiArCQkJCSAgICAgaW5mby0+Zml4LnNtZW1fc3RhcnQsIGluZm8t PmZpeC5zbWVtX2xlbik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gICBzdGF0aWMgc3RydWN0IGZi X29wcyBkcm1fZmJkZXZfY21hX29wcyA9IHsKPiA+ID4gICAJLm93bmVyCQk9IFRISVNfTU9EVUxF LAo+ID4gPiAgIAkuZmJfZmlsbHJlY3QJPSBkcm1fZmJfaGVscGVyX3N5c19maWxscmVjdCwKPiA+ ID4gQEAgLTMwNyw2ICszMTQsNyBAQCBzdGF0aWMgc3RydWN0IGZiX29wcyBkcm1fZmJkZXZfY21h X29wcyA9IHsKPiA+ID4gICAJLmZiX2JsYW5rCT0gZHJtX2ZiX2hlbHBlcl9ibGFuaywKPiA+ID4g ICAJLmZiX3Bhbl9kaXNwbGF5CT0gZHJtX2ZiX2hlbHBlcl9wYW5fZGlzcGxheSwKPiA+ID4gICAJ LmZiX3NldGNtYXAJPSBkcm1fZmJfaGVscGVyX3NldGNtYXAsCj4gPiA+ICsJLmZiX21tYXAJPSBk cm1fZmJfY21hX21tYXAsCj4gPiA+ICAgfTsKPiA+ID4gCj4gPiA+ICAgc3RhdGljIGludCBkcm1f ZmJkZXZfY21hX2RlZmVycmVkX2lvX21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sCj4gPiA+IC0t Cj4gPiA+IDIuOC4xLmRpcnR5Cj4gPiA+IAo+ID4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161013AbcFGToA (ORCPT ); Tue, 7 Jun 2016 15:44:00 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:36736 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755832AbcFGTn4 (ORCPT ); Tue, 7 Jun 2016 15:43:56 -0400 Date: Tue, 7 Jun 2016 21:43:51 +0200 From: Daniel Vetter To: Robin Murphy Cc: airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, liviu.dudau@arm.com Subject: Re: [PATCH] drm/fb_cma_helper: Implement fb_mmap callback Message-ID: <20160607194351.GF3363@phenom.ffwll.local> Mail-Followup-To: Robin Murphy , airlied@linux.ie, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, liviu.dudau@arm.com References: <8fd95ac1440e0f01daad6d4380be3a4c8fa61055.1465301219.git.robin.murphy@arm.com> <20160607144305.GC3363@phenom.ffwll.local> <5756E24C.7070402@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5756E24C.7070402@arm.com> X-Operating-System: Linux phenom 4.6.0-rc5+ User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 07, 2016 at 04:03:40PM +0100, Robin Murphy wrote: > On 07/06/16 15:43, Daniel Vetter wrote: > > On Tue, Jun 07, 2016 at 01:18:09PM +0100, Robin Murphy wrote: > > > In the absence of an fb_mmap callback, the fbdev code falls back to a > > > naive implementation which relies upon the DMA address being the same > > > as the physical address, and the buffer being physically contiguous > > > from there. Whilst this often holds for standard CMA allocations via > > > the platform's regular DMA ops, if the allocation is provided by an > > > IOMMU then such assumptions can fall apart spectacularly. > > > > > > To resolve this, reroute the fb_mmap call to the appropriate DMA API > > > implementation, as per the other cma_helper calls. > > > > > > Acked-by: Daniel Vetter > > > Signed-off-by: Robin Murphy > > > --- > > > > > > Resending rebased to 4.7-rc1 with Daniel's ack. I know Russell raised > > > some concerns about the general way fb_cma_helper uses fb_info[1], but > > > AFAICS that's a longstanding separate problem orthogonal to this patch. > > > > Do you want me to pull this in through drm-misc, or will this land through > > some driver tree? Note that I'll do -misc pulls about every week, so if > > you don't send your pull this week I'd like to pull it in to avoid > > hilarity^W needless conflicts. > > Yeah, drm-misc sounds appropriate so if you're happy to pick it up, please > feel free :) Applied, thanks. -Daniel > > Robin. > > > -Daniel > > > > > > > > Robin. > > > > > > [1]:http://thread.gmane.org/gmane.comp.video.dri.devel/149288 > > > > > > drivers/gpu/drm/drm_fb_cma_helper.c | 8 ++++++++ > > > 1 file changed, 8 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c > > > index 172cafe11c71..a25afc068d3f 100644 > > > --- a/drivers/gpu/drm/drm_fb_cma_helper.c > > > +++ b/drivers/gpu/drm/drm_fb_cma_helper.c > > > @@ -23,6 +23,7 @@ > > > #include > > > #include > > > #include > > > +#include > > > #include > > > > > > #define DEFAULT_FBDEFIO_DELAY_MS 50 > > > @@ -297,6 +298,12 @@ int drm_fb_cma_debugfs_show(struct seq_file *m, void *arg) > > > EXPORT_SYMBOL_GPL(drm_fb_cma_debugfs_show); > > > #endif > > > > > > +static int drm_fb_cma_mmap(struct fb_info *info, struct vm_area_struct *vma) > > > +{ > > > + return dma_mmap_writecombine(info->device, vma, info->screen_base, > > > + info->fix.smem_start, info->fix.smem_len); > > > +} > > > + > > > static struct fb_ops drm_fbdev_cma_ops = { > > > .owner = THIS_MODULE, > > > .fb_fillrect = drm_fb_helper_sys_fillrect, > > > @@ -307,6 +314,7 @@ static struct fb_ops drm_fbdev_cma_ops = { > > > .fb_blank = drm_fb_helper_blank, > > > .fb_pan_display = drm_fb_helper_pan_display, > > > .fb_setcmap = drm_fb_helper_setcmap, > > > + .fb_mmap = drm_fb_cma_mmap, > > > }; > > > > > > static int drm_fbdev_cma_deferred_io_mmap(struct fb_info *info, > > > -- > > > 2.8.1.dirty > > > > > > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch