From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 02/12] fbdev: allow apertures == NULL in remove_conflicting_framebuffers() Date: Fri, 31 Aug 2018 11:01:26 +0200 Message-ID: <20180831090126.GS21634@phenom.ffwll.local> References: <7e3a48e397298b38d7ddc7f45d48226d1f5db3e4.1535656077.git.mirq-linux@rere.qmqm.pl> <20180831085656.GR21634@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180831085656.GR21634-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= Cc: linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Bartlomiej Zolnierkiewicz , David Airlie , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Alex Deucher , Thierry Reding , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maxime Ripard , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Gerd Hoffmann List-Id: linux-tegra@vger.kernel.org T24gRnJpLCBBdWcgMzEsIDIwMTggYXQgMTA6NTY6NTZBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEF1ZyAzMCwgMjAxOCBhdCAxMTowMDowNVBNICswMjAwLCBNaWNoYcWC IE1pcm9zxYJhdyB3cm90ZToKPiA+IEludGVycHJldCAob3RoZXJ3aXNlLWludmFsaWQpIE5VTEwg YXBlcnR1cmVzIGFyZ3VtZW50IHRvIG1lYW4gYWxsLW1lbW9yeQo+ID4gcmFuZ2UuIFRoaXMgd2ls bCBhbGxvdyB0byByZW1vdmUgc2V2ZXJhbCBkdXBsaWNhdGVzIG9mIHRoaXMgY29kZSBmcm9tCj4g PiBkcml2ZXJzIGluIGZvbGxvd2luZyBwYXRjaGVzLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBN aWNoYcWCIE1pcm9zxYJhdyA8bWlycS1saW51eEByZXJlLnFtcW0ucGw+Cj4gPiBbZm9yIHYxXQo+ ID4gQWNrZWQtYnk6IEJhcnRsb21pZWogWm9sbmllcmtpZXdpY3ogPGIuem9sbmllcmtpZUBzYW1z dW5nLmNvbT4KPiA+IAo+ID4gLS0tCj4gPiB2MjogYWRkZWQga2VybmVsZG9jIHRvIGNvcnJlc3Bv bmRpbmcgRFJNIGhlbHBlcgo+ID4gLS0tCj4gPiAgZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2Zi bWVtLmMgfCAxNCArKysrKysrKysrKysrKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIu aCAgICAgIHwgMTAgKysrKysrKysrKwo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9u cygrKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibWVt LmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJtZW0uYwo+ID4gaW5kZXggMzBhMThkNGM5 ZGU0Li4wZGYxNDhlYjQ2OTkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2Nv cmUvZmJtZW0uYwo+ID4gKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibWVtLmMKPiA+ IEBAIC0xNzc5LDExICsxNzc5LDI1IEBAIGludCByZW1vdmVfY29uZmxpY3RpbmdfZnJhbWVidWZm ZXJzKHN0cnVjdCBhcGVydHVyZXNfc3RydWN0ICphLAo+ID4gIAkJCQkgICAgY29uc3QgY2hhciAq bmFtZSwgYm9vbCBwcmltYXJ5KQo+ID4gIHsKPiA+ICAJaW50IHJldDsKPiA+ICsJYm9vbCBkb19m cmVlID0gZmFsc2U7Cj4gPiArCj4gPiArCWlmICghYSkgewo+ID4gKwkJYSA9IGFsbG9jX2FwZXJ0 dXJlcygxKTsKPiA+ICsJCWlmICghYSkKPiA+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiA+ICsKPiA+ ICsJCWEtPnJhbmdlc1swXS5iYXNlID0gMDsKPiA+ICsJCWEtPnJhbmdlc1swXS5zaXplID0gfjA7 Cj4gPiArCQlkb19mcmVlID0gdHJ1ZTsKPiA+ICsJfQo+ID4gIAo+ID4gIAltdXRleF9sb2NrKCZy ZWdpc3RyYXRpb25fbG9jayk7Cj4gPiAgCXJldCA9IGRvX3JlbW92ZV9jb25mbGljdGluZ19mcmFt ZWJ1ZmZlcnMoYSwgbmFtZSwgcHJpbWFyeSk7Cj4gPiAgCW11dGV4X3VubG9jaygmcmVnaXN0cmF0 aW9uX2xvY2spOwo+ID4gIAo+ID4gKwlpZiAoZG9fZnJlZSkKPiA+ICsJCWtmcmVlKGEpOwo+ID4g Kwo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MKHJlbW92ZV9jb25m bGljdGluZ19mcmFtZWJ1ZmZlcnMpOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9m Yl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+ID4gaW5kZXggYjA2OTQz M2U3ZmMxLi4xYzFlNTNhYmIyNWQgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJf aGVscGVyLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+ID4gQEAgLTU2 Niw2ICs1NjYsMTYgQEAgc3RhdGljIGlubGluZSB2b2lkIGRybV9mYl9oZWxwZXJfb3V0cHV0X3Bv bGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAo+ID4gICNlbmRpZgo+ID4g IAo+ID4gKy8qKgo+ID4gKyAqIGRybV9mYl9oZWxwZXJfcmVtb3ZlX2NvbmZsaWN0aW5nX2ZyYW1l YnVmZmVycyAtIHJlbW92ZSBmaXJtd2FyZSBmcmFtZWJ1ZmZlcnMKPiA+ICsgKiBAYTogbWVtb3J5 IHJhbmdlLCB1c2VycyBvZiB3aGljaCBhcmUgdG8gYmUgcmVtb3ZlZAo+ID4gKyAqIEBuYW1lOiBy ZXF1ZXN0aW5nIGRyaXZlciBuYW1lCj4gPiArICogQHByaW1hcnk6IGFsc28ga2ljayB2Z2ExNmZi IGlmIHByZXNlbnQKPiA+ICsgKgo+ID4gKyAqIFRoaXMgZnVuY3Rpb24gcmVtb3ZlcyBmcmFtZWJ1 ZmZlciBkZXZpY2VzIChlZy4gaW5pdGlhbGl6ZWQgYnkgZmlybXdhcmUpCj4gPiArICogd2hpY2gg dXNlIG1lbW9yeSByYW5nZSBkZXNjcmliZWQgYnkgQGEuIElmIEBhIGlzIE5VTEwgYWxsIHN1Y2gg ZGV2aWNlcyBhcmUKPiA+ICsgKiByZW1vdmVkLgo+ID4gKyAqLwo+IAo+IFRoaXMgbG9va3MgbGlr ZSBtaXNwbGFjZWQgY29weXBhc3RhLiBZb3Ugb25seSBuZWVkIHRoaXMgb25jZSBJIHRoaW5rLgoK QWggbm8sIGp1c3QgYSBmaXh1cCBmb3IgdGhlIGxhY2sgb2Yga2VybmVsZG9jIHdlIGhhdmUuIENh biB5b3UgcGxzIHNwbGl0CnRoaXMgb3V0IGludG8gYSBzZXBhcmF0ZSBwYXRjaD8KClRoYW5rcywg RGFuaWVsCgo+IC1EYW5pZWwKPiAKPiA+ICBzdGF0aWMgaW5saW5lIGludAo+ID4gIGRybV9mYl9o ZWxwZXJfcmVtb3ZlX2NvbmZsaWN0aW5nX2ZyYW1lYnVmZmVycyhzdHJ1Y3QgYXBlcnR1cmVzX3N0 cnVjdCAqYSwKPiA+ICAJCQkJCSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgcHJpbWFyeSkK PiA+IC0tIAo+ID4gMi4xOC4wCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBT b2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5j aAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9u Cmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1k LWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Date: Fri, 31 Aug 2018 09:01:26 +0000 Subject: Re: [PATCH v2 02/12] fbdev: allow apertures == NULL in remove_conflicting_framebuffers() Message-Id: <20180831090126.GS21634@phenom.ffwll.local> List-Id: References: <7e3a48e397298b38d7ddc7f45d48226d1f5db3e4.1535656077.git.mirq-linux@rere.qmqm.pl> <20180831085656.GR21634@phenom.ffwll.local> In-Reply-To: <20180831085656.GR21634-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= Cc: linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Bartlomiej Zolnierkiewicz , David Airlie , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, Alex Deucher , Thierry Reding , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maxime Ripard , linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Gerd Hoffmann On Fri, Aug 31, 2018 at 10:56:56AM +0200, Daniel Vetter wrote: > On Thu, Aug 30, 2018 at 11:00:05PM +0200, Michał Mirosław wrote: > > Interpret (otherwise-invalid) NULL apertures argument to mean all-memory > > range. This will allow to remove several duplicates of this code from > > drivers in following patches. > > > > Signed-off-by: Michał Mirosław > > [for v1] > > Acked-by: Bartlomiej Zolnierkiewicz > > > > --- > > v2: added kerneldoc to corresponding DRM helper > > --- > > drivers/video/fbdev/core/fbmem.c | 14 ++++++++++++++ > > include/drm/drm_fb_helper.h | 10 ++++++++++ > > 2 files changed, 24 insertions(+) > > > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c > > index 30a18d4c9de4..0df148eb4699 100644 > > --- a/drivers/video/fbdev/core/fbmem.c > > +++ b/drivers/video/fbdev/core/fbmem.c > > @@ -1779,11 +1779,25 @@ int remove_conflicting_framebuffers(struct apertures_struct *a, > > const char *name, bool primary) > > { > > int ret; > > + bool do_free = false; > > + > > + if (!a) { > > + a = alloc_apertures(1); > > + if (!a) > > + return -ENOMEM; > > + > > + a->ranges[0].base = 0; > > + a->ranges[0].size = ~0; > > + do_free = true; > > + } > > > > mutex_lock(®istration_lock); > > ret = do_remove_conflicting_framebuffers(a, name, primary); > > mutex_unlock(®istration_lock); > > > > + if (do_free) > > + kfree(a); > > + > > return ret; > > } > > EXPORT_SYMBOL(remove_conflicting_framebuffers); > > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h > > index b069433e7fc1..1c1e53abb25d 100644 > > --- a/include/drm/drm_fb_helper.h > > +++ b/include/drm/drm_fb_helper.h > > @@ -566,6 +566,16 @@ static inline void drm_fb_helper_output_poll_changed(struct drm_device *dev) > > > > #endif > > > > +/** > > + * drm_fb_helper_remove_conflicting_framebuffers - remove firmware framebuffers > > + * @a: memory range, users of which are to be removed > > + * @name: requesting driver name > > + * @primary: also kick vga16fb if present > > + * > > + * This function removes framebuffer devices (eg. initialized by firmware) > > + * which use memory range described by @a. If @a is NULL all such devices are > > + * removed. > > + */ > > This looks like misplaced copypasta. You only need this once I think. Ah no, just a fixup for the lack of kerneldoc we have. Can you pls split this out into a separate patch? Thanks, Daniel > -Daniel > > > static inline int > > drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a, > > const char *name, bool primary) > > -- > > 2.18.0 > > > > _______________________________________________ > > 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 -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Fri, 31 Aug 2018 11:01:26 +0200 Subject: [PATCH v2 02/12] fbdev: allow apertures == NULL in remove_conflicting_framebuffers() In-Reply-To: <20180831085656.GR21634@phenom.ffwll.local> References: <7e3a48e397298b38d7ddc7f45d48226d1f5db3e4.1535656077.git.mirq-linux@rere.qmqm.pl> <20180831085656.GR21634@phenom.ffwll.local> Message-ID: <20180831090126.GS21634@phenom.ffwll.local> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Aug 31, 2018 at 10:56:56AM +0200, Daniel Vetter wrote: > On Thu, Aug 30, 2018 at 11:00:05PM +0200, Micha? Miros?aw wrote: > > Interpret (otherwise-invalid) NULL apertures argument to mean all-memory > > range. This will allow to remove several duplicates of this code from > > drivers in following patches. > > > > Signed-off-by: Micha? Miros?aw > > [for v1] > > Acked-by: Bartlomiej Zolnierkiewicz > > > > --- > > v2: added kerneldoc to corresponding DRM helper > > --- > > drivers/video/fbdev/core/fbmem.c | 14 ++++++++++++++ > > include/drm/drm_fb_helper.h | 10 ++++++++++ > > 2 files changed, 24 insertions(+) > > > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c > > index 30a18d4c9de4..0df148eb4699 100644 > > --- a/drivers/video/fbdev/core/fbmem.c > > +++ b/drivers/video/fbdev/core/fbmem.c > > @@ -1779,11 +1779,25 @@ int remove_conflicting_framebuffers(struct apertures_struct *a, > > const char *name, bool primary) > > { > > int ret; > > + bool do_free = false; > > + > > + if (!a) { > > + a = alloc_apertures(1); > > + if (!a) > > + return -ENOMEM; > > + > > + a->ranges[0].base = 0; > > + a->ranges[0].size = ~0; > > + do_free = true; > > + } > > > > mutex_lock(®istration_lock); > > ret = do_remove_conflicting_framebuffers(a, name, primary); > > mutex_unlock(®istration_lock); > > > > + if (do_free) > > + kfree(a); > > + > > return ret; > > } > > EXPORT_SYMBOL(remove_conflicting_framebuffers); > > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h > > index b069433e7fc1..1c1e53abb25d 100644 > > --- a/include/drm/drm_fb_helper.h > > +++ b/include/drm/drm_fb_helper.h > > @@ -566,6 +566,16 @@ static inline void drm_fb_helper_output_poll_changed(struct drm_device *dev) > > > > #endif > > > > +/** > > + * drm_fb_helper_remove_conflicting_framebuffers - remove firmware framebuffers > > + * @a: memory range, users of which are to be removed > > + * @name: requesting driver name > > + * @primary: also kick vga16fb if present > > + * > > + * This function removes framebuffer devices (eg. initialized by firmware) > > + * which use memory range described by @a. If @a is NULL all such devices are > > + * removed. > > + */ > > This looks like misplaced copypasta. You only need this once I think. Ah no, just a fixup for the lack of kerneldoc we have. Can you pls split this out into a separate patch? Thanks, Daniel > -Daniel > > > static inline int > > drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a, > > const char *name, bool primary) > > -- > > 2.18.0 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel at lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch