From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 04/13] fbdev: add remove_conflicting_pci_framebuffers() Date: Mon, 3 Sep 2018 18:16:23 +0200 Message-ID: <20180903161623.GH21634@phenom.ffwll.local> References: <7db1c278276de420eb45a1b71d06b5eb6bbd49ef.1535810304.git.mirq-linux@rere.qmqm.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <7db1c278276de420eb45a1b71d06b5eb6bbd49ef.1535810304.git.mirq-linux@rere.qmqm.pl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= Cc: linux-fbdev@vger.kernel.org, Bartlomiej Zolnierkiewicz , David Airlie , amd-gfx@lists.freedesktop.org, Jonathan Hunter , Alex Deucher , Thierry Reding , dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, Dave Airlie , Maxime Ripard , virtualization@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org List-Id: linux-tegra@vger.kernel.org T24gU2F0LCBTZXAgMDEsIDIwMTggYXQgMDQ6MDg6NDVQTSArMDIwMCwgTWljaGHFgiBNaXJvc8WC YXcgd3JvdGU6Cj4gQWxtb3N0IGFsbCBQQ0kgZHJpdmVycyB1c2luZyByZW1vdmVfY29uZmxpY3Rp bmdfZnJhbWVidWZmZXJzKCkgd3JhcCBpdAo+IHdpdGggdGhlIHNhbWUgY29kZS4KPiAKPiAtLS0K ClRoaXMgY3V0cyBhd2F5IHRoZSBzb2IuIEp1c3QgZnlpLgotRGFuaWVsCgo+IHYyOiBhZGQga2Vy bmVsZG9jIGZvciBEUk0gaGVscGVyCj4gdjM6IHByb3BhZ2F0ZSByZW1vdmVfY29uZmxpY3Rpbmdf ZnJhbWVidWZmZXJzKCkgcmV0dXJuIHZhbHVlCj4gICArIG1vdmUga2VybmVsZG9jIHRvIHdoZXJl IGZ1bmN0aW9uIGlzIGltcGxlbWVudGVkCj4gCj4gU2lnbmVkLW9mZi1ieTogTWljaGHFgiBNaXJv c8WCYXcgPG1pcnEtbGludXhAcmVyZS5xbXFtLnBsPgo+IC0tLQo+ICBkcml2ZXJzL3ZpZGVvL2Zi ZGV2L2NvcmUvZmJtZW0uYyB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IGluY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCAgICAgIHwgMTIgKysrKysrKysrKysKPiAgaW5j bHVkZS9saW51eC9mYi5oICAgICAgICAgICAgICAgfCAgMiArKwo+ICAzIGZpbGVzIGNoYW5nZWQs IDQ5IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mYmRldi9j b3JlL2ZibWVtLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2NvcmUvZmJtZW0uYwo+IGluZGV4IDJk ZTkzYjUwMTRlMy4uY2Q5NmIxYzYyYmJlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmlkZW8vZmJk ZXYvY29yZS9mYm1lbS5jCj4gKysrIGIvZHJpdmVycy92aWRlby9mYmRldi9jb3JlL2ZibWVtLmMK PiBAQCAtMzQsNiArMzQsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvZmIuaD4KPiAgI2luY2x1ZGUg PGxpbnV4L2ZiY29uLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9tZW1fZW5jcnlwdC5oPgo+ICsjaW5j bHVkZSA8bGludXgvcGNpLmg+Cj4gIAo+ICAjaW5jbHVkZSA8YXNtL2ZiLmg+Cj4gIAo+IEBAIC0x ODEyLDYgKzE4MTMsNDAgQEAgaW50IHJlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1ZmZlcnMoc3Ry dWN0IGFwZXJ0dXJlc19zdHJ1Y3QgKmEsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChyZW1vdmVfY29u ZmxpY3RpbmdfZnJhbWVidWZmZXJzKTsKPiAgCj4gKy8qKgo+ICsgKiByZW1vdmVfY29uZmxpY3Rp bmdfcGNpX2ZyYW1lYnVmZmVycyAtIHJlbW92ZSBmaXJtd2FyZS1jb25maWd1cmVkIGZyYW1lYnVm ZmVycyBmb3IgUENJIGRldmljZXMKPiArICogQHBkZXY6IFBDSSBkZXZpY2UKPiArICogQHJlc291 cmNlX2lkOiBpbmRleCBvZiBQQ0kgQkFSIGNvbmZpZ3VyaW5nIGZyYW1lYnVmZmVyIG1lbW9yeQo+ ICsgKiBAbmFtZTogcmVxdWVzdGluZyBkcml2ZXIgbmFtZQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0 aW9uIHJlbW92ZXMgZnJhbWVidWZmZXIgZGV2aWNlcyAoZWcuIGluaXRpYWxpemVkIGJ5IGZpcm13 YXJlKQo+ICsgKiB1c2luZyBtZW1vcnkgcmFuZ2UgY29uZmlndXJlZCBmb3IgQHBkZXYncyBCQVIg QHJlc291cmNlX2lkLgo+ICsgKgo+ICsgKiBUaGUgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IFBDSSBk ZXZpY2Ugd2l0aCBzaGFkb3dlZCBST00gZHJpdmVzIGEgcHJpbWFyeQo+ICsgKiBkaXNwbGF5IGFu ZCBzbyBraWNrcyBvdXQgdmdhMTZmYi4KPiArICovCj4gK2ludCByZW1vdmVfY29uZmxpY3Rpbmdf cGNpX2ZyYW1lYnVmZmVycyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IHJlc19pZCwgY29uc3Qg Y2hhciAqbmFtZSkKPiArewo+ICsJc3RydWN0IGFwZXJ0dXJlc19zdHJ1Y3QgKmFwOwo+ICsJYm9v bCBwcmltYXJ5ID0gZmFsc2U7Cj4gKwlpbnQgZXJyOwo+ICsKPiArCWFwID0gYWxsb2NfYXBlcnR1 cmVzKDEpOwo+ICsJaWYgKCFhcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlhcC0+cmFu Z2VzWzBdLmJhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgcmVzX2lkKTsKPiArCWFwLT5y YW5nZXNbMF0uc2l6ZSA9IHBjaV9yZXNvdXJjZV9sZW4ocGRldiwgcmVzX2lkKTsKPiArI2lmZGVm IENPTkZJR19YODYKPiArCXByaW1hcnkgPSBwZGV2LT5yZXNvdXJjZVtQQ0lfUk9NX1JFU09VUkNF XS5mbGFncyAmCj4gKwkJCQkJSU9SRVNPVVJDRV9ST01fU0hBRE9XOwo+ICsjZW5kaWYKPiArCWVy ciA9IHJlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1ZmZlcnMoYXAsIG5hbWUsIHByaW1hcnkpOwo+ ICsJa2ZyZWUoYXApOwo+ICsJcmV0dXJuIGVycjsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKHJlbW92 ZV9jb25mbGljdGluZ19wY2lfZnJhbWVidWZmZXJzKTsKPiArCj4gIC8qKgo+ICAgKglyZWdpc3Rl cl9mcmFtZWJ1ZmZlciAtIHJlZ2lzdGVycyBhIGZyYW1lIGJ1ZmZlciBkZXZpY2UKPiAgICoJQGZi X2luZm86IGZyYW1lIGJ1ZmZlciBpbmZvIHN0cnVjdHVyZQo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fZmJfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKPiBpbmRl eCBiMDY5NDMzZTdmYzEuLjIwZWE4NTZkYjkwMCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fZmJfaGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKPiBAQCAt NTc3LDQgKzU3NywxNiBAQCBkcm1fZmJfaGVscGVyX3JlbW92ZV9jb25mbGljdGluZ19mcmFtZWJ1 ZmZlcnMoc3RydWN0IGFwZXJ0dXJlc19zdHJ1Y3QgKmEsCj4gICNlbmRpZgo+ICB9Cj4gIAo+ICtz dGF0aWMgaW5saW5lIGludAo+ICtkcm1fZmJfaGVscGVyX3JlbW92ZV9jb25mbGljdGluZ19wY2lf ZnJhbWVidWZmZXJzKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ICsJCQkJCQkgIGludCByZXNvdXJj ZV9pZCwKPiArCQkJCQkJICBjb25zdCBjaGFyICpuYW1lKQo+ICt7Cj4gKyNpZiBJU19SRUFDSEFC TEUoQ09ORklHX0ZCKQo+ICsJcmV0dXJuIHJlbW92ZV9jb25mbGljdGluZ19wY2lfZnJhbWVidWZm ZXJzKHBkZXYsIHJlc291cmNlX2lkLCBuYW1lKTsKPiArI2Vsc2UKPiArCXJldHVybiAwOwo+ICsj ZW5kaWYKPiArfQo+ICsKPiAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZmIu aCBiL2luY2x1ZGUvbGludXgvZmIuaAo+IGluZGV4IGFhNzRhMjI4YmI5Mi4uYWJlZmZkNTViNjZh IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvZmIuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgv ZmIuaAo+IEBAIC02MzIsNiArNjMyLDggQEAgZXh0ZXJuIHNzaXplX3QgZmJfc3lzX3dyaXRlKHN0 cnVjdCBmYl9pbmZvICppbmZvLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAo+ICBleHRlcm4gaW50 IHJlZ2lzdGVyX2ZyYW1lYnVmZmVyKHN0cnVjdCBmYl9pbmZvICpmYl9pbmZvKTsKPiAgZXh0ZXJu IGludCB1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKHN0cnVjdCBmYl9pbmZvICpmYl9pbmZvKTsKPiAg ZXh0ZXJuIGludCB1bmxpbmtfZnJhbWVidWZmZXIoc3RydWN0IGZiX2luZm8gKmZiX2luZm8pOwo+ ICtleHRlcm4gaW50IHJlbW92ZV9jb25mbGljdGluZ19wY2lfZnJhbWVidWZmZXJzKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBpbnQgcmVzX2lkLAo+ICsJCQkJCSAgICAgICBjb25zdCBjaGFyICpuYW1l KTsKPiAgZXh0ZXJuIGludCByZW1vdmVfY29uZmxpY3RpbmdfZnJhbWVidWZmZXJzKHN0cnVjdCBh cGVydHVyZXNfc3RydWN0ICphLAo+ICAJCQkJCSAgIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgcHJp bWFyeSk7Cj4gIGV4dGVybiBpbnQgZmJfcHJlcGFyZV9sb2dvKHN0cnVjdCBmYl9pbmZvICpmYl9p bmZvLCBpbnQgcm90YXRlKTsKPiAtLSAKPiAyLjE4LjAKPiAKPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlv biBtYWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcK aHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVh bGl6YXRpb24= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Date: Mon, 03 Sep 2018 16:16:23 +0000 Subject: Re: [PATCH v3 04/13] fbdev: add remove_conflicting_pci_framebuffers() Message-Id: <20180903161623.GH21634@phenom.ffwll.local> List-Id: References: <7db1c278276de420eb45a1b71d06b5eb6bbd49ef.1535810304.git.mirq-linux@rere.qmqm.pl> In-Reply-To: <7db1c278276de420eb45a1b71d06b5eb6bbd49ef.1535810304.git.mirq-linux@rere.qmqm.pl> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: =?utf-8?B?TWljaGHFgiBNaXJvc8WCYXc=?= Cc: linux-fbdev@vger.kernel.org, Bartlomiej Zolnierkiewicz , David Airlie , amd-gfx@lists.freedesktop.org, Jonathan Hunter , Alex Deucher , Thierry Reding , dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org, Dave Airlie , Maxime Ripard , virtualization@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org On Sat, Sep 01, 2018 at 04:08:45PM +0200, Michał Mirosław wrote: > Almost all PCI drivers using remove_conflicting_framebuffers() wrap it > with the same code. > > --- This cuts away the sob. Just fyi. -Daniel > v2: add kerneldoc for DRM helper > v3: propagate remove_conflicting_framebuffers() return value > + move kerneldoc to where function is implemented > > Signed-off-by: Michał Mirosław > --- > drivers/video/fbdev/core/fbmem.c | 35 ++++++++++++++++++++++++++++++++ > include/drm/drm_fb_helper.h | 12 +++++++++++ > include/linux/fb.h | 2 ++ > 3 files changed, 49 insertions(+) > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c > index 2de93b5014e3..cd96b1c62bbe 100644 > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -34,6 +34,7 @@ > #include > #include > #include > +#include > > #include > > @@ -1812,6 +1813,40 @@ int remove_conflicting_framebuffers(struct apertures_struct *a, > } > EXPORT_SYMBOL(remove_conflicting_framebuffers); > > +/** > + * remove_conflicting_pci_framebuffers - remove firmware-configured framebuffers for PCI devices > + * @pdev: PCI device > + * @resource_id: index of PCI BAR configuring framebuffer memory > + * @name: requesting driver name > + * > + * This function removes framebuffer devices (eg. initialized by firmware) > + * using memory range configured for @pdev's BAR @resource_id. > + * > + * The function assumes that PCI device with shadowed ROM drives a primary > + * display and so kicks out vga16fb. > + */ > +int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, const char *name) > +{ > + struct apertures_struct *ap; > + bool primary = false; > + int err; > + > + ap = alloc_apertures(1); > + if (!ap) > + return -ENOMEM; > + > + ap->ranges[0].base = pci_resource_start(pdev, res_id); > + ap->ranges[0].size = pci_resource_len(pdev, res_id); > +#ifdef CONFIG_X86 > + primary = pdev->resource[PCI_ROM_RESOURCE].flags & > + IORESOURCE_ROM_SHADOW; > +#endif > + err = remove_conflicting_framebuffers(ap, name, primary); > + kfree(ap); > + return err; > +} > +EXPORT_SYMBOL(remove_conflicting_pci_framebuffers); > + > /** > * register_framebuffer - registers a frame buffer device > * @fb_info: frame buffer info structure > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h > index b069433e7fc1..20ea856db900 100644 > --- a/include/drm/drm_fb_helper.h > +++ b/include/drm/drm_fb_helper.h > @@ -577,4 +577,16 @@ drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a, > #endif > } > > +static inline int > +drm_fb_helper_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, > + int resource_id, > + const char *name) > +{ > +#if IS_REACHABLE(CONFIG_FB) > + return remove_conflicting_pci_framebuffers(pdev, resource_id, name); > +#else > + return 0; > +#endif > +} > + > #endif > diff --git a/include/linux/fb.h b/include/linux/fb.h > index aa74a228bb92..abeffd55b66a 100644 > --- a/include/linux/fb.h > +++ b/include/linux/fb.h > @@ -632,6 +632,8 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf, > extern int register_framebuffer(struct fb_info *fb_info); > extern int unregister_framebuffer(struct fb_info *fb_info); > extern int unlink_framebuffer(struct fb_info *fb_info); > +extern int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, > + const char *name); > extern int remove_conflicting_framebuffers(struct apertures_struct *a, > const char *name, bool primary); > extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); > -- > 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Mon, 3 Sep 2018 18:16:23 +0200 Subject: [PATCH v3 04/13] fbdev: add remove_conflicting_pci_framebuffers() In-Reply-To: <7db1c278276de420eb45a1b71d06b5eb6bbd49ef.1535810304.git.mirq-linux@rere.qmqm.pl> References: <7db1c278276de420eb45a1b71d06b5eb6bbd49ef.1535810304.git.mirq-linux@rere.qmqm.pl> Message-ID: <20180903161623.GH21634@phenom.ffwll.local> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sat, Sep 01, 2018 at 04:08:45PM +0200, Micha? Miros?aw wrote: > Almost all PCI drivers using remove_conflicting_framebuffers() wrap it > with the same code. > > --- This cuts away the sob. Just fyi. -Daniel > v2: add kerneldoc for DRM helper > v3: propagate remove_conflicting_framebuffers() return value > + move kerneldoc to where function is implemented > > Signed-off-by: Micha? Miros?aw > --- > drivers/video/fbdev/core/fbmem.c | 35 ++++++++++++++++++++++++++++++++ > include/drm/drm_fb_helper.h | 12 +++++++++++ > include/linux/fb.h | 2 ++ > 3 files changed, 49 insertions(+) > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c > index 2de93b5014e3..cd96b1c62bbe 100644 > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -34,6 +34,7 @@ > #include > #include > #include > +#include > > #include > > @@ -1812,6 +1813,40 @@ int remove_conflicting_framebuffers(struct apertures_struct *a, > } > EXPORT_SYMBOL(remove_conflicting_framebuffers); > > +/** > + * remove_conflicting_pci_framebuffers - remove firmware-configured framebuffers for PCI devices > + * @pdev: PCI device > + * @resource_id: index of PCI BAR configuring framebuffer memory > + * @name: requesting driver name > + * > + * This function removes framebuffer devices (eg. initialized by firmware) > + * using memory range configured for @pdev's BAR @resource_id. > + * > + * The function assumes that PCI device with shadowed ROM drives a primary > + * display and so kicks out vga16fb. > + */ > +int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, const char *name) > +{ > + struct apertures_struct *ap; > + bool primary = false; > + int err; > + > + ap = alloc_apertures(1); > + if (!ap) > + return -ENOMEM; > + > + ap->ranges[0].base = pci_resource_start(pdev, res_id); > + ap->ranges[0].size = pci_resource_len(pdev, res_id); > +#ifdef CONFIG_X86 > + primary = pdev->resource[PCI_ROM_RESOURCE].flags & > + IORESOURCE_ROM_SHADOW; > +#endif > + err = remove_conflicting_framebuffers(ap, name, primary); > + kfree(ap); > + return err; > +} > +EXPORT_SYMBOL(remove_conflicting_pci_framebuffers); > + > /** > * register_framebuffer - registers a frame buffer device > * @fb_info: frame buffer info structure > diff --git a/include/drm/drm_fb_helper.h b/include/drm/drm_fb_helper.h > index b069433e7fc1..20ea856db900 100644 > --- a/include/drm/drm_fb_helper.h > +++ b/include/drm/drm_fb_helper.h > @@ -577,4 +577,16 @@ drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a, > #endif > } > > +static inline int > +drm_fb_helper_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, > + int resource_id, > + const char *name) > +{ > +#if IS_REACHABLE(CONFIG_FB) > + return remove_conflicting_pci_framebuffers(pdev, resource_id, name); > +#else > + return 0; > +#endif > +} > + > #endif > diff --git a/include/linux/fb.h b/include/linux/fb.h > index aa74a228bb92..abeffd55b66a 100644 > --- a/include/linux/fb.h > +++ b/include/linux/fb.h > @@ -632,6 +632,8 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf, > extern int register_framebuffer(struct fb_info *fb_info); > extern int unregister_framebuffer(struct fb_info *fb_info); > extern int unlink_framebuffer(struct fb_info *fb_info); > +extern int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, > + const char *name); > extern int remove_conflicting_framebuffers(struct apertures_struct *a, > const char *name, bool primary); > extern int fb_prepare_logo(struct fb_info *fb_info, int rotate); > -- > 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