drm/fb-helper: Add a dummy remove_conflicting_framebuffers
Lots of drivers don't properly compile without this when CONFIG_FB=n. It's kinda a hack, but since CONFIG_FB doesn't stub any fucntions when it's disabled I think it makes sense to add it to drm_fb_helper.h. Long term we probably need to rethink all the logic to unload firmware framebuffer drivers, at least if we want to be able to move away from CONFIG_FB and fbcon. v2: Unfortunately just stubbing out remove_conflicting_framebuffers in drm_fb_helper.h upset gcc about static vs. non-static declarations, so a new wrapper it needs to be. Means more churn :( Cc: Tobias Jakobi <tjakobi@math.uni-bielefeld.de> Cc: Noralf Trønnes <noralf@tronnes.org> Cc: tomi.valkeinen@ti.com Cc: dh.herrmann@gmail.com Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1470847958-28465-2-git-send-email-daniel.vetter@ffwll.ch
This commit is contained in:
parent
e241655373
commit
44adece57e
|
@ -341,7 +341,7 @@ static int amdgpu_kick_out_firmware_fb(struct pci_dev *pdev)
|
|||
#ifdef CONFIG_X86
|
||||
primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
#endif
|
||||
remove_conflicting_framebuffers(ap, "amdgpudrmfb", primary);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "amdgpudrmfb", primary);
|
||||
kfree(ap);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <drm/drm_fb_helper.h>
|
||||
|
||||
#include "bochs.h"
|
||||
|
||||
|
@ -153,7 +154,7 @@ static int bochs_kick_out_firmware_fb(struct pci_dev *pdev)
|
|||
|
||||
ap->ranges[0].base = pci_resource_start(pdev, 0);
|
||||
ap->ranges[0].size = pci_resource_len(pdev, 0);
|
||||
remove_conflicting_framebuffers(ap, "bochsdrmfb", false);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "bochsdrmfb", false);
|
||||
kfree(ap);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -57,7 +57,7 @@ static int cirrus_kick_out_firmware_fb(struct pci_dev *pdev)
|
|||
#ifdef CONFIG_X86
|
||||
primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
#endif
|
||||
remove_conflicting_framebuffers(ap, "cirrusdrmfb", primary);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "cirrusdrmfb", primary);
|
||||
kfree(ap);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -706,7 +706,7 @@ static int i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
|
|||
primary =
|
||||
pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
|
||||
ret = remove_conflicting_framebuffers(ap, "inteldrmfb", primary);
|
||||
ret = drm_fb_helper_remove_conflicting_framebuffers(ap, "inteldrmfb", primary);
|
||||
|
||||
kfree(ap);
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ static void mgag200_kick_out_firmware_fb(struct pci_dev *pdev)
|
|||
#ifdef CONFIG_X86
|
||||
primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
#endif
|
||||
remove_conflicting_framebuffers(ap, "mgag200drmfb", primary);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "mgag200drmfb", primary);
|
||||
kfree(ap);
|
||||
}
|
||||
|
||||
|
|
|
@ -135,7 +135,7 @@ static int mga_vram_init(struct mga_device *mdev)
|
|||
aper->ranges[0].base = mdev->mc.vram_base;
|
||||
aper->ranges[0].size = mdev->mc.vram_window;
|
||||
|
||||
remove_conflicting_framebuffers(aper, "mgafb", true);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(aper, "mgafb", true);
|
||||
kfree(aper);
|
||||
|
||||
if (!devm_request_mem_region(mdev->dev->dev, mdev->mc.vram_base, mdev->mc.vram_window,
|
||||
|
|
|
@ -351,7 +351,7 @@ static int nouveau_drm_probe(struct pci_dev *pdev,
|
|||
boot = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
#endif
|
||||
if (nouveau_modeset != 2)
|
||||
remove_conflicting_framebuffers(aper, "nouveaufb", boot);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(aper, "nouveaufb", boot);
|
||||
kfree(aper);
|
||||
|
||||
ret = nvkm_device_pci_new(pdev, nouveau_config, nouveau_debug,
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <linux/pm_runtime.h>
|
||||
#include <linux/vga_switcheroo.h>
|
||||
#include <drm/drm_gem.h>
|
||||
#include <drm/drm_fb_helper.h>
|
||||
|
||||
#include "drm_crtc_helper.h"
|
||||
#include "radeon_kfd.h"
|
||||
|
@ -324,7 +325,7 @@ static int radeon_kick_out_firmware_fb(struct pci_dev *pdev)
|
|||
#ifdef CONFIG_X86
|
||||
primary = pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
|
||||
#endif
|
||||
remove_conflicting_framebuffers(ap, "radeondrmfb", primary);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "radeondrmfb", primary);
|
||||
kfree(ap);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include <drm/drm_crtc_helper.h>
|
||||
#include <drm/drm_fb_cma_helper.h>
|
||||
#include <drm/drm_gem_cma_helper.h>
|
||||
#include <drm/drm_fb_helper.h>
|
||||
|
||||
#include "sun4i_crtc.h"
|
||||
#include "sun4i_drv.h"
|
||||
|
@ -109,7 +110,7 @@ static void sun4i_remove_framebuffers(void)
|
|||
ap->ranges[0].base = 0;
|
||||
ap->ranges[0].size = ~0;
|
||||
|
||||
remove_conflicting_framebuffers(ap, "sun4i-drm-fb", false);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "sun4i-drm-fb", false);
|
||||
kfree(ap);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include "drm_fb_cma_helper.h"
|
||||
#include <drm/drm_fb_helper.h>
|
||||
|
||||
#include "uapi/drm/vc4_drm.h"
|
||||
#include "vc4_drv.h"
|
||||
|
@ -214,7 +215,7 @@ static void vc4_kick_out_firmware_fb(void)
|
|||
ap->ranges[0].base = 0;
|
||||
ap->ranges[0].size = ~0;
|
||||
|
||||
remove_conflicting_framebuffers(ap, "vc4drmfb", false);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "vc4drmfb", false);
|
||||
kfree(ap);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <drm/drm_fb_helper.h>
|
||||
|
||||
#include "virtgpu_drv.h"
|
||||
|
||||
|
@ -42,7 +43,7 @@ static void virtio_pci_kick_out_firmware_fb(struct pci_dev *pci_dev)
|
|||
primary = pci_dev->resource[PCI_ROM_RESOURCE].flags
|
||||
& IORESOURCE_ROM_SHADOW;
|
||||
|
||||
remove_conflicting_framebuffers(ap, "virtiodrmfb", primary);
|
||||
drm_fb_helper_remove_conflicting_framebuffers(ap, "virtiodrmfb", primary);
|
||||
|
||||
kfree(ap);
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
struct drm_fb_helper;
|
||||
|
||||
#include <drm/drm_crtc.h>
|
||||
#include <linux/kgdb.h>
|
||||
|
||||
enum mode_set_atomic {
|
||||
|
@ -282,6 +283,12 @@ drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn,
|
|||
int drm_fb_helper_add_one_connector(struct drm_fb_helper *fb_helper, struct drm_connector *connector);
|
||||
int drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper,
|
||||
struct drm_connector *connector);
|
||||
static inline int
|
||||
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
|
||||
const char *name, bool primary)
|
||||
{
|
||||
return remove_conflicting_framebuffers(a, name, primary);
|
||||
}
|
||||
#else
|
||||
static inline int drm_fb_helper_modinit(void)
|
||||
{
|
||||
|
@ -475,5 +482,12 @@ drm_fb_helper_remove_one_connector(struct drm_fb_helper *fb_helper,
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
drm_fb_helper_remove_conflicting_framebuffers(struct apertures_struct *a,
|
||||
const char *name, bool primary)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue