* [PATCH v5] Fix loading of module radeonfb on PowerMac @ 2018-02-13 18:03 ` Mathieu Malaterre 0 siblings, 0 replies; 5+ messages in thread From: Mathieu Malaterre @ 2018-02-13 18:03 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Mathieu Malaterre, Benjamin Herrenschmidt, Tomi Valkeinen, linux-fbdev, dri-devel, linux-kernel When the linux kernel is build with (typical kernel ship with Debian installer): CONFIG_FB=y CONFIG_FB_OF=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_FB_RADEON=m The offb driver takes precedence over module radeonfb. It is then impossible to load the module, error reported is: [ 96.551486] radeonfb 0000:00:10.0: enabling device (0006 -> 0007) [ 96.551526] radeonfb 0000:00:10.0: BAR 0: can't reserve [mem 0x98000000-0x9fffffff pref] [ 96.551531] radeonfb (0000:00:10.0): cannot request region 0. [ 96.551545] radeonfb: probe of 0000:00:10.0 failed with error -16 This patch reproduce the behavior of the module radeon, so as to make it possible to load radeonfb when offb is first loaded, see commit a56f7428d753 ("drm/radeon: Add early unregister of firmware fb's"). Signed-off-by: Mathieu Malaterre <malat@debian.org> Link: https://bugs.debian.org/826629#57 Link: https://bugzilla.kernel.org/show_bug.cgi?id\x119741 Suggested-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> --- v2: Only fails when CONFIG_PCC is not set v3: Only fails when CONFIG_FB_OF is not set, CONFIG_PCC was too broad. Since the conflicts in region is due to OFfb explicitly refers to it. v4: Use drm_fb_helper_remove_conflicting_framebuffers from drm_fb_helper v5: do not use drm_fb_helper_remove_conflicting_framebuffers from drm_fb_helper remove ifdef hacks since not needed once framebuffer is properly decremented drivers/video/fbdev/aty/radeon_base.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index 87608c0b2351..e8594bbaea60 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -2255,6 +2255,23 @@ static const struct bin_attribute edid2_attr = { .read = radeon_show_edid2, }; +static int radeon_kick_out_firmware_fb(struct pci_dev *pdev) +{ + struct apertures_struct *ap; + + ap = alloc_apertures(1); + if (!ap) + return -ENOMEM; + + ap->ranges[0].base = pci_resource_start(pdev, 0); + ap->ranges[0].size = pci_resource_len(pdev, 0); + + remove_conflicting_framebuffers(ap, KBUILD_MODNAME, false); + + kfree(ap); + + return 0; +} static int radeonfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) @@ -2308,6 +2325,10 @@ static int radeonfb_pci_register(struct pci_dev *pdev, rinfo->fb_base_phys = pci_resource_start (pdev, 0); rinfo->mmio_base_phys = pci_resource_start (pdev, 2); + ret = radeon_kick_out_firmware_fb(pdev); + if (ret) + return ret; + /* request the mem regions */ ret = pci_request_region(pdev, 0, "radeonfb framebuffer"); if (ret < 0) { -- 2.11.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v5] Fix loading of module radeonfb on PowerMac @ 2018-02-13 18:03 ` Mathieu Malaterre 0 siblings, 0 replies; 5+ messages in thread From: Mathieu Malaterre @ 2018-02-13 18:03 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: Mathieu Malaterre, Benjamin Herrenschmidt, Tomi Valkeinen, linux-fbdev, dri-devel, linux-kernel When the linux kernel is build with (typical kernel ship with Debian installer): CONFIG_FB=y CONFIG_FB_OF=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_FB_RADEON=m The offb driver takes precedence over module radeonfb. It is then impossible to load the module, error reported is: [ 96.551486] radeonfb 0000:00:10.0: enabling device (0006 -> 0007) [ 96.551526] radeonfb 0000:00:10.0: BAR 0: can't reserve [mem 0x98000000-0x9fffffff pref] [ 96.551531] radeonfb (0000:00:10.0): cannot request region 0. [ 96.551545] radeonfb: probe of 0000:00:10.0 failed with error -16 This patch reproduce the behavior of the module radeon, so as to make it possible to load radeonfb when offb is first loaded, see commit a56f7428d753 ("drm/radeon: Add early unregister of firmware fb's"). Signed-off-by: Mathieu Malaterre <malat@debian.org> Link: https://bugs.debian.org/826629#57 Link: https://bugzilla.kernel.org/show_bug.cgi?id=119741 Suggested-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> --- v2: Only fails when CONFIG_PCC is not set v3: Only fails when CONFIG_FB_OF is not set, CONFIG_PCC was too broad. Since the conflicts in region is due to OFfb explicitly refers to it. v4: Use drm_fb_helper_remove_conflicting_framebuffers from drm_fb_helper v5: do not use drm_fb_helper_remove_conflicting_framebuffers from drm_fb_helper remove ifdef hacks since not needed once framebuffer is properly decremented drivers/video/fbdev/aty/radeon_base.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c index 87608c0b2351..e8594bbaea60 100644 --- a/drivers/video/fbdev/aty/radeon_base.c +++ b/drivers/video/fbdev/aty/radeon_base.c @@ -2255,6 +2255,23 @@ static const struct bin_attribute edid2_attr = { .read = radeon_show_edid2, }; +static int radeon_kick_out_firmware_fb(struct pci_dev *pdev) +{ + struct apertures_struct *ap; + + ap = alloc_apertures(1); + if (!ap) + return -ENOMEM; + + ap->ranges[0].base = pci_resource_start(pdev, 0); + ap->ranges[0].size = pci_resource_len(pdev, 0); + + remove_conflicting_framebuffers(ap, KBUILD_MODNAME, false); + + kfree(ap); + + return 0; +} static int radeonfb_pci_register(struct pci_dev *pdev, const struct pci_device_id *ent) @@ -2308,6 +2325,10 @@ static int radeonfb_pci_register(struct pci_dev *pdev, rinfo->fb_base_phys = pci_resource_start (pdev, 0); rinfo->mmio_base_phys = pci_resource_start (pdev, 2); + ret = radeon_kick_out_firmware_fb(pdev); + if (ret) + return ret; + /* request the mem regions */ ret = pci_request_region(pdev, 0, "radeonfb framebuffer"); if (ret < 0) { -- 2.11.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v5] Fix loading of module radeonfb on PowerMac 2018-02-13 18:03 ` Mathieu Malaterre (?) @ 2018-03-12 15:20 ` Bartlomiej Zolnierkiewicz -1 siblings, 0 replies; 5+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2018-03-12 15:20 UTC (permalink / raw) To: Mathieu Malaterre; +Cc: linux-fbdev, Tomi Valkeinen, linux-kernel, dri-devel On Tuesday, February 13, 2018 07:03:16 PM Mathieu Malaterre wrote: > When the linux kernel is build with (typical kernel ship with Debian > installer): > > CONFIG_FB=y > CONFIG_FB_OF=y > CONFIG_VT_HW_CONSOLE_BINDING=y > CONFIG_FB_RADEON=m > > The offb driver takes precedence over module radeonfb. It is then > impossible to load the module, error reported is: > > [ 96.551486] radeonfb 0000:00:10.0: enabling device (0006 -> 0007) > [ 96.551526] radeonfb 0000:00:10.0: BAR 0: can't reserve [mem 0x98000000-0x9fffffff pref] > [ 96.551531] radeonfb (0000:00:10.0): cannot request region 0. > [ 96.551545] radeonfb: probe of 0000:00:10.0 failed with error -16 > > This patch reproduce the behavior of the module radeon, so as to make it > possible to load radeonfb when offb is first loaded, see > commit a56f7428d753 ("drm/radeon: Add early unregister of firmware fb's"). > > Signed-off-by: Mathieu Malaterre <malat@debian.org> > Link: https://bugs.debian.org/826629#57 > Link: https://bugzilla.kernel.org/show_bug.cgi?id\x119741 > Suggested-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> > Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Patch queued for 4.17, thanks. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5] Fix loading of module radeonfb on PowerMac @ 2018-03-12 15:20 ` Bartlomiej Zolnierkiewicz 0 siblings, 0 replies; 5+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2018-03-12 15:20 UTC (permalink / raw) To: Mathieu Malaterre Cc: Benjamin Herrenschmidt, Tomi Valkeinen, linux-fbdev, dri-devel, linux-kernel On Tuesday, February 13, 2018 07:03:16 PM Mathieu Malaterre wrote: > When the linux kernel is build with (typical kernel ship with Debian > installer): > > CONFIG_FB=y > CONFIG_FB_OF=y > CONFIG_VT_HW_CONSOLE_BINDING=y > CONFIG_FB_RADEON=m > > The offb driver takes precedence over module radeonfb. It is then > impossible to load the module, error reported is: > > [ 96.551486] radeonfb 0000:00:10.0: enabling device (0006 -> 0007) > [ 96.551526] radeonfb 0000:00:10.0: BAR 0: can't reserve [mem 0x98000000-0x9fffffff pref] > [ 96.551531] radeonfb (0000:00:10.0): cannot request region 0. > [ 96.551545] radeonfb: probe of 0000:00:10.0 failed with error -16 > > This patch reproduce the behavior of the module radeon, so as to make it > possible to load radeonfb when offb is first loaded, see > commit a56f7428d753 ("drm/radeon: Add early unregister of firmware fb's"). > > Signed-off-by: Mathieu Malaterre <malat@debian.org> > Link: https://bugs.debian.org/826629#57 > Link: https://bugzilla.kernel.org/show_bug.cgi?id=119741 > Suggested-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> > Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Patch queued for 4.17, thanks. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v5] Fix loading of module radeonfb on PowerMac @ 2018-03-12 15:20 ` Bartlomiej Zolnierkiewicz 0 siblings, 0 replies; 5+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2018-03-12 15:20 UTC (permalink / raw) To: Mathieu Malaterre; +Cc: linux-fbdev, Tomi Valkeinen, linux-kernel, dri-devel On Tuesday, February 13, 2018 07:03:16 PM Mathieu Malaterre wrote: > When the linux kernel is build with (typical kernel ship with Debian > installer): > > CONFIG_FB=y > CONFIG_FB_OF=y > CONFIG_VT_HW_CONSOLE_BINDING=y > CONFIG_FB_RADEON=m > > The offb driver takes precedence over module radeonfb. It is then > impossible to load the module, error reported is: > > [ 96.551486] radeonfb 0000:00:10.0: enabling device (0006 -> 0007) > [ 96.551526] radeonfb 0000:00:10.0: BAR 0: can't reserve [mem 0x98000000-0x9fffffff pref] > [ 96.551531] radeonfb (0000:00:10.0): cannot request region 0. > [ 96.551545] radeonfb: probe of 0000:00:10.0 failed with error -16 > > This patch reproduce the behavior of the module radeon, so as to make it > possible to load radeonfb when offb is first loaded, see > commit a56f7428d753 ("drm/radeon: Add early unregister of firmware fb's"). > > Signed-off-by: Mathieu Malaterre <malat@debian.org> > Link: https://bugs.debian.org/826629#57 > Link: https://bugzilla.kernel.org/show_bug.cgi?id=119741 > Suggested-by: Lennart Sorensen <lsorense@csclub.uwaterloo.ca> > Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Patch queued for 4.17, thanks. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-03-12 15:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20180213180332epcas2p30b385519194cf8c820610768b93abed2@epcas2p3.samsung.com>
2018-02-13 18:03 ` [PATCH v5] Fix loading of module radeonfb on PowerMac Mathieu Malaterre
2018-02-13 18:03 ` Mathieu Malaterre
2018-03-12 15:20 ` Bartlomiej Zolnierkiewicz
2018-03-12 15:20 ` Bartlomiej Zolnierkiewicz
2018-03-12 15:20 ` Bartlomiej Zolnierkiewicz
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.