Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd0b072f authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: remove left-over !DRIVER_MODESET paths



It's far preferable to have the driver do nothing at all for "nomodeset".

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent b833ac26
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -92,11 +92,9 @@ nouveau_dma_init(struct nouveau_channel *chan)
		return ret;

	/* Map M2MF notifier object - fbcon. */
	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
	ret = nouveau_bo_map(chan->notifier_bo);
	if (ret)
		return ret;
	}

	/* Insert NOPS for NOUVEAU_DMA_SKIPS */
	ret = RING_SPACE(chan, NOUVEAU_DMA_SKIPS);
+8 −11
Original line number Diff line number Diff line
@@ -155,9 +155,6 @@ nouveau_pci_suspend(struct pci_dev *pdev, pm_message_t pm_state)
	struct drm_crtc *crtc;
	int ret, i;

	if (!drm_core_check_feature(dev, DRIVER_MODESET))
		return -ENODEV;

	if (pm_state.event == PM_EVENT_PRETHAW)
		return 0;

@@ -257,9 +254,6 @@ nouveau_pci_resume(struct pci_dev *pdev)
	struct drm_crtc *crtc;
	int ret, i;

	if (!drm_core_check_feature(dev, DRIVER_MODESET))
		return -ENODEV;

	nouveau_fbcon_save_disable_accel(dev);

	NV_INFO(dev, "We're back, enabling device...\n");
@@ -371,7 +365,8 @@ nouveau_pci_resume(struct pci_dev *pdev)
static struct drm_driver driver = {
	.driver_features =
		DRIVER_USE_AGP | DRIVER_PCI_DMA | DRIVER_SG |
		DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM,
		DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | DRIVER_GEM |
		DRIVER_MODESET,
	.load = nouveau_load,
	.firstopen = nouveau_firstopen,
	.lastclose = nouveau_lastclose,
@@ -438,16 +433,18 @@ static int __init nouveau_init(void)
			nouveau_modeset = 1;
	}

	if (nouveau_modeset == 1) {
		driver.driver_features |= DRIVER_MODESET;
		nouveau_register_dsm_handler();
	}
	if (!nouveau_modeset)
		return 0;

	nouveau_register_dsm_handler();
	return drm_init(&driver);
}

static void __exit nouveau_exit(void)
{
	if (!nouveau_modeset)
		return;

	drm_exit(&driver);
	nouveau_unregister_dsm_handler();
}
+1 −2
Original line number Diff line number Diff line
@@ -277,8 +277,7 @@ nouveau_mem_close(struct drm_device *dev)

	nouveau_ttm_global_release(dev_priv);

	if (drm_core_has_AGP(dev) && dev->agp &&
	    drm_core_check_feature(dev, DRIVER_MODESET)) {
	if (drm_core_has_AGP(dev) && dev->agp) {
		struct drm_agp_mem *entry, *tempe;

		/* Remove AGP resources, but leave dev->agp
+26 −53
Original line number Diff line number Diff line
@@ -425,11 +425,9 @@ nouveau_card_init(struct drm_device *dev)
	spin_lock_init(&dev_priv->context_switch_lock);

	/* Parse BIOS tables / Run init tables if card not POSTed */
	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
	ret = nouveau_bios_init(dev);
	if (ret)
		goto out;
	}

	ret = nouveau_mem_detect(dev);
	if (ret)
@@ -504,14 +502,12 @@ nouveau_card_init(struct drm_device *dev)
			goto out_irq;
	}

	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
	if (dev_priv->card_type >= NV_50)
		ret = nv50_display_create(dev);
	else
		ret = nv04_display_create(dev);
	if (ret)
		goto out_channel;
	}

	ret = nouveau_backlight_init(dev);
	if (ret)
@@ -519,11 +515,8 @@ nouveau_card_init(struct drm_device *dev)

	dev_priv->init_state = NOUVEAU_CARD_INIT_DONE;

	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
	nouveau_fbcon_init(dev);
	drm_kms_helper_poll_init(dev);
	}

	return 0;

out_channel:
@@ -595,7 +588,6 @@ static void nouveau_card_takedown(struct drm_device *dev)
		nouveau_mem_close(dev);
		engine->instmem.takedown(dev);

		if (drm_core_check_feature(dev, DRIVER_MODESET))
		drm_irq_uninstall(dev);

		nouveau_gpuobj_late_takedown(dev);
@@ -691,6 +683,7 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
	struct drm_nouveau_private *dev_priv;
	uint32_t reg0;
	resource_size_t mmio_start_offs;
	int ret;

	dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
	if (!dev_priv)
@@ -773,11 +766,9 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
	NV_INFO(dev, "Detected an NV%2x generation card (0x%08x)\n",
		dev_priv->card_type, reg0);

	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
		int ret = nouveau_remove_conflicting_drivers(dev);
	ret = nouveau_remove_conflicting_drivers(dev);
	if (ret)
		return ret;
	}

	/* Map PRAMIN BAR, or on older cards, the aperture withing BAR0 */
	if (dev_priv->card_type >= NV_40) {
@@ -812,46 +803,28 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
		dev_priv->flags |= NV_NFORCE2;

	/* For kernel modesetting, init card now and bring up fbcon */
	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
		int ret = nouveau_card_init(dev);
	ret = nouveau_card_init(dev);
	if (ret)
		return ret;
	}

	return 0;
}

static void nouveau_close(struct drm_device *dev)
{
	struct drm_nouveau_private *dev_priv = dev->dev_private;

	/* In the case of an error dev_priv may not be allocated yet */
	if (dev_priv)
		nouveau_card_takedown(dev);
}

/* KMS: we need mmio at load time, not when the first drm client opens. */
void nouveau_lastclose(struct drm_device *dev)
{
	if (drm_core_check_feature(dev, DRIVER_MODESET))
		return;

	nouveau_close(dev);
}

int nouveau_unload(struct drm_device *dev)
{
	struct drm_nouveau_private *dev_priv = dev->dev_private;

	if (drm_core_check_feature(dev, DRIVER_MODESET)) {
	drm_kms_helper_poll_fini(dev);
	nouveau_fbcon_fini(dev);
	if (dev_priv->card_type >= NV_50)
		nv50_display_destroy(dev);
	else
		nv04_display_destroy(dev);
		nouveau_close(dev);
	}
	nouveau_card_takedown(dev);

	iounmap(dev_priv->mmio);
	iounmap(dev_priv->ramin);