http://bugzilla.kernel.org/show_bug.cgi?id=12441





------- Comment #10 from dan...@ffwll.ch  2009-01-28 11:01 -------
On Wed, Jan 28, 2009 at 04:34:59AM -0800, bugme-dae...@bugzilla.kernel.org
wrote:
> I had a similar problem ([drm:radeon_do_init_cp] *ERROR* could not find 
> ioremap
> agp regions!) with a bit different hardware (Ati IGP320/M). The following fix
> by Dave Airlie made 3D acceleration work again on this laptop, perhaps it 
> might
> have an effect on your computers as well:

I can confirm that these changes indeed fix the problem (I recreated the
patch 'cause it was whitespace-mangled).

> diff --git a/drivers/gpu/drm/drm_memory.c b/drivers/gpu/drm/drm_memory.c
> index 803bc9e..bcc869b 100644
> --- a/drivers/gpu/drm/drm_memory.c
> +++ b/drivers/gpu/drm/drm_memory.c
> @@ -171,9 +171,14 @@ EXPORT_SYMBOL(drm_core_ioremap);
> 
> void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev)
> {
> -    map->handle = ioremap_wc(map->offset, map->size);
> +    if (drm_core_has_AGP(dev) &&
> +        dev->agp && dev->agp->cant_use_aperture && map->type == _DRM_AGP)
> +        map->handle = agp_remap(map->offset, map->size, dev);
> +    else
> +        map->handle = ioremap_wc(map->offset, map->size);
> }
> EXPORT_SYMBOL(drm_core_ioremap_wc);
> +
> void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev)
> {
>     if (!map->handle || !map->size)
> diff --git a/drivers/gpu/drm/radeon/radeon_cp.c
> b/drivers/gpu/drm/radeon/radeon_cp.c
> index 63212d7..df4cf97 100644
> --- a/drivers/gpu/drm/radeon/radeon_cp.c
> +++ b/drivers/gpu/drm/radeon/radeon_cp.c
> @@ -1039,9 +1039,9 @@ static int radeon_do_init_cp(struct drm_device *dev,
> drm_radeon_init_t *init,
> 
> #if __OS_HAS_AGP
>     if (dev_priv->flags & RADEON_IS_AGP) {
> -        drm_core_ioremap(dev_priv->cp_ring, dev);
> -        drm_core_ioremap(dev_priv->ring_rptr, dev);
> -        drm_core_ioremap(dev->agp_buffer_map, dev);
> +        drm_core_ioremap_wc(dev_priv->cp_ring, dev);
> +        drm_core_ioremap_wc(dev_priv->ring_rptr, dev);
> +        drm_core_ioremap_wc(dev->agp_buffer_map, dev);
>         if (!dev_priv->cp_ring->handle ||
>             !dev_priv->ring_rptr->handle ||
>             !dev->agp_buffer_map->handle) {
> 
> ---
> 
> More information here:
> http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg37874.html
> 
> 
> -- 
> Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.


-- 
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to