summaryrefslogtreecommitdiff
path: root/shared-core
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@hobbes.virtuousgeek.org>2007-04-17 10:00:37 -0700
committerJesse Barnes <jbarnes@hobbes.virtuousgeek.org>2007-04-17 10:00:37 -0700
commit4e4d9cbeb3f52b605e46aad8ae1a947ca236079f (patch)
tree9829a35b435f0effe48388253d3a82ada403fc4c /shared-core
parenteeb5de059401361871e34e29c456a1feebac0b1e (diff)
Move initial framebuffer allocation and configuration to drm_initial_config,
remove i915_driver_load fb related stuff. Add a small helper for setting up outputs.
Diffstat (limited to 'shared-core')
-rw-r--r--shared-core/i915_init.c48
1 files changed, 8 insertions, 40 deletions
diff --git a/shared-core/i915_init.c b/shared-core/i915_init.c
index 273a1116..b98f155b 100644
--- a/shared-core/i915_init.c
+++ b/shared-core/i915_init.c
@@ -112,13 +112,9 @@ int i915_probe_agp(struct pci_dev *pdev, unsigned long *aperture_size,
int i915_driver_load(drm_device_t *dev, unsigned long flags)
{
drm_i915_private_t *dev_priv;
- drm_i915_init_t init;
- drm_buffer_object_t *entry;
- drm_local_map_t *map;
- struct drm_framebuffer *fb;
unsigned long agp_size, prealloc_size;
unsigned long sareapage;
- int hsize, vsize, bytes_per_pixel, size, ret;
+ int size, ret;
dev_priv = drm_alloc(sizeof(drm_i915_private_t), DRM_MEM_DRIVER);
if (dev_priv == NULL)
@@ -150,6 +146,8 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)
return -ENODEV;
}
+ DRM_DEBUG("fb_base: 0x%08lx\n", dev_priv->baseaddr);
+
ret = drm_addmap(dev, dev_priv->mmiobase, dev_priv->mmiolen,
_DRM_REGISTERS, _DRM_READ_ONLY|_DRM_DRIVER, &dev_priv->mmio_map);
if (ret != 0) {
@@ -177,7 +175,7 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)
drm_bo_driver_init(dev);
i915_probe_agp(dev->pdev, &agp_size, &prealloc_size);
- DRM_DEBUG("setting up %d bytes of PRIV0 space\n", prealloc_size);
+ DRM_DEBUG("setting up %ld bytes of PRIV0 space\n", prealloc_size);
drm_bo_init_mm(dev, DRM_BO_MEM_PRIV0, dev_priv->baseaddr,
prealloc_size >> PAGE_SHIFT);
@@ -199,13 +197,14 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)
dev_priv->ring.Size = size;
dev_priv->ring.tail_mask = dev_priv->ring.Size - 1;
-
+ /* FIXME: need wrapper with PCI mem checks */
ret = drm_mem_reg_ioremap(dev, &dev_priv->ring_buffer->mem,
&dev_priv->ring.virtual_start);
if (ret)
DRM_ERROR("error mapping ring buffer: %d\n", ret);
- DRM_DEBUG("ring start %08X, %08X, %08X\n", dev_priv->ring.Start, dev_priv->ring.virtual_start, dev_priv->ring.Size);
+ DRM_DEBUG("ring start %08lX, %p, %08lX\n", dev_priv->ring.Start,
+ dev_priv->ring.virtual_start, dev_priv->ring.Size);
I915_WRITE(LP_RING + RING_HEAD, 0);
I915_WRITE(LP_RING + RING_TAIL, 0);
I915_WRITE(LP_RING + RING_START, dev_priv->ring.Start);
@@ -242,46 +241,15 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags)
I915_WRITE(0x02080, dev_priv->dma_status_page);
DRM_DEBUG("Enabled hardware status page\n");
-#if 1
- /* Allocate scanout buffer and command ring */
- /* FIXME: types and other args correct? */
- hsize = 1280;
- vsize = 800;
- bytes_per_pixel = 4;
- size = hsize * vsize * bytes_per_pixel;
- drm_buffer_object_create(dev, size, drm_bo_type_kernel,
- DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE |
- DRM_BO_FLAG_MEM_PRIV0 | DRM_BO_FLAG_NO_MOVE,
- 0, 0, 0,
- &entry);
-#endif
intel_modeset_init(dev);
+ drm_initial_config(dev, false);
-#if 1
- fb = drm_framebuffer_create(dev);
- if (!fb) {
- DRM_ERROR("failed to allocate fb\n");
- return -EINVAL;
- }
-
- fb->width = hsize;
- fb->height = vsize;
- fb->pitch = hsize;
- fb->bits_per_pixel = bytes_per_pixel * 8;
- fb->depth = bytes_per_pixel * 8;
- fb->offset = entry->offset;
- fb->bo = entry;
-
- drm_initial_config(dev, fb, false);
- drmfb_probe(dev, fb);
-#endif
return 0;
}
int i915_driver_unload(drm_device_t *dev)
{
drm_i915_private_t *dev_priv = dev->dev_private;
- struct drm_framebuffer *fb;
if (dev_priv->status_page_dmah) {
drm_pci_free(dev, dev_priv->status_page_dmah);