All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/nouveau: fix init with agpgart-uninorth
@ 2012-11-16  9:54 Aaro Koskinen
  2012-11-16 14:16 ` Michel Dänzer
  0 siblings, 1 reply; 4+ messages in thread
From: Aaro Koskinen @ 2012-11-16  9:54 UTC (permalink / raw)
  To: airlied, dri-devel, linux-kernel; +Cc: Aaro Koskinen

Check that the AGP aperture can be mapped. This follows a similar change
done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
the aperture can be mapped by the CPU.).

The patch fixes the following error seen on G5 iMac:

	nouveau E[     DRM] failed to create kernel channel, -12

Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
---
 drivers/gpu/drm/nouveau/nouveau_bo.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 35ac57f..5f0e7ef 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
 		if (drm->agp.stat == ENABLED) {
 			mem->bus.offset = mem->start << PAGE_SHIFT;
 			mem->bus.base = drm->agp.base;
-			mem->bus.is_iomem = true;
+			mem->bus.is_iomem = !dev->agp->cant_use_aperture;
 		}
 #endif
 		break;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/nouveau: fix init with agpgart-uninorth
  2012-11-16  9:54 [PATCH] drm/nouveau: fix init with agpgart-uninorth Aaro Koskinen
@ 2012-11-16 14:16 ` Michel Dänzer
  2012-11-16 18:11   ` Aaro Koskinen
  0 siblings, 1 reply; 4+ messages in thread
From: Michel Dänzer @ 2012-11-16 14:16 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: dri-devel

On Fre, 2012-11-16 at 11:54 +0200, Aaro Koskinen wrote: 
> Check that the AGP aperture can be mapped. This follows a similar change
> done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
> the aperture can be mapped by the CPU.).
> 
> The patch fixes the following error seen on G5 iMac:
> 
> 	nouveau E[     DRM] failed to create kernel channel, -12
> 
> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> ---
>  drivers/gpu/drm/nouveau/nouveau_bo.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 35ac57f..5f0e7ef 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
>  		if (drm->agp.stat == ENABLED) {
>  			mem->bus.offset = mem->start << PAGE_SHIFT;
>  			mem->bus.base = drm->agp.base;
> -			mem->bus.is_iomem = true;
> +			mem->bus.is_iomem = !dev->agp->cant_use_aperture;

Looks good, though radeon also doesn't set TTM_MEMTYPE_FLAG_MAPPABLE for
the TT memory type if the aperture can't be mapped directly. Maybe
nouveau should do the same, or maybe it doesn't really matter. Not sure.


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/nouveau: fix init with agpgart-uninorth
  2012-11-16 14:16 ` Michel Dänzer
@ 2012-11-16 18:11   ` Aaro Koskinen
  2012-11-19 10:57     ` Michel Dänzer
  0 siblings, 1 reply; 4+ messages in thread
From: Aaro Koskinen @ 2012-11-16 18:11 UTC (permalink / raw)
  To: Michel Dänzer; +Cc: dri-devel

Hi,

On Fri, Nov 16, 2012 at 03:16:09PM +0100, Michel Dänzer wrote:
> On Fre, 2012-11-16 at 11:54 +0200, Aaro Koskinen wrote: 
> > Check that the AGP aperture can be mapped. This follows a similar change
> > done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
> > the aperture can be mapped by the CPU.).
> > 
> > The patch fixes the following error seen on G5 iMac:
> > 
> > 	nouveau E[     DRM] failed to create kernel channel, -12
> > 
> > Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> > ---
> >  drivers/gpu/drm/nouveau/nouveau_bo.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > index 35ac57f..5f0e7ef 100644
> > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > @@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
> >  		if (drm->agp.stat == ENABLED) {
> >  			mem->bus.offset = mem->start << PAGE_SHIFT;
> >  			mem->bus.base = drm->agp.base;
> > -			mem->bus.is_iomem = true;
> > +			mem->bus.is_iomem = !dev->agp->cant_use_aperture;
> 
> Looks good, though radeon also doesn't set TTM_MEMTYPE_FLAG_MAPPABLE for
> the TT memory type if the aperture can't be mapped directly. Maybe
> nouveau should do the same, or maybe it doesn't really matter. Not sure.

This would fail with -EINVAL if the MAPPABLE flag is not set. So I think
it's needed?

Looking at radeon_ttm.c, the MAPPABLE flag seems to be set in both cases:

   141                  man->flags = TTM_MEMTYPE_FLAG_MAPPABLE | TTM_MEMTYPE_FLAG_CMA;
   142  #if __OS_HAS_AGP
   143                  if (rdev->flags & RADEON_IS_AGP) {
   144                          if (!(drm_core_has_AGP(rdev->ddev) && rdev->ddev->agp)) {
   145                                  DRM_ERROR("AGP is not enabled for memory type %u\n",
   146                                            (unsigned)type);
   147                                  return -EINVAL;
   148                          }
   149                          if (!rdev->ddev->agp->cant_use_aperture)
   150                                  man->flags = TTM_MEMTYPE_FLAG_MAPPABLE;

A.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] drm/nouveau: fix init with agpgart-uninorth
  2012-11-16 18:11   ` Aaro Koskinen
@ 2012-11-19 10:57     ` Michel Dänzer
  0 siblings, 0 replies; 4+ messages in thread
From: Michel Dänzer @ 2012-11-19 10:57 UTC (permalink / raw)
  To: Aaro Koskinen; +Cc: dri-devel

On Fre, 2012-11-16 at 20:11 +0200, Aaro Koskinen wrote: 
> On Fri, Nov 16, 2012 at 03:16:09PM +0100, Michel Dänzer wrote:
> > On Fre, 2012-11-16 at 11:54 +0200, Aaro Koskinen wrote: 
> > > Check that the AGP aperture can be mapped. This follows a similar change
> > > done for Radeon (commit 365048ff, drm/radeon: AGP memory is only I/O if
> > > the aperture can be mapped by the CPU.).
> > > 
> > > The patch fixes the following error seen on G5 iMac:
> > > 
> > > 	nouveau E[     DRM] failed to create kernel channel, -12
> > > 
> > > Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
> > > ---
> > >  drivers/gpu/drm/nouveau/nouveau_bo.c |    2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > index 35ac57f..5f0e7ef 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> > > @@ -1279,7 +1279,7 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
> > >  		if (drm->agp.stat == ENABLED) {
> > >  			mem->bus.offset = mem->start << PAGE_SHIFT;
> > >  			mem->bus.base = drm->agp.base;
> > > -			mem->bus.is_iomem = true;
> > > +			mem->bus.is_iomem = !dev->agp->cant_use_aperture;
> > 
> > Looks good, though radeon also doesn't set TTM_MEMTYPE_FLAG_MAPPABLE for
> > the TT memory type if the aperture can't be mapped directly. Maybe
> > nouveau should do the same, or maybe it doesn't really matter. Not sure.
> 
> This would fail with -EINVAL if the MAPPABLE flag is not set. So I think
> it's needed?
> 
> Looking at radeon_ttm.c, the MAPPABLE flag seems to be set in both cases:

Ah, indeed, I misread that. Your patch is

Reviewed-by: Michel Dänzer <michel@daenzer.net>


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-11-19 10:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-16  9:54 [PATCH] drm/nouveau: fix init with agpgart-uninorth Aaro Koskinen
2012-11-16 14:16 ` Michel Dänzer
2012-11-16 18:11   ` Aaro Koskinen
2012-11-19 10:57     ` Michel Dänzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.