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

Commit 048a8859 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: make general drm modesetting init common



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2e9733ff
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -82,14 +82,13 @@ static inline struct drm_crtc *to_drm_crtc(struct nouveau_crtc *crtc)
}

int nv50_crtc_create(struct drm_device *dev, int index);
int nv50_cursor_init(struct nouveau_crtc *);
void nv50_cursor_fini(struct nouveau_crtc *);
int nv50_crtc_cursor_set(struct drm_crtc *drm_crtc, struct drm_file *file_priv,
			 uint32_t buffer_handle, uint32_t width,
			 uint32_t height);
int nv50_crtc_cursor_move(struct drm_crtc *drm_crtc, int x, int y);

int nv04_cursor_init(struct nouveau_crtc *);
int nv50_cursor_init(struct nouveau_crtc *);

struct nouveau_connector *
nouveau_crtc_connector_get(struct nouveau_crtc *crtc);
+0 −1
Original line number Diff line number Diff line
@@ -736,7 +736,6 @@ struct drm_nouveau_private {
	uint64_t vram_size;
	uint64_t vram_sys_base;

	uint64_t fb_phys;
	uint64_t fb_available_size;
	uint64_t fb_mappable_pages;
	uint64_t fb_aper_free;
+0 −2
Original line number Diff line number Diff line
@@ -408,8 +408,6 @@ nouveau_mem_vram_init(struct drm_device *dev)
	if (ret)
		return ret;

	dev_priv->fb_phys = pci_resource_start(dev->pdev, 1);

	ret = nouveau_ttm_global_init(dev_priv);
	if (ret)
		return ret;
+21 −0
Original line number Diff line number Diff line
@@ -657,6 +657,26 @@ nouveau_card_init(struct drm_device *dev)
			goto out_engine;
	}

	/* initialise general modesetting */
	drm_mode_config_init(dev);
	drm_mode_create_scaling_mode_property(dev);
	drm_mode_create_dithering_property(dev);
	dev->mode_config.funcs = (void *)&nouveau_mode_config_funcs;
	dev->mode_config.fb_base = pci_resource_start(dev->pdev, 1);
	dev->mode_config.min_width = 0;
	dev->mode_config.min_height = 0;
	if (dev_priv->card_type < NV_10) {
		dev->mode_config.max_width = 2048;
		dev->mode_config.max_height = 2048;
	} else
	if (dev_priv->card_type < NV_50) {
		dev->mode_config.max_width = 4096;
		dev->mode_config.max_height = 4096;
	} else {
		dev->mode_config.max_width = 8192;
		dev->mode_config.max_height = 8192;
	}

	ret = engine->display.create(dev);
	if (ret)
		goto out_fifo;
@@ -747,6 +767,7 @@ static void nouveau_card_takedown(struct drm_device *dev)
	}

	engine->display.destroy(dev);
	drm_mode_config_cleanup(dev);

	if (!dev_priv->noaccel) {
		engine->fifo.takedown(dev);
+0 −23
Original line number Diff line number Diff line
@@ -126,27 +126,6 @@ nv04_display_create(struct drm_device *dev)

	nouveau_hw_save_vga_fonts(dev, 1);

	drm_mode_config_init(dev);
	drm_mode_create_scaling_mode_property(dev);
	drm_mode_create_dithering_property(dev);

	dev->mode_config.funcs = (void *)&nouveau_mode_config_funcs;

	dev->mode_config.min_width = 0;
	dev->mode_config.min_height = 0;
	switch (dev_priv->card_type) {
	case NV_04:
		dev->mode_config.max_width = 2048;
		dev->mode_config.max_height = 2048;
		break;
	default:
		dev->mode_config.max_width = 4096;
		dev->mode_config.max_height = 4096;
		break;
	}

	dev->mode_config.fb_base = dev_priv->fb_phys;

	nv04_crtc_create(dev, 0);
	if (nv_two_heads(dev))
		nv04_crtc_create(dev, 1);
@@ -235,8 +214,6 @@ nv04_display_destroy(struct drm_device *dev)
	list_for_each_entry(crtc, &dev->mode_config.crtc_list, head)
		crtc->funcs->restore(crtc);

	drm_mode_config_cleanup(dev);

	nouveau_hw_save_vga_fonts(dev, 0);
}

Loading